diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index cbbfdfb2c8..42d4118a55 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -26,10 +26,10 @@ - [ ] I added a redirect for a renamed or deleted page to the .htaccess file. --> - + - [ ] My changes require an [Engineering review](https://github.com/camunda/camunda-docs/blob/main/howtos/documentation-guidelines.md#review-process), and I've assigned the Engineering DRI or delegate. -- [ ] My changes require a [technical writer review](https://github.com/camunda/camunda-docs/blob/main/howtos/documentation-guidelines.md#review-process), and I've assigned @christinaausley as a reviewer. +- [ ] My changes require a [technical writer review](https://github.com/camunda/camunda-docs/blob/main/howtos/documentation-guidelines.md#review-process), and I've assigned @camunda/tech-writers as a reviewer. diff --git a/.github/workflows/add-to-project.yaml b/.github/workflows/add-to-project.yaml index cda4f0dcd8..6b4a73b4ef 100644 --- a/.github/workflows/add-to-project.yaml +++ b/.github/workflows/add-to-project.yaml @@ -8,7 +8,7 @@ on: jobs: sync-board: - if: github.event.requested_reviewer.login == 'akeller' || github.event.requested_reviewer.login == 'christinaausley' + if: github.event.requested_reviewer.login == 'akeller' || github.event.requested_reviewer.login == 'christinaausley' || github.event.requested_reviewer.login == 'conceptualshark' || github.event.requested_team.name == 'Tech Writers' runs-on: ubuntu-latest steps: - name: Get project IDs for later steps diff --git a/docs/apis-tools/administration-api/authentication.md b/docs/apis-tools/administration-api/authentication.md index 8397d761a3..99cff5d840 100644 --- a/docs/apis-tools/administration-api/authentication.md +++ b/docs/apis-tools/administration-api/authentication.md @@ -67,7 +67,7 @@ The OAuth service rate limits about one request per second for all clients with All token requests count toward the rate limit, whether they are successful or not. If any client is running with an expired or invalid API key, that client will continually make token requests. That client will therefore exceed the rate limit for that IP address, and may block valid token requests from completing. ::: -The officially offered [client libraries](/docs/apis-tools/working-with-apis-tools.md) (as well as the Node.js and Spring clients) have already integrated with the auth routine, handle obtaining and refreshing an access token, and make use of a local cache. +The officially offered [client libraries](/apis-tools/working-with-apis-tools.md) (as well as the Node.js and Spring clients) have already integrated with the auth routine, handle obtaining and refreshing an access token, and make use of a local cache. If too many token requests are executed from the same source IP address in a short time, all token requests from that source IP address are blocked for a certain time. Since the access tokens have a 24-hour validity period, they must be cached on the client side, reused while still valid, and refreshed via a new token request once the validity period has expired. diff --git a/docs/apis-tools/administration-api/tutorial.md b/docs/apis-tools/administration-api/tutorial.md index 6c0ac75b18..f9d0202387 100644 --- a/docs/apis-tools/administration-api/tutorial.md +++ b/docs/apis-tools/administration-api/tutorial.md @@ -23,7 +23,7 @@ Make sure you keep the generated client credentials in a safe place. The **Clien ## Getting started - A detailed API description can be found [here](https://console.cloud.camunda.io/customer-api/openapi/docs/#/) via Swagger. With a valid access token, this offers an interactive API experience against your Camunda 8 cluster. -- You need authentication to access the API endpoints. Find more information [here](/docs/apis-tools/administration-api/authentication.md). +- You need authentication to access the API endpoints. Find more information [here](/apis-tools/administration-api/authentication.md). ## Set up authentication diff --git a/docs/apis-tools/frontend-development/01-task-applications/02-user-task-lifecycle.md b/docs/apis-tools/frontend-development/01-task-applications/02-user-task-lifecycle.md index 631d5eb774..13c390ffae 100644 --- a/docs/apis-tools/frontend-development/01-task-applications/02-user-task-lifecycle.md +++ b/docs/apis-tools/frontend-development/01-task-applications/02-user-task-lifecycle.md @@ -17,7 +17,7 @@ Refer to the Camunda best practice task life cycle below as a starting point. ## Camunda best practice task life cycle -The Camunda [Tasklist](/docs/components/tasklist/introduction-to-tasklist.md) component implements a task life cycle optimized to track actual work on individual tasks via [forms](../03-forms/01-introduction-to-forms.md) on a desktop. It separates task assignment from task state to support collaborative ways of working and promote use cases for managers. +The Camunda [Tasklist](/components/tasklist/introduction-to-tasklist.md) component implements a task life cycle optimized to track actual work on individual tasks via [forms](../03-forms/01-introduction-to-forms.md) on a desktop. It separates task assignment from task state to support collaborative ways of working and promote use cases for managers. On the happy path, task agents can: @@ -27,7 +27,7 @@ On the happy path, task agents can: - The data entered up to this point is preserved. If they are unable to continue, they can `return` a task to the queue for someone else to pick it up, which resets the task data. :::note -The state of the task is derived via a CQRS pattern. [Zeebe](/docs/components/zeebe/zeebe-overview.md), Camunda's process execution engine, manages a stream of events. There is no single status attribute in tasks. Instead, tasks derive their status from these events. +The state of the task is derived via a CQRS pattern. [Zeebe](/components/zeebe/zeebe-overview.md), Camunda's process execution engine, manages a stream of events. There is no single status attribute in tasks. Instead, tasks derive their status from these events. ::: ```mermaid diff --git a/docs/apis-tools/go-client/go-get-started.md b/docs/apis-tools/go-client/go-get-started.md index 762255c0ed..4943d5f500 100644 --- a/docs/apis-tools/go-client/go-get-started.md +++ b/docs/apis-tools/go-client/go-get-started.md @@ -37,7 +37,7 @@ go mod init zb-user/zb-example 2. To use the Zeebe Go client library, run the following: ```bash -go get github.com/camunda/zeebe/clients/go/v8@v8.5.1 +go get github.com/camunda/camunda/clients/go/v8@v8.6.0 ``` This adds the following dependency to your `go.mod`, it should look similar to this: @@ -47,7 +47,7 @@ module github.com/zb-user/zb-example go 1.21 -require github.com/camunda/zeebe/clients/go/v8@v8.5.1 +require github.com/camunda/camunda/clients/go/v8@v8.6.0 ``` 3. Set the connection settings and client credentials as environment variables in your terminal: @@ -71,8 +71,8 @@ package main import ( "context" "fmt" - "github.com/camunda/zeebe/clients/go/v8/pkg/zbc" - "github.com/camunda/zeebe/clients/go/v8/pkg/pb" + "github.com/camunda/camunda/clients/go/v8/pkg/zbc" + "github.com/camunda/camunda/clients/go/v8/pkg/pb" "os" ) @@ -278,7 +278,7 @@ Now, we want to do some work within our process. Follow the steps below: - Set the **type** of the second task to `fetcher-service`. - Set the **type** of the third task to `shipping-service`. -6. Additionally, for the service task `Collect Money` set a [**task-header**](/docs/next/components/modeler/bpmn/service-tasks/#task-headers) with the key `method` and the value `VISA`. This header is used as a configuration parameter for the payment-service worker to hand over the payment method. +6. Additionally, for the service task `Collect Money` set a [**task-header**](/components/modeler/bpmn/service-tasks/service-tasks.md#task-headers) with the key `method` and the value `VISA`. This header is used as a configuration parameter for the payment-service worker to hand over the payment method. The consolidated example looks as follows: @@ -297,9 +297,9 @@ package main import ( "context" "fmt" - "github.com/camunda/zeebe/clients/go/v8/pkg/entities" - "github.com/camunda/zeebe/clients/go/v8/pkg/worker" - "github.com/camunda/zeebe/clients/go/v8/pkg/zbc" + "github.com/camunda/camunda/clients/go/v8/pkg/entities" + "github.com/camunda/camunda/clients/go/v8/pkg/worker" + "github.com/camunda/camunda/clients/go/v8/pkg/zbc" "log" "os" ) @@ -413,9 +413,9 @@ package main import ( "context" "fmt" - "github.com/camunda/zeebe/clients/go/v8/pkg/entities" - "github.com/camunda/zeebe/clients/go/v8/pkg/worker" - "github.com/camunda/zeebe/clients/go/v8/pkg/zbc" + "github.com/camunda/camunda/clients/go/v8/pkg/entities" + "github.com/camunda/camunda/clients/go/v8/pkg/worker" + "github.com/camunda/camunda/clients/go/v8/pkg/zbc" "log" "os" ) diff --git a/docs/apis-tools/operate-api/tutorial.md b/docs/apis-tools/operate-api/tutorial.md index b29e5193ca..c69436c108 100644 --- a/docs/apis-tools/operate-api/tutorial.md +++ b/docs/apis-tools/operate-api/tutorial.md @@ -9,7 +9,7 @@ In this tutorial, we'll step through examples to highlight the capabilities of t ## Getting started -- You need authentication to access the API endpoints. Find more information [here](/docs/apis-tools/operate-api/overview.md#authentication). +- You need authentication to access the API endpoints. Find more information [here](/apis-tools/operate-api/overview.md#authentication). - We will use the `bpmn-js` library to render the diagram and add overlays. Visit the documentation on [embedding the pre-packaged viewer](https://bpmn.io/toolkit/bpmn-js/walkthrough/#viewer-pre-packaged) for more details. ## Set up the demo project diff --git a/docs/apis-tools/tasklist-api-rest/migrate-to-zeebe-user-tasks.md b/docs/apis-tools/tasklist-api-rest/migrate-to-zeebe-user-tasks.md index 4b4298ae13..18ef247fd7 100644 --- a/docs/apis-tools/tasklist-api-rest/migrate-to-zeebe-user-tasks.md +++ b/docs/apis-tools/tasklist-api-rest/migrate-to-zeebe-user-tasks.md @@ -15,7 +15,7 @@ import styles from "./assets/css/cleanImages.module.css"; import APIArchitectureImg from './assets/img/api-architecture.png'; import ZeebeTaskSelectionImg from './assets/img/zeebe-user-task-selection.png'; -Camunda 8.5 introduces a new [user task](/docs/components/modeler/bpmn/user-tasks/user-tasks.md) implementation type: Zeebe user tasks. +Camunda 8.5 introduces a new [user task](/components/modeler/bpmn/user-tasks/user-tasks.md) implementation type: Zeebe user tasks. Zeebe user tasks have several benefits, including: - Running directly on the automation engine for high performance. diff --git a/docs/apis-tools/tasklist-api/tasklist-api-overview.md b/docs/apis-tools/tasklist-api/tasklist-api-overview.md index a753de438a..7f3eaf0586 100644 --- a/docs/apis-tools/tasklist-api/tasklist-api-overview.md +++ b/docs/apis-tools/tasklist-api/tasklist-api-overview.md @@ -26,7 +26,7 @@ For SaaS: `https://${REGION}.tasklist.camunda.io:443/${CLUSTER_ID}/graphql`, and To obtain the Tasklist GraphQL schema, visit the API collection in [GitHub](https://github.com/camunda-community-hub/camunda-8-api-postman-collection), which is fully functioning in [Postman](https://www.postman.com/camundateam/workspace/camunda-8-postman/collection/20317927-6394943f-b57c-4c04-acf9-391a8614103b?action=share&creator=11465105). -Alternatively, send a request to the endpoint with a GraphQL introspection query as described [here](https://graphql.org/learn/introspection/), or use the [generated API documentation](/docs/apis-tools/tasklist-api/generated.md). +Alternatively, send a request to the endpoint with a GraphQL introspection query as described [here](https://graphql.org/learn/introspection/), or use the [generated API documentation](/apis-tools/tasklist-api/generated.md). There are also several [tools to explore GraphQL APIs](https://altair.sirmuel.design). diff --git a/docs/apis-tools/zeebe-api/gateway-service.md b/docs/apis-tools/zeebe-api/gateway-service.md index a73017c649..f990a80e44 100644 --- a/docs/apis-tools/zeebe-api/gateway-service.md +++ b/docs/apis-tools/zeebe-api/gateway-service.md @@ -160,6 +160,8 @@ message CancelProcessInstanceRequest { // the process instance key (as, for example, obtained from // CreateProcessInstanceResponse) int64 processInstanceKey = 1; + // a reference key chosen by the user and will be part of all records resulting from this operation + optional uint64 operationReference = 2; } ``` @@ -254,6 +256,8 @@ message CreateProcessInstanceRequest { repeated ProcessInstanceCreationStartInstruction startInstructions = 5; // the tenant ID of the process definition string tenantId = 6; + // a reference key chosen by the user and will be part of all records resulting from this operation + optional uint64 operationReference = 7; } message ProcessInstanceCreationStartInstruction { @@ -721,6 +725,8 @@ message ModifyProcessInstanceRequest { repeated ActivateInstruction activateInstructions = 2; // instructions describing which elements should be terminated repeated TerminateInstruction terminateInstructions = 3; + // a reference key chosen by the user and will be part of all records resulting from this operation + optional uint64 operationReference = 4; message ActivateInstruction { // the id of the element that should be activated @@ -801,7 +807,8 @@ message MigrateProcessInstanceRequest { int64 processInstanceKey = 1; // the migration plan that defines target process and element mappings MigrationPlan migrationPlan = 2; - + // a reference key chosen by the user and will be part of all records resulting from this operation + optional uint64 operationReference = 3; message MigrationPlan { // the key of process definition to migrate the process instance to int64 targetProcessDefinitionKey = 1; @@ -925,6 +932,8 @@ problem, followed by this call. message ResolveIncidentRequest { // the unique ID of the incident to resolve int64 incidentKey = 1; + // a reference key chosen by the user and will be part of all records resulting from this operation + optional uint64 operationReference = 2; } ``` @@ -967,6 +976,8 @@ message SetVariablesRequest { // be unchanged, and scope 2 will now be `{ "bar" : 1, "foo" 5 }`. if local was false, however, // then scope 1 would be `{ "foo": 5 }`, and scope 2 would be `{ "bar" : 1 }`. bool local = 3; + // a reference key chosen by the user and will be part of all records resulting from this operation + optional uint64 operationReference = 4; } ``` @@ -1123,6 +1134,8 @@ message UpdateJobRetriesRequest { int64 jobKey = 1; // the new amount of retries for the job; must be positive int32 retries = 2; + // a reference key chosen by the user and will be part of all records resulting from this operation + optional uint64 operationReference = 3; } ``` @@ -1161,6 +1174,8 @@ message UpdateJobTimeoutRequest { int64 jobKey = 1; // the duration of the new timeout in ms, starting from the current moment int64 timeout = 2; + // a reference key chosen by the user and will be part of all records resulting from this operation + optional uint64 operationReference = 3; } ``` @@ -1195,6 +1210,8 @@ message DeleteResourceRequest { // The key of the resource that should be deleted. This can be the key // of a process definition, the key of a decision requirements definition or the key of a form definition. int64 resourceKey = 1; + // a reference key chosen by the user and will be part of all records resulting from this operation + optional uint64 operationReference = 2; } ``` diff --git a/docs/components/best-practices/architecture/sizing-your-environment.md b/docs/components/best-practices/architecture/sizing-your-environment.md index 9faf2e1e2f..7bf37b4b39 100644 --- a/docs/components/best-practices/architecture/sizing-your-environment.md +++ b/docs/components/best-practices/architecture/sizing-your-environment.md @@ -71,15 +71,15 @@ The closer you push throughput to the limits, the more latency you will get. Thi ### Payload size -Every process instance can hold a payload (known as [process variables](/docs/components/concepts/variables/)). The payload of all running process instances must be managed by the runtime workflow engine, and all data of running and ended process instances is also forwarded to Operate and Optimize. +Every process instance can hold a payload (known as [process variables](/components/concepts/variables.md)). The payload of all running process instances must be managed by the runtime workflow engine, and all data of running and ended process instances is also forwarded to Operate and Optimize. The data you attach to a process instance (process variables) influences resource requirements. For example, it makes a big difference if you only add one or two strings (requiring around 1 KB of space) to your process instances, or a full JSON document containing 1 MB. Hence, the payload size is an important factor when looking at sizing. There are a few general rules regarding payload size: -- The maximum [variable size per process instance is limited](/docs/components/concepts/variables/#variable-size-limitation), currently to roughly 3 MB. -- We don't recommend storing much data in your process context. Refer to our [best practice on handling data in processes](/docs/components/best-practices/development/handling-data-in-processes/). -- Every [partition](/docs/components/zeebe/technical-concepts/partitions/) of the Zeebe installation can typically handle up to 1 GB of payload in total. Larger payloads can lead to slower processing. For example, if you run one million process instances with 4 KB of data each, you end up with 3.9 GB of data, and you should run at least four partitions. In reality, this typically means six partitions, as you want to run the number of partitions as a multiple of the replication factor, which by default is three. +- The maximum [variable size per process instance is limited](/components/concepts/variables.md#variable-size-limitation), currently to roughly 3 MB. +- We don't recommend storing much data in your process context. Refer to our [best practice on handling data in processes](/components/best-practices/development/handling-data-in-processes.md). +- Every [partition](/components/zeebe/technical-concepts/partitions.md) of the Zeebe installation can typically handle up to 1 GB of payload in total. Larger payloads can lead to slower processing. For example, if you run one million process instances with 4 KB of data each, you end up with 3.9 GB of data, and you should run at least four partitions. In reality, this typically means six partitions, as you want to run the number of partitions as a multiple of the replication factor, which by default is three. The payload size also affects disk space requirements, as described in the next section. @@ -124,7 +124,7 @@ Spinning up a Camunda 8 Cluster means you run multiple components that all need All components are clustered to provide high-availability, fault-tolerance and resiliency. -Zeebe scales horizontally by adding more cluster nodes (pods). This is **limited by the [number of partitions](/docs/components/zeebe/technical-concepts/partitions/)** configured for a Zeebe cluster, as the work within one partition cannot be parallelized by design. Hence, you need to define enough partitions to utilize your hardware. The **number of partitions cannot be changed after the cluster was initially provisioned** (at least not yet), elastic scalability of partitions is not yet possible. +Zeebe scales horizontally by adding more cluster nodes (pods). This is **limited by the [number of partitions](/components/zeebe/technical-concepts/partitions.md)** configured for a Zeebe cluster, as the work within one partition cannot be parallelized by design. Hence, you need to define enough partitions to utilize your hardware. The **number of partitions cannot be changed after the cluster was initially provisioned** (at least not yet), elastic scalability of partitions is not yet possible. If you anticipate the load increasing over time, prepare by configuring more partitions than you currently need as a buffer. For example, you could multiply the number of partitions you need for your current load by four to add a buffer. This typically has just a small impact on performance. diff --git a/docs/components/best-practices/architecture/understanding-human-tasks-management.md b/docs/components/best-practices/architecture/understanding-human-tasks-management.md index ddd320592a..eae24bd423 100644 --- a/docs/components/best-practices/architecture/understanding-human-tasks-management.md +++ b/docs/components/best-practices/architecture/understanding-human-tasks-management.md @@ -53,7 +53,7 @@ While assigning users to groups is advised, it's not the only option. You could If you have human tasks in your process, you must make up your mind on how exactly you want to let your users work on their tasks and interact with the workflow engine. You have basically three options: -- [Camunda Tasklist](/docs/components/tasklist/introduction-to-tasklist/): The Tasklist application shipped with Camunda. This works out-of-the-box and has a low development effort. However, it is limited in terms of customizability and how much you can influence the user experience. +- [Camunda Tasklist](/components/tasklist/introduction-to-tasklist.md): The Tasklist application shipped with Camunda. This works out-of-the-box and has a low development effort. However, it is limited in terms of customizability and how much you can influence the user experience. - Custom task list application: You can develop a custom task list and adapt this to your needs without compromises. Human tasks are shown inside your custom application, following your style guide and usability concept. You will use the [Camunda Tasklist API](/apis-tools/tasklist-api-rest/tasklist-api-rest-overview.md) in the background. This is very flexible, but requires additional development work. diff --git a/docs/components/best-practices/development/dealing-with-problems-and-exceptions.md b/docs/components/best-practices/development/dealing-with-problems-and-exceptions.md index 60e79f2884..70aa273ec7 100644 --- a/docs/components/best-practices/development/dealing-with-problems-and-exceptions.md +++ b/docs/components/best-practices/development/dealing-with-problems-and-exceptions.md @@ -25,7 +25,7 @@ If there is no worker subscribed when a job is created, the job is simply put in ![Worker concept](dealing-with-problems-and-exceptions-assets/worker-concept.png) -Whenever the worker has finished whatever it needs to do (like invoking the REST endpoint), it sends another call to the workflow engine, which [can be one of these three](/docs/components/concepts/job-workers/#completing-or-failing-jobs): +Whenever the worker has finished whatever it needs to do (like invoking the REST endpoint), it sends another call to the workflow engine, which [can be one of these three](/components/concepts/job-workers.md#completing-or-failing-jobs): - [`CompleteJob`](/apis-tools/zeebe-api/gateway-service.md#completejob-rpc): The service task went well, the process instance can move on. - [`FailJob `](/apis-tools/zeebe-api/gateway-service.md#failjob-rpc): The service task failed, and the workflow engine should handle this failure. There are two possibilities: @@ -100,11 +100,11 @@ zbc.createWorker("retrieveMoney", (job) => { ### Using incidents -Whenever a job fails with a retry count of `0`, an incident is raised. An incident requires human intervention, typically using Operate. Refer to [incidents in the Operate docs](/docs/components/operate/userguide/resolve-incidents-update-variables/). +Whenever a job fails with a retry count of `0`, an incident is raised. An incident requires human intervention, typically using Operate. Refer to [incidents in the Operate docs](/components/operate/userguide/resolve-incidents-update-variables.md). ### Writing idempotent workers -Zeebe uses the **at-least-once strategy** for job handlers, which is a typical choice in distributed systems. This means that the process instance only advances in the happy case (the job was completed, the workflow engine received the complete job request and committed it). A typical failure case occurs when the worker who polled the job crashes and cannot complete the job anymore. [In this case, the workflow engine gives the job to another worker after a configured timeout](/docs/components/concepts/job-workers#timeouts). This ensures that the job handler is executed at least once. +Zeebe uses the **at-least-once strategy** for job handlers, which is a typical choice in distributed systems. This means that the process instance only advances in the happy case (the job was completed, the workflow engine received the complete job request and committed it). A typical failure case occurs when the worker who polled the job crashes and cannot complete the job anymore. [In this case, the workflow engine gives the job to another worker after a configured timeout](/components/concepts/job-workers.md#timeouts). This ensures that the job handler is executed at least once. But this can mean that the handler is executed more than once! You need to consider this in your handler code, as the handler might be called more than one time. The [technical term describing this is idempotency](https://en.wikipedia.org/wiki/Idempotence). @@ -139,7 +139,7 @@ We decide that we want to deal with an exception in the process: in case the inv ...we assign a task to a human user, who is now in charge of taking care of delivering the invoice. -Learn more about the usage of [error events](/docs/components/modeler/bpmn/error-events/) in the user guide. +Learn more about the usage of [error events](/components/modeler/bpmn/error-events/error-events.md) in the user guide. ### Throwing and handling BPMN errors diff --git a/docs/components/best-practices/development/handling-data-in-processes.md b/docs/components/best-practices/development/handling-data-in-processes.md index 28b90d2265..9aa8fc51da 100644 --- a/docs/components/best-practices/development/handling-data-in-processes.md +++ b/docs/components/best-practices/development/handling-data-in-processes.md @@ -42,7 +42,7 @@ Therefore, the tweet approval process needs two variables: | `tweet` | String | "@Camunda rocks" | | `approved` | Boolean | true | -In Camunda 8, [values are stored as JSON](/docs/components/concepts/variables/#variable-values). +In Camunda 8, [values are stored as JSON](/components/concepts/variables.md#variable-values). :::caution Camunda 7 handles variables slightly differently This best practice describes variable handling within Camunda 8. Process variables are handled slightly differently with Camunda 7. Consult the [Camunda 7 documentation](https://docs.camunda.org/manual/latest/user-guide/process-engine/variables/) for details. In essence, variable values are not handled as JSON and thus there are [different values](https://docs.camunda.org/manual/latest/user-guide/process-engine/variables/#supported-variable-values) supported. @@ -65,7 +65,7 @@ completeTask( In Camunda, you do _not_ declare process variables in the process model. This allows for a lot of flexibility. Refer to recommendations below on how to overcome possible disadvantages of this approach. -Consult the [docs about variables](/docs/components/concepts/variables/#variable-values) to learn more. +Consult the [docs about variables](/components/concepts/variables.md#variable-values) to learn more. Camunda does not treat BPMN **data objects** () as process variables. We recommend using them occasionally _for documentation_, but you need to [avoid excessive usage of data objects](../../modeling/creating-readable-process-models#avoiding-excessive-usage-of-data-objects). @@ -73,7 +73,7 @@ Camunda does not treat BPMN **data objects** ( -All operations use cases put into the model can be handled via Camunda tooling, e.g. by [retrying](/docs/components/concepts/job-workers/#completing-or-failing-jobs) or [Camunda Operate](/docs/components/operate/operate-introduction/). +All operations use cases put into the model can be handled via Camunda tooling, e.g. by [retrying](/components/concepts/job-workers.md#completing-or-failing-jobs) or [Camunda Operate](/components/operate/operate-introduction.md). ### Using collaboration diagrams diff --git a/docs/components/best-practices/modeling/modeling-with-situation-patterns.md b/docs/components/best-practices/modeling/modeling-with-situation-patterns.md index 89926eeec6..8ef7b8e131 100644 --- a/docs/components/best-practices/modeling/modeling-with-situation-patterns.md +++ b/docs/components/best-practices/modeling/modeling-with-situation-patterns.md @@ -35,7 +35,7 @@ We still stay optimistic. Therefore, the process again passively waits for the s - :thumbsdown: The usage of separate event-based gateways leads to _duplication_ (for example, of the receiving message events) and makes the model _larger_, even more so in case multiple steps of escalation need to be modeled. -- :thumbsdown: During the time we need to remind the dealer, we are strictly speaking not in a position to receive the goods! According to the BPMN specification, a process can handle a message event only if it is ready to receive at exactly the moment it occurs. Fortunately, Camunda 8 introduced [message buffering](/docs/components/concepts/messages/#message-buffering), allowing to execute this model properly without loosing messages. Using Camunda 7, the message might get lost until we are at the second event-based gateway. +- :thumbsdown: During the time we need to remind the dealer, we are strictly speaking not in a position to receive the goods! According to the BPMN specification, a process can handle a message event only if it is ready to receive at exactly the moment it occurs. Fortunately, Camunda 8 introduced [message buffering](/components/concepts/messages.md#message-buffering), allowing to execute this model properly without loosing messages. Using Camunda 7, the message might get lost until we are at the second event-based gateway. :::note You might want to use that pattern when modeling _simple two phase escalations_. You should not execute it on Camunda 7. @@ -59,7 +59,7 @@ We choose by means of an exclusive gateway to make a _first step of escalation_: - :thumbsdown: The solution is _less explicit_. We could not choose to label the timer with explicit durations, as a single timer is used for both durations. The solution is _less readable_ for a less experienced reading public. For a fast understanding of the two step escalation, this method of modeling is less suitable. -- :thumbsdown: During the time we need to remind the dealer, we are strictly speaking not in a position to receive the goods! According to the BPMN specification, a process can handle a message event only if it is ready to receive at exactly the moment it occurs. Fortunately, Camunda 8 introduced [message buffering](/docs/components/concepts/messages/#message-buffering), allowing to execute this model properly without loosing messages. Using Camunda 7, the message might get lost until we are at the second event-based gateway. +- :thumbsdown: During the time we need to remind the dealer, we are strictly speaking not in a position to receive the goods! According to the BPMN specification, a process can handle a message event only if it is ready to receive at exactly the moment it occurs. Fortunately, Camunda 8 introduced [message buffering](/components/concepts/messages.md#message-buffering), allowing to execute this model properly without loosing messages. Using Camunda 7, the message might get lost until we are at the second event-based gateway. :::note You might want to use that pattern when modeling _escalations with multiple steps_. You should not execute it on Camunda 7. diff --git a/docs/components/best-practices/operations/operating-camunda-c7.md b/docs/components/best-practices/operations/operating-camunda-c7.md index 4e28e64369..74711da7f6 100644 --- a/docs/components/best-practices/operations/operating-camunda-c7.md +++ b/docs/components/best-practices/operations/operating-camunda-c7.md @@ -13,7 +13,7 @@ description: "To successfully operate Camunda 7.x, you need to take into account To successfully operate Camunda 7.x, you need to take into account operation requirements when modeling business processes. Use your existing tools and infrastructure for technical monitoring and alarming. When appropriate, use Camunda Cockpit and consider extending it with plugins instead of writing your own tooling. :::caution Camunda 7 only -This best practice targets Camunda 7.x only! The Camunda 8 stacks differs and operating it is discussed in [Camunda 8 Self-Managed](/docs/self-managed/about-self-managed/). +This best practice targets Camunda 7.x only! The Camunda 8 stacks differs and operating it is discussed in [Camunda 8 Self-Managed](/self-managed/about-self-managed.md). ::: ## Installing Camunda 7.x diff --git a/docs/components/best-practices/operations/reporting-about-processes.md b/docs/components/best-practices/operations/reporting-about-processes.md index 8a1fbe5b5f..dec8d68433 100644 --- a/docs/components/best-practices/operations/reporting-about-processes.md +++ b/docs/components/best-practices/operations/reporting-about-processes.md @@ -77,7 +77,7 @@ Historical data can be leveraged via three possible mechanisms: - **Query API**: Using the public API (currently under development), this has the advantage that you can make use of the history data within your own applications. -- Pushing **events**: Pushing Camunda events by using [exporters](/docs/components/zeebe/technical-concepts/architecture/#exporters). Note that you can only add own exporters in a Self-Managed setting, not in Camunda 8 SaaS. Exporters have the advantage that you can push the data into any infrastructure you have, and possibly even filter or enrich the data in that step. +- Pushing **events**: Pushing Camunda events by using [exporters](/components/zeebe/technical-concepts/architecture.md#exporters). Note that you can only add own exporters in a Self-Managed setting, not in Camunda 8 SaaS. Exporters have the advantage that you can push the data into any infrastructure you have, and possibly even filter or enrich the data in that step. ## Connecting custom business intelligence systems (BI), data warehouses (DWH), or monitoring solutions diff --git a/docs/components/best-practices/operations/securing-camunda-c7.md b/docs/components/best-practices/operations/securing-camunda-c7.md index f3db7dabea..84cfe8e18e 100644 --- a/docs/components/best-practices/operations/securing-camunda-c7.md +++ b/docs/components/best-practices/operations/securing-camunda-c7.md @@ -11,7 +11,7 @@ description: "Disallow unauthorized access by securing the Camunda 7.x before go Disallow unauthorized access by securing the Camunda 7.x before going live with your process applications. Understand Camunda user management essentials, enforce authorization for the REST API, define access rights for Camunda specific resources such as process definitions, and consider integrating with your Single-Sign-On (SSO). :::caution Camunda 7 only -This best practice targets Camunda 7.x only! For Camunda 8, visit [Zeebe Security](/docs/self-managed/zeebe-deployment/security/). +This best practice targets Camunda 7.x only! For Camunda 8, visit [Zeebe Security](/self-managed/zeebe-deployment/security/security.md). ::: ## Understanding user management essentials diff --git a/docs/components/best-practices/operations/versioning-process-definitions.md b/docs/components/best-practices/operations/versioning-process-definitions.md index 6cc5089284..a2bed8a8b1 100644 --- a/docs/components/best-practices/operations/versioning-process-definitions.md +++ b/docs/components/best-practices/operations/versioning-process-definitions.md @@ -147,7 +147,7 @@ Having said this, we want to emphasize that the engine is perfectly fine with ha ### Using call activities to influence versioning behaviour of pieces :::caution Camunda 8 -With Camunda 8 you cannot yet influence the version of the started process instance via the call activity. This feature is on the roadmap. At the moment, [a new process instance of the latest process definition version is started](/docs/components/modeler/bpmn/call-activities/). +With Camunda 8 you cannot yet influence the version of the started process instance via the call activity. This feature is on the roadmap. At the moment, [a new process instance of the latest process definition version is started](/components/modeler/bpmn/call-activities/call-activities.md). ::: When calling separately modeled subprocesses (i.e. _Call Activities_), the default behavior of the process engine is to call the _latest_ deployed version of that subprocess. You can change this default 'binding' behavior to call a _specific_ version or the version which was _deployed_ together with the parent process. diff --git a/docs/components/concepts/access-control/user-task-access-restrictions.md b/docs/components/concepts/access-control/user-task-access-restrictions.md index 93bc03fd66..b9a986078f 100644 --- a/docs/components/concepts/access-control/user-task-access-restrictions.md +++ b/docs/components/concepts/access-control/user-task-access-restrictions.md @@ -28,3 +28,5 @@ User task access restrictions are enabled by default. To disable them, navigate ![Enabling User Task Restriction](../assets/access-control/enforce-user-task-restriction.png) When activated, tasks assigned to users or candidate groups are only visible to the assigned user or respective group members. When deactivated, every user can see any task, regardless of the assignment. + +This configuration does not affect API users. When retrieving tasks using the APIs, all tasks are returned. diff --git a/docs/components/concepts/clusters.md b/docs/components/concepts/clusters.md index 1615fca8dc..f5d4e0008b 100644 --- a/docs/components/concepts/clusters.md +++ b/docs/components/concepts/clusters.md @@ -38,7 +38,7 @@ The way this type of cluster works varies depending on if you are using it in th ### Development clusters in the Enterprise Plan -Enterprise Plan users can purchase development clusters as part of their Enterprise subscription agreement. Deployment and execution of models (process instances, decision instances, and task users) are included at no extra cost for this type of cluster. Additionally, this type of cluster in the Enterprise plan follows the [standard data retention policy](/docs/components/concepts/data-retention.md) and does not auto-pause when not in use. +Enterprise Plan users can purchase development clusters as part of their Enterprise subscription agreement. Deployment and execution of models (process instances, decision instances, and task users) are included at no extra cost for this type of cluster. Additionally, this type of cluster in the Enterprise plan follows the [standard data retention policy](/components/concepts/data-retention.md) and does not auto-pause when not in use. Please [contact us](https://camunda.com/contact/) if you are an existing customer and would like to purchase a development cluster. diff --git a/docs/components/concepts/variables.md b/docs/components/concepts/variables.md index fd46567793..9d705f466f 100644 --- a/docs/components/concepts/variables.md +++ b/docs/components/concepts/variables.md @@ -39,7 +39,7 @@ The value of a variable is stored as a JSON value. It can have one of the follow Generally, there is a limit of 4 MB for the payload of a process instance. This 4 MB includes the variables and the workflow engine internal data, which means there is slightly less memory available for variables. The exact limitation depends on a few factors, but you can consider 3 MB as being safe. If in doubt, run a quick test case. :::note -Regardless, we don't recommend storing much data in your process context. Refer to our [best practice on handling data in processes](/docs/components/best-practices/development/handling-data-in-processes.md). +Regardless, we don't recommend storing much data in your process context. Refer to our [best practice on handling data in processes](/components/best-practices/development/handling-data-in-processes.md). ::: ## Variable scopes diff --git a/docs/components/concepts/workflow-patterns.md b/docs/components/concepts/workflow-patterns.md index ca6ea9d5bf..ace1b2cbd6 100644 --- a/docs/components/concepts/workflow-patterns.md +++ b/docs/components/concepts/workflow-patterns.md @@ -28,7 +28,7 @@ The most basic workflow patterns are (excuse the play on words) around the basic Refer to [Workflow Pattern 1: Sequence](http://www.workflowpatterns.com/patterns/control/basic/wcp1.php): "A task in a process is enabled after the completion of a preceding task in the same process." -This is implemented by a [sequence flow](/docs/components/modeler/bpmn/bpmn-primer.md#sequence-flow-controlling-the-flow-of-execution) connecting two activities: +This is implemented by a [sequence flow](/components/modeler/bpmn/bpmn-primer.md#sequence-flow-controlling-the-flow-of-execution) connecting two activities:
diff --git a/docs/components/connectors/custom-built-connectors/connector-sdk.md b/docs/components/connectors/custom-built-connectors/connector-sdk.md index e2769467f3..69ff1f4926 100644 --- a/docs/components/connectors/custom-built-connectors/connector-sdk.md +++ b/docs/components/connectors/custom-built-connectors/connector-sdk.md @@ -493,7 +493,26 @@ public class MyConnectorExecutable implements InboundConnectorExecutable { private void onEvent(MockSubscriptionEvent rawEvent) { MyConnectorEvent connectorEvent = new MyConnectorEvent(rawEvent); - connectorContext.correlate(connectorEvent); + var result = connectorContext.correlateWithResult(connectorEvent); + handleResult(result); + } + + private void handleResult(CorrelationResult result) { + switch (result) { + case Success ignored -> LOG.debug("Message correlated successfully"); + case Failure failure -> { + switch (failure.handlingStrategy()) { + case ForwardErrorToUpstream ignored -> { + LOG.error("Correlation failed, reason: {}", failure.message()); + // forward error to upstream + } + case Ignore ignored -> { + LOG.debug("Correlation failed but no action required, reason: {}", failure.message()); + // ignore + } + } + } + } } } ``` @@ -506,6 +525,13 @@ runtime (e.g. to correlate the inbound event or signal the interrupt). The `deactivate` method is just a graceful shutdown hook for inbound connectors. The implementation must release all resources used by the subscription. +The `onEvent` method is a callback function that is triggered by the subscription whenever a new event is received. +This method is responsible for passing the event to the Connector runtime environment for correlation. + +The `handleResult` method is a helper method to handle the result of the correlation. The `CorrelationResult` object contains the result of the correlation and the handling strategy. The handling strategy defines how the Connector implementation should handle the result. + +Depending on the strategy, the Connector implementation should either forward the error to the upstream system or ignore it. The handling strategy is derived by the Connector runtime based on user configuration. + #### Validation Validating input data is a common task in a Connector function. The SDK provides diff --git a/docs/components/connectors/introduction.md b/docs/components/connectors/introduction.md index 12779f7479..cc52020f92 100644 --- a/docs/components/connectors/introduction.md +++ b/docs/components/connectors/introduction.md @@ -37,5 +37,5 @@ Additionally, the [Camunda Marketplace](/components/modeler/web-modeler/camunda- - [Use Connectors in your BPMN process](./use-connectors/index.md) - [Learn about available out-of-the-box Connectors](./out-of-the-box-connectors/available-connectors-overview.md) - [Configure Connector Templates](manage-connector-templates.md) -- [Visit the Camunda Marketplace](/docs/components/modeler/web-modeler/camunda-marketplace.md) +- [Visit the Camunda Marketplace](/components/modeler/web-modeler/camunda-marketplace.md) - [Install Connectors in Self-Managed](/self-managed/connectors-deployment/install-and-start.md) diff --git a/docs/components/connectors/manage-connector-templates.md b/docs/components/connectors/manage-connector-templates.md index 8bd0857701..89426009b5 100644 --- a/docs/components/connectors/manage-connector-templates.md +++ b/docs/components/connectors/manage-connector-templates.md @@ -54,10 +54,10 @@ After publishing, a Connector template version can be applied across all models On the Web Modeler home page, you can find an overview of all shared resources within your organization. -[Organization owners and admins](/docs/components/console/manage-organization/manage-users.md#users) can: +[Organization owners and admins](/components/console/manage-organization/manage-users.md#users) can: - View additional details about the published version. -- Open the resource's milestone history (if they are in [super-user mode](/docs/components/modeler/web-modeler/collaboration/#super-user-mode) or are a [project admin or editor](/components/modeler/web-modeler/collaboration.md#access-rights-and-permissions) of the resource's project). +- Open the resource's milestone history (if they are in [super-user mode](/components/modeler/web-modeler/collaboration.md#super-user-mode) or are a [project admin or editor](/components/modeler/web-modeler/collaboration.md#access-rights-and-permissions) of the resource's project). - Unpublish a Connector template directly from this view. ![Manage published templates - organization owners and admins](img/connector-templates/manage-connector-templates-org-privileges.png) @@ -65,17 +65,17 @@ On the Web Modeler home page, you can find an overview of all shared resources w Organization members without special organization permissions can: - View all the resources published within the organization. -- Open the resource's milestone history (if they are a [project admin or editor](/docs/components/modeler/web-modeler/collaboration.md#access-rights-and-permissions) of the resource's project). +- Open the resource's milestone history (if they are a [project admin or editor](/components/modeler/web-modeler/collaboration.md#access-rights-and-permissions) of the resource's project). ![Manage published templates - no special organization permissions](img/connector-templates/manage-connector-templates-no-org-privileges.png) ### Versioning Connector templates -You can version your Connector templates using milestones, [similar to diagrams](/docs/components/modeler/web-modeler/milestones.md). +You can version your Connector templates using milestones, [similar to diagrams](/components/modeler/web-modeler/milestones.md). If you publish a new version of a Connector template and an older version is already being used in diagrams, the user can either: -- [Update the diagram elements](/docs/components/modeler/desktop-modeler/element-templates/using-templates.md#updating-templates) to use the most recent version of the Connector template. You cannot undo this action. +- [Update the diagram elements](/components/modeler/desktop-modeler/element-templates/using-templates.md#updating-templates) to use the most recent version of the Connector template. You cannot undo this action. - Continue using the older version of the Connector template in their diagrams. ## JSON editor features diff --git a/docs/components/connectors/out-of-the-box-connectors/amazon-eventbridge.md b/docs/components/connectors/out-of-the-box-connectors/amazon-eventbridge.md index b6acf7819a..bada948ec0 100644 --- a/docs/components/connectors/out-of-the-box-connectors/amazon-eventbridge.md +++ b/docs/components/connectors/out-of-the-box-connectors/amazon-eventbridge.md @@ -44,7 +44,7 @@ Follow these steps to configure the Amazon EventBridge Connector: - **Source**: Enter the value that identifies the service that generated the event. - **Detail type**: Enter the type of event being sent. Refer to the [Amazon documentation](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html) for more information on these properties. 5. In the **Event Payload** section, enter a JSON object that contains information about the event. -6. (Optional) In the **Output Mapping** section, you can set a **Result variable** or **Result expression**. Refer to the [response mapping documentation](/docs/components/connectors/use-connectors/index.md#response-mapping) to learn more. +6. (Optional) In the **Output Mapping** section, you can set a **Result variable** or **Result expression**. Refer to the [response mapping documentation](/components/connectors/use-connectors/index.md#response-mapping) to learn more. 7. (Optional) In the **Error Handling** section, define the **Error expression** to handle errors that may occur during the event sending process. Refer to the [response mapping documentation](/components/connectors/use-connectors/index.md#bpmn-errors-and-failing-jobs) to learn more. ## Amazon EventBridge Connector response diff --git a/docs/components/connectors/out-of-the-box-connectors/amazon-sagemaker.md b/docs/components/connectors/out-of-the-box-connectors/amazon-sagemaker.md index 4d85f33aa5..5d115dabac 100644 --- a/docs/components/connectors/out-of-the-box-connectors/amazon-sagemaker.md +++ b/docs/components/connectors/out-of-the-box-connectors/amazon-sagemaker.md @@ -5,6 +5,10 @@ title: Amazon SageMaker Connector description: Interact with the Amazon SageMaker Connector from your BPMN process. --- +:::info +The **Amazon SageMaker Connector** is available for `8.6.0-alpha2` or later. +::: + The **Amazon SageMaker Connector** is an outbound Connector that allows you to interact with [Amazon SageMaker](https://aws.amazon.com/sagemaker/) from your BPMN process. diff --git a/docs/components/connectors/out-of-the-box-connectors/available-connectors-overview.md b/docs/components/connectors/out-of-the-box-connectors/available-connectors-overview.md index 3fd4eb3b83..74b0db87ea 100644 --- a/docs/components/connectors/out-of-the-box-connectors/available-connectors-overview.md +++ b/docs/components/connectors/out-of-the-box-connectors/available-connectors-overview.md @@ -53,6 +53,7 @@ import TabItem from "@theme/TabItem"; - [Salesforce Connector](/components/connectors/out-of-the-box-connectors/salesforce.md) - Manage your Salesforce instance from your BPMN process. - [SendGrid Connector](/components/connectors/out-of-the-box-connectors/sendgrid.md) - Quickly send emails from your BPMN processes. - [Slack outbound Connector](/components/connectors/out-of-the-box-connectors/slack.md) - Send messages to channels or users in your [Slack](https://slack.com) workspace from your BPMN process. +- [SQL Connector](/components/connectors/out-of-the-box-connectors/sql.md) - Connect your BPMN process with SQL databases (Microsoft SQL Server, PostgreSQL, MySQL). - [Twilio Connector](/components/connectors/out-of-the-box-connectors/twilio.md) - Send and get SMS messages with [Twilio](https://www.twilio.com) service from your BPMN process. - [UiPath Connector](/components/connectors/out-of-the-box-connectors/uipath.md) - Orchestrate your [UiPath](https://cloud.uipath.com) Bots with Camunda. - [WhatsApp Connector](/components/connectors/out-of-the-box-connectors/whatsapp.md) - Send messages with [WhatsApp Business](https://business.whatsapp.com/) from your BPMN process. diff --git a/docs/components/connectors/out-of-the-box-connectors/google-maps-platform.md b/docs/components/connectors/out-of-the-box-connectors/google-maps-platform.md index 3c91b1132f..eb2b789c67 100644 --- a/docs/components/connectors/out-of-the-box-connectors/google-maps-platform.md +++ b/docs/components/connectors/out-of-the-box-connectors/google-maps-platform.md @@ -57,7 +57,7 @@ To use this operation, enable the [Google Directions API](https://developers.goo 3. (Optional) In the **Input** section, set **Region Code** (i.e `US`). You can find supported region codes [here](https://developers.google.com/maps/documentation/address-validation/coverage). 4. (Optional) In the **Input** section, set **Locality**, an incorporated city or town political entity (i.e `Mountain View`). 5. In the **Input** section, set **Address**, an incorporated city or town political entity (i.e `1600 Amphitheatre Pkwy`). -6. In the **Output** section set **Result Variable** or **Result Expression**. Refer to the [response mapping documentation](/docs/components/connectors/use-connectors/index.md#response-mapping) to learn more. +6. In the **Output** section set **Result Variable** or **Result Expression**. Refer to the [response mapping documentation](/components/connectors/use-connectors/index.md#response-mapping) to learn more. 7. Find a full example of the **Google Maps Platform Connector** response [here](https://developers.google.com/maps/documentation/address-validation/requests-validate-address#address_validation_response). To get postal address and formatted address, set to **Result Expression** in the FEEL expression: ``` @@ -96,7 +96,7 @@ In this way, the response of this method will contain a mapping from the variabl 4. In the **Input** section, set **Origin**, the place ID value that you want to use as the starting point for calculating distance. 5. Select the unit system to use when displaying results from the **Units** dropdown in the **Input** section. 6. Select the transportation mode to use when calculating distances and directions from the **Mode** dropdown in the **Input** section. -7. In the **Output** section, set **Result Variable** or **Result Expression**. Refer to the [response mapping documentation](/docs/components/connectors/use-connectors/index.md#response-mapping) to learn more. +7. In the **Output** section, set **Result Variable** or **Result Expression**. Refer to the [response mapping documentation](/components/connectors/use-connectors/index.md#response-mapping) to learn more. 8. Find a full example of the **Google Maps Platform Connector** response [here](https://developers.google.com/maps/documentation/directions/start#getting-directions). To get a distance, set **Result Expression** in the FEEL expression: ``` diff --git a/docs/components/connectors/out-of-the-box-connectors/slack.md b/docs/components/connectors/out-of-the-box-connectors/slack.md index 03d36ff3aa..d8d35991a2 100644 --- a/docs/components/connectors/out-of-the-box-connectors/slack.md +++ b/docs/components/connectors/out-of-the-box-connectors/slack.md @@ -93,7 +93,7 @@ To post a message, take the following steps: 1. When **Plain text** is selected, set **Message** to the message string you would like to send (for example, `Hello World!`). 2. When **Message block** is selected, set **Message block** to a formatted rich text block format. Learn more about rich text message block format in the [official Slack documentation](https://api.slack.com/reference/surfaces/formatting#stack_of_blocks). -The **Channel/User Name** and **Message** can either be given [static values](/docs/components/concepts/expressions.md#expressions-vs-static-values), or FEEL expressions. FEEL expressions can be used to [access process variables or dynamically create values](/components/concepts/expressions.md). This can be handy if a process variable is used to store the relevant channel or if the message needs to be composed dynamically, for example: +The **Channel/User Name** and **Message** can either be given [static values](/components/concepts/expressions.md#expressions-vs-static-values), or FEEL expressions. FEEL expressions can be used to [access process variables or dynamically create values](/components/concepts/expressions.md). This can be handy if a process variable is used to store the relevant channel or if the message needs to be composed dynamically, for example: `Channel/User Name` property might look like: @@ -107,7 +107,7 @@ The **Channel/User Name** and **Message** can either be given [static values](/d = "Order-" + orderId + " was dispatched" ``` -In the above example, the Channel/User Name is set to the [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) "#slack-connectors," which will post the message to the specified Slack channel. The **Message** property uses a FEEL expression to dynamically create the message content. It concatenates the string "Order-" with the value stored in the process variable orderId and adds "was dispatched" to complete the message. This way, the message will vary based on the specific orderId stored during the process execution. +In the above example, the Channel/User Name is set to the [static value](/components/concepts/expressions.md#expressions-vs-static-values) "#slack-connectors," which will post the message to the specified Slack channel. The **Message** property uses a FEEL expression to dynamically create the message content. It concatenates the string "Order-" with the value stored in the process variable orderId and adds "was dispatched" to complete the message. This way, the message will vary based on the specific orderId stored during the process execution. :::note Slack's [guidance on formatting](https://api.slack.com/reference/surfaces/formatting#basics) can assist in formatting messages. diff --git a/docs/components/connectors/out-of-the-box-connectors/sql.md b/docs/components/connectors/out-of-the-box-connectors/sql.md new file mode 100644 index 0000000000..a8ed810752 --- /dev/null +++ b/docs/components/connectors/out-of-the-box-connectors/sql.md @@ -0,0 +1,163 @@ +--- +id: sql +title: SQL Connector +sidebar_label: SQL Connector +description: The SQL Connector allows you to connect your BPMN process with SQL databases (MariaDB, Microsoft SQL Server, PostgreSQL, MySQL). Learn how to create a SQL Connector and make it executable. +--- + +The **SQL Connector** is an outbound Connector that allows you to connect your BPMN service with SQL databases (MariaDB, Microsoft SQL Server, PostgreSQL, MySQL). + +## Prerequisites + +To use the **SQL Connector**, ensure you have an SQL database instance running. + +To avoid exposing your sensitive data as plain text, use Camunda secrets. Follow our documentation on [managing secrets](/components/console/manage-clusters/manage-secrets.md) to learn more. + +## Create an SQL Connector task + +To use the **SQL Connector** in your process, either change the type of existing task by clicking on it and using the wrench-shaped **Change type** context menu icon, or create a new Connector task by using the **Append Connector** context menu. Follow our [guide on using Connectors](/components/connectors/use-connectors/index.md) to learn more. + +## Make your SQL Connector executable + +To make your **SQL Connector** executable, fill out the mandatory fields highlighted in red in the properties panel. + +### Database + +Select the database type you want to connect to. The **SQL Connector** supports the following databases: + +- MariaDB +- Microsoft SQL Server +- MySQL +- PostgreSQL + +### Connection + +The **SQL Connector** supports two types of connections: + +- [URI](#uri-connection): Use this option to connect to your database using a URI (similar to a connection string). +- [Detailed](#detailed-connection): Use this option to connect to your database by providing detailed connection information (host, port, database name, username, password). + +#### URI connection + +If you choose the URI connection type, you need to provide: + +| Property | Type | Required | Description | Example | +| ---------- | ---------------------------------------------------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| URI | String | Yes | The URI connection string for your database. The format of the URI depends on the database type you selected. You can find more details about the URI format in the relevant official documentation for [MariaDB](https://mariadb.com/kb/en/about-mariadb-connector-j/#connection-strings), [PostgreSQL](https://jdbc.postgresql.org/documentation/use/#connecting-to-the-database), [MySQL](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-jdbc-url-format.html), and [Microsoft SQL Server](https://learn.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver16). | `jdbc:mysql://mysqlHost:3306/mydatabase?someOption=someValue` | +| Properties | [Object](/components/modeler/feel/language-guide/feel-data-types.md#context) | No | Optional properties that can be used to configure the connection. These properties are appended to the URI. You can find more details about the properties in the relevant official documentation for [MariaDB](https://mariadb.com/kb/en/about-mariadb-connector-j/#optional-url-parameters), [PostgreSQL](https://jdbc.postgresql.org/documentation/use/#connection-parameters), [MySQL](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html), and [Microsoft SQL Server](https://learn.microsoft.com/en-us/sql/connect/jdbc/setting-the-connection-properties?view=sql-server-ver16). | `={useSSL:false, requireSSL:false, user: "john", password:"securePwd"}` | + +#### Detailed connection + +If you choose the detailed connection type, provide the following: + +| Property | Type | Required | Description | Example | +| ---------- | ---------------------------------------------------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- | +| Host | String | Yes | The host of your database. | `localhost` | +| Port | Number | Yes | The port of your database. | `3306` | +| Username | String | No | The username to connect to your database. | `myuser` | +| Password | String | No | The password to connect to your database. | `mypassword`, `{{secrets.MY_PASSWORD}}` | +| Database | String | No | The name of your database. | `mydatabase` | +| Properties | [Object](/components/modeler/feel/language-guide/feel-data-types.md#context) | No | Optional properties that can be used to configure the connection. You can find more details about the properties in the relevant official documentation for [MariaDB](https://mariadb.com/kb/en/about-mariadb-connector-j/#optional-url-parameters), [PostgreSQL](https://jdbc.postgresql.org/documentation/use/#connection-parameters), [MySQL](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html), and [Microsoft SQL Server](https://learn.microsoft.com/en-us/sql/connect/jdbc/setting-the-connection-properties?view=sql-server-ver16). | `={useSSL:false, requireSSL:false}` | + +### Query + +:::note +You should pay extra attention to the query you are executing. Make sure it is safe and does not expose your database to SQL injection attacks. +Use **[variables](#variables)** as much as possible to prevent SQL injection attacks. +::: + +| Property | Type | Required | Description | Example | +| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------- | +| [Return results](#return-results) | Boolean | Yes (default is `false`) | If the query should return results (when using `SELECT` or `RETURNING`), set this field to `true`. Otherwise (insert, update, delete, create table or database), leave the checkbox unchecked.
This property will **change** the response type.
See the details [here](#return-results). | `true` | +| [Query](#query-description) | String | Yes | The SQL query you want to execute.
See the details [here](#query-description). | `SELECT * FROM mytable WHERE field = :field` | +| [Variables](#variables) | [List](/components/modeler/feel/language-guide/feel-data-types.md#list) or [object](/components/modeler/feel/language-guide/feel-data-types.md#context) | No | Variables that can be used in the query.
See the details [here](#variables). | `={field: "theFieldValue"}`, `=[24]` | + +#### Return results + +- When `false`, the response (see the [output](#what-is-the-output-format-of-the-sql-connector) section) will consist of an object containing an integer (`modifiedRows`) representing the number of modified rows. This is applicable for: + + - `INSERT` + - `UPDATE` + - `DELETE` + +This will return `0` for: + +- `CREATE TABLE` +- `CREATE DATABASE`, except for MySQL, where it will return `1` + +- When `true`, the response will be a list of objects. This list will contain the results of the `SELECT` query.
For instance, `SELECT * FROM mytable`, where `mytable` is a table with columns' `name` and `age`, will return: + + ```json + { + "resultSet": [ + { + "name": "John Doe", + "age": 29 + }, + { + "name": "Jane Doe", + "age": 27 + } + ] + } + ``` + +#### Query {#query-description} + +The query you want to execute. We currently support the following SQL queries: + +- `SELECT` +- `INSERT` +- `UPDATE` +- `DELETE` +- `CREATE TABLE` +- `CREATE DATABASE` + +The query might contain variables that can be used in the query, and we recommend using them as a best practice to prevent SQL injection attacks. See the [variables](#variables) section for more details. + +#### Variables + +Variables need to be provided as a list or an object. We provide three ways to use variables in your query: + +| Type | Query example | Variables example | +| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | +| Named parameters | `SELECT * FROM mytable WHERE field = :field`

`INSERT INTO Employee (id, name, age, department) VALUES (:id, :name, :age, :department)` | `={field: "theFieldValue"}`

`={id: 1, name: "John", age: 34, department: "Dept"}` | +| Positional parameters | `SELECT * FROM mytable WHERE field = ?`

`INSERT INTO Employee (id, name, age, department) VALUES (?, ?, ?, ?)` | `=["theFieldValue"]`

`=[1, "John", 34, "Dept"]` | +| List parameters | `SELECT * FROM mytable WHERE field IN ()` | `={listField: ["val1", "val2"]}` | + +## Appendix & FAQ + +### How do I store secrets for my Connector? + +Use Camunda secrets to avoid exposing your credentials. Follow our documentation on [managing secrets](/components/console/manage-clusters/manage-secrets.md) to learn more. + +### What is the output format of the SQL Connector? + +Depending on the type of query you execute, the response will contain either the number of modified rows (an object with a `modifiedRows` attribute) or the result set (an object with a `resultSet` attribute). + +- If the query **doesn't return results** (insert, update, delete, create table or database), the response will consist of an integer representing the number of modified rows. See the [return results](#return-results) section for more details. + + In this case, the response will look like this: + + ```json + { + "modifiedRows": 1 + } + ``` + +- If the query is a `SELECT` query (or uses the `RETURNING` keyword), the response will be an object with a `resultSet` property (as a list). This list will contain the results of the `SELECT` query as explained in the [return results](#return-results) section. + For instance, `SELECT * FROM mytable`, where `mytable` is a table with columns' `name` and `age`, will return: + ```json + { + "resultSet": [ + { + "name": "John Doe", + "age": 29 + }, + { + "name": "Jane Doe", + "age": 27 + } + ] + } + ``` diff --git a/docs/components/connectors/use-connectors/index.md b/docs/components/connectors/use-connectors/index.md index 962a75afa0..35a2aa5afa 100644 --- a/docs/components/connectors/use-connectors/index.md +++ b/docs/components/connectors/use-connectors/index.md @@ -6,7 +6,7 @@ description: Learn how to use Connectors in Web Modeler by creating a Connector Any task can be transformed into a Connector task. This guide details the basic functionality all Connectors share. -Find the available Connectors in Camunda 8 SaaS and how to use them in detail in the [out-of-the-box Connectors](/components/connectors/out-of-the-box-connectors/available-connectors-overview.md) documentation. Additionally, learn how you can visit the [Camunda Marketplace](/docs/components/modeler/web-modeler/camunda-marketplace.md) to add Connectors from your BPMN diagram. +Find the available Connectors in Camunda 8 SaaS and how to use them in detail in the [out-of-the-box Connectors](/components/connectors/out-of-the-box-connectors/available-connectors-overview.md) documentation. Additionally, learn how you can visit the [Camunda Marketplace](/components/modeler/web-modeler/camunda-marketplace.md) to add Connectors from your BPMN diagram. :::note New to modeling with Camunda? The steps below assume some experience with Camunda modeling tools. [Model your first diagram](/components/modeler/web-modeler/model-your-first-diagram.md) to learn how to work with Web Modeler. diff --git a/docs/components/console/manage-clusters/manage-api-clients.md b/docs/components/console/manage-clusters/manage-api-clients.md index daea6fd920..54b582977a 100644 --- a/docs/components/console/manage-clusters/manage-api-clients.md +++ b/docs/components/console/manage-clusters/manage-api-clients.md @@ -26,7 +26,7 @@ The OAuth service rate limits about one request per second for all clients with All token requests count toward the rate limit, whether they are successful or not. If any client is running with an expired or invalid API key, that client will continually make token requests. That client will therefore exceed the rate limit for that IP address, and may block valid token requests from completing. ::: -The officially offered [client libraries](/docs/apis-tools/working-with-apis-tools.md) (as well as the Node.js and Spring clients) have already integrated with the auth routine, handle obtaining and refreshing an access token, and make use of a local cache. +The officially offered [client libraries](/apis-tools/working-with-apis-tools.md) (as well as the Node.js and Spring clients) have already integrated with the auth routine, handle obtaining and refreshing an access token, and make use of a local cache. If too many token requests are executed from the same source IP address in a short time, all token requests from that source IP address are blocked for a certain time. Since the access tokens have a 24-hour validity period, they must be cached on the client side, reused while still valid, and refreshed via a new token request once the validity period has expired. diff --git a/docs/components/console/manage-clusters/manage-ip-allowlists.md b/docs/components/console/manage-clusters/manage-ip-allowlists.md index d12ae6fc43..0437ba49e2 100644 --- a/docs/components/console/manage-clusters/manage-ip-allowlists.md +++ b/docs/components/console/manage-clusters/manage-ip-allowlists.md @@ -5,6 +5,10 @@ description: "If your organization works within Camunda's Enterprise plan, you c keywords: [whitelist, allowlist, ip whitelist, ip allowlist] --- +:::note +Camunda SaaS automatically manages allowlist assignments for IP addresses used by Web Modeler. +::: + If your organization works within Camunda's [Enterprise](https://camunda.com/enterprise/) plan, you can restrict access to clusters with an IP allowlist. ## Create an IP allowlist diff --git a/docs/components/console/manage-organization/enable-alpha-features.md b/docs/components/console/manage-organization/enable-alpha-features.md index 3da41380a8..d34e9d1a3b 100644 --- a/docs/components/console/manage-organization/enable-alpha-features.md +++ b/docs/components/console/manage-organization/enable-alpha-features.md @@ -17,7 +17,7 @@ Alpha terms typically refer to the specific terms and conditions that govern the Alpha terms help protect Camunda´s interests (such as protecting our intellectual property, disclaiming warranties, or limiting our liability for any issues or damages that may arise during the alpha phase), manage user expectations, encourage active participation and feedback, and ensure legal compliance during the pre-release phase of software development. :::note -Enabling alpha features is limited to [admin users and owners](/docs/components/console/manage-organization/manage-users.md) of Camunda products. +Enabling alpha features is limited to [admin users and owners](/components/console/manage-organization/manage-users.md) of Camunda products. ::: ## Accept alpha terms diff --git a/docs/components/modeler/bpmn/bpmn.md b/docs/components/modeler/bpmn/bpmn.md index 23cfe55faa..b3b534535f 100644 --- a/docs/components/modeler/bpmn/bpmn.md +++ b/docs/components/modeler/bpmn/bpmn.md @@ -25,7 +25,7 @@ The demo above shows how to create more BPMN 2.0 elements like lanes, task types ## BPMN 2.0 coverage -The Modeler [covers all BPMN 2.0 elements](/docs/components/modeler/bpmn/bpmn-coverage/) for modeling processes and collaborations. +The Modeler [covers all BPMN 2.0 elements](/components/modeler/bpmn/bpmn-coverage.md) for modeling processes and collaborations. ## BPMN 2.0 properties for execution diff --git a/docs/components/modeler/bpmn/business-rule-tasks/business-rule-tasks.md b/docs/components/modeler/bpmn/business-rule-tasks/business-rule-tasks.md index 57e9a53a6b..e593128e0f 100644 --- a/docs/components/modeler/bpmn/business-rule-tasks/business-rule-tasks.md +++ b/docs/components/modeler/bpmn/business-rule-tasks/business-rule-tasks.md @@ -36,7 +36,7 @@ a [decision literal expression](/components/modeler/dmn/decision-literal-express `zeebe:calledDecision` extension element. A business rule task must define the [DMN decision id](/components/modeler/dmn/decision-table.md#decision-id) of the -called decision as `decisionId`. Usually, the `decisionId` is defined as a [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `shipping_box_size`), but +called decision as `decisionId`. Usually, the `decisionId` is defined as a [static value](/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `shipping_box_size`), but it can also be defined as an [expression](/components/concepts/expressions.md) ( e.g. `= "shipping_box_size_" + countryCode`). The expression is evaluated on activating the business rule task (or when an incident at the business rule task is resolved) after input mappings have been applied. The expression must result in diff --git a/docs/components/modeler/bpmn/call-activities/call-activities.md b/docs/components/modeler/bpmn/call-activities/call-activities.md index fa612a2eab..e3c522b341 100644 --- a/docs/components/modeler/bpmn/call-activities/call-activities.md +++ b/docs/components/modeler/bpmn/call-activities/call-activities.md @@ -18,7 +18,7 @@ A call activity must define the BPMN process id of the called process as `proces The new instance of the defined process is created by its **latest version** at the point when the call activity is activated. -Usually, the `processId` is defined as a [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `shipping-process`), but it can also be defined as [expression](/components/concepts/expressions.md) (e.g. `= "shipping-" + tenantId`). The expression is evaluated on activating the call activity and must result in a `string`. +Usually, the `processId` is defined as a [static value](/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `shipping-process`), but it can also be defined as [expression](/components/concepts/expressions.md) (e.g. `= "shipping-" + tenantId`). The expression is evaluated on activating the call activity and must result in a `string`. ## Boundary events diff --git a/docs/components/modeler/bpmn/compensation-events/compensation-events.md b/docs/components/modeler/bpmn/compensation-events/compensation-events.md index cf69a7860d..3a07596eeb 100644 --- a/docs/components/modeler/bpmn/compensation-events/compensation-events.md +++ b/docs/components/modeler/bpmn/compensation-events/compensation-events.md @@ -37,7 +37,7 @@ case in [triggering compensation for an activity](#triggering-compensation-for-a ## Compensating embedded subprocesses If a process instance enters a compensation throw event and there are -completed [embedded subprocesses](/docs/components/modeler/bpmn/embedded-subprocesses/embedded-subprocesses.md) in the +completed [embedded subprocesses](/components/modeler/bpmn/embedded-subprocesses/embedded-subprocesses.md) in the same scope, it invokes the compensation handlers within these subprocesses and nested subprocesses. The compensation handlers are not invoked if the subprocess is active or terminated. diff --git a/docs/components/modeler/bpmn/message-events/message-events.md b/docs/components/modeler/bpmn/message-events/message-events.md index bf7cc600fa..c1614ad627 100644 --- a/docs/components/modeler/bpmn/message-events/message-events.md +++ b/docs/components/modeler/bpmn/message-events/message-events.md @@ -65,7 +65,7 @@ worker. A message can be referenced by one or more message events. It must define the name of the message (e.g. `Money collected`) and the `correlationKey` expression (e.g. `= orderId`). If the message is only referenced by message start events, the `correlationKey` is not required. -Usually, the name of the message is defined as a [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `order canceled`), but it can also be defined as [expression](/components/concepts/expressions.md) (e.g. `= "order " + awaitingAction`). If the expression belongs to a message start event of the process, it is evaluated on deploying the process. Otherwise, it is evaluated on activating the message event. The evaluation must result in a `string`. +Usually, the name of the message is defined as a [static value](/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `order canceled`), but it can also be defined as [expression](/components/concepts/expressions.md) (e.g. `= "order " + awaitingAction`). If the expression belongs to a message start event of the process, it is evaluated on deploying the process. Otherwise, it is evaluated on activating the message event. The evaluation must result in a `string`. The `correlationKey` is an expression that usually [accesses a variable](/components/modeler/feel/language-guide/feel-variables.md#access-variable) of the process instance that holds the correlation key of the message. The expression is evaluated on activating the message event and must result either in a `string` or in a `number`. diff --git a/docs/components/modeler/bpmn/receive-tasks/receive-tasks.md b/docs/components/modeler/bpmn/receive-tasks/receive-tasks.md index a9fb47de6d..719fdcd50c 100644 --- a/docs/components/modeler/bpmn/receive-tasks/receive-tasks.md +++ b/docs/components/modeler/bpmn/receive-tasks/receive-tasks.md @@ -20,7 +20,7 @@ An alternative to receive tasks is [a message intermediate catch event](../messa A message can be referenced by one or more receive tasks; it must define the name of the message (e.g. `Money collected`) and the `correlationKey` expression (e.g. `= orderId`). -Usually, the name of the message is defined as a [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `order canceled`), but it can also be defined as [expression](/components/concepts/expressions.md) (e.g. `= "order " + awaitingAction`). The expression is evaluated on activating the receive task and must result in a `string`. +Usually, the name of the message is defined as a [static value](/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `order canceled`), but it can also be defined as [expression](/components/concepts/expressions.md) (e.g. `= "order " + awaitingAction`). The expression is evaluated on activating the receive task and must result in a `string`. The `correlationKey` is an expression that usually [accesses a variable](/components/modeler/feel/language-guide/feel-variables.md#access-variable) of the process instance that holds the correlation key of the message. The expression is evaluated on activating the receive task and must result either in a `string` or `number`. diff --git a/docs/components/modeler/bpmn/service-tasks/service-tasks.md b/docs/components/modeler/bpmn/service-tasks/service-tasks.md index a7160f1598..f445b0a417 100644 --- a/docs/components/modeler/bpmn/service-tasks/service-tasks.md +++ b/docs/components/modeler/bpmn/service-tasks/service-tasks.md @@ -19,7 +19,7 @@ A service task must have a `taskDefinition`. The `taskDefinition` is used to spe A `taskDefinition` specifies the following properties: - `type` (required): Used as reference to specify which job workers request the respective service task job. For example, `order-items`. - - `type` can be specified as any [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) (`myType`) or as a FEEL [expression](../../../concepts/expressions.md) prefixed by `=` that evaluates to any FEEL string; for example, `= "order-" + priorityGroup`. + - `type` can be specified as any [static value](/components/concepts/expressions.md#expressions-vs-static-values) (`myType`) or as a FEEL [expression](../../../concepts/expressions.md) prefixed by `=` that evaluates to any FEEL string; for example, `= "order-" + priorityGroup`. - `retries` (optional): Specifies the number of times the job is retried when a worker signals failure. The default is three. The expressions are evaluated on activating the service task and must result in a `string` for the job type and a `number` for the retries. diff --git a/docs/components/modeler/bpmn/timer-events/timer-events.md b/docs/components/modeler/bpmn/timer-events/timer-events.md index 76111fc585..30b6b06b9c 100644 --- a/docs/components/modeler/bpmn/timer-events/timer-events.md +++ b/docs/components/modeler/bpmn/timer-events/timer-events.md @@ -40,7 +40,7 @@ Non-interrupting timer boundary events are often used to model notifications; fo Timers must be defined by providing either a date, a duration, or a cycle. -A timer can be defined either as a [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `P3D`) or as an [expression](/components/concepts/expressions.md). There are two common ways to use an expression: +A timer can be defined either as a [static value](/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `P3D`) or as an [expression](/components/concepts/expressions.md). There are two common ways to use an expression: - [Access a variable](/components/modeler/feel/language-guide/feel-variables.md#access-variable) (e.g. `= remainingTime`). - [Use temporal values](/components/concepts/expressions.md#temporal-expressions) (e.g. `= date and time(expirationDate) - date and time(creationDate)`). diff --git a/docs/components/modeler/bpmn/user-tasks/user-tasks.md b/docs/components/modeler/bpmn/user-tasks/user-tasks.md index 5405c2e5a7..8501d81ed1 100644 --- a/docs/components/modeler/bpmn/user-tasks/user-tasks.md +++ b/docs/components/modeler/bpmn/user-tasks/user-tasks.md @@ -39,7 +39,7 @@ attributes can be specified simultaneously: Assignment resources can also be used for set user task restrictions ([SaaS](/components/concepts/access-control/user-task-access-restrictions.md)/[Self-Managed](docs/self-managed/concepts/access-control/user-task-access-restrictions.md)), where users will see only the tasks they have authorization to work on. ::: -Typically, the assignee, candidate users, and candidate groups are defined as [static values](/docs/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `some_username`, `some_username, another_username` and +Typically, the assignee, candidate users, and candidate groups are defined as [static values](/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `some_username`, `some_username, another_username` and `sales, operations`), but they can also be defined as [expressions](/components/concepts/expressions.md) (e.g. `= book.author` and `= remove(reviewers, book.author)` and `= reviewer_roles`). The expressions are evaluated on activating the user task and must result in a `string` for the assignee and a `list of strings` for the candidate users and a `list of strings` for the candidate groups. @@ -108,7 +108,7 @@ Depending on your use case, two different types of form references can be used: of the task's `zeebe:formDefinition` extension element (see the [XML representation](#camunda-form-linked)). Form ID references always refer to the latest deployed version of the Camunda Form. - You can read more about Camunda Forms in the [Camunda Forms guide](/guides/utilizing-forms.md) or the [Camunda Forms reference](/docs/components/modeler/forms/camunda-forms-reference.md) + You can read more about Camunda Forms in the [Camunda Forms guide](/guides/utilizing-forms.md) or the [Camunda Forms reference](/components/modeler/forms/camunda-forms-reference.md) to explore all configuration options for form elements. 2. A **custom form reference** can specify any custom identifier in the user task using the `externalReference` diff --git a/docs/components/modeler/desktop-modeler/element-templates/c7-defining-templates.md b/docs/components/modeler/desktop-modeler/element-templates/c7-defining-templates.md index 08503d8b1d..9985150a92 100644 --- a/docs/components/modeler/desktop-modeler/element-templates/c7-defining-templates.md +++ b/docs/components/modeler/desktop-modeler/element-templates/c7-defining-templates.md @@ -459,6 +459,36 @@ Together with the `pattern` constraint, you may define your custom error message ] ``` +### Placeholder + +The following property types support the `placeholder` attribute: + +- `String` +- `Text` + +The attribute is supported for the following binding types: + +- `property` +- `camunda:property` +- `camunda:in` +- `camunda:in:businessKey` +- `camunda:out` +- `camunda:field` + +The placeholder is displayed when a field is empty: + +```json +... + "properties": [ + { + "label": "Web service URL", + "type": "String", + "binding": { ... }, + "placeholder": "https://example.com" + } + ] +``` + ### Display all entries Per default, the element template defines the visible entries of the properties panel. All other property controls are hidden. If you want to bring all the default entries back, it is possible to use the `entriesVisible` property. diff --git a/docs/components/modeler/desktop-modeler/element-templates/defining-templates.md b/docs/components/modeler/desktop-modeler/element-templates/defining-templates.md index 89cdc18b4a..0a42b0c7ff 100644 --- a/docs/components/modeler/desktop-modeler/element-templates/defining-templates.md +++ b/docs/components/modeler/desktop-modeler/element-templates/defining-templates.md @@ -569,6 +569,27 @@ Together with the `pattern` constraint, you can define your custom error message ] ``` +### Placeholder + +The following property types support the `placeholder` attribute: + +- `String` +- `Text` + +The placeholder is displayed when a field is empty: + +```json +... + "properties": [ + { + "label": "Web service URL", + "type": "String", + "binding": { ... }, + "placeholder": "https://example.com" + } + ] +``` + ### Icons It is possible to define custom icons to update the visual appearance of elements after applying an element template. diff --git a/docs/components/modeler/desktop-modeler/flags/flags.md b/docs/components/modeler/desktop-modeler/flags/flags.md index 65c939c806..ba88d31892 100644 --- a/docs/components/modeler/desktop-modeler/flags/flags.md +++ b/docs/components/modeler/desktop-modeler/flags/flags.md @@ -44,6 +44,7 @@ Flags passed as command line arguments take precedence over those configured via | ["zeebe-ssl-certificate"](#zeebe-ssl-certificate) | `undefined` | | ["c7-engine-version"](#default-execution-platform-version) | `undefined` | | ["c8-engine-version"](#default-execution-platform-version) | `undefined` | +| ["enable-new-context-pad"](#new-context-pad) | `false` | ## Examples @@ -96,7 +97,7 @@ To display a custom version information in the status bar of the app, configure ```js { - "display-version": "1.2.3" + "display-version": "1.0.0" } ``` @@ -134,3 +135,15 @@ To change default execution platform version, configure your `flags.json` as fol ``` New diagrams created in Desktop Modeler will use the configured version instead of the latest stable version. + +### New Context Pad + +To enable the new context pad, configure your `flags.json` as follows: + +```json +{ + "enable-new-context-pad": true +} +``` + +![New context pad](./img/new-context-pad.png) diff --git a/docs/components/modeler/desktop-modeler/flags/img/bpmn-only.png b/docs/components/modeler/desktop-modeler/flags/img/bpmn-only.png index b525087a02..fd80e9f59e 100644 Binary files a/docs/components/modeler/desktop-modeler/flags/img/bpmn-only.png and b/docs/components/modeler/desktop-modeler/flags/img/bpmn-only.png differ diff --git a/docs/components/modeler/desktop-modeler/flags/img/display-version.png b/docs/components/modeler/desktop-modeler/flags/img/display-version.png index 58c044e38b..4769092826 100644 Binary files a/docs/components/modeler/desktop-modeler/flags/img/display-version.png and b/docs/components/modeler/desktop-modeler/flags/img/display-version.png differ diff --git a/docs/components/modeler/desktop-modeler/flags/img/new-context-pad.png b/docs/components/modeler/desktop-modeler/flags/img/new-context-pad.png new file mode 100644 index 0000000000..a6818d42c6 Binary files /dev/null and b/docs/components/modeler/desktop-modeler/flags/img/new-context-pad.png differ diff --git a/docs/components/modeler/feel/language-guide/feel-boolean-expressions.md b/docs/components/modeler/feel/language-guide/feel-boolean-expressions.md index 36bed6808f..a02342ee68 100644 --- a/docs/components/modeler/feel/language-guide/feel-boolean-expressions.md +++ b/docs/components/modeler/feel/language-guide/feel-boolean-expressions.md @@ -222,7 +222,7 @@ duration("PT4H") instance of days and time duration ### Unary-tests/in -Evaluates a [unary-tests](/docs/components/modeler/feel/language-guide/feel-unary-tests) with the given value. The keyword `in` separates the value from the unary-tests. +Evaluates a [unary-tests](/components/modeler/feel/language-guide/feel-unary-tests.md) with the given value. The keyword `in` separates the value from the unary-tests. ```feel 5 in (3..7) diff --git a/docs/components/modeler/feel/language-guide/feel-error-handling.md b/docs/components/modeler/feel/language-guide/feel-error-handling.md index 67eb0a2c4f..3eafb07a29 100644 --- a/docs/components/modeler/feel/language-guide/feel-error-handling.md +++ b/docs/components/modeler/feel/language-guide/feel-error-handling.md @@ -36,8 +36,8 @@ a.b > 10 ``` To handle `null` values explicitly, use -a [null-check](/docs/components/modeler/feel/language-guide/feel-boolean-expressions.md#null-check) or the -function [`get or else()`](/docs/components/modeler/feel/builtin-functions/feel-built-in-functions-boolean.md#get-or-elsevalue-default). +a [null-check](/components/modeler/feel/language-guide/feel-boolean-expressions.md#null-check) or the +function [`get or else()`](/components/modeler/feel/builtin-functions/feel-built-in-functions-boolean.md#get-or-elsevalue-default). ```feel a != null and a.b > 10 @@ -49,7 +49,7 @@ get or else(a, "prio-99") By default, the evaluation of an expression doesn't fail but returns `null`. If there is a special need to fail the evaluation under a certain condition, use the -function [`assert()`](/docs/components/modeler/feel/builtin-functions/feel-built-in-functions-boolean.md#assertvalue-condition). +function [`assert()`](/components/modeler/feel/builtin-functions/feel-built-in-functions-boolean.md#assertvalue-condition). ```feel assert(a, a != null) diff --git a/docs/components/modeler/feel/language-guide/feel-functions.md b/docs/components/modeler/feel/language-guide/feel-functions.md index 20b5fa5ae1..7169b33121 100644 --- a/docs/components/modeler/feel/language-guide/feel-functions.md +++ b/docs/components/modeler/feel/language-guide/feel-functions.md @@ -6,7 +6,7 @@ description: "This document outlines various functions and examples." ### Invocation -Invokes a built-in function (e.g. [`contains()`](/docs/components/modeler/feel/builtin-functions/feel-built-in-functions-string.md#containsstring-match)) or a user-defined +Invokes a built-in function (e.g. [`contains()`](/components/modeler/feel/builtin-functions/feel-built-in-functions-string.md#containsstring-match)) or a user-defined function by its name. The arguments of the function can be passed positional or named. - Positional: Only the values, in the same order as defined by the function (e.g. `f(1,2)`). diff --git a/docs/components/modeler/feel/language-guide/feel-string-expressions.md b/docs/components/modeler/feel/language-guide/feel-string-expressions.md index 2ee096f690..7e05f77750 100644 --- a/docs/components/modeler/feel/language-guide/feel-string-expressions.md +++ b/docs/components/modeler/feel/language-guide/feel-string-expressions.md @@ -24,7 +24,7 @@ An addition concatenates the strings. The result is a string containing the char :::tip The concatenation is only available for string values. For other types, you can use -the [`string()`](/docs/components/modeler/feel/builtin-functions/feel-built-in-functions-conversion.md#stringfrom) function to convert +the [`string()`](/components/modeler/feel/builtin-functions/feel-built-in-functions-conversion.md#stringfrom) function to convert the value into a string first. ```feel diff --git a/docs/components/modeler/feel/language-guide/feel-unary-tests.md b/docs/components/modeler/feel/language-guide/feel-unary-tests.md index 8d00e20121..3c66b8bf92 100644 --- a/docs/components/modeler/feel/language-guide/feel-unary-tests.md +++ b/docs/components/modeler/feel/language-guide/feel-unary-tests.md @@ -129,7 +129,7 @@ not(2, 3) ### Expressions -Evaluates an expression that returns a boolean value. For example, [invoking a function](/docs/components/modeler/feel/language-guide/feel-functions#invocation). +Evaluates an expression that returns a boolean value. For example, [invoking a function](/components/modeler/feel/language-guide/feel-functions.md#invocation). The input value can be accessed in the expression by using the symbol `?` (a question mark). diff --git a/docs/components/modeler/feel/language-guide/feel-variables.md b/docs/components/modeler/feel/language-guide/feel-variables.md index f947f460f6..2e72a68ff3 100644 --- a/docs/components/modeler/feel/language-guide/feel-variables.md +++ b/docs/components/modeler/feel/language-guide/feel-variables.md @@ -14,7 +14,7 @@ Access the value of a variable by its variable name. a + b ``` -If the value of the variable is a context, a [context entry can be accessed](/docs/components/modeler/feel/language-guide/feel-context-expressions#get-entrypath) by its key. +If the value of the variable is a context, a [context entry can be accessed](/components/modeler/feel/language-guide/feel-context-expressions.md#get-entrypath) by its key. ```feel a.b @@ -24,7 +24,7 @@ If no variable exists with the given name, the expression returns `null`. :::tip -Use a [null-check](/docs/components/modeler/feel/language-guide/feel-boolean-expressions#null-check) if the variable can be `null` or is optional. +Use a [null-check](/components/modeler/feel/language-guide/feel-boolean-expressions.md#null-check) if the variable can be `null` or is optional. ```feel a != null and a.b > 10 @@ -67,7 +67,7 @@ order.`total price` ``` :::tip -Use the [`get value()`](/docs/components/modeler/feel/builtin-functions/feel-built-in-functions-context.md#get-valuecontext-key) function +Use the [`get value()`](/components/modeler/feel/builtin-functions/feel-built-in-functions-context.md#get-valuecontext-key) function to retrieve the context value of an arbitrary key. ```feel diff --git a/docs/components/modeler/feel/what-is-feel.md b/docs/components/modeler/feel/what-is-feel.md index 3c9cf72679..88546e0058 100644 --- a/docs/components/modeler/feel/what-is-feel.md +++ b/docs/components/modeler/feel/what-is-feel.md @@ -6,14 +6,14 @@ description: "FEEL is a part of DMN specification of the Object Management Group import { MarkerCamundaExtension } from "@site/src/mdx/MarkerCamundaExtension"; -**Friendly Enough Expression Language (FEEL)** is designed to write expressions in a way that is easily understood by both business professionals and developers. In Camunda, FEEL is used to define expressions in the context of [BPMN diagrams](/docs/components/modeler/bpmn/bpmn.md), [DMN diagrams](/docs/components/modeler/dmn/dmn.md), and [Forms](/docs/components/modeler/forms/camunda-forms-reference.md). FEEL is specified in +**Friendly Enough Expression Language (FEEL)** is designed to write expressions in a way that is easily understood by both business professionals and developers. In Camunda, FEEL is used to define expressions in the context of [BPMN diagrams](/components/modeler/bpmn/bpmn.md), [DMN diagrams](/components/modeler/dmn/dmn.md), and [Forms](/components/modeler/forms/camunda-forms-reference.md). FEEL is specified in the [DMN specification](https://www.omg.org/spec/DMN/) of the Object Management Group (OMG). ## Learning FEEL To understand FEEL better and how it is integrated into Camunda, you can explore the following resources: -- [Expressions in Camunda 8](/docs/components/concepts/expressions.md): Learn how expressions are used within our platform. +- [Expressions in Camunda 8](/components/concepts/expressions.md): Learn how expressions are used within our platform. - [FEEL syntax and operators](./language-guide/feel-expressions-introduction.md): Learn how to write basic expression. - [Built-in functions](./builtin-functions/feel-built-in-functions-introduction.md): Read about functions the FEEL engine offers. diff --git a/docs/components/modeler/forms/form-element-library/forms-element-library-image.md b/docs/components/modeler/forms/form-element-library/forms-element-library-image.md index 61e461f721..3becca2d45 100644 --- a/docs/components/modeler/forms/form-element-library/forms-element-library-image.md +++ b/docs/components/modeler/forms/form-element-library/forms-element-library-image.md @@ -10,7 +10,7 @@ An element allowing the user to display images. ## Configurable properties -- **Image source**: Specifies the image source via [expression](../../feel/language-guide/feel-expressions-introduction.md), [templating syntax](../configuration/forms-config-templating-syntax.md) or [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) (hyperlink or data URI). +- **Image source**: Specifies the image source via [expression](../../feel/language-guide/feel-expressions-introduction.md), [templating syntax](../configuration/forms-config-templating-syntax.md) or [static value](/components/concepts/expressions.md#expressions-vs-static-values) (hyperlink or data URI). - **Alternative text**: Provides an alternative text to the image in case it cannot be displayed. Can either be an [expression](../../feel/language-guide/feel-expressions-introduction.md), plain text, or [templating syntax](../configuration/forms-config-templating-syntax.md). - **Hide if**: [Expression](../../feel/language-guide/feel-expressions-introduction.md) to hide the image. - **Columns**: Space the field will use inside its row. **Auto** means it will automatically adjust to available space in the row. Read more about the underlying grid layout in the [Carbon Grid documentation](https://carbondesignsystem.com/guidelines/2x-grid/overview). diff --git a/docs/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md b/docs/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md index 4db6230d9d..a93ab98c9f 100644 --- a/docs/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md +++ b/docs/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md @@ -37,7 +37,7 @@ To create a form for public access, follow these steps: 4. Design your form using the **component palette**. 5. [Link form to start event](/components/modeler/web-modeler/advanced-modeling/form-linking.md#using-the-link-button). -Once ready, return to your process. You can read more about form creation in the [form guide](/docs/guides/utilizing-forms.md). +Once ready, return to your process. You can read more about form creation in the [form guide](/guides/utilizing-forms.md). ## Enable public access diff --git a/docs/components/modeler/web-modeler/camunda-marketplace.md b/docs/components/modeler/web-modeler/camunda-marketplace.md index bfb2482a8e..c5d360f4a4 100644 --- a/docs/components/modeler/web-modeler/camunda-marketplace.md +++ b/docs/components/modeler/web-modeler/camunda-marketplace.md @@ -8,7 +8,7 @@ Discover the **Camunda Marketplace**, your go-to destination for leveraging vari Follow our intuitive guides to explore and harness Connectors and process blueprints using Web Modeler. If you prefer to utilize these resources within Desktop Modeler, download them directly from the [Camunda Marketplace website](https://marketplace.camunda.com). -If you are a **[Web Modeler Self-Managed](/docs/self-managed/modeler/web-modeler/installation.md)** user, be aware that your organization may restrict access to marketplace resources. If you are unsure about your organization's access, contact your organization's owner for clarification. +If you are a **[Web Modeler Self-Managed](/self-managed/modeler/web-modeler/installation.md)** user, be aware that your organization may restrict access to marketplace resources. If you are unsure about your organization's access, contact your organization's owner for clarification. ## Browse Marketplace Connectors @@ -25,7 +25,7 @@ To navigate to the Camunda Marketplace, take the following steps: 4. Click the **blue shop icon** next to Change element to open the Camunda Marketplace modal. ![marketplace icon](./img/marketplace-icon.png) -5. Browse [available Connectors](/docs/components/connectors/out-of-the-box-connectors/available-connectors-overview.md), tick the boxes on the left side of the modal to implement filters, and search for a specific Connector by typing in the **Search for a connector** search bar. +5. Browse [available Connectors](/components/connectors/out-of-the-box-connectors/available-connectors-overview.md), tick the boxes on the left side of the modal to implement filters, and search for a specific Connector by typing in the **Search for a connector** search bar. ![camunda marketplace](./img/connector-marketplace.png) :::note @@ -44,9 +44,9 @@ After downloading, you may view a modal reading **Connector already exists**: - By clicking **Replace resource**, you are replacing the current Connector. If you are downloading a Connector from the Camunda Marketplace, it is read-only and you can view it if you are opening the template using the Camunda template editor. To edit the Connector, click **Customize template** to duplicate this template. :::note -You can also host custom Connectors developed with [Connector SDK](/docs/components/connectors/custom-built-connectors/connector-sdk.md). Instead of viewing **Download to project**, it may read [**Learn more about self-hosted Connectors**](/docs/guides/host-custom-connector.md). +You can also host custom Connectors developed with [Connector SDK](/components/connectors/custom-built-connectors/connector-sdk.md). Instead of viewing **Download to project**, it may read [**Learn more about self-hosted Connectors**](/guides/host-custom-connector.md). -For the out-of-the-box Connectors provided by Camunda, the Connectors Bundle project provides a set of all Connector templates related to one release version. These are templates that are reusing the Camunda Connectors via the [Protocol Connector Approach](/docs/components/connectors/protocol/rest.md). +For the out-of-the-box Connectors provided by Camunda, the Connectors Bundle project provides a set of all Connector templates related to one release version. These are templates that are reusing the Camunda Connectors via the [Protocol Connector Approach](/components/connectors/protocol/rest.md). This means a developer created a template and reused one of the Camunda Connector runtimes. Only for these templates is direct **Download to project** available. ::: @@ -64,6 +64,6 @@ This means a developer created a template and reused one of the Camunda Connecto ## Additional resources -- Learn more about our available [out-of-the-box Connectors](/docs/components/connectors/out-of-the-box-connectors/available-connectors-overview.md). -- Understand different [Connector types](/docs/components/connectors/connector-types.md). -- Learn how to modify BPMN elements with [Connector templates](/docs/components/connectors/custom-built-connectors/connector-templates.md) to create custom modeling experiences. +- Learn more about our available [out-of-the-box Connectors](/components/connectors/out-of-the-box-connectors/available-connectors-overview.md). +- Understand different [Connector types](/components/connectors/connector-types.md). +- Learn how to modify BPMN elements with [Connector templates](/components/connectors/custom-built-connectors/connector-templates.md) to create custom modeling experiences. diff --git a/docs/components/modeler/web-modeler/img/process-applications/deploy-process-application.png b/docs/components/modeler/web-modeler/img/process-applications/deploy-process-application.png index f0c0b7aa4a..b80a18817a 100644 Binary files a/docs/components/modeler/web-modeler/img/process-applications/deploy-process-application.png and b/docs/components/modeler/web-modeler/img/process-applications/deploy-process-application.png differ diff --git a/docs/components/modeler/web-modeler/img/process-applications/file-list.png b/docs/components/modeler/web-modeler/img/process-applications/file-list.png index 0aab2d85c9..566d72cc6d 100644 Binary files a/docs/components/modeler/web-modeler/img/process-applications/file-list.png and b/docs/components/modeler/web-modeler/img/process-applications/file-list.png differ diff --git a/docs/components/modeler/web-modeler/img/process-applications/reassign-main-process.png b/docs/components/modeler/web-modeler/img/process-applications/reassign-main-process.png new file mode 100644 index 0000000000..109a020fbf Binary files /dev/null and b/docs/components/modeler/web-modeler/img/process-applications/reassign-main-process.png differ diff --git a/docs/components/modeler/web-modeler/img/process-applications/run-process-application.png b/docs/components/modeler/web-modeler/img/process-applications/run-process-application.png index e6bffbfcbe..a374248f15 100644 Binary files a/docs/components/modeler/web-modeler/img/process-applications/run-process-application.png and b/docs/components/modeler/web-modeler/img/process-applications/run-process-application.png differ diff --git a/docs/components/modeler/web-modeler/process-applications.md b/docs/components/modeler/web-modeler/process-applications.md index 6da84dc0e9..c3b6383b18 100644 --- a/docs/components/modeler/web-modeler/process-applications.md +++ b/docs/components/modeler/web-modeler/process-applications.md @@ -5,6 +5,7 @@ description: Process applications allow you to deploy multiple related files tog --- import EmptyProjectImg from './img/process-applications/empty-project.png' +import ReassignMainProcessImg from './img/process-applications/reassign-main-process.png' import FileListImg from './img/process-applications/file-list.png' import DeployProcessApplicationImg from './img/process-applications/deploy-process-application.png' import RunProcessApplicationImg from './img/process-applications/run-process-application.png' @@ -36,9 +37,10 @@ The new process application will contain an empty BPMN diagram with the same nam :::note A process application must always have a main process. That is why the main process diagram cannot be deleted or moved out of the process application. +However, you can assign another BPMN diagram as the new main process with the **Reassign main process** option in the +diagram's action menu: -To replace the main process' content, upload a local file with the **Replace via upload** option in the breadcrumb menu -or by dragging and dropping it onto the modeling canvas. +Reassign the main process ::: ### Add files to a process application @@ -59,19 +61,20 @@ This is to avoid ambiguity and conflicts when you link resources and deploy the ### Deploy a process application -Use the **Deploy** button on the process application page to deploy the process application to a Zeebe cluster. +Open the process application's [main process](#main-process) and use the **Deploy** button to deploy the process application to a Zeebe cluster.

Deploy a process application

All BPMN, DMN, and form files contained in the process application folder will be deployed in a single bundle. :::note -If any resource fails to deploy, the whole deployment will [fail](#deployment-errors) and the cluster state will remain unchanged. This ensures that a process application cannot be deployed incompletely or in an inconsistent state, making it safer to use. +If any resource fails to deploy, the whole deployment will [fail](#deployment-errors) and the cluster state will remain unchanged. +This ensures that a process application cannot be deployed incompletely or in an inconsistent state, making it safer to use. ::: ### Run a process application -Use the **Run** button on the process application page to start a new instance of the process application's [main process](#main-process). +Open the process application's [main process](#main-process) and use the **Run** button to start a new instance. Before the actual process instance is started, all resources will be re-deployed if required so the new instance will always use their latest state. @@ -83,8 +86,8 @@ Follow this link to monitor the process instance and interact with it as needed. :::info Single-file deployment is not supported in a process application. -If you click the **Deploy** or **Run** button on the modeling screen for any BPMN or DMN diagram in the process -application, you will deploy _all_ resources of the process application and not just the current diagram. +If you click the **Deploy** or **Run** button for any diagram other than the main process, you will be asked to open the +main process instead to deploy the whole process application from there. ::: ### Deployment errors @@ -114,10 +117,8 @@ Also be aware of the following limitations when working with process application - You cannot create subfolders inside a process application. - Process applications can only be deployed to a Zeebe cluster in version 8.4.0 or higher. - It is not possible to deploy individual files that are part of a process application; the application will always be deployed as a whole. +- When you deploy a process application, only the main process will be checked for missing [Connector secrets](../../console/manage-clusters/manage-secrets.md). - The overall size of the deployment bundle is limited due to a maximum [record](../../zeebe/technical-concepts/internal-processing.md) size of 4 MB in Zeebe. 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'` -- If the main process has a start event with a linked form, the form is currently not previewed in the [**Start instance** modal](#run-a-process-application). - You can still start the process instance with the form's input via a [public form](run-or-publish-your-process.md#publish-via-a-public-form) - (SaaS only) or directly in [Tasklist](run-or-publish-your-process.md#publish-to-tasklist). diff --git a/docs/components/tasklist/introduction-to-tasklist.md b/docs/components/tasklist/introduction-to-tasklist.md index 9392e121df..4b6e65eaa7 100644 --- a/docs/components/tasklist/introduction-to-tasklist.md +++ b/docs/components/tasklist/introduction-to-tasklist.md @@ -10,4 +10,4 @@ With Tasklist, orchestrate human workflows critical to your business and reduce As you model a business process using BPMN and deploy it to the engine, users are notified in Tasklist when they're assigned a task, and run the work that's required for the specific task. -You are not limited to use the [Tasklist user interface](/docs/components/tasklist/userguide/using-tasklist.md). You can extend your case or build a fully custom application using the APIs. Tasklist provides a [REST API](/docs/apis-tools/tasklist-api-rest/tasklist-api-rest-overview.md) for task and variable queries, and together with the Zeebe API, tasks can be assigned, updated, and completed. Learn more in the [frontend developer documentation](/apis-tools/frontend-development/01-task-applications/01-introduction-to-task-applications.md). +You are not limited to use the [Tasklist user interface](/components/tasklist/userguide/using-tasklist.md). You can extend your case or build a fully custom application using the APIs. Tasklist provides a [REST API](/apis-tools/tasklist-api-rest/tasklist-api-rest-overview.md) for task and variable queries, and together with the Zeebe API, tasks can be assigned, updated, and completed. Learn more in the [frontend developer documentation](/apis-tools/frontend-development/01-task-applications/01-introduction-to-task-applications.md). diff --git a/docs/components/tasklist/userguide/starting-processes.md b/docs/components/tasklist/userguide/starting-processes.md index 3380317249..58fd68a236 100644 --- a/docs/components/tasklist/userguide/starting-processes.md +++ b/docs/components/tasklist/userguide/starting-processes.md @@ -15,14 +15,14 @@ In the **Search** box, it's possible to filter the processes based on their name Using **Additional filters** it is possible to filter processes by other attributes: - All processes: Shows all processes which match the search criteria. -- Requires form input to start: Filters processes to ones which have a [linked or embedded Camunda Form](/docs/components/modeler/web-modeler/advanced-modeling/form-linking.md) on the start event. +- Requires form input to start: Filters processes to ones which have a [linked or embedded Camunda Form](/components/modeler/web-modeler/advanced-modeling/form-linking.md) on the start event. - Does not require form input to start: Filter process to ones which do not have a Camunda Form on the start event. To start a process, click **Start process** on the process you want to start. ![tasklist-processes-start](img/tasklist-processes-start.png) -If the start event of this process contains a [linked or embedded Camunda Form](/docs/components/modeler/web-modeler/advanced-modeling/form-linking.md), a modal window containing that form will automatically open. +If the start event of this process contains a [linked or embedded Camunda Form](/components/modeler/web-modeler/advanced-modeling/form-linking.md), a modal window containing that form will automatically open. ![tasklist-processes-start-with-form](img/tasklist-processes-start-with-form.png) @@ -40,7 +40,7 @@ There could be multiple reasons why you are not seeing any process in the **Proc - There is no process deployed to your environment. -- Permissions to start a process are managed in [Identity](/docs/self-managed/identity/user-guide/authorizations/managing-resource-authorizations.md) for Self-Managed, and in [Console](/docs/components/console/manage-organization/manage-users.md) for SaaS. It is likely your user does not yet have privileges to start processes on Tasklist. +- Permissions to start a process are managed in [Identity](/self-managed/identity/user-guide/authorizations/managing-resource-authorizations.md) for Self-Managed, and in [Console](/components/console/manage-organization/manage-users.md) for SaaS. It is likely your user does not yet have privileges to start processes on Tasklist. For all the above scenarios, contact your administrator to understand why no processes are displayed. @@ -48,7 +48,7 @@ For all the above scenarios, contact your administrator to understand why no pro Camunda 8 SaaS only -Tasklist offers a convenient method to start processes with a form using a public URL. This functionality relies on process configuration performed in [Web Modeler](/docs/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md), enabling users to create and manage processes. +Tasklist offers a convenient method to start processes with a form using a public URL. This functionality relies on process configuration performed in [Web Modeler](/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md), enabling users to create and manage processes. In scenarios where processes can be triggered through a form, Tasklist hosts the form on a URL that is accessible to all users, eliminating the need for authentication. By submitting the form, the associated process is launched. This feature proves advantageous when you want to expose processes to users outside your organization, as it allows anyone to start a process. @@ -56,7 +56,7 @@ In scenarios where processes can be triggered through a form, Tasklist hosts the #### Process configuration and deployment -To enable the public exposure of a process, the first step involves configuring it to be initiated via a form. This configuration is performed during the process design phase using [Web Modeler](/docs/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md). +To enable the public exposure of a process, the first step involves configuring it to be initiated via a form. This configuration is performed during the process design phase using [Web Modeler](/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md). #### Accessing and submitting the form diff --git a/docs/guides/configuring-out-of-the-box-connector.md b/docs/guides/configuring-out-of-the-box-connector.md index b53ed36bd3..199b884db9 100644 --- a/docs/guides/configuring-out-of-the-box-connector.md +++ b/docs/guides/configuring-out-of-the-box-connector.md @@ -11,12 +11,12 @@ keywords: [connector, modeling, connectors, low-code, no-code] The launch of [Camunda 8](../components/concepts/what-is-camunda-8.md) also introduced an integration framework with a key goal: integrate faster to reduce the time it takes to automate and orchestrate business processes across systems. :::note -New to Connectors? Review our [introduction to Connectors](/docs/components/connectors/introduction.md) to get familiar with their capabilities. +New to Connectors? Review our [introduction to Connectors](/components/connectors/introduction.md) to get familiar with their capabilities. ::: [Connectors](../components/connectors/introduction.md) achieve this goal. Ready to use out of the box, Connectors help automate complex [business processes](../components/concepts/processes.md) by inserting them into [BPMN diagrams](./automating-a-process-using-bpmn.md) within [Web Modeler](../components/modeler/about-modeler.md), and configuring them via the properties panel. -You can also orchestrate APIs, for example by working with a [REST Connector](/docs/guides/getting-started-orchestrate-apis.md). Learn more about [types of Connectors](/docs/components/connectors/connector-types.md). +You can also orchestrate APIs, for example by working with a [REST Connector](/guides/getting-started-orchestrate-apis.md). Learn more about [types of Connectors](/components/connectors/connector-types.md). Connectors technically consist of two parts: the business logic is implemented as a [job worker](../components/concepts/job-workers.md), and the user interface during modeling is provided using an element template. In this guide, we'll walk step-by-step through the implementation of a sample Connector. @@ -105,7 +105,7 @@ In [Operate](../components/operate/operate-introduction.md), you will now see th ## Additional resources and next steps -- [Use Connectors in your BPMN process](/docs/components/connectors/use-connectors/index.md) +- [Use Connectors in your BPMN process](/components/connectors/use-connectors/index.md) - [Available Connectors](../components/connectors/out-of-the-box-connectors/available-connectors-overview.md) - [Connectors & Integration Framework](https://camunda.com/platform/modeler/connectors/) - [Camunda BPMN Tutorial](https://camunda.com/bpmn/) diff --git a/docs/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md b/docs/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md index 9d4a484a8c..a91f8d177f 100644 --- a/docs/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md +++ b/docs/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md @@ -27,7 +27,7 @@ Each pipeline is unique. The Web Modeler API offers flexibility to tailor integr - A platform to host a version control system (VCS) such as GitHub or GitLab. - An existing pipeline or a plan to set one up using tools like [CircleCI](https://circleci.com/) or [Jenkins](https://www.jenkins.io/), cloud platforms such as [Azure DevOps Pipelines](https://azure.microsoft.com/de-de/products/devops), or built-in solutions of VCS platforms like [GitHub Actions](https://github.com/features/actions) or [GitLab's DevSecOps Lifecycle](https://about.gitlab.com/stages-devops-lifecycle/). - Make yourself familiar with the [Web Modeler API](/apis-tools/web-modeler-api/index.md) through the [OpenAPI documentation](https://modeler.cloud.camunda.io/swagger-ui/index.html). -- Understand how [clusters](/docs/next/components/concepts/clusters/) work in Camunda 8. +- Understand how [clusters](/components/concepts/clusters.md) work in Camunda 8. - Ensure you’ve [created a Camunda 8 account](/guides/create-account.md), or installed [Camunda 8 Self-Managed](/self-managed/about-self-managed.md). ## Setup diff --git a/docs/guides/getting-started-orchestrate-apis.md b/docs/guides/getting-started-orchestrate-apis.md index b6a178ea58..e2f4cc1ade 100644 --- a/docs/guides/getting-started-orchestrate-apis.md +++ b/docs/guides/getting-started-orchestrate-apis.md @@ -12,13 +12,13 @@ keywords: import clsx from "clsx"; -This guide will walk you through working with a REST Connector task as a first time Camunda 8 user. The REST Connector is a [protocol Connector](/docs/components/connectors/out-of-the-box-connectors/available-connectors-overview.md#protocol-connectors), where you can make a request to a REST API and use the response in the next steps of your process. +This guide will walk you through working with a REST Connector task as a first time Camunda 8 user. The REST Connector is a [protocol Connector](/components/connectors/out-of-the-box-connectors/available-connectors-overview.md#protocol-connectors), where you can make a request to a REST API and use the response in the next steps of your process. :::note -New to Connectors? Review our [introduction to Connectors](/docs/components/connectors/introduction.md) to get familiar with their capabilities, and have a closer look at all of the available [out-of-the-box Connectors](/docs/components/connectors/out-of-the-box-connectors/available-connectors-overview.md). +New to Connectors? Review our [introduction to Connectors](/components/connectors/introduction.md) to get familiar with their capabilities, and have a closer look at all of the available [out-of-the-box Connectors](/components/connectors/out-of-the-box-connectors/available-connectors-overview.md). ::: -The concept of a Connector consists of two parts: the business logic is implemented as a job worker, and the user interface during modeling is provided using an element template. In this guide, you will create a REST Connector task in your process, handle the HTTP response, and deploy your process. New to creating a process? Get started by [modeling your first diagram](/docs/guides/model-your-first-process.md). +The concept of a Connector consists of two parts: the business logic is implemented as a job worker, and the user interface during modeling is provided using an element template. In this guide, you will create a REST Connector task in your process, handle the HTTP response, and deploy your process. New to creating a process? Get started by [modeling your first diagram](/guides/model-your-first-process.md). ## Create a REST Connector task @@ -85,5 +85,5 @@ Don't want to build the process yourself? Click this button to create it from a ## Additional resources and next steps - Learn more about Camunda 8 and what it can do by reading [What is Camunda 8](/components/concepts/what-is-camunda-8.md) or watching our [Overview video](https://bit.ly/3TjNEm7) in Camunda Academy. -- [Learn about types of Connectors](/docs/components/connectors/connector-types.md) -- [Use Connectors in your BPMN process](/docs/components/connectors/use-connectors/index.md) +- [Learn about types of Connectors](/components/connectors/connector-types.md) +- [Use Connectors in your BPMN process](/components/connectors/use-connectors/index.md) diff --git a/docs/guides/migrating-from-camunda-7/conceptual-differences.md b/docs/guides/migrating-from-camunda-7/conceptual-differences.md index e018863f40..bbd37c2c08 100644 --- a/docs/guides/migrating-from-camunda-7/conceptual-differences.md +++ b/docs/guides/migrating-from-camunda-7/conceptual-differences.md @@ -78,7 +78,7 @@ This is visualized on the lefthand side of the picture below. With Camunda 8, a ![spring boot](../img/architecture-spring-boot.png) -The difference is that the engine is no longer embedded, which is also our latest [greenfield stack recommendation in Camunda 7](/docs/components/best-practices/architecture/deciding-about-your-stack-c7/#the-java-greenfield-stack). If you are interested in the reasons why we switched our recommendation from embedded to remote workflow engines, refer to [this blog post](https://blog.bernd-ruecker.com/moving-from-embedded-to-remote-workflow-engines-8472992cc371). +The difference is that the engine is no longer embedded, which is also our latest [greenfield stack recommendation in Camunda 7](/components/best-practices/architecture/deciding-about-your-stack-c7.md#the-java-greenfield-stack). If you are interested in the reasons why we switched our recommendation from embedded to remote workflow engines, refer to [this blog post](https://blog.bernd-ruecker.com/moving-from-embedded-to-remote-workflow-engines-8472992cc371). The packaging of a process solution is the same with Camunda 7 and Camunda 8. Your process solution is one Java application that consists of your BPMN and DMN models, as well as all glue code needed for connectivity or data transformation. The big difference is that the configuration of the workflow engine itself is not part of the Spring Boot application anymore. diff --git a/docs/guides/migrating-from-cawemo.md b/docs/guides/migrating-from-cawemo.md index 9b88780ac1..11d4c4330c 100644 --- a/docs/guides/migrating-from-cawemo.md +++ b/docs/guides/migrating-from-cawemo.md @@ -22,7 +22,7 @@ Data access and transition deadline: This means that you have until the 30th of **Transition Options:** -- Move to [Web Modeler](/docs/components/modeler/web-modeler/launch-web-modeler.md): Experience the combined power of Cawemo and our Desktop Modeler in a seamless, collaborative environment. For modeling only or Camunda 8 processes. +- Move to [Web Modeler](/components/modeler/web-modeler/launch-web-modeler.md): Experience the combined power of Cawemo and our Desktop Modeler in a seamless, collaborative environment. For modeling only or Camunda 8 processes. - Move to [Desktop Modeler](/components/modeler/desktop-modeler/install-the-modeler.md): Opt for a standalone BPMN modeling experience. Support both Camunda 7 and Camunda 8 processes. - Move to Cawemo On-Premise: Continue with the familiar Cawemo environment, for modeling only or Camunda 7 processes. Please note that support for Cawemo On-Premise aligns with Camunda 7 timelines. diff --git a/docs/reference/announcements.md b/docs/reference/announcements.md index 463b77570e..af6bc1bbcc 100644 --- a/docs/reference/announcements.md +++ b/docs/reference/announcements.md @@ -10,10 +10,38 @@ Scheduled release date: 8th of Oct 2024 Scheduled end of maintenance: 14th of April 2026 +### Zeebe repo rename impacts Go client + +The Camunda 8 Github repository was renamed from `http://github.com/camunda/zeebe` to `http://github.com/camunda/camunda`, impacting the Zeebe Go client path. + +Starting in 8.6.0, the Zeebe Go client path should reflect the renamed repo as follows: + +```go + +module example.com/mymodule + +require ( + github.com/camunda/camunda/clients/go/v8 v8.x.y + ... +) + +``` + ### Changes in supported environments - Raised minimum OpenJDK version to 21+ in Operate +### Breaking changes in the Connector SDK + +The `void correlate(Object variables)` method in the `InboundConnectorContext` interface has been removed, following the deprecation in 8.4.0. Use the `CorrelationResult correlateWithResult(Object variables)` method instead. + +The `CorrelationResult` record has been changed compared to the previous versions: + +- `CorrelationResult.Success` now contains a `ProcessElementContext` that represents the element that was correlated. Compared to the previous version, where the correlated element was returned directly, this change allows accessing element properties after correlation for user-controlled post-correlation actions. +- `CorrelationResult.Failure` now provides the `CorrelationFailureHandlingStrategy` that defines how the failure should be handled. + +An example of how to use the new `CorrelationResult` can be found in the [Connector SDK documentation](/components/connectors/custom-built-connectors/connector-sdk.md#inbound-connector-runtime-logic). + ## Camunda 8.5 Release date: 9th of April 2024 @@ -104,7 +132,7 @@ were deprecated in `8.4`. Please use the dedicated Camunda Identity properties o ### Versioning changes in Elasticsearch -As of the 8.4 release, Camunda is compatible with Elasticsearch 8.9+ and no longer supports older Elasticsearch versions. See [supported environments](/docs/reference/supported-environments.md). +As of the 8.4 release, Camunda is compatible with Elasticsearch 8.9+ and no longer supports older Elasticsearch versions. See [supported environments](/reference/supported-environments.md). ### Support for Amazon OpenSearch @@ -229,47 +257,3 @@ For Optimize 3.10.1, a new environment variable introduced redirection URL. Howe | Optimize 3.10.1 & Optimize 3.10.2 | 8.2.0 - 8.2.8 | | Optimize 3.10.3+ | 8.2.9 - 8.2.22 | | Optimize 8.2.7+ | 8.2.23+ | - -## Camunda 8.1 - -Release date: 11th of October 2022 - -End of maintenance: 10th of April 2024 - -[Release notes](https://github.com/camunda/camunda-platform/releases/tag/8.1.0) -[Release blog](https://camunda.com/blog/2022/10/camunda-platform-8-1-released-whats-new/) - -### Do not update to Camunda 8.1.23 - -:::caution -Zeebe release `8.1.23` suffers from [camunda/zeebe#16406](https://github.com/camunda/camunda/issues/16406), which results in a Zeebe broker being unable to start if at least one DMN model is deployed. We urge users to skip this release and update to `8.1.24` right away. -::: - -## Camunda 8.0 - -Release date: 12th of April 2022 - -End of maintenance: 11th of October 2023 - -[Release notes](https://github.com/camunda/camunda-platform/releases/tag/8.0.0) -[Release blog](https://camunda.com/blog/2022/04/camunda-platform-8-0-released-whats-new/) - -### Camunda 8.0.15 release is skipped - -The `Camunda 8.0.15` release pipeline lead to corrupted `Zeebe 8.0.15` artifacts getting published. -The whole [Camunda 8.0.15 release](https://github.com/camunda/camunda-platform/releases/tag/8.0.15) was thus skipped and updates from `Camunda 8.0.14` should go straight to `Camunda 8.0.16`. - -### Deprecated in 8.0 - -The [DeployProcess RPC](/apis-tools/zeebe-api/gateway-service.md#deployprocess-rpc) was deprecated in 8.0. -It is replaced by the [DeployResource RPC](/apis-tools/zeebe-api/gateway-service.md#deployresource-rpc). - -## Camunda Cloud 1.3 - -Release date: 11th of January 2022 - -Camunda Cloud is out of maintenance. - -### Deprecated in 1.3 - -The `zeebe-test` module was deprecated in 1.3.0. We are currently planning to remove `zeebe-test` for the 1.4.0 release. diff --git a/docs/reference/release-notes/850.md b/docs/reference/release-notes/850.md index ad24b57f4f..5733a7f94c 100644 --- a/docs/reference/release-notes/850.md +++ b/docs/reference/release-notes/850.md @@ -6,7 +6,7 @@ description: "Release notes for 8.5, including alphas" ## 8.5 minor -| Release date | End of maintenance | Changelog(s) | | +| Release date | End of maintenance | Changelog(s) | Release blog | | ------------ | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | | 9 April 2024 | 14 October 2025 | -[ Camunda 8 Core ](https://github.com/camunda/camunda-platform/releases/tag/8.5.0)
-[ Connectors ](https://github.com/camunda/connectors/releases/tag/8.5.0)
- [ Optimize ](https://github.com/camunda/camunda-optimize/releases/tag/3.13.0) | [Release blog](https://camunda.com/blog/2024/04/camunda-8-5-release/) | @@ -256,7 +256,7 @@ This update introduces a new context pad, designed to make modeling actions like ## 8.5.0-alpha1 -| Release date | Changelog(s) | | +| Release date | Changelog(s) | Release blog | | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | | 13 February 2024 | - [ Camunda 8 core ](https://github.com/camunda/camunda-platform/releases/tag/8.5.0-alpha1)
- [ Connectors ](https://github.com/camunda/connectors/releases/tag/8.5.0-alpha1) | [Release blog](https://camunda.com/blog/2024/02/camunda-alpha-release-february-2024/) | diff --git a/docs/reference/release-notes/860.md b/docs/reference/release-notes/860.md index f0e6fb5f8f..3294f3f87a 100644 --- a/docs/reference/release-notes/860.md +++ b/docs/reference/release-notes/860.md @@ -91,7 +91,7 @@ The [process application](/components/modeler/web-modeler/process-applications.m ## 8.6.0-alpha1 -| Release date | Changelog(s) | | +| Release date | Changelog(s) | Release blog | | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | | 14 May 2024 | - [ Camunda 8 core ](https://github.com/camunda/zeebe/releases/tag/8.6.0-alpha1)
- [ Connectors ](https://github.com/camunda/connectors/releases/tag/8.6.0-alpha1) | [Release blog](https://camunda.com/blog/2024/05/camunda-alpha-release-may-2024/) | diff --git a/docs/reference/release-policy.md b/docs/reference/release-policy.md index 454542308d..670429601b 100644 --- a/docs/reference/release-policy.md +++ b/docs/reference/release-policy.md @@ -30,7 +30,7 @@ These components include: - Connectors - Console -Admins can [enable alpha features](/docs/components/console/manage-organization/enable-alpha-features.md) for components outside of the cluster in the organization settings screen. +Admins can [enable alpha features](/components/console/manage-organization/enable-alpha-features.md) for components outside of the cluster in the organization settings screen. For components inside a **cluster**, Camunda provides two channels for provisioning and follows the [Camunda release policy](https://camunda.com/release-policy/): diff --git a/docs/self-managed/concepts/access-control/user-task-access-restrictions.md b/docs/self-managed/concepts/access-control/user-task-access-restrictions.md index 2d3acbf286..8dcab6786e 100644 --- a/docs/self-managed/concepts/access-control/user-task-access-restrictions.md +++ b/docs/self-managed/concepts/access-control/user-task-access-restrictions.md @@ -7,6 +7,7 @@ description: "Control the level of access a user or group has to perform tasks i :::caution User task access restrictions are enabled by default and can be disabled using environment variables. This feature is controlled in the required component, see [Identity feature flags](../../../../self-managed/identity/deployment/configuration-variables/#feature-flags). +This configuration does not affect API users. When retrieving tasks using the APIs, all tasks are returned. ::: User task access restrictions allow you to control the level of access a [user](/self-managed/identity/user-guide/roles/add-assign-role.md) or diff --git a/docs/self-managed/identity/user-guide/configuration/connect-to-an-existing-keycloak.md b/docs/self-managed/identity/user-guide/configuration/connect-to-an-existing-keycloak.md index 1bc276fe5b..1173b3be59 100644 --- a/docs/self-managed/identity/user-guide/configuration/connect-to-an-existing-keycloak.md +++ b/docs/self-managed/identity/user-guide/configuration/connect-to-an-existing-keycloak.md @@ -13,7 +13,7 @@ In this guide, we'll demonstrate how to connect Identity to your existing Keyclo - A basic understanding of [administering realms and clients](https://www.keycloak.org/docs/23.0.1/server_admin/#assembly-managing-clients_server_administration_guide) in Keycloak. :::note -Clients in Camunda 8 SaaS and applications in Camunda 8 Self-Managed provide a similar purpose. One key difference is that for Camunda 8 SaaS, you can set up specific [client connection credentials](/docs/guides/setup-client-connection-credentials.md), whereas in Identity, an application is created with credentials automatically assigned. +Clients in Camunda 8 SaaS and applications in Camunda 8 Self-Managed provide a similar purpose. One key difference is that for Camunda 8 SaaS, you can set up specific [client connection credentials](/guides/setup-client-connection-credentials.md), whereas in Identity, an application is created with credentials automatically assigned. ::: ## Steps @@ -26,7 +26,7 @@ To connect Identity to an existing Keycloak instance, take the following steps: 3. Select **Clients** in the navigation menu, and click the **Create** button to create a new client. 4. Enter a client ID and click **Next**. :::note What client ID should I use? - By default, Identity uses the Client ID `camunda-identity`, so we recommend using this too. If you choose a different client ID, this will need to be set in the Identity application [environment variables](/docs/self-managed/identity/deployment/configuration-variables.md). + By default, Identity uses the Client ID `camunda-identity`, so we recommend using this too. If you choose a different client ID, this will need to be set in the Identity application [environment variables](/self-managed/identity/deployment/configuration-variables.md). ::: ![keycloak-admin-client-add-1](../img/keycloak-admin-client-add-1.png) 5. Toggle **Client authentication** to `on`, select **Service accounts roles** and click **Next**. @@ -42,16 +42,16 @@ To connect Identity to an existing Keycloak instance, take the following steps: Identity is designed to allow users to manage the various entities related to Camunda. To achieve this, it requires specific access to the realm. ::: 10. Navigate to the **Credentials** tab and copy the client secret. -11. Set the `IDENTITY_CLIENT_SECRET` [environment variable](/docs/self-managed/identity/deployment/configuration-variables.md) with the value from **Step 9**. -12. Set the `KEYCLOAK_REALM` [environment variable](/docs/self-managed/identity/deployment/configuration-variables.md) to the realm you selected in **Step 2**. +11. Set the `IDENTITY_CLIENT_SECRET` [environment variable](/self-managed/identity/deployment/configuration-variables.md) with the value from **Step 9**. +12. Set the `KEYCLOAK_REALM` [environment variable](/self-managed/identity/deployment/configuration-variables.md) to the realm you selected in **Step 2**. :::tip If you are using a specific realm, you need to set additional variables to use the intended realm. - See the [environment variables](/docs/self-managed/identity/deployment/configuration-variables.md) page for details of Keycloak-specific variables to consider. + See the [environment variables](/self-managed/identity/deployment/configuration-variables.md) page for details of Keycloak-specific variables to consider. ::: 13. Start Identity. :::note What does Identity create when starting? -Identity creates a base set of configurations required to function successfully. To understand more about what is created and why, see [the starting configuration](/docs/self-managed/identity/deployment/starting-configuration.md). +Identity creates a base set of configurations required to function successfully. To understand more about what is created and why, see [the starting configuration](/self-managed/identity/deployment/starting-configuration.md). ::: ## Considerations diff --git a/docs/self-managed/modeler/web-modeler/configuration/configuration.md b/docs/self-managed/modeler/web-modeler/configuration/configuration.md index 793c745479..96d78a9cd1 100644 --- a/docs/self-managed/modeler/web-modeler/configuration/configuration.md +++ b/docs/self-managed/modeler/web-modeler/configuration/configuration.md @@ -70,7 +70,7 @@ Refer to the [advanced Identity configuration guide](./identity.md) for addition ### Zeebe Client -Web Modeler uses the [Zeebe Java client](/docs/apis-tools/java-client/index.md) to connect to Zeebe. +Web Modeler uses the [Zeebe Java client](/apis-tools/java-client/index.md) to connect to Zeebe. To customize the client configuration, you can provide optional environment variables. | Environment variable | Description | Example value | Default Value | @@ -114,13 +114,14 @@ Refer to the [advanced logging configuration guide](./logging.md#logging-configu ### Identity / Keycloak -| Environment variable | Description | Example value | Default value | -| ----------------------- | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ------------- | -| `OAUTH2_CLIENT_ID` | Client ID of the Web Modeler application configured in Identity;
_must be set to_ `web-modeler`. | `web-modeler` | - | -| `OAUTH2_JWKS_URL` | [Internal](#notes-on-host-names-and-port-numbers) URL used to request Keycloak's JSON Web Key Set (for JWT verification). | `http://keycloak:8080/auth/realms/camunda-platform/protocol/openid-connect/certs` | - | -| `OAUTH2_TOKEN_AUDIENCE` | Expected token audience (used for JWT validation);
_must be set to_ `web-modeler`. | `web-modeler` | - | -| `OAUTH2_TOKEN_ISSUER` | URL of the token issuer (used for JWT validation). | `https://keycloak.example.com/auth/realms/camunda-platform` | - | -| `IDENTITY_BASE_URL` | [Internal](#notes-on-host-names-and-port-numbers) base URL of the Identity API (used to fetch user data). | `http://identity:8080` | - | +| Environment variable | Description | Example value | Default value | +| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ------------- | +| `OAUTH2_CLIENT_ID` | Client ID of the Web Modeler application configured in Identity;
_must be set to_ `web-modeler`. | `web-modeler` | - | +| `OAUTH2_CLIENT_FETCH_REQUEST_CREDENTIALS` | [optional]
Configuration whether credentials should be sent along with requests to the OIDC provider, see [documentation](https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials#value). Use this if you are using a proxy that requires cookies. | `include` | - | +| `OAUTH2_JWKS_URL` | [Internal](#notes-on-host-names-and-port-numbers) URL used to request Keycloak's JSON Web Key Set (for JWT verification). | `http://keycloak:8080/auth/realms/camunda-platform/protocol/openid-connect/certs` | - | +| `OAUTH2_TOKEN_AUDIENCE` | Expected token audience (used for JWT validation);
_must be set to_ `web-modeler`. | `web-modeler` | - | +| `OAUTH2_TOKEN_ISSUER` | URL of the token issuer (used for JWT validation). | `https://keycloak.example.com/auth/realms/camunda-platform` | - | +| `IDENTITY_BASE_URL` | [Internal](#notes-on-host-names-and-port-numbers) base URL of the Identity API (used to fetch user data). | `http://identity:8080` | - | Refer to the [advanced Identity configuration guide](./identity.md) for additional details on how to set up secure connections to an external Identity instance or connect a custom OpenID Connect (OIDC) authentication provider. diff --git a/docs/self-managed/modeler/web-modeler/troubleshooting/troubleshoot-zeebe-connection.md b/docs/self-managed/modeler/web-modeler/troubleshooting/troubleshoot-zeebe-connection.md index 3de688d89c..22cf9cb38a 100644 --- a/docs/self-managed/modeler/web-modeler/troubleshooting/troubleshoot-zeebe-connection.md +++ b/docs/self-managed/modeler/web-modeler/troubleshooting/troubleshoot-zeebe-connection.md @@ -19,7 +19,7 @@ If that works, further debug your Zeebe connection with the help of the informat ### Increase the Zeebe client timeout -Web Modeler uses the [Zeebe Java client](/docs/apis-tools/java-client/index.md) to connect to Zeebe. +Web Modeler uses the [Zeebe Java client](/apis-tools/java-client/index.md) to connect to Zeebe. Depending on your infrastructure, the default timeouts configured may be too short. You can pass custom timeouts in milliseconds for Web Modeler's Zeebe client to `modeler-restapi` via three individual environment variables: diff --git a/docs/self-managed/operate-deployment/operate-configuration.md b/docs/self-managed/operate-deployment/operate-configuration.md index b7d8394da0..461d72ee69 100644 --- a/docs/self-managed/operate-deployment/operate-configuration.md +++ b/docs/self-managed/operate-deployment/operate-configuration.md @@ -212,7 +212,7 @@ Operate needs a connection to the Zeebe broker to start the import and execute u | camunda.operate.zeebe.secure | Connection should be secure via Transport Layer Security (TLS). | false | | camunda.operate.zeebe.certificatePath | Path to certificate used by Zeebe. This is necessary when the certificate isn't registered in the operating system | - | -Additionally, visit [Zeebe Secure Client Communication](/docs/self-managed/zeebe-deployment/security/secure-client-communication/) for more details. +Additionally, visit [Zeebe Secure Client Communication](/self-managed/zeebe-deployment/security/secure-client-communication.md) for more details. ### A snippet from application.yml diff --git a/docs/self-managed/operational-guides/troubleshooting/troubleshooting.md b/docs/self-managed/operational-guides/troubleshooting/troubleshooting.md index 1cfda47a29..b080c12da2 100644 --- a/docs/self-managed/operational-guides/troubleshooting/troubleshooting.md +++ b/docs/self-managed/operational-guides/troubleshooting/troubleshooting.md @@ -14,7 +14,7 @@ to be external and therefore require SSL. As the [Camunda Helm Charts](https://github.com/camunda/camunda-platform-helm) currently do not provide support for the distribution of the Keycloak TLS key to the other containers, we recommend viewing the solution available in the -[Identity documentation](/docs/self-managed/identity/troubleshooting/troubleshoot-identity.md#solution-2-identity-making-requests-from-an-external-ip-address). +[Identity documentation](/self-managed/identity/troubleshooting/troubleshoot-identity.md#solution-2-identity-making-requests-from-an-external-ip-address). ## Identity redirect URL diff --git a/docs/self-managed/operational-guides/update-guide/820-to-830.md b/docs/self-managed/operational-guides/update-guide/820-to-830.md index e6f27fd28a..4cd5a43ee8 100644 --- a/docs/self-managed/operational-guides/update-guide/820-to-830.md +++ b/docs/self-managed/operational-guides/update-guide/820-to-830.md @@ -21,7 +21,7 @@ The update from `8.2.x` to `8.3.x` performs a migration for nearly all entities For more details about the breaking changes in the Helm chart, check the [upgrade page for v8.3.0](/self-managed/setup/upgrade.md#v830-minor). :::note -Camunda is compatible with Elasticsearch 8.8+ (see [supported environments](/docs/reference/supported-environments.md)) which you can [download here](https://www.elastic.co/downloads/past-releases/elasticsearch-8-8-0). +Camunda is compatible with Elasticsearch 8.8+ (see [supported environments](/reference/supported-environments.md)) which you can [download here](https://www.elastic.co/downloads/past-releases/elasticsearch-8-8-0). ::: ## Zeebe - Breaking Changes @@ -84,7 +84,7 @@ a missing variable or a missing context entry. Now, the expression will be evalu these cases. You can read more about the new error handling in -the [FEEL documentation](/docs/components/modeler/feel/language-guide/feel-error-handling.md). +the [FEEL documentation](/components/modeler/feel/language-guide/feel-error-handling.md). :::caution @@ -96,7 +96,7 @@ Other BPMN properties that require a specific value type are not affected, for e gateway. If an expression results in `null`, an incident will be created because of type mismatch. If you have a strong need to verify that a value is not `null`, you can use an -[assertion](/docs/components/modeler/feel/language-guide/feel-error-handling.md#assertions) to restore the previous +[assertion](/components/modeler/feel/language-guide/feel-error-handling.md#assertions) to restore the previous behavior and force the creation of an incident. ::: @@ -104,7 +104,7 @@ behavior and force the creation of an incident. ### Change in the function `is defined()` Within an expression, you could use the -function [`is defined()`](/docs/components/modeler/feel/builtin-functions/feel-built-in-functions-boolean.md#is-definedvalue) +function [`is defined()`](/components/modeler/feel/builtin-functions/feel-built-in-functions-boolean.md#is-definedvalue) to check if a variable exists. As part of the new error handling of expressions, the semantics of the function changed. In previous versions, the function returned `true` if the given variable did exist, even if its value was `null`. The diff --git a/docs/self-managed/setup/deploy/amazon/amazon-eks/irsa.md b/docs/self-managed/setup/deploy/amazon/amazon-eks/irsa.md index c693b949e2..e547256368 100644 --- a/docs/self-managed/setup/deploy/amazon/amazon-eks/irsa.md +++ b/docs/self-managed/setup/deploy/amazon/amazon-eks/irsa.md @@ -178,7 +178,7 @@ identityKeycloak: ``` :::note -For additional details, refer to the [Camunda 8 Helm deployment documentation](/docs/self-managed/setup/install.md). +For additional details, refer to the [Camunda 8 Helm deployment documentation](/self-managed/setup/install.md). ::: ### Web Modeler diff --git a/docs/self-managed/setup/deploy/local/local-kubernetes-cluster.md b/docs/self-managed/setup/deploy/local/local-kubernetes-cluster.md index 5e110871e6..0fa0c3e1d1 100644 --- a/docs/self-managed/setup/deploy/local/local-kubernetes-cluster.md +++ b/docs/self-managed/setup/deploy/local/local-kubernetes-cluster.md @@ -91,7 +91,7 @@ First, port-forward each of the components. Use a separate terminal for each com ## Connecting to the workflow engine -To interact with the Camunda workflow engine via Zeebe Gateway using [zbctl](/docs/apis-tools/cli-client/cli-get-started.md) or a local client/worker from outside the Kubernetes cluster, run `kubectl port-forward` to the Zeebe gateway as follows: +To interact with the Camunda workflow engine via Zeebe Gateway using [zbctl](/apis-tools/cli-client/cli-get-started.md) or a local client/worker from outside the Kubernetes cluster, run `kubectl port-forward` to the Zeebe gateway as follows: ```sh kubectl port-forward svc/camunda-zeebe-gateway 26500:26500 diff --git a/docs/self-managed/tasklist-deployment/tasklist-configuration.md b/docs/self-managed/tasklist-deployment/tasklist-configuration.md index a164aac247..3b5968b248 100644 --- a/docs/self-managed/tasklist-deployment/tasklist-configuration.md +++ b/docs/self-managed/tasklist-deployment/tasklist-configuration.md @@ -133,7 +133,7 @@ Tasklist needs a connection to Zeebe broker to start the import. | camunda.tasklist.zeebe.certificatePath | Path to certificate used by Zeebe. This is necessary when the certificate isn't registered in the operating system. | - | | camunda.tasklist.zeebe.restAddress | Path to Zeebe REST address. This is necessary to consume the Zeebe API from Tasklist. | http://localhost:8083 | -Additionally, visit [Zeebe Secure Client Communication](/docs/self-managed/zeebe-deployment/security/secure-client-communication/) for more details. +Additionally, visit [Zeebe Secure Client Communication](/self-managed/zeebe-deployment/security/secure-client-communication.md) for more details. ### Snippet from application.yml diff --git a/docs/self-managed/zeebe-deployment/operations/update-zeebe.md b/docs/self-managed/zeebe-deployment/operations/update-zeebe.md index 39d6d3c7cd..3e92f833a7 100644 --- a/docs/self-managed/zeebe-deployment/operations/update-zeebe.md +++ b/docs/self-managed/zeebe-deployment/operations/update-zeebe.md @@ -13,7 +13,7 @@ It is recommended but not required to first update to the latest patch of the cu Since Zeebe 8.5, updates to a newer version can be rolling or offline. Zeebe 8.4 and older don't contain necessary safety checks that make rolling updates safe, and we recommend offline updates instead to ensure processing behaves correctly. -Refer to the [update guide](/docs/self-managed/operational-guides/update-guide/introduction.md) to check if there are known issues for the specific update you are planning. +Refer to the [update guide](/self-managed/operational-guides/update-guide/introduction.md) to check if there are known issues for the specific update you are planning. ## Rolling update @@ -39,7 +39,7 @@ Gateways are updated with the same procedure, updating each replica one by one. Clients can be updated according to your requirements and environment, for example by simply deploying a new version of your worker applications. -For disaster recovery, you may want to take [backups](/docs/self-managed/operational-guides/backup-restore/backup-and-restore.md) before the update. +For disaster recovery, you may want to take [backups](/self-managed/operational-guides/backup-restore/backup-and-restore.md) before the update. If you plan to immediately update again, wait to give all brokers a chance to take new snapshots. The snapshot period is five minutes by default but is [configurable via `snapshotPeriod`](../configuration/broker.md#zeebebrokerdata). @@ -80,7 +80,7 @@ $ curl localhost:8080/api/v1/topology | jq .brokers[].version && kill %1 To start the rolling update, update the Helm deployment to use a new version of Zeebe. Set `$NEW_ZEEBE_VERSION` to the version you want to update to, for example `8.5.2`. -Remember to read the [update guide](/docs/self-managed/operational-guides/update-guide/introduction.md) to check for known issues. +Remember to read the [update guide](/self-managed/operational-guides/update-guide/introduction.md) to check for known issues. Then, start the rolling update with `helm upgrade`. ``` @@ -196,7 +196,7 @@ If this persists, you may want to [force the update](#rolling-update-is-not-comp ## Offline update -See the [update guide](/docs/self-managed/operational-guides/update-guide/introduction.md) for specific instructions per Zeebe version. +See the [update guide](/self-managed/operational-guides/update-guide/introduction.md) for specific instructions per Zeebe version. To update a Zeebe cluster, take the following steps: diff --git a/howtos/documentation-guidelines.md b/howtos/documentation-guidelines.md index f228a0d3ec..a58649e251 100644 --- a/howtos/documentation-guidelines.md +++ b/howtos/documentation-guidelines.md @@ -100,11 +100,12 @@ Any PRs that make a structural change to one of the instance's sidebars file in When linking internally from one document to another, follow these guidelines: -- if the source and target document are within the same instance (i.e. both are in `docs` or both are in `optimize`): +- If the source and target document are within the same instance (i.e. both are in `docs` or both are in `optimize`): - Use a relative path to the target markdown file if it is in the same subtree as the source file. [See example](https://github.com/camunda/camunda-docs/blob/930a0c384b48be27d0bc66216015404f67716f61/docs/components/console/introduction-to-console.md?plain=1#L10). - Use an absolute path to the target markdown file if it is in a different subtree than the source file. [See example](https://github.com/camunda/camunda-docs/blob/930a0c384b48be27d0bc66216015404f67716f61/docs/apis-clients/community-clients/spring.md?plain=1#L8). - Always include the `.md` extension in the path. -- if the source and target document are in different instances (i.e. one is in `docs` and the other is in `optimize`): + - Refrain from using `/docs/` when preceding a link. For example, use `/components/components-overview.md` rather than `/docs/next/components/components-overview.md`, unless you are intentionally linking to a particular version of the documentation. +- If the source and target document are in different instances (i.e. one is in `docs` and the other is in `optimize`): - If the source is in `docs` and the target is in `optimize`, use the `$optimize$` token to prefix the URL. [See example](https://github.com/camunda/camunda-docs/blob/930a0c384b48be27d0bc66216015404f67716f61/docs/guides/setting-up-development-project.md?plain=1#L17). - If the source is in `optimize` and the target is in `docs`, use the `$docs$` token to prefix the URL. [See example](https://github.com/camunda/camunda-docs/blob/930a0c384b48be27d0bc66216015404f67716f61/optimize/components/what-is-optimize.md?plain=1#L8). - Use the browser-facing _URL_ to the target document, instead of the path to the target's `.md` file. @@ -214,7 +215,7 @@ After the proposed change is finished open a GitHub PR and assign at least one r - Identity: @dlavrenuek - DevEx: @akeller - Product Management: @felix-mueller -- Documentation: @christinaausley +- Documentation: @camunda/tech-writers - Documentation infrastructure: @pepopowitz - Fallback: @akeller diff --git a/optimize/components/userguide/additional-features/alerts.md b/optimize/components/userguide/additional-features/alerts.md index 370479a8e7..031a83d4ce 100644 --- a/optimize/components/userguide/additional-features/alerts.md +++ b/optimize/components/userguide/additional-features/alerts.md @@ -22,6 +22,10 @@ To configure an alert, take the following steps: In Camunda 7 and Camunda 8 Self-Managed, you must configure the email service to receive notifications. See the [technical guide](/self-managed/optimize-deployment/configuration/system-configuration.md#email) for which properties need to be defined. ::: +:::note +Only known users in Console (SaaS) and Identity (Self-Managed) can receive Optimize alert emails. +::: + Note that alerts can only be created for reports which are visualized as a single number and are in the same collection as the alert. Visit the [reports section](../creating-reports.md) on how to define single-number reports. 4. Set a threshold which defines when an alert should be triggered. A notification is sent to the configured email address or webhook as soon as a report value hits the threshold. If reminder notifications are enabled, the alert will continue to send notifications for as long as the value is above (or below, as defined) the threshold. diff --git a/optimize/self-managed/optimize-deployment/configuration/history-cleanup.md b/optimize/self-managed/optimize-deployment/configuration/history-cleanup.md index 80a5d53002..773b1824d8 100644 --- a/optimize/self-managed/optimize-deployment/configuration/history-cleanup.md +++ b/optimize/self-managed/optimize-deployment/configuration/history-cleanup.md @@ -74,7 +74,7 @@ historyCleanup: perProcessDefinitionConfig: 'MyProcessDefinitionKey': ttl: 'P2M' - processDataCleanupMode: 'variables' + cleanupMode: 'variables' ``` @@ -133,7 +133,7 @@ historyCleanup: perProcessDefinitionConfig: 'VeryConfidentProcess': ttl: 'P1M' - processDataCleanupMode: 'all' + cleanupMode: 'all' 'KeepTwoMonthsProcess': ttl: 'P2M' decisionDataCleanup: diff --git a/optimize/self-managed/optimize-deployment/plugins/elasticsearch-header.md b/optimize/self-managed/optimize-deployment/plugins/elasticsearch-header.md index 63aad0aa3d..4c19fb1047 100644 --- a/optimize/self-managed/optimize-deployment/plugins/elasticsearch-header.md +++ b/optimize/self-managed/optimize-deployment/plugins/elasticsearch-header.md @@ -4,6 +4,8 @@ title: "Elasticsearch header" description: "Register your own hook into the Optimize Elasticsearch client to add custom headers to requests." --- +Camunda 7 only + Before implementing the plugin, make sure that you have [set up your environment](./plugin-system.md#set-up-your-environment). This feature allows you to register your own hook into the Optimize Elasticsearch client, allowing you to add custom headers to all requests made to Elasticsearch. The plugin is invoked before every request to Elasticsearch is made, allowing different diff --git a/optimize_versioned_docs/version-3.10.0/self-managed/optimize-deployment/configuration/history-cleanup.md b/optimize_versioned_docs/version-3.10.0/self-managed/optimize-deployment/configuration/history-cleanup.md index ab03e78ba7..7f7701780f 100644 --- a/optimize_versioned_docs/version-3.10.0/self-managed/optimize-deployment/configuration/history-cleanup.md +++ b/optimize_versioned_docs/version-3.10.0/self-managed/optimize-deployment/configuration/history-cleanup.md @@ -63,7 +63,7 @@ historyCleanup: perProcessDefinitionConfig: 'MyProcessDefinitionKey': ttl: 'P2M' - processDataCleanupMode: 'variables' + cleanupMode: 'variables' ``` ### Decision data cleanup @@ -115,7 +115,7 @@ historyCleanup: perProcessDefinitionConfig: 'VeryConfidentProcess': ttl: 'P1M' - processDataCleanupMode: 'all' + cleanupMode: 'all' 'KeepTwoMonthsProcess': ttl: 'P2M' decisionDataCleanup: diff --git a/optimize_versioned_docs/version-3.10.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md b/optimize_versioned_docs/version-3.10.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md index 63aad0aa3d..4c19fb1047 100644 --- a/optimize_versioned_docs/version-3.10.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md +++ b/optimize_versioned_docs/version-3.10.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md @@ -4,6 +4,8 @@ title: "Elasticsearch header" description: "Register your own hook into the Optimize Elasticsearch client to add custom headers to requests." --- +Camunda 7 only + Before implementing the plugin, make sure that you have [set up your environment](./plugin-system.md#set-up-your-environment). This feature allows you to register your own hook into the Optimize Elasticsearch client, allowing you to add custom headers to all requests made to Elasticsearch. The plugin is invoked before every request to Elasticsearch is made, allowing different diff --git a/optimize_versioned_docs/version-3.11.0/self-managed/optimize-deployment/configuration/history-cleanup.md b/optimize_versioned_docs/version-3.11.0/self-managed/optimize-deployment/configuration/history-cleanup.md index 23d6b680a5..e945fc9e32 100644 --- a/optimize_versioned_docs/version-3.11.0/self-managed/optimize-deployment/configuration/history-cleanup.md +++ b/optimize_versioned_docs/version-3.11.0/self-managed/optimize-deployment/configuration/history-cleanup.md @@ -63,7 +63,7 @@ historyCleanup: perProcessDefinitionConfig: 'MyProcessDefinitionKey': ttl: 'P2M' - processDataCleanupMode: 'variables' + cleanupMode: 'variables' ``` ### Decision data cleanup @@ -115,7 +115,7 @@ historyCleanup: perProcessDefinitionConfig: 'VeryConfidentProcess': ttl: 'P1M' - processDataCleanupMode: 'all' + cleanupMode: 'all' 'KeepTwoMonthsProcess': ttl: 'P2M' decisionDataCleanup: diff --git a/optimize_versioned_docs/version-3.11.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md b/optimize_versioned_docs/version-3.11.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md index 63aad0aa3d..4c19fb1047 100644 --- a/optimize_versioned_docs/version-3.11.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md +++ b/optimize_versioned_docs/version-3.11.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md @@ -4,6 +4,8 @@ title: "Elasticsearch header" description: "Register your own hook into the Optimize Elasticsearch client to add custom headers to requests." --- +Camunda 7 only + Before implementing the plugin, make sure that you have [set up your environment](./plugin-system.md#set-up-your-environment). This feature allows you to register your own hook into the Optimize Elasticsearch client, allowing you to add custom headers to all requests made to Elasticsearch. The plugin is invoked before every request to Elasticsearch is made, allowing different diff --git a/optimize_versioned_docs/version-3.12.0/components/userguide/additional-features/alerts.md b/optimize_versioned_docs/version-3.12.0/components/userguide/additional-features/alerts.md index 370479a8e7..031a83d4ce 100644 --- a/optimize_versioned_docs/version-3.12.0/components/userguide/additional-features/alerts.md +++ b/optimize_versioned_docs/version-3.12.0/components/userguide/additional-features/alerts.md @@ -22,6 +22,10 @@ To configure an alert, take the following steps: In Camunda 7 and Camunda 8 Self-Managed, you must configure the email service to receive notifications. See the [technical guide](/self-managed/optimize-deployment/configuration/system-configuration.md#email) for which properties need to be defined. ::: +:::note +Only known users in Console (SaaS) and Identity (Self-Managed) can receive Optimize alert emails. +::: + Note that alerts can only be created for reports which are visualized as a single number and are in the same collection as the alert. Visit the [reports section](../creating-reports.md) on how to define single-number reports. 4. Set a threshold which defines when an alert should be triggered. A notification is sent to the configured email address or webhook as soon as a report value hits the threshold. If reminder notifications are enabled, the alert will continue to send notifications for as long as the value is above (or below, as defined) the threshold. diff --git a/optimize_versioned_docs/version-3.12.0/self-managed/optimize-deployment/configuration/history-cleanup.md b/optimize_versioned_docs/version-3.12.0/self-managed/optimize-deployment/configuration/history-cleanup.md index 80a5d53002..773b1824d8 100644 --- a/optimize_versioned_docs/version-3.12.0/self-managed/optimize-deployment/configuration/history-cleanup.md +++ b/optimize_versioned_docs/version-3.12.0/self-managed/optimize-deployment/configuration/history-cleanup.md @@ -74,7 +74,7 @@ historyCleanup: perProcessDefinitionConfig: 'MyProcessDefinitionKey': ttl: 'P2M' - processDataCleanupMode: 'variables' + cleanupMode: 'variables' ``` @@ -133,7 +133,7 @@ historyCleanup: perProcessDefinitionConfig: 'VeryConfidentProcess': ttl: 'P1M' - processDataCleanupMode: 'all' + cleanupMode: 'all' 'KeepTwoMonthsProcess': ttl: 'P2M' decisionDataCleanup: diff --git a/optimize_versioned_docs/version-3.12.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md b/optimize_versioned_docs/version-3.12.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md index 63aad0aa3d..4c19fb1047 100644 --- a/optimize_versioned_docs/version-3.12.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md +++ b/optimize_versioned_docs/version-3.12.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md @@ -4,6 +4,8 @@ title: "Elasticsearch header" description: "Register your own hook into the Optimize Elasticsearch client to add custom headers to requests." --- +Camunda 7 only + Before implementing the plugin, make sure that you have [set up your environment](./plugin-system.md#set-up-your-environment). This feature allows you to register your own hook into the Optimize Elasticsearch client, allowing you to add custom headers to all requests made to Elasticsearch. The plugin is invoked before every request to Elasticsearch is made, allowing different diff --git a/optimize_versioned_docs/version-3.13.0/components/userguide/additional-features/alerts.md b/optimize_versioned_docs/version-3.13.0/components/userguide/additional-features/alerts.md index 370479a8e7..031a83d4ce 100644 --- a/optimize_versioned_docs/version-3.13.0/components/userguide/additional-features/alerts.md +++ b/optimize_versioned_docs/version-3.13.0/components/userguide/additional-features/alerts.md @@ -22,6 +22,10 @@ To configure an alert, take the following steps: In Camunda 7 and Camunda 8 Self-Managed, you must configure the email service to receive notifications. See the [technical guide](/self-managed/optimize-deployment/configuration/system-configuration.md#email) for which properties need to be defined. ::: +:::note +Only known users in Console (SaaS) and Identity (Self-Managed) can receive Optimize alert emails. +::: + Note that alerts can only be created for reports which are visualized as a single number and are in the same collection as the alert. Visit the [reports section](../creating-reports.md) on how to define single-number reports. 4. Set a threshold which defines when an alert should be triggered. A notification is sent to the configured email address or webhook as soon as a report value hits the threshold. If reminder notifications are enabled, the alert will continue to send notifications for as long as the value is above (or below, as defined) the threshold. diff --git a/optimize_versioned_docs/version-3.13.0/self-managed/optimize-deployment/configuration/history-cleanup.md b/optimize_versioned_docs/version-3.13.0/self-managed/optimize-deployment/configuration/history-cleanup.md index 80a5d53002..773b1824d8 100644 --- a/optimize_versioned_docs/version-3.13.0/self-managed/optimize-deployment/configuration/history-cleanup.md +++ b/optimize_versioned_docs/version-3.13.0/self-managed/optimize-deployment/configuration/history-cleanup.md @@ -74,7 +74,7 @@ historyCleanup: perProcessDefinitionConfig: 'MyProcessDefinitionKey': ttl: 'P2M' - processDataCleanupMode: 'variables' + cleanupMode: 'variables' ``` @@ -133,7 +133,7 @@ historyCleanup: perProcessDefinitionConfig: 'VeryConfidentProcess': ttl: 'P1M' - processDataCleanupMode: 'all' + cleanupMode: 'all' 'KeepTwoMonthsProcess': ttl: 'P2M' decisionDataCleanup: diff --git a/optimize_versioned_docs/version-3.13.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md b/optimize_versioned_docs/version-3.13.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md index 63aad0aa3d..4c19fb1047 100644 --- a/optimize_versioned_docs/version-3.13.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md +++ b/optimize_versioned_docs/version-3.13.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md @@ -4,6 +4,8 @@ title: "Elasticsearch header" description: "Register your own hook into the Optimize Elasticsearch client to add custom headers to requests." --- +Camunda 7 only + Before implementing the plugin, make sure that you have [set up your environment](./plugin-system.md#set-up-your-environment). This feature allows you to register your own hook into the Optimize Elasticsearch client, allowing you to add custom headers to all requests made to Elasticsearch. The plugin is invoked before every request to Elasticsearch is made, allowing different diff --git a/optimize_versioned_docs/version-3.7.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md b/optimize_versioned_docs/version-3.7.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md index 48cb7cf5d2..4c19fb1047 100644 --- a/optimize_versioned_docs/version-3.7.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md +++ b/optimize_versioned_docs/version-3.7.0/self-managed/optimize-deployment/plugins/elasticsearch-header.md @@ -4,7 +4,7 @@ title: "Elasticsearch header" description: "Register your own hook into the Optimize Elasticsearch client to add custom headers to requests." --- -Camunda Platform 7 only +Camunda 7 only Before implementing the plugin, make sure that you have [set up your environment](./plugin-system.md#set-up-your-environment). diff --git a/optimize_versioned_docs/version-3.7.0/self-managed/optimize-deployment/setup/history-cleanup.md b/optimize_versioned_docs/version-3.7.0/self-managed/optimize-deployment/setup/history-cleanup.md index dd8b62c28a..0b526af3d8 100644 --- a/optimize_versioned_docs/version-3.7.0/self-managed/optimize-deployment/setup/history-cleanup.md +++ b/optimize_versioned_docs/version-3.7.0/self-managed/optimize-deployment/setup/history-cleanup.md @@ -56,7 +56,7 @@ historyCleanup: perProcessDefinitionConfig: 'MyProcessDefinitionKey': ttl: 'P2M' - processDataCleanupMode: 'variables' + cleanupMode: 'variables' ``` ### Decision data cleanup @@ -108,7 +108,7 @@ historyCleanup: perProcessDefinitionConfig: 'VeryConfidentProcess': ttl: 'P1M' - processDataCleanupMode: 'all' + cleanupMode: 'all' 'KeepTwoMonthsProcess': ttl: 'P2M' decisionDataCleanup: diff --git a/sidebars.js b/sidebars.js index 339d35ce65..202f75033f 100644 --- a/sidebars.js +++ b/sidebars.js @@ -334,8 +334,9 @@ module.exports = { "components/connectors/out-of-the-box-connectors/operate", "components/connectors/out-of-the-box-connectors/rabbitmq", "components/connectors/out-of-the-box-connectors/salesforce", - "components/connectors/out-of-the-box-connectors/slack", "components/connectors/out-of-the-box-connectors/sendgrid", + "components/connectors/out-of-the-box-connectors/slack", + "components/connectors/out-of-the-box-connectors/sql", "components/connectors/out-of-the-box-connectors/twilio", "components/connectors/out-of-the-box-connectors/uipath", "components/connectors/out-of-the-box-connectors/whatsapp", diff --git a/versioned_docs/version-8.2/apis-tools/go-client/go-get-started.md b/versioned_docs/version-8.2/apis-tools/go-client/go-get-started.md index 2210e68bdb..8569a43aa4 100644 --- a/versioned_docs/version-8.2/apis-tools/go-client/go-get-started.md +++ b/versioned_docs/version-8.2/apis-tools/go-client/go-get-started.md @@ -272,7 +272,7 @@ Now, we want to do some work within our process. Follow the steps below: - Set the **type** of the second task to `fetcher-service`. - Set the **type** of the third task to `shipping-service`. -6. Additionally, for the service task `Collect Money` set a [**task-header**](/docs/next/components/modeler/bpmn/service-tasks/#task-headers) with the key `method` and the value `VISA`. This header is used as a configuration parameter for the payment-service worker to hand over the payment method. +6. Additionally, for the service task `Collect Money` set a [**task-header**](/components/modeler/bpmn/service-tasks/service-tasks.md#task-headers) with the key `method` and the value `VISA`. This header is used as a configuration parameter for the payment-service worker to hand over the payment method. The consolidated example looks as follows: diff --git a/versioned_docs/version-8.2/components/console/manage-clusters/manage-ip-allowlists.md b/versioned_docs/version-8.2/components/console/manage-clusters/manage-ip-allowlists.md index fb76485877..963b723588 100644 --- a/versioned_docs/version-8.2/components/console/manage-clusters/manage-ip-allowlists.md +++ b/versioned_docs/version-8.2/components/console/manage-clusters/manage-ip-allowlists.md @@ -5,6 +5,10 @@ description: "If your organization works within Camunda's Enterprise plan, you c keywords: [whitelist, allowlist, ip whitelist, ip allowlist] --- +:::note +Camunda SaaS automatically manages allowlist assignments for IP addresses used by Web Modeler. +::: + If your organization works within Camunda's [Enterprise](https://camunda.com/enterprise/) plan, you can restrict access to clusters with an IP allowlist. ### Create an IP allowlist diff --git a/versioned_docs/version-8.2/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md b/versioned_docs/version-8.2/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md index 259ac841a3..98d6c15d39 100644 --- a/versioned_docs/version-8.2/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md +++ b/versioned_docs/version-8.2/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md @@ -31,7 +31,7 @@ Each pipeline is unique. The Web Modeler API offers flexibility to tailor integr - A platform to host a version control system (VCS) such as GitHub or GitLab. - An existing pipeline or a plan to set one up using tools like [CircleCI](https://circleci.com/) or [Jenkins](https://www.jenkins.io/), cloud platforms such as [Azure DevOps Pipelines](https://azure.microsoft.com/de-de/products/devops), or built-in solutions of VCS platforms like [GitHub Actions](https://github.com/features/actions) or [GitLab's DevSecOps Lifecycle](https://about.gitlab.com/stages-devops-lifecycle/). - Make yourself familiar with the [Web Modeler API](/apis-tools/web-modeler-api/index.md) through the [OpenAPI documentation](https://modeler.cloud.camunda.io/swagger-ui/index.html). -- Understand how [clusters](/docs/next/components/concepts/clusters/) work in Camunda 8. +- Understand how [clusters](/components/concepts/clusters.md) work in Camunda 8. - Ensure you’ve [created a Camunda 8 account](/guides/create-account.md), or installed [Camunda 8 Self-Managed](/self-managed/about-self-managed.md). ## Setup diff --git a/versioned_docs/version-8.3/apis-tools/go-client/go-get-started.md b/versioned_docs/version-8.3/apis-tools/go-client/go-get-started.md index 481c44cad5..8387f40334 100644 --- a/versioned_docs/version-8.3/apis-tools/go-client/go-get-started.md +++ b/versioned_docs/version-8.3/apis-tools/go-client/go-get-started.md @@ -277,7 +277,7 @@ Now, we want to do some work within our process. Follow the steps below: - Set the **type** of the second task to `fetcher-service`. - Set the **type** of the third task to `shipping-service`. -6. Additionally, for the service task `Collect Money` set a [**task-header**](/docs/next/components/modeler/bpmn/service-tasks/#task-headers) with the key `method` and the value `VISA`. This header is used as a configuration parameter for the payment-service worker to hand over the payment method. +6. Additionally, for the service task `Collect Money` set a [**task-header**](/components/modeler/bpmn/service-tasks/service-tasks.md#task-headers) with the key `method` and the value `VISA`. This header is used as a configuration parameter for the payment-service worker to hand over the payment method. The consolidated example looks as follows: diff --git a/versioned_docs/version-8.3/components/console/manage-clusters/manage-ip-allowlists.md b/versioned_docs/version-8.3/components/console/manage-clusters/manage-ip-allowlists.md index d12ae6fc43..0437ba49e2 100644 --- a/versioned_docs/version-8.3/components/console/manage-clusters/manage-ip-allowlists.md +++ b/versioned_docs/version-8.3/components/console/manage-clusters/manage-ip-allowlists.md @@ -5,6 +5,10 @@ description: "If your organization works within Camunda's Enterprise plan, you c keywords: [whitelist, allowlist, ip whitelist, ip allowlist] --- +:::note +Camunda SaaS automatically manages allowlist assignments for IP addresses used by Web Modeler. +::: + If your organization works within Camunda's [Enterprise](https://camunda.com/enterprise/) plan, you can restrict access to clusters with an IP allowlist. ## Create an IP allowlist diff --git a/versioned_docs/version-8.3/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md b/versioned_docs/version-8.3/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md index 786f01b461..2fb6b71536 100644 --- a/versioned_docs/version-8.3/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md +++ b/versioned_docs/version-8.3/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md @@ -27,7 +27,7 @@ Each pipeline is unique. The Web Modeler API offers flexibility to tailor integr - A platform to host a version control system (VCS) such as GitHub or GitLab. - An existing pipeline or a plan to set one up using tools like [CircleCI](https://circleci.com/) or [Jenkins](https://www.jenkins.io/), cloud platforms such as [Azure DevOps Pipelines](https://azure.microsoft.com/de-de/products/devops), or built-in solutions of VCS platforms like [GitHub Actions](https://github.com/features/actions) or [GitLab's DevSecOps Lifecycle](https://about.gitlab.com/stages-devops-lifecycle/). - Make yourself familiar with the [Web Modeler API](/apis-tools/web-modeler-api/index.md) through the [OpenAPI documentation](https://modeler.cloud.camunda.io/swagger-ui/index.html). -- Understand how [clusters](/docs/next/components/concepts/clusters/) work in Camunda 8. +- Understand how [clusters](/components/concepts/clusters.md) work in Camunda 8. - Ensure you’ve [created a Camunda 8 account](/guides/create-account.md), or installed [Camunda 8 Self-Managed](/self-managed/about-self-managed.md). ## Setup diff --git a/versioned_docs/version-8.4/apis-tools/go-client/go-get-started.md b/versioned_docs/version-8.4/apis-tools/go-client/go-get-started.md index cf3b6d9bf5..4023ffacd5 100644 --- a/versioned_docs/version-8.4/apis-tools/go-client/go-get-started.md +++ b/versioned_docs/version-8.4/apis-tools/go-client/go-get-started.md @@ -276,7 +276,7 @@ Now, we want to do some work within our process. Follow the steps below: - Set the **type** of the second task to `fetcher-service`. - Set the **type** of the third task to `shipping-service`. -6. Additionally, for the service task `Collect Money` set a [**task-header**](/docs/next/components/modeler/bpmn/service-tasks/#task-headers) with the key `method` and the value `VISA`. This header is used as a configuration parameter for the payment-service worker to hand over the payment method. +1. Additionally, for the service task `Collect Money` set a [**task-header**](/components/modeler/bpmn/service-tasks/service-tasks.md#task-headers) with the key `method` and the value `VISA`. This header is used as a configuration parameter for the payment-service worker to hand over the payment method. The consolidated example looks as follows: diff --git a/versioned_docs/version-8.4/components/console/manage-clusters/manage-ip-allowlists.md b/versioned_docs/version-8.4/components/console/manage-clusters/manage-ip-allowlists.md index d12ae6fc43..0437ba49e2 100644 --- a/versioned_docs/version-8.4/components/console/manage-clusters/manage-ip-allowlists.md +++ b/versioned_docs/version-8.4/components/console/manage-clusters/manage-ip-allowlists.md @@ -5,6 +5,10 @@ description: "If your organization works within Camunda's Enterprise plan, you c keywords: [whitelist, allowlist, ip whitelist, ip allowlist] --- +:::note +Camunda SaaS automatically manages allowlist assignments for IP addresses used by Web Modeler. +::: + If your organization works within Camunda's [Enterprise](https://camunda.com/enterprise/) plan, you can restrict access to clusters with an IP allowlist. ## Create an IP allowlist diff --git a/versioned_docs/version-8.4/components/modeler/desktop-modeler/element-templates/c7-defining-templates.md b/versioned_docs/version-8.4/components/modeler/desktop-modeler/element-templates/c7-defining-templates.md index 08503d8b1d..9985150a92 100644 --- a/versioned_docs/version-8.4/components/modeler/desktop-modeler/element-templates/c7-defining-templates.md +++ b/versioned_docs/version-8.4/components/modeler/desktop-modeler/element-templates/c7-defining-templates.md @@ -459,6 +459,36 @@ Together with the `pattern` constraint, you may define your custom error message ] ``` +### Placeholder + +The following property types support the `placeholder` attribute: + +- `String` +- `Text` + +The attribute is supported for the following binding types: + +- `property` +- `camunda:property` +- `camunda:in` +- `camunda:in:businessKey` +- `camunda:out` +- `camunda:field` + +The placeholder is displayed when a field is empty: + +```json +... + "properties": [ + { + "label": "Web service URL", + "type": "String", + "binding": { ... }, + "placeholder": "https://example.com" + } + ] +``` + ### Display all entries Per default, the element template defines the visible entries of the properties panel. All other property controls are hidden. If you want to bring all the default entries back, it is possible to use the `entriesVisible` property. diff --git a/versioned_docs/version-8.4/components/modeler/desktop-modeler/element-templates/defining-templates.md b/versioned_docs/version-8.4/components/modeler/desktop-modeler/element-templates/defining-templates.md index 9180014459..114e7172d7 100644 --- a/versioned_docs/version-8.4/components/modeler/desktop-modeler/element-templates/defining-templates.md +++ b/versioned_docs/version-8.4/components/modeler/desktop-modeler/element-templates/defining-templates.md @@ -539,6 +539,27 @@ Together with the `pattern` constraint, you can define your custom error message ] ``` +### Placeholder + +The following property types support the `placeholder` attribute: + +- `String` +- `Text` + +The placeholder is displayed when a field is empty: + +```json +... + "properties": [ + { + "label": "Web service URL", + "type": "String", + "binding": { ... }, + "placeholder": "https://example.com" + } + ] +``` + ### Icons It is possible to define custom icons to update the visual appearance of elements after applying an element template. diff --git a/versioned_docs/version-8.4/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md b/versioned_docs/version-8.4/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md index 6087afafd3..3710d57afd 100644 --- a/versioned_docs/version-8.4/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md +++ b/versioned_docs/version-8.4/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md @@ -27,7 +27,7 @@ Each pipeline is unique. The Web Modeler API offers flexibility to tailor integr - A platform to host a version control system (VCS) such as GitHub or GitLab. - An existing pipeline or a plan to set one up using tools like [CircleCI](https://circleci.com/) or [Jenkins](https://www.jenkins.io/), cloud platforms such as [Azure DevOps Pipelines](https://azure.microsoft.com/de-de/products/devops), or built-in solutions of VCS platforms like [GitHub Actions](https://github.com/features/actions) or [GitLab's DevSecOps Lifecycle](https://about.gitlab.com/stages-devops-lifecycle/). - Make yourself familiar with the [Web Modeler API](/apis-tools/web-modeler-api/index.md) through the [OpenAPI documentation](https://modeler.cloud.camunda.io/swagger-ui/index.html). -- Understand how [clusters](/docs/next/components/concepts/clusters/) work in Camunda 8. +- Understand how [clusters](/components/concepts/clusters.md) work in Camunda 8. - Ensure you’ve [created a Camunda 8 account](/guides/create-account.md), or installed [Camunda 8 Self-Managed](/self-managed/about-self-managed.md). ## Setup diff --git a/versioned_docs/version-8.4/self-managed/modeler/web-modeler/configuration/configuration.md b/versioned_docs/version-8.4/self-managed/modeler/web-modeler/configuration/configuration.md index 947ba11a1f..1f374a2abc 100644 --- a/versioned_docs/version-8.4/self-managed/modeler/web-modeler/configuration/configuration.md +++ b/versioned_docs/version-8.4/self-managed/modeler/web-modeler/configuration/configuration.md @@ -114,13 +114,14 @@ Refer to the [advanced logging configuration guide](./logging.md#logging-configu ### Identity / Keycloak -| Environment variable | Description | Example value | Default value | -| ----------------------- | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ------------- | -| `OAUTH2_CLIENT_ID` | Client ID of the Web Modeler application configured in Identity;
_must be set to_ `web-modeler`. | `web-modeler` | - | -| `OAUTH2_JWKS_URL` | [Internal](#notes-on-host-names-and-port-numbers) URL used to request Keycloak's JSON Web Key Set (for JWT verification). | `http://keycloak:8080/auth/realms/camunda-platform/protocol/openid-connect/certs` | - | -| `OAUTH2_TOKEN_AUDIENCE` | Expected token audience (used for JWT validation);
_must be set to_ `web-modeler`. | `web-modeler` | - | -| `OAUTH2_TOKEN_ISSUER` | URL of the token issuer (used for JWT validation). | `https://keycloak.example.com/auth/realms/camunda-platform` | - | -| `IDENTITY_BASE_URL` | [Internal](#notes-on-host-names-and-port-numbers) base URL of the Identity API (used to fetch user data). | `http://identity:8080` | - | +| Environment variable | Description | Example value | Default value | +| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ------------- | +| `OAUTH2_CLIENT_ID` | Client ID of the Web Modeler application configured in Identity;
_must be set to_ `web-modeler`. | `web-modeler` | - | +| `OAUTH2_CLIENT_FETCH_REQUEST_CREDENTIALS` | [optional]
Configuration whether credentials should be sent along with requests to the OIDC provider, see [documentation](https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials#value). Use this if you are using a proxy that requires cookies. | `include` | - | +| `OAUTH2_JWKS_URL` | [Internal](#notes-on-host-names-and-port-numbers) URL used to request Keycloak's JSON Web Key Set (for JWT verification). | `http://keycloak:8080/auth/realms/camunda-platform/protocol/openid-connect/certs` | - | +| `OAUTH2_TOKEN_AUDIENCE` | Expected token audience (used for JWT validation);
_must be set to_ `web-modeler`. | `web-modeler` | - | +| `OAUTH2_TOKEN_ISSUER` | URL of the token issuer (used for JWT validation). | `https://keycloak.example.com/auth/realms/camunda-platform` | - | +| `IDENTITY_BASE_URL` | [Internal](#notes-on-host-names-and-port-numbers) base URL of the Identity API (used to fetch user data). | `http://identity:8080` | - | Refer to the [advanced Identity configuration guide](./identity.md) for additional details on how to set up secure connections to an external Identity instance or connect a custom OpenID Connect (OIDC) authentication provider. diff --git a/versioned_docs/version-8.5/apis-tools/administration-api/authentication.md b/versioned_docs/version-8.5/apis-tools/administration-api/authentication.md index 8397d761a3..99cff5d840 100644 --- a/versioned_docs/version-8.5/apis-tools/administration-api/authentication.md +++ b/versioned_docs/version-8.5/apis-tools/administration-api/authentication.md @@ -67,7 +67,7 @@ The OAuth service rate limits about one request per second for all clients with All token requests count toward the rate limit, whether they are successful or not. If any client is running with an expired or invalid API key, that client will continually make token requests. That client will therefore exceed the rate limit for that IP address, and may block valid token requests from completing. ::: -The officially offered [client libraries](/docs/apis-tools/working-with-apis-tools.md) (as well as the Node.js and Spring clients) have already integrated with the auth routine, handle obtaining and refreshing an access token, and make use of a local cache. +The officially offered [client libraries](/apis-tools/working-with-apis-tools.md) (as well as the Node.js and Spring clients) have already integrated with the auth routine, handle obtaining and refreshing an access token, and make use of a local cache. If too many token requests are executed from the same source IP address in a short time, all token requests from that source IP address are blocked for a certain time. Since the access tokens have a 24-hour validity period, they must be cached on the client side, reused while still valid, and refreshed via a new token request once the validity period has expired. diff --git a/versioned_docs/version-8.5/apis-tools/administration-api/tutorial.md b/versioned_docs/version-8.5/apis-tools/administration-api/tutorial.md index 420eeacc31..ab4093fca6 100644 --- a/versioned_docs/version-8.5/apis-tools/administration-api/tutorial.md +++ b/versioned_docs/version-8.5/apis-tools/administration-api/tutorial.md @@ -23,7 +23,7 @@ Make sure you keep the generated client credentials in a safe place. The **Clien ## Getting started - A detailed API description can be found [here](https://console.cloud.camunda.io/customer-api/openapi/docs/#/) via Swagger. With a valid access token, this offers an interactive API experience against your Camunda 8 cluster. -- You need authentication to access the API endpoints. Find more information [here](/docs/apis-tools/administration-api/authentication.md). +- You need authentication to access the API endpoints. Find more information [here](/apis-tools/administration-api/authentication.md). ## Set up authentication diff --git a/versioned_docs/version-8.5/apis-tools/frontend-development/01-task-applications/02-user-task-lifecycle.md b/versioned_docs/version-8.5/apis-tools/frontend-development/01-task-applications/02-user-task-lifecycle.md index 631d5eb774..13c390ffae 100644 --- a/versioned_docs/version-8.5/apis-tools/frontend-development/01-task-applications/02-user-task-lifecycle.md +++ b/versioned_docs/version-8.5/apis-tools/frontend-development/01-task-applications/02-user-task-lifecycle.md @@ -17,7 +17,7 @@ Refer to the Camunda best practice task life cycle below as a starting point. ## Camunda best practice task life cycle -The Camunda [Tasklist](/docs/components/tasklist/introduction-to-tasklist.md) component implements a task life cycle optimized to track actual work on individual tasks via [forms](../03-forms/01-introduction-to-forms.md) on a desktop. It separates task assignment from task state to support collaborative ways of working and promote use cases for managers. +The Camunda [Tasklist](/components/tasklist/introduction-to-tasklist.md) component implements a task life cycle optimized to track actual work on individual tasks via [forms](../03-forms/01-introduction-to-forms.md) on a desktop. It separates task assignment from task state to support collaborative ways of working and promote use cases for managers. On the happy path, task agents can: @@ -27,7 +27,7 @@ On the happy path, task agents can: - The data entered up to this point is preserved. If they are unable to continue, they can `return` a task to the queue for someone else to pick it up, which resets the task data. :::note -The state of the task is derived via a CQRS pattern. [Zeebe](/docs/components/zeebe/zeebe-overview.md), Camunda's process execution engine, manages a stream of events. There is no single status attribute in tasks. Instead, tasks derive their status from these events. +The state of the task is derived via a CQRS pattern. [Zeebe](/components/zeebe/zeebe-overview.md), Camunda's process execution engine, manages a stream of events. There is no single status attribute in tasks. Instead, tasks derive their status from these events. ::: ```mermaid diff --git a/versioned_docs/version-8.5/apis-tools/go-client/go-get-started.md b/versioned_docs/version-8.5/apis-tools/go-client/go-get-started.md index 9d0c7bff13..0176b30cd4 100644 --- a/versioned_docs/version-8.5/apis-tools/go-client/go-get-started.md +++ b/versioned_docs/version-8.5/apis-tools/go-client/go-get-started.md @@ -278,7 +278,7 @@ Now, we want to do some work within our process. Follow the steps below: - Set the **type** of the second task to `fetcher-service`. - Set the **type** of the third task to `shipping-service`. -6. Additionally, for the service task `Collect Money` set a [**task-header**](/docs/next/components/modeler/bpmn/service-tasks/#task-headers) with the key `method` and the value `VISA`. This header is used as a configuration parameter for the payment-service worker to hand over the payment method. +6. Additionally, for the service task `Collect Money` set a [**task-header**](/components/modeler/bpmn/service-tasks/service-tasks.md#task-headers) with the key `method` and the value `VISA`. This header is used as a configuration parameter for the payment-service worker to hand over the payment method. The consolidated example looks as follows: diff --git a/versioned_docs/version-8.5/apis-tools/operate-api/tutorial.md b/versioned_docs/version-8.5/apis-tools/operate-api/tutorial.md index b29e5193ca..c69436c108 100644 --- a/versioned_docs/version-8.5/apis-tools/operate-api/tutorial.md +++ b/versioned_docs/version-8.5/apis-tools/operate-api/tutorial.md @@ -9,7 +9,7 @@ In this tutorial, we'll step through examples to highlight the capabilities of t ## Getting started -- You need authentication to access the API endpoints. Find more information [here](/docs/apis-tools/operate-api/overview.md#authentication). +- You need authentication to access the API endpoints. Find more information [here](/apis-tools/operate-api/overview.md#authentication). - We will use the `bpmn-js` library to render the diagram and add overlays. Visit the documentation on [embedding the pre-packaged viewer](https://bpmn.io/toolkit/bpmn-js/walkthrough/#viewer-pre-packaged) for more details. ## Set up the demo project diff --git a/versioned_docs/version-8.5/apis-tools/tasklist-api-rest/migrate-to-zeebe-user-tasks.md b/versioned_docs/version-8.5/apis-tools/tasklist-api-rest/migrate-to-zeebe-user-tasks.md index 4b4298ae13..18ef247fd7 100644 --- a/versioned_docs/version-8.5/apis-tools/tasklist-api-rest/migrate-to-zeebe-user-tasks.md +++ b/versioned_docs/version-8.5/apis-tools/tasklist-api-rest/migrate-to-zeebe-user-tasks.md @@ -15,7 +15,7 @@ import styles from "./assets/css/cleanImages.module.css"; import APIArchitectureImg from './assets/img/api-architecture.png'; import ZeebeTaskSelectionImg from './assets/img/zeebe-user-task-selection.png'; -Camunda 8.5 introduces a new [user task](/docs/components/modeler/bpmn/user-tasks/user-tasks.md) implementation type: Zeebe user tasks. +Camunda 8.5 introduces a new [user task](/components/modeler/bpmn/user-tasks/user-tasks.md) implementation type: Zeebe user tasks. Zeebe user tasks have several benefits, including: - Running directly on the automation engine for high performance. diff --git a/versioned_docs/version-8.5/apis-tools/tasklist-api/tasklist-api-overview.md b/versioned_docs/version-8.5/apis-tools/tasklist-api/tasklist-api-overview.md index a753de438a..7f3eaf0586 100644 --- a/versioned_docs/version-8.5/apis-tools/tasklist-api/tasklist-api-overview.md +++ b/versioned_docs/version-8.5/apis-tools/tasklist-api/tasklist-api-overview.md @@ -26,7 +26,7 @@ For SaaS: `https://${REGION}.tasklist.camunda.io:443/${CLUSTER_ID}/graphql`, and To obtain the Tasklist GraphQL schema, visit the API collection in [GitHub](https://github.com/camunda-community-hub/camunda-8-api-postman-collection), which is fully functioning in [Postman](https://www.postman.com/camundateam/workspace/camunda-8-postman/collection/20317927-6394943f-b57c-4c04-acf9-391a8614103b?action=share&creator=11465105). -Alternatively, send a request to the endpoint with a GraphQL introspection query as described [here](https://graphql.org/learn/introspection/), or use the [generated API documentation](/docs/apis-tools/tasklist-api/generated.md). +Alternatively, send a request to the endpoint with a GraphQL introspection query as described [here](https://graphql.org/learn/introspection/), or use the [generated API documentation](/apis-tools/tasklist-api/generated.md). There are also several [tools to explore GraphQL APIs](https://altair.sirmuel.design). diff --git a/versioned_docs/version-8.5/components/best-practices/architecture/sizing-your-environment.md b/versioned_docs/version-8.5/components/best-practices/architecture/sizing-your-environment.md index 9faf2e1e2f..7bf37b4b39 100644 --- a/versioned_docs/version-8.5/components/best-practices/architecture/sizing-your-environment.md +++ b/versioned_docs/version-8.5/components/best-practices/architecture/sizing-your-environment.md @@ -71,15 +71,15 @@ The closer you push throughput to the limits, the more latency you will get. Thi ### Payload size -Every process instance can hold a payload (known as [process variables](/docs/components/concepts/variables/)). The payload of all running process instances must be managed by the runtime workflow engine, and all data of running and ended process instances is also forwarded to Operate and Optimize. +Every process instance can hold a payload (known as [process variables](/components/concepts/variables.md)). The payload of all running process instances must be managed by the runtime workflow engine, and all data of running and ended process instances is also forwarded to Operate and Optimize. The data you attach to a process instance (process variables) influences resource requirements. For example, it makes a big difference if you only add one or two strings (requiring around 1 KB of space) to your process instances, or a full JSON document containing 1 MB. Hence, the payload size is an important factor when looking at sizing. There are a few general rules regarding payload size: -- The maximum [variable size per process instance is limited](/docs/components/concepts/variables/#variable-size-limitation), currently to roughly 3 MB. -- We don't recommend storing much data in your process context. Refer to our [best practice on handling data in processes](/docs/components/best-practices/development/handling-data-in-processes/). -- Every [partition](/docs/components/zeebe/technical-concepts/partitions/) of the Zeebe installation can typically handle up to 1 GB of payload in total. Larger payloads can lead to slower processing. For example, if you run one million process instances with 4 KB of data each, you end up with 3.9 GB of data, and you should run at least four partitions. In reality, this typically means six partitions, as you want to run the number of partitions as a multiple of the replication factor, which by default is three. +- The maximum [variable size per process instance is limited](/components/concepts/variables.md#variable-size-limitation), currently to roughly 3 MB. +- We don't recommend storing much data in your process context. Refer to our [best practice on handling data in processes](/components/best-practices/development/handling-data-in-processes.md). +- Every [partition](/components/zeebe/technical-concepts/partitions.md) of the Zeebe installation can typically handle up to 1 GB of payload in total. Larger payloads can lead to slower processing. For example, if you run one million process instances with 4 KB of data each, you end up with 3.9 GB of data, and you should run at least four partitions. In reality, this typically means six partitions, as you want to run the number of partitions as a multiple of the replication factor, which by default is three. The payload size also affects disk space requirements, as described in the next section. @@ -124,7 +124,7 @@ Spinning up a Camunda 8 Cluster means you run multiple components that all need All components are clustered to provide high-availability, fault-tolerance and resiliency. -Zeebe scales horizontally by adding more cluster nodes (pods). This is **limited by the [number of partitions](/docs/components/zeebe/technical-concepts/partitions/)** configured for a Zeebe cluster, as the work within one partition cannot be parallelized by design. Hence, you need to define enough partitions to utilize your hardware. The **number of partitions cannot be changed after the cluster was initially provisioned** (at least not yet), elastic scalability of partitions is not yet possible. +Zeebe scales horizontally by adding more cluster nodes (pods). This is **limited by the [number of partitions](/components/zeebe/technical-concepts/partitions.md)** configured for a Zeebe cluster, as the work within one partition cannot be parallelized by design. Hence, you need to define enough partitions to utilize your hardware. The **number of partitions cannot be changed after the cluster was initially provisioned** (at least not yet), elastic scalability of partitions is not yet possible. If you anticipate the load increasing over time, prepare by configuring more partitions than you currently need as a buffer. For example, you could multiply the number of partitions you need for your current load by four to add a buffer. This typically has just a small impact on performance. diff --git a/versioned_docs/version-8.5/components/best-practices/architecture/understanding-human-tasks-management.md b/versioned_docs/version-8.5/components/best-practices/architecture/understanding-human-tasks-management.md index ddd320592a..eae24bd423 100644 --- a/versioned_docs/version-8.5/components/best-practices/architecture/understanding-human-tasks-management.md +++ b/versioned_docs/version-8.5/components/best-practices/architecture/understanding-human-tasks-management.md @@ -53,7 +53,7 @@ While assigning users to groups is advised, it's not the only option. You could If you have human tasks in your process, you must make up your mind on how exactly you want to let your users work on their tasks and interact with the workflow engine. You have basically three options: -- [Camunda Tasklist](/docs/components/tasklist/introduction-to-tasklist/): The Tasklist application shipped with Camunda. This works out-of-the-box and has a low development effort. However, it is limited in terms of customizability and how much you can influence the user experience. +- [Camunda Tasklist](/components/tasklist/introduction-to-tasklist.md): The Tasklist application shipped with Camunda. This works out-of-the-box and has a low development effort. However, it is limited in terms of customizability and how much you can influence the user experience. - Custom task list application: You can develop a custom task list and adapt this to your needs without compromises. Human tasks are shown inside your custom application, following your style guide and usability concept. You will use the [Camunda Tasklist API](/apis-tools/tasklist-api-rest/tasklist-api-rest-overview.md) in the background. This is very flexible, but requires additional development work. diff --git a/versioned_docs/version-8.5/components/best-practices/development/dealing-with-problems-and-exceptions.md b/versioned_docs/version-8.5/components/best-practices/development/dealing-with-problems-and-exceptions.md index 60e79f2884..70aa273ec7 100644 --- a/versioned_docs/version-8.5/components/best-practices/development/dealing-with-problems-and-exceptions.md +++ b/versioned_docs/version-8.5/components/best-practices/development/dealing-with-problems-and-exceptions.md @@ -25,7 +25,7 @@ If there is no worker subscribed when a job is created, the job is simply put in ![Worker concept](dealing-with-problems-and-exceptions-assets/worker-concept.png) -Whenever the worker has finished whatever it needs to do (like invoking the REST endpoint), it sends another call to the workflow engine, which [can be one of these three](/docs/components/concepts/job-workers/#completing-or-failing-jobs): +Whenever the worker has finished whatever it needs to do (like invoking the REST endpoint), it sends another call to the workflow engine, which [can be one of these three](/components/concepts/job-workers.md#completing-or-failing-jobs): - [`CompleteJob`](/apis-tools/zeebe-api/gateway-service.md#completejob-rpc): The service task went well, the process instance can move on. - [`FailJob `](/apis-tools/zeebe-api/gateway-service.md#failjob-rpc): The service task failed, and the workflow engine should handle this failure. There are two possibilities: @@ -100,11 +100,11 @@ zbc.createWorker("retrieveMoney", (job) => { ### Using incidents -Whenever a job fails with a retry count of `0`, an incident is raised. An incident requires human intervention, typically using Operate. Refer to [incidents in the Operate docs](/docs/components/operate/userguide/resolve-incidents-update-variables/). +Whenever a job fails with a retry count of `0`, an incident is raised. An incident requires human intervention, typically using Operate. Refer to [incidents in the Operate docs](/components/operate/userguide/resolve-incidents-update-variables.md). ### Writing idempotent workers -Zeebe uses the **at-least-once strategy** for job handlers, which is a typical choice in distributed systems. This means that the process instance only advances in the happy case (the job was completed, the workflow engine received the complete job request and committed it). A typical failure case occurs when the worker who polled the job crashes and cannot complete the job anymore. [In this case, the workflow engine gives the job to another worker after a configured timeout](/docs/components/concepts/job-workers#timeouts). This ensures that the job handler is executed at least once. +Zeebe uses the **at-least-once strategy** for job handlers, which is a typical choice in distributed systems. This means that the process instance only advances in the happy case (the job was completed, the workflow engine received the complete job request and committed it). A typical failure case occurs when the worker who polled the job crashes and cannot complete the job anymore. [In this case, the workflow engine gives the job to another worker after a configured timeout](/components/concepts/job-workers.md#timeouts). This ensures that the job handler is executed at least once. But this can mean that the handler is executed more than once! You need to consider this in your handler code, as the handler might be called more than one time. The [technical term describing this is idempotency](https://en.wikipedia.org/wiki/Idempotence). @@ -139,7 +139,7 @@ We decide that we want to deal with an exception in the process: in case the inv ...we assign a task to a human user, who is now in charge of taking care of delivering the invoice. -Learn more about the usage of [error events](/docs/components/modeler/bpmn/error-events/) in the user guide. +Learn more about the usage of [error events](/components/modeler/bpmn/error-events/error-events.md) in the user guide. ### Throwing and handling BPMN errors diff --git a/versioned_docs/version-8.5/components/best-practices/development/handling-data-in-processes.md b/versioned_docs/version-8.5/components/best-practices/development/handling-data-in-processes.md index 28b90d2265..9aa8fc51da 100644 --- a/versioned_docs/version-8.5/components/best-practices/development/handling-data-in-processes.md +++ b/versioned_docs/version-8.5/components/best-practices/development/handling-data-in-processes.md @@ -42,7 +42,7 @@ Therefore, the tweet approval process needs two variables: | `tweet` | String | "@Camunda rocks" | | `approved` | Boolean | true | -In Camunda 8, [values are stored as JSON](/docs/components/concepts/variables/#variable-values). +In Camunda 8, [values are stored as JSON](/components/concepts/variables.md#variable-values). :::caution Camunda 7 handles variables slightly differently This best practice describes variable handling within Camunda 8. Process variables are handled slightly differently with Camunda 7. Consult the [Camunda 7 documentation](https://docs.camunda.org/manual/latest/user-guide/process-engine/variables/) for details. In essence, variable values are not handled as JSON and thus there are [different values](https://docs.camunda.org/manual/latest/user-guide/process-engine/variables/#supported-variable-values) supported. @@ -65,7 +65,7 @@ completeTask( In Camunda, you do _not_ declare process variables in the process model. This allows for a lot of flexibility. Refer to recommendations below on how to overcome possible disadvantages of this approach. -Consult the [docs about variables](/docs/components/concepts/variables/#variable-values) to learn more. +Consult the [docs about variables](/components/concepts/variables.md#variable-values) to learn more. Camunda does not treat BPMN **data objects** () as process variables. We recommend using them occasionally _for documentation_, but you need to [avoid excessive usage of data objects](../../modeling/creating-readable-process-models#avoiding-excessive-usage-of-data-objects). @@ -73,7 +73,7 @@ Camunda does not treat BPMN **data objects** ( -All operations use cases put into the model can be handled via Camunda tooling, e.g. by [retrying](/docs/components/concepts/job-workers/#completing-or-failing-jobs) or [Camunda Operate](/docs/components/operate/operate-introduction/). +All operations use cases put into the model can be handled via Camunda tooling, e.g. by [retrying](/components/concepts/job-workers.md#completing-or-failing-jobs) or [Camunda Operate](/components/operate/operate-introduction.md). ### Using collaboration diagrams diff --git a/versioned_docs/version-8.5/components/best-practices/modeling/modeling-with-situation-patterns.md b/versioned_docs/version-8.5/components/best-practices/modeling/modeling-with-situation-patterns.md index 89926eeec6..8ef7b8e131 100644 --- a/versioned_docs/version-8.5/components/best-practices/modeling/modeling-with-situation-patterns.md +++ b/versioned_docs/version-8.5/components/best-practices/modeling/modeling-with-situation-patterns.md @@ -35,7 +35,7 @@ We still stay optimistic. Therefore, the process again passively waits for the s - :thumbsdown: The usage of separate event-based gateways leads to _duplication_ (for example, of the receiving message events) and makes the model _larger_, even more so in case multiple steps of escalation need to be modeled. -- :thumbsdown: During the time we need to remind the dealer, we are strictly speaking not in a position to receive the goods! According to the BPMN specification, a process can handle a message event only if it is ready to receive at exactly the moment it occurs. Fortunately, Camunda 8 introduced [message buffering](/docs/components/concepts/messages/#message-buffering), allowing to execute this model properly without loosing messages. Using Camunda 7, the message might get lost until we are at the second event-based gateway. +- :thumbsdown: During the time we need to remind the dealer, we are strictly speaking not in a position to receive the goods! According to the BPMN specification, a process can handle a message event only if it is ready to receive at exactly the moment it occurs. Fortunately, Camunda 8 introduced [message buffering](/components/concepts/messages.md#message-buffering), allowing to execute this model properly without loosing messages. Using Camunda 7, the message might get lost until we are at the second event-based gateway. :::note You might want to use that pattern when modeling _simple two phase escalations_. You should not execute it on Camunda 7. @@ -59,7 +59,7 @@ We choose by means of an exclusive gateway to make a _first step of escalation_: - :thumbsdown: The solution is _less explicit_. We could not choose to label the timer with explicit durations, as a single timer is used for both durations. The solution is _less readable_ for a less experienced reading public. For a fast understanding of the two step escalation, this method of modeling is less suitable. -- :thumbsdown: During the time we need to remind the dealer, we are strictly speaking not in a position to receive the goods! According to the BPMN specification, a process can handle a message event only if it is ready to receive at exactly the moment it occurs. Fortunately, Camunda 8 introduced [message buffering](/docs/components/concepts/messages/#message-buffering), allowing to execute this model properly without loosing messages. Using Camunda 7, the message might get lost until we are at the second event-based gateway. +- :thumbsdown: During the time we need to remind the dealer, we are strictly speaking not in a position to receive the goods! According to the BPMN specification, a process can handle a message event only if it is ready to receive at exactly the moment it occurs. Fortunately, Camunda 8 introduced [message buffering](/components/concepts/messages.md#message-buffering), allowing to execute this model properly without loosing messages. Using Camunda 7, the message might get lost until we are at the second event-based gateway. :::note You might want to use that pattern when modeling _escalations with multiple steps_. You should not execute it on Camunda 7. diff --git a/versioned_docs/version-8.5/components/best-practices/operations/operating-camunda-c7.md b/versioned_docs/version-8.5/components/best-practices/operations/operating-camunda-c7.md index 4e28e64369..74711da7f6 100644 --- a/versioned_docs/version-8.5/components/best-practices/operations/operating-camunda-c7.md +++ b/versioned_docs/version-8.5/components/best-practices/operations/operating-camunda-c7.md @@ -13,7 +13,7 @@ description: "To successfully operate Camunda 7.x, you need to take into account To successfully operate Camunda 7.x, you need to take into account operation requirements when modeling business processes. Use your existing tools and infrastructure for technical monitoring and alarming. When appropriate, use Camunda Cockpit and consider extending it with plugins instead of writing your own tooling. :::caution Camunda 7 only -This best practice targets Camunda 7.x only! The Camunda 8 stacks differs and operating it is discussed in [Camunda 8 Self-Managed](/docs/self-managed/about-self-managed/). +This best practice targets Camunda 7.x only! The Camunda 8 stacks differs and operating it is discussed in [Camunda 8 Self-Managed](/self-managed/about-self-managed.md). ::: ## Installing Camunda 7.x diff --git a/versioned_docs/version-8.5/components/best-practices/operations/reporting-about-processes.md b/versioned_docs/version-8.5/components/best-practices/operations/reporting-about-processes.md index 8a1fbe5b5f..dec8d68433 100644 --- a/versioned_docs/version-8.5/components/best-practices/operations/reporting-about-processes.md +++ b/versioned_docs/version-8.5/components/best-practices/operations/reporting-about-processes.md @@ -77,7 +77,7 @@ Historical data can be leveraged via three possible mechanisms: - **Query API**: Using the public API (currently under development), this has the advantage that you can make use of the history data within your own applications. -- Pushing **events**: Pushing Camunda events by using [exporters](/docs/components/zeebe/technical-concepts/architecture/#exporters). Note that you can only add own exporters in a Self-Managed setting, not in Camunda 8 SaaS. Exporters have the advantage that you can push the data into any infrastructure you have, and possibly even filter or enrich the data in that step. +- Pushing **events**: Pushing Camunda events by using [exporters](/components/zeebe/technical-concepts/architecture.md#exporters). Note that you can only add own exporters in a Self-Managed setting, not in Camunda 8 SaaS. Exporters have the advantage that you can push the data into any infrastructure you have, and possibly even filter or enrich the data in that step. ## Connecting custom business intelligence systems (BI), data warehouses (DWH), or monitoring solutions diff --git a/versioned_docs/version-8.5/components/best-practices/operations/securing-camunda-c7.md b/versioned_docs/version-8.5/components/best-practices/operations/securing-camunda-c7.md index f3db7dabea..84cfe8e18e 100644 --- a/versioned_docs/version-8.5/components/best-practices/operations/securing-camunda-c7.md +++ b/versioned_docs/version-8.5/components/best-practices/operations/securing-camunda-c7.md @@ -11,7 +11,7 @@ description: "Disallow unauthorized access by securing the Camunda 7.x before go Disallow unauthorized access by securing the Camunda 7.x before going live with your process applications. Understand Camunda user management essentials, enforce authorization for the REST API, define access rights for Camunda specific resources such as process definitions, and consider integrating with your Single-Sign-On (SSO). :::caution Camunda 7 only -This best practice targets Camunda 7.x only! For Camunda 8, visit [Zeebe Security](/docs/self-managed/zeebe-deployment/security/). +This best practice targets Camunda 7.x only! For Camunda 8, visit [Zeebe Security](/self-managed/zeebe-deployment/security/security.md). ::: ## Understanding user management essentials diff --git a/versioned_docs/version-8.5/components/best-practices/operations/versioning-process-definitions.md b/versioned_docs/version-8.5/components/best-practices/operations/versioning-process-definitions.md index 6cc5089284..a2bed8a8b1 100644 --- a/versioned_docs/version-8.5/components/best-practices/operations/versioning-process-definitions.md +++ b/versioned_docs/version-8.5/components/best-practices/operations/versioning-process-definitions.md @@ -147,7 +147,7 @@ Having said this, we want to emphasize that the engine is perfectly fine with ha ### Using call activities to influence versioning behaviour of pieces :::caution Camunda 8 -With Camunda 8 you cannot yet influence the version of the started process instance via the call activity. This feature is on the roadmap. At the moment, [a new process instance of the latest process definition version is started](/docs/components/modeler/bpmn/call-activities/). +With Camunda 8 you cannot yet influence the version of the started process instance via the call activity. This feature is on the roadmap. At the moment, [a new process instance of the latest process definition version is started](/components/modeler/bpmn/call-activities/call-activities.md). ::: When calling separately modeled subprocesses (i.e. _Call Activities_), the default behavior of the process engine is to call the _latest_ deployed version of that subprocess. You can change this default 'binding' behavior to call a _specific_ version or the version which was _deployed_ together with the parent process. diff --git a/versioned_docs/version-8.5/components/concepts/access-control/user-task-access-restrictions.md b/versioned_docs/version-8.5/components/concepts/access-control/user-task-access-restrictions.md index 93bc03fd66..b9a986078f 100644 --- a/versioned_docs/version-8.5/components/concepts/access-control/user-task-access-restrictions.md +++ b/versioned_docs/version-8.5/components/concepts/access-control/user-task-access-restrictions.md @@ -28,3 +28,5 @@ User task access restrictions are enabled by default. To disable them, navigate ![Enabling User Task Restriction](../assets/access-control/enforce-user-task-restriction.png) When activated, tasks assigned to users or candidate groups are only visible to the assigned user or respective group members. When deactivated, every user can see any task, regardless of the assignment. + +This configuration does not affect API users. When retrieving tasks using the APIs, all tasks are returned. diff --git a/versioned_docs/version-8.5/components/concepts/clusters.md b/versioned_docs/version-8.5/components/concepts/clusters.md index 1615fca8dc..f5d4e0008b 100644 --- a/versioned_docs/version-8.5/components/concepts/clusters.md +++ b/versioned_docs/version-8.5/components/concepts/clusters.md @@ -38,7 +38,7 @@ The way this type of cluster works varies depending on if you are using it in th ### Development clusters in the Enterprise Plan -Enterprise Plan users can purchase development clusters as part of their Enterprise subscription agreement. Deployment and execution of models (process instances, decision instances, and task users) are included at no extra cost for this type of cluster. Additionally, this type of cluster in the Enterprise plan follows the [standard data retention policy](/docs/components/concepts/data-retention.md) and does not auto-pause when not in use. +Enterprise Plan users can purchase development clusters as part of their Enterprise subscription agreement. Deployment and execution of models (process instances, decision instances, and task users) are included at no extra cost for this type of cluster. Additionally, this type of cluster in the Enterprise plan follows the [standard data retention policy](/components/concepts/data-retention.md) and does not auto-pause when not in use. Please [contact us](https://camunda.com/contact/) if you are an existing customer and would like to purchase a development cluster. diff --git a/versioned_docs/version-8.5/components/concepts/variables.md b/versioned_docs/version-8.5/components/concepts/variables.md index fd46567793..9d705f466f 100644 --- a/versioned_docs/version-8.5/components/concepts/variables.md +++ b/versioned_docs/version-8.5/components/concepts/variables.md @@ -39,7 +39,7 @@ The value of a variable is stored as a JSON value. It can have one of the follow Generally, there is a limit of 4 MB for the payload of a process instance. This 4 MB includes the variables and the workflow engine internal data, which means there is slightly less memory available for variables. The exact limitation depends on a few factors, but you can consider 3 MB as being safe. If in doubt, run a quick test case. :::note -Regardless, we don't recommend storing much data in your process context. Refer to our [best practice on handling data in processes](/docs/components/best-practices/development/handling-data-in-processes.md). +Regardless, we don't recommend storing much data in your process context. Refer to our [best practice on handling data in processes](/components/best-practices/development/handling-data-in-processes.md). ::: ## Variable scopes diff --git a/versioned_docs/version-8.5/components/concepts/workflow-patterns.md b/versioned_docs/version-8.5/components/concepts/workflow-patterns.md index ca6ea9d5bf..ace1b2cbd6 100644 --- a/versioned_docs/version-8.5/components/concepts/workflow-patterns.md +++ b/versioned_docs/version-8.5/components/concepts/workflow-patterns.md @@ -28,7 +28,7 @@ The most basic workflow patterns are (excuse the play on words) around the basic Refer to [Workflow Pattern 1: Sequence](http://www.workflowpatterns.com/patterns/control/basic/wcp1.php): "A task in a process is enabled after the completion of a preceding task in the same process." -This is implemented by a [sequence flow](/docs/components/modeler/bpmn/bpmn-primer.md#sequence-flow-controlling-the-flow-of-execution) connecting two activities: +This is implemented by a [sequence flow](/components/modeler/bpmn/bpmn-primer.md#sequence-flow-controlling-the-flow-of-execution) connecting two activities:
diff --git a/versioned_docs/version-8.5/components/connectors/introduction.md b/versioned_docs/version-8.5/components/connectors/introduction.md index 526383c3e3..86c3a4558a 100644 --- a/versioned_docs/version-8.5/components/connectors/introduction.md +++ b/versioned_docs/version-8.5/components/connectors/introduction.md @@ -37,5 +37,5 @@ Additionally, the [Camunda Marketplace](/components/modeler/web-modeler/camunda- - [Use Connectors in your BPMN process](./use-connectors/index.md) - [Learn about available out-of-the-box Connectors](./out-of-the-box-connectors/available-connectors-overview.md) - [Configure Connector Templates](manage-connector-templates.md) -- [Visit the Camunda Marketplace](/docs/components/modeler/web-modeler/camunda-marketplace.md) +- [Visit the Camunda Marketplace](/components/modeler/web-modeler/camunda-marketplace.md) - [Install Connectors in Self-Managed](/self-managed/connectors-deployment/install-and-start.md) diff --git a/versioned_docs/version-8.5/components/connectors/out-of-the-box-connectors/amazon-eventbridge.md b/versioned_docs/version-8.5/components/connectors/out-of-the-box-connectors/amazon-eventbridge.md index a7f72d5bc1..17d9e7c20a 100644 --- a/versioned_docs/version-8.5/components/connectors/out-of-the-box-connectors/amazon-eventbridge.md +++ b/versioned_docs/version-8.5/components/connectors/out-of-the-box-connectors/amazon-eventbridge.md @@ -44,8 +44,8 @@ Follow these steps to configure the Amazon EventBridge Connector: - **Source**: Enter the value that identifies the service that generated the event. - **Detail type**: Enter the type of event being sent. Refer to the [Amazon documentation](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html) for more information on these properties. 5. In the **Event Payload** section, enter a JSON object that contains information about the event. -6. (Optional) In the **Output Mapping** section, you can set a **Result variable** or **Result expression**. Refer to the [response mapping documentation](/docs/components/connectors/use-connectors/index.md#response-mapping) to learn more. -7. (Optional) In the **Error Handling** section, define the **Error expression** to handle errors that may occur during the event sending process. Refer to the [response mapping documentation](/docs/components/connectors/use-connectors/index.md#bpmn-errors) to learn more. +6. (Optional) In the **Output Mapping** section, you can set a **Result variable** or **Result expression**. Refer to the [response mapping documentation](/components/connectors/use-connectors/index.md#response-mapping) to learn more. +7. (Optional) In the **Error Handling** section, define the **Error expression** to handle errors that may occur during the event sending process. Refer to the [response mapping documentation](/components/connectors/use-connectors/index.md#bpmn-errors) to learn more. ## Amazon EventBridge Connector response diff --git a/versioned_docs/version-8.5/components/connectors/out-of-the-box-connectors/google-maps-platform.md b/versioned_docs/version-8.5/components/connectors/out-of-the-box-connectors/google-maps-platform.md index 3c91b1132f..eb2b789c67 100644 --- a/versioned_docs/version-8.5/components/connectors/out-of-the-box-connectors/google-maps-platform.md +++ b/versioned_docs/version-8.5/components/connectors/out-of-the-box-connectors/google-maps-platform.md @@ -57,7 +57,7 @@ To use this operation, enable the [Google Directions API](https://developers.goo 3. (Optional) In the **Input** section, set **Region Code** (i.e `US`). You can find supported region codes [here](https://developers.google.com/maps/documentation/address-validation/coverage). 4. (Optional) In the **Input** section, set **Locality**, an incorporated city or town political entity (i.e `Mountain View`). 5. In the **Input** section, set **Address**, an incorporated city or town political entity (i.e `1600 Amphitheatre Pkwy`). -6. In the **Output** section set **Result Variable** or **Result Expression**. Refer to the [response mapping documentation](/docs/components/connectors/use-connectors/index.md#response-mapping) to learn more. +6. In the **Output** section set **Result Variable** or **Result Expression**. Refer to the [response mapping documentation](/components/connectors/use-connectors/index.md#response-mapping) to learn more. 7. Find a full example of the **Google Maps Platform Connector** response [here](https://developers.google.com/maps/documentation/address-validation/requests-validate-address#address_validation_response). To get postal address and formatted address, set to **Result Expression** in the FEEL expression: ``` @@ -96,7 +96,7 @@ In this way, the response of this method will contain a mapping from the variabl 4. In the **Input** section, set **Origin**, the place ID value that you want to use as the starting point for calculating distance. 5. Select the unit system to use when displaying results from the **Units** dropdown in the **Input** section. 6. Select the transportation mode to use when calculating distances and directions from the **Mode** dropdown in the **Input** section. -7. In the **Output** section, set **Result Variable** or **Result Expression**. Refer to the [response mapping documentation](/docs/components/connectors/use-connectors/index.md#response-mapping) to learn more. +7. In the **Output** section, set **Result Variable** or **Result Expression**. Refer to the [response mapping documentation](/components/connectors/use-connectors/index.md#response-mapping) to learn more. 8. Find a full example of the **Google Maps Platform Connector** response [here](https://developers.google.com/maps/documentation/directions/start#getting-directions). To get a distance, set **Result Expression** in the FEEL expression: ``` diff --git a/versioned_docs/version-8.5/components/connectors/out-of-the-box-connectors/slack.md b/versioned_docs/version-8.5/components/connectors/out-of-the-box-connectors/slack.md index 03d36ff3aa..d8d35991a2 100644 --- a/versioned_docs/version-8.5/components/connectors/out-of-the-box-connectors/slack.md +++ b/versioned_docs/version-8.5/components/connectors/out-of-the-box-connectors/slack.md @@ -93,7 +93,7 @@ To post a message, take the following steps: 1. When **Plain text** is selected, set **Message** to the message string you would like to send (for example, `Hello World!`). 2. When **Message block** is selected, set **Message block** to a formatted rich text block format. Learn more about rich text message block format in the [official Slack documentation](https://api.slack.com/reference/surfaces/formatting#stack_of_blocks). -The **Channel/User Name** and **Message** can either be given [static values](/docs/components/concepts/expressions.md#expressions-vs-static-values), or FEEL expressions. FEEL expressions can be used to [access process variables or dynamically create values](/components/concepts/expressions.md). This can be handy if a process variable is used to store the relevant channel or if the message needs to be composed dynamically, for example: +The **Channel/User Name** and **Message** can either be given [static values](/components/concepts/expressions.md#expressions-vs-static-values), or FEEL expressions. FEEL expressions can be used to [access process variables or dynamically create values](/components/concepts/expressions.md). This can be handy if a process variable is used to store the relevant channel or if the message needs to be composed dynamically, for example: `Channel/User Name` property might look like: @@ -107,7 +107,7 @@ The **Channel/User Name** and **Message** can either be given [static values](/d = "Order-" + orderId + " was dispatched" ``` -In the above example, the Channel/User Name is set to the [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) "#slack-connectors," which will post the message to the specified Slack channel. The **Message** property uses a FEEL expression to dynamically create the message content. It concatenates the string "Order-" with the value stored in the process variable orderId and adds "was dispatched" to complete the message. This way, the message will vary based on the specific orderId stored during the process execution. +In the above example, the Channel/User Name is set to the [static value](/components/concepts/expressions.md#expressions-vs-static-values) "#slack-connectors," which will post the message to the specified Slack channel. The **Message** property uses a FEEL expression to dynamically create the message content. It concatenates the string "Order-" with the value stored in the process variable orderId and adds "was dispatched" to complete the message. This way, the message will vary based on the specific orderId stored during the process execution. :::note Slack's [guidance on formatting](https://api.slack.com/reference/surfaces/formatting#basics) can assist in formatting messages. diff --git a/versioned_docs/version-8.5/components/connectors/use-connectors/index.md b/versioned_docs/version-8.5/components/connectors/use-connectors/index.md index 962a75afa0..35a2aa5afa 100644 --- a/versioned_docs/version-8.5/components/connectors/use-connectors/index.md +++ b/versioned_docs/version-8.5/components/connectors/use-connectors/index.md @@ -6,7 +6,7 @@ description: Learn how to use Connectors in Web Modeler by creating a Connector Any task can be transformed into a Connector task. This guide details the basic functionality all Connectors share. -Find the available Connectors in Camunda 8 SaaS and how to use them in detail in the [out-of-the-box Connectors](/components/connectors/out-of-the-box-connectors/available-connectors-overview.md) documentation. Additionally, learn how you can visit the [Camunda Marketplace](/docs/components/modeler/web-modeler/camunda-marketplace.md) to add Connectors from your BPMN diagram. +Find the available Connectors in Camunda 8 SaaS and how to use them in detail in the [out-of-the-box Connectors](/components/connectors/out-of-the-box-connectors/available-connectors-overview.md) documentation. Additionally, learn how you can visit the [Camunda Marketplace](/components/modeler/web-modeler/camunda-marketplace.md) to add Connectors from your BPMN diagram. :::note New to modeling with Camunda? The steps below assume some experience with Camunda modeling tools. [Model your first diagram](/components/modeler/web-modeler/model-your-first-diagram.md) to learn how to work with Web Modeler. diff --git a/versioned_docs/version-8.5/components/console/manage-clusters/manage-api-clients.md b/versioned_docs/version-8.5/components/console/manage-clusters/manage-api-clients.md index daea6fd920..54b582977a 100644 --- a/versioned_docs/version-8.5/components/console/manage-clusters/manage-api-clients.md +++ b/versioned_docs/version-8.5/components/console/manage-clusters/manage-api-clients.md @@ -26,7 +26,7 @@ The OAuth service rate limits about one request per second for all clients with All token requests count toward the rate limit, whether they are successful or not. If any client is running with an expired or invalid API key, that client will continually make token requests. That client will therefore exceed the rate limit for that IP address, and may block valid token requests from completing. ::: -The officially offered [client libraries](/docs/apis-tools/working-with-apis-tools.md) (as well as the Node.js and Spring clients) have already integrated with the auth routine, handle obtaining and refreshing an access token, and make use of a local cache. +The officially offered [client libraries](/apis-tools/working-with-apis-tools.md) (as well as the Node.js and Spring clients) have already integrated with the auth routine, handle obtaining and refreshing an access token, and make use of a local cache. If too many token requests are executed from the same source IP address in a short time, all token requests from that source IP address are blocked for a certain time. Since the access tokens have a 24-hour validity period, they must be cached on the client side, reused while still valid, and refreshed via a new token request once the validity period has expired. diff --git a/versioned_docs/version-8.5/components/console/manage-clusters/manage-ip-allowlists.md b/versioned_docs/version-8.5/components/console/manage-clusters/manage-ip-allowlists.md index d12ae6fc43..0437ba49e2 100644 --- a/versioned_docs/version-8.5/components/console/manage-clusters/manage-ip-allowlists.md +++ b/versioned_docs/version-8.5/components/console/manage-clusters/manage-ip-allowlists.md @@ -5,6 +5,10 @@ description: "If your organization works within Camunda's Enterprise plan, you c keywords: [whitelist, allowlist, ip whitelist, ip allowlist] --- +:::note +Camunda SaaS automatically manages allowlist assignments for IP addresses used by Web Modeler. +::: + If your organization works within Camunda's [Enterprise](https://camunda.com/enterprise/) plan, you can restrict access to clusters with an IP allowlist. ## Create an IP allowlist diff --git a/versioned_docs/version-8.5/components/console/manage-organization/enable-alpha-features.md b/versioned_docs/version-8.5/components/console/manage-organization/enable-alpha-features.md index 3da41380a8..d34e9d1a3b 100644 --- a/versioned_docs/version-8.5/components/console/manage-organization/enable-alpha-features.md +++ b/versioned_docs/version-8.5/components/console/manage-organization/enable-alpha-features.md @@ -17,7 +17,7 @@ Alpha terms typically refer to the specific terms and conditions that govern the Alpha terms help protect Camunda´s interests (such as protecting our intellectual property, disclaiming warranties, or limiting our liability for any issues or damages that may arise during the alpha phase), manage user expectations, encourage active participation and feedback, and ensure legal compliance during the pre-release phase of software development. :::note -Enabling alpha features is limited to [admin users and owners](/docs/components/console/manage-organization/manage-users.md) of Camunda products. +Enabling alpha features is limited to [admin users and owners](/components/console/manage-organization/manage-users.md) of Camunda products. ::: ## Accept alpha terms diff --git a/versioned_docs/version-8.5/components/modeler/bpmn/bpmn.md b/versioned_docs/version-8.5/components/modeler/bpmn/bpmn.md index 23cfe55faa..b3b534535f 100644 --- a/versioned_docs/version-8.5/components/modeler/bpmn/bpmn.md +++ b/versioned_docs/version-8.5/components/modeler/bpmn/bpmn.md @@ -25,7 +25,7 @@ The demo above shows how to create more BPMN 2.0 elements like lanes, task types ## BPMN 2.0 coverage -The Modeler [covers all BPMN 2.0 elements](/docs/components/modeler/bpmn/bpmn-coverage/) for modeling processes and collaborations. +The Modeler [covers all BPMN 2.0 elements](/components/modeler/bpmn/bpmn-coverage.md) for modeling processes and collaborations. ## BPMN 2.0 properties for execution diff --git a/versioned_docs/version-8.5/components/modeler/bpmn/business-rule-tasks/business-rule-tasks.md b/versioned_docs/version-8.5/components/modeler/bpmn/business-rule-tasks/business-rule-tasks.md index 57e9a53a6b..e593128e0f 100644 --- a/versioned_docs/version-8.5/components/modeler/bpmn/business-rule-tasks/business-rule-tasks.md +++ b/versioned_docs/version-8.5/components/modeler/bpmn/business-rule-tasks/business-rule-tasks.md @@ -36,7 +36,7 @@ a [decision literal expression](/components/modeler/dmn/decision-literal-express `zeebe:calledDecision` extension element. A business rule task must define the [DMN decision id](/components/modeler/dmn/decision-table.md#decision-id) of the -called decision as `decisionId`. Usually, the `decisionId` is defined as a [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `shipping_box_size`), but +called decision as `decisionId`. Usually, the `decisionId` is defined as a [static value](/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `shipping_box_size`), but it can also be defined as an [expression](/components/concepts/expressions.md) ( e.g. `= "shipping_box_size_" + countryCode`). The expression is evaluated on activating the business rule task (or when an incident at the business rule task is resolved) after input mappings have been applied. The expression must result in diff --git a/versioned_docs/version-8.5/components/modeler/bpmn/call-activities/call-activities.md b/versioned_docs/version-8.5/components/modeler/bpmn/call-activities/call-activities.md index fa612a2eab..e3c522b341 100644 --- a/versioned_docs/version-8.5/components/modeler/bpmn/call-activities/call-activities.md +++ b/versioned_docs/version-8.5/components/modeler/bpmn/call-activities/call-activities.md @@ -18,7 +18,7 @@ A call activity must define the BPMN process id of the called process as `proces The new instance of the defined process is created by its **latest version** at the point when the call activity is activated. -Usually, the `processId` is defined as a [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `shipping-process`), but it can also be defined as [expression](/components/concepts/expressions.md) (e.g. `= "shipping-" + tenantId`). The expression is evaluated on activating the call activity and must result in a `string`. +Usually, the `processId` is defined as a [static value](/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `shipping-process`), but it can also be defined as [expression](/components/concepts/expressions.md) (e.g. `= "shipping-" + tenantId`). The expression is evaluated on activating the call activity and must result in a `string`. ## Boundary events diff --git a/versioned_docs/version-8.5/components/modeler/bpmn/compensation-events/compensation-events.md b/versioned_docs/version-8.5/components/modeler/bpmn/compensation-events/compensation-events.md index cf69a7860d..3a07596eeb 100644 --- a/versioned_docs/version-8.5/components/modeler/bpmn/compensation-events/compensation-events.md +++ b/versioned_docs/version-8.5/components/modeler/bpmn/compensation-events/compensation-events.md @@ -37,7 +37,7 @@ case in [triggering compensation for an activity](#triggering-compensation-for-a ## Compensating embedded subprocesses If a process instance enters a compensation throw event and there are -completed [embedded subprocesses](/docs/components/modeler/bpmn/embedded-subprocesses/embedded-subprocesses.md) in the +completed [embedded subprocesses](/components/modeler/bpmn/embedded-subprocesses/embedded-subprocesses.md) in the same scope, it invokes the compensation handlers within these subprocesses and nested subprocesses. The compensation handlers are not invoked if the subprocess is active or terminated. diff --git a/versioned_docs/version-8.5/components/modeler/bpmn/message-events/message-events.md b/versioned_docs/version-8.5/components/modeler/bpmn/message-events/message-events.md index bf7cc600fa..c1614ad627 100644 --- a/versioned_docs/version-8.5/components/modeler/bpmn/message-events/message-events.md +++ b/versioned_docs/version-8.5/components/modeler/bpmn/message-events/message-events.md @@ -65,7 +65,7 @@ worker. A message can be referenced by one or more message events. It must define the name of the message (e.g. `Money collected`) and the `correlationKey` expression (e.g. `= orderId`). If the message is only referenced by message start events, the `correlationKey` is not required. -Usually, the name of the message is defined as a [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `order canceled`), but it can also be defined as [expression](/components/concepts/expressions.md) (e.g. `= "order " + awaitingAction`). If the expression belongs to a message start event of the process, it is evaluated on deploying the process. Otherwise, it is evaluated on activating the message event. The evaluation must result in a `string`. +Usually, the name of the message is defined as a [static value](/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `order canceled`), but it can also be defined as [expression](/components/concepts/expressions.md) (e.g. `= "order " + awaitingAction`). If the expression belongs to a message start event of the process, it is evaluated on deploying the process. Otherwise, it is evaluated on activating the message event. The evaluation must result in a `string`. The `correlationKey` is an expression that usually [accesses a variable](/components/modeler/feel/language-guide/feel-variables.md#access-variable) of the process instance that holds the correlation key of the message. The expression is evaluated on activating the message event and must result either in a `string` or in a `number`. diff --git a/versioned_docs/version-8.5/components/modeler/bpmn/receive-tasks/receive-tasks.md b/versioned_docs/version-8.5/components/modeler/bpmn/receive-tasks/receive-tasks.md index a9fb47de6d..719fdcd50c 100644 --- a/versioned_docs/version-8.5/components/modeler/bpmn/receive-tasks/receive-tasks.md +++ b/versioned_docs/version-8.5/components/modeler/bpmn/receive-tasks/receive-tasks.md @@ -20,7 +20,7 @@ An alternative to receive tasks is [a message intermediate catch event](../messa A message can be referenced by one or more receive tasks; it must define the name of the message (e.g. `Money collected`) and the `correlationKey` expression (e.g. `= orderId`). -Usually, the name of the message is defined as a [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `order canceled`), but it can also be defined as [expression](/components/concepts/expressions.md) (e.g. `= "order " + awaitingAction`). The expression is evaluated on activating the receive task and must result in a `string`. +Usually, the name of the message is defined as a [static value](/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `order canceled`), but it can also be defined as [expression](/components/concepts/expressions.md) (e.g. `= "order " + awaitingAction`). The expression is evaluated on activating the receive task and must result in a `string`. The `correlationKey` is an expression that usually [accesses a variable](/components/modeler/feel/language-guide/feel-variables.md#access-variable) of the process instance that holds the correlation key of the message. The expression is evaluated on activating the receive task and must result either in a `string` or `number`. diff --git a/versioned_docs/version-8.5/components/modeler/bpmn/service-tasks/service-tasks.md b/versioned_docs/version-8.5/components/modeler/bpmn/service-tasks/service-tasks.md index a7160f1598..f445b0a417 100644 --- a/versioned_docs/version-8.5/components/modeler/bpmn/service-tasks/service-tasks.md +++ b/versioned_docs/version-8.5/components/modeler/bpmn/service-tasks/service-tasks.md @@ -19,7 +19,7 @@ A service task must have a `taskDefinition`. The `taskDefinition` is used to spe A `taskDefinition` specifies the following properties: - `type` (required): Used as reference to specify which job workers request the respective service task job. For example, `order-items`. - - `type` can be specified as any [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) (`myType`) or as a FEEL [expression](../../../concepts/expressions.md) prefixed by `=` that evaluates to any FEEL string; for example, `= "order-" + priorityGroup`. + - `type` can be specified as any [static value](/components/concepts/expressions.md#expressions-vs-static-values) (`myType`) or as a FEEL [expression](../../../concepts/expressions.md) prefixed by `=` that evaluates to any FEEL string; for example, `= "order-" + priorityGroup`. - `retries` (optional): Specifies the number of times the job is retried when a worker signals failure. The default is three. The expressions are evaluated on activating the service task and must result in a `string` for the job type and a `number` for the retries. diff --git a/versioned_docs/version-8.5/components/modeler/bpmn/timer-events/timer-events.md b/versioned_docs/version-8.5/components/modeler/bpmn/timer-events/timer-events.md index 76111fc585..30b6b06b9c 100644 --- a/versioned_docs/version-8.5/components/modeler/bpmn/timer-events/timer-events.md +++ b/versioned_docs/version-8.5/components/modeler/bpmn/timer-events/timer-events.md @@ -40,7 +40,7 @@ Non-interrupting timer boundary events are often used to model notifications; fo Timers must be defined by providing either a date, a duration, or a cycle. -A timer can be defined either as a [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `P3D`) or as an [expression](/components/concepts/expressions.md). There are two common ways to use an expression: +A timer can be defined either as a [static value](/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `P3D`) or as an [expression](/components/concepts/expressions.md). There are two common ways to use an expression: - [Access a variable](/components/modeler/feel/language-guide/feel-variables.md#access-variable) (e.g. `= remainingTime`). - [Use temporal values](/components/concepts/expressions.md#temporal-expressions) (e.g. `= date and time(expirationDate) - date and time(creationDate)`). diff --git a/versioned_docs/version-8.5/components/modeler/bpmn/user-tasks/user-tasks.md b/versioned_docs/version-8.5/components/modeler/bpmn/user-tasks/user-tasks.md index 5405c2e5a7..8501d81ed1 100644 --- a/versioned_docs/version-8.5/components/modeler/bpmn/user-tasks/user-tasks.md +++ b/versioned_docs/version-8.5/components/modeler/bpmn/user-tasks/user-tasks.md @@ -39,7 +39,7 @@ attributes can be specified simultaneously: Assignment resources can also be used for set user task restrictions ([SaaS](/components/concepts/access-control/user-task-access-restrictions.md)/[Self-Managed](docs/self-managed/concepts/access-control/user-task-access-restrictions.md)), where users will see only the tasks they have authorization to work on. ::: -Typically, the assignee, candidate users, and candidate groups are defined as [static values](/docs/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `some_username`, `some_username, another_username` and +Typically, the assignee, candidate users, and candidate groups are defined as [static values](/components/concepts/expressions.md#expressions-vs-static-values) (e.g. `some_username`, `some_username, another_username` and `sales, operations`), but they can also be defined as [expressions](/components/concepts/expressions.md) (e.g. `= book.author` and `= remove(reviewers, book.author)` and `= reviewer_roles`). The expressions are evaluated on activating the user task and must result in a `string` for the assignee and a `list of strings` for the candidate users and a `list of strings` for the candidate groups. @@ -108,7 +108,7 @@ Depending on your use case, two different types of form references can be used: of the task's `zeebe:formDefinition` extension element (see the [XML representation](#camunda-form-linked)). Form ID references always refer to the latest deployed version of the Camunda Form. - You can read more about Camunda Forms in the [Camunda Forms guide](/guides/utilizing-forms.md) or the [Camunda Forms reference](/docs/components/modeler/forms/camunda-forms-reference.md) + You can read more about Camunda Forms in the [Camunda Forms guide](/guides/utilizing-forms.md) or the [Camunda Forms reference](/components/modeler/forms/camunda-forms-reference.md) to explore all configuration options for form elements. 2. A **custom form reference** can specify any custom identifier in the user task using the `externalReference` diff --git a/versioned_docs/version-8.5/components/modeler/desktop-modeler/element-templates/c7-defining-templates.md b/versioned_docs/version-8.5/components/modeler/desktop-modeler/element-templates/c7-defining-templates.md index 08503d8b1d..9985150a92 100644 --- a/versioned_docs/version-8.5/components/modeler/desktop-modeler/element-templates/c7-defining-templates.md +++ b/versioned_docs/version-8.5/components/modeler/desktop-modeler/element-templates/c7-defining-templates.md @@ -459,6 +459,36 @@ Together with the `pattern` constraint, you may define your custom error message ] ``` +### Placeholder + +The following property types support the `placeholder` attribute: + +- `String` +- `Text` + +The attribute is supported for the following binding types: + +- `property` +- `camunda:property` +- `camunda:in` +- `camunda:in:businessKey` +- `camunda:out` +- `camunda:field` + +The placeholder is displayed when a field is empty: + +```json +... + "properties": [ + { + "label": "Web service URL", + "type": "String", + "binding": { ... }, + "placeholder": "https://example.com" + } + ] +``` + ### Display all entries Per default, the element template defines the visible entries of the properties panel. All other property controls are hidden. If you want to bring all the default entries back, it is possible to use the `entriesVisible` property. diff --git a/versioned_docs/version-8.5/components/modeler/desktop-modeler/element-templates/defining-templates.md b/versioned_docs/version-8.5/components/modeler/desktop-modeler/element-templates/defining-templates.md index 89cdc18b4a..0a42b0c7ff 100644 --- a/versioned_docs/version-8.5/components/modeler/desktop-modeler/element-templates/defining-templates.md +++ b/versioned_docs/version-8.5/components/modeler/desktop-modeler/element-templates/defining-templates.md @@ -569,6 +569,27 @@ Together with the `pattern` constraint, you can define your custom error message ] ``` +### Placeholder + +The following property types support the `placeholder` attribute: + +- `String` +- `Text` + +The placeholder is displayed when a field is empty: + +```json +... + "properties": [ + { + "label": "Web service URL", + "type": "String", + "binding": { ... }, + "placeholder": "https://example.com" + } + ] +``` + ### Icons It is possible to define custom icons to update the visual appearance of elements after applying an element template. diff --git a/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-boolean-expressions.md b/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-boolean-expressions.md index 36bed6808f..a02342ee68 100644 --- a/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-boolean-expressions.md +++ b/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-boolean-expressions.md @@ -222,7 +222,7 @@ duration("PT4H") instance of days and time duration ### Unary-tests/in -Evaluates a [unary-tests](/docs/components/modeler/feel/language-guide/feel-unary-tests) with the given value. The keyword `in` separates the value from the unary-tests. +Evaluates a [unary-tests](/components/modeler/feel/language-guide/feel-unary-tests.md) with the given value. The keyword `in` separates the value from the unary-tests. ```feel 5 in (3..7) diff --git a/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-error-handling.md b/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-error-handling.md index 67eb0a2c4f..3eafb07a29 100644 --- a/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-error-handling.md +++ b/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-error-handling.md @@ -36,8 +36,8 @@ a.b > 10 ``` To handle `null` values explicitly, use -a [null-check](/docs/components/modeler/feel/language-guide/feel-boolean-expressions.md#null-check) or the -function [`get or else()`](/docs/components/modeler/feel/builtin-functions/feel-built-in-functions-boolean.md#get-or-elsevalue-default). +a [null-check](/components/modeler/feel/language-guide/feel-boolean-expressions.md#null-check) or the +function [`get or else()`](/components/modeler/feel/builtin-functions/feel-built-in-functions-boolean.md#get-or-elsevalue-default). ```feel a != null and a.b > 10 @@ -49,7 +49,7 @@ get or else(a, "prio-99") By default, the evaluation of an expression doesn't fail but returns `null`. If there is a special need to fail the evaluation under a certain condition, use the -function [`assert()`](/docs/components/modeler/feel/builtin-functions/feel-built-in-functions-boolean.md#assertvalue-condition). +function [`assert()`](/components/modeler/feel/builtin-functions/feel-built-in-functions-boolean.md#assertvalue-condition). ```feel assert(a, a != null) diff --git a/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-functions.md b/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-functions.md index 20b5fa5ae1..7169b33121 100644 --- a/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-functions.md +++ b/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-functions.md @@ -6,7 +6,7 @@ description: "This document outlines various functions and examples." ### Invocation -Invokes a built-in function (e.g. [`contains()`](/docs/components/modeler/feel/builtin-functions/feel-built-in-functions-string.md#containsstring-match)) or a user-defined +Invokes a built-in function (e.g. [`contains()`](/components/modeler/feel/builtin-functions/feel-built-in-functions-string.md#containsstring-match)) or a user-defined function by its name. The arguments of the function can be passed positional or named. - Positional: Only the values, in the same order as defined by the function (e.g. `f(1,2)`). diff --git a/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-string-expressions.md b/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-string-expressions.md index 2ee096f690..7e05f77750 100644 --- a/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-string-expressions.md +++ b/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-string-expressions.md @@ -24,7 +24,7 @@ An addition concatenates the strings. The result is a string containing the char :::tip The concatenation is only available for string values. For other types, you can use -the [`string()`](/docs/components/modeler/feel/builtin-functions/feel-built-in-functions-conversion.md#stringfrom) function to convert +the [`string()`](/components/modeler/feel/builtin-functions/feel-built-in-functions-conversion.md#stringfrom) function to convert the value into a string first. ```feel diff --git a/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-unary-tests.md b/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-unary-tests.md index 8d00e20121..3c66b8bf92 100644 --- a/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-unary-tests.md +++ b/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-unary-tests.md @@ -129,7 +129,7 @@ not(2, 3) ### Expressions -Evaluates an expression that returns a boolean value. For example, [invoking a function](/docs/components/modeler/feel/language-guide/feel-functions#invocation). +Evaluates an expression that returns a boolean value. For example, [invoking a function](/components/modeler/feel/language-guide/feel-functions.md#invocation). The input value can be accessed in the expression by using the symbol `?` (a question mark). diff --git a/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-variables.md b/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-variables.md index f947f460f6..2e72a68ff3 100644 --- a/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-variables.md +++ b/versioned_docs/version-8.5/components/modeler/feel/language-guide/feel-variables.md @@ -14,7 +14,7 @@ Access the value of a variable by its variable name. a + b ``` -If the value of the variable is a context, a [context entry can be accessed](/docs/components/modeler/feel/language-guide/feel-context-expressions#get-entrypath) by its key. +If the value of the variable is a context, a [context entry can be accessed](/components/modeler/feel/language-guide/feel-context-expressions.md#get-entrypath) by its key. ```feel a.b @@ -24,7 +24,7 @@ If no variable exists with the given name, the expression returns `null`. :::tip -Use a [null-check](/docs/components/modeler/feel/language-guide/feel-boolean-expressions#null-check) if the variable can be `null` or is optional. +Use a [null-check](/components/modeler/feel/language-guide/feel-boolean-expressions.md#null-check) if the variable can be `null` or is optional. ```feel a != null and a.b > 10 @@ -67,7 +67,7 @@ order.`total price` ``` :::tip -Use the [`get value()`](/docs/components/modeler/feel/builtin-functions/feel-built-in-functions-context.md#get-valuecontext-key) function +Use the [`get value()`](/components/modeler/feel/builtin-functions/feel-built-in-functions-context.md#get-valuecontext-key) function to retrieve the context value of an arbitrary key. ```feel diff --git a/versioned_docs/version-8.5/components/modeler/feel/what-is-feel.md b/versioned_docs/version-8.5/components/modeler/feel/what-is-feel.md index 3c9cf72679..88546e0058 100644 --- a/versioned_docs/version-8.5/components/modeler/feel/what-is-feel.md +++ b/versioned_docs/version-8.5/components/modeler/feel/what-is-feel.md @@ -6,14 +6,14 @@ description: "FEEL is a part of DMN specification of the Object Management Group import { MarkerCamundaExtension } from "@site/src/mdx/MarkerCamundaExtension"; -**Friendly Enough Expression Language (FEEL)** is designed to write expressions in a way that is easily understood by both business professionals and developers. In Camunda, FEEL is used to define expressions in the context of [BPMN diagrams](/docs/components/modeler/bpmn/bpmn.md), [DMN diagrams](/docs/components/modeler/dmn/dmn.md), and [Forms](/docs/components/modeler/forms/camunda-forms-reference.md). FEEL is specified in +**Friendly Enough Expression Language (FEEL)** is designed to write expressions in a way that is easily understood by both business professionals and developers. In Camunda, FEEL is used to define expressions in the context of [BPMN diagrams](/components/modeler/bpmn/bpmn.md), [DMN diagrams](/components/modeler/dmn/dmn.md), and [Forms](/components/modeler/forms/camunda-forms-reference.md). FEEL is specified in the [DMN specification](https://www.omg.org/spec/DMN/) of the Object Management Group (OMG). ## Learning FEEL To understand FEEL better and how it is integrated into Camunda, you can explore the following resources: -- [Expressions in Camunda 8](/docs/components/concepts/expressions.md): Learn how expressions are used within our platform. +- [Expressions in Camunda 8](/components/concepts/expressions.md): Learn how expressions are used within our platform. - [FEEL syntax and operators](./language-guide/feel-expressions-introduction.md): Learn how to write basic expression. - [Built-in functions](./builtin-functions/feel-built-in-functions-introduction.md): Read about functions the FEEL engine offers. diff --git a/versioned_docs/version-8.5/components/modeler/forms/form-element-library/forms-element-library-image.md b/versioned_docs/version-8.5/components/modeler/forms/form-element-library/forms-element-library-image.md index 61e461f721..3becca2d45 100644 --- a/versioned_docs/version-8.5/components/modeler/forms/form-element-library/forms-element-library-image.md +++ b/versioned_docs/version-8.5/components/modeler/forms/form-element-library/forms-element-library-image.md @@ -10,7 +10,7 @@ An element allowing the user to display images. ## Configurable properties -- **Image source**: Specifies the image source via [expression](../../feel/language-guide/feel-expressions-introduction.md), [templating syntax](../configuration/forms-config-templating-syntax.md) or [static value](/docs/components/concepts/expressions.md#expressions-vs-static-values) (hyperlink or data URI). +- **Image source**: Specifies the image source via [expression](../../feel/language-guide/feel-expressions-introduction.md), [templating syntax](../configuration/forms-config-templating-syntax.md) or [static value](/components/concepts/expressions.md#expressions-vs-static-values) (hyperlink or data URI). - **Alternative text**: Provides an alternative text to the image in case it cannot be displayed. Can either be an [expression](../../feel/language-guide/feel-expressions-introduction.md), plain text, or [templating syntax](../configuration/forms-config-templating-syntax.md). - **Hide if**: [Expression](../../feel/language-guide/feel-expressions-introduction.md) to hide the image. - **Columns**: Space the field will use inside its row. **Auto** means it will automatically adjust to available space in the row. Read more about the underlying grid layout in the [Carbon Grid documentation](https://carbondesignsystem.com/guidelines/2x-grid/overview). diff --git a/versioned_docs/version-8.5/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md b/versioned_docs/version-8.5/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md index 4db6230d9d..a93ab98c9f 100644 --- a/versioned_docs/version-8.5/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md +++ b/versioned_docs/version-8.5/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md @@ -37,7 +37,7 @@ To create a form for public access, follow these steps: 4. Design your form using the **component palette**. 5. [Link form to start event](/components/modeler/web-modeler/advanced-modeling/form-linking.md#using-the-link-button). -Once ready, return to your process. You can read more about form creation in the [form guide](/docs/guides/utilizing-forms.md). +Once ready, return to your process. You can read more about form creation in the [form guide](/guides/utilizing-forms.md). ## Enable public access diff --git a/versioned_docs/version-8.5/components/modeler/web-modeler/camunda-marketplace.md b/versioned_docs/version-8.5/components/modeler/web-modeler/camunda-marketplace.md index 7794523e9f..aeaf0878b6 100644 --- a/versioned_docs/version-8.5/components/modeler/web-modeler/camunda-marketplace.md +++ b/versioned_docs/version-8.5/components/modeler/web-modeler/camunda-marketplace.md @@ -6,7 +6,7 @@ description: "Visit the Camunda Marketplace to browse and filter all available C While modeling a process, you can click into the Camunda Marketplace to browse through Connectors provided by Camunda engineering, discover Connectors developed by Camunda partners, and explore Connectors developed by the Camunda community. -This may ease your process of selecting which Connectors to integrate into your process, as you can filter by creator, [inbound versus outbound Connectors](/docs/components/connectors/connector-types.md), [runtime](/docs/components/connectors/introduction.md), and Camunda versions that include specific out-of-the-box Connectors. +This may ease your process of selecting which Connectors to integrate into your process, as you can filter by creator, [inbound versus outbound Connectors](/components/connectors/connector-types.md), [runtime](/components/connectors/introduction.md), and Camunda versions that include specific out-of-the-box Connectors. :::note The Camunda Marketplace can be accessed via your [browser](https://marketplace.camunda.com/) and directly from Web Modeler while building BPMN diagrams. This guide steps through accessing the Camunda Marketplace **directly from your BPMN diagram**. Therefore, screenshots and filters in this guide may appear slightly different from the browser-accessed Camunda Marketplace (though there are no functional differences). @@ -21,7 +21,7 @@ To navigate to the Camunda Marketplace, take the following steps: 3. Change the type of existing task by clicking on it and using the **wrench-shaped** change type context menu icon, or create a new Connector task by using the **Append Connector** context menu. Follow our [guide to using Connectors](/components/connectors/use-connectors/index.md) to learn more. 4. Click the blue shop icon next to **Change element** to open the Camunda Marketplace modal. ![marketplace icon](./img/marketplace-icon.png) -5. Browse [available Connectors](/docs/components/connectors/out-of-the-box-connectors/available-connectors-overview.md), tick the boxes on the left side of the modal to implement filters, and search for a specific Connector by typing in the **Search for a connector** search bar. +5. Browse [available Connectors](/components/connectors/out-of-the-box-connectors/available-connectors-overview.md), tick the boxes on the left side of the modal to implement filters, and search for a specific Connector by typing in the **Search for a connector** search bar. ![camunda marketplace](./img/connector-marketplace.png) :::note @@ -35,9 +35,9 @@ Once you find a Connector you want to integrate into your BPMN diagram, click ** Scroll down in the change type context menu and click on your downloaded Connector to change the type of existing task. You can then add the required details in the properties panel on the right side of the screen. :::note -You can also host custom Connectors developed with [Connector SDK](/docs/components/connectors/custom-built-connectors/connector-sdk.md). Instead of viewing **Download to project**, it may read [**Learn more about self-hosted Connectors**](/docs/guides/host-custom-connector.md). +You can also host custom Connectors developed with [Connector SDK](/components/connectors/custom-built-connectors/connector-sdk.md). Instead of viewing **Download to project**, it may read [**Learn more about self-hosted Connectors**](/guides/host-custom-connector.md). -For the out-of-the-box Connectors provided by Camunda, the Connectors Bundle project provides a set of all Connector templates related to one release version. These are templates that are reusing the Camunda Connectors via the [Protocol Connector Approach](/docs/components/connectors/protocol/rest.md). +For the out-of-the-box Connectors provided by Camunda, the Connectors Bundle project provides a set of all Connector templates related to one release version. These are templates that are reusing the Camunda Connectors via the [Protocol Connector Approach](/components/connectors/protocol/rest.md). This means a developer created a template and reused one of the Camunda Connector runtimes. Only for these templates is direct **Download to project** available. ::: @@ -49,6 +49,6 @@ After downloading, you may view a modal reading **Connector already exists**: ## Additional resources -- Learn more about our [available out-of-the-box Connectors](/docs/components/connectors/out-of-the-box-connectors/available-connectors-overview.md). -- Understand different [Connector types](/docs/components/connectors/connector-types.md) -- Learn how to modify BPMN elements with [Connector templates](/docs/components/connectors/custom-built-connectors/connector-templates.md) to create custom modeling experiences. +- Learn more about our [available out-of-the-box Connectors](/components/connectors/out-of-the-box-connectors/available-connectors-overview.md). +- Understand different [Connector types](/components/connectors/connector-types.md) +- Learn how to modify BPMN elements with [Connector templates](/components/connectors/custom-built-connectors/connector-templates.md) to create custom modeling experiences. diff --git a/versioned_docs/version-8.5/components/tasklist/introduction-to-tasklist.md b/versioned_docs/version-8.5/components/tasklist/introduction-to-tasklist.md index 9392e121df..4b6e65eaa7 100644 --- a/versioned_docs/version-8.5/components/tasklist/introduction-to-tasklist.md +++ b/versioned_docs/version-8.5/components/tasklist/introduction-to-tasklist.md @@ -10,4 +10,4 @@ With Tasklist, orchestrate human workflows critical to your business and reduce As you model a business process using BPMN and deploy it to the engine, users are notified in Tasklist when they're assigned a task, and run the work that's required for the specific task. -You are not limited to use the [Tasklist user interface](/docs/components/tasklist/userguide/using-tasklist.md). You can extend your case or build a fully custom application using the APIs. Tasklist provides a [REST API](/docs/apis-tools/tasklist-api-rest/tasklist-api-rest-overview.md) for task and variable queries, and together with the Zeebe API, tasks can be assigned, updated, and completed. Learn more in the [frontend developer documentation](/apis-tools/frontend-development/01-task-applications/01-introduction-to-task-applications.md). +You are not limited to use the [Tasklist user interface](/components/tasklist/userguide/using-tasklist.md). You can extend your case or build a fully custom application using the APIs. Tasklist provides a [REST API](/apis-tools/tasklist-api-rest/tasklist-api-rest-overview.md) for task and variable queries, and together with the Zeebe API, tasks can be assigned, updated, and completed. Learn more in the [frontend developer documentation](/apis-tools/frontend-development/01-task-applications/01-introduction-to-task-applications.md). diff --git a/versioned_docs/version-8.5/components/tasklist/userguide/starting-processes.md b/versioned_docs/version-8.5/components/tasklist/userguide/starting-processes.md index 3380317249..58fd68a236 100644 --- a/versioned_docs/version-8.5/components/tasklist/userguide/starting-processes.md +++ b/versioned_docs/version-8.5/components/tasklist/userguide/starting-processes.md @@ -15,14 +15,14 @@ In the **Search** box, it's possible to filter the processes based on their name Using **Additional filters** it is possible to filter processes by other attributes: - All processes: Shows all processes which match the search criteria. -- Requires form input to start: Filters processes to ones which have a [linked or embedded Camunda Form](/docs/components/modeler/web-modeler/advanced-modeling/form-linking.md) on the start event. +- Requires form input to start: Filters processes to ones which have a [linked or embedded Camunda Form](/components/modeler/web-modeler/advanced-modeling/form-linking.md) on the start event. - Does not require form input to start: Filter process to ones which do not have a Camunda Form on the start event. To start a process, click **Start process** on the process you want to start. ![tasklist-processes-start](img/tasklist-processes-start.png) -If the start event of this process contains a [linked or embedded Camunda Form](/docs/components/modeler/web-modeler/advanced-modeling/form-linking.md), a modal window containing that form will automatically open. +If the start event of this process contains a [linked or embedded Camunda Form](/components/modeler/web-modeler/advanced-modeling/form-linking.md), a modal window containing that form will automatically open. ![tasklist-processes-start-with-form](img/tasklist-processes-start-with-form.png) @@ -40,7 +40,7 @@ There could be multiple reasons why you are not seeing any process in the **Proc - There is no process deployed to your environment. -- Permissions to start a process are managed in [Identity](/docs/self-managed/identity/user-guide/authorizations/managing-resource-authorizations.md) for Self-Managed, and in [Console](/docs/components/console/manage-organization/manage-users.md) for SaaS. It is likely your user does not yet have privileges to start processes on Tasklist. +- Permissions to start a process are managed in [Identity](/self-managed/identity/user-guide/authorizations/managing-resource-authorizations.md) for Self-Managed, and in [Console](/components/console/manage-organization/manage-users.md) for SaaS. It is likely your user does not yet have privileges to start processes on Tasklist. For all the above scenarios, contact your administrator to understand why no processes are displayed. @@ -48,7 +48,7 @@ For all the above scenarios, contact your administrator to understand why no pro Camunda 8 SaaS only -Tasklist offers a convenient method to start processes with a form using a public URL. This functionality relies on process configuration performed in [Web Modeler](/docs/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md), enabling users to create and manage processes. +Tasklist offers a convenient method to start processes with a form using a public URL. This functionality relies on process configuration performed in [Web Modeler](/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md), enabling users to create and manage processes. In scenarios where processes can be triggered through a form, Tasklist hosts the form on a URL that is accessible to all users, eliminating the need for authentication. By submitting the form, the associated process is launched. This feature proves advantageous when you want to expose processes to users outside your organization, as it allows anyone to start a process. @@ -56,7 +56,7 @@ In scenarios where processes can be triggered through a form, Tasklist hosts the #### Process configuration and deployment -To enable the public exposure of a process, the first step involves configuring it to be initiated via a form. This configuration is performed during the process design phase using [Web Modeler](/docs/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md). +To enable the public exposure of a process, the first step involves configuring it to be initiated via a form. This configuration is performed during the process design phase using [Web Modeler](/components/modeler/web-modeler/advanced-modeling/publish-public-processes.md). #### Accessing and submitting the form diff --git a/versioned_docs/version-8.5/guides/configuring-out-of-the-box-connector.md b/versioned_docs/version-8.5/guides/configuring-out-of-the-box-connector.md index c117ae5278..00042cc593 100644 --- a/versioned_docs/version-8.5/guides/configuring-out-of-the-box-connector.md +++ b/versioned_docs/version-8.5/guides/configuring-out-of-the-box-connector.md @@ -11,12 +11,12 @@ keywords: [connector, modeling, connectors, low-code, no-code] The launch of [Camunda 8](../components/concepts/what-is-camunda-8.md) also introduced an integration framework with a key goal: integrate faster to reduce the time it takes to automate and orchestrate business processes across systems. :::note -New to Connectors? Review our [introduction to Connectors](/docs/components/connectors/introduction.md) to get familiar with their capabilities. +New to Connectors? Review our [introduction to Connectors](/components/connectors/introduction.md) to get familiar with their capabilities. ::: [Connectors](../components/connectors/introduction.md) achieve this goal. Ready to use out of the box, Connectors help automate complex [business processes](../components/concepts/processes.md) by inserting them into [BPMN diagrams](./automating-a-process-using-bpmn.md) within [Web Modeler](../components/modeler/about-modeler.md), and configuring them via the properties panel. -You can also orchestrate APIs, for example by working with a [REST Connector](/docs/guides/getting-started-orchestrate-apis.md). Learn more about [types of Connectors](/docs/components/connectors/connector-types.md). +You can also orchestrate APIs, for example by working with a [REST Connector](/guides/getting-started-orchestrate-apis.md). Learn more about [types of Connectors](/components/connectors/connector-types.md). Connectors technically consist of two parts: the business logic is implemented as a [job worker](../components/concepts/job-workers.md), and the user interface during modeling is provided using an element template. In this guide, we'll walk step-by-step through the implementation of a sample Connector. @@ -105,7 +105,7 @@ In [Operate](../components/operate/operate-introduction.md), you will now see th ## Additional resources and next steps -- [Use Connectors in your BPMN process](/docs/components/connectors/use-connectors/index.md) +- [Use Connectors in your BPMN process](/components/connectors/use-connectors/index.md) - [Available Connectors](../components/connectors/out-of-the-box-connectors/available-connectors-overview.md) - [Connectors & Integration Framework](https://camunda.com/platform/modeler/connectors/) - [Camunda BPMN Tutorial](https://camunda.com/bpmn/) diff --git a/versioned_docs/version-8.5/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md b/versioned_docs/version-8.5/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md index 9d4a484a8c..a91f8d177f 100644 --- a/versioned_docs/version-8.5/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md +++ b/versioned_docs/version-8.5/guides/devops-lifecycle/integrate-web-modeler-in-ci-cd.md @@ -27,7 +27,7 @@ Each pipeline is unique. The Web Modeler API offers flexibility to tailor integr - A platform to host a version control system (VCS) such as GitHub or GitLab. - An existing pipeline or a plan to set one up using tools like [CircleCI](https://circleci.com/) or [Jenkins](https://www.jenkins.io/), cloud platforms such as [Azure DevOps Pipelines](https://azure.microsoft.com/de-de/products/devops), or built-in solutions of VCS platforms like [GitHub Actions](https://github.com/features/actions) or [GitLab's DevSecOps Lifecycle](https://about.gitlab.com/stages-devops-lifecycle/). - Make yourself familiar with the [Web Modeler API](/apis-tools/web-modeler-api/index.md) through the [OpenAPI documentation](https://modeler.cloud.camunda.io/swagger-ui/index.html). -- Understand how [clusters](/docs/next/components/concepts/clusters/) work in Camunda 8. +- Understand how [clusters](/components/concepts/clusters.md) work in Camunda 8. - Ensure you’ve [created a Camunda 8 account](/guides/create-account.md), or installed [Camunda 8 Self-Managed](/self-managed/about-self-managed.md). ## Setup diff --git a/versioned_docs/version-8.5/guides/getting-started-orchestrate-apis.md b/versioned_docs/version-8.5/guides/getting-started-orchestrate-apis.md index ec3fbe4410..fd2fc19402 100644 --- a/versioned_docs/version-8.5/guides/getting-started-orchestrate-apis.md +++ b/versioned_docs/version-8.5/guides/getting-started-orchestrate-apis.md @@ -12,13 +12,13 @@ keywords: import clsx from "clsx"; -This guide will walk you through working with a REST Connector task as a first time Camunda 8 user. The REST Connector is a [protocol Connector](/docs/components/connectors/out-of-the-box-connectors/available-connectors-overview.md#protocol-connectors), where you can make a request to a REST API and use the response in the next steps of your process. +This guide will walk you through working with a REST Connector task as a first time Camunda 8 user. The REST Connector is a [protocol Connector](/components/connectors/out-of-the-box-connectors/available-connectors-overview.md#protocol-connectors), where you can make a request to a REST API and use the response in the next steps of your process. :::note -New to Connectors? Review our [introduction to Connectors](/docs/components/connectors/introduction.md) to get familiar with their capabilities, and have a closer look at all of the available [out-of-the-box Connectors](/docs/components/connectors/out-of-the-box-connectors/available-connectors-overview.md). +New to Connectors? Review our [introduction to Connectors](/components/connectors/introduction.md) to get familiar with their capabilities, and have a closer look at all of the available [out-of-the-box Connectors](/components/connectors/out-of-the-box-connectors/available-connectors-overview.md). ::: -The concept of a Connector consists of two parts: the business logic is implemented as a job worker, and the user interface during modeling is provided using an element template. In this guide, you will create a REST Connector task in your process, handle the HTTP response, and deploy your process. New to creating a process? Get started by [modeling your first diagram](/docs/guides/model-your-first-process.md). +The concept of a Connector consists of two parts: the business logic is implemented as a job worker, and the user interface during modeling is provided using an element template. In this guide, you will create a REST Connector task in your process, handle the HTTP response, and deploy your process. New to creating a process? Get started by [modeling your first diagram](/guides/model-your-first-process.md). ## Create a REST Connector task @@ -85,5 +85,5 @@ Don't want to build the process yourself? Click this button to create it from a ## Additional resources and next steps - Learn more about Camunda 8 and what it can do by reading [What is Camunda 8](/components/concepts/what-is-camunda-8.md) or watching our [Overview video](https://bit.ly/3TjNEm7) in Camunda Academy. -- [Learn about types of Connectors](/docs/components/connectors/connector-types.md) -- [Use Connectors in your BPMN process](/docs/components/connectors/use-connectors/index.md) +- [Learn about types of Connectors](/components/connectors/connector-types.md) +- [Use Connectors in your BPMN process](/components/connectors/use-connectors/index.md) diff --git a/versioned_docs/version-8.5/guides/migrating-from-camunda-7/conceptual-differences.md b/versioned_docs/version-8.5/guides/migrating-from-camunda-7/conceptual-differences.md index e018863f40..bbd37c2c08 100644 --- a/versioned_docs/version-8.5/guides/migrating-from-camunda-7/conceptual-differences.md +++ b/versioned_docs/version-8.5/guides/migrating-from-camunda-7/conceptual-differences.md @@ -78,7 +78,7 @@ This is visualized on the lefthand side of the picture below. With Camunda 8, a ![spring boot](../img/architecture-spring-boot.png) -The difference is that the engine is no longer embedded, which is also our latest [greenfield stack recommendation in Camunda 7](/docs/components/best-practices/architecture/deciding-about-your-stack-c7/#the-java-greenfield-stack). If you are interested in the reasons why we switched our recommendation from embedded to remote workflow engines, refer to [this blog post](https://blog.bernd-ruecker.com/moving-from-embedded-to-remote-workflow-engines-8472992cc371). +The difference is that the engine is no longer embedded, which is also our latest [greenfield stack recommendation in Camunda 7](/components/best-practices/architecture/deciding-about-your-stack-c7.md#the-java-greenfield-stack). If you are interested in the reasons why we switched our recommendation from embedded to remote workflow engines, refer to [this blog post](https://blog.bernd-ruecker.com/moving-from-embedded-to-remote-workflow-engines-8472992cc371). The packaging of a process solution is the same with Camunda 7 and Camunda 8. Your process solution is one Java application that consists of your BPMN and DMN models, as well as all glue code needed for connectivity or data transformation. The big difference is that the configuration of the workflow engine itself is not part of the Spring Boot application anymore. diff --git a/versioned_docs/version-8.5/guides/migrating-from-cawemo.md b/versioned_docs/version-8.5/guides/migrating-from-cawemo.md index 9b88780ac1..11d4c4330c 100644 --- a/versioned_docs/version-8.5/guides/migrating-from-cawemo.md +++ b/versioned_docs/version-8.5/guides/migrating-from-cawemo.md @@ -22,7 +22,7 @@ Data access and transition deadline: This means that you have until the 30th of **Transition Options:** -- Move to [Web Modeler](/docs/components/modeler/web-modeler/launch-web-modeler.md): Experience the combined power of Cawemo and our Desktop Modeler in a seamless, collaborative environment. For modeling only or Camunda 8 processes. +- Move to [Web Modeler](/components/modeler/web-modeler/launch-web-modeler.md): Experience the combined power of Cawemo and our Desktop Modeler in a seamless, collaborative environment. For modeling only or Camunda 8 processes. - Move to [Desktop Modeler](/components/modeler/desktop-modeler/install-the-modeler.md): Opt for a standalone BPMN modeling experience. Support both Camunda 7 and Camunda 8 processes. - Move to Cawemo On-Premise: Continue with the familiar Cawemo environment, for modeling only or Camunda 7 processes. Please note that support for Cawemo On-Premise aligns with Camunda 7 timelines. diff --git a/versioned_docs/version-8.5/reference/announcements.md b/versioned_docs/version-8.5/reference/announcements.md index 61fe9971a9..ae74be7c71 100644 --- a/versioned_docs/version-8.5/reference/announcements.md +++ b/versioned_docs/version-8.5/reference/announcements.md @@ -94,7 +94,7 @@ were deprecated in `8.4`. Please use the dedicated Camunda Identity properties o ### Versioning changes in Elasticsearch -As of the 8.4 release, Camunda is compatible with Elasticsearch 8.9+ and no longer supports older Elasticsearch versions. See [supported environments](/docs/reference/supported-environments.md). +As of the 8.4 release, Camunda is compatible with Elasticsearch 8.9+ and no longer supports older Elasticsearch versions. See [supported environments](/reference/supported-environments.md). ### Support for Amazon OpenSearch @@ -219,47 +219,3 @@ For Optimize 3.10.1, a new environment variable introduced redirection URL. Howe | Optimize 3.10.1 & Optimize 3.10.2 | 8.2.0 - 8.2.8 | | Optimize 3.10.3+ | 8.2.9 - 8.2.22 | | Optimize 8.2.7+ | 8.2.23+ | - -## Camunda 8.1 - -Release date: 11th of October 2022 - -End of maintenance: 10th of April 2024 - -[Release notes](https://github.com/camunda/camunda-platform/releases/tag/8.1.0) -[Release blog](https://camunda.com/blog/2022/10/camunda-platform-8-1-released-whats-new/) - -### Do not update to Camunda 8.1.23 - -:::caution -Zeebe release `8.1.23` suffers from [camunda/zeebe#16406](https://github.com/camunda/camunda/issues/16406), which results in a Zeebe broker being unable to start if at least one DMN model is deployed. We urge users to skip this release and update to `8.1.24` right away. -::: - -## Camunda 8.0 - -Release date: 12th of April 2022 - -End of maintenance: 11th of October 2023 - -[Release notes](https://github.com/camunda/camunda-platform/releases/tag/8.0.0) -[Release blog](https://camunda.com/blog/2022/04/camunda-platform-8-0-released-whats-new/) - -### Camunda 8.0.15 release is skipped - -The `Camunda 8.0.15` release pipeline lead to corrupted `Zeebe 8.0.15` artifacts getting published. -The whole [Camunda 8.0.15 release](https://github.com/camunda/camunda-platform/releases/tag/8.0.15) was thus skipped and updates from `Camunda 8.0.14` should go straight to `Camunda 8.0.16`. - -### Deprecated in 8.0 - -The [DeployProcess RPC](/apis-tools/zeebe-api/gateway-service.md#deployprocess-rpc) was deprecated in 8.0. -It is replaced by the [DeployResource RPC](/apis-tools/zeebe-api/gateway-service.md#deployresource-rpc). - -## Camunda Cloud 1.3 - -Release date: 11th of January 2022 - -Camunda Cloud is out of maintenance. - -### Deprecated in 1.3 - -The `zeebe-test` module was deprecated in 1.3.0. We are currently planning to remove `zeebe-test` for the 1.4.0 release. diff --git a/versioned_docs/version-8.5/reference/release-notes/850.md b/versioned_docs/version-8.5/reference/release-notes/850.md index ad24b57f4f..5733a7f94c 100644 --- a/versioned_docs/version-8.5/reference/release-notes/850.md +++ b/versioned_docs/version-8.5/reference/release-notes/850.md @@ -6,7 +6,7 @@ description: "Release notes for 8.5, including alphas" ## 8.5 minor -| Release date | End of maintenance | Changelog(s) | | +| Release date | End of maintenance | Changelog(s) | Release blog | | ------------ | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | | 9 April 2024 | 14 October 2025 | -[ Camunda 8 Core ](https://github.com/camunda/camunda-platform/releases/tag/8.5.0)
-[ Connectors ](https://github.com/camunda/connectors/releases/tag/8.5.0)
- [ Optimize ](https://github.com/camunda/camunda-optimize/releases/tag/3.13.0) | [Release blog](https://camunda.com/blog/2024/04/camunda-8-5-release/) | @@ -256,7 +256,7 @@ This update introduces a new context pad, designed to make modeling actions like ## 8.5.0-alpha1 -| Release date | Changelog(s) | | +| Release date | Changelog(s) | Release blog | | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | | 13 February 2024 | - [ Camunda 8 core ](https://github.com/camunda/camunda-platform/releases/tag/8.5.0-alpha1)
- [ Connectors ](https://github.com/camunda/connectors/releases/tag/8.5.0-alpha1) | [Release blog](https://camunda.com/blog/2024/02/camunda-alpha-release-february-2024/) | diff --git a/versioned_docs/version-8.5/reference/release-policy.md b/versioned_docs/version-8.5/reference/release-policy.md index 454542308d..670429601b 100644 --- a/versioned_docs/version-8.5/reference/release-policy.md +++ b/versioned_docs/version-8.5/reference/release-policy.md @@ -30,7 +30,7 @@ These components include: - Connectors - Console -Admins can [enable alpha features](/docs/components/console/manage-organization/enable-alpha-features.md) for components outside of the cluster in the organization settings screen. +Admins can [enable alpha features](/components/console/manage-organization/enable-alpha-features.md) for components outside of the cluster in the organization settings screen. For components inside a **cluster**, Camunda provides two channels for provisioning and follows the [Camunda release policy](https://camunda.com/release-policy/): diff --git a/versioned_docs/version-8.5/self-managed/concepts/access-control/user-task-access-restrictions.md b/versioned_docs/version-8.5/self-managed/concepts/access-control/user-task-access-restrictions.md index 2d3acbf286..8dcab6786e 100644 --- a/versioned_docs/version-8.5/self-managed/concepts/access-control/user-task-access-restrictions.md +++ b/versioned_docs/version-8.5/self-managed/concepts/access-control/user-task-access-restrictions.md @@ -7,6 +7,7 @@ description: "Control the level of access a user or group has to perform tasks i :::caution User task access restrictions are enabled by default and can be disabled using environment variables. This feature is controlled in the required component, see [Identity feature flags](../../../../self-managed/identity/deployment/configuration-variables/#feature-flags). +This configuration does not affect API users. When retrieving tasks using the APIs, all tasks are returned. ::: User task access restrictions allow you to control the level of access a [user](/self-managed/identity/user-guide/roles/add-assign-role.md) or diff --git a/versioned_docs/version-8.5/self-managed/identity/user-guide/configuration/connect-to-an-existing-keycloak.md b/versioned_docs/version-8.5/self-managed/identity/user-guide/configuration/connect-to-an-existing-keycloak.md index 1bc276fe5b..1173b3be59 100644 --- a/versioned_docs/version-8.5/self-managed/identity/user-guide/configuration/connect-to-an-existing-keycloak.md +++ b/versioned_docs/version-8.5/self-managed/identity/user-guide/configuration/connect-to-an-existing-keycloak.md @@ -13,7 +13,7 @@ In this guide, we'll demonstrate how to connect Identity to your existing Keyclo - A basic understanding of [administering realms and clients](https://www.keycloak.org/docs/23.0.1/server_admin/#assembly-managing-clients_server_administration_guide) in Keycloak. :::note -Clients in Camunda 8 SaaS and applications in Camunda 8 Self-Managed provide a similar purpose. One key difference is that for Camunda 8 SaaS, you can set up specific [client connection credentials](/docs/guides/setup-client-connection-credentials.md), whereas in Identity, an application is created with credentials automatically assigned. +Clients in Camunda 8 SaaS and applications in Camunda 8 Self-Managed provide a similar purpose. One key difference is that for Camunda 8 SaaS, you can set up specific [client connection credentials](/guides/setup-client-connection-credentials.md), whereas in Identity, an application is created with credentials automatically assigned. ::: ## Steps @@ -26,7 +26,7 @@ To connect Identity to an existing Keycloak instance, take the following steps: 3. Select **Clients** in the navigation menu, and click the **Create** button to create a new client. 4. Enter a client ID and click **Next**. :::note What client ID should I use? - By default, Identity uses the Client ID `camunda-identity`, so we recommend using this too. If you choose a different client ID, this will need to be set in the Identity application [environment variables](/docs/self-managed/identity/deployment/configuration-variables.md). + By default, Identity uses the Client ID `camunda-identity`, so we recommend using this too. If you choose a different client ID, this will need to be set in the Identity application [environment variables](/self-managed/identity/deployment/configuration-variables.md). ::: ![keycloak-admin-client-add-1](../img/keycloak-admin-client-add-1.png) 5. Toggle **Client authentication** to `on`, select **Service accounts roles** and click **Next**. @@ -42,16 +42,16 @@ To connect Identity to an existing Keycloak instance, take the following steps: Identity is designed to allow users to manage the various entities related to Camunda. To achieve this, it requires specific access to the realm. ::: 10. Navigate to the **Credentials** tab and copy the client secret. -11. Set the `IDENTITY_CLIENT_SECRET` [environment variable](/docs/self-managed/identity/deployment/configuration-variables.md) with the value from **Step 9**. -12. Set the `KEYCLOAK_REALM` [environment variable](/docs/self-managed/identity/deployment/configuration-variables.md) to the realm you selected in **Step 2**. +11. Set the `IDENTITY_CLIENT_SECRET` [environment variable](/self-managed/identity/deployment/configuration-variables.md) with the value from **Step 9**. +12. Set the `KEYCLOAK_REALM` [environment variable](/self-managed/identity/deployment/configuration-variables.md) to the realm you selected in **Step 2**. :::tip If you are using a specific realm, you need to set additional variables to use the intended realm. - See the [environment variables](/docs/self-managed/identity/deployment/configuration-variables.md) page for details of Keycloak-specific variables to consider. + See the [environment variables](/self-managed/identity/deployment/configuration-variables.md) page for details of Keycloak-specific variables to consider. ::: 13. Start Identity. :::note What does Identity create when starting? -Identity creates a base set of configurations required to function successfully. To understand more about what is created and why, see [the starting configuration](/docs/self-managed/identity/deployment/starting-configuration.md). +Identity creates a base set of configurations required to function successfully. To understand more about what is created and why, see [the starting configuration](/self-managed/identity/deployment/starting-configuration.md). ::: ## Considerations diff --git a/versioned_docs/version-8.5/self-managed/modeler/web-modeler/configuration/configuration.md b/versioned_docs/version-8.5/self-managed/modeler/web-modeler/configuration/configuration.md index 70a6f7de8c..d4c99da2a4 100644 --- a/versioned_docs/version-8.5/self-managed/modeler/web-modeler/configuration/configuration.md +++ b/versioned_docs/version-8.5/self-managed/modeler/web-modeler/configuration/configuration.md @@ -70,7 +70,7 @@ Refer to the [advanced Identity configuration guide](./identity.md) for addition ### Zeebe Client -Web Modeler uses the [Zeebe Java client](/docs/apis-tools/java-client/index.md) to connect to Zeebe. +Web Modeler uses the [Zeebe Java client](/apis-tools/java-client/index.md) to connect to Zeebe. To customize the client configuration, you can provide optional environment variables. | Environment variable | Description | Example value | Default Value | @@ -114,13 +114,14 @@ Refer to the [advanced logging configuration guide](./logging.md#logging-configu ### Identity / Keycloak -| Environment variable | Description | Example value | Default value | -| ----------------------- | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ------------- | -| `OAUTH2_CLIENT_ID` | Client ID of the Web Modeler application configured in Identity;
_must be set to_ `web-modeler`. | `web-modeler` | - | -| `OAUTH2_JWKS_URL` | [Internal](#notes-on-host-names-and-port-numbers) URL used to request Keycloak's JSON Web Key Set (for JWT verification). | `http://keycloak:8080/auth/realms/camunda-platform/protocol/openid-connect/certs` | - | -| `OAUTH2_TOKEN_AUDIENCE` | Expected token audience (used for JWT validation);
_must be set to_ `web-modeler`. | `web-modeler` | - | -| `OAUTH2_TOKEN_ISSUER` | URL of the token issuer (used for JWT validation). | `https://keycloak.example.com/auth/realms/camunda-platform` | - | -| `IDENTITY_BASE_URL` | [Internal](#notes-on-host-names-and-port-numbers) base URL of the Identity API (used to fetch user data). | `http://identity:8080` | - | +| Environment variable | Description | Example value | Default value | +| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ------------- | +| `OAUTH2_CLIENT_ID` | Client ID of the Web Modeler application configured in Identity;
_must be set to_ `web-modeler`. | `web-modeler` | - | +| `OAUTH2_CLIENT_FETCH_REQUEST_CREDENTIALS` | [optional]
Configuration whether credentials should be sent along with requests to the OIDC provider, see [documentation](https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials#value). Use this if you are using a proxy that requires cookies. | `include` | - | +| `OAUTH2_JWKS_URL` | [Internal](#notes-on-host-names-and-port-numbers) URL used to request Keycloak's JSON Web Key Set (for JWT verification). | `http://keycloak:8080/auth/realms/camunda-platform/protocol/openid-connect/certs` | - | +| `OAUTH2_TOKEN_AUDIENCE` | Expected token audience (used for JWT validation);
_must be set to_ `web-modeler`. | `web-modeler` | - | +| `OAUTH2_TOKEN_ISSUER` | URL of the token issuer (used for JWT validation). | `https://keycloak.example.com/auth/realms/camunda-platform` | - | +| `IDENTITY_BASE_URL` | [Internal](#notes-on-host-names-and-port-numbers) base URL of the Identity API (used to fetch user data). | `http://identity:8080` | - | Refer to the [advanced Identity configuration guide](./identity.md) for additional details on how to set up secure connections to an external Identity instance or connect a custom OpenID Connect (OIDC) authentication provider. diff --git a/versioned_docs/version-8.5/self-managed/modeler/web-modeler/troubleshooting/troubleshoot-zeebe-connection.md b/versioned_docs/version-8.5/self-managed/modeler/web-modeler/troubleshooting/troubleshoot-zeebe-connection.md index 3de688d89c..22cf9cb38a 100644 --- a/versioned_docs/version-8.5/self-managed/modeler/web-modeler/troubleshooting/troubleshoot-zeebe-connection.md +++ b/versioned_docs/version-8.5/self-managed/modeler/web-modeler/troubleshooting/troubleshoot-zeebe-connection.md @@ -19,7 +19,7 @@ If that works, further debug your Zeebe connection with the help of the informat ### Increase the Zeebe client timeout -Web Modeler uses the [Zeebe Java client](/docs/apis-tools/java-client/index.md) to connect to Zeebe. +Web Modeler uses the [Zeebe Java client](/apis-tools/java-client/index.md) to connect to Zeebe. Depending on your infrastructure, the default timeouts configured may be too short. You can pass custom timeouts in milliseconds for Web Modeler's Zeebe client to `modeler-restapi` via three individual environment variables: diff --git a/versioned_docs/version-8.5/self-managed/operational-guides/troubleshooting/troubleshooting.md b/versioned_docs/version-8.5/self-managed/operational-guides/troubleshooting/troubleshooting.md index 1cfda47a29..b080c12da2 100644 --- a/versioned_docs/version-8.5/self-managed/operational-guides/troubleshooting/troubleshooting.md +++ b/versioned_docs/version-8.5/self-managed/operational-guides/troubleshooting/troubleshooting.md @@ -14,7 +14,7 @@ to be external and therefore require SSL. As the [Camunda Helm Charts](https://github.com/camunda/camunda-platform-helm) currently do not provide support for the distribution of the Keycloak TLS key to the other containers, we recommend viewing the solution available in the -[Identity documentation](/docs/self-managed/identity/troubleshooting/troubleshoot-identity.md#solution-2-identity-making-requests-from-an-external-ip-address). +[Identity documentation](/self-managed/identity/troubleshooting/troubleshoot-identity.md#solution-2-identity-making-requests-from-an-external-ip-address). ## Identity redirect URL diff --git a/versioned_docs/version-8.5/self-managed/operational-guides/update-guide/820-to-830.md b/versioned_docs/version-8.5/self-managed/operational-guides/update-guide/820-to-830.md index e6f27fd28a..4cd5a43ee8 100644 --- a/versioned_docs/version-8.5/self-managed/operational-guides/update-guide/820-to-830.md +++ b/versioned_docs/version-8.5/self-managed/operational-guides/update-guide/820-to-830.md @@ -21,7 +21,7 @@ The update from `8.2.x` to `8.3.x` performs a migration for nearly all entities For more details about the breaking changes in the Helm chart, check the [upgrade page for v8.3.0](/self-managed/setup/upgrade.md#v830-minor). :::note -Camunda is compatible with Elasticsearch 8.8+ (see [supported environments](/docs/reference/supported-environments.md)) which you can [download here](https://www.elastic.co/downloads/past-releases/elasticsearch-8-8-0). +Camunda is compatible with Elasticsearch 8.8+ (see [supported environments](/reference/supported-environments.md)) which you can [download here](https://www.elastic.co/downloads/past-releases/elasticsearch-8-8-0). ::: ## Zeebe - Breaking Changes @@ -84,7 +84,7 @@ a missing variable or a missing context entry. Now, the expression will be evalu these cases. You can read more about the new error handling in -the [FEEL documentation](/docs/components/modeler/feel/language-guide/feel-error-handling.md). +the [FEEL documentation](/components/modeler/feel/language-guide/feel-error-handling.md). :::caution @@ -96,7 +96,7 @@ Other BPMN properties that require a specific value type are not affected, for e gateway. If an expression results in `null`, an incident will be created because of type mismatch. If you have a strong need to verify that a value is not `null`, you can use an -[assertion](/docs/components/modeler/feel/language-guide/feel-error-handling.md#assertions) to restore the previous +[assertion](/components/modeler/feel/language-guide/feel-error-handling.md#assertions) to restore the previous behavior and force the creation of an incident. ::: @@ -104,7 +104,7 @@ behavior and force the creation of an incident. ### Change in the function `is defined()` Within an expression, you could use the -function [`is defined()`](/docs/components/modeler/feel/builtin-functions/feel-built-in-functions-boolean.md#is-definedvalue) +function [`is defined()`](/components/modeler/feel/builtin-functions/feel-built-in-functions-boolean.md#is-definedvalue) to check if a variable exists. As part of the new error handling of expressions, the semantics of the function changed. In previous versions, the function returned `true` if the given variable did exist, even if its value was `null`. The diff --git a/versioned_docs/version-8.5/self-managed/setup/deploy/amazon/amazon-eks/irsa.md b/versioned_docs/version-8.5/self-managed/setup/deploy/amazon/amazon-eks/irsa.md index c693b949e2..fafd4d4f07 100644 --- a/versioned_docs/version-8.5/self-managed/setup/deploy/amazon/amazon-eks/irsa.md +++ b/versioned_docs/version-8.5/self-managed/setup/deploy/amazon/amazon-eks/irsa.md @@ -178,7 +178,7 @@ identityKeycloak: ``` :::note -For additional details, refer to the [Camunda 8 Helm deployment documentation](/docs/self-managed/setup/install.md). +For additional details, refer to the [Camunda 8 Helm deployment documentation](self-managed/setup/install.md). ::: ### Web Modeler diff --git a/versioned_docs/version-8.5/self-managed/setup/deploy/local/local-kubernetes-cluster.md b/versioned_docs/version-8.5/self-managed/setup/deploy/local/local-kubernetes-cluster.md index f26ade8484..c5ebd6090c 100644 --- a/versioned_docs/version-8.5/self-managed/setup/deploy/local/local-kubernetes-cluster.md +++ b/versioned_docs/version-8.5/self-managed/setup/deploy/local/local-kubernetes-cluster.md @@ -91,7 +91,7 @@ First, port-forward each of the components. Use a separate terminal for each com ## Connecting to the workflow engine -To interact with the Camunda workflow engine via Zeebe Gateway using [zbctl](/docs/apis-tools/cli-client/cli-get-started.md) or a local client/worker from outside the Kubernetes cluster, run `kubectl port-forward` to the Zeebe gateway as follows: +To interact with the Camunda workflow engine via Zeebe Gateway using [zbctl](/apis-tools/cli-client/cli-get-started.md) or a local client/worker from outside the Kubernetes cluster, run `kubectl port-forward` to the Zeebe gateway as follows: ```sh kubectl port-forward svc/camunda-zeebe-gateway 26500:26500 diff --git a/versioned_docs/version-8.5/self-managed/tasklist-deployment/tasklist-configuration.md b/versioned_docs/version-8.5/self-managed/tasklist-deployment/tasklist-configuration.md index a164aac247..3b5968b248 100644 --- a/versioned_docs/version-8.5/self-managed/tasklist-deployment/tasklist-configuration.md +++ b/versioned_docs/version-8.5/self-managed/tasklist-deployment/tasklist-configuration.md @@ -133,7 +133,7 @@ Tasklist needs a connection to Zeebe broker to start the import. | camunda.tasklist.zeebe.certificatePath | Path to certificate used by Zeebe. This is necessary when the certificate isn't registered in the operating system. | - | | camunda.tasklist.zeebe.restAddress | Path to Zeebe REST address. This is necessary to consume the Zeebe API from Tasklist. | http://localhost:8083 | -Additionally, visit [Zeebe Secure Client Communication](/docs/self-managed/zeebe-deployment/security/secure-client-communication/) for more details. +Additionally, visit [Zeebe Secure Client Communication](/self-managed/zeebe-deployment/security/secure-client-communication.md) for more details. ### Snippet from application.yml diff --git a/versioned_docs/version-8.5/self-managed/zeebe-deployment/operations/update-zeebe.md b/versioned_docs/version-8.5/self-managed/zeebe-deployment/operations/update-zeebe.md index 39d6d3c7cd..3e92f833a7 100644 --- a/versioned_docs/version-8.5/self-managed/zeebe-deployment/operations/update-zeebe.md +++ b/versioned_docs/version-8.5/self-managed/zeebe-deployment/operations/update-zeebe.md @@ -13,7 +13,7 @@ It is recommended but not required to first update to the latest patch of the cu Since Zeebe 8.5, updates to a newer version can be rolling or offline. Zeebe 8.4 and older don't contain necessary safety checks that make rolling updates safe, and we recommend offline updates instead to ensure processing behaves correctly. -Refer to the [update guide](/docs/self-managed/operational-guides/update-guide/introduction.md) to check if there are known issues for the specific update you are planning. +Refer to the [update guide](/self-managed/operational-guides/update-guide/introduction.md) to check if there are known issues for the specific update you are planning. ## Rolling update @@ -39,7 +39,7 @@ Gateways are updated with the same procedure, updating each replica one by one. Clients can be updated according to your requirements and environment, for example by simply deploying a new version of your worker applications. -For disaster recovery, you may want to take [backups](/docs/self-managed/operational-guides/backup-restore/backup-and-restore.md) before the update. +For disaster recovery, you may want to take [backups](/self-managed/operational-guides/backup-restore/backup-and-restore.md) before the update. If you plan to immediately update again, wait to give all brokers a chance to take new snapshots. The snapshot period is five minutes by default but is [configurable via `snapshotPeriod`](../configuration/broker.md#zeebebrokerdata). @@ -80,7 +80,7 @@ $ curl localhost:8080/api/v1/topology | jq .brokers[].version && kill %1 To start the rolling update, update the Helm deployment to use a new version of Zeebe. Set `$NEW_ZEEBE_VERSION` to the version you want to update to, for example `8.5.2`. -Remember to read the [update guide](/docs/self-managed/operational-guides/update-guide/introduction.md) to check for known issues. +Remember to read the [update guide](/self-managed/operational-guides/update-guide/introduction.md) to check for known issues. Then, start the rolling update with `helm upgrade`. ``` @@ -196,7 +196,7 @@ If this persists, you may want to [force the update](#rolling-update-is-not-comp ## Offline update -See the [update guide](/docs/self-managed/operational-guides/update-guide/introduction.md) for specific instructions per Zeebe version. +See the [update guide](/self-managed/operational-guides/update-guide/introduction.md) for specific instructions per Zeebe version. To update a Zeebe cluster, take the following steps: