diff --git a/.github/workflows/preview-env-deploy.yml b/.github/workflows/preview-env-deploy.yml new file mode 100644 index 0000000000..ea4214ab94 --- /dev/null +++ b/.github/workflows/preview-env-deploy.yml @@ -0,0 +1,92 @@ +name: preview-env-deploy +on: + pull_request: + types: [labeled, synchronize] + +concurrency: + cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.ref }} + +jobs: + deploy-preview: + if: github.event.pull_request.state != 'closed' && (contains( github.event.label.name, 'deploy') || contains( github.event.pull_request.labels.*.name, 'deploy')) + runs-on: ubuntu-22.04 + timeout-minutes: 30 + name: deploy-preview-env + steps: + - uses: actions/checkout@v4 + + - name: Import secrets from Vault + id: secrets + uses: hashicorp/vault-action@d1720f055e0635fd932a1d2a48f87a666a57906c + with: + url: ${{ secrets.VAULT_ADDR }} + method: approle + roleId: ${{ secrets.VAULT_ROLE_ID }} + secretId: ${{ secrets.VAULT_SECRET_ID }} + secrets: | + secret/data/products/camunda-docs/ci/preview-environment PREVIEW_ENV_BUCKET_NAME; + secret/data/products/camunda-docs/ci/preview-environment PREVIEW_ENV_GCLOUD_SA_KEY; + + - name: Install Dependencies + run: npm ci + + - name: Build Docs + env: + NODE_OPTIONS: --max_old_space_size=8192 + DOCS_SITE_URL: https://${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }} + DOCS_SITE_BASE_URL: /pr-${{ github.event.number }}/ + run: npm run build + + - name: Authenticate with Google Cloud + uses: google-github-actions/auth@v2 + with: + credentials_json: ${{ steps.secrets.outputs.PREVIEW_ENV_GCLOUD_SA_KEY }} + + - name: Set up Cloud SDK + uses: google-github-actions/setup-gcloud@v2 + + - name: Start Deployment + uses: bobheadxi/deployments@v1 + id: deployment + with: + step: start + token: ${{ github.token }} + env: ${{ github.event.repository.name }} + ref: ${{ github.event.pull_request.head.sha }} + + - name: Upload files to Google bucket + env: + BUCKET_NAME: ${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }} + run: | + gsutil -m rsync -d -r build gs://$BUCKET_NAME/pr-${{ github.event.number }} + + - uses: bobheadxi/deployments@v1 + with: + step: finish + token: ${{ github.token }} + status: ${{ job.status }} + env: ${{ steps.deployment.outputs.env }} + deployment_id: ${{ steps.deployment.outputs.deployment_id }} + env_url: https://${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }}/pr-${{ github.event.number }}/index.html + + - name: Shorten commit SHA + run: echo "short_sha=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV + + - name: Find previous deployment or tear-down comment + uses: peter-evans/find-comment@v3 + id: find-comment + with: + issue-number: ${{ github.event.number }} + body-includes: + + - name: Upsert deployment comment + uses: peter-evans/create-or-update-comment@v4 + env: + BUCKET_NAME: ${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }} + with: + comment-id: ${{ steps.find-comment.outputs.comment-id }} + issue-number: ${{ github.event.number }} + body: | + The preview environment relating to the commit ${{ env.short_sha }} has successfully been deployed. You can access it on https://${{ env.BUCKET_NAME }}/pr-${{ github.event.number }}/index.html. + edit-mode: replace diff --git a/.github/workflows/preview-env-teardown.yml b/.github/workflows/preview-env-teardown.yml new file mode 100644 index 0000000000..f369c95b30 --- /dev/null +++ b/.github/workflows/preview-env-teardown.yml @@ -0,0 +1,64 @@ +name: preview-env-teardown +on: + pull_request: + types: [unlabeled, closed] + +jobs: + tear-down-preview-env: + if: github.event.label.name == 'deploy' || (github.event.action == 'closed' && contains( github.event.pull_request.labels.*.name, 'deploy')) + runs-on: ubuntu-22.04 + timeout-minutes: 20 + name: teardown-preview-env + steps: + - uses: actions/checkout@v4 + + - name: Import secrets + id: secrets + uses: hashicorp/vault-action@d1720f055e0635fd932a1d2a48f87a666a57906c + with: + url: ${{ secrets.VAULT_ADDR }} + method: approle + roleId: ${{ secrets.VAULT_ROLE_ID }} + secretId: ${{ secrets.VAULT_SECRET_ID }} + secrets: | + secret/data/products/camunda-docs/ci/preview-environment PREVIEW_ENV_BUCKET_NAME; + secret/data/products/camunda-docs/ci/preview-environment PREVIEW_ENV_GCLOUD_SA_KEY; + + - name: Authenticate with Google Cloud + uses: google-github-actions/auth@v2 + with: + credentials_json: ${{ steps.secrets.outputs.PREVIEW_ENV_GCLOUD_SA_KEY }} + + - name: Set up Cloud SDK + uses: google-github-actions/setup-gcloud@v2 + + - name: Remove files from Google bucket + env: + BUCKET_NAME: ${{ steps.secrets.outputs.PREVIEW_ENV_BUCKET_NAME }} + run: | + gsutil -m rm -r gs://$BUCKET_NAME/pr-${{ github.event.number }}/ + + - uses: bobheadxi/deployments@v1 + if: always() + name: Deactivate GitHub Deployment environment + with: + step: deactivate-env + token: ${{ github.token }} + env: ${{ github.event.repository.name }} + ref: ${{ github.event.pull_request.head.sha }} + + - name: Find deployment comment + uses: peter-evans/find-comment@v3 + id: find-comment + with: + issue-number: ${{ github.event.number }} + body-includes: + + - name: Update deployment comment + if: steps.find-comment.outputs.comment-id != '' + uses: peter-evans/create-or-update-comment@v4 + with: + comment-id: ${{ steps.find-comment.outputs.comment-id }} + body: | + Your preview env has been torn down. + edit-mode: replace diff --git a/api/camunda/camunda-openapi.yaml b/api/camunda/camunda-openapi.yaml new file mode 100644 index 0000000000..504314e280 --- /dev/null +++ b/api/camunda/camunda-openapi.yaml @@ -0,0 +1,548 @@ +openapi: "3.0.3" +info: + title: Camunda 8 REST API + version: "0.1" + description: API for communicating with the Camunda 8 cluster. + license: + name: Camunda License Version 1.0 + url: https://github.com/camunda/camunda/blob/main/licenses/CAMUNDA-LICENSE-1.0.txt +externalDocs: + description: Find out more + url: https://docs.camunda.io/docs/apis-tools/camunda-api-rest/overview/ + +servers: + - url: "{schema}://{host}:{port}/v2" + variables: + host: + default: localhost + description: The hostname of the C8 REST Gateway. + port: + default: "8080" + description: The port of the C8 REST API server. + schema: + default: http + description: The schema of the C8 REST API server. + +paths: + /topology: + get: + tags: + - Cluster + summary: Get cluster topology + description: Obtains the current topology of the cluster the gateway is part of. + responses: + "200": + $ref: "#/components/responses/TopologyResponse" + /jobs/activation: + post: + tags: + - Job + summary: Activate jobs + description: | + Iterate through all known partitions and activate jobs up to the requested maximum. + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/JobActivationRequest" + responses: + "200": + description: The list of activated jobs. + content: + application/json: + schema: + $ref: "#/components/schemas/JobActivationResponse" + + /user-tasks/{userTaskKey}/completion: + post: + tags: + - User task + summary: Complete a user task + description: Completes a user task with the given key. + parameters: + - name: userTaskKey + in: path + required: true + description: The key of the user task to complete. + schema: + type: integer + format: int64 + requestBody: + required: false + content: + application/json: + schema: + $ref: "#/components/schemas/UserTaskCompletionRequest" + + responses: + "204": + description: The user task was completed successfully. + "404": + description: The user task with the given key was not found. + "409": + description: > + The user task with the given key is in the wrong state currently. + More details are provided in the response body. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/ProblemDetail" + "400": + description: > + The user task with the given key cannot be completed. + More details are provided in the response body. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/ProblemDetail" + /user-tasks/{userTaskKey}/assignment: + post: + tags: + - User task + summary: Assign a user task + description: Assigns a user task with the given key to the given assignee. + parameters: + - name: userTaskKey + in: path + required: true + description: The key of the user task to assign. + schema: + type: integer + format: int64 + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/UserTaskAssignmentRequest" + responses: + "204": + description: The user task's assignment was adjusted. + "404": + description: The user task with the given key was not found. + "409": + description: > + The user task with the given key is in the wrong state currently. + More details are provided in the response body. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/ProblemDetail" + "400": + description: > + The assignment of the user task with the given key cannot be completed. + More details are provided in the response body. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/ProblemDetail" + /user-tasks/{userTaskKey}: + patch: + tags: + - User task + summary: Update a user task + description: Update a user task with the given key. + parameters: + - name: userTaskKey + in: path + required: true + description: The key of the user task to update. + schema: + type: integer + format: int64 + requestBody: + required: false + content: + application/json: + schema: + $ref: "#/components/schemas/UserTaskUpdateRequest" + responses: + "204": + description: The user task was updated successfully. + "404": + description: The user task with the given key was not found. + "409": + description: > + The user task with the given key is in the wrong state currently. + More details are provided in the response body. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/ProblemDetail" + "400": + description: > + The user task with the given key cannot be updated. + More details are provided in the response body. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/ProblemDetail" + /user-tasks/{userTaskKey}/assignee: + delete: + tags: + - User task + summary: Unassign a user task + description: Removes the assignee of a task with the given key. + parameters: + - name: userTaskKey + in: path + required: true + description: The key of the user task. + schema: + type: integer + format: int64 + responses: + "204": + description: The user task was unassigned successfully. + "404": + description: The user task with the given key was not found. + "409": + description: > + The user task with the given key is in the wrong state currently. + More details are provided in the response body. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/ProblemDetail" + "400": + description: > + The user task with the given key cannot be unassigned. + More details are provided in the response body. + content: + application/problem+json: + schema: + $ref: "#/components/schemas/ProblemDetail" + +components: + responses: + TopologyResponse: + description: Obtains the current topology of the cluster the gateway is part of. + content: + application/json: + schema: + $ref: "#/components/schemas/TopologyResponse" + + schemas: + TopologyResponse: + description: The response of a topology request. + type: object + properties: + brokers: + description: A list of brokers that are part of this cluster. + type: array + nullable: true + items: + $ref: "#/components/schemas/BrokerInfo" + clusterSize: + description: The number of brokers in the cluster. + type: integer + format: int32 + nullable: true + partitionsCount: + description: The number of partitions are spread across the cluster. + type: integer + format: int32 + nullable: true + replicationFactor: + description: The configured replication factor for this cluster. + type: integer + format: int32 + nullable: true + gatewayVersion: + description: The version of the Zeebe Gateway. + type: string + nullable: true + BrokerInfo: + description: Provides information on a broker node. + type: object + properties: + nodeId: + description: The unique (within a cluster) node ID for the broker. + type: integer + format: int32 + host: + description: The hostname for reaching the broker. + type: string + port: + description: The port for reaching the broker. + type: integer + format: int32 + partitions: + description: A list of partitions managed or replicated on this broker. + type: array + items: + $ref: "#/components/schemas/Partition" + version: + description: The broker version. + type: string + Partition: + description: Provides information on a partition within a broker node. + type: object + properties: + partitionId: + description: The unique ID of this partition. + type: integer + format: int32 + role: + description: Describes the Raft role of the broker for a given partition. + type: string + enum: + - leader + - follower + - inactive + health: + description: Describes the current health of the partition. + type: string + enum: + - healthy + - unhealthy + - dead + UserTaskCompletionRequest: + type: object + properties: + variables: + additionalProperties: true + description: The variables to complete the user task with. + type: object + nullable: true + action: + description: > + A custom action value that will be accessible from user task events resulting + from this endpoint invocation. If not provided, it will default to "complete". + type: string + nullable: true + UserTaskAssignmentRequest: + type: object + properties: + assignee: + description: The assignee for the user task. The assignee must not be empty or `null`. + type: string + nullable: false + allowOverride: + description: > + By default, the task is reassigned if it was already assigned. Set this to `false` + to return an error in such cases. The task must then first be unassigned to + be assigned again. Use this when you have users picking from group task + queues to prevent race conditions. + type: boolean + nullable: true + action: + description: > + A custom action value that will be accessible from user task events resulting + from this endpoint invocation. If not provided, it will default to "assign". + type: string + nullable: true + UserTaskUpdateRequest: + type: object + properties: + changeset: + allOf: + - $ref: "#/components/schemas/Changeset" + description: | + JSON object with changed task attribute values. + + The following attributes can be adjusted with this endpoint, additional attributes + will be ignored: + + * `candidateGroups` - reset by providing an empty list + * `candidateUsers` - reset by providing an empty list + * `dueDate` - reset by providing an empty String + * `followUpDate` - reset by providing an empty String + + Providing any of those attributes with a `null` value or omitting it preserves + the persisted attribute's value. + + The assignee cannot be adjusted with this endpoint, use the Assign task endpoint. + This ensures correct event emission for assignee changes. + type: object + nullable: true + action: + description: > + A custom action value that will be accessible from user task events resulting + from this endpoint invocation. If not provided, it will default to "update". + type: string + nullable: true + Variables: + description: A map of variables. + type: object + additionalProperties: true + Changeset: + description: | + JSON object with changed task attribute values. + + The following attributes can be adjusted with this endpoint, additional attributes + will be ignored: + + * `candidateGroups` - reset by providing an empty list + * `candidateUsers` - reset by providing an empty list + * `dueDate` - reset by providing an empty String + * `followUpDate` - reset by providing an empty String + + Providing any of those attributes with a `null` value or omitting it preserves + the persisted attribute's value. + + The assignee cannot be adjusted with this endpoint, use the Assign task endpoint. + This ensures correct event emission for assignee changes. + type: object + additionalProperties: true + properties: + dueDate: + type: string + format: date-time + description: The due date of the task. Reset by providing an empty String. + nullable: true + followUpDate: + type: string + format: date-time + description: The follow-up date of the task. Reset by providing an empty String. + nullable: true + candidateUsers: + type: array + description: The list of candidate users of the task. Reset by providing an empty list. + items: + type: string + nullable: true + candidateGroups: + type: array + description: The list of candidate groups of the task. Reset by providing an empty list. + items: + type: string + nullable: true + JobActivationRequest: + type: object + properties: + type: + description: > + the job type, as defined in the BPMN process (e.g. ) + type: string + worker: + description: the name of the worker activating the jobs, mostly used for logging purposes + type: string + timeout: + description: > + a job returned after this call will not be activated by another call until the + timeout (in ms) has been reached + type: integer + format: int64 + maxJobsToActivate: + description: the maximum jobs to activate by this request + type: integer + format: int32 + fetchVariable: + description: > + a list of variables to fetch as the job variables; if empty, all visible variables at + the time of activation for the scope of the job will be returned + type: array + items: + type: string + requestTimeout: + description: > + The request will be completed when at least one job is activated or after the + requestTimeout (in ms). If the requestTimeout = 0, a default timeout is used. + If the requestTimeout < 0, long polling is disabled and the request is completed + immediately, even when no job is activated. + type: integer + format: int64 + tenantIds: + description: a list of IDs of tenants for which to activate jobs + type: array + items: + type: string + JobActivationResponse: + description: The list of activated jobs + type: object + properties: + jobs: + type: array + items: + $ref: "#/components/schemas/ActivatedJob" + ActivatedJob: + type: object + properties: + key: + description: the key, a unique identifier for the job + type: integer + format: int64 + type: + description: the type of the job (should match what was requested) + type: string + processInstanceKey: + description: the job's process instance key + type: integer + format: int64 + bpmnProcessId: + description: the bpmn process ID of the job's process definition + type: string + processDefinitionVersion: + description: the version of the job's process definition + type: integer + format: int32 + processDefinitionKey: + description: the key of the job's process definition + type: integer + format: int64 + elementId: + description: the associated task element ID + type: string + elementInstanceKey: + description: > + the unique key identifying the associated task, unique within the scope of the + process instance + type: integer + format: int64 + customHeaders: + description: a set of custom headers defined during modelling; returned as a serialized JSON document + type: object + additionalProperties: true + worker: + description: the name of the worker which activated this job + type: string + retries: + description: the amount of retries left to this job (should always be positive) + type: integer + format: int32 + deadline: + description: when the job can be activated again, sent as a UNIX epoch timestamp + type: integer + format: int64 + variables: + description: All variables visible to the task scope, computed at activation time + type: object + additionalProperties: true + tenantId: + description: the id of the tenant that owns the job + type: string + ProblemDetail: + description: > + A Problem detail object as described in [RFC 9457](https://www.rfc-editor.org/rfc/rfc9457). + There may be additional properties specific to the problem type. + type: object + properties: + type: + type: string + format: uri + description: A URI identifying the problem type. + default: about:blank + title: + type: string + description: A summary of the problem type. + status: + type: integer + format: int32 + description: The HTTP status code for this problem. + minimum: 400 + maximum: 600 + detail: + type: string + description: An explanation of the problem in more detail. + instance: + type: string + format: uri + description: A URI identifying the origin of the problem. + securitySchemes: + bearerAuth: + type: http + scheme: bearer + bearerFormat: JWT diff --git a/api/camunda/generation-strategy.js b/api/camunda/generation-strategy.js new file mode 100644 index 0000000000..1aa8f11b37 --- /dev/null +++ b/api/camunda/generation-strategy.js @@ -0,0 +1,48 @@ +const removeDuplicateVersionBadge = require("../remove-duplicate-version-badge"); +const replace = require("replace-in-file"); +const outputDir = "docs/apis-tools/camunda-api-rest/specifications"; +const specFile = "api/camunda/camunda-openapi.yaml"; + +function preGenerateDocs() { + hackChangesetDescription(); +} + +function postGenerateDocs() { + removeDuplicateVersionBadge(`${outputDir}/camunda-8-rest-api.info.mdx`); +} + +module.exports = { + outputDir, + preGenerateDocs, + postGenerateDocs, +}; + +function hackChangesetDescription() { + // This is a temporary hack, until https://github.com/camunda/camunda-docs/issues/3568 is resolved. + // The OpenAPI generator plugin we're using does not use the correct `description` property + // for the `UserTaskUpdateRequest` object. Instead of picking up the actual property description, + // it picks up the description of the first merged schema in the `allOf` property (i.e. from the `Changeset` schema). + // This adjustment replaces the description of the `Changeset` schema with the current description of + // the `UserTaskUpdateRequest.changeset` property. + console.log("hacking changeset description..."); + replace.sync({ + files: `${specFile}`, + from: /^ description: A map of changes.$/m, + to: ` description: | + JSON object with changed task attribute values. + + The following attributes can be adjusted with this endpoint, additional attributes + will be ignored: + + * \`candidateGroups\` - reset by providing an empty list + * \`candidateUsers\` - reset by providing an empty list + * \`dueDate\` - reset by providing an empty String + * \`followUpDate\` - reset by providing an empty String + + Providing any of those attributes with a \`null\` value or omitting it preserves + the persisted attribute's value. + + The assignee cannot be adjusted with this endpoint, use the Assign task endpoint. + This ensures correct event emission for assignee changes.`, + }); +} diff --git a/api/generate-api-docs.js b/api/generate-api-docs.js index e2f87827a4..bc9069d424 100644 --- a/api/generate-api-docs.js +++ b/api/generate-api-docs.js @@ -4,10 +4,12 @@ const { execSync } = require("child_process"); const operate = require("./operate/generation-strategy"); const zeebe = require("./zeebe/generation-strategy"); const tasklist = require("./tasklist/generation-strategy"); +const camunda = require("./camunda/generation-strategy"); const apiStrategies = { operate, zeebe, tasklist, + camunda, }; // Execute a command as if we were in the terminal diff --git a/api/zeebe/generation-strategy.js b/api/zeebe/generation-strategy.js index c93115eeff..d5ff765758 100644 --- a/api/zeebe/generation-strategy.js +++ b/api/zeebe/generation-strategy.js @@ -46,15 +46,3 @@ function hackChangesetDescription() { This ensures correct event emission for assignee changes.`, }); } - -function removeDuplicateVersionBadge() { - // The generator adds a version badge to the Introduction file, but - // we already have a version badge from the main docs layout. - console.log("removing duplicate version badge..."); - replace.sync({ - files: - "docs/apis-tools/zeebe-api-rest/specifications/zeebe-rest-api.info.mdx", - from: /^.*Version: .*$/m, - to: "", - }); -} diff --git a/docs/apis-tools/camunda-api-rest/camunda-api-rest-authentication.md b/docs/apis-tools/camunda-api-rest/camunda-api-rest-authentication.md new file mode 100644 index 0000000000..29622453ee --- /dev/null +++ b/docs/apis-tools/camunda-api-rest/camunda-api-rest-authentication.md @@ -0,0 +1,60 @@ +--- +id: camunda-api-rest-authentication +title: "Authentication" +description: "Step through authentication options that can be used to access Camunda 8 REST API." +--- + +To access the API endpoint, you need an access token. + +Your client must send a header in each request: + +`Authorization: Bearer ` + +For example, send a request using _curl_: + +```shell +curl -XGET -H'Accept: application/json' -H'Authorization: Bearer ' http://localhost:8080/v2/topology +``` + +### How to obtain the access token + +You must obtain a token to use the Camunda 8 REST API. When you create a Zeebe [client](/guides/setup-client-connection-credentials.md), you get all the information needed to connect to Zeebe. + +Refer to our guide on [building your own client](../build-your-own-client.md). + +The following settings are needed: + +| Name | Description | Default value | +| ------------------------ | ----------------------------------------------- | ------------------ | +| client id | Name of your registered client | - | +| client secret | Password for your registered client | - | +| audience | Permission name; if not given use default value | `zeebe.camunda.io` | +| authorization server url | Token issuer server | - | + +Send a token issue _POST_ request to the authorization server with the following content: + +```json +{ + "client_id": "", + "client_secret": "", + "audience": "", + "grant_type": "client_credentials" +} +``` + +Refer to the following example with _curl_: + +```shell +curl -X POST --header 'content-type: application/json' --data '{"client_id": "", "client_secret":"","audience":"","grant_type":"client_credentials"}' https:// +``` + +If the authentication is successful, the authorization server sends back the access token, when it expires, scope, and type: + +```json +{ + "access_token": "ey...", + "scope": "...", + "expires_in": 86400, + "token_type": "Bearer" +} +``` diff --git a/docs/apis-tools/camunda-api-rest/camunda-api-rest-overview.md b/docs/apis-tools/camunda-api-rest/camunda-api-rest-overview.md new file mode 100644 index 0000000000..df27cdcdfa --- /dev/null +++ b/docs/apis-tools/camunda-api-rest/camunda-api-rest-overview.md @@ -0,0 +1,27 @@ +--- +id: camunda-api-rest-overview +title: "Overview" +description: "Interact with Camunda 8 clusters. Activate jobs and run user task state operations for Zeebe user tasks." +--- + +The Camunda 8 REST API is a REST API designed to interact with a Camunda 8 cluster. + +:::note +Ensure you [authenticate](./camunda-api-rest-authentication.md) before accessing the Camunda 8 REST API. +::: + +## Context paths + +For SaaS: `https://${REGION}.zeebe.camunda.io:443/${CLUSTER_ID}/v2/`, and for Self-Managed installations: `http://localhost:8080/v2/`. + +:::note +Find your region and cluster id under **Connection information** in your client credentials (revealed when you click on your client under the **API** tab within your cluster). + +For Self-Managed, the host and port depend on your configuration. The context path mentioned here is the default for the Zeebe component. +::: + +## API Explorer + +See [the interactive Camunda 8 REST API Explorer][camunda-api-explorer] for specifications, example requests and responses, and code samples of interacting with the Camunda 8 REST API. + +[camunda-api-explorer]: ./specifications/camunda-8-rest-api.info.mdx diff --git a/docs/apis-tools/camunda-api-rest/sidebar-schema.js b/docs/apis-tools/camunda-api-rest/sidebar-schema.js new file mode 100644 index 0000000000..465f7ac283 --- /dev/null +++ b/docs/apis-tools/camunda-api-rest/sidebar-schema.js @@ -0,0 +1,11 @@ +/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ + +module.exports = { + "Camunda 8 API (REST)": [ + "apis-tools/camunda-api-rest/camunda-api-rest-overview", + "apis-tools/camunda-api-rest/camunda-api-rest-authentication", + { + Specifications: require("./specifications/sidebar.js"), + }, + ], +}; diff --git a/docs/apis-tools/camunda-api-rest/specifications/activate-jobs.api.mdx b/docs/apis-tools/camunda-api-rest/specifications/activate-jobs.api.mdx new file mode 100644 index 0000000000..6ff2ca29f7 --- /dev/null +++ b/docs/apis-tools/camunda-api-rest/specifications/activate-jobs.api.mdx @@ -0,0 +1,48 @@ +--- +id: activate-jobs +title: "Activate jobs" +description: "Iterate through all known partitions and activate jobs up to the requested maximum." +sidebar_label: "Activate jobs" +hide_title: true +hide_table_of_contents: true +api: eJzNWG1v20YS/iuL/XIJwEhK7nAI2BdAtdM7pa1rxE57gO0PQ3Ikrr3cZXaHlllB/72Y5astynVwX+ovFrWz8/rMzEPtJMHGy/hKfrSJvIlkhj51qiRljYzlitABoaDc2WqTC9Ba3Bm7NaIER4qlvACTCUhJ3bNkVQqygnIUDr9U6AkzUcCDKqqCBa+NJ4dQsEQhEkjvOvFUKzQkwPNTLcBhrzSbXRsZyVbhDzarZbwLj8phJmNyFUYytYbQEB9BWWqVArs3v/UcyU76NMcC+BPVJcpY2uQWU5KRLJ0t0ZFCP5zuniSCPby1ieDTiJ3McK0MZkKZ4P0P57+cidLZFL0Xr3C2mYlv/0BMMCbwd6csHLIVFHx3LUuoCzT0xqO7VyleSzH//nWIsvXOk1NmI/eR3Fp3h27aJQMFCrsOLjRyXdKU2YjWaR+JwnrStag8ZmJtndB2s2GJsnKl9ein7JIq0FZ0aBhCJhxS5TgDsCZ0gnLlRcr42CqthbEkklEFRVILMJZydI1UZUjp4GFrR7xSRhT+tcjBiwTRCIeQ5piNs6IM4QadjOTaugKo+erf/2J/C3j4aBN/aZet0emUdWDkxDD2euQmdRNEC7O/MvrPd2x0jZTmv4FTkOgJgyC08sQVum9lgs1wq4V6SGZ/+o1Qa4FFSXUUmu1eeZVoHF0H6rPGertyWxMKy0c+tWWPCtYeKpJgX7JxRsE5qGUkFWExwn+Pg33fd5fH8HA5NHtvKrVFqZELv83RsNMagTNhGpeUH2HDuh5EvabLx6iYidV66vg7sYgEcDdCpanHkvIB68dufcu3tOUGsFpzIygvMuU5w1mYZ6NLfDaEo4oCMwWEuo4E3qNpAjT2IKzZS4FLaMDQKvPP4Wd16kNJg6wPtd7mKs0fQZgx/RWlDU1OjFue/sseSZ/aDtjvm/L70hrfTMd3i8U0ADo/h6qyMzP5FXP5pUqHCI+M8CA0xHssD0du32E9PTnukJtSVEZ9qVCoDA2ptULXN96tTV5Y8aM7hk/GrfvK57bSvEJ5YmxzILEFP+zW11OTu91DK+MJTIo/HQvo1ib/8P3WUq04x/myMJKyMOetrWzaBIv0Flano9BGlrN+PT4TzbBDf0PnVQOeQ4P3zeHLDT033Q9MH03lHdb/r8kmp6iRicGxfIL3NlWhFZhYiFZcrE6nUtcp+ysgtJDmIFpY1x1/eGIw6mS3ivKW+zzaN0/R9NIhmFaebPFfhAzd5CD0GEZBIyfyRrCnYVnFMYvCZhgG+jcjfuIF33YKtPoDM/Hx4tczkdm04tRMzBLIslAv0OejucAc8+vJWDOih/EVCMajMTEUyyG5dgRN1L2wlQkJaMWExjU13LlR2Y8K0FuomUKJ0npF6h5fvwztGUKmlZmYTGHFdSMpBfOY2sEGlImEb+k7iM9nq/8JLC1vJ1WgJyjKl6GgpzmHPiyZDfUsqONF7ctD6IWAwyjs6ir4RWN2xJ58bbW7zTxdE5V11W7kBPF4tlvjD7fBiE51K7ejqRm/eT23jJv1G7Yx01yk3GYylqUNJLUEymUs57z05kO8MpL8bhGa6WonK6dlLHfNst3H8/kut5728a60jvbz+3fySfL5uAk7MCsZS21T0Hlj9HBV88G4AU7ei08fLi7Ff4BwC/UsjFPrnuh8v3i/mFTHok9VLc9XookpaBsTh05fTlRO6muEn9W4399wztLKKaovWL7JRILg0C0rTnPPHVpDQS0/N0Iyaj/82CH74++XoejMdj4N768fHoAJ5SEpGybM8E3/IraYfMlZHLyFXHV3bw7J++IR3xwk95FUZm2DRy0MT6CoTAZiSBaDpFu+cjF7e5BqTiizodQWRWUC1TObsCuavPcaU1154rRHUqsUGd/xTjKARoZ/bk5Eu/DF2xmDpYEyF8DH8/lGUV4ls9QW87S51v9PtE3mBSgzb034+cnyl89np8s3P69OPpxdfHjzdraY0QOFEnE/FWBGfiyf8OpHse4GYvv3+pmkBRThA81LDcpws4Sk7dphcSXbgEbj4iZqW/5K7nYJePzs9H7PX3+p0NUyvroZJgQ/7SPZLOEwXwJplidNRt5csgssrqtAwJ/S/n3U3VimKZb0rOzNaOad/3pxyU3W/gTE617G0sGWfx6CrYzltbyWMpI2VCn0b/h+JzWYTQUblm/08t+fCielIg== +sidebar_class_name: "post api-method" +info_path: docs/apis-tools/camunda-api-rest/specifications/camunda-8-rest-api +custom_edit_url: null +hide_send_button: true +--- + +import ApiTabs from "@theme/ApiTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import Markdown from "@theme/Markdown"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; + +

Activate jobs

+ + + +Iterate through all known partitions and activate jobs up to the requested maximum. + +## Request + +

Body

required
    )\n","type":"string"}}>
+ +The list of activated jobs. + +
Schema
    jobs object[]
  • Array [
  • customHeaders object
    + +a set of custom headers defined during modelling; returned as a serialized JSON document + +
    variables object
    + +All variables visible to the task scope, computed at activation time + +
  • ]
diff --git a/docs/apis-tools/camunda-api-rest/specifications/assign-a-user-task.api.mdx b/docs/apis-tools/camunda-api-rest/specifications/assign-a-user-task.api.mdx new file mode 100644 index 0000000000..834691c2de --- /dev/null +++ b/docs/apis-tools/camunda-api-rest/specifications/assign-a-user-task.api.mdx @@ -0,0 +1,55 @@ +--- +id: assign-a-user-task +title: "Assign a user task" +description: "Assigns a user task with the given key to the given assignee." +sidebar_label: "Assign a user task" +hide_title: true +hide_table_of_contents: true +api: eJztWFlz2zYQ/is7eGkypSUlddOEb47jtG5zeGy5fbA9YwhcSYhBgMYhmaPhf+8sQIrWkWPaPMYzGpPEYs/vW2K5Yp7PHMuv2KVDC567O3aTsQKdsLLy0miWsyPn5Ew74BA6IVhKPwc/R5jJBWq4wxq8efSAxz2IA5axilteokdLhlZM8xJZzkjXmLu7v7BmGZNkqOJ+zjJm8T5IiwXLvQ247c14jtGcmUZzvUvetFbJphNzLDnLV8zXFZmT2uMMLcvY1NiS+/ToxSFrmptkEp1/bYqa9mx7IIz2qD0t8apSUnByZvjJkUerXWNm8gmFp9CtqdB6iS7ubZNC17tBdaswNXYztAFsrJfBedDGwwQBy8rXYCzc6qDULYXe+uC8lXrGMkYLfKKQ5VOuHDYZ40qZ5ccFWiuLPc68rqHAKQ/KZ9GPmF3pwGLrQgFyCtLDkjvgyiIv6s67YgAX6MHPpaOC3EaTt3Rp0QergWtAa40FqcEFMQfBHboUYTQUo/Nz1DCV1sUgg14b9oYerG/5jEs9gEuHyeSS9tUmwJwvUgIdVFLcST2DqTUlzKwJVTJ0HzBg9LKyuEDtwXKBIIwuJGXCDa51n86JMQq53sgngYPSKVLitvN4BCI4b0pIArDgKpCf3MNSKhUDEQKdkxOFyb0ezdEjyrkLyq/dj0GiLiojtQepFyZBcQCn0wiJypqFLLDIYn3ISltKivO6ReA12whtD1JiZE3GvPR0G7sDkTW1ghK1P0+MYU1DchZdZbRLMH8+OtyP8HV0P7m2hKQpwaj4FJzHYsCajB2ORl+iSNy0Q/89HUlw3dJEmLJSSPrhvbEIBXoulQNucZ0yQiTt72KBiSnqlKjP8L+yZqKw/Hm3D2wD4SxJtnYh9QfgDpLgJFm/On97DK8Of/3t5snc+8rlw+FyuRzYqTjAQnpjB8bOhnYq6EdyTyNvLELJ6winIkGXK+g7D7gKhZxK0XXo1m2g8m8A4TNtK62uduCybqTBSrbz0oDL81OQBWovpzUBeMd03BPByXLGJyb4fKK4vmM98HaNbltxoSy5Xb8ONg00GXOe++C++iL45fmObgLcH+PxGSQVIEzR9WbpOkMURCm1LEPJ8sPRKGMlf0h3L0ajhnRSxb8hEg34UCmuI7S2w5Eayh63MTCpnedafK/KGCtnctvugD1uAi2I36SIEvEPv8r1fcQkxhMzpybojvKv/oMe6TrSLq3Rs1gpBBGsRe1V/YPsP8j+g+zfi+xNxkr0c1PQSd24CB06sOdsSCQ9IJK64erRub4Z9i9sOpOjXXRDQLCK5WyVSNTkw+Fqbpxv8lVlrG+GC6rQgltJx5FYUFpOZOtApIzgap4c2S0mLdCk0QV5/BLOTy7G8Dv3uOR1zCrZ2tT5cvRytFcdiW6rOjo7hRRTAt+jhtDpI2bv1ZeEv6gxDiYORbDS1xcknzIxQW7RHgVK/RoNraGoNh5XoxDL2ou3HUb+/Gccy0xd7Lwfek4eOB2QNoeUHmJbA0MairpjbycWYTo10akWRMe8DLrg0IdHZUXr0sbR4NkuYM9OI++EKcugY/PVs7739xqFogOjJU4qKVC76H07XHZi79IK/J1swrMBlTeBr+u6M+nnYTIQphyKtG39f6LMZFhyqYetCTc8Pnp/+eHN0cG70+OTDxcnB88Go4F/8DGpxIqS60d+pPPy48l5O+BV/77534N2iwWPD35YKS411SQGu2qpesV6qrKM5ZtD+CO23mQt467YajXhDi+tahp6fB/Q1iy/uukJGhldSEfXRTtmfiHMJ+fteP0Uvm2Y3xtX+5DrOrYKFeiOZewO662vC81Nk7E58gJt9DRJHCd/Dsakp9ewM983WbfjSAis/GdkN44HxNx1rzz7eDEmIrbfFkpDFGKWL+lTB1+ynF2za/LcxFxFjsfnK6a4ngU+I/mkl/7+BSY7JFE= +sidebar_class_name: "post api-method" +info_path: docs/apis-tools/camunda-api-rest/specifications/camunda-8-rest-api +custom_edit_url: null +hide_send_button: true +--- + +import ApiTabs from "@theme/ApiTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import Markdown from "@theme/Markdown"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; + +

Assign a user task

+ + + +Assigns a user task with the given key to the given assignee. + +## Request + +

Path Parameters

Body

required
+ +The user task's assignment was adjusted. + +
+ +The assignment of the user task with the given key cannot be completed. More details are provided in the response body. + +
Schema
    = 400` and `<= 600`"} schema={{"type":"integer","format":"int32","description":"The HTTP status code for this problem.","minimum":400,"maximum":600}}>
+ +The user task with the given key was not found. + +
+ +The user task with the given key is in the wrong state currently. More details are provided in the response body. + +
Schema
    = 400` and `<= 600`"} schema={{"type":"integer","format":"int32","description":"The HTTP status code for this problem.","minimum":400,"maximum":600}}>
diff --git a/docs/apis-tools/camunda-api-rest/specifications/camunda-8-rest-api.info.mdx b/docs/apis-tools/camunda-api-rest/specifications/camunda-8-rest-api.info.mdx new file mode 100644 index 0000000000..f140504e0c --- /dev/null +++ b/docs/apis-tools/camunda-api-rest/specifications/camunda-8-rest-api.info.mdx @@ -0,0 +1,56 @@ +--- +id: camunda-8-rest-api +title: "Camunda 8 REST API" +description: "API for communicating with the Camunda 8 cluster." +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import SchemaTabs from "@theme/SchemaTabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiExplorer/Export"; + +

Camunda 8 REST API

+ +API for communicating with the Camunda 8 cluster. + +
+

+ Authentication +

+ + +
+ + + + + + + + + + + + + + + +
Security Scheme Type:http
HTTP Authorization Scheme:bearer
Bearer format:JWT
+
+
+
+
+ diff --git a/docs/apis-tools/camunda-api-rest/specifications/complete-a-user-task.api.mdx b/docs/apis-tools/camunda-api-rest/specifications/complete-a-user-task.api.mdx new file mode 100644 index 0000000000..5044920a20 --- /dev/null +++ b/docs/apis-tools/camunda-api-rest/specifications/complete-a-user-task.api.mdx @@ -0,0 +1,59 @@ +--- +id: complete-a-user-task +title: "Complete a user task" +description: "Completes a user task with the given key." +sidebar_label: "Complete a user task" +hide_title: true +hide_table_of_contents: true +api: eJztV01z2zYQ/SuYPSVTmlRSN3V4UxWndZukHltuD7YPILiUEIMAA4CSNRz+984SpKiPuEk7OcYzGovEYt9+vActGvB84SC9hRuHlnnuHuA+ghydsLLy0mhIYWbKSqFHxzirBzO2ln7J/BLZQq5QswfcxBBBxS0v0aMlpw1oXiKkQLvm3D38gRuIQJLTivslRGDxUy0t5pB6W+Mh8nyJ5JiZokMawb1hoo+KUJ1YYskhbcBvKgKU2uMCLURQGFtyH169OoW2vQ+g6PwvJt/QnjGGgiuHEQijPWpPa7yqlBSc4kk+OgqqOUYz2UcUnrK3pkLrJTpaXXEreabCA89zSV64utwxeirp7dbdTA9qQA2g5A+D0LVStDd4byPgInhuDoCmTNTOm5IFA7biqiYQ7tlaKsUyZFwIdE5mCllhTbmDjivU3jGLrlZe6kVY90vpGOq8MlJ7JvXKhNrF7KJg2nhWWbOSOeYRkz1KjgWvladE72BI9Q7iOz3m5ryVenGcWxuBl54eO/4SxXqySqOvQpehbcnOoquMdqEZLyenx+WY71eXu23hc+bqrhBFrdQmhjaC08nkix6OBMIE11SEDEfXMXtvLLIcPZfKMW5xWyMmdbd/CJ1lJt+EujzB0MqaTGH5wzFTDzt/GSx7XBbIw7hjwTAL6LdXb2fs9elPP98/W3pfuTRJ1ut1bAtxgrn0xsbGLhJbCPqQ3fOYzZdokZV80/Fny3o2aoO5CoUspKCeU4J92Iy6vdf3J4QVVpsjdmy1XlsJh7KaspurCyZz1F4WG2LsEXS3p2MjpMAzU/s0U1w/wMizY9BDFFeXJbfbM2sfoI3Aee5r98Wz6seXR76JXr/N55csuGDC5MgKY4PqeiBKopRalnUJ6elkEkHJH8PTq8mkJZ/U8a/IRDN8rBTXHbUO05GalSNvu8Skdp5r8a06Y6xcyEPcGHY135P4Tcgo6Pz0K6R9LExSOymzMLXOe4G//h9+pBtEu7ZGL7pOIRO1tai92nwX+3exfxf7txJ7G0GJfmlyGieN66hDU2UKCYn0hETqkmZn+GwTsR0PaGxEuxom1doqSKEJImrTJGmWxvk2bSpjfZusqEN7Ax0tB7ENJFJGcLUMgRw3kxZoHB6SnJ2xq/PrOfuVe1zzMFUQ1r7Ps8nZ5LPuyPTQ1fTygoWcAvl2DoTBHyn7s/6C8b967GZnh6K20m+uyT5UIkNu0U5rKv2WDT1Q55aegxFE/Ze3A0d+/3vetZlOsatxLj9/5NSowzF6Z5od+NaRsTAddE+VGS9rnXM2JkHNQ+vCxkn84piWlxeduoQpy1p3R6xejCf86FGo2nkqRwRKCtSui7G/5wxm78IK+ytgshcxNTFQbDhbF9Iv6ywWpkxE2Lb9nymTJSWXOukhXDKbvr/58GZ68u5idv7h+vzkRTyJ/aPvSkfcL7nejWO4Mexc2A5Tbsbflf90w+v76/HRJ5XiUlMHutSaXn63MMoPIkj3b387CryPehXdQtNk3OGNVW1Lrz/VaDeQ3t6PoutUmktH38er2pMpPbvqb3XP2dfeIj+bWf+S6013AKianiCCB9wcXGzb+zaCJfIcbRdrsJiFiE7m5Gf0cHSvbKNhx1QIrPwTtns/+qTH7Ql4+ef1nOTVX2pLk9Ney9d0y+ZrSOEO7ihy01WrU273vgHF9aLmC7IPfunvH1x7kp4= +sidebar_class_name: "post api-method" +info_path: docs/apis-tools/camunda-api-rest/specifications/camunda-8-rest-api +custom_edit_url: null +hide_send_button: true +--- + +import ApiTabs from "@theme/ApiTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import Markdown from "@theme/Markdown"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; + +

