Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expand api sidebars #3150

Merged
merged 15 commits into from
Jan 5, 2024
Merged
Original file line number Diff line number Diff line change
@@ -1,19 +1,11 @@
---
id: console-api-reference
title: Console API clients (REST)
description: "Create and manage clusters, and interact with Camunda 8 management API programmatically without using the Camunda 8 Console."
id: authentication
title: Authentication
slug: /apis-tools/console-api/authentication
sidebar_position: 2
description: "Learn about access tokens and client credentials and scopes to get started with the Console API."
---

The Camunda 8 management API provides a programmatic interface for managing Camunda clusters and API clients. It offers endpoints for various operations, including cluster backup, creation, and deletion, as well as client and member management. The API also allows for IP whitelisting and secret management.

A detailed API description can be found [here](https://console.cloud.camunda.io/customer-api/openapi/docs/#/) via Swagger. With a valid access token, this offers an interactive API experience against your Camunda 8 cluster.

:::note
You can also work with this API in our [Postman collection](https://www.postman.com/camundateam/workspace/camunda-8-postman/collection/20317927-4c378140-b9ca-4f2d-b4d5-479ab0fcc472?action=share&creator=11465105), or check it out in [GitHub](https://github.com/camunda-community-hub/camunda-8-api-postman-collection).
:::

## Authentication

To access the API endpoint, you need an access token. Your client must send a header in each request:

`Authorization: Bearer <Token>`
Expand All @@ -26,24 +18,24 @@ curl -X POST -H -H :accept: application/json" -H "Authorization: Bearer <TOKEN>"

For all requests, include the access token in the authorization header: `authorization:Bearer ${TOKEN}`.

### Client credentials and scopes
## Client credentials and scopes

To interact with Camunda 8 programmatically without using the Camunda 8 Console, create client credentials in the organization settings under the **Console API** tab.

Client credentials are created for an organization, and therefore can access all Camunda 8 clusters of this organization.

Scopes define the access for client credentials. A client can have one or multiple of the following permissions:

![createConsoleApiClient](../components/console/manage-organization/img/create-console-api-client.png)
![createConsoleApiClient](../../components/console/manage-organization/img/create-console-api-client.png)

A client can have one or multiple permissions from the following groups:

- **Cluster**: [Manage your clusters](../components/console/manage-clusters/create-cluster.md).
- **Zeebe Client**: [Manage API clients](../components/console/manage-clusters/manage-api-clients.md) for your cluster.
- **Web Modeler API**: Interact with the [Web Modeler API](./web-modeler-api/index.md).
- **IP Whitelist**: Configure [IP-Whitelist](../components/console/manage-clusters/manage-ip-whitelists.md) rules.
- **Connector Secrets**: [Manage secrets](../components/console/manage-clusters/manage-secrets.md) of your clusters.
- **Members**: [Manage members](../components/console/manage-organization/manage-users.md) of your organization.
- **Cluster**: [Manage your clusters](/components/console/manage-clusters/create-cluster.md).
- **Zeebe Client**: [Manage API clients](/components/console/manage-clusters/manage-api-clients.md) for your cluster.
- **Web Modeler API**: Interact with the [Web Modeler API](/apis-tools/web-modeler-api/index.md).
- **IP Whitelist**: Configure [IP-Whitelist](/components/console/manage-clusters/manage-ip-whitelists.md) rules.
- **Connector Secrets**: [Manage secrets](/components/console/manage-clusters/manage-secrets.md) of your clusters.
- **Members**: [Manage members](/components/console/manage-organization/manage-users.md) of your organization.
- **Backups**: Manage [backups](https://docs.camunda.io/docs/components/concepts/backups) of your Camunda 8 clusters (only available to Enterprise customers).

The full API description can be found [here](https://console.cloud.camunda.io/customer-api/openapi/docs/#/).
Expand All @@ -52,7 +44,7 @@ The full API description can be found [here](https://console.cloud.camunda.io/cu
After client credentials are created, the `Client Secret` is only shown once. Save this `Client Secret` somewhere safe.
:::

### Access token
## Access token

Once you have your client credentials, you can retrieve an access token using the following command:

Expand Down
11 changes: 11 additions & 0 deletions docs/apis-tools/console-api/console-api-reference.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
id: console-api-reference
title: Overview
slug: /apis-tools/console-api/console-api-reference
description: "Create and manage clusters, and interact with Camunda 8 management API programmatically without using the Camunda 8 Console."
sidebar_position: 1
---

The Camunda 8 management API provides a programmatic interface for managing Camunda clusters and API clients. It offers endpoints for various operations, including cluster backup, creation, and deletion, as well as client and member management. The API also allows for IP whitelisting and secret management.

A detailed API description can be found [here](https://console.cloud.camunda.io/customer-api/openapi/docs/#/) via Swagger. With a valid access token, this offers an interactive API experience against your Camunda 8 cluster.
10 changes: 10 additions & 0 deletions docs/apis-tools/console-api/sidebar-schema.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */

module.exports = {
"Console API (REST)": [
{
type: "autogenerated",
dirName: "apis-tools/console-api",
},
],
};
2 changes: 1 addition & 1 deletion docs/apis-tools/java-client/job-worker.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ The retry delay (i.e. the time the job worker waits after an error before the ne

By default, the job worker uses an exponential backoff implementation, which you can configure using `BackoffSupplier.newBackoffBuilder()`.

The backoff strategy is especially useful for dealing with the `GRPC_STATUS_RESOURCE_EXHAUSTED` error response (refer to [gRPC Technical Error Handling](/apis-tools/grpc.md#technical-error-handling)).
The backoff strategy is especially useful for dealing with the `GRPC_STATUS_RESOURCE_EXHAUSTED` error response (refer to [gRPC Technical Error Handling](/apis-tools/zeebe-api/technical-error-handling.md)).

This error code indicates the Zeebe cluster is currently under too large of a load and has decided to reject this request.

Expand Down
4 changes: 2 additions & 2 deletions docs/apis-tools/working-with-apis-tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Camunda 8 components have APIs to enable polyglot developers to work with in the

### API Reference

<DocCardList items={[{type:"link", href:"/docs/next/apis-tools/console-api-reference/", label: "Console API (REST)", docId:"apis-tools/console-api-reference"},
<DocCardList items={[{type:"link", href:"/docs/next/apis-tools/console-api/console-api-reference/", label: "Console API (REST)", docId:"apis-tools/console-api/console-api-reference"},
{
type:"link", href:"/docs/next/apis-tools/operate-api/overview/", label: "Operate API (REST)", docId:"apis-tools/operate-api/operate-api-overview"
},
Expand All @@ -72,7 +72,7 @@ type:"link", href:"/docs/next/apis-tools/tasklist-api-rest/tasklist-api-rest-ove
type:"link", href:"/docs/next/apis-tools/web-modeler-api/overview/", label: "Web Modeler API (REST)", docId:"apis-tools/web-modeler-api/overview"
},
{
type:"link", href:"/docs/next/apis-tools/grpc/", label: "Zeebe API (gRPC)", docId:"apis-tools/grpc"
type:"link", href:"/docs/next/apis-tools/zeebe-api/overview/", label: "Zeebe API (gRPC)", docId:"apis-tools/zeebe-api/grpc"
}
]}/>

Expand Down
87 changes: 87 additions & 0 deletions docs/apis-tools/zeebe-api/deprecated-rpcs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
id: deprecated-rpcs
title: "Deprecated RPCs"
slug: /apis-tools/zeebe-api/deprecated-rpcs
sidebar_position: 4
description: "The following RPCs are exposed by the gateway service, but have been deprecated."
---

The following RPCs are exposed by the gateway service, but have been deprecated.

## `DeployProcess` RPC

:::note
Deprecated since 8, replaced by [DeployResource RPC](#deployresource-rpc).
:::

:::note
When multi-tenancy is enabled, processes are always deployed to the `<default>` tenant.
:::

Deploys one or more processes to Zeebe. Note that this is an atomic call,
i.e. either all processes are deployed, or none of them are.

### Input: `DeployProcessRequest`

```protobuf
message DeployProcessRequest {
// List of process resources to deploy
repeated ProcessRequestObject processes = 1;
}

message ProcessRequestObject {
enum ResourceType {
// FILE type means the gateway will try to detect the resource type
// using the file extension of the name field
FILE = 0;
BPMN = 1; // extension 'bpmn'
YAML = 2 [deprecated = true]; // extension 'yaml'; removed as of release 1.0
}

// the resource basename, e.g. myProcess.bpmn
string name = 1;
// the resource type; if set to BPMN or YAML then the file extension
// is ignored
// As of release 1.0, YAML support was removed and BPMN is the only supported resource type.
// The field was kept to not break clients.
ResourceType type = 2 [deprecated = true];
// the process definition as a UTF8-encoded string
bytes definition = 3;
}
```

### Output: `DeployProcessResponse`

```protobuf
message DeployProcessResponse {
// the unique key identifying the deployment
int64 key = 1;
// a list of deployed processes
repeated ProcessMetadata processes = 2;
}

message ProcessMetadata {
// the bpmn process ID, as parsed during deployment; together with the version forms a
// unique identifier for a specific process definition
string bpmnProcessId = 1;
// the assigned process version
int32 version = 2;
// the assigned key, which acts as a unique identifier for this process
int64 processKey = 3;
// the resource name (see: ProcessRequestObject.name) from which this process was
// parsed
string resourceName = 4;
}
```

### Errors

#### GRPC_STATUS_INVALID_ARGUMENT

Returned if:

- No resources given.
- At least one resource is invalid. A resource is considered invalid if:
- It is not a BPMN or YAML file (currently detected through the file extension).
- The resource data is not deserializable (e.g. detected as BPMN, but it's broken XML).
- The process is invalid (e.g. an event-based gateway has an outgoing sequence flow to a task.)
Loading
Loading