Complete a user task

+ + + +Completes a user task with the given key. + +## Request + +

Path Parameters

Body

    variables objectnullable
    + +The variables to complete the user task with. + +
+ +The user task was completed successfully. + +
+ +The user task with the given key cannot be completed. More details are provided in the response body. + +
Schema
    = 400` and `<= 600`"} schema={{"type":"integer","format":"int32","description":"The HTTP status code for this problem.","minimum":400,"maximum":600}}>
+ +The user task with the given key was not found. + +
+ +The user task with the given key is in the wrong state currently. More details are provided in the response body. + +
Schema
    = 400` and `<= 600`"} schema={{"type":"integer","format":"int32","description":"The HTTP status code for this problem.","minimum":400,"maximum":600}}>
diff --git a/docs/apis-tools/camunda-api-rest/specifications/get-cluster-topology.api.mdx b/docs/apis-tools/camunda-api-rest/specifications/get-cluster-topology.api.mdx new file mode 100644 index 0000000000..be42854941 --- /dev/null +++ b/docs/apis-tools/camunda-api-rest/specifications/get-cluster-topology.api.mdx @@ -0,0 +1,48 @@ +--- +id: get-cluster-topology +title: "Get cluster topology" +description: "Obtains the current topology of the cluster the gateway is part of." +sidebar_label: "Get cluster topology" +hide_title: true +hide_table_of_contents: true +api: eJy1Vt9v2zYQ/leIe9oA1XK6l0BvmZMGHrouSNINWOAHSjpLbCVSISmnnqD/vTiSshRHzQ+g84sl6vh9d/zujteB5YWB5A5WVWssathEkKPJtGisUBIS+Cu1XEjDbIksa7VGaZlVjapUsWdq69f9ZvdccIsPfM+EYQ3XlqntAiLQaBolDRpIOni/XNLf/8GTKWlRWoLnTVOJjBN8/MUQRwcmK7HmT8lvS2SDi0TGR2qN9y0aS+B23yAkoNIvmFmIoNGqQW2FjyrV6itq8xT8jFXCkIMsmDBbcsu4xsFzZkthhugmTFxrvocIZFtVPK0QEqtbjEBYrGeIrrTaiRwNE3KrdO1CZ0oyHoiZVDm+HAhZrfP5Q2qluG+R/fIgbCkIOTj9q8Nm63O2VV4fTzlhE9JigRoi8M75pd/eQx9BqYydJ6QvktfocDXyrBSymCcwVgtZEFyj9A/g6MsroJ7zlTQTBPms1KMVq7nkBebMsfqcpDfpVX/CPYj+ZpEPlOygzpt0P+x/Qfz1+SFlD1teeXZaURIfY5+7txR98V/zrWVkOFR9CIJU46wQO5SzvEH+CFC2NbW0Cnke/Kgq9eAeheSZFTuEDWUd8sqWL/kzNCNvPTj1Kg/8FhKzleNzjjyHTd9HYIWl84CrAQxodYfaCN+vnmoQDiPYzGT/BPZ3Z7uWW+WWQ6neiP9mNCBs2dYp6mmjEnLad18j8nGzelQwK9XKHxTmyD2pHGqRptHIc8YzrYz5Cd4MJSiU/MAzq/S8P5mSW1G0GnM22cG2bktocrM9+y2+hDvs7+cED0oPefcvYors0m+cy70jkkk63IYr7TpcdNDTL4IabalySKBA1xQ41QTEww0IERjUO3e13XXQ6goS6PxN2idx3FGL7pOOWmsf7yjQHdeCfHBtZeztW95WdB6Vynjllo+HjUcdP0S8OmXXFze3Y8yPGvyAebo8Xc7CuY5/BHV2tWY+Joc2nQoGvNLaZhbPGz+L2PcbOrOs1cLub8g+TAjINeqz1vecIFwgcrD07o0gCg8fhiT6459bV8XU9t32oOqK163MORsdgUkLgeXi5EkY5CxlcKbqupUutWXhLg0f0wFxkt2VyJByhuYDXk+JP/ovLGQxO1mQED5NKDiTxHEhbNmmi0zVcea3Hf7TSqVxzYWMA4WJV2d/fv50fvbu43p18enm4t3JYrmw36wLv1HG1lxO/LhEOw6GY84+CrkbB8OfNGgG9Sx+s3FTcSEpkVzQXaigOzh4sxkmnDvoupQb/Kyrvqfl+xb1HpK7zVg09OYvJ7q9qOS+4p5UyzJsrKuuqnWDwvGAS2l3KObLC8qX7+HRHvI= +sidebar_class_name: "get api-method" +info_path: docs/apis-tools/camunda-api-rest/specifications/camunda-8-rest-api +custom_edit_url: null +hide_send_button: true +--- + +import ApiTabs from "@theme/ApiTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import Markdown from "@theme/Markdown"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; + +

Get cluster topology

+ + + +Obtains the current topology of the cluster the gateway is part of. + +## Request + +
+ +Obtains the current topology of the cluster the gateway is part of. + +
Schema
    brokers object[]nullable
    + +A list of brokers that are part of this cluster. + +
  • Array [
  • partitions object[]
    + +A list of partitions managed or replicated on this broker. + +
  • Array [
  • ]
  • ]
diff --git a/docs/apis-tools/camunda-api-rest/specifications/sidebar.js b/docs/apis-tools/camunda-api-rest/specifications/sidebar.js new file mode 100644 index 0000000000..b34b531b67 --- /dev/null +++ b/docs/apis-tools/camunda-api-rest/specifications/sidebar.js @@ -0,0 +1,60 @@ +module.exports = [ + { + type: "doc", + id: "apis-tools/camunda-api-rest/specifications/camunda-8-rest-api", + }, + { + type: "category", + label: "Cluster", + items: [ + { + type: "doc", + id: "apis-tools/camunda-api-rest/specifications/get-cluster-topology", + label: "Get cluster topology", + className: "api-method get", + }, + ], + }, + { + type: "category", + label: "Job", + items: [ + { + type: "doc", + id: "apis-tools/camunda-api-rest/specifications/activate-jobs", + label: "Activate jobs", + className: "api-method post", + }, + ], + }, + { + type: "category", + label: "User task", + items: [ + { + type: "doc", + id: "apis-tools/camunda-api-rest/specifications/complete-a-user-task", + label: "Complete a user task", + className: "api-method post", + }, + { + type: "doc", + id: "apis-tools/camunda-api-rest/specifications/assign-a-user-task", + label: "Assign a user task", + className: "api-method post", + }, + { + type: "doc", + id: "apis-tools/camunda-api-rest/specifications/update-a-user-task", + label: "Update a user task", + className: "api-method patch", + }, + { + type: "doc", + id: "apis-tools/camunda-api-rest/specifications/unassign-a-user-task", + label: "Unassign a user task", + className: "api-method delete", + }, + ], + }, +]; diff --git a/docs/apis-tools/camunda-api-rest/specifications/unassign-a-user-task.api.mdx b/docs/apis-tools/camunda-api-rest/specifications/unassign-a-user-task.api.mdx new file mode 100644 index 0000000000..fe705b994c --- /dev/null +++ b/docs/apis-tools/camunda-api-rest/specifications/unassign-a-user-task.api.mdx @@ -0,0 +1,55 @@ +--- +id: unassign-a-user-task +title: "Unassign a user task" +description: "Removes the assignee of a task with the given key." +sidebar_label: "Unassign a user task" +hide_title: true +hide_table_of_contents: true +api: eJztV01v20YQ/SuLOSUoTcqpmzq8CbbSunUCw5bbg6vDcjkUNyZ3mf2QTBD878VwqQ/LblwEOfogUCRn35vHmbccduD40kJ6B7cWDXPc3sMighytMLJxUitI4RprvULLXImMWyuXCpHpgvEhnq2lK4d7S7lCxe6xjSGChhteo0ND6B0oXiOk4C2aObf3f2ILEUhCb7grIQKDX700mEPqjMfDFOYlEjCxEpPfJEtMVpRYc0g7cG1DJFI5XKKBCAptau7Cpfcn0PcLIrKNVhYtrXg3OaHDU7ItA1tzy7wadefMeiHQ2sJXVRtDH8HJZPIixJMnxARXSjuW4R52zD5pgyxHx2VlGTfIGqNXMsecSTUAbJJnmc7b+B8FEQitHCpHOfCmqaTglEPSGJ1VWP/0xVJC3d5TepzplF2FyJGX6ewLCse4ZSEwC+x31x/P2IeTX35dvCmda2yaJOv1OjaFOMJcOm1ibZaJKQT9KO5tzOYlGmQ1b0knz3NJnLwiVQ0aJ9Ey26CQhRTM6UHgmDajUgZ9Y1FDWtRY28W7km9Lb52RarlfeW8kHHbTlN1eXzCZo3KyaKVaPqUe1hTcV4TBM+1dmlVc3VPFnXTVs6SHLNbXNTfbrn1M0EdgHXfevti5P797gk399ft8fsUCBBM6R1Zow1wp7YaIRNRSydrXkJ5MJhHU/CGcvZ9MesKkiv8PJYrhQ1NxNbTWoRypWL3r20GYVNZxJX5UZbSRS3nIG0O/qwWMTXweFPV9PzjzZXM/dSb5naxZaK/y0eEfvgNH2o1p10ar5VApZMIbg8pV7avZX83+avYfZfY+ghpdqXNIIccKHQ4jiCshhYRsekQ2tUm3N4D0yWaYoSECzWozq3hTQQpdMFGfJklXauv6tGu0cX2yogqtuJE8q0Jf0u1gtk0TVVrwarj8XDHpBg1EG5Fnp+x6djNnv3GHax7GCuJ6jHk6OZ08C0ehh1DTqwsWNIXm29sQNnjk7GfxQvA3EYdJyqLwRrr2huLDk8iQGzRTTw9+2w0j0QBL5yEIovHPx02P/PH3fCizVIUelo/lPuO1Vzlnu0SoAGhsSHkSHz9trauLwSFC17VXwzaplrtdeocoKm8dSYqgkgKVHdp4nFY3YZfhDvsrcLLjmAoR2mSzPy6lK30WC10nIizbHrNKZ0nNpUpGCpucTT/dfj6fHl1enM0+38yOjuNJ7B7cIL/R1tVc7eVxO46IjO9eOYeSu9274fsG9rFYDh9c0lRcKuqbQWM3OukOdk6CCNLHw/zWTItoNMQddF3GLd6aqu/p8lePpoX0brHzz2C4XFr6n0Na8MoeDv/7yt5cj58Jb9m3Pgme1TJe5Kod/Ft5OoMI7rE9+DLpF30EJfIczZBfiJgKgY3bW/ufb2Ayx3Y7Op9dzuYz6Pt/AcG3nLc= +sidebar_class_name: "delete api-method" +info_path: docs/apis-tools/camunda-api-rest/specifications/camunda-8-rest-api +custom_edit_url: null +hide_send_button: true +--- + +import ApiTabs from "@theme/ApiTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import Markdown from "@theme/Markdown"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; + +

Unassign a user task

+ + + +Removes the assignee of a task with the given key. + +## Request + +

Path Parameters

+ +The user task was unassigned successfully. + +
+ +The user task with the given key cannot be unassigned. More details are provided in the response body. + +
Schema
    = 400` and `<= 600`"} schema={{"type":"integer","format":"int32","description":"The HTTP status code for this problem.","minimum":400,"maximum":600}}>
+ +The user task with the given key was not found. + +
+ +The user task with the given key is in the wrong state currently. More details are provided in the response body. + +
Schema
    = 400` and `<= 600`"} schema={{"type":"integer","format":"int32","description":"The HTTP status code for this problem.","minimum":400,"maximum":600}}>
diff --git a/docs/apis-tools/camunda-api-rest/specifications/update-a-user-task.api.mdx b/docs/apis-tools/camunda-api-rest/specifications/update-a-user-task.api.mdx new file mode 100644 index 0000000000..370e1db0eb --- /dev/null +++ b/docs/apis-tools/camunda-api-rest/specifications/update-a-user-task.api.mdx @@ -0,0 +1,73 @@ +--- +id: update-a-user-task +title: "Update a user task" +description: "Update a user task with the given key." +sidebar_label: "Update a user task" +hide_title: true +hide_table_of_contents: true +api: eJztWOtv2zYQ/1cIflm7ybKTuW2qb16atun6CBJnAxYHCC2dbTYUqfIRxzD0vw9HSpb8yGNdB+xDAgSJzXvf/Y7HW1LLpoYmF/TcgCaWmWt6GdEMTKp5YbmSNKHnRcYsEEZcTUPm3M6InQGZ8huQ5BoWMY1owTTLwYJGiUsqWQ40ocg1ZOb6d1jQiHKUWDA7oxHV8M1xDRlNrHawqXY4AxRM1MRrapRbRZw3CXWadAY5o8mS2kWB6ri0MAVNIzpROmc2fPWyT8vyMqgEY39T2QJ5GgsmTBiIaKqkBWnxjBWF4ClDa7pfDZq03Namxl8htei7VgVoy8HgaTpjcgoGgiAhvkx8RNYd/HD25TMJAkJAA1cWvGTWaj52FsgNEw5MPJIjiTGZKCHUnMtpQ2JIyiQZA2HZV2csZHWCuCEgs0JxaSPCsoyjaiZanCM550IgL59KpSFLUM/P5CplMuMY5XdaucJckQ7R6BEZL0ih1Q3PvAmSQF7YBRHc2HU+rKjHs2UO3jALD9GfWc3l1HOEOJwX/4RtJE9ah1VtKQPtUPrQMXIlnRBXIfhEaaJybi3ycUsK1KVvMHpYmgVow33YV2J+MoFzlTVmDJ9KAMyUVPbBZDkDvuwHni+URH0ao0hPbZzG5CutsYjgBqQlkHNjuJJkonRLbajIeCRptFW8TWWctMo4gHK9sKs0tRBgfGjbcMPkdyzPge6CdOaA+H5S4Ro9i8npg8lDsGNK2FhAsK1EnU0N/AubgpiOK36cZeswaNnGtGaLnVYgFlD3itX3PPN4c1AAGsMt5GY7HOV9ZgaUf6edU8/8HxpaRtRyix/p4aq1lls31VNHfeqo/4+OugU0loYa3RwCBiR1xqqcBIIqOnbGsIJDGbE0BWP4WACZaJW3JiFvnsE8OeEj6c/X/CZc3qgwxcTkeEIwUiGdkEUYea8lgwlzwuJoNaJhuBrRNc9WLfVuZJ5Xg16YF0/DpEXLEmk0mEJJEy6R/V5/OxDDtRlvzkw15GXEOB+AiRNiEWNz6Pd6D/JvDaitMqkEx+ST0kAysIwLQ5iGVWQIl567NpuMVbYI8bhjQiy0GgvIf9meFDfzfRIoK711u2KGBMJx0H5x+vaQvO6/eHX5bGZtYZJudz6fx3qSdiDjVulY6WlXT1L8RbrnMRnOQAPJ2SJgYdWbmiucmAJSPuEpZtoDrTIGs7y7ktfv/3B6z0XrNN+6NAbk/PSY8Ayk5ZMF1umWas/jaxCvnrFyNhkLJq9pU1/bSje1GJfnTK9eDOsKyogay6wzD74Vft3fee29Hw5PSBBBUpWB7wYea5UidCLnkucup0m/14tozm7Dp5e9XokyMeOP8EQSuC0Ek760Nt3hkuRN3XrHuDSWyfRHZUZpPuWbemPaxnpVxG+CRwHj/UfAehuWiHTE5UQ5mVXwfv0dcripQTvXSk59poCkTmuQViyewP4E9iew/yiwlxHNwc5UFpY56cxvf+yMJrSLKO0gSk132dr9lLiswRGv2g45LWhClwE6ZdLtLmfK2DJZFkrbsnuDeblhmuOs4dOIxwFidekIlTLhv96VQjzAFVTt2uEBOT06G5J3zMKchUkCda3LPOgd9HaKQ9JNUYOTYxJ8CiXXagO1PMTzTnmB+F6JfmNlIHWa28UZ0odIjIFp0AOH8V7VQKXIi8XPgYhG1T9v68r48OfQJxd712mzDTu6ZXkRkLe2vFo9+Ol+b7/f6b3s7L0a9l4k/b1kfz9+tXfwF918ht9Hufksvqhr93LHW7Q5bA3QrUcilxPlI1A/DVnuZMZIE0usIXxKeMZevLeNiZNjD+1U5bmTvr/LaXO9NBJTgS8LjbAXPAVpfKiqFWdN9jGckD+CTrIXYy2FSq8b+5TbmRvHqcq7aWBb/R0LNe7mjMtupcJ0Dwefzj+/GXQ+Hh8efT476uzFvdjeWp/BQhmbM9myY3tTu+nwsrnSHr/XrSrMwq3tFoJxicH3Xi0r1F/QBvU0okl753sZVdC9oMvlmBk416Is8etvDvSCJheXDdLDmpQb/L/Zyt7pwrPTaoH7nDxuXbzTlXrjIRe+5wiHn2hEr2Gxsb8usRJnwDLQ3tJAcRjs6QxRTiNha4FcRjXHIE2hsHfQrk0X2AJWrfZkMDx8j5Cu1te5ypBZszlu09mcJnRER2i68sHy3cJ/v6SCyaljU6QPgvHnb/OnZak= +sidebar_class_name: "patch api-method" +info_path: docs/apis-tools/camunda-api-rest/specifications/camunda-8-rest-api +custom_edit_url: null +hide_send_button: true +--- + +import ApiTabs from "@theme/ApiTabs"; +import DiscriminatorTabs from "@theme/DiscriminatorTabs"; +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes"; +import MimeTabs from "@theme/MimeTabs"; +import ParamsItem from "@theme/ParamsItem"; +import ResponseSamples from "@theme/ResponseSamples"; +import SchemaItem from "@theme/SchemaItem"; +import SchemaTabs from "@theme/SchemaTabs"; +import Markdown from "@theme/Markdown"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; + +

Update a user task

+ + + +Update a user task with the given key. + +## Request + +

Path Parameters

Body

    changeset objectnullable
    + +JSON object with changed task attribute values. + +The following attributes can be adjusted with this endpoint, additional attributes +will be ignored: + +- `candidateGroups` - reset by providing an empty list +- `candidateUsers` - reset by providing an empty list +- `dueDate` - reset by providing an empty String +- `followUpDate` - reset by providing an empty String + +Providing any of those attributes with a `null` value or omitting it preserves +the persisted attribute's value. + +The assignee cannot be adjusted with this endpoint, use the Assign task endpoint. +This ensures correct event emission for assignee changes. + +
+ +The user task was updated successfully. + +
+ +The user task with the given key cannot be updated. More details are provided in the response body. + +
Schema
    = 400` and `<= 600`"} schema={{"type":"integer","format":"int32","description":"The HTTP status code for this problem.","minimum":400,"maximum":600}}>
+ +The user task with the given key was not found. + +
+ +The user task with the given key is in the wrong state currently. More details are provided in the response body. + +
Schema
    = 400` and `<= 600`"} schema={{"type":"integer","format":"int32","description":"The HTTP status code for this problem.","minimum":400,"maximum":600}}>
diff --git a/docs/apis-tools/working-with-apis-tools.md b/docs/apis-tools/working-with-apis-tools.md index fce1c11a55..2a6ae20378 100644 --- a/docs/apis-tools/working-with-apis-tools.md +++ b/docs/apis-tools/working-with-apis-tools.md @@ -58,22 +58,16 @@ Camunda 8 components have APIs to enable polyglot developers to work with in the diff --git a/docs/components/connectors/use-connectors/inbound.md b/docs/components/connectors/use-connectors/inbound.md index 37d6418b78..c7a429c4b7 100644 --- a/docs/components/connectors/use-connectors/inbound.md +++ b/docs/components/connectors/use-connectors/inbound.md @@ -12,7 +12,13 @@ Review our [list of existing inbound Connectors](/components/connectors/out-of-t ## Creating the Connector event -Inbound Connectors are modeled as **catch events** in BPMN. Connectors that trigger a process instance are modeled as **start events**, and Connectors that send messages to an already running process instance are modeled as **intermediate catch events**. +Inbound Connectors are modeled as **catch events** in BPMN. Connectors that create a new process instance are modeled as **start events**, and Connectors that send messages to an already running process instance are modeled as **intermediate catch events**. It is also possible to create new processes by using a **message start event** and to use inbound Connectors via **boundary events**. + +:::info +If **idempotency** is a concern for the process creation and reprocessing of messages should never lead to a duplicate process instance creation, use the **message start event** element for an inbound Connector as it relies on publishing a message. + +Unlike plain **start event** elements, **message start events** support the **Message ID expression** property that allows to derive a unique value from the connector output that will be used by Zeebe to [guarantee uniqueness](/components/concepts/messages.md#message-uniqueness) in case other messages are published that use the same **Message ID**. +::: When you **deploy** such a BPMN diagram with an inbound Connector, the Connector becomes ready to receive incoming requests. The outcome depends on the Connector type: diff --git a/docs/components/modeler/desktop-modeler/element-templates/img/chooser.png b/docs/components/modeler/desktop-modeler/element-templates/img/chooser.png index d3c24226d4..00642d84f2 100644 Binary files a/docs/components/modeler/desktop-modeler/element-templates/img/chooser.png and b/docs/components/modeler/desktop-modeler/element-templates/img/chooser.png differ diff --git a/docs/components/modeler/desktop-modeler/element-templates/img/entries-visible.png b/docs/components/modeler/desktop-modeler/element-templates/img/entries-visible.png index 586490545e..8ed461d3af 100644 Binary files a/docs/components/modeler/desktop-modeler/element-templates/img/entries-visible.png and b/docs/components/modeler/desktop-modeler/element-templates/img/entries-visible.png differ diff --git a/docs/components/modeler/desktop-modeler/element-templates/img/field-dropdown.png b/docs/components/modeler/desktop-modeler/element-templates/img/field-dropdown.png index 55b4df4aa3..233149f787 100644 Binary files a/docs/components/modeler/desktop-modeler/element-templates/img/field-dropdown.png and b/docs/components/modeler/desktop-modeler/element-templates/img/field-dropdown.png differ diff --git a/docs/components/modeler/desktop-modeler/element-templates/img/groups.png b/docs/components/modeler/desktop-modeler/element-templates/img/groups.png index 63f4a73a82..99a62e5563 100644 Binary files a/docs/components/modeler/desktop-modeler/element-templates/img/groups.png and b/docs/components/modeler/desktop-modeler/element-templates/img/groups.png differ diff --git a/docs/components/modeler/desktop-modeler/element-templates/img/icons.png b/docs/components/modeler/desktop-modeler/element-templates/img/icons.png index 13767f94c8..91743c80bf 100644 Binary files a/docs/components/modeler/desktop-modeler/element-templates/img/icons.png and b/docs/components/modeler/desktop-modeler/element-templates/img/icons.png differ diff --git a/docs/components/modeler/desktop-modeler/element-templates/img/modal.png b/docs/components/modeler/desktop-modeler/element-templates/img/modal.png index 00504f3b68..31843212bb 100644 Binary files a/docs/components/modeler/desktop-modeler/element-templates/img/modal.png and b/docs/components/modeler/desktop-modeler/element-templates/img/modal.png differ diff --git a/docs/components/modeler/desktop-modeler/element-templates/img/overview.png b/docs/components/modeler/desktop-modeler/element-templates/img/overview.png index 20cd7bc4c0..3ec0f0e8d1 100644 Binary files a/docs/components/modeler/desktop-modeler/element-templates/img/overview.png and b/docs/components/modeler/desktop-modeler/element-templates/img/overview.png differ diff --git a/docs/components/modeler/desktop-modeler/element-templates/img/template-not-found.png b/docs/components/modeler/desktop-modeler/element-templates/img/template-not-found.png index 9cff74645a..5f43b7f4ea 100644 Binary files a/docs/components/modeler/desktop-modeler/element-templates/img/template-not-found.png and b/docs/components/modeler/desktop-modeler/element-templates/img/template-not-found.png differ diff --git a/docs/components/modeler/desktop-modeler/element-templates/img/unlink-remove.png b/docs/components/modeler/desktop-modeler/element-templates/img/unlink-remove.png index 5f6c0d315f..5cbafbd8ba 100644 Binary files a/docs/components/modeler/desktop-modeler/element-templates/img/unlink-remove.png and b/docs/components/modeler/desktop-modeler/element-templates/img/unlink-remove.png differ diff --git a/docs/components/modeler/desktop-modeler/element-templates/img/update-template.png b/docs/components/modeler/desktop-modeler/element-templates/img/update-template.png index d2789d2ce2..8b981e6767 100644 Binary files a/docs/components/modeler/desktop-modeler/element-templates/img/update-template.png and b/docs/components/modeler/desktop-modeler/element-templates/img/update-template.png differ diff --git a/docs/components/modeler/desktop-modeler/img/deploy-diagram-camunda-cloud-remember.png b/docs/components/modeler/desktop-modeler/img/deploy-diagram-camunda-cloud-remember.png index c697791e50..25ca4b4de3 100644 Binary files a/docs/components/modeler/desktop-modeler/img/deploy-diagram-camunda-cloud-remember.png and b/docs/components/modeler/desktop-modeler/img/deploy-diagram-camunda-cloud-remember.png differ diff --git a/docs/components/modeler/desktop-modeler/img/deploy-diagram-camunda-cloud-success.png b/docs/components/modeler/desktop-modeler/img/deploy-diagram-camunda-cloud-success.png index 629e1332eb..c4efbd81a7 100644 Binary files a/docs/components/modeler/desktop-modeler/img/deploy-diagram-camunda-cloud-success.png and b/docs/components/modeler/desktop-modeler/img/deploy-diagram-camunda-cloud-success.png differ diff --git a/docs/components/modeler/desktop-modeler/img/deploy-diagram-camunda-cloud.png b/docs/components/modeler/desktop-modeler/img/deploy-diagram-camunda-cloud.png index 1a20c4192e..c25e9f036e 100644 Binary files a/docs/components/modeler/desktop-modeler/img/deploy-diagram-camunda-cloud.png and b/docs/components/modeler/desktop-modeler/img/deploy-diagram-camunda-cloud.png differ diff --git a/docs/components/modeler/desktop-modeler/img/element-configuration.png b/docs/components/modeler/desktop-modeler/img/element-configuration.png index 1b3c1b9231..fe82af114f 100644 Binary files a/docs/components/modeler/desktop-modeler/img/element-configuration.png and b/docs/components/modeler/desktop-modeler/img/element-configuration.png differ diff --git a/docs/components/modeler/desktop-modeler/img/elements.png b/docs/components/modeler/desktop-modeler/img/elements.png index 3081feb839..b0839095b3 100644 Binary files a/docs/components/modeler/desktop-modeler/img/elements.png and b/docs/components/modeler/desktop-modeler/img/elements.png differ diff --git a/docs/components/modeler/desktop-modeler/img/empty.png b/docs/components/modeler/desktop-modeler/img/empty.png index 28536bfb84..07ceb349b4 100644 Binary files a/docs/components/modeler/desktop-modeler/img/empty.png and b/docs/components/modeler/desktop-modeler/img/empty.png differ diff --git a/docs/components/modeler/desktop-modeler/img/new-diagram.png b/docs/components/modeler/desktop-modeler/img/new-diagram.png index 1b62ad92e3..683669aa4f 100644 Binary files a/docs/components/modeler/desktop-modeler/img/new-diagram.png and b/docs/components/modeler/desktop-modeler/img/new-diagram.png differ diff --git a/docs/components/modeler/desktop-modeler/img/properties-panel.png b/docs/components/modeler/desktop-modeler/img/properties-panel.png index 6dea48a56a..81bb3cf445 100644 Binary files a/docs/components/modeler/desktop-modeler/img/properties-panel.png and b/docs/components/modeler/desktop-modeler/img/properties-panel.png differ diff --git a/docs/components/modeler/desktop-modeler/img/start-instance-step-1.png b/docs/components/modeler/desktop-modeler/img/start-instance-step-1.png index 6987cfa3cc..8cd6eb8bb5 100644 Binary files a/docs/components/modeler/desktop-modeler/img/start-instance-step-1.png and b/docs/components/modeler/desktop-modeler/img/start-instance-step-1.png differ diff --git a/docs/components/modeler/desktop-modeler/img/start-instance-step-2.png b/docs/components/modeler/desktop-modeler/img/start-instance-step-2.png index 4f2cbc76aa..e7932f9782 100644 Binary files a/docs/components/modeler/desktop-modeler/img/start-instance-step-2.png and b/docs/components/modeler/desktop-modeler/img/start-instance-step-2.png differ diff --git a/docs/components/modeler/desktop-modeler/img/start-instance-successful.png b/docs/components/modeler/desktop-modeler/img/start-instance-successful.png index 3c20db9c9f..49d3cca512 100644 Binary files a/docs/components/modeler/desktop-modeler/img/start-instance-successful.png and b/docs/components/modeler/desktop-modeler/img/start-instance-successful.png differ diff --git a/docs/components/modeler/dmn/dmn.md b/docs/components/modeler/dmn/dmn.md index 2391bf9917..f8a894fe11 100644 --- a/docs/components/modeler/dmn/dmn.md +++ b/docs/components/modeler/dmn/dmn.md @@ -50,3 +50,21 @@ Jump between decision tables or literal expressions in your decision requirement ![New DMN Literal Expression](assets/desktop-modeler-dmn/literal-expression.png) You can also edit literal expressions. Just as with decision tables, in the decision requirement diagram view, click the blue icon to _drill-down_ into the literal expression view and start editing. + +## Business knowledge models + +A _business knowledge model_ (BKM) is a reusable function containing a piece of decision logic. Typically, a BKM instantiates business logic that is required in multiple decisions, such as a common computation. For example, an amortization formula might be used in different loan application processes. + +You can make BKM elements executable using literal expressions written in FEEL, in almost the same way you would create a decision using a literal expression. A BKM literal expression can optionally accept parameters to be used as inputs to the FEEL expression, and it returns a single result whose name is the same as the BKM element name. Once you’ve created a BKM, it appears in autosuggestions when you’re using literal expressions to create decision logic. + +Currently, you can only reuse BKMs within the same decision. + +To create an executable BKM: + +1. Add a BKM element to the canvas. +2. Name the BKM element. This name will be used for the result variable. +3. On the context menu, select **Change type > Literal expression**. +4. Click the blue literal expression icon (**{}**) on the BKM element. +5. Add parameters by hovering over the **()** and clicking the edit button. All changes to the BKM are saved automatically. +6. Enter a FEEL expression in the expression box. +7. Select a type for the result. diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/called-element/right.png b/docs/components/modeler/reference/modeling-guidance/rules/img/called-element/right.png index 0696f5632d..2f900b9bb7 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/called-element/right.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/called-element/right.png differ diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/called-element/wrong.png b/docs/components/modeler/reference/modeling-guidance/rules/img/called-element/wrong.png index 987dc2128e..52b214d0e1 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/called-element/wrong.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/called-element/wrong.png differ diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/element-type/right.png b/docs/components/modeler/reference/modeling-guidance/rules/img/element-type/right.png index 5e61dfc746..88f8291be6 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/element-type/right.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/element-type/right.png differ diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/element-type/wrong.png b/docs/components/modeler/reference/modeling-guidance/rules/img/element-type/wrong.png index b10d8e34d5..000052a3a3 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/element-type/wrong.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/element-type/wrong.png differ diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/error-reference/right.png b/docs/components/modeler/reference/modeling-guidance/rules/img/error-reference/right.png index 0864815e0c..dfacdb9749 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/error-reference/right.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/error-reference/right.png differ diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/error-reference/wrong-no-error-code.png b/docs/components/modeler/reference/modeling-guidance/rules/img/error-reference/wrong-no-error-code.png index 10abf4145b..68aa90c38a 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/error-reference/wrong-no-error-code.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/error-reference/wrong-no-error-code.png differ diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/error-reference/wrong-no-error-reference.png b/docs/components/modeler/reference/modeling-guidance/rules/img/error-reference/wrong-no-error-reference.png index 4c994409f9..90abc9a868 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/error-reference/wrong-no-error-reference.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/error-reference/wrong-no-error-reference.png differ diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/escalation-reference/right.png b/docs/components/modeler/reference/modeling-guidance/rules/img/escalation-reference/right.png index 7dd3ab6e09..d054f15f52 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/escalation-reference/right.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/escalation-reference/right.png differ diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/escalation-reference/wrong-no-escalation-code.png b/docs/components/modeler/reference/modeling-guidance/rules/img/escalation-reference/wrong-no-escalation-code.png index 1fc5b271bd..7a031cf899 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/escalation-reference/wrong-no-escalation-code.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/escalation-reference/wrong-no-escalation-code.png differ diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/escalation-reference/wrong-no-escalation-reference.png b/docs/components/modeler/reference/modeling-guidance/rules/img/escalation-reference/wrong-no-escalation-reference.png index 89c1288f5e..048cfbd681 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/escalation-reference/wrong-no-escalation-reference.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/escalation-reference/wrong-no-escalation-reference.png differ diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/feel/right.png b/docs/components/modeler/reference/modeling-guidance/rules/img/feel/right.png index 056c7b9bc4..b95bd97da9 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/feel/right.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/feel/right.png differ diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/feel/wrong.png b/docs/components/modeler/reference/modeling-guidance/rules/img/feel/wrong.png index 5d2fc48e80..77f1082dfc 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/feel/wrong.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/feel/wrong.png differ diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/history-time-to-live/info.png b/docs/components/modeler/reference/modeling-guidance/rules/img/history-time-to-live/info.png index 1de52f3abd..fbf2d62f43 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/history-time-to-live/info.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/history-time-to-live/info.png differ diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/message-reference/right.png b/docs/components/modeler/reference/modeling-guidance/rules/img/message-reference/right.png index 7b9731d0f9..1a44964246 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/message-reference/right.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/message-reference/right.png differ diff --git a/docs/components/modeler/reference/modeling-guidance/rules/img/message-reference/wrong-no-message-reference.png b/docs/components/modeler/reference/modeling-guidance/rules/img/message-reference/wrong-no-message-reference.png index 0fed263476..7b73e584e6 100644 Binary files a/docs/components/modeler/reference/modeling-guidance/rules/img/message-reference/wrong-no-message-reference.png and b/docs/components/modeler/reference/modeling-guidance/rules/img/message-reference/wrong-no-message-reference.png differ diff --git a/docs/components/modeler/web-modeler/milestones.md b/docs/components/modeler/web-modeler/milestones.md index ce8c542900..6519d6179a 100644 --- a/docs/components/modeler/web-modeler/milestones.md +++ b/docs/components/modeler/web-modeler/milestones.md @@ -25,6 +25,17 @@ Alternatively, you can create a new milestone via the breadcrumb menu in the dia When dragging and dropping a file into the diagram view, or when using the **Replace via upload** option under the breadcrumb menu, a new milestone is created automatically. +#### Bulk milestone creation + +[Process applications](/components/modeler/web-modeler/process-applications.md) are a special type of folder in Web Modeler that allows you to work on a set of related files and +[deploy](/components/modeler/web-modeler/process-applications.md#deploy-and-run-a-process-application) them together in a single bundle with just one click. This reduces the risk of having a broken deployment at runtime and makes it more convenient to deploy related files. + +When creating a milestone on a main process of a process application, milestones are created for all other assets in the application to make it easier to track or roll back changes. + +:::note +Milestones of resources belonging to a process application are tied to the main process and cannot be modified. +::: + ### Restoring milestones Hover over a milestone, click on the three vertical dots, and expand for more options. diff --git a/docs/components/modeler/web-modeler/process-applications.md b/docs/components/modeler/web-modeler/process-applications.md index e681db20e7..12443fafe7 100644 --- a/docs/components/modeler/web-modeler/process-applications.md +++ b/docs/components/modeler/web-modeler/process-applications.md @@ -106,6 +106,12 @@ Note that when you deploy the process application: - Linked external forms will be deployed together with the process application. - Linked external BPMN and DMN diagrams are _not_ deployed together. They must be deployed separately. +## Versioning + +You can also add version tags to [milestones](/components/modeler/web-modeler/milestones.md), and create milestones for all resources of given process applications. + +When creating a milestone, name your milestone with a version tag to track it through the development lifecycle and ensure the correct version is called. To do this, enter a **Version tag** within the **Create a milestone** modal and click **Create**. + ## Limitations Be aware of the following limitations when working with process applications: @@ -118,3 +124,4 @@ Be aware of the following limitations when working with process applications: Effectively, the limit is between 2 and 3 MB as Zeebe writes more data to the log stream than just the raw deployment. - If you exceed the limit, you will see the following [error message](#deployment-errors): `Command 'CREATE' rejected with code 'EXCEEDED_BATCH_RECORD_SIZE'` +- When naming your milestone with a version tag, users are unable to modify and delete the created versions. diff --git a/docs/reference/release-notes/860.md b/docs/reference/release-notes/860.md index 6de14d558a..77ac7cc0dc 100644 --- a/docs/reference/release-notes/860.md +++ b/docs/reference/release-notes/860.md @@ -33,13 +33,13 @@ You can now [enable TLS-encrypted communication](/self-managed/modeler/web-model -New platform users interested in orchestrating API endpoints now have a high-level in-product explanation of Camunda's connectors functionality. +New platform users interested in orchestrating API endpoints now have a high-level in-product explanation of Camunda's Connector functionality. ### Remove "Cloud" as a user-facing term -"Cloud" has been removed from the URLs in SaaS versions of Modeler and Console for simpler readability. +"Cloud" has been removed from the URLs in SaaS versions of Modeler and Console for conciseness. ### Incident Copilot Alpha @@ -121,7 +121,7 @@ You can now effortlessly integrate machine learning functionalities into your wo -The [process application](/components/modeler/web-modeler/process-applications.md) is a special type of folder in Web Modeler that enables bulk actions like deploying all assets together. This reduces the risk of having a broken deployment at runtime, and makes it more convenient to deploy related `files.git`. +The [process application](/components/modeler/web-modeler/process-applications.md) is a special type of folder in Web Modeler that enables bulk actions like deploying all assets together. This reduces the risk of having a broken deployment at runtime, and makes it more convenient to deploy related files. ## 8.6.0-alpha1 diff --git a/docs/reference/supported-environments.md b/docs/reference/supported-environments.md index e9b4721535..419f22183d 100644 --- a/docs/reference/supported-environments.md +++ b/docs/reference/supported-environments.md @@ -86,11 +86,11 @@ Requirements for the components can be seen below: | Component | Java version | Other requirements | | ----------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Zeebe | OpenJDK 21+ | Elasticsearch 8.9+
Amazon OpenSearch 2.5.x (requires use of [OpenSearch exporter](../self-managed/zeebe-deployment/exporters/opensearch-exporter.md)) | -| Operate | OpenJDK 21+ | Elasticsearch 8.9+
Amazon OpenSearch 2.5.x | -| Tasklist | OpenJDK 17+ | Elasticsearch 8.9+
Amazon OpenSearch 2.5.x | +| Zeebe | OpenJDK 21+ | Elasticsearch 8.13+
Amazon OpenSearch 2.5.x (requires use of [OpenSearch exporter](../self-managed/zeebe-deployment/exporters/opensearch-exporter.md)) | +| Operate | OpenJDK 21+ | Elasticsearch 8.13+
Amazon OpenSearch 2.5.x | +| Tasklist | OpenJDK 17+ | Elasticsearch 8.13+
Amazon OpenSearch 2.5.x | | Identity | OpenJDK 17+ | Keycloak 22.x, 23.x
PostgreSQL 14.x, 15.x or Amazon Aurora PostgreSQL 13.x, 14.x, 15.x (required for [certain features](/self-managed/identity/deployment/configuration-variables.md#database-configuration)) | -| Optimize | OpenJDK 21+ | Elasticsearch 8.9+
Amazon OpenSearch 2.5.x | +| Optimize | OpenJDK 21+ | Elasticsearch 8.13+
Amazon OpenSearch 2.5.x | | Connectors | OpenJDK 21+ | | | Web Modeler | - | PostgreSQL 13.x, 14.x, 15.x, 16.x or Amazon Aurora PostgreSQL 13.x, 14.x, 15.x, 16.x | diff --git a/docs/self-managed/modeler/desktop-modeler/img/deploy-empty.png b/docs/self-managed/modeler/desktop-modeler/img/deploy-empty.png index c82b673173..b71636a925 100644 Binary files a/docs/self-managed/modeler/desktop-modeler/img/deploy-empty.png and b/docs/self-managed/modeler/desktop-modeler/img/deploy-empty.png differ diff --git a/docs/self-managed/modeler/desktop-modeler/img/deploy-endpoint.png b/docs/self-managed/modeler/desktop-modeler/img/deploy-endpoint.png index 7633ca05e2..8fb5201286 100644 Binary files a/docs/self-managed/modeler/desktop-modeler/img/deploy-endpoint.png and b/docs/self-managed/modeler/desktop-modeler/img/deploy-endpoint.png differ diff --git a/docs/self-managed/modeler/desktop-modeler/img/deploy-success.png b/docs/self-managed/modeler/desktop-modeler/img/deploy-success.png index cf8a1929a7..b367300f42 100644 Binary files a/docs/self-managed/modeler/desktop-modeler/img/deploy-success.png and b/docs/self-managed/modeler/desktop-modeler/img/deploy-success.png differ diff --git a/docs/self-managed/modeler/desktop-modeler/img/deploy-with-basic-auth.png b/docs/self-managed/modeler/desktop-modeler/img/deploy-with-basic-auth.png index 93b9633af7..aded021d11 100644 Binary files a/docs/self-managed/modeler/desktop-modeler/img/deploy-with-basic-auth.png and b/docs/self-managed/modeler/desktop-modeler/img/deploy-with-basic-auth.png differ diff --git a/docs/self-managed/modeler/desktop-modeler/img/deploy-with-oauth.png b/docs/self-managed/modeler/desktop-modeler/img/deploy-with-oauth.png index be99b43046..f46e53deab 100644 Binary files a/docs/self-managed/modeler/desktop-modeler/img/deploy-with-oauth.png and b/docs/self-managed/modeler/desktop-modeler/img/deploy-with-oauth.png differ diff --git a/docs/self-managed/operational-guides/backup-restore/zeebe-backup-and-restore.md b/docs/self-managed/operational-guides/backup-restore/zeebe-backup-and-restore.md index 6f89a4817d..fc3a1fc1ab 100644 --- a/docs/self-managed/operational-guides/backup-restore/zeebe-backup-and-restore.md +++ b/docs/self-managed/operational-guides/backup-restore/zeebe-backup-and-restore.md @@ -15,7 +15,7 @@ The backup management API is a custom endpoint `backups`, available via [Spring To use the backup feature in Zeebe, you must choose which external storage system you will use. Make sure to set the same configuration on all brokers in your cluster. -Zeebe supports [S3](#s3-backup-store) and [Google Cloud Storage (GCS)](#gcs-backup-store) for external storage. +Zeebe supports [S3](#s3-backup-store), [Google Cloud Storage (GCS)](#gcs-backup-store), and [Azure](#azure-backup-store) for external storage. :::caution Backups created with one store are not available or restorable from another store. @@ -83,6 +83,10 @@ zeebe.broker.data.backup.s3.compression: zstd # or use environment variable ZEEB ### GCS backup store +:::note +The GCS backup strategy utilizes the [Google Cloud Storage REST API](https://cloud.google.com/storage/docs/request-endpoints). +::: + To store your backups in Google Cloud Storage (GCS), choose the `GCS` backup store and tell Zeebe which bucket to use: ```yaml diff --git a/docs/self-managed/setup/install.md b/docs/self-managed/setup/install.md index 97ec20a4c1..87c3427822 100644 --- a/docs/self-managed/setup/install.md +++ b/docs/self-managed/setup/install.md @@ -233,7 +233,7 @@ To enable Kubernetes to pull the images from this registry, first [create an ima ```shell kubectl create secret docker-registry registry-camunda-cloud \ - --namespace= + --namespace= \ --docker-server=registry.camunda.cloud \ --docker-username= \ --docker-password= \ diff --git a/docs/self-managed/zeebe-deployment/operations/cluster-scaling.md b/docs/self-managed/zeebe-deployment/operations/cluster-scaling.md index afa87a8101..32e8267053 100644 --- a/docs/self-managed/zeebe-deployment/operations/cluster-scaling.md +++ b/docs/self-managed/zeebe-deployment/operations/cluster-scaling.md @@ -17,7 +17,7 @@ We will explain how to scale up a Zeebe cluster via an example of scaling from c If you have deployed Zeebe using [Helm](self-managed/setup/install.md), you can start new brokers by using the `kubectl scale` command. Otherwise, refer to the corresponding installation methods on how to start a new broker. ``` -kubectl scale statefuleset zeebe-scaling-demo --replicas=6 +kubectl scale statefulset zeebe-scaling-demo --replicas=6 ``` You can see new pods being created when running `kubectl get pods`. The new brokers will be assigned ids `3`, `4`, and `5` respectively. @@ -302,7 +302,7 @@ If you shut down brokers before Zeebe has scaled down and moved all partitions a ::: ``` -kubectl scale statefuleset --replicas=3 +kubectl scale statefulset --replicas=3 ``` When monitoring the pods via `kubectl get pods`, we can see that pods 3, 4, and 5 have been terminated. diff --git a/docusaurus.config.js b/docusaurus.config.js index d5ebc29266..706a12f79b 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -7,9 +7,9 @@ module.exports = { title: "Camunda 8 Docs", tagline: "Documentation for all components of Camunda 8", // url: "https://camunda-cloud.github.io", - url: "https://docs.camunda.io", + url: process.env.DOCS_SITE_URL || "https://docs.camunda.io", // baseUrl: "/camunda-cloud-documentation/", - baseUrl: "/", + baseUrl: process.env.DOCS_SITE_BASE_URL || "/", customFields: { canonicalUrlRoot: "https://docs.camunda.io", }, @@ -127,6 +127,24 @@ module.exports = { }, }, ], + [ + // Camunda 8 REST API docs generation + "docusaurus-plugin-openapi-docs", + { + id: "api-camunda-openapi", + docsPluginId: "default", + config: { + camunda: { + specPath: "api/camunda/camunda-openapi.yaml", + outputDir: "docs/apis-tools/camunda-api-rest/specifications", + sidebarOptions: { + groupPathsBy: "tag", + }, + hideSendButton: true, + }, + }, + }, + ], ], scripts: [ { diff --git a/optimize/apis-tools/optimize-api/optimize-api-authentication.md b/optimize/apis-tools/optimize-api/optimize-api-authentication.md index efa0ce4e15..d1506fb3c5 100644 --- a/optimize/apis-tools/optimize-api/optimize-api-authentication.md +++ b/optimize/apis-tools/optimize-api/optimize-api-authentication.md @@ -62,4 +62,4 @@ If the authentication is successful, the authentication server sends back the ac ## Use it in Postman -Work with this API in our [Postman collection](https://www.postman.com/camundateam/workspace/camunda-8-postman/collection/20317927-9d9314a2-4cff-40ab-90ea-98e28ca1f81c?action=share&creator=11465105). +Work with this API in our [Postman collection](https://www.postman.com/camundateam/workspace/camunda-8-postman/collection/24684262-a1103c05-7ed8-4fd4-8716-9005583ce23a?action=share&creator=26079299). diff --git a/optimize/self-managed/optimize-deployment/configuration/logging.md b/optimize/self-managed/optimize-deployment/configuration/logging.md index de86c3cfac..300ba2e7f3 100644 --- a/optimize/self-managed/optimize-deployment/configuration/logging.md +++ b/optimize/self-managed/optimize-deployment/configuration/logging.md @@ -47,7 +47,7 @@ If you are running Optimize with Docker, use the following environment variables Whether using the configuration file or Docker environment variables, to define the granularity of the information shown in the log you can set one of the following log levels: - **error**: Shows errors only. -- **warn**: Eike **error**, but displays warnings as well. +- **warn**: Like **error**, but displays warnings as well. - **info**: Logs everything from **warn** and the most important information about state changes or actions in Optimize. - **debug**: In addition to **info**, writes information about the scheduling process, alerting as well as the import of the engine data. - **trace**: Like **debug**, but in addition, writes all requests sent to the Camunda engine as well as all queries towards Elasticsearch to the log output. diff --git a/optimize_versioned_docs/version-3.10.0/self-managed/optimize-deployment/configuration/logging.md b/optimize_versioned_docs/version-3.10.0/self-managed/optimize-deployment/configuration/logging.md index de86c3cfac..300ba2e7f3 100644 --- a/optimize_versioned_docs/version-3.10.0/self-managed/optimize-deployment/configuration/logging.md +++ b/optimize_versioned_docs/version-3.10.0/self-managed/optimize-deployment/configuration/logging.md @@ -47,7 +47,7 @@ If you are running Optimize with Docker, use the following environment variables Whether using the configuration file or Docker environment variables, to define the granularity of the information shown in the log you can set one of the following log levels: - **error**: Shows errors only. -- **warn**: Eike **error**, but displays warnings as well. +- **warn**: Like **error**, but displays warnings as well. - **info**: Logs everything from **warn** and the most important information about state changes or actions in Optimize. - **debug**: In addition to **info**, writes information about the scheduling process, alerting as well as the import of the engine data. - **trace**: Like **debug**, but in addition, writes all requests sent to the Camunda engine as well as all queries towards Elasticsearch to the log output. diff --git a/optimize_versioned_docs/version-3.11.0/self-managed/optimize-deployment/configuration/logging.md b/optimize_versioned_docs/version-3.11.0/self-managed/optimize-deployment/configuration/logging.md index de86c3cfac..300ba2e7f3 100644 --- a/optimize_versioned_docs/version-3.11.0/self-managed/optimize-deployment/configuration/logging.md +++ b/optimize_versioned_docs/version-3.11.0/self-managed/optimize-deployment/configuration/logging.md @@ -47,7 +47,7 @@ If you are running Optimize with Docker, use the following environment variables Whether using the configuration file or Docker environment variables, to define the granularity of the information shown in the log you can set one of the following log levels: - **error**: Shows errors only. -- **warn**: Eike **error**, but displays warnings as well. +- **warn**: Like **error**, but displays warnings as well. - **info**: Logs everything from **warn** and the most important information about state changes or actions in Optimize. - **debug**: In addition to **info**, writes information about the scheduling process, alerting as well as the import of the engine data. - **trace**: Like **debug**, but in addition, writes all requests sent to the Camunda engine as well as all queries towards Elasticsearch to the log output. diff --git a/optimize_versioned_docs/version-3.12.0/apis-tools/optimize-api/optimize-api-authentication.md b/optimize_versioned_docs/version-3.12.0/apis-tools/optimize-api/optimize-api-authentication.md index efa0ce4e15..d1506fb3c5 100644 --- a/optimize_versioned_docs/version-3.12.0/apis-tools/optimize-api/optimize-api-authentication.md +++ b/optimize_versioned_docs/version-3.12.0/apis-tools/optimize-api/optimize-api-authentication.md @@ -62,4 +62,4 @@ If the authentication is successful, the authentication server sends back the ac ## Use it in Postman -Work with this API in our [Postman collection](https://www.postman.com/camundateam/workspace/camunda-8-postman/collection/20317927-9d9314a2-4cff-40ab-90ea-98e28ca1f81c?action=share&creator=11465105). +Work with this API in our [Postman collection](https://www.postman.com/camundateam/workspace/camunda-8-postman/collection/24684262-a1103c05-7ed8-4fd4-8716-9005583ce23a?action=share&creator=26079299). diff --git a/optimize_versioned_docs/version-3.12.0/self-managed/optimize-deployment/configuration/logging.md b/optimize_versioned_docs/version-3.12.0/self-managed/optimize-deployment/configuration/logging.md index de86c3cfac..300ba2e7f3 100644 --- a/optimize_versioned_docs/version-3.12.0/self-managed/optimize-deployment/configuration/logging.md +++ b/optimize_versioned_docs/version-3.12.0/self-managed/optimize-deployment/configuration/logging.md @@ -47,7 +47,7 @@ If you are running Optimize with Docker, use the following environment variables Whether using the configuration file or Docker environment variables, to define the granularity of the information shown in the log you can set one of the following log levels: - **error**: Shows errors only. -- **warn**: Eike **error**, but displays warnings as well. +- **warn**: Like **error**, but displays warnings as well. - **info**: Logs everything from **warn** and the most important information about state changes or actions in Optimize. - **debug**: In addition to **info**, writes information about the scheduling process, alerting as well as the import of the engine data. - **trace**: Like **debug**, but in addition, writes all requests sent to the Camunda engine as well as all queries towards Elasticsearch to the log output. diff --git a/optimize_versioned_docs/version-3.13.0/apis-tools/optimize-api/optimize-api-authentication.md b/optimize_versioned_docs/version-3.13.0/apis-tools/optimize-api/optimize-api-authentication.md index efa0ce4e15..d1506fb3c5 100644 --- a/optimize_versioned_docs/version-3.13.0/apis-tools/optimize-api/optimize-api-authentication.md +++ b/optimize_versioned_docs/version-3.13.0/apis-tools/optimize-api/optimize-api-authentication.md @@ -62,4 +62,4 @@ If the authentication is successful, the authentication server sends back the ac ## Use it in Postman -Work with this API in our [Postman collection](https://www.postman.com/camundateam/workspace/camunda-8-postman/collection/20317927-9d9314a2-4cff-40ab-90ea-98e28ca1f81c?action=share&creator=11465105). +Work with this API in our [Postman collection](https://www.postman.com/camundateam/workspace/camunda-8-postman/collection/24684262-a1103c05-7ed8-4fd4-8716-9005583ce23a?action=share&creator=26079299). diff --git a/optimize_versioned_docs/version-3.13.0/self-managed/optimize-deployment/configuration/logging.md b/optimize_versioned_docs/version-3.13.0/self-managed/optimize-deployment/configuration/logging.md index de86c3cfac..300ba2e7f3 100644 --- a/optimize_versioned_docs/version-3.13.0/self-managed/optimize-deployment/configuration/logging.md +++ b/optimize_versioned_docs/version-3.13.0/self-managed/optimize-deployment/configuration/logging.md @@ -47,7 +47,7 @@ If you are running Optimize with Docker, use the following environment variables Whether using the configuration file or Docker environment variables, to define the granularity of the information shown in the log you can set one of the following log levels: - **error**: Shows errors only. -- **warn**: Eike **error**, but displays warnings as well. +- **warn**: Like **error**, but displays warnings as well. - **info**: Logs everything from **warn** and the most important information about state changes or actions in Optimize. - **debug**: In addition to **info**, writes information about the scheduling process, alerting as well as the import of the engine data. - **trace**: Like **debug**, but in addition, writes all requests sent to the Camunda engine as well as all queries towards Elasticsearch to the log output. diff --git a/package.json b/package.json index 84b63f4bfa..a0d7d464da 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,8 @@ "api:generate": "node ./api/generate-api-docs.js", "api:generate:operate": "npm run api:generate operate", "api:generate:tasklist": "npm run api:generate tasklist", - "api:generate:zeebe": "npm run api:generate zeebe" + "api:generate:zeebe": "npm run api:generate zeebe", + "api:generate:camunda": "npm run api:generate camunda" }, "dependencies": { "@auth0/auth0-react": "^2.2.1", diff --git a/sidebars.js b/sidebars.js index c57b5e9895..052a11e4d9 100644 --- a/sidebars.js +++ b/sidebars.js @@ -671,7 +671,7 @@ module.exports = { { APIs: [ require("./docs/apis-tools/administration-api/sidebar-schema"), - require("./docs/apis-tools/operate-api/sidebar-schema"), + require("./docs/apis-tools/camunda-api-rest/sidebar-schema"), { "Optimize API (REST)": [ optimizeLink("Overview", "apis-tools/optimize-api/overview/"), @@ -757,13 +757,14 @@ module.exports = { ), ], }, - require("./docs/apis-tools/tasklist-api-rest/sidebar-schema"), require("./docs/apis-tools/web-modeler-api/sidebar-schema"), require("./docs/apis-tools/zeebe-api/sidebar-schema"), - require("./docs/apis-tools/zeebe-api-rest/sidebar-schema"), { Deprecated: [ + require("./docs/apis-tools/operate-api/sidebar-schema"), + require("./docs/apis-tools/tasklist-api-rest/sidebar-schema"), require("./docs/apis-tools/tasklist-api/sidebar-schema"), + require("./docs/apis-tools/zeebe-api-rest/sidebar-schema"), ], }, ], diff --git a/versioned_docs/version-8.3/components/connectors/use-connectors/inbound.md b/versioned_docs/version-8.3/components/connectors/use-connectors/inbound.md index 7ffbdeb457..5c6f747bd6 100644 --- a/versioned_docs/version-8.3/components/connectors/use-connectors/inbound.md +++ b/versioned_docs/version-8.3/components/connectors/use-connectors/inbound.md @@ -9,7 +9,13 @@ Review our [list of existing inbound Connectors](/components/connectors/out-of-t ## Creating the Connector event -Inbound Connectors are modeled as **catch events** in BPMN. Connectors that trigger a process instance are modeled as **start events**, and Connectors that send messages to an already running process instance are modeled as **intermediate catch events**. +Inbound Connectors are modeled as **catch events** in BPMN. Connectors that create a new process instance are modeled as **start events**, and Connectors that send messages to an already running process instance are modeled as **intermediate catch events**. It is also possible to create new processes by using a **message start event** and to use inbound Connectors via **boundary events**. + +:::info +If **idempotency** is a concern for the process creation and reprocessing of messages should never lead to a duplicate process instance creation, use the **message start event** element for an inbound Connector as it relies on publishing a message. + +Unlike plain **start event** elements, **message start events** support the **Message ID expression** property that allows to derive a unique value from the connector output that will be used by Zeebe to [guarantee uniqueness](/components/concepts/messages.md#message-uniqueness) in case other messages are published that use the same **Message ID**. +::: When you **deploy** such a BPMN diagram with an inbound Connector, the Connector becomes ready to receive incoming requests. The outcome depends on the Connector type: diff --git a/versioned_docs/version-8.4/components/connectors/use-connectors/inbound.md b/versioned_docs/version-8.4/components/connectors/use-connectors/inbound.md index 7ffbdeb457..5c6f747bd6 100644 --- a/versioned_docs/version-8.4/components/connectors/use-connectors/inbound.md +++ b/versioned_docs/version-8.4/components/connectors/use-connectors/inbound.md @@ -9,7 +9,13 @@ Review our [list of existing inbound Connectors](/components/connectors/out-of-t ## Creating the Connector event -Inbound Connectors are modeled as **catch events** in BPMN. Connectors that trigger a process instance are modeled as **start events**, and Connectors that send messages to an already running process instance are modeled as **intermediate catch events**. +Inbound Connectors are modeled as **catch events** in BPMN. Connectors that create a new process instance are modeled as **start events**, and Connectors that send messages to an already running process instance are modeled as **intermediate catch events**. It is also possible to create new processes by using a **message start event** and to use inbound Connectors via **boundary events**. + +:::info +If **idempotency** is a concern for the process creation and reprocessing of messages should never lead to a duplicate process instance creation, use the **message start event** element for an inbound Connector as it relies on publishing a message. + +Unlike plain **start event** elements, **message start events** support the **Message ID expression** property that allows to derive a unique value from the connector output that will be used by Zeebe to [guarantee uniqueness](/components/concepts/messages.md#message-uniqueness) in case other messages are published that use the same **Message ID**. +::: When you **deploy** such a BPMN diagram with an inbound Connector, the Connector becomes ready to receive incoming requests. The outcome depends on the Connector type: diff --git a/versioned_docs/version-8.4/self-managed/operational-guides/backup-restore/zeebe-backup-and-restore.md b/versioned_docs/version-8.4/self-managed/operational-guides/backup-restore/zeebe-backup-and-restore.md index 49f49fa279..cc72a9ae2a 100644 --- a/versioned_docs/version-8.4/self-managed/operational-guides/backup-restore/zeebe-backup-and-restore.md +++ b/versioned_docs/version-8.4/self-managed/operational-guides/backup-restore/zeebe-backup-and-restore.md @@ -83,6 +83,10 @@ zeebe.broker.data.backup.s3.compression: zstd # or use environment variable ZEEB ### GCS backup store +:::note +The GCS backup strategy utilizes the [Google Cloud Storage REST API](https://cloud.google.com/storage/docs/request-endpoints). +::: + To store your backups in Google Cloud Storage (GCS), choose the `GCS` backup store and tell Zeebe which bucket to use: ```yaml diff --git a/versioned_docs/version-8.4/self-managed/platform-deployment/helm-kubernetes/deploy.md b/versioned_docs/version-8.4/self-managed/platform-deployment/helm-kubernetes/deploy.md index de28dde44c..bb65a34d2c 100644 --- a/versioned_docs/version-8.4/self-managed/platform-deployment/helm-kubernetes/deploy.md +++ b/versioned_docs/version-8.4/self-managed/platform-deployment/helm-kubernetes/deploy.md @@ -161,7 +161,7 @@ To enable Kubernetes to pull the images from this registry, first [create an ima ```bash kubectl create secret docker-registry registry-camunda-cloud \ - --namespace= + --namespace= \ --docker-server=registry.camunda.cloud \ --docker-username= \ --docker-password= \ diff --git a/versioned_docs/version-8.4/self-managed/zeebe-deployment/operations/cluster-scaling.md b/versioned_docs/version-8.4/self-managed/zeebe-deployment/operations/cluster-scaling.md index 09ba3fbd2a..0da33fad72 100644 --- a/versioned_docs/version-8.4/self-managed/zeebe-deployment/operations/cluster-scaling.md +++ b/versioned_docs/version-8.4/self-managed/zeebe-deployment/operations/cluster-scaling.md @@ -17,7 +17,7 @@ We will explain how to scale up a Zeebe cluster via an example of scaling from c If you have deployed Zeebe using [Helm](self-managed/platform-deployment/helm-kubernetes/deploy.md), you can start new brokers by using the `kubectl scale` command. Otherwise, refer to the corresponding installation methods on how to start a new broker. ``` -kubectl scale statefuleset zeebe-scaling-demo --replicas=6 +kubectl scale statefulset zeebe-scaling-demo --replicas=6 ``` You can see new pods being created when running `kubectl get pods`. The new brokers will be assigned ids `3`, `4`, and `5` respectively. @@ -302,7 +302,7 @@ If you shut down brokers before Zeebe has scaled down and moved all partitions a ::: ``` -kubectl scale statefuleset --replicas=3 +kubectl scale statefulset --replicas=3 ``` When monitoring the pods via `kubectl get pods`, we can see that pods 3, 4, and 5 have been terminated. diff --git a/versioned_docs/version-8.5/components/connectors/use-connectors/inbound.md b/versioned_docs/version-8.5/components/connectors/use-connectors/inbound.md index 7ffbdeb457..5c6f747bd6 100644 --- a/versioned_docs/version-8.5/components/connectors/use-connectors/inbound.md +++ b/versioned_docs/version-8.5/components/connectors/use-connectors/inbound.md @@ -9,7 +9,13 @@ Review our [list of existing inbound Connectors](/components/connectors/out-of-t ## Creating the Connector event -Inbound Connectors are modeled as **catch events** in BPMN. Connectors that trigger a process instance are modeled as **start events**, and Connectors that send messages to an already running process instance are modeled as **intermediate catch events**. +Inbound Connectors are modeled as **catch events** in BPMN. Connectors that create a new process instance are modeled as **start events**, and Connectors that send messages to an already running process instance are modeled as **intermediate catch events**. It is also possible to create new processes by using a **message start event** and to use inbound Connectors via **boundary events**. + +:::info +If **idempotency** is a concern for the process creation and reprocessing of messages should never lead to a duplicate process instance creation, use the **message start event** element for an inbound Connector as it relies on publishing a message. + +Unlike plain **start event** elements, **message start events** support the **Message ID expression** property that allows to derive a unique value from the connector output that will be used by Zeebe to [guarantee uniqueness](/components/concepts/messages.md#message-uniqueness) in case other messages are published that use the same **Message ID**. +::: When you **deploy** such a BPMN diagram with an inbound Connector, the Connector becomes ready to receive incoming requests. The outcome depends on the Connector type: diff --git a/versioned_docs/version-8.5/components/modeler/dmn/dmn.md b/versioned_docs/version-8.5/components/modeler/dmn/dmn.md index 2391bf9917..f8a894fe11 100644 --- a/versioned_docs/version-8.5/components/modeler/dmn/dmn.md +++ b/versioned_docs/version-8.5/components/modeler/dmn/dmn.md @@ -50,3 +50,21 @@ Jump between decision tables or literal expressions in your decision requirement ![New DMN Literal Expression](assets/desktop-modeler-dmn/literal-expression.png) You can also edit literal expressions. Just as with decision tables, in the decision requirement diagram view, click the blue icon to _drill-down_ into the literal expression view and start editing. + +## Business knowledge models + +A _business knowledge model_ (BKM) is a reusable function containing a piece of decision logic. Typically, a BKM instantiates business logic that is required in multiple decisions, such as a common computation. For example, an amortization formula might be used in different loan application processes. + +You can make BKM elements executable using literal expressions written in FEEL, in almost the same way you would create a decision using a literal expression. A BKM literal expression can optionally accept parameters to be used as inputs to the FEEL expression, and it returns a single result whose name is the same as the BKM element name. Once you’ve created a BKM, it appears in autosuggestions when you’re using literal expressions to create decision logic. + +Currently, you can only reuse BKMs within the same decision. + +To create an executable BKM: + +1. Add a BKM element to the canvas. +2. Name the BKM element. This name will be used for the result variable. +3. On the context menu, select **Change type > Literal expression**. +4. Click the blue literal expression icon (**{}**) on the BKM element. +5. Add parameters by hovering over the **()** and clicking the edit button. All changes to the BKM are saved automatically. +6. Enter a FEEL expression in the expression box. +7. Select a type for the result. diff --git a/versioned_docs/version-8.5/self-managed/operational-guides/backup-restore/zeebe-backup-and-restore.md b/versioned_docs/version-8.5/self-managed/operational-guides/backup-restore/zeebe-backup-and-restore.md index 6f89a4817d..fc3a1fc1ab 100644 --- a/versioned_docs/version-8.5/self-managed/operational-guides/backup-restore/zeebe-backup-and-restore.md +++ b/versioned_docs/version-8.5/self-managed/operational-guides/backup-restore/zeebe-backup-and-restore.md @@ -15,7 +15,7 @@ The backup management API is a custom endpoint `backups`, available via [Spring To use the backup feature in Zeebe, you must choose which external storage system you will use. Make sure to set the same configuration on all brokers in your cluster. -Zeebe supports [S3](#s3-backup-store) and [Google Cloud Storage (GCS)](#gcs-backup-store) for external storage. +Zeebe supports [S3](#s3-backup-store), [Google Cloud Storage (GCS)](#gcs-backup-store), and [Azure](#azure-backup-store) for external storage. :::caution Backups created with one store are not available or restorable from another store. @@ -83,6 +83,10 @@ zeebe.broker.data.backup.s3.compression: zstd # or use environment variable ZEEB ### GCS backup store +:::note +The GCS backup strategy utilizes the [Google Cloud Storage REST API](https://cloud.google.com/storage/docs/request-endpoints). +::: + To store your backups in Google Cloud Storage (GCS), choose the `GCS` backup store and tell Zeebe which bucket to use: ```yaml diff --git a/versioned_docs/version-8.5/self-managed/setup/install.md b/versioned_docs/version-8.5/self-managed/setup/install.md index 0bd3ef0a3f..3567af3adb 100644 --- a/versioned_docs/version-8.5/self-managed/setup/install.md +++ b/versioned_docs/version-8.5/self-managed/setup/install.md @@ -180,7 +180,7 @@ To enable Kubernetes to pull the images from this registry, first [create an ima ```shell kubectl create secret docker-registry registry-camunda-cloud \ - --namespace= + --namespace= \ --docker-server=registry.camunda.cloud \ --docker-username= \ --docker-password= \ diff --git a/versioned_docs/version-8.5/self-managed/zeebe-deployment/operations/cluster-scaling.md b/versioned_docs/version-8.5/self-managed/zeebe-deployment/operations/cluster-scaling.md index afa87a8101..32e8267053 100644 --- a/versioned_docs/version-8.5/self-managed/zeebe-deployment/operations/cluster-scaling.md +++ b/versioned_docs/version-8.5/self-managed/zeebe-deployment/operations/cluster-scaling.md @@ -17,7 +17,7 @@ We will explain how to scale up a Zeebe cluster via an example of scaling from c If you have deployed Zeebe using [Helm](self-managed/setup/install.md), you can start new brokers by using the `kubectl scale` command. Otherwise, refer to the corresponding installation methods on how to start a new broker. ``` -kubectl scale statefuleset zeebe-scaling-demo --replicas=6 +kubectl scale statefulset zeebe-scaling-demo --replicas=6 ``` You can see new pods being created when running `kubectl get pods`. The new brokers will be assigned ids `3`, `4`, and `5` respectively. @@ -302,7 +302,7 @@ If you shut down brokers before Zeebe has scaled down and moved all partitions a ::: ``` -kubectl scale statefuleset --replicas=3 +kubectl scale statefulset --replicas=3 ``` When monitoring the pods via `kubectl get pods`, we can see that pods 3, 4, and 5 have been terminated.