Property reference
As a Spring Boot application, the Orchestration Cluster supports standard Spring configuration methods.
The following configurations apply to all components within the Orchestration Cluster.
API
- Application properties
- Environment variables
camunda.api.long-polling
| Property | Description | Default value |
|---|---|---|
camunda.api.long-polling.enabled | Enable long-polling for the Camunda gRPC API server. | true |
camunda.api.long-polling.timeout | Set the timeout for long polling in milliseconds. | 10000 |
camunda.api.long-polling.probe-timeout | Set the probe timeout for long polling in milliseconds. | 10000 |
camunda.api.long-polling.min-empty-responses | Set the number of minimum empty responses. A minimum number of responses with jobCount of 0 infers that no jobs are available. | 10s |
CAMUNDA_API_LONGPOLLING
| Property | Description | Default value |
|---|---|---|
CAMUNDA_API_LONGPOLLING_ENABLED | Enable long-polling for the Camunda gRPC API server. | true |
CAMUNDA_API_LONGPOLLING_TIMEOUT | Set the timeout for long polling in milliseconds. | 10000 |
CAMUNDA_API_LONGPOLLING_PROBETIMEOUT | Set the probe timeout for long polling in milliseconds. | 10000 |
CAMUNDA_API_LONGPOLLING_MINEMPTYRESPONSES | Set the number of minimum empty responses. A minimum number of responses with jobCount of 0 infers that no jobs are available. | 10s |
API - gRPC
- Application properties
- Environment variables
camunda.api.grpc
| Property | Description | Default value |
|---|---|---|
camunda.api.grpc.address | Set the address the gateway binds to. | 0.0.0.0 |
camunda.api.grpc.port | Set the port the gateway binds to. | 26500 |
camunda.api.grpc.min-keep-alive-interval | Set the minimum keep alive interval.
| 30s |
camunda.api.grpc.max-message-size | Set the maximum size of the incoming and outgoing messages (that is, commands and events). | 4MB |
camunda.api.grpc.management-threads | Set the number of threads the gateway will use to communicate with the broker cluster. | 1 |
camunda.api.grpc.ssl
| Property | Description | Default value |
|---|---|---|
camunda.api.grpc.ssl.enabled | Enable SSL (Secure Sockets Layer) authentication for the gateway. | false |
camunda.api.grpc.ssl.certificate | Set the path to the certificate chain file. | Null |
camunda.api.grpc.ssl.certificate-private-key | Set the path to the private key file location. | Null |
camunda.api.grpc.ssl.key-store.file-path | Configure the keystore file containing both the certificate chain and the private key. Currently only supports PKCS12 format. | /path/to/keystore |
camunda.api.grpc.ssl.key-store.password | Configure the keystore password. | Null |
camunda.api.grpc.interceptors
| Property | Description | Default value |
|---|---|---|
camunda.api.grpc.interceptors[] | This property is part of Camunda's gRPC interceptor system, which allows you to add custom processing logic to gRPC requests and responses. The property is a list of interceptor configurations, each requiring an | No entries |
camunda.api.grpc.interceptors[].id | The unique identifier for a particular gRPC interceptor configuration. | Null |
camunda.api.grpc.interceptors[].jar-path | The file path to a JAR file that contains a custom gRPC interceptor implementation. | Null |
camunda.api.grpc.interceptors[].class-name | Set the fully qualified class name of a custom gRPC interceptor implementation that should be loaded and executed by the Camunda gRPC server. | Null |
CAMUNDA_API_GRPC
| Property | Description | Default value |
|---|---|---|
CAMUNDA_API_GRPC_ADDRESS | Set the address the gateway binds to. | 0.0.0.0 |
CAMUNDA_API_GRPC_PORT | Set the port the gateway binds to. | 26500 |
CAMUNDA_API_GRPC_MINKEEPALIVEINTERVAL | Set the minimum keep alive interval.
| 30s |
CAMUNDA_API_GRPC_MAXMESSAGESIZE | Set the maximum size of the incoming and outgoing messages (that is, commands and events). | 4MB |
CAMUNDA_API_GRPC_MANAGEMENTTHREADS | Set the number of threads the gateway will use to communicate with the broker cluster. | 1 |
CAMUNDA_API_GRPC_SSL
| Property | Description | Default value |
|---|---|---|
CAMUNDA_API_GRPC_SSL_ENABLED | Enable SSL (Secure Sockets Layer) authentication for the gateway. | false |
CAMUNDA_API_GRPC_SSL_CERTIFICATE | Set the path to the certificate chain file. | Null |
CAMUNDA_API_GRPC_SSL_CERTIFICATEPRIVATEKEY | Set the path to the private key file location. | Null |
CAMUNDA_API_GRPC_SSL_KEYSTORE_FILEPATH | Configure the keystore file containing both the certificate chain and the private key. Currently only supports PKCS12 format. | /path/to/keystore |
CAMUNDA_API_GRPC_SSL_KEYSTORE_PASSWORD | Configure the keystore password. | Null |
CAMUNDA_API_GRPC_INTERCEPTORS
| Property | Description | Default value |
|---|---|---|
CAMUNDA_API_GRPC_INTERCEPTORS | List of gRPC interceptor configurations. Each entry requires | No entries |
CAMUNDA_API_GRPC_INTERCEPTORS_0_ID | The unique identifier for a particular gRPC interceptor configuration. | Null |
CAMUNDA_API_GRPC_INTERCEPTORS_0_JARPATH | The file path to a JAR file that contains a custom gRPC interceptor implementation. | Null |
CAMUNDA_API_GRPC_INTERCEPTORS_0_CLASSNAME | Set the fully qualified class name of a custom gRPC interceptor implementation that should be loaded and executed by the Camunda gRPC server. | Null |
API - REST
- Application properties
- Environment variables
camunda.api.rest.filters
| Property | Description | Default value |
|---|---|---|
camunda.api.rest.filters[] | This property is part of Camunda's REST filter system, which allows you to add filters to REST requests and responses. The property is a list of filter configurations, each requiring an | No entries |
camunda.api.rest.filters[].id | The unique identifier for a particular REST filter configuration. | Null |
camunda.api.rest.filters.jar-path | The file path to a JAR file that contains a custom REST filter implementation. | Null |
camunda.api.rest.filters.class-name | Set the fully qualified class name of a custom REST filter implementation that should be loaded and executed by the Camunda REST server. | Null |
camunda.api.rest.process-cache
| Property | Description | Default value |
|---|---|---|
camunda.api.rest.process-cache.max-size | Set the maximum number of entries that can be stored in the REST API's process cache. | 100 |
camunda.api.rest.process-cache.expiration-idle | Set the idle expiration time for entries in the REST API's process cache. | null |
camunda.api.rest.executor
| Property | Description | Default value |
|---|---|---|
camunda.api.rest.executor.core-pool-size-multiplier | Multiplier applied to the number of available processors to compute the executor's core pool size (minimum number of threads kept alive). Effective value: Use a higher value if you have steady, continuous traffic and want to minimize cold-start latency. Keep it low to allow the pool to scale down when idle. | 1 |
camunda.api.rest.executor.max-pool-size-multiplier | Multiplier applied to the number of available processors to compute the executor's maximum pool size (hard cap on threads). Effective value: Must be >= Increase cautiously, as high values can cause oversubscription for CPU-bound workloads. | 2 |
camunda.api.rest.executor.keep-alive | Time in seconds that threads above the core size may remain idle before being terminated. Lower values reclaim resources faster after bursts. Higher values reduce thread creation/destruction churn if bursts are frequent. | 60s |
camunda.api.rest.executor.queue-capacity | Capacity of the executor's task queue. A small bounded queue (for example, | 64 |
CAMUNDA_API_REST_FILTERS
| Property | Description | Default value |
|---|---|---|
CAMUNDA_API_REST_FILTERS | This property is part of Camunda's REST filter system, which allows you to add filters to REST requests and responses. The property is a list of filter configurations, each requiring an | No entries |
CAMUNDA_API_REST_FILTERS_0_ID | The unique identifier for a particular REST filter configuration. | Null |
CAMUNDA_API_REST_FILTERS_0_JARPATH | The file path to a JAR file that contains a custom REST filter implementation. | Null |
CAMUNDA_API_REST_FILTERS_0_CLASSNAME | Set the fully qualified class name of a custom REST filter implementation that should be loaded and executed by the Camunda REST server. | Null |
CAMUNDA_API_REST_PROCESSCACHE
| Property | Description | Default value |
|---|---|---|
CAMUNDA_API_REST_PROCESSCACHE_MAXSIZE | Set the maximum number of entries that can be stored in the REST API's process cache. | 100 |
CAMUNDA_API_REST_PROCESSCACHE_EXPIRATIONIDLE | Set the idle expiration time for entries in the REST API's process cache. | null |
CAMUNDA_API_REST_EXECUTOR
| Property | Description | Default value |
|---|---|---|
CAMUNDA_API_REST_EXECUTOR_COREPOOLSIZEMULTIPLIER | Multiplier applied to the number of available processors to compute the executor's core pool size (minimum number of threads kept alive). Effective value: Use a higher value if you have steady, continuous traffic and want to minimize cold-start latency. Keep it low to allow the pool to scale down when idle. | 1 |
CAMUNDA_API_REST_EXECUTOR_MAXPOOLSIZEMULTIPLIER | Multiplier applied to the number of available processors to compute the executor's maximum pool size (hard cap on threads). Effective value: Must be >= Increase cautiously, as high values can cause oversubscription for CPU-bound workloads. | 2 |
CAMUNDA_API_REST_EXECUTOR_KEEPALIVE | Time in seconds that threads above the core size may remain idle before being terminated. Lower values reclaim resources faster after bursts. Higher values reduce thread creation/destruction churn if bursts are frequent. | 60s |
CAMUNDA_API_REST_EXECUTOR_QUEUECAPACITY | Capacity of the executor's task queue. A small bounded queue (for example, | 64 |
API - MCP
- Application properties
- Environment variables
camunda.mcp
| Property | Description | Default value |
|---|---|---|
camunda.mcp.enabled | Enable the MCP server. When enabled, the Orchestration Cluster exposes a Streamable HTTP MCP server at | false |
CAMUNDA_MCP
| Property | Description | Default value |
|---|---|---|
CAMUNDA_MCP_ENABLED | Enable the MCP server. When enabled, the Orchestration Cluster exposes a Streamable HTTP MCP server at | false |
Cluster
- Application properties
- Environment variables
camunda.cluster
| Property | Description | Default value |
|---|---|---|
camunda.cluster.name | Set the name of the cluster. | zeebe-cluster |
camunda.cluster.id | Set the cluster ID used to identify the cluster. It should be unique across clusters. If not configured, the cluster ID will be set to a new random UUID. | |
camunda.cluster.network.host | The network host for internal cluster communication. | null |
camunda.cluster.node-id | Specifies the unique id of this broker node in a cluster. The id should be between 0 and number of nodes in the cluster (exclusive). | 0 |
camunda.cluster.partition-count | The number of partitions in the cluster. | 1 |
camunda.cluster.replication-factor | The number of replicas for each partition in the cluster. The replication factor cannot be greater than the number of nodes in the cluster. | 1 |
camunda.cluster.size | The number of nodes in the cluster. | 1 |
camunda.cluster.compression-algorithm | Configure the compression algorithm for all messages sent between brokers, and between broker and gateway. Available options are This can be useful when network latency is high (for example, across data centers), but may impact performance when latency is low. | NONE |
camunda.cluster.gateway-id | Set the member ID of this gateway node in the cluster. Only relevant for standalone gateway deployments. | gateway |
camunda.cluster.zone | The zone (region or availability zone) this broker belongs to. Used for multi-region deployments. When set, the partitioning scheme (see Must be at most 63 characters, start with an alphanumeric character (no leading hyphen), and contain only alphanumeric characters and hyphens ( |
camunda.cluster.global-listeners
| Property | Description | Default value |
|---|---|---|
camunda.cluster.global-listeners.user-task[] | List of configuration entries for global user task listeners (see also Global user task listeners.) | No entries |
camunda.cluster.global-listeners.user-task[].id | User-provided unique identifier for the listener. This identifier is used to interact with the global listener through API. | - |
camunda.cluster.global-listeners.user-task[].event-types[] | List of user task event types that trigger the listener. Supported values are | - |
camunda.cluster.global-listeners.user-task[].type | The name of the job type. Used as a reference to specify which job workers request the respective task listener job. For example, | - |
camunda.cluster.global-listeners.user-task[].retries | The number of retries for the user task listener job. | 3 |
camunda.cluster.global-listeners.user-task[].after-non-global | Boolean flag indicating whether the listener should run after model-level listeners. | false |
camunda.cluster.global-listeners.user-task[].priority | The priority of the listener. Higher priority listeners are executed before lower priority ones. It must be an integer between 0 and 100. | 50 |
camunda.cluster.membership
| Property | Description | Default value |
|---|---|---|
camunda.cluster.membership.broadcast-updates | Configure whether to broadcast member updates to all members. If set to If set to | true |
camunda.cluster.membership.broadcast-disputes | Configure whether to broadcast disputes to all members. If set to | true |
camunda.cluster.membership.notify-suspect | Configure whether to notify a suspect node on state changes. | false |
camunda.cluster.membership.probe-interval | Sets the interval at which to probe a random member. | 1s |
camunda.cluster.membership.probe-timeout | Sets the timeout for a probe response. | 100ms |
camunda.cluster.membership.suspect-probes | Sets the number of probes failed before declaring a member is suspect. | 3 |
camunda.cluster.membership.failure-timeout | Sets the timeout after which a suspect member is declared dead. | 10s |
camunda.cluster.membership.sync-interval | Sets the interval at which this member synchronizes its membership information with a random member. | 10s |
camunda.cluster.membership.gossip-fanout | Sets the number of members to which membership updates are sent at each gossip interval. | 2 |
camunda.cluster.membership.gossip-interval | Sets the interval at which the membership updates are sent to a random member. | 250ms |
camunda.cluster.metadata
| Property | Description | Default value |
|---|---|---|
camunda.cluster.metadata.sync-delay | The delay between two sync requests in the | 10s |
camunda.cluster.metadata.sync-request-timeout | The timeout for a sync request in the | 2s |
camunda.cluster.metadata.gossip-fanout | The number of nodes to which a cluster topology is gossiped. | 2 |
camunda.cluster.network
| Property | Description | Default value |
|---|---|---|
camunda.cluster.network.advertised-host | Controls the advertised host for cluster communication (for example, when running behind a proxy). If not set, the default is computed based on | null |
camunda.cluster.network.port-offset | If set, this offset is added to all configured/default ports to avoid specifying every port individually. The offset is applied to the second last digit, since multiple ports are used; for example, an offset of | 0 |
camunda.cluster.network.max-message-size | Sets the maximum size of incoming and outgoing messages (commands and events). | 4MB |
camunda.cluster.network.socket-send-buffer | Sets the socket send buffer size ( When not set, the operating system determines an optimal size automatically. | 1MB |
camunda.cluster.network.socket-receive-buffer | Sets the socket receive buffer size ( When not set, the operating system determines an optimal size automatically. | 1MB |
camunda.cluster.network.heartbeat-timeout | Connections that did not receive any message within the specified timeout will be closed. | 15s |
camunda.cluster.network.heartbeat-interval | Sends a heartbeat when no other data is sent over an open connection within the specified timeout (to keep the connection open). | 5s |
camunda.cluster.network.command-api.host | Overrides the host used for gateway-to-broker communication. | |
camunda.cluster.network.command-api.port | Sets the port used for gateway-to-broker communication. | |
camunda.cluster.network.command-api.advertisedHost | Controls the advertised host. This is particularly useful if your broker stands behind a proxy. If omitted, defaults to:
| |
camunda.cluster.network.command-api.advertisedPort | Controls the advertised port; if omitted defaults to the port. This is particularly useful if your broker stands behind a proxy. | |
camunda.cluster.initial-contact-points | Allows specifying a list of known other nodes to connect to on startup. The contact points of the internal network configuration must be specified in the format You can configure this property in one or both of the following ways:
| [] |
camunda.cluster.network.internal-api.host | Overrides the host used for internal broker-to-broker communication. | |
camunda.cluster.network.internal-api.port | Sets the port used for internal broker-to-broker communication. | |
camunda.cluster.network.internal-api.advertisedHost | Controls the advertised host. This is particularly useful if your broker stands behind a proxy. If omitted, defaults to:
| |
camunda.cluster.network.internal-api.advertisedPort | Controls the advertised port; if omitted defaults to the port. This is particularly useful if your broker stands behind a proxy. |
camunda.cluster.node-id-provider
| Property | Description | Default value |
|---|---|---|
camunda.cluster.node-id-provider.type | Set the implementation
| FIXED |
camunda.cluster.node-id-provider.s3.lease-duration | Lease duration before expiry. | |
camunda.cluster.node-id-provider.s3.bucket-name | Name of the bucket where the leases will be stored.
| |
camunda.cluster.node-id-provider.s3.task-id | The task ID to use when registering to a lease. | |
camunda.cluster.node-id-provider.s3.endpoint | Configure the URL endpoint for the store. If no endpoint is provided, it will be determined based on the configured region. | |
camunda.cluster.node-id-provider.s3.region | Configure the AWS region. If no region is provided, it will be determined automatically (see AWS SDK region selection documentation). | |
camunda.cluster.node-id-provider.s3.access-key | Configure access credentials. If either | |
camunda.cluster.node-id-provider.s3.secret-key | Configure access credentials. If either | |
camunda.cluster.node-id-provider.s3.api-call-timeout | Configure a maximum duration for all S3 client API calls. | 10s |
camunda.cluster.node-id-provider.fixed.node-id | Static node ID used when | 0 |
camunda.cluster.partitioning
| Property | Description | Default value |
|---|---|---|
camunda.cluster.partitioning.scheme | Configures how partitions are distributed across brokers (the partitioning scheme). Available options are When using When using | ROUND_ROBIN |
camunda.cluster.partitioning.fixed[].partition-id | Partition ID entry used when | 1 |
camunda.cluster.partitioning.fixed[].nodes[].nodes-id | Broker node ID for a fixed partition mapping entry (used when | 0 |
camunda.cluster.partitioning.fixed[].nodes[].priority | Priority value associated with a broker node in the fixed partitioning configuration. | 1 |
camunda.cluster.partitioning.zone-aware.zones[].name | The name of the zone. Used when | - |
camunda.cluster.partitioning.zone-aware.zones[].number-of-brokers | The total number of brokers deployed in this zone. The sum of all brokers across all zones should be equal to | - |
camunda.cluster.partitioning.zone-aware.zones[].number-of-replicas | The number of replicas for each replication group in this zone. The sum of all replicas across all zones should be equal to | - |
camunda.cluster.partitioning.zone-aware.zones[].priority | The priority of the zone. Higher priorities translate to higher Raft election priorities, skewing partition leaders toward the highest-priority zone. | - |
camunda.cluster.raft
| Property | Description | Default value |
|---|---|---|
camunda.cluster.raft | Configuration for the Raft consensus protocol in the cluster. This class provides settings for Raft algorithm parameters including timing, elections, and log flushing. | none |
camunda.cluster.raft.priority-election-enabled | When this flag is enabled, the leader election algorithm attempts to elect leaders based on a predefined priority. As a result, it tries to distribute leaders uniformly across the brokers. Note that this is only a best-effort strategy. It does not guarantee a strictly uniform distribution. | true |
camunda.cluster.raft.flush-enabled | If false, explicit flushing of the Raft log is disabled, and flushing only occurs right before a snapshot is taken. You should only disable explicit flushing if you are willing to accept potential data loss at the expense of performance. Before disabling it, try the delayed options, which provide a trade-off between safety and performance. By default, for a given partition, data is flushed on every leader commit, and every follower append. This is to ensure consistency across all replicas. Disabling this can cause inconsistencies, and at worst, data corruption or data loss scenarios. | true |
camunda.cluster.raft.flush-delay | If the delay is > 0, then flush requests are delayed by at least the given period. It is recommended that you find the smallest delay with which you achieve your performance goals. It's also likely that anything above 30s is not useful, as this is the typical default flush interval for the Linux OS. The default behavior is optimized for safety, and flushing occurs on every leader commit and follower append in a synchronous fashion. | 0s |
camunda.cluster.raft.heartbeat-interval | The heartbeat interval for Raft. The leader sends a heartbeat to a follower every | 250ms |
camunda.cluster.raft.election-timeout | The election timeout for Raft. If a follower does not receive a heartbeat from the leader within an election timeout, it can start a new leader election. The When the When the If the network latency between the nodes is high, it is recommended to have a higher election timeout. This is an advanced setting. | 2.5s |
camunda.cluster.raft.max-appends-per-follower | Sets the maximum number of append requests sent per follower. | 6 |
camunda.cluster.raft.max-appends-batch-size | Sets the maximum batch size sent per append request to a follower. | 32KB |
camunda.cluster.raft.request-timeout | Sets the timeout for all requests sent by Raft leaders and followers. When modifying | 2.5s |
camunda.cluster.raft.snapshot-request-timeout | Sets the timeout for all snapshot requests sent by Raft leaders to followers. If network latency between brokers is high, consider setting a higher timeout. | 2.5s |
camunda.cluster.raft.snapshot-chunk-size | Sets the maximum size of snapshot chunks sent by Raft leaders to followers. | 1GB |
camunda.cluster.raft.configuration-change-timeout | Sets the timeout for configuration change requests (for example, joining or leaving). Since changes are usually a multi-step process with multiple commits, a higher timeout than | 10s |
camunda.cluster.raft.max-quorum-response-timeout | Defines the maximum time the leader waits for quorum responses before stepping down (in combination with If set to | 0s |
camunda.cluster.raft.min-step-down-failure-count | Defines the number of failed quorum requests after which a leader may step down (in combination with | 3 |
camunda.cluster.raft.prefer-snapshot-replicationThreshold | Threshold (in number of records) used by the leader to decide between replicating a snapshot or records. If the follower lags behind by at least this many records, the leader prefers replicating snapshots instead of records. | 100 |
camunda.cluster.raft.preallocate-segment-files | Defines whether segment files are pre-allocated to their full size on creation. If enabled, disk space is reserved for the full maximum segment size when a new segment is created, which can help avoid out-of-disk-space errors (especially with memory-mapped files or network storage). Disable if your system does not support efficient file allocation, or if you observe an I/O penalty when creating segments. | true |
camunda.cluster.raft.segment-preallocation-strategy | Configures the strategy used to pre-allocate journal segment files on disk. Available options:
| POSIX_OR_FILL |
CAMUNDA_CLUSTER
| Property | Description | Default value |
|---|---|---|
CAMUNDA_CLUSTER_NAME | Set the name of the cluster. | zeebe-cluster |
CAMUNDA_CLUSTER_ID | Set the cluster ID used to identify the cluster. It should be unique across clusters. If not configured, the cluster ID will be set to a new random UUID. | generated |
CAMUNDA_CLUSTER_NETWORK_HOST | The network host for internal cluster communication. | null |
CAMUNDA_CLUSTER_NODEID | Specifies the unique id of this broker node in a cluster. The id should be between 0 and number of nodes in the cluster (exclusive). | 0 |
CAMUNDA_CLUSTER_PARTITIONCOUNT | The number of partitions in the cluster. | 1 |
CAMUNDA_CLUSTER_REPLICATIONFACTOR | The number of replicas for each partition in the cluster. The replication factor cannot be greater than the number of nodes in the cluster. | 1 |
CAMUNDA_CLUSTER_SIZE | The number of nodes in the cluster. | 1 |
CAMUNDA_CLUSTER_COMPRESSIONALGORITHM | Configure the compression algorithm for all messages sent between brokers, and between broker and gateway. Available options are This can be useful when network latency is high (for example, across data centers), but may impact performance when latency is low. | NONE |
CAMUNDA_CLUSTER_GATEWAYID | Set the member ID of this gateway node in the cluster. Only relevant for standalone gateway deployments. | gateway |
CAMUNDA_CLUSTER_ZONE | The zone (region or availability zone) this broker belongs to. Used for zone-aware routing and replication (see Must be at most 63 characters, start with an alphanumeric character (no leading hyphen), and contain only alphanumeric characters and hyphens ( |
CAMUNDA_CLUSTER_GLOBAL_LISTENERS
| Property | Description | Default value |
|---|---|---|
CAMUNDA_CLUSTER_GLOBAL_LISTENERS_USER_TASK | List of configuration entries for global user task listeners (see also Global user task listeners.) | No entries |
CAMUNDA_CLUSTER_GLOBAL_LISTENERS_USER_TASK_0_ID | User-provided unique identifier for the listener. This identifier is used to interact with the global listener through API. | - |
CAMUNDA_CLUSTER_GLOBAL_LISTENERS_USER_TASK_0_EVENT_TYPES | List of user task event types that trigger the listener. Supported values are | - |
CAMUNDA_CLUSTER_GLOBAL_LISTENERS_USER_TASK_0_TYPE | The name of the job type. Used as a reference to specify which job workers request the respective task listener job. For example, | - |
CAMUNDA_CLUSTER_GLOBAL_LISTENERS_USER_TASK_0_RETRIES | The number of retries for the user task listener job. | 3 |
CAMUNDA_CLUSTER_GLOBAL_LISTENERS_USER_TASK_0_AFTER_NON_GLOBAL | Boolean flag indicating whether the listener should run after model-level listeners. | false |
CAMUNDA_CLUSTER_GLOBAL_LISTENERS_USER_TASK_0_PRIORITY | The priority of the listener. Higher priority listeners are executed before lower priority ones. It must be an integer between 0 and 100. | 50 |
CAMUNDA_CLUSTER_MEMBERSHIP
| Property | Description | Default value |
|---|---|---|
CAMUNDA_CLUSTER_MEMBERSHIP_BROADCASTUPDATES | Configure whether to broadcast member updates to all members. If set to If set to | true |
CAMUNDA_CLUSTER_MEMBERSHIP_BROADCASTDISPUTES | Configure whether to broadcast disputes to all members. If set to | true |
CAMUNDA_CLUSTER_MEMBERSHIP_NOTIFYSUSPECT | Configure whether to notify a suspect node on state changes. | false |
CAMUNDA_CLUSTER_MEMBERSHIP_PROBEINTERVAL | Sets the interval at which to probe a random member. | 1s |
CAMUNDA_CLUSTER_MEMBERSHIP_PROBETIMEOUT | Sets the timeout for a probe response. | 100ms |
CAMUNDA_CLUSTER_MEMBERSHIP_SUSPECTPROBES | Sets the number of probes failed before declaring a member is suspect. | 3 |
CAMUNDA_CLUSTER_MEMBERSHIP_FAILURETIMEOUT | Sets the timeout after which a suspect member is declared dead. | 10s |
CAMUNDA_CLUSTER_MEMBERSHIP_SYNCINTERVAL | Sets the interval at which this member synchronizes its membership information with a random member. | 10s |
CAMUNDA_CLUSTER_MEMBERSHIP_GOSSIPFANOUT | Sets the number of members to which membership updates are sent at each gossip interval. | 2 |
CAMUNDA_CLUSTER_MEMBERSHIP_GOSSIPINTERVAL | Sets the interval at which the membership updates are sent to a random member. | 250ms |
CAMUNDA_CLUSTER_METADATA
| Property | Description | Default value |
|---|---|---|
CAMUNDA_CLUSTER_METADATA_SYNCDELAY | The delay between two sync requests in the | 10s |
CAMUNDA_CLUSTER_METADATA_SYNCREQUESTTIMEOUT | The timeout for a sync request in the | 2s |
CAMUNDA_CLUSTER_METADATA_GOSSIPFANOUT | The number of nodes to which a cluster topology is gossiped. | 2 |
CAMUNDA_CLUSTER_NETWORK
| Property | Description | Default value |
|---|---|---|
CAMUNDA_CLUSTER_NETWORK_ADVERTISEDHOST | Controls the advertised host for cluster communication (for example, when running behind a proxy). If not set, the default is computed based on | null |
CAMUNDA_CLUSTER_NETWORK_PORTOFFSET | If set, this offset is added to all configured/default ports to avoid specifying every port individually. The offset is applied to the second last digit, since multiple ports are used; for example, an offset of | 0 |
CAMUNDA_CLUSTER_NETWORK_MAXMESSAGESIZE | Sets the maximum size of incoming and outgoing messages (commands and events). | 4MB |
CAMUNDA_CLUSTER_NETWORK_SOCKETSENDBUFFER | Sets the socket send buffer size ( When not set, the operating system determines an optimal size automatically. | 1MB |
CAMUNDA_CLUSTER_NETWORK_SOCKETRECEIVEBUFFER | Sets the socket receive buffer size ( When not set, the operating system determines an optimal size automatically. | 1MB |
CAMUNDA_CLUSTER_NETWORK_HEARTBEATTIMEOUT | Connections that did not receive any message within the specified timeout will be closed. | 15s |
CAMUNDA_CLUSTER_NETWORK_HEARTBEATINTERVAL | Sends a heartbeat when no other data is sent over an open connection within the specified timeout (to keep the connection open). | 5s |
CAMUNDA_CLUSTER_NETWORK_COMMANDAPI_HOST | Overrides the host used for gateway-to-broker communication. | |
CAMUNDA_CLUSTER_NETWORK_COMMANDAPI_PORT | Sets the port used for gateway-to-broker communication. | |
CAMUNDA_CLUSTER_NETWORK_COMMANDAPI_ADVERTISEDHOST | Controls the advertised host. This is particularly useful if your broker stands behind a proxy. If omitted, defaults to:
| |
CAMUNDA_CLUSTER_NETWORK_COMMANDAPI_ADVERTISEDPORT | Controls the advertised port; if omitted defaults to the port. This is particularly useful if your broker stands behind a proxy. | |
CAMUNDA_CLUSTER_INITIALCONTACTPOINTS | Allows specifying a list of known other nodes to connect to on startup. The contact points of the internal network configuration must be specified in the format You can configure this property in one or both of the following ways:
| [] |
CAMUNDA_CLUSTER_NETWORK_INTERNALAPI_HOST | Overrides the host used for internal broker-to-broker communication. | |
CAMUNDA_CLUSTER_NETWORK_INTERNALAPI_PORT | Sets the port used for internal broker-to-broker communication. | |
CAMUNDA_CLUSTER_NETWORK_INTERNALAPI_ADVERTISEDHOST | Controls the advertised host. This is particularly useful if your broker stands behind a proxy. If omitted, defaults to:
| |
CAMUNDA_CLUSTER_NETWORK_INTERNALAPI_ADVERTISEDPORT | Controls the advertised port; if omitted defaults to the port. This is particularly useful if your broker stands behind a proxy. |
CAMUNDA_CLUSTER_NODEIDPROVIDER
| Property | Description | Default value |
|---|---|---|
CAMUNDA_CLUSTER_NODEIDPROVIDER_TYPE | Set the implementation
| FIXED |
CAMUNDA_CLUSTER_NODEIDPROVIDER_S3_LEASEDURATION | Lease duration before expiry. | |
CAMUNDA_CLUSTER_NODEIDPROVIDER_S3_BUCKETNAME | Name of the bucket where the leases will be stored.
| |
CAMUNDA_CLUSTER_NODEIDPROVIDER_S3_TASKID | The task ID to use when registering to a lease. | |
CAMUNDA_CLUSTER_NODEIDPROVIDER_S3_ENDPOINT | Configure the URL endpoint for the store. If no endpoint is provided, it will be determined based on the configured region. | |
CAMUNDA_CLUSTER_NODEIDPROVIDER_S3_REGION | Configure the AWS region. If no region is provided, it will be determined automatically (see AWS SDK region selection documentation). | |
CAMUNDA_CLUSTER_NODEIDPROVIDER_S3_ACCESSKEY | Configure access credentials. If either | |
CAMUNDA_CLUSTER_NODEIDPROVIDER_S3_SECRETKEY | Configure access credentials. If either | |
CAMUNDA_CLUSTER_NODEIDPROVIDER_S3_APICALLTIMEOUT | Configure a maximum duration for all S3 client API calls. | 10s |
CAMUNDA_CLUSTER_NODEIDPROVIDER_FIXED_NODEID | Static node ID used when | 0 |
CAMUNDA_CLUSTER_PARTITIONING
| Property | Description | Default value |
|---|---|---|
CAMUNDA_CLUSTER_PARTITIONING_SCHEME | Configures how partitions are distributed across brokers (the partitioning scheme). Available options are When using When using | ROUND_ROBIN |
CAMUNDA_CLUSTER_PARTITIONING_FIXED_0_PARTITIONID | Partition ID entry used when | 1 |
CAMUNDA_CLUSTER_PARTITIONING_FIXED_0_NODES_0_NODESID | Broker node ID for a fixed partition mapping entry (used when | 0 |
CAMUNDA_CLUSTER_PARTITIONING_FIXED_0_NODES_0_PRIORITY | Priority value associated with a broker node in the fixed partitioning configuration. | 1 |
CAMUNDA_CLUSTER_PARTITIONING_ZONEAWARE_ZONES_0_NAME | The name of the zone. Used when | - |
CAMUNDA_CLUSTER_PARTITIONING_ZONEAWARE_ZONES_0_NUMBEROFBROKERS | The total number of brokers deployed in this zone. | - |
CAMUNDA_CLUSTER_PARTITIONING_ZONEAWARE_ZONES_0_NUMBEROFREPLICAS | The number of replicas for each replication group in this zone. | - |
CAMUNDA_CLUSTER_PARTITIONING_ZONEAWARE_ZONES_0_PRIORITY | The priority of the zone. Higher priorities translate to higher Raft election priorities, skewing partition leaders toward the highest-priority zone. | - |
CAMUNDA_CLUSTER_RAFT
| Property | Description | Default value |
|---|---|---|
CAMUNDA_CLUSTER_RAFT | Configuration for the Raft consensus protocol in the cluster. This class provides settings for Raft algorithm parameters including timing, elections, and log flushing. | none |
CAMUNDA_CLUSTER_RAFT_PRIORITYELECTIONENABLED | When this flag is enabled, the leader election algorithm attempts to elect leaders based on a predefined priority. As a result, it tries to distribute leaders uniformly across the brokers. Note that this is only a best-effort strategy. It does not guarantee a strictly uniform distribution. | true |
CAMUNDA_CLUSTER_RAFT_FLUSHENABLED | If false, explicit flushing of the Raft log is disabled, and flushing only occurs right before a snapshot is taken. You should only disable explicit flushing if you are willing to accept potential data loss at the expense of performance. Before disabling it, try the delayed options, which provide a trade-off between safety and performance. By default, for a given partition, data is flushed on every leader commit, and every follower append. This is to ensure consistency across all replicas. Disabling this can cause inconsistencies, and at worst, data corruption or data loss scenarios. | true |
CAMUNDA_CLUSTER_RAFT_FLUSHDELAY | If the delay is > 0, then flush requests are delayed by at least the given period. It is recommended that you find the smallest delay with which you achieve your performance goals. It's also likely that anything above 30s is not useful, as this is the typical default flush interval for the Linux OS. The default behavior is optimized for safety, and flushing occurs on every leader commit and follower append in a synchronous fashion. | 0s |
CAMUNDA_CLUSTER_RAFT_HEARTBEATINTERVAL | The heartbeat interval for Raft. The leader sends a heartbeat to a follower every | 250ms |
CAMUNDA_CLUSTER_RAFT_ELECTIONTIMEOUT | The election timeout for Raft. If a follower does not receive a heartbeat from the leader within an election timeout, it can start a new leader election. The When the When the If the network latency between the nodes is high, it is recommended to have a higher election timeout. This is an advanced setting. | 2.5s |
CAMUNDA_CLUSTER_RAFT_MAXAPPENDSPERFOLLOWER | Sets the maximum number of append requests sent per follower. | 6 |
CAMUNDA_CLUSTER_RAFT_MAXAPPENDSBATCHSIZE | Sets the maximum batch size sent per append request to a follower. | 32KB |
CAMUNDA_CLUSTER_RAFT_REQUESTTIMEOUT | Sets the timeout for all requests sent by Raft leaders and followers. When modifying | 2.5s |
CAMUNDA_CLUSTER_RAFT_SNAPSHOTREQUESTTIMEOUT | Sets the timeout for all snapshot requests sent by Raft leaders to followers. If network latency between brokers is high, consider setting a higher timeout. | 2.5s |
CAMUNDA_CLUSTER_RAFT_SNAPSHOTCHUNKSIZE | Sets the maximum size of snapshot chunks sent by Raft leaders to followers. | 1GB |
CAMUNDA_CLUSTER_RAFT_CONFIGURATIONCHANGETIMEOUT | Sets the timeout for configuration change requests (for example, joining or leaving). Since changes are usually a multi-step process with multiple commits, a higher timeout than | 10s |
CAMUNDA_CLUSTER_RAFT_MAXQUORUMRESPONSETIMEOUT | Defines the maximum time the leader waits for quorum responses before stepping down (in combination with If set to | 0s |
CAMUNDA_CLUSTER_RAFT_MINSTEPDOWNFAILURECOUNT | Defines the number of failed quorum requests after which a leader may step down (in combination with | 3 |
CAMUNDA_CLUSTER_RAFT_PREFERSNAPSHOTREPLICATIONTHRESHOLD | Threshold (in number of records) used by the leader to decide between replicating a snapshot or records. If the follower lags behind by at least this many records, the leader prefers replicating snapshots instead of records. | 100 |
CAMUNDA_CLUSTER_RAFT_PREALLOCATESEGMENTFILES | Defines whether segment files are pre-allocated to their full size on creation. If enabled, disk space is reserved for the full maximum segment size when a new segment is created, which can help avoid out-of-disk-space errors (especially with memory-mapped files or network storage). Disable if your system does not support efficient file allocation, or if you observe an I/O penalty when creating segments. | true |
CAMUNDA_CLUSTER_RAFT_SEGMENTPREALLOCATIONSTRATEGY | Configures the strategy used to pre-allocate journal segment files on disk. Available options:
This is particularly useful when using network-attached storage, where the POSIX strategy can reduce tail latencies. | POSIX_OR_FILL |
Data
- Application properties
- Environment variables
camunda.data
| Property | Description | Default value |
|---|---|---|
camunda.data.snapshot-period | How often snapshots are taken of streams (in minutes). | 5m |
camunda.data.export.distribution-interval | Configures the rate at which exporter positions are distributed to the followers. This is useful for fail-over and taking snapshots. The follower is able to take snapshots based on replayed and distributed export position. When a follower takes over it can recover from the snapshot, it doesn't need to replay and export everything. For example, it can start from the last exported position it has received by the distribution mechanism. | 15s |
camunda.data.export.skip-records | Enable the exporters to skip record position. Allows to skip certain records by their position, per partition. This is useful for debugging or skipping a record that is preventing processing or exporting to continue. Record positions defined to skip in this definition will be skipped in all exporters. The value is a partitionId keyed map with a comma-separated list of positions to skip. Whitespace is ignored. For example: | {} |
camunda.data.audit-log
| Property | Description | Default value |
|---|---|---|
camunda.data.audit-log.enabled | Enable or disable the audit log. | true |
camunda.data.audit-log.user.categories | List of audit log categories to include for user-initiated actions. | [ADMIN, DEPLOYED_RESOURCES, USER_TASKS] |
camunda.data.audit-log.user.excludes | List of audit log entity types to exclude for user-initiated actions. | [] |
camunda.data.audit-log.client.categories | List of audit log categories to include for client-initiated actions (API clients). | [] |
camunda.data.audit-log.client.excludes | List of audit log entity types to exclude for client-initiated actions (API clients). | [] |
camunda.data.wait-states
| Property | Description | Default value |
|---|---|---|
camunda.data.wait-states.enabled | Enable or disable wait state tracking. | true |
CAMUNDA_DATA
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_SNAPSHOTPERIOD | How often snapshots are taken of streams (in minutes). | 5m |
CAMUNDA_DATA_EXPORT_DISTRIBUTIONINTERVAL | Configures the rate at which exporter positions are distributed to the followers. This is useful for fail-over and taking snapshots. The follower is able to take snapshots based on replayed and distributed export position. When a follower takes over it can recover from the snapshot, it doesn't need to replay and export everything. For example, it can start from the last exported position it has received by the distribution mechanism. | 15s |
CAMUNDA_DATA_EXPORT_SKIPRECORDS | Enable the exporters to skip record position. Allows to skip certain records by their position. This is useful for debugging or skipping a record that is preventing processing or exporting to continue. Record positions defined to skip in this definition will be skipped in all exporters. The value is a partitionId keyed map with a comma-separated list of positions to skip. Whitespace is ignored. For example: | {} |
CAMUNDA_DATA_AUDITLOG
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_AUDITLOG_ENABLED | Enable or disable the audit log. | true |
CAMUNDA_DATA_AUDITLOG_USER_CATEGORIES_0 | List of audit log categories to include for user-initiated actions. | CAMUNDA_DATA_AUDITLOG_USER_CATEGORIES_0=ADMINCAMUNDA_DATA_AUDITLOG_USER_CATEGORIES_1=DEPLOYED_RESOURCESCAMUNDA_DATA_AUDITLOG_USER_CATEGORIES_2=USER_TASKS |
CAMUNDA_DATA_AUDITLOG_USER_EXCLUDES_0 | List of audit log entity types to exclude for user-initiated actions. | |
CAMUNDA_DATA_AUDITLOG_CLIENT_CATEGORIES_0 | List of audit log categories to include for client-initiated actions (API clients). | |
CAMUNDA_DATA_AUDITLOG_CLIENT_EXCLUDES_0 | List of audit log entity types to exclude for client-initiated actions (API clients). |
CAMUNDA_DATA_WAITSTATES
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_WAITSTATES_ENABLED | Enable or disable wait state tracking. | true |
Audit log entity types
Here is a complete list of audit log entity types you can use to configure camunda.data.audit-log.(user|client).excludes or CAMUNDA_DATA_AUDITLOG_(USER|CLIENT)_EXCLUDES:
AUTHORIZATIONBATCHDECISIONGROUPINCIDENTMAPPING_RULEPROCESS_INSTANCERESOURCEROLETENANTUSER_TASKUSERVARIABLE
Data - primary storage
- Application properties
- Environment variables
camunda.data.primary-storage
| Property | Description | Default value |
|---|---|---|
camunda.data.primary-storage.directory | Specify the directory in which data is stored. | 'data' |
camunda.data.primary-storage.runtime-directory | Specify the directory in which runtime is stored.
Note: If runtime is on a different disk than the data directory, files must be copied to the data directory while taking the snapshot. This can impact disk i/o or performance during snapshotting. | '' |
camunda.data.primary-storage.disk
| Property | Description | Default value |
|---|---|---|
camunda.data.primary-storage.disk.monitoring-interval | Sets the interval at which the disk usage is monitored. | 1s |
camunda.data.primary-storage.disk.monitoring-enabled | Configure disk monitoring to prevent getting into a non-recoverable state due to out of disk space. If monitoring is enabled, the broker rejects commands and pauses replication when the required | true |
camunda.data.primary-storage.disk.free-space.processing | When the free space available is less than this value, the broker rejects all client commands and pauses processing. | 2GB |
camunda.data.primary-storage.disk.free-space.replication | When the free space available is less than this value, the broker stops receiving replicated events. This value must be less than It is recommended to configure free space large enough for at least one log segment and one snapshot. This is because a partition needs enough space to take a new snapshot to be able to compact the log segments to make disk space available again. | 1GB |
camunda.data.primary-storage.logstream
| Property | Description | Default value |
|---|---|---|
camunda.data.primary-storage.logstream.log-segment-size | The size of data log segment files. | 128MB |
camunda.data.primary-storage.logstream.log-index-density | The density of the log index, which determines how frequently index entries are created in the log. This value specifies the number of log entries between each index entry. A lower value increases the number of index entries (improving lookup speed but using more memory), while a higher value reduces the number of index entries (saving memory but potentially slowing lookups). Valid values: any positive integer (recommended range: 1-1000). | 100 |
camunda.data.primary-storage.rocksdb
| Property | Description | Default value |
|---|---|---|
camunda.data.primary-storage.rocksdb.statistics-enabled | Enables RocksDB statistics, which will be written to the RocksDB log file. | false |
camunda.data.primary-storage.rocksdb.access-metrics | Configures which, if any, RocksDB column family access metrics are exposed. Valid values are | none |
camunda.data.primary-storage.rocksdb.memory-allocation-strategy | Configures the RocksDB memory allocation strategy. Valid values are
| FRACTION |
camunda.data.primary-storage.rocksdb.memory-limit | Configures the expected RocksDB memory usage per partition when | 512MB |
camunda.data.primary-storage.rocksdb.memory-fraction | Configures the fraction of total available memory to allocate to RocksDB. Only applies when Valid range: | 0.1 |
camunda.data.primary-storage.rocksdb.max-open-files | Configures how many files are kept open by RocksDB. The default is unlimited (-1). This is a performance optimization: if you set a value greater than zero, it will keep track and cap the number of open files in the On accessing the files it needs to look them up in the cache. You should configure this property if the maximum open files are limited on your system, or if you have thousands of files in your RocksDB state as there is a memory overhead to keeping all of them open, and setting | -1 |
camunda.data.primary-storage.rocksdb.max-write-buffer-number | Configures the maximum number of simultaneous write buffers/memtables RocksDB will have in memory. Normally about 2/3s of the This means the higher | 6 |
camunda.data.primary-storage.rocksdb.min-write-buffer-number-to-merge | Configures how many write buffers should be full before they are merged and flushed to disk. A higher numeric value means you may flush less often, but will flush more data at once. A lower numeric value means flushing more often, but flushing less data at once. | 3 |
camunda.data.primary-storage.rocksdb.io-rate-bytes-per-second | Configures a rate limit for write I/O of RocksDB. Setting any value less than or equal to 0 will disable this, which is the default setting. Setting a rate limit on the write I/O can help achieve more stable performance by avoiding write spikes consuming all available IOPS, leading to more predictable read rates. | 0 |
camunda.data.primary-storage.rocksdb.wal-disabled | Configures if the RocksDB write-ahead-log is used or not. By default, every write in RocksDB goes to the active write buffer and the WAL; this helps recover a RocksDB instance should it crash before the write buffer is flushed. Zeebe however only recovers from specific point-in-time snapshot, and never from a previously active RocksDB instance, which makes it a good candidate to disable the WAL. WAL is disabled by default as it can improve performance of Zeebe. | true |
camunda.data.primary-storage.rocksdb.sst-partitioning-enabled | Configures if the RocksDB SST files should be partitioned based on some virtual column families. By default, RocksDB will not partition the SST files, which could influence the compacting of certain key ranges. Enabling this option gives RocksDB some good hints how to improve compaction and reduce the write amplification. Benchmarks have shown impressive results, allowing sustained performance on larger states. This setting will increase the general file count of runtime and snapshots. | true |
camunda.data.primary-storage.backup
| Property | Description | Default value |
|---|---|---|
camunda.data.primary-storage.backup.store | Set the backup store type. Supported values are
Note: This configuration applies to the backup of primary storage. | NONE |
camunda.data.primary-storage.backup.continous | Enables or disables the continuous backups feature. | false |
camunda.data.primary-storage.backup.required | Forces the backup scheduler mechanism to be properly configured during broker startup. | false |
camunda.data.primary-storage.backup.schedule | The interval at which a primary storage backup is taken. Can be a CRON expression, ISO8601 duration or none. For example, every 5 minutes would be 0 */5 * * * * and PT5M respectively. | - |
camunda.data.primary-storage.backup.checkpoint-interval | The interval at which checkpoints are ingested in the logstream. ISO8601, for example PT5M duration. | - |
camunda.data.primary-storage.backup.offset | Offset for the generated backup identifiers. | - |
camunda.data.primary-storage.backup.read-timeout | The maximum duration for reading a response from the backup store. A single request that exceeds this timeout fails and can be retried. Applies to the When not set, the default of the underlying store client applies: 30s for Accepts a duration, for example | - |
camunda.data.primary-storage.backup.write-timeout | The maximum duration for writing a request to the backup store. Applies to the When not set, the default of the underlying store client applies: 30s for Accepts a duration, for example | - |
camunda.data.primary-storage.backup.retention
| Property | Description | Default value |
|---|---|---|
camunda.data.primary-storage.backup.retention.window | The active window of backups available for restore in the configured backup store, ISO8601 duration. For example PT5M | - |
camunda.data.primary-storage.backup.cleanup-schedule | The interval at which the retention mechanism checks for backups outside the active window. Can be a CRON expression, ISO8601 duration or none. For example, every 5 minutes would be 0 */5 * * * * and PT5M respectively. | - |
camunda.data.primary-storage.backup.s3
| Property | Description | Default value |
|---|---|---|
camunda.data.primary-storage.backup.s3.bucket-name | Name of the bucket where the backup will be stored.
| Null |
camunda.data.primary-storage.backup.s3.endpoint | Configure the URL endpoint for the store. If no endpoint is provided, it will be determined based on the configured region. | Null |
camunda.data.primary-storage.backup.s3.region | Configure the AWS region. If no region is provided it will be determined as documented in setting the AWS Region for the AWS SDK for Java 2.x. | Null |
camunda.data.primary-storage.backup.s3.access-key | Configure access credentials. If either | - |
camunda.data.primary-storage.backup.s3.secret-key | Configure access credentials. If either | - |
camunda.data.primary-storage.backup.s3.api-call-timeout | Configure a maximum duration for all S3 client API calls. Lower values will ensure that failed or slow API calls don't block other backups but may increase the risk that backups can't be stored if uploading parts of the backup takes longer than the configured timeout. Refer to AWS Java SDK 2.x Best Practices. | 180s |
camunda.data.primary-storage.backup.s3.force-path-style-access | If enabled, forces the s3 client to use path-style access. By default, the client will automatically choose between path-style and virtual-hosted-style. This should only be enabled if the s3 compatible storage cannot support virtual-hosted-style. | false |
camunda.data.primary-storage.backup.s3.compression | When set to an algorithm such as When not set or set to Enabling compression reduces the required storage space for backups in S3 but also increases the impact on CPU and disk utilization while taking a backup. | - |
camunda.data.primary-storage.backup.s3.max-concurrent-connections | Maximum number of connections allowed in a connection pool. This is used to restrict the maximum number of concurrent uploads as to avoid connection timeouts when uploading backups with large/multiple files. | 50 |
camunda.data.primary-storage.backup.s3.connection-acquisition-timeout | Timeout for acquiring an already-established connection from a connection pool to a remote service. | 45s |
camunda.data.primary-storage.backup.s3.base-path | When set, all objects in the bucket will use this prefix. Must be non-empty and not start or end with ' This is useful for using the same bucket for multiple Zeebe clusters. In this scenario, the | Null |
camunda.data.primary-storage.backup.s3.support-legacy-md5 | Enable s3 md5 plugin for legacy support. | Null |
camunda.data.primary-storage.backup.gcs
| Property | Description | Default value |
|---|---|---|
camunda.data.primary-storage.backup.gcs.bucket-name | Name of the bucket where the backup will be stored.
| Null |
camunda.data.primary-storage.backup.gcs.endpoint | When set, all blobs in the bucket will use this prefix. This is useful for using the same bucket for multiple Zeebe clusters. In this scenario, the | Null |
camunda.data.primary-storage.backup.gcs.host | When set, this overrides the host that the GCS client connects to. By default, this is not set because the client can automatically discover the correct host to connect to. | AUTO |
camunda.data.primary-storage.backup.gcs.auth | Configures which authentication method is used for connecting to GCS. Can be either
| Null |
camunda.data.primary-storage.backup.azure
| Property | Description | Default value |
|---|---|---|
camunda.data.primary-storage.backup.azure.endpoint | The Azure endpoint to connect to. Required unless a connection string is specified. | Null |
camunda.data.primary-storage.backup.azure.account-name | The account name used to authenticate with Azure. This can only be used in combination with an account key. If account credentials or a connection string are not provided, authentication will use credentials from the runtime environment. | Null |
camunda.data.primary-storage.backup.azure.account-key | The account key that is used to authenticate with Azure. This can only be used in combination with an account name. If account credentials or a connection string are not provided, authentication will use credentials from the runtime environment. | Null |
camunda.data.primary-storage.backup.azure.connection-string | The connection string configures the endpoint, account name and account key all at once. Ifa connection string or account credentials are not provided, authentication will use credentials from the runtime environment. | Null |
camunda.data.primary-storage.backup.azure.base-path | Defines the container name where backup contents are saved. | Null |
camunda.data.primary-storage.backup.azure.create-container | Defines the container name where backup contents are saved. | true |
camunda.data.primary-storage.backup.azure.sas-token.type | This setting defines the SAS token to use. These can be of user delegation, service or account type. Note: As user delegation and service SAS tokens do not support the creation of containers, The user must make sure that the container already exists, or it will lead to a runtime error. Refer to delegate access by using a shared access signature. | Null |
camunda.data.primary-storage.backup.azure.sas-token.value | The actual Shared Access Signature (SAS) token value used for authentication. | Null |
camunda.data.primary-storage.backup.filesystem
| Property | Description | Default value |
|---|---|---|
camunda.data.primary-storage.backup.filesystem.base-path | Set the base path to store all related backup files in. | Null |
CAMUNDA_DATA_PRIMARYSTORAGE
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_PRIMARYSTORAGE_DIRECTORY | Specify the directory in which data is stored. | data |
CAMUNDA_DATA_PRIMARYSTORAGE_RUNTIMEDIRECTORY | Specify the directory in which runtime is stored.
Note: If runtime is on a different disk than the data directory, files must be copied to the data directory while taking the snapshot. This can impact disk i/o or performance during snapshotting. | '' |
CAMUNDA_DATA_PRIMARYSTORAGE_DISK
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_PRIMARYSTORAGE_DISK_MONITORINGINTERVAL | Sets the interval at which the disk usage is monitored. | 1s |
CAMUNDA_DATA_PRIMARYSTORAGE_DISK_MONITORINGENABLED | Configure disk monitoring to prevent getting into a non-recoverable state due to out of disk space. If monitoring is enabled, the broker rejects commands and pauses replication when the required | true |
CAMUNDA_DATA_PRIMARYSTORAGE_DISK_FREESPACE_PROCESSING | When the free space available is less than this value, the broker rejects all client commands and pauses processing. | 2GB |
CAMUNDA_DATA_PRIMARYSTORAGE_DISK_FREESPACE_REPLICATION | When the free space available is less than this value, the broker stops receiving replicated events. This value must be less than It is recommended to configure free space large enough for at least one log segment and one snapshot. This is because a partition needs enough space to take a new snapshot to be able to compact the log segments to make disk space available again. | 1GB |
CAMUNDA_DATA_PRIMARYSTORAGE_LOGSTREAM
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_PRIMARYSTORAGE_LOGSTREAM_LOGSEGMENTSIZE | The size of data log segment files. | 128MB |
CAMUNDA_DATA_PRIMARYSTORAGE_LOGSTREAM_LOGINDEXDENSITY | The density of the log index, which determines how frequently index entries are created in the log. This value specifies the number of log entries between each index entry. A lower value increases the number of index entries (improving lookup speed but using more memory), while a higher value reduces the number of index entries (saving memory but potentially slowing lookups). Valid values: any positive integer (recommended range: 1-1000). | 100 |
CAMUNDA_DATA_PRIMARYSTORAGE_ROCKSDB
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_PRIMARYSTORAGE_ROCKSDB_STATISTICSENABLED | Enables RocksDB statistics, which will be written to the RocksDB log file. | false |
CAMUNDA_DATA_PRIMARYSTORAGE_ROCKSDB_ACCESSMETRICS | Configures which, if any, RocksDB column family access metrics are exposed. Valid values are | none |
CAMUNDA_DATA_PRIMARYSTORAGE_ROCKSDB_MEMORYALLOCATIONSTRATEGY | Configures the RocksDB memory allocation strategy. Valid values are
| FRACTION |
CAMUNDA_DATA_PRIMARYSTORAGE_ROCKSDB_MEMORYLIMIT | Configures the expected RocksDB memory usage per partition when | 512MB |
CAMUNDA_DATA_PRIMARYSTORAGE_ROCKSDB_MEMORYFRACTION | Configures the fraction of total available memory to allocate to RocksDB. Only applies when Valid range: | 0.1 |
CAMUNDA_DATA_PRIMARYSTORAGE_ROCKSDB_MAXOPENFILES | Configures how many files are kept open by RocksDB. The default is unlimited (-1). This is a performance optimization: if you set a value greater than zero, it will keep track and cap the number of open files in the On accessing the files it needs to look them up in the cache. You should configure this property if the maximum open files are limited on your system, or if you have thousands of files in your RocksDB state as there is a memory overhead to keeping all of them open, and setting | -1 |
CAMUNDA_DATA_PRIMARYSTORAGE_ROCKSDB_MAXWRITEBUFFERNUMBER | Configures the maximum number of simultaneous write buffers/memtables RocksDB will have in memory. Normally about 2/3s of the This means the higher | 6 |
CAMUNDA_DATA_PRIMARYSTORAGE_ROCKSDB_MINWRITEBUFFERNUMBERTOMERGE | Configures how many write buffers should be full before they are merged and flushed to disk. A higher numeric value means you may flush less often, but will flush more data at once. A lower numeric value means flushing more often, but flushing less data at once. | 3 |
CAMUNDA_DATA_PRIMARYSTORAGE_ROCKSDB_IORATEBYTESPERSECOND | Configures a rate limit for write I/O of RocksDB. Setting any value less than or equal to 0 will disable this, which is the default setting. Setting a rate limit on the write I/O can help achieve more stable performance by avoiding write spikes consuming all available IOPS, leading to more predictable read rates. | 0 |
CAMUNDA_DATA_PRIMARYSTORAGE_ROCKSDB_WALDISABLED | Configures if the RocksDB write-ahead-log is used or not. By default, every write in RocksDB goes to the active write buffer and the WAL; this helps recover a RocksDB instance should it crash before the write buffer is flushed. Zeebe however only recovers from specific point-in-time snapshot, and never from a previously active RocksDB instance, which makes it a good candidate to disable the WAL. WAL is disabled by default as it can improve performance of Zeebe. | true |
CAMUNDA_DATA_PRIMARYSTORAGE_ROCKSDB_SSTPARTITIONINGENABLED | Configures if the RocksDB SST files should be partitioned based on some virtual column families. By default, RocksDB will not partition the SST files, which could influence the compacting of certain key ranges. Enabling this option gives RocksDB some good hints how to improve compaction and reduce the write amplification. Benchmarks have shown impressive results, allowing sustained performance on larger states. This setting will increase the general file count of runtime and snapshots. | true |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_STORE | Sets the backup store type. Supported values are
Note: This configuration applies to the backup of primary storage. | NONE |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_CONTINUOUS | Enables or disables the continuous backups feature. | false |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_REQUIRED | Forces the backup scheduler mechanism to be properly configured during broker startup. | false |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_SCHEDULE | The interval at which a primary storage backup is taken. Can be a CRON expression, an ISO-8601 duration, or none. For example, every 5 minutes would be 0 */5 * * * * or PT5M. | - |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_CHECKPOINTINTERVAL | The interval at which checkpoints are ingested into the log stream. Uses an ISO-8601 duration, for example PT5M. | - |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_OFFSET | Offset for the generated backup identifiers. | - |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_READTIMEOUT | The maximum duration for reading a response from an already-established connection to the backup store. A single request that exceeds this timeout fails and can be retried. For Applies to the When not set, the default of the underlying store client applies: 30s for Accepts a duration, for example | - |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_WRITETIMEOUT | The maximum duration for writing a request to an already-established connection to the backup store. A single request that exceeds this timeout fails and can be retried, with the same retry semantics as Applies to the Accepts a duration, for example | - |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_RETENTION
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_RETENTION_WINDOW | The active window of backups available for restore in the configured backup store. Uses an ISO-8601 duration, for example PT5M. | - |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_RETENTION_CLEANUPSCHEDULE | The interval at which the retention mechanism checks for backups outside the active window. Can be a CRON expression, an ISO-8601 duration, or none. For example, every 5 minutes would be 0 */5 * * * * or PT5M. | - |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_S3
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_S3_BUCKETNAME | Name of the bucket where the backup will be stored.
| Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_S3_ENDPOINT | Configure the URL endpoint for the store. If no endpoint is provided, it will be determined based on the configured region. | Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_S3_REGION | Configure the AWS region. If no region is provided it will be determined as documented in setting the AWS Region for the AWS SDK for Java 2.x. | Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_S3_ACCESSKEY | Configure access credentials. If either | - |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_S3_SECRETKEY | Configure access credentials. If either | - |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_S3_APICALLTIMEOUT | Configure a maximum duration for all S3 client API calls. Lower values will ensure that failed or slow API calls don't block other backups but may increase the risk that backups can't be stored if uploading parts of the backup takes longer than the configured timeout. Refer to AWS Java SDK 2.x Best Practices. | 180s |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_S3_FORCEPATHSTYLEACCESS | If enabled, forces the s3 client to use path-style access. By default, the client will automatically choose between path-style and virtual-hosted-style. This should only be enabled if the s3 compatible storage cannot support virtual-hosted-style. | false |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_S3_COMPRESSION | When set to an algorithm such as When not set or set to Enabling compression reduces the required storage space for backups in S3 but also increases the impact on CPU and disk utilization while taking a backup. | - |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_S3_MAXCONCURRENTCONNECTIONS | Maximum number of connections allowed in a connection pool. This is used to restrict the maximum number of concurrent uploads as to avoid connection timeouts when uploading backups with large/multiple files. | 50 |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_S3_CONNECTIONACQUISITIONTIMEOUT | Timeout for acquiring an already-established connection from a connection pool to a remote service. | 45s |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_S3_BASEPATH | When set, all objects in the bucket will use this prefix. Must be non-empty and not start or end with ' This is useful for using the same bucket for multiple Zeebe clusters. In this scenario, the | Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_S3_SUPPORTLEGACYMD5 | Enable s3 md5 plugin for legacy support. | Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_GCS
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_GCS_BUCKETNAME | Name of the bucket where the backup will be stored.
| Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_GCS_HOST | When set, this overrides the host that the GCS client connects to. By default, this is not set because the client can automatically discover the correct host to connect to. | AUTO |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_GCS_ENDPOINT | When set, all blobs in the bucket will use this prefix. This is useful for using the same bucket for multiple Zeebe clusters. In this scenario, the | Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_GCS_AUTH | Configures which authentication method is used for connecting to GCS. Can be either
| Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_AZURE
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_AZURE_ENDPOINT | The Azure endpoint to connect to. Required unless a connection string is specified. | Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_AZURE_ACCOUNTNAME | The account name used to authenticate with Azure. This can only be used in combination with an account key. If account credentials or a connection string are not provided, authentication will use credentials from the runtime environment. | Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_AZURE_ACCOUNTKEY | The account key that is used to authenticate with Azure. This can only be used in combination with an account name. If account credentials or a connection string are not provided, authentication will use credentials from the runtime environment. | Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_AZURE_CONNECTIONSTRING | The connection string configures the endpoint, account name and account key all at once. Ifa connection string or account credentials are not provided, authentication will use credentials from the runtime environment. | Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_AZURE_BASEPATH | Defines the container name where backup contents are saved. | Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_AZURE_CREATECONTAINER | Defines the container name where backup contents are saved. | true |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_AZURE_SASTOKEN_TYPE | This setting defines the SAS token to use. These can be of user delegation, service or account type. Note: As user delegation and service SAS tokens do not support the creation of containers, The user must make sure that the container already exists, or it will lead to a runtime error. Refer to delegate access by using a shared access signature. | Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_AZURE_SASTOKEN_VALUE | The actual Shared Access Signature (SAS) token value used for authentication. | Null |
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_FILESYSTEM
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_PRIMARYSTORAGE_BACKUP_FILESYSTEM_BASEPATH | Set the base path to store all related backup files in. | Null |
Data - secondary storage
Review secondary storage management for guidance on best practices, ensuring data integrity and performance optimization.
When Elasticsearch/OpenSearch Exporter indices and Orchestration Cluster indices share the same Elasticsearch or OpenSearch cluster, they must use different index prefixes. One prefix must not be the beginning of the other (for example, avoid custom and custom-zeebe together because custom* matches both). Do not use operate, tasklist, or camunda as the full exporter prefix, and do not use zeebe-record as the Orchestration Cluster index prefix, as zeebe-record is the default prefix for Elasticsearch/OpenSearch Exporter indices.
The Orchestration Cluster prefix is configured via
camunda.data.secondary-storage.{elasticsearch|opensearch}.index-prefix
(or CAMUNDA_DATA_SECONDARYSTORAGE_{ELASTICSEARCH|OPENSEARCH}_INDEXPREFIX).
For detailed requirements, configuration examples, and common mistakes, see index prefix configuration.
- Application properties
- Environment variables
camunda.data.secondary-storage
| Property | Description | Default value |
|---|---|---|
camunda.data.secondary-storage.type | Type of secondary storage to use. Example: | elasticsearch (orchestration default). |
camunda.data.secondary-storage.autoconfigure-camunda-exporter | If enabled, the default exporter Manual configuration of If disabled, Manual configuration of | true |
camunda.data.secondary-storage.retention.enabled | If true, the ILM Policy is created and applied to the index templates. | true |
camunda.data.secondary-storage.retention.minimum-age | Defines how old the data must be before the data is deleted, set as a duration. | 30d |
camunda.data.secondary-storage.elasticsearch
| Property | Description | Default value |
|---|---|---|
camunda.data.secondary-storage.elasticsearch.url | Endpoint for the database configured as secondary storage. Use the variable matching the selected type. Mutually exclusive with | http://localhost:9200 |
camunda.data.secondary-storage.elasticsearch.urls | List of endpoints for the database configured as secondary storage. Use for multi-node clusters. Mutually exclusive with | [] |
camunda.data.secondary-storage.elasticsearch.cluster-name | Secondary storage cluster name. Use the variable matching the selected type. | elasticsearch |
camunda.data.secondary-storage.elasticsearch.date-format | The date format for the database configured as secondary storage. | yyyy-MM-dd'T'HH:mm:ss.SSSZZ |
camunda.data.secondary-storage.elasticsearch.socket-timeout | The socket timeout for the database connector. | - |
camunda.data.secondary-storage.elasticsearch.connection-timeout | The connection timeout for the database connector. | - |
camunda.data.secondary-storage.elasticsearch.username | Username for the database configured as secondary storage. | '' |
camunda.data.secondary-storage.elasticsearch.password | Password for the database configured as secondary storage. | '' |
camunda.data.secondary-storage.elasticsearch.security.enabled | Enables HTTPS and related SSL/TLS handling for the secondary storage connection. | false |
camunda.data.secondary-storage.elasticsearch.security.certificate-path | Path to the trusted root or CA certificate file when using a custom or self-signed certificate. | '' |
camunda.data.secondary-storage.elasticsearch.security.verify-hostname | Whether the hostname in the certificate must match the endpoint. Disable only for troubleshooting. | true |
camunda.data.secondary-storage.elasticsearch.security.self-signed | Indicates the certificate is self-signed (enables relaxed trust handling when supported). | false |
camunda.data.secondary-storage.elasticsearch.interceptor-plugins[] | This property is part of Camunda's interceptor system. An interceptor plugin is a small Java component that can be used to intercept (logs and/or modify) the requests or the responses that happen between Camunda and the secondary storage database. More than one plugin can be configured, with the configuration declared as a list of interceptor configurations, each requiring an id, jar-path and class-name. For example: | - |
camunda.data.secondary-storage.elasticsearch.interceptor-plugins[].id | The mnemonic ID associated with the interceptor plugin. | - |
camunda.data.secondary-storage.elasticsearch.interceptor-plugins[].class-name | The Java identifier of the class that implements the interceptor plugin. | - |
camunda.data.secondary-storage.elasticsearch.interceptor-plugins[].jar-path | The location of the JAR archive that contains the code of the plugin. | - |
camunda.data.secondary-storage.elasticsearch.index-prefix | Prefix to apply to the indexes. Set only if you need to separate Orchestration Cluster indices from other indices in the same cluster (for example, when multiple Camunda environments share one cluster). Leave blank (-) to use the default. | '' |
camunda.data.secondary-storage.elasticsearch.number-of-shards | Default number of primary shards for new indices. | 1 |
camunda.data.secondary-storage.elasticsearch.number-of-replicas | Default number of replicas for new indices. | 1 |
camunda.data.secondary-storage.elasticsearch.template-priority | Priority applied to index templates created by the platform. Higher values override provider defaults. | 0 |
camunda.data.secondary-storage.elasticsearch.number-of-shards-per-index | Map overriding shard count per index (key=index name, value=shards). | {} |
camunda.data.secondary-storage.elasticsearch.number-of-replicas-per-index | JSON map overriding replica count per index (key=index name, value=replicas). | {} |
camunda.data.secondary-storage.elasticsearch.variable-size-threshold | Variable size threshold for the database configured as secondary storage. | 8191 |
camunda.data.secondary-storage.elasticsearch.bulk.delay | Delay before forced flush (in seconds). | '5s' |
camunda.data.secondary-storage.elasticsearch.bulk.size | Bulk size before flush. | 1000 |
camunda.data.secondary-storage.elasticsearch.bulk.memory-limit | Bulk memory usage before flush (in MB). | '20MB' |
camunda.data.secondary-storage.elasticsearch.process-cache.max-cache-size | Process cache max size. | 1000 |
camunda.data.secondary-storage.elasticsearch.form-cache.max-cache-size | Form cache max size. | 1000 |
camunda.data.secondary-storage.elasticsearch.batch-operation-cache.max-cache-size | Batch operations cache max size. | 1000 |
camunda.data.secondary-storage.elasticsearch.create-schema | Whether to create the schema automatically. | true |
camunda.data.secondary-storage.elasticsearch.post-export.batch-size | Defines the default number of records processed in each batch during post-export operations from secondary storage. | 100 |
camunda.data.secondary-storage.elasticsearch.post-export.delay-between-runs | Defines the default time interval between successive post-export processing runs for secondary storage. | '2s' |
camunda.data.secondary-storage.elasticsearch.post-export.max-delay-between-runs | Defines the default maximum time interval between successive post-export processing runs for secondary storage. | '60s' |
camunda.data.secondary-storage.elasticsearch.post-export.ignore-missing-data | Defines default error handling behavior when post-export processing encounters missing data in secondary storage. | false |
camunda.data.secondary-storage.elasticsearch.incident-notifier.auth0-protocol | The incident notifier is a Camunda Exporter feature that sends HTTP webhook notifications when incidents are created. The type of protocol to use for the incident notifier. | 'https' |
camunda.data.secondary-storage.elasticsearch.incident-notifier.webhook | The webhook to use when the notifier is triggered. | '' |
camunda.data.secondary-storage.elasticsearch.incident-notifier.m2m-client-id | The M2M client ID secret provided by the IdP or the auth0 admin. | '' |
camunda.data.secondary-storage.elasticsearch.incident-notifier.m2m-client-secret | The M2M client secret provided by the IdP or the auth0 admin. | '' |
camunda.data.secondary-storage.elasticsearch.incident-notifier.m2m-audience | The M2M audience provided by the IdP or the auth0 admin. | '' |
camunda.data.secondary-storage.elasticsearch.batch-operations.export-items-on-creation | Export the batch operation items when the initial chunk records are processed. If set to false, the batch operation items will be exported only when they have been processed and have completed or failed. | true |
camunda.data.secondary-storage.elasticsearch.history.process-instance-enabled | If | true |
camunda.data.secondary-storage.elasticsearch.history.els-rollover-date-format | Date format for historical indices in Java | date |
camunda.data.secondary-storage.elasticsearch.history.rollover-interval | Time range for creating dated indices. For example, | '1d' |
camunda.data.secondary-storage.elasticsearch.history.rollover-batch-size | Maximum number of process instances selected for archiving per run. Defaults to 500 when | 500 |
camunda.data.secondary-storage.elasticsearch.history.archive-by-id-enabled | When | true |
camunda.data.secondary-storage.elasticsearch.history.reindex-batch-size | Number of individual Elasticsearch/OpenSearch documents archived in each targeted batch when | 2500 |
camunda.data.secondary-storage.elasticsearch.history.wait-period-before-archiving | Grace period before archiving completed processes. Processes finished within this window are not yet archived. | '1h' |
camunda.data.secondary-storage.elasticsearch.history.delay-between-runs | Time interval between archiver runs. | '2s' |
camunda.data.secondary-storage.elasticsearch.history.max-delay-between-runs | Maximum time interval between archiver runs due to failure backoffs. | '60s' |
camunda.data.secondary-storage.elasticsearch.history.policy-name | Defines the name of the created and applied ILM policy. | 'camunda-history-retention-policy' |
camunda.data.secondary-storage.elasticsearch.proxy.enabled | Enable proxy for connecting to Elasticsearch. | false |
camunda.data.secondary-storage.elasticsearch.proxy.host | Proxy host. Required if proxy is enabled. | '' |
camunda.data.secondary-storage.elasticsearch.proxy.port | Proxy port. Required if proxy is enabled. | '' |
camunda.data.secondary-storage.elasticsearch.proxy.ssl-enabled | Enable SSL for the proxy connection. | false |
camunda.data.secondary-storage.elasticsearch.proxy.username | Username for proxy authentication. | '' |
camunda.data.secondary-storage.elasticsearch.proxy.password | Password for proxy authentication. | '' |
camunda.data.secondary-storage.elasticsearch.backup.repository-name | Set the Elasticsearch snapshot repository name. Note: This setting applies to backups of secondary storage. | '' |
camunda.data.secondary-storage.elasticsearch.backup.snapshot-timeout | A backup of history data consists of multiple Elasticsearch snapshots. The Note: This setting applies to backups of secondary storage. | 0 |
camunda.data.secondary-storage.elasticsearch.backup.incomplete-check-timeout | Defines the timeout period for determining whether an incomplete backup should be considered as failed or still in progress. This property helps distinguish between backups that are actively running versus those that may have stalled or failed silently. Note: This setting applies to backups of secondary storage. | 5m |
camunda.data.secondary-storage.opensearch
| Property | Description | Default value |
|---|---|---|
camunda.data.secondary-storage.opensearch.url | Endpoint for the database configured as secondary storage. Use the variable matching the selected type. Mutually exclusive with | http://localhost:9200 |
camunda.data.secondary-storage.opensearch.urls | List of endpoints for the database configured as secondary storage. Use for multi-node clusters. Mutually exclusive with | [] |
camunda.data.secondary-storage.opensearch.cluster-name | Secondary storage cluster name. Use the variable matching the selected type. | elasticsearch |
camunda.data.secondary-storage.opensearch.date-format | The date format for the database configured as secondary storage. | yyyy-MM-dd'T'HH:mm:ss.SSSZZ |
camunda.data.secondary-storage.opensearch.socket-timeout | The socket timeout for the database connector. | - |
camunda.data.secondary-storage.opensearch.connection-timeout | The connection timeout for the database connector. | - |
camunda.data.secondary-storage.opensearch.aws-enabled | Enables AWS-related connection handling for the secondary storage connection. | false |
camunda.data.secondary-storage.opensearch.username | Username for accessing the secondary storage REST API (leave blank if not secured). | '' |
camunda.data.secondary-storage.opensearch.password | Password for accessing the secondary storage REST API. | '' |
camunda.data.secondary-storage.opensearch.security.enabled | Enables HTTPS and related SSL/TLS handling for the secondary storage connection. | false |
camunda.data.secondary-storage.opensearch.security.certificate-path | Path to the trusted root or CA certificate file when using a custom or self-signed certificate. | '' |
camunda.data.secondary-storage.opensearch.security.verify-hostname | Whether the hostname in the certificate must match the endpoint. Disable only for troubleshooting. | true |
camunda.data.secondary-storage.opensearch.security.self-signed | Indicates the certificate is self-signed (enables relaxed trust handling when supported). | false |
camunda.data.secondary-storage.opensearch.interceptor-plugins[] | This property is part of Camunda's interceptor system. An interceptor plugin is a small Java component that can be used to intercept (logs and/or modify) the requests or the responses that happen between Camunda and the secondary storage database. More than one plugin can be configured, with the configuration declared as a list of interceptor configurations, each requiring an id, jar-path and class-name. For example: | - |
camunda.data.secondary-storage.opensearch.interceptor-plugins[].id | The mnemonic ID associated with the interceptor plugin. | - |
camunda.data.secondary-storage.opensearch.interceptor-plugins[].class-name | The Java identifier of the class that implements the interceptor plugin. | - |
camunda.data.secondary-storage.opensearch.interceptor-plugins[].jar-path | The location of the JAR archive that contains the code of the plugin. | - |
camunda.data.secondary-storage.opensearch.index-prefix | Prefix to apply to the indexes. Set only if you need to separate Orchestration Cluster indices from other indices in the same cluster (for example, when multiple Camunda environments share one cluster). Leave blank (-) to use the default. | '' |
camunda.data.secondary-storage.opensearch.number-of-shards | Default number of primary shards for new indices. | 1 |
camunda.data.secondary-storage.opensearch.number-of-replicas | Default number of replicas for new indices. | 1 |
camunda.data.secondary-storage.opensearch.template-priority | Priority applied to index templates created by the platform. Higher values override provider defaults. | 0 |
camunda.data.secondary-storage.opensearch.number-of-shards-per-index | Map overriding shard count per index (key=index name, value=shards). | {} |
camunda.data.secondary-storage.opensearch.number-of-replicas-per-index | JSON map overriding replica count per index (key=index name, value=replicas). | {} |
camunda.data.secondary-storage.opensearch.variable-size-threshold | Variable size threshold for the database configured as secondary storage. | 8191 |
camunda.data.secondary-storage.opensearch.bulk.delay | Delay before forced flush (in seconds). | '5s' |
camunda.data.secondary-storage.opensearch.bulk.size | Bulk size before flush. | 1000 |
camunda.data.secondary-storage.opensearch.bulk.memory-limit | Bulk memory usage before flush (in MB). | '20MB' |
camunda.data.secondary-storage.opensearch.process-cache.max-cache-size | Process cache max size. | 1000 |
camunda.data.secondary-storage.opensearch.form-cache.max-cache-size | Form cache max size. | 1000 |
camunda.data.secondary-storage.opensearch.batch-operation-cache.max-cache-size | Batch operations cache max size. | 1000 |
camunda.data.secondary-storage.opensearch.create-schema | Whether to create the schema automatically. | true |
camunda.data.secondary-storage.opensearch.post-export.batch-size | Defines the default number of records processed in each batch during post-export operations from secondary storage. | 100 |
camunda.data.secondary-storage.opensearch.post-export.delay-between-runs | Defines the default time interval between successive post-export processing runs for secondary storage. | '2s' |
camunda.data.secondary-storage.opensearch.post-export.max-delay-between-runs | Defines the default maximum time interval between successive post-export processing runs for secondary storage. | '60s' |
camunda.data.secondary-storage.opensearch.post-export.ignore-missing-data | Defines default error handling behavior when post-export processing encounters missing data in secondary storage. | false |
camunda.data.secondary-storage.opensearch.incident-notifier.auth0-protocol | The incident notifier is a Camunda Exporter feature that sends HTTP webhook notifications when incidents are created. The type of protocol to use for the incident notifier. | 'https' |
camunda.data.secondary-storage.opensearch.incident-notifier.webhook | The webhook to use when the notifier is triggered. | '' |
camunda.data.secondary-storage.opensearch.incident-notifier.m2m-client-id | The M2M client ID secret provided by the IdP or the auth0 admin. | '' |
camunda.data.secondary-storage.opensearch.incident-notifier.m2m-client-secret | The M2M client secret provided by the IdP or the auth0 admin. | '' |
camunda.data.secondary-storage.opensearch.incident-notifier.m2m-audience | The M2M audience provided by the IdP or the auth0 admin. | '' |
camunda.data.secondary-storage.opensearch.batch-operations.export-items-on-creation | Export the batch operation items when the initial chunk records are processed. If set to false, the batch operation items will be exported only when they have been processed and have completed or failed. | true |
camunda.data.secondary-storage.opensearch.history.process-instance-enabled | If | true |
camunda.data.secondary-storage.opensearch.history.els-rollover-date-format | Date format for historical indices in Java | date |
camunda.data.secondary-storage.opensearch.history.rollover-interval | Time range for creating dated indices. For example, | '1d' |
camunda.data.secondary-storage.opensearch.history.rollover-batch-size | Maximum number of process instances selected for archiving per run. Defaults to 500 when | 500 |
camunda.data.secondary-storage.opensearch.history.archive-by-id-enabled | When | true |
camunda.data.secondary-storage.opensearch.history.reindex-batch-size | Number of individual Elasticsearch/OpenSearch documents archived in each targeted batch when | 2500 |
camunda.data.secondary-storage.opensearch.history.wait-period-before-archiving | Grace period before archiving completed processes. Processes finished within this window are not yet archived. | '1h' |
camunda.data.secondary-storage.opensearch.history.delay-between-runs | Time interval between archiver runs. | '2s' |
camunda.data.secondary-storage.opensearch.history.max-delay-between-runs | Maximum time interval between archiver runs due to failure backoffs. | '60s' |
camunda.data.secondary-storage.opensearch.history.policy-name | Defines the name of the created and applied ILM policy. | 'camunda-history-retention-policy' |
camunda.data.secondary-storage.opensearch.proxy.enabled | Enable proxy for connecting to OpenSearch. | false |
camunda.data.secondary-storage.opensearch.proxy.host | Proxy host. Required if proxy is enabled. | '' |
camunda.data.secondary-storage.opensearch.proxy.port | Proxy port. Required if proxy is enabled. | '' |
camunda.data.secondary-storage.opensearch.proxy.ssl-enabled | Enable SSL for the proxy connection. | false |
camunda.data.secondary-storage.opensearch.proxy.username | Username for proxy authentication. | '' |
camunda.data.secondary-storage.opensearch.proxy.password | Password for proxy authentication. | '' |
camunda.data.secondary-storage.opensearch.backup.repository-name | Set the OpenSearch snapshot repository name. Note: This setting applies to backups of secondary storage. | '' |
camunda.data.secondary-storage.opensearch.backup.snapshot-timeout | A backup of history data consists of multiple OpenSearch snapshots. The Note: This setting applies to backups of secondary storage. | 0 |
camunda.data.secondary-storage.opensearch.backup.incomplete-check-timeout | Defines the timeout period for determining whether an incomplete backup should be considered as failed or still in progress. This property helps distinguish between backups that are actively running versus those that may have stalled or failed silently. Note: This setting applies to backups of secondary storage. | 5m |
camunda.data.secondary-storage.rdbms
| Property | Description | Default value |
|---|---|---|
camunda.data.secondary-storage.rdbms.url | Endpoint for the database configured as secondary storage. | '' |
camunda.data.secondary-storage.rdbms.username | Username for accessing the secondary storage REST API (leave blank if not secured). | '' |
camunda.data.secondary-storage.rdbms.password | Password for the database configured as secondary storage. | '' |
camunda.data.secondary-storage.rdbms.prefix | The prefix to use for all database artifacts such as tables, indexes, and so on. | '' |
camunda.data.secondary-storage.rdbms.flush-interval | The interval at which the exporters execution queue is flushed. | 'PT0.5S' |
camunda.data.secondary-storage.rdbms.queue-size | The maximum size of the exporters execution queue before it is flushed to the database. | 1000 |
camunda.data.secondary-storage.rdbms.queue-memory-limit | The maximum memory (in MB) that the execution queue can consume before it is flushed to the database. This helps prevent OOM when processing large processes with large variables. | 20 |
camunda.data.secondary-storage.rdbms.auto-ddl | If set to true, the database schema is automatically created and updated on application startup. | true |
camunda.data.secondary-storage.rdbms.database-vendor-id | Camunda attempts to automatically detect the database vendor from the connection. To override this automation, declare the database vendor here. Values: | '' |
camunda.data.secondary-storage.rdbms.history.default-history-ttl | The default time to live for all camunda entities that support history time to live. Specified in Java Duration format. | 'P30D' |
camunda.data.secondary-storage.rdbms.history.default-batch-operation-history-ttl | The default time to live for all batch operations. Specified in Java Duration format. | 'P5D' |
camunda.data.secondary-storage.rdbms.history.batch-operation-cancel-process-instance-history-ttl | The default time to live for cancel process instance batch operations. Specified in Java Duration format. | 'P5D' |
camunda.data.secondary-storage.rdbms.history.batch-operation-migrate-process-instance-history-ttl | The default time to live for migrate process instance batch operations. Specified in Java Duration format. | 'P5D' |
camunda.data.secondary-storage.rdbms.history.batch-operation-modify-process-instance-history-ttl | The default time to live for modify process instance batch operations. Specified in Java Duration format. | 'P5D' |
camunda.data.secondary-storage.rdbms.history.batch-operation-resolve-incident-history-ttl | The default time to live for resolve incident batch operations. Specified in Java Duration format. | 'P5D' |
camunda.data.secondary-storage.rdbms.history.usage-metrics-cleanup | Interval how often usage metrics cleanup is performed. Specified in Java Duration format. | 'P1D' |
camunda.data.secondary-storage.rdbms.history.usage-metrics-ttl | The default time to live for usage metrics. Specified in Java Duration format. | 'P730D' |
camunda.data.secondary-storage.rdbms.history.min-history-cleanup-interval | The min interval between two history cleanup runs. This will be reached when the system is constantly finding data to clean up. Specified in Java Duration format. | 'PT1M' |
camunda.data.secondary-storage.rdbms.history.max-history-cleanup-interval | The max interval between two history cleanup runs. This will be reached when the system is constantly finding no data to clean up. Specified in Java Duration format. | 'PT1H' |
camunda.data.secondary-storage.rdbms.history.history-cleanup-batch-size | The number of history records to delete in one batch. | 1000 |
camunda.data.secondary-storage.rdbms.process-cache.max-size | The maximum number of entries the process cache may contain. When the size of the cache exceeds this, the oldest entries are removed. | 1000 |
camunda.data.secondary-storage.rdbms.batch-operation-cache.max-size | The maximum number of batch operations entries the cache may contain. When the size of the cache exceeds this, the oldest entries are removed. | 1000 |
camunda.data.secondary-storage.rdbms.export-batch-operation-items-on-creation | If When set to | true |
camunda.data.secondary-storage.rdbms.batch-operation-item-inserts-block-size | The number of batch operation items to insert in a single batched SQL when creating the items for a batch operation. This is only relevant when | 1000 |
camunda.data.secondary-storage.rdbms.connection-pool.maximum-pool-size | Pass-through property for the Hikari connection pool. Controls the maximum size that the pool is allowed to reach, including both idle and in-use connections. | 10 |
camunda.data.secondary-storage.rdbms.connection-pool.minimum-idle | Pass-through property for the Hikari connection pool. Controls the minimum number of idle connections that HikariCP tries to maintain in the pool. | 10 |
camunda.data.secondary-storage.rdbms.connection-pool.idle-timeout | Pass-through property for the Hikari connection pool. Controls the maximum amount of time that a connection is allowed to sit idle in the pool. This setting only applies when | 600000 |
camunda.data.secondary-storage.rdbms.connection-pool.max-lifetime | Pass-through property for the Hikari connection pool. Controls the maximum lifetime of a connection in the pool. An in-use connection will never be retired, only when it is closed will it then be removed. | 1800000 |
camunda.data.secondary-storage.rdbms.connection-pool.connection-timeout | Pass-through property for the Hikari connection pool. Controls the maximum number of milliseconds that a client will wait for a connection from the pool before an exception is thrown. | 30000 |
camunda.data.secondary-storage.rdbms.async-replication.enabled | If the async replication monitoring should be enabled. | false |
camunda.data.secondary-storage.rdbms.async-replication.type | The type name of the replication monitoring strategy. Possible values: DELAY, LOG_SEQ. | '' |
camunda.data.secondary-storage.rdbms.async-replication.min-sync-replicas | The minimal number of replicas in sync. | 1 |
camunda.data.secondary-storage.rdbms.async-replication.polling-interval | The interval in which to check the replicas. | PT15S |
camunda.data.secondary-storage.rdbms.async-replication.max-lag | The max tolerated lag of a replication. Specified in Java Duration format. | PT15M |
camunda.data.secondary-storage.rdbms.async-replication.pause-on-max-lag-exceeded | If the exporter should pause exporting when the maximum lag limit is exceeded. | false |
camunda.data.secondary-storage.rdbms.async-replication.delay | The delay to wait until a flushed record is acknowledged to the broker. | '' |
camunda.data.secondary-storage.rdbms.async-replication.queue-capacity | Size of the internal queue of record positions to acknowledge | 8192 |
camunda.data.secondary-storage.rdbms.async-replication.queue-debounce-time | A debounce time to not add every record to the queue but only one every X seconds. Specified in Java Duration format. | PT5S |
CAMUNDA_DATA_SECONDARYSTORAGE
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_SECONDARYSTORAGE_TYPE | Type of secondary storage to use. Example: |
|
CAMUNDA_DATA_SECONDARYSTORAGE_AUTOCONFIGURECAMUNDAEXPORTER | If enabled, the default exporter Manual configuration of If disabled, Manual configuration of | true |
CAMUNDA_DATA_SECONDARYSTORAGE_RETENTION_ENABLED | If true, the ILM Policy is created and applied to the index templates. | true |
CAMUNDA_DATA_SECONDARYSTORAGE_RETENTION_MINIMUMAGE | Defines how old the data must be before the data is deleted, set as a duration. | 30d |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_URL | Endpoint for the database configured as secondary storage. Use the variable matching the selected type. Mutually exclusive with | http://localhost:9200 |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_URLS | List of endpoints for the database configured as secondary storage. Use for multi-node clusters. Mutually exclusive with | [] |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_CLUSTERNAME | Secondary storage cluster name. Use the variable matching the selected type. | elasticsearch |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_DATEFORMAT | The date format for the database configured as secondary storage. | yyyy-MM-dd'T'HH:mm:ss.SSSZZ |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_SOCKETTIMEOUT | The socket timeout for the database connector. | - |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_CONNECTIONTIMEOUT | The connection timeout for the database connector. | - |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_USERNAME | Username for accessing the secondary storage REST API (leave blank if not secured). | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_PASSWORD | Password for accessing the secondary storage REST API. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_SECURITY_ENABLED | Enables HTTPS and related SSL/TLS handling for the secondary storage connection. | false |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_SECURITY_CERTIFICATEPATH | Path to the trusted root or CA certificate file when using a custom or self-signed certificate. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_SECURITY_VERIFYHOSTNAME | Whether the hostname in the certificate must match the endpoint. Disable only for troubleshooting. | true |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_SECURITY_SELFSIGNED | Indicates the certificate is self-signed (enables relaxed trust handling when supported). | false |
CAMUNDA_DATA_SECONDARY_STORAGE_ELASTICSEARCH_INTERCEPTORPLUGINS | This property is part of Camunda's interceptor system. An interceptor plugin is a small Java component that can be used to intercept (logs and/or modify) the requests or the responses that happen between Camunda and the secondary storage database. More than one plugin can be configured, with the configuration declared as a list of interceptor configurations, each requiring an For example: | - |
CAMUNDA_DATA_SECONDARY_STORAGE_ELASTICSEARCH_INTERCEPTORPLUGINS_ID | The mnemonic ID associated with the interceptor plugin. | - |
CAMUNDA_DATA_SECONDARY_STORAGE_ELASTICSEARCH_INTERCEPTORPLUGINS_CLASSNAME | The Java identifier of the class that implements the interceptor plugin. | - |
CAMUNDA_DATA_SECONDARY_STORAGE_ELASTICSEARCH_INTERCEPTORPLUGINS_JARPATH | The location of the JAR archive that contains the code of the plugin. | - |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_INDEXPREFIX | Prefix to apply to the indexes. Set only if you need to separate Orchestration Cluster indices from other indices in the same cluster (for example, when multiple Camunda environments share one cluster). Leave blank (-) to use the default. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_NUMBEROFSHARDS | Default number of primary shards for new indices. | 1 |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_NUMBEROFREPLICAS | Default number of replicas for new indices. | 0 |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_TEMPLATEPRIORITY | Priority applied to index templates created by the platform. Higher values override provider defaults. | 0 |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_NUMBEROFSHARDSPERINDEX | Map overriding shard count per index (key=index name, value=shards). | {} |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_NUMBEROFREPLICASPERINDEX | JSON map overriding replica count per index (key=index name, value=replicas). | {} |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_VARIABLESIZETHRESHOLD | Variable size threshold for the database configured as secondary storage. | 8191 |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_BULK_DELAY | Delay before forced flush (in seconds). | '5s' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_BULK_SIZE | Bulk size before flush. | 1000 |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_BULK_MEMORYLIMIT | Bulk memory usage before flush (in MB). | '20MB' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_PROCESSCAACHE_MAXCACHESIZE | Process cache max size. | 1000 |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_FORMCACHE_MAXCACHESIZE | Form cache max size. | 1000 |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_BATCHOPERATIONCACHE_MAXCACHESIZE | Batch operations cache max size. | 1000 |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_CREATESCHEMA | Whether to create the schema automatically | true |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_POSTEXPORT_BATCHSIZE | Defines the default number of records processed in each batch during post-export operations from secondary storage. | 100 |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_POSTEXPORT_DELAYBETWEENRUNS | Defines the default time interval between successive post-export processing runs for secondary storage. | '2s' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_POSTEXPORT_MAXDELAYBETWEENRUNS | Defines the default maximum time interval between successive post-export processing runs for secondary storage. | '60s' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_POSTEXPORT_IGNOREMISSINGDATA | Defines default error handling behavior when post-export processing encounters missing data in secondary storage. | false |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_INCIDENTNOTIFIER_AUTH0PROTOCOL | The incident notifier is a Camunda Exporter feature that sends HTTP webhook notifications when incidents are created. The type of protocol to use for the incident notifier. | 'https' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_INCIDENTNOTIFIER_WEBHOOK | The webhook to use when the notifier is triggered. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_INCIDENTNOTIFIER_M2MCLIENTID | The M2M client ID secret provided by the IdP or the auth0 admin. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_INCIDENTNOTIFIER_M2MCLIENTSECRET | The M2M client secret provided by the IdP or the auth0 admin. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_INCIDENTNOTIFIER_M2MAUDIENCE | The M2M audience provided by the IdP or the auth0 admin. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_BATCHOPERATIONS_EXPORTITEMSONCREATION | Export the batch operation items when the initial chunk records are processed. If set to false, the batch operation items will be exported only when they have been processed and have completed or failed. | true |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_HISTORY_PROCESSINSTANCEENABLED | If | true |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_HISTORY_ELSROLLOVERDATEFORMAT | Date format for historical indices in Java | date |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_HISTORY_ROLLOVERINTERVAL | Time range for creating dated indices. For example, | '1d' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_HISTORY_ROLLOVERBATCHSIZE | Maximum number of process instances selected for archiving per run. Defaults to 500 when | 500 |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_HISTORY_ARCHIVEBYIDENABLED | When | true |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_HISTORY_REINDEXBATCHSIZE | Number of individual Elasticsearch/OpenSearch documents archived in each targeted batch when | 2500 |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_HISTORY_WAITPERIODBEFOREARCHIVING | Grace period before archiving completed processes. Processes finished within this window are not yet archived. | '1h' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_HISTORY_DELAYBETWEENRUNS | Time interval between archiver runs. | '2s' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_HISTORY_MAXDELAYBETWEENRUNS | Maximum time interval between archiver runs due to failure backoffs. | '60s' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_HISTORY_POLICYNAME | Defines the name of the created and applied ILM policy. | 'camunda-history-retention-policy' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_PROXY_ENABLED | Enable proxy for connecting to Elasticsearch. | false |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_PROXY_HOST | Proxy host. Required if proxy is enabled. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_PROXY_PORT | Proxy port. Required if proxy is enabled. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_PROXY_SSLENABLED | Enable SSL for the proxy connection. | false |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_PROXY_USERNAME | Username for proxy authentication. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_PROXY_PASSWORD | Password for proxy authentication. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_BACKUP_REPOSITORYNAME | Set the Elasticsearch snapshot repository name. Note: This setting applies to backups of secondary storage. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_BACKUP_SNAPSHOTTIMEOUT | A backup of history data consists of multiple Elasticsearch snapshots. Controls the maximum time to wait for a snapshot operation to complete during backup creation. When set to 0, the system will wait indefinitely for snapshots to finish. Note: This setting applies to backups of secondary storage. | 0 |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_BACKUP_INCOMPLETECHECKTIMEOUT | Defines the timeout period for determining whether an incomplete backup should be considered as failed or still in progress. This property helps distinguish between backups that are actively running versus those that may have stalled or failed silently. Note: This setting applies to backups of secondary storage. | 5m |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_URL | Endpoint for the database configured as secondary storage. Use the variable matching the selected type. Mutually exclusive with | http://localhost:9200 |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_URLS | List of endpoints for the database configured as secondary storage. Use for multi-node clusters. Mutually exclusive with | [] |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_CLUSTERNAME | Secondary storage cluster name. Use the variable matching the selected type. | elasticsearch' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_USERNAME | Username for accessing the secondary storage REST API (leave blank if not secured). | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_PASSWORD | Password for accessing the secondary storage REST API. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_SECURITY_ENABLED | Enables HTTPS and related SSL/TLS handling for the secondary storage connection. | false |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_SECURITY_CERTIFICATEPATH | Path to the trusted root or CA certificate file when using a custom or self-signed certificate. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_SECURITY_VERIFYHOSTNAME | Whether the hostname in the certificate must match the endpoint. Disable only for troubleshooting. | true |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_SECURITY_SELFSIGNED | Indicates the certificate is self-signed (enables relaxed trust handling when supported). | false |
CAMUNDA_DATA_SECONDARY_STORAGE_OPENSEARCH_INTERCEPTORPLUGINS | This property is part of Camunda's interceptor system. An interceptor plugin is a small Java component that can be used to intercept (logs and/or modify) the requests or the responses that happen between Camunda and the secondary storage database. More than one plugin can be configured, with the configuration declared as a list of interceptor configurations, each requiring an For example: | - |
CAMUNDA_DATA_SECONDARY_STORAGE_OPENSEARCH_INTERCEPTORPLUGINS_ID | The mnemonic ID associated with the interceptor plugin. | - |
CAMUNDA_DATA_SECONDARY_STORAGE_OPENSEARCH_INTERCEPTORPLUGINS_CLASSNAME | The Java identifier of the class that implements the interceptor plugin. | - |
CAMUNDA_DATA_SECONDARY_STORAGE_OPENSEARCH_INTERCEPTORPLUGINS_JARPATH | The location of the JAR archive that contains the code of the plugin. | - |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_INDEXPREFIX | Prefix to apply to the indexes. Set only if you need to separate Orchestration Cluster indices from other indices in the same cluster (for example, when multiple Camunda environments share one cluster). Leave blank (-) to use the default. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_NUMBEROFSHARDS | Default number of primary shards for new indices. | 1 |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_NUMBEROFREPLICAS | Default number of replicas for new indices. | 0 |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_TEMPLATEPRIORITY | Priority applied to index templates created by the platform. Higher values override provider defaults. | 0 |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_NUMBEROFSHARDSPERINDEX | Map overriding shard count per index (key=index name, value=shards). | {} |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_NUMBEROFREPLICASPERINDEX | JSON map overriding replica count per index (key=index name, value=replicas). | {} |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_VARIABLESIZETHRESHOLD | Variable size threshold for the database configured as secondary storage. | 8191 |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_BULK_DELAY | Delay before forced flush (in seconds). | '5s' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_BULK_SIZE | Bulk size before flush. | 1000 |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_BULK_MEMORYLIMIT | Bulk memory usage before flush (in MB). | '20MB' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_PROCESSCAACHE_MAXCACHESIZE | Process cache max size. | 1000 |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_FORMCACHE_MAXCACHESIZE | Form cache max size. | 1000 |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_BATCHOPERATIONCACHE_MAXCACHESIZE | Batch operations cache max size. | 1000 |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_CREATESCHEMA | Whether to create the schema automatically. | true |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_POSTEXPORT_BATCHSIZE | Defines the default number of records processed in each batch during post-export operations from secondary storage. | 100 |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_POSTEXPORT_DELAYBETWEENRUNS | Defines the default time interval between successive post-export processing runs for secondary storage. | '2s' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_POSTEXPORT_MAXDELAYBETWEENRUNS | Defines the default maximum time interval between successive post-export processing runs for secondary storage. | '60s' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_POSTEXPORT_IGNOREMISSINGDATA | Defines default error handling behavior when post-export processing encounters missing data in secondary storage. | false |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_INCIDENTNOTIFIER_AUTH0PROTOCOL | The incident notifier is a Camunda Exporter feature that sends HTTP webhook notifications when incidents are created. The type of protocol to use for the incident notifier. | 'https' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_INCIDENTNOTIFIER_WEBHOOK | The webhook to use when the notifier is triggered. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_INCIDENTNOTIFIER_M2MCLIENTID | The M2M client ID secret provided by the IdP or the auth0 admin. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_INCIDENTNOTIFIER_M2MCLIENTSECRET | The M2M client secret provided by the IdP or the auth0 admin. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_INCIDENTNOTIFIER_M2MAUDIENCE | The M2M audience provided by the IdP or the auth0 admin. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_BATCHOPERATIONS_EXPORTITEMSONCREATION | Export the batch operation items when the initial chunk records are processed. If set to false, the batch operation items will be exported only when they have been processed and have completed or failed. | true |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_HISTORY_PROCESSINSTANCEENABLED | If | true |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_HISTORY_ELSROLLOVERDATEFORMAT | Date format for historical indices in Java | date |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_HISTORY_ROLLOVERINTERVAL | Time range for creating dated indices. For example, | '1d' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_HISTORY_ROLLOVERBATCHSIZE | Maximum number of process instances selected for archiving per run. Defaults to 500 when | 500 |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_HISTORY_ARCHIVEBYIDENABLED | When | true |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_HISTORY_REINDEXBATCHSIZE | Number of individual Elasticsearch/OpenSearch documents archived in each targeted batch when | 2500 |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_HISTORY_WAITPERIODBEFOREARCHIVING | Grace period before archiving completed processes. Processes finished within this window are not yet archived. | '1h' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_HISTORY_DELAYBETWEENRUNS | Time interval between archiver runs. | '2s' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_HISTORY_MAXDELAYBETWEENRUNS | Maximum time interval between archiver runs due to failure backoffs. | '60s' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_HISTORY_POLICYNAME | Defines the name of the created and applied ILM policy. | 'camunda-history-retention-policy' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_PROXY_ENABLED | Enable proxy for connecting to OpenSearch. | false |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_PROXY_HOST | Proxy host. Required if proxy is enabled. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_PROXY_PORT | Proxy port. Required if proxy is enabled. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_PROXY_SSLENABLED | Enable SSL for the proxy connection. | false |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_PROXY_USERNAME | Username for proxy authentication. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_PROXY_PASSWORD | Password for proxy authentication. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_BACKUP_REPOSITORYNAME | Set the OpenSearch snapshot repository name. Note: This setting applies to backups of secondary storage. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_BACKUP_SNAPSHOTTIMEOUT | A backup of history data consists of multiple OpenSearch snapshots. Controls the maximum time to wait for a snapshot operation to complete during backup creation. When set to 0, the system will wait indefinitely for snapshots to finish. Note: This setting applies to backups of secondary storage. | 0 |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_BACKUP_INCOMPLETECHECKTIMEOUT | Defines the timeout period for determining whether an incomplete backup should be considered as failed or still in progress. This property helps distinguish between backups that are actively running versus those that may have stalled or failed silently. Note: This setting applies to backups of secondary storage. | 5m |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_URL | Endpoint for the database configured as secondary storage. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_USERNAME | Username for the database configured as secondary storage. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_PASSWORD | Password for the database configured as secondary storage. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_PREFIX | The prefix to use for all database artifacts such as tables, indexes, and so on. | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_FLUSHINTERVAL | The interval at which the exporters execution queue is flushed. | 'PT0.5S' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_QUEUESIZE | The maximum size of the exporters execution queue before it is flushed to the database. | 1000 |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_QUEUEMEMORYLIMIT | The maximum memory (in MB) that the execution queue can consume before it is flushed to the database. This helps prevent OOM when processing large processes with large variables. | 20 |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_AUTODDL | If set to true, the database schema is automatically created and updated on application startup. | true |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_DATABASEVENDORID | Camunda attempts to automatically detect the database vendor from the connection. To override this automation, declare the database vendor here. Values: | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_HISTORY_DEFAULTHISTORYTTL | The default time to live for all camunda entities that support history time to live. Specified in Java Duration format. | 'P30D' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_HISTORY_DEFAULTBATCHOPERATIONHISTORYTTL | The default time to live for all batch operations. Specified in Java Duration format. | 'P5D' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_HISTORY_BATCHOPERATIONCANCELPROCESSINSTANCEHISTORYTTL | The default time to live for cancel process instance batch operations. Specified in Java Duration format. | 'P5D' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_HISTORY_BATCHOPERATIONMIGRATEPROCESSINSTANCEHISTORYTTL | The default time to live for migrate process instance batch operations. Specified in Java Duration format. | 'P5D' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_HISTORY_BATCHOPERATIONMODIFYPROCESSINSTANCEHISTORYTTL | The default time to live for modify process instance batch operations. Specified in Java Duration format. | 'P5D' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_HISTORY_BATCHOPERATIONRESOLVEINCIDENTHISTORYTTL | The default time to live for resolve incident batch operations. Specified in Java Duration format. | 'P5D' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_HISTORY_USAGEMETRICSCLEANUP | Interval how often usage metrics cleanup is performed. Specified in Java Duration format. | 'P1D' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_HISTORY_USAGEMETRICSTTL | The default time to live for usage metrics. Specified in Java Duration format. | 'P730D' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_HISTORY_MINHISTORYCLEANUPINTERVAL | The min interval between two history cleanup runs. This will be reached when the system is constantly finding data to clean up. Specified in Java Duration format. | 'PT1M' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_HISTORY_MAXHISTORYCLEANUPINTERVAL | The max interval between two history cleanup runs. This will be reached when the system is constantly finding data to clean up. Specified in Java Duration format. | 'PT1H' |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_HISTORY_HISTORYCLEANUPBATCHSIZE | The number of history records to delete in one batch. | 1000 |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_PROCESSCACHE_MAXSIZE | The maximum number of entries the process cache may contain. When the size of the cache exceeds this, the oldest entries are removed. | 1000 |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_BATCHOPERATIONCACHE_MAX-SIZE | The maximum number of batch operations entries the cache may contain. When the size of the cache exceeds this, the oldest entries are removed. | 1000 |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_EXPORTBATCHOPERATIONITEMSONCREATION | If When set to | true |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_BATCHOPERATIONITEMINSERTSBLOCKSIZE | The number of batch operation items to insert in a single batched SQL when creating the items for a batch operation. This is only relevant when | 1000 |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_CONNECTIONPOOL_MAXIMUMPOOLSIZE | Pass-through property for the Hikari connection pool. Controls the maximum size that the pool is allowed to reach, including both idle and in-use connections. | 10 |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_CONNECTIONPOOL_MINIMUMIDLE | Pass-through property for the Hikari connection pool. Controls the minimum number of idle connections that HikariCP tries to maintain in the pool. | 10 |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_CONNECTIONPOOL_IDLETIMEOUT | Pass-through property for the Hikari connection pool. Controls the maximum amount of time that a connection is allowed to sit idle in the pool. This setting only applies when | 600000 |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_CONNECTIONPOOL_MAXLIFETIME | Pass-through property for the Hikari connection pool. Controls the maximum amount of time that a connection is allowed to sit idle in the pool. This setting only applies when | 1800000 |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_CONNECTIONPOOL_CONNECTIONTIMEOUT | Pass-through property for the Hikari connection pool. Controls the maximum lifetime of a connection in the pool. An in-use connection will never be retired, only when it is closed will it then be removed. | 30000 |
Durations support ISO-8601 (P30D) or simplified suffix formats (30d, 12h). Use simplified suffix formats unless strict ISO-8601 compliance is required.
Secure connection (HTTPS / TLS)
To connect to a secured (https) Elasticsearch or OpenSearch cluster for secondary storage:
- Change the URL protocol from
httptohttps. - Provide
usernameandpasswordif the cluster requires authentication. - Use additional security properties to handle custom certificates or strict hostname verification:
- Set
security.enabled=true(or simply use anhttpsURL if auto-detection applies) to activate SSL/TLS handling. - Use
security.certificatePathwhen the server certificate is signed by a custom CA or is self-signed so the JVM can trust it. - Set
security.selfSigned=trueif the certificate is self-signed and the client logic requires this hint. - Keep
security.verifyHostname=truefor production. Disable it only temporarily to diagnose hostname/certificate mismatch issues.
- Set
- Import the certificate (or its issuing CA) into the JVM trust store if it is not already trusted.
- For Kubernetes-based deployments, mount a trust store and point
certificatePathto it.
Index & retention settings
Properties such as camunda.data.secondary-storage.elasticsearch.number-of-shards control index creation characteristics (shards, replicas, template priority) and retention/lifecycle policies for Orchestration Cluster indices.
Shards/replicas and template priority overrides are not currently exposed as Helm values. Configure these via environment variables or application.yaml properties if supported by your runtime version.
Replica count changes (number-of-replicas and per-index overrides`)
- For newer versions (8.8+), changes are applied to existing indices on the next application restart, with settings updated in place.
- These are also written to the index templates so that newly created indices inherit the updated replica configuration.
Shard count changes (number-of-shards and per-index overrides`)
- These are only applied to index templates, affecting indices created after the change.
- Existing indices retain their original shard layout.
Template priority changes
- Adjusts which template is applied when multiple patterns match.
- The effect is only for indices created after the change.
Some Elasticsearch and OpenSearch deployments may ship predefined wildcard (* pattern) index templates with their own priorities. Assign a strictly higher priority to the Camunda index templates to ensure Camunda's mappings and settings take precedence when multiple templates match the same index name. If the priority is not higher, provider wildcard templates may override shard/replica defaults, analyzers, or field mappings, leading to unexpected index behavior.
Maps (for example, shards/replicas overrides) are key-value objects:
camunda.data.secondary-storage.elasticsearch.number-of-shards-per-index:
list-view: 3
task: 2
Data - exporters
When Elasticsearch/OpenSearch Exporter indices and Orchestration Cluster indices share the same Elasticsearch or OpenSearch cluster, they must use different index prefixes. One prefix must not be the beginning of the other (for example, avoid custom and custom-zeebe together because custom* matches both). Do not use operate, tasklist, or camunda as the full exporter prefix, and do not use zeebe-record as the Orchestration Cluster index prefix, as zeebe-record is the default prefix for Elasticsearch/OpenSearch Exporter indices.
The exporter prefix is configured via camunda.data.exporters.elasticsearch.args.index-prefix (or CAMUNDA_DATA_EXPORTERS_{ELASTICSEARCH|OPENSEARCH}_ARGS_INDEX_PREFIX).
For detailed requirements, configuration examples, and common mistakes, see index prefix configuration.
- Application properties
- Environment variables
camunda.data.exporters
| Property | Description | Default value |
|---|---|---|
camunda.data.exporters.elasticsearch.class-name | Fully qualified class name pointing to the class implementing the exporter interface. | 'io.camunda.zeebe.exporter.ElasticsearchExporter' |
camunda.data.exporters.elasticsearch.jar-path | Path to the JAR file containing the exporter class Optional field: if missing, will lookup the class in the zeebe classpath. | - |
camunda.data.exporters.elasticsearch.args | Map of arguments to use when instantiating the exporter. | - |
CAMUNDA_DATA_EXPORTERS
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_EXPORTERS_ELASTICSEARCH_CLASSNAME | Fully qualified class name pointing to the class implementing the exporter interface. | 'io.camunda.zeebe.exporter.ElasticsearchExporter' |
CAMUNDA_DATA_EXPORTERS_ELASTICSEARCH_JARPATH | Path to the JAR file containing the exporter class Optional field: if missing, will lookup the class in the zeebe classpath. | - |
CAMUNDA_DATA_EXPORTERS_ELASTICSEARCH_ARGS | Map of arguments to use when instantiating the exporter. | - |
Expression
See expressions.
- Application properties
- Environment variables
camunda.expression
| Property | Description | Default value |
|---|---|---|
camunda.expression.timeout | The timeout for expression evaluation. If an expression takes longer to evaluate than this timeout, the evaluation will be interrupted. An incident is raised if the expression is evaluated for a process instance. Setting a lower value avoids the expression evaluation blocking the execution of other process instances on the same partition for too long. We recommend keeping this below five seconds to avoid unhealthy partitions due to 'actor appears blocked'. | 5s |
CAMUNDA_EXPRESSION
| Property | Description | Default value |
|---|---|---|
CAMUNDA_EXPRESSION_TIMEOUT | The timeout for expression evaluation. If an expression takes longer to evaluate than this timeout, the evaluation will be interrupted. An incident is raised if the expression is evaluated for a process instance. Setting a lower value avoids the expression evaluation blocking the execution of other process instances on the same partition for too long. We recommend keeping this below five seconds to avoid unhealthy partitions due to 'actor appears blocked'. | 5s |
Licensing
Installations of Camunda 8 Self-Managed that require a license can provide their license key to the components. See licensing.
- Application properties
- Environment variables
Monitoring
- Application properties
- Environment variables
camunda.monitoring
| Property | Description | Default value |
|---|---|---|
camunda.monitoring.metrics.actor | Controls whether to collect metrics about actor usage such as actor job execution latencies. | true |
camunda.monitoring.metrics.enable-exporter-execution-metrics | Enable exporter execution metrics. | false |
camunda.monitoring.jfr | Allows registering and tracking metrics based on JFR events. | true |
CAMUNDA_MONITORING
| Property | Description | Default value |
|---|---|---|
CAMUNDA_MONITORING_METRICS_ACTOR | Controls whether to collect metrics about actor usage such as actor job execution latencies. | true |
CAMUNDA_MONITORING_METRICS_ENABLEEXPORTEREXECUTIONMETRICS | Enable exporter execution metrics. | false |
CAMUNDA_MONITORING_JFR | Allows registering and tracking metrics based on JFR events. | true |
Process instance creation
- Application properties
- Environment variables
camunda.process-instance-creation
| Property | Description | Default value |
|---|---|---|
camunda.process-instance-creation.business-id-uniqueness-enabled | When enabled, process instance creation is rejected if a root process instance of the same process definition is already active with the same business ID. Requires the process instance creation request to include a | false |
CAMUNDA_PROCESSINSTANCECREATION
| Property | Description | Default value |
|---|---|---|
CAMUNDA_PROCESSINSTANCECREATION_BUSINESSIDUNIQUENESSENABLED | When enabled, process instance creation is rejected if a root process instance of the same process definition is already active with the same business ID. Requires the process instance creation request to include a | false |
Processing
- Application properties
- Environment variables
camunda.processing
| Property | Description | Default value |
|---|---|---|
camunda.processing.max-commands-in-batch | Sets the maximum number of commands processed within one batch. The processor will process until no more follow-up commands are created by the initial command or the configured limit is reached. Can be set to Must be a positive integer number. Note that the resulting batch may contain more entries than this limit because it includes follow-up events. If the resulting batch is too large (see | 100 |
camunda.processing.scheduled-tasks-check-interval | Configures how often a partition leader checks for expired scheduled tasks (for example, due date checking). Use a lower interval to potentially decrease delays between requested and actual execution, but note that low values can create unnecessary load while idle; benchmark changes. | 1s |
camunda.processing.skip-positions | Allows skipping certain commands by their position. This is intended for debugging and data recovery and is not recommended for production use. The value is a comma-separated list of positions to skip. Whitespace is ignored. | |
camunda.processing.engine.distribution.max-backoff-duration | Allows configuring the maximum backoff duration for command redistribution retries. The retry interval is doubled after each retry until it reaches this maximum duration. | 5m |
camunda.processing.engine.distribution.redistribution-interval | Allows configuring command redistribution retry interval. This is the initial interval used when retrying command distributions that have not been acknowledged. | 10s |
camunda.processing.engine.job.include-variables-in-job-completed-event | Specifies whether variables are included in the When set to When set to Exporters or integrations that need completion variables can read them from the | false |
camunda.processing.engine.secrets.interval | Sets the idle fallback cadence at which the broker checks for secret references that are waiting to be resolved. Resolution runs in the background, off the processing path, so a slow secret store cannot stall processing. Under a steady stream of pending references, The | 5s |
camunda.processing.engine.secrets.wake-delay | Sets how soon the next cycle runs after one that resolved a reference, or after an activation requested a resolution since the last cycle ran. Under a steady stream of pending references, this is the effective cadence: cycles run close to this delay apart rather than at Lower it to reduce activation latency under a steady load, at the cost of polling stores more often. | 50ms |
camunda.processing.engine.secrets.batch-resolution-limit | Sets the maximum number of pending secret references the broker resolves in one cycle. References beyond the limit stay pending and are picked up by a later cycle, so the limit bounds the work per cycle rather than discarding anything. When a cycle reaches the limit, the next cycle starts immediately instead of waiting Raise it to clear a large backlog faster, at the cost of more concurrent load on the secret stores. | 20 |
camunda.processing.engine.secrets.retry-max-attempts | Sets how many consecutive attempts the broker makes against an unavailable secret store before it stops retrying. The value counts the initial attempt and subsequent retries. At the default of A secret that the store reports as missing or forbidden is not retried at all, because that failure is permanent. | 3 |
camunda.processing.engine.secrets.retry-initial-delay | Sets the delay before the first retry after a secret store becomes unavailable. For each subsequent attempt, the broker multiplies the delay by | 1s |
camunda.processing.engine.secrets.retry-backoff-factor | Sets the multiplier applied to the retry delay after each consecutive secret store failure. A value of | 2 |
camunda.processing.engine.secrets.retry-max-delay | Sets the longest delay the broker waits between retries of an unavailable secret store. The delay grows from | 30s |
camunda.processing.enable-preconditions-check | Configures whether basic RocksDB operations (for example, insert/delete) should check preconditions (for example, key does not already exist when inserting). | false |
camunda.processing.enable-foreign-key-checks | Configures whether inserting or updating key-value pairs in RocksDB should check that foreign keys exist. | false |
camunda.processing.enable-yielding-duedate-checker | Changes the due date timer checker behavior to yield to other processing steps when there are very many timers. This avoids worst-case situations where processing could be blocked for an indefinite amount of time and the node becomes unhealthy. Under sustained high load, yielding can cause activated timers to fall behind real time. | true |
camunda.processing.enable-async-message-ttl-checker | When enabled, the message TTL checker runs asynchronously to the engine stream processor. This can improve throughput/latency when many messages with a non-zero TTL are published. Test in non-production before enabling. | false |
camunda.processing.enable-async-timer-duedate-checker | When enabled, the due date checker runs asynchronously to the engine stream processor. This can improve throughput/latency when there are many timers. Test in non-production before enabling. | false |
camunda.processing.enable-straightthrough-processing-loop-detector | true | |
camunda.processing.enable-message-body-on-expired | Controls whether the full message body is included in the follow-up event when a message expires. When enabled, full message details can be exported by allowing | false |
camunda.processing.flow-control.request.enabled | Enable request limiting for user requests (takes precedence over backpressure configuration). | true |
camunda.processing.flow-control.request.windowed | Use windowed request limiting. | true |
camunda.processing.flow-control.request.algorithm | The request limiting algorithm to use. Supported values: | aimd |
camunda.processing.flow-control.request.aimd.request-timeout | AIMD: request timeout used by the algorithm. | 200ms |
camunda.processing.flow-control.request.aimd.initial-limit | AIMD: initial request limit. | 100 |
camunda.processing.flow-control.request.aimd.min-limit | AIMD: minimum request limit. | 1 |
camunda.processing.flow-control.request.aimd.max-limit | AIMD: maximum request limit. | 1000 |
camunda.processing.flow-control.request.aimd.backoff-ratio | AIMD: backoff ratio applied when backing off. | 0.9 |
camunda.processing.flow-control.request.fixed.limit | Fixed: constant request limit. | 20 |
camunda.processing.flow-control.request.gradient.min-limit | Gradient: minimum request limit. | 10 |
camunda.processing.flow-control.request.gradient.initial-limit | Gradient: initial request limit. | 20 |
camunda.processing.flow-control.request.gradient.rtt-tolerance | Gradient: RTT tolerance used by the algorithm. | 2.0 |
camunda.processing.flow-control.request.gradient2.min-limit | Gradient2: minimum request limit. | 10 |
camunda.processing.flow-control.request.gradient2.initial-limit | Gradient2: initial request limit. | 20 |
camunda.processing.flow-control.request.gradient2.rtt-tolerance | Gradient2: RTT tolerance used by the algorithm. | 2.0 |
camunda.processing.flow-control.request.gradient2.long-window | Gradient2: long-window size used by the algorithm. | 600 |
camunda.processing.flow-control.request.vegas.alpha | Vegas: alpha parameter. | 3 |
camunda.processing.flow-control.request.vegas.beta | Vegas: beta parameter. | 6 |
camunda.processing.flow-control.request.vegas.initial-limit | Vegas: initial request limit. | 20 |
camunda.processing.flow-control.request.legacy-vegas.initial-limit | Legacy Vegas: initial request limit. | 1024 |
camunda.processing.flow-control.request.legacy-vegas.max-concurrency | Legacy Vegas: maximum concurrency. | 1024*32 |
camunda.processing.flow-control.request.legacy-vegas.alpha-limit | Legacy Vegas: alpha limit parameter. | 0.7 |
camunda.processing.flow-control.request.legacy-vegas.beta-limit | Legacy Vegas: beta limit parameter. | 0.95 |
camunda.processing.flow-control.write.enabled | Enable write rate limiting. | false |
camunda.processing.flow-control.write.limit | Sets the maximum number of records written per second. | 0 |
camunda.processing.flow-control.write.ramp-up | Sets the ramp up time for reaching the configured write rate limit (for example, | 0s |
camunda.processing.flow-control.write.throttle.enabled | Enable throttling. If enabled, throttle the write rate based on exporting backlog. | false |
camunda.processing.flow-control.write.throttle.acceptable-backlog | When exporting is a bottleneck, the write rate is throttled to keep the backlog at this value. | 100000 |
camunda.processing.flow-control.write.throttle.minimum-limit | Even when exporting is fully blocked, always allow this many writes per second. | 100 |
camunda.processing.flow-control.write.throttle.resolution | How often to adjust the throttling. | 100s |
CAMUNDA_PROCESSING
| Property | Description | Default value |
|---|---|---|
CAMUNDA_PROCESSING_MAXCOMMANDSINBATCH | Sets the maximum number of commands processed within one batch. The processor will process until no more follow-up commands are created by the initial command or the configured limit is reached. Can be set to Must be a positive integer number. Note that the resulting batch may contain more entries than this limit because it includes follow-up events. If the resulting batch is too large (see | 100 |
CAMUNDA_PROCESSING_SCHEDULEDTASKSCHECKINTERVAL | Configures how often a partition leader checks for expired scheduled tasks (for example, due date checking). Use a lower interval to potentially decrease delays between requested and actual execution, but note that low values can create unnecessary load while idle; benchmark changes. | 1s |
CAMUNDA_PROCESSING_SKIPPOSITIONS | Allows skipping certain commands by their position. This is intended for debugging and data recovery and is not recommended for production use. The value is a comma-separated list of positions to skip. Whitespace is ignored. | |
CAMUNDA_PROCESSING_ENGINE_DISTRIBUTION_MAXBACKOFFDURATION | Allows configuring the maximum backoff duration for command redistribution retries. The retry interval is doubled after each retry until it reaches this maximum duration. | 5m |
CAMUNDA_PROCESSING_ENGINE_DISTRIBUTION_REDISTRIBUTIONINTERVAL | Allows configuring command redistribution retry interval. This is the initial interval used when retrying command distributions that have not been acknowledged. | 10s |
CAMUNDA_PROCESSING_ENGINE_JOB_INCLUDEVARIABLESINJOBCOMPLETEDEVENT | Specifies whether variables are included in the When set to When set to Exporters or integrations that need completion variables can read them from the | false |
CAMUNDA_PROCESSING_ENGINE_SECRETS_INTERVAL | Sets the idle fallback cadence at which the broker checks for secret references that are waiting to be resolved. Resolution runs in the background, off the processing path, so a slow secret store cannot stall processing. Under a steady stream of pending references, The interval is an upper bound on the wait, not a fixed cadence. A cycle that reaches | 5s |
CAMUNDA_PROCESSING_ENGINE_SECRETS_WAKEDELAY | Sets how soon the next cycle runs after one that resolved a reference, or after an activation requested a resolution since the last cycle ran. Under a steady stream of pending references, this is the effective cadence: cycles run close to this delay apart rather than at Lower it to reduce activation latency under a steady load, at the cost of polling stores more often. | 50ms |
CAMUNDA_PROCESSING_ENGINE_SECRETS_BATCHRESOLUTIONLIMIT | Sets the maximum number of pending secret references the broker resolves in one cycle. References beyond the limit stay pending and are picked up by a later cycle, so the limit bounds the work per cycle rather than discarding anything. When a cycle reaches the limit, the next cycle starts immediately instead of waiting Raise it to clear a large backlog faster, at the cost of more concurrent load on the secret stores. | 20 |
CAMUNDA_PROCESSING_ENGINE_SECRETS_RETRYMAXATTEMPTS | Sets how many consecutive attempts the broker makes against an unavailable secret store before it stops retrying. The value counts the initial attempt and subsequent retries. At the default of A secret that the store reports as missing or forbidden is not retried at all, because that failure is permanent. | 3 |
CAMUNDA_PROCESSING_ENGINE_SECRETS_RETRYINITIALDELAY | Sets the delay before the first retry after a secret store becomes unavailable. For each subsequent attempt, the broker multiplies the delay by | 1s |
CAMUNDA_PROCESSING_ENGINE_SECRETS_RETRYBACKOFFFACTOR | Sets the multiplier applied to the retry delay after each consecutive secret store failure. A value of | 2 |
CAMUNDA_PROCESSING_ENGINE_SECRETS_RETRYMAXDELAY | Sets the longest delay the broker waits between retries of an unavailable secret store. The delay grows from | 30s |
CAMUNDA_PROCESSING_ENABLEPRECONDITIONSCHECK | Configures whether basic RocksDB operations (for example, insert/delete) should check preconditions (for example, key does not already exist when inserting). | false |
CAMUNDA_PROCESSING_ENABLEFOREIGNKEYCHECKS | Configures whether inserting or updating key-value pairs in RocksDB should check that foreign keys exist. | false |
CAMUNDA_PROCESSING_ENABLEYIELDINGDUEDATECHECKER | Changes the due date timer checker behavior to yield to other processing steps when there are very many timers. This avoids worst-case situations where processing could be blocked for an indefinite amount of time and the node becomes unhealthy. Under sustained high load, yielding can cause activated timers to fall behind real time. | true |
CAMUNDA_PROCESSING_ENABLEASYNCMESSAGETTLCHECKER | When enabled, the message TTL checker runs asynchronously to the engine stream processor. This can improve throughput/latency when many messages with a non-zero TTL are published. Test in non-production before enabling. | false |
CAMUNDA_PROCESSING_ENABLEASYNCTIMERDUEDATECHECKER | When enabled, the due date checker runs asynchronously to the engine stream processor. This can improve throughput/latency when there are many timers. Test in non-production before enabling. | false |
CAMUNDA_PROCESSING_ENABLESTRAIGHTTHROUGHPROCESSINGLOOPDETECTOR | true | |
CAMUNDA_PROCESSING_ENABLEMESSAGEBODYONEXPIRED | Controls whether the full message body is included in the follow-up event when a message expires. When enabled, full message details can be exported by allowing | false |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_ENABLED | Enable request limiting for user requests (takes precedence over backpressure configuration). | true |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_WINDOWED | Use windowed request limiting. | true |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_ALGORITHM | The request limiting algorithm to use. Supported values: | aimd |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_AIMD_REQUESTTIMEOUT | AIMD: request timeout used by the algorithm. | 200ms |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_AIMD_INITIALLIMIT | AIMD: initial request limit. | 100 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_AIMD_MINLIMIT | AIMD: minimum request limit. | 1 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_AIMD_MAXLIMIT | AIMD: maximum request limit. | 1000 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_AIMD_BACKOFFRATIO | AIMD: backoff ratio applied when backing off. | 0.9 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_FIXED_LIMIT | Fixed: constant request limit. | 20 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_GRADIENT_MINLIMIT | Gradient: minimum request limit. | 10 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_GRADIENT_INITIALLIMIT | Gradient: initial request limit. | 20 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_GRADIENT_RTTTOLERANCE | Gradient: RTT tolerance used by the algorithm. | 2.0 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_GRADIENT2_MINLIMIT | Gradient2: minimum request limit. | 10 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_GRADIENT2_INITIALLIMIT | Gradient2: initial request limit. | 20 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_GRADIENT2_RTTTOLERANCE | Gradient2: RTT tolerance used by the algorithm. | 2.0 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_GRADIENT2_LONGWINDOW | Gradient2: long-window size used by the algorithm. | 600 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_VEGAS_ALPHA | Vegas: alpha parameter. | 3 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_VEGAS_BETA | Vegas: beta parameter. | 6 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_VEGAS_INITIALLIMIT | Vegas: initial request limit. | 20 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_LEGACYVEGAS_INITIALLIMIT | Legacy Vegas: initial request limit. | 1024 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_LEGACYVEGAS_MAXCONCURRENCY | Legacy Vegas: maximum concurrency. | 1024*32 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_LEGACYVEGAS_ALPHALIMIT | Legacy Vegas: alpha limit parameter. | 0.7 |
CAMUNDA_PROCESSING_FLOWCONTROL_REQUEST_LEGACYVEGAS_BETALIMIT | Legacy Vegas: beta limit parameter. | 0.95 |
CAMUNDA_PROCESSING_FLOWCONTROL_WRITE_ENABLED | Enable write rate limiting. | false |
CAMUNDA_PROCESSING_FLOWCONTROL_WRITE_LIMIT | Sets the maximum number of records written per second. | 0 |
CAMUNDA_PROCESSING_FLOWCONTROL_WRITE_RAMPUP | Sets the ramp up time for reaching the configured write rate limit (for example, | 0s |
CAMUNDA_PROCESSING_FLOWCONTROL_WRITE_THROTTLE_ENABLED | Enable throttling. If enabled, throttle the write rate based on exporting backlog. | false |
CAMUNDA_PROCESSING_FLOWCONTROL_WRITE_THROTTLE_ACCEPTABLEBACKLOG | When exporting is a bottleneck, the write rate is throttled to keep the backlog at this value. | 100000 |
CAMUNDA_PROCESSING_FLOWCONTROL_WRITE_THROTTLE_MINIMUMLIMIT | Even when exporting is fully blocked, always allow this many writes per second. | 100 |
CAMUNDA_PROCESSING_FLOWCONTROL_WRITE_THROTTLE_RESOLUTION | How often to adjust the throttling. | 100s |
Secrets
Configure the secret stores and cache used to resolve camunda.secrets.<name> references in process variables.
This configuration is part of an alpha feature and may be subject to change in future releases. See Secret resolution for the reference syntax and how references are resolved.
This secret store configuration applies only to Self-Managed. In SaaS, the secret store is provisioned and managed for you, so you don't configure a store type, path, or credentials. Manage secret values on the cluster's Cluster secrets tab and reference them as camunda.secrets.<key>. See Manage connector secrets.
camunda.secrets.* sets the defaults inherited by every physical tenant. Override them per physical tenant under camunda.physical-tenants.<tenant-key>.secrets.*. See Validation and constraints in the Physical Tenants configuration reference.
<id> is the store identifier and must be default. Each physical tenant supports exactly one secret store across all store types. For example, configuring both a file store and an AWS store counts as two stores.
Camunda validates this constraint against the merged configuration for each tenant. If a tenant inherits a store, you cannot add another store under a different ID to override it. To override an inherited store, reuse the default ID.
A secret name must match [\p{Alnum}_-]+ and be at most 240 characters to be listed and resolved through /v2/secrets (the reference camunda.secrets.<name> is capped at 256 characters, and the camunda.secrets. prefix takes 16 of those). A period (.), such as the one used in a file extension, falls outside the allowed character set. Camunda stores a secret whose name fails either check, but omits it from list results and cannot resolve it by reference.
File store
The default path below only takes effect once a file store is declared somewhere in the merged configuration. If you don't declare a file store, the physical tenant uses a no-op store: it cannot resolve secrets and does not read a directory.
- Application properties
- Environment variables
| Property | Description | Default value |
|---|---|---|
camunda.secrets.stores.file.<id>.path | Path to the directory backing this file-based secret store, once the store is declared. Each file in the directory is one secret: the file name is the secret name and the file contents are the value. | /etc/camunda/secrets |
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECRETS_STORES_FILE_<id>_PATH | Path to the directory backing this file-based secret store, once the store is declared. Each file in the directory is one secret: the file name is the secret name and the file contents are the value. | /etc/camunda/secrets |
AWS Secrets Manager store
Configuration for a secret store backed by AWS Secrets Manager. Authentication is always identity-based, via the AWS SDK's default credentials provider chain. No static credentials are accepted at all. Secrets are always read at the AWSCURRENT version stage; pinning to a different stage is not supported.
- Application properties
- Environment variables
| Property | Description | Default value |
|---|---|---|
camunda.secrets.stores.aws.<id>.region | AWS region for this store. Optional: when omitted, the SDK resolves it from the environment (AWS_REGION) or instance metadata. | - |
camunda.secrets.stores.aws.<id>.path-prefix | Prefix prepended, with no separator inserted, to every reference name to form the AWS secret ID (for example, prefix camunda/ plus reference db-password resolves to secret ID camunda/db-password; include the trailing separator here if one is wanted). When omitted, references map to bare secret names. Also applies to container-secret-id, since that is itself resolved as an AWS secret ID. Without container-secret-id, this prefix also filters what /v2/secrets lists: only secrets whose ID starts with it are returned, with the prefix stripped from the listed name. With container-secret-id set, listing returns the container secret's own JSON keys instead, unaffected by this prefix. | - |
camunda.secrets.stores.aws.<id>.batch-enabled | Resolve secrets via AWS's BatchGetSecretValue (fewer round-trips) instead of one GetSecretValue call per reference. Requires the secretsmanager:BatchGetSecretValue IAM action in addition to GetSecretValue. Mutually exclusive with container-secret-id: configuring both is rejected at startup. | false |
camunda.secrets.stores.aws.<id>.batch-size | Maximum number of secret IDs per BatchGetSecretValue call; only has an effect when batch-enabled is set. Must be between 1 and 20, which is the AWS limit. Camunda validates this range at startup even when batching is disabled. | 20 |
camunda.secrets.stores.aws.<id>.container-secret-id | Instead of one AWS secret per reference, treat every reference as a JSON key inside this one named secret. Mutually exclusive with batch-enabled: batching fetches several distinct secrets in one call, while a container secret ID means only one secret is ever fetched. | - |
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECRETS_STORES_AWS_<id>_REGION | AWS region for this store. Optional: when omitted, the SDK resolves it from the environment (AWS_REGION) or instance metadata. | - |
CAMUNDA_SECRETS_STORES_AWS_<id>_PATHPREFIX | Prefix prepended, with no separator inserted, to every reference name to form the AWS secret ID (for example, prefix camunda/ plus reference db-password resolves to secret ID camunda/db-password; include the trailing separator here if one is wanted). When omitted, references map to bare secret names. Also applies to container-secret-id, since that is itself resolved as an AWS secret ID. Without container-secret-id, this prefix also filters what /v2/secrets lists: only secrets whose ID starts with it are returned, with the prefix stripped from the listed name. With container-secret-id set, listing returns the container secret's own JSON keys instead, unaffected by this prefix. | - |
CAMUNDA_SECRETS_STORES_AWS_<id>_BATCHENABLED | Resolve secrets via AWS's BatchGetSecretValue (fewer round-trips) instead of one GetSecretValue call per reference. Requires the secretsmanager:BatchGetSecretValue IAM action in addition to GetSecretValue. Mutually exclusive with container-secret-id: configuring both is rejected at startup. | false |
CAMUNDA_SECRETS_STORES_AWS_<id>_BATCHSIZE | Maximum number of secret IDs per BatchGetSecretValue call; only has an effect when batch-enabled is set. Must be between 1 and 20, which is the AWS limit. Camunda validates this range at startup even when batching is disabled. | 20 |
CAMUNDA_SECRETS_STORES_AWS_<id>_CONTAINERSECRETID | Instead of one AWS secret per reference, treat every reference as a JSON key inside this one named secret. Mutually exclusive with batch-enabled: batching fetches several distinct secrets in one call, while a container secret ID means only one secret is ever fetched. | - |
Without container-secret-id, listing and the startup connectivity check use secretsmanager:ListSecrets, and resolving uses GetSecretValue (plus BatchGetSecretValue when batch-enabled). With container-secret-id, both listing and resolving read only the one container secret via GetSecretValue; ListSecrets is not needed.
An invalid batch-size, configuring both batch-enabled and container-secret-id, or a client build failure causes startup to fail.
An invalid region, unreachable endpoint, or invalid credentials instead produces a warning at startup. Camunda still creates the store, and the configuration error surfaces on the first resolve or list request. A secret whose value lives only in secretBinary (no string value) cannot be resolved and fails with an invalid-reference error.
In container-secret mode, the named secret's value must be a flat JSON object mapping each reference name to a JSON string value, for example {"db-password": "s3cr3t"}. Nested objects and arrays are not supported. If the value is invalid JSON or is not a JSON object, every reference fails to resolve and the list request fails.
If a key is missing or has a JSON null value, only that reference fails as not found. If a key exists but its value is not a string, only that reference fails as invalid.
GCP Secret Manager store
Configuration for a secret store backed by GCP Secret Manager. Authentication uses the GCP Application Default Credentials chain. Secrets are always read at the latest version; pinning to a specific version is not supported.
- Application properties
- Environment variables
| Property | Description | Default value |
|---|---|---|
camunda.secrets.stores.gcp.<id>.project-id | ID of the GCP project that owns the secrets. Optional when a default project can be resolved from the environment (GOOGLE_CLOUD_PROJECT), gcloud's default project, or the compute metadata server, via the Application Default Credentials chain. If none of these sources provides a project ID, startup fails. A missing project ID is a configuration error, not a transient connectivity problem. | - |
camunda.secrets.stores.gcp.<id>.path-prefix | Prefix prepended to every reference name to form the GCP secret ID. Camunda does not insert a separator. For example, the prefix camunda- and reference db-password resolve to the secret ID camunda-db-password. Include a trailing separator in the prefix if needed. When omitted, references map to bare secret IDs. Also applies to container-secret-id, since that is itself resolved as a GCP secret ID. Must contain only [a-zA-Z0-9_-]; a prefix with any other character is rejected at startup. Without container-secret-id, this prefix also filters what /v2/secrets lists: only secrets whose ID starts with it are returned, with the prefix stripped from the listed name. With container-secret-id set, listing returns the container secret's own JSON keys instead, unaffected by this prefix. | - |
camunda.secrets.stores.gcp.<id>.endpoint | Secret Manager endpoint override, for example a regional endpoint such as secretmanager.europe-west1.rep.googleapis.com:443, or a Private Service Connect endpoint. There is no equivalent property for the AWS store: the AWS SDK picks up an endpoint override from its own environment variables, so none is exposed here, while the GCP client libraries do not, which is why this property exists. When omitted, the default global endpoint is used. | - |
camunda.secrets.stores.gcp.<id>.container-secret-id | Instead of one GCP secret per reference, treat every reference as a JSON key inside this one named secret. Must contain only [a-zA-Z0-9_-], the same as path-prefix. When set, the combined length of path-prefix plus container-secret-id must not exceed 255 characters; exceeding it is rejected at startup. | - |
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECRETS_STORES_GCP_<id>_PROJECTID | ID of the GCP project that owns the secrets. Optional when a default project can be resolved from the environment (GOOGLE_CLOUD_PROJECT), gcloud's default project, or the compute metadata server, via the Application Default Credentials chain. If none of those resolve one either, startup fails outright: a missing project ID is a configuration error, not a transient connectivity problem. | - |
CAMUNDA_SECRETS_STORES_GCP_<id>_PATHPREFIX | Prefix prepended, with no separator inserted, to every reference name to form the GCP secret ID (for example, prefix camunda- plus reference db-password resolves to secret ID camunda-db-password; include the trailing separator here if one is wanted). When omitted, references map to bare secret IDs. Also applies to container-secret-id, since that is itself resolved as a GCP secret ID. Must contain only [a-zA-Z0-9_-]; a prefix with any other character is rejected at startup. Without container-secret-id, this prefix also filters what /v2/secrets lists: only secrets whose ID starts with it are returned, with the prefix stripped from the listed name. With container-secret-id set, listing returns the container secret's own JSON keys instead, unaffected by this prefix. | - |
CAMUNDA_SECRETS_STORES_GCP_<id>_ENDPOINT | Secret Manager endpoint override, for example a regional endpoint such as secretmanager.europe-west1.rep.googleapis.com:443, or a Private Service Connect endpoint. There is no equivalent property for the AWS store: the AWS SDK picks up an endpoint override from its own environment variables, so none is exposed here, while the GCP client libraries do not, which is why this property exists. When omitted, the default global endpoint is used. | - |
CAMUNDA_SECRETS_STORES_GCP_<id>_CONTAINERSECRETID | Instead of one GCP secret per reference, treat every reference as a JSON key inside this one named secret. Must contain only [a-zA-Z0-9_-], the same as path-prefix. When set, the combined length of path-prefix plus container-secret-id must not exceed 255 characters; exceeding it is rejected at startup. | - |
A missing project ID (above) and a client that fails to build both fail startup outright. An invalid project, unreachable endpoint, or invalid credentials instead causes the connectivity check to log a warning at startup. Camunda still creates the store, and the configuration error surfaces on the first resolve or list request.
GCP secret IDs allow only [a-zA-Z0-9_-] and are capped at 255 characters. Both path-prefix and container-secret-id contribute to secret IDs. An AWS-style camunda/ prefix contains a slash and therefore produces invalid IDs. For GCP, use a prefix such as camunda- instead.
Camunda performs the combined-length check only when container-secret-id is set. It does not validate the length of per-reference IDs in flat mode at startup, so an overlong prefix is detected only during resolution.
In container-secret mode, the named secret's value must be a flat JSON object mapping each reference name to a JSON string value, for example {"db-password": "s3cr3t"}. Nested objects and arrays are not supported: if the value is not valid JSON, or is JSON but not an object, every reference fails to resolve and listing fails outright rather than returning an empty list. If a key is absent, or present with a JSON null value, only that one reference fails, as not found; if a key's value is present but not a string, only that one reference fails, as invalid.
Secret cache
One cache is created per configured store.
- Application properties
- Environment variables
| Property | Description | Default value |
|---|---|---|
camunda.secrets.cache.ttl | How long a resolved secret is served from the cache before it is fetched from the store again, so a secret rotated in the store is picked up without a restart. Must be at least 1m and a whole number of minutes; a shorter or fractional value is rejected at startup. | 20m |
camunda.secrets.cache.max-size | Maximum number of secrets held in each store's cache. Once reached, caching another secret evicts one already held; which one is the cache implementation's choice. This limit applies to each cache independently. The maximum number of cached secret entries across all stores is the number of configured stores multiplied by this value. Must be at least 1. | 1000 |
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECRETS_CACHE_TTL | How long a resolved secret is served from the cache before it is fetched from the store again, so a secret rotated in the store is picked up without a restart. Must be at least 1m and a whole number of minutes; a shorter or fractional value is rejected at startup. | 20m |
CAMUNDA_SECRETS_CACHE_MAXSIZE | Maximum number of secrets held in each store's cache. When the cache reaches this limit, caching another secret evicts an existing entry. The cache implementation determines which entry to evict. This is a per-cache limit, not a budget shared across stores, so the worst-case memory footprint is the number of configured stores multiplied by this value. Must be at least 1. | 1000 |
Concurrency
Applies only to a store whose cost scales with the number of names requested (for example, AWS Secrets Manager without batch-enabled, which issues one GetSecretValue call per name). A store that resolves a whole request in a single call, such as the file store or a store using container-secret-id, is unaffected.
- Application properties
- Environment variables
| Property | Description | Default value |
|---|---|---|
camunda.secrets.max-concurrency | Maximum number of concurrent backend calls in flight for such a store, shared by every such store this physical tenant configures. Lower it to help stay within a provider's rate limit (for example, an AWS Secrets Manager or GCP Secret Manager API quota); the bound approximates rather than guarantees this, since a request that resolves in a single call takes no permit and isn't counted. Raising the value above what a single request can use has no further effect. Must be at least 1. | max(8, 2 × available processors) |
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECRETS_MAXCONCURRENCY | Maximum number of concurrent backend calls in flight for such a store, shared by every such store this physical tenant configures. Lower it to help stay within a provider's rate limit (for example, an AWS Secrets Manager or GCP Secret Manager API quota); the bound approximates rather than guarantees this, since a request that resolves in a single call takes no permit and isn't counted. Raising the value above what a single request can use has no further effect. Must be at least 1. | max(8, 2 × available processors) |
Security
Physical Tenant deployments use additional cluster administrator settings under camunda.security.cluster-admin.*. For more information, see authentication and authorization for Physical Tenants.
- Application properties
- Environment variables
- Helm values
camunda.persistent.sessions
| Property | Description | Default value |
|---|---|---|
camunda.persistent.sessions.enabled | Legacy name for camunda.security.session.persistent.enabled. Still supported, and mapped to the current property at startup. | false |
camunda.security
| Property | Description | Default value |
|---|---|---|
camunda.security.id-validation-pattern | A Java regular expression that validates the user-defined identifiers of Identity-related entities. | ^[a-zA-Z0-9_@.+-]+$ |
camunda.security.session
| Property | Description | Default value |
|---|---|---|
camunda.security.session.persistent.enabled | Stores session data in secondary storage so users stay logged in across cluster nodes. | false |
camunda.security.session.max-inactive-interval | How long a session can go without activity before it is treated as expired. Format: ISO 8601 duration (PnDTnHnMn.nS). | PT30M |
camunda.security.session.heartbeat.enabled | When disabled, any non-polling request extends the session. When enabled, only a call to the POST {basePath}/session/heartbeat endpoint extends the session, and ordinary application requests no longer count as activity. | false |
camunda.security.authentication
| Property | Description | Default value |
|---|---|---|
camunda.security.authentication.authentication-refresh-interval | The interval at which the memberships (groups, roles, tenants, component authorizations) are refreshed for logged in users. Find more details in webserver and security. | PT30S |
camunda.security.authentication.method | The authentication method to use. Options: basic, oidc. | basic |
camunda.security.authentication.unprotected-api | If the API can be used without authentication. | false |
camunda.security.csrf
| Property | Description | Default value |
|---|---|---|
camunda.security.csrf.enabled | Enables or disables CSRF protection. Disabling CSRF protection is not recommended for production environments as it leaves your application vulnerable to cross-site request forgery attacks. | true |
camunda.security.csrf.cookie-http-only | Sets HttpOnly on the X-CSRF-TOKEN cookie. Leave this false for browser-facing web applications, which need to read the token from JavaScript. Set it to true only if you exclusively serve API clients that read the token from response headers. | false |
camunda.security.csrf.ignored-path-patterns | Ant-style path patterns that CSRF protection ignores, in addition to the unprotected paths and the login and logout endpoints, which are always ignored. |
Disabling CSRF protection is not recommended for production environments as it leaves your application vulnerable to cross-site request forgery attacks. ignored-path-patterns has the same effect for any path it matches. Scope patterns as narrowly as possible, such as a specific API endpoint that doesn't rely on session-cookie authentication, rather than a broad prefix.
camunda.security.http-headers
| Property | Description | Related Header | Default value |
|---|---|---|---|
camunda.security.http-headers.cache-control.enabled | Enables or disables cache prevention headers. Default values: Cache-Control: no-cache, no-store, max-age=0, must-revalidate, Pragma: no-cache, Expires: 0. | Cache-Control, Pragma, Expires | true |
camunda.security.http-headers.content-security-policy.enabled | Enables or disables CSP headers. | Content-Security-Policy | true |
camunda.security.http-headers.content-security-policy.mode | Selects the built-in default policy. Options: SELF_MANAGED, SAAS, CUSTOM. policy-directives applies whenever it is set, regardless of this setting. Setting CUSTOM without also setting policy-directives sends no Content-Security-Policy header at all. | Content-Security-Policy | SELF_MANAGED |
camunda.security.http-headers.content-security-policy.policy-directives | Custom CSP directives, applied whenever set, regardless of mode. If not set, default values applied. | Content-Security-Policy | |
camunda.security.http-headers.content-security-policy.report-only | Enables reporting mode without enforcing policies. | Content-Security-Policy-Report-Only | false |
camunda.security.http-headers.content-type-options.enabled | Enables or disables X-Content-Type-Options header with nosniff value. | X-Content-Type-Options | true |
camunda.security.http-headers.cross-origin-embedder-policy.value | Restricts embedded cross-origin resources. Options: REQUIRE_CORP, UNSAFE_NONE. | Cross-Origin-Embedder-Policy | UNSAFE_NONE |
camunda.security.http-headers.cross-origin-opener-policy.value | Isolates windows from cross-origin openers. Options: UNSAFE_NONE, SAME_ORIGIN_ALLOW_POPUPS, SAME_ORIGIN. | Cross-Origin-Opener-Policy | SAME_ORIGIN_ALLOW_POPUPS |
camunda.security.http-headers.cross-origin-resource-policy.value | Declares whether resources can be loaded cross-origin. Options: SAME_ORIGIN, SAME_SITE, CROSS_ORIGIN. | Cross-Origin-Resource-Policy | SAME_SITE |
camunda.security.http-headers.frame-options.enabled | Enables or disables X-Frame-Options header. Default value is SAMEORIGIN. | X-Frame-Options | true |
camunda.security.http-headers.frame-options.mode | Frame options mode. Options: DENY, SAMEORIGIN. | X-Frame-Options | SAMEORIGIN |
camunda.security.http-headers.hsts.enabled | Enables or disables Strict-Transport-Security header. | Strict-Transport-Security | true |
camunda.security.http-headers.hsts.include-subdomains | Applies HSTS to all subdomains. | Strict-Transport-Security | false |
camunda.security.http-headers.hsts.max-age-in-seconds | HSTS max age in seconds. | Strict-Transport-Security | 31536000 |
camunda.security.http-headers.hsts.preload | Enables HSTS preloading. | Strict-Transport-Security | false |
camunda.security.http-headers.permissions-policy.value | Restricts access to browser capabilities. | Permissions-Policy | Disables all features by default |
camunda.security.http-headers.referrer-policy.value | Controls referrer information sharing. See available values below. | Referrer-Policy | STRICT_ORIGIN_WHEN_CROSS_ORIGIN |
Setting content-security-policy.mode to CUSTOM without also setting policy-directives sends no Content-Security-Policy header at all, which leaves your application without the protection the default policy provides. Always set policy-directives when you use CUSTOM.
Default Content Security Policy
This is default value of the Content Security Policy when enabled:
default-src 'self';
base-uri 'self';
script-src 'self' https: *.chargebee.com *.mixpanel.com ajax.cloudflare.com static.cloudflareinsights.com;
script-src-elem 'self' cdn.jsdelivr.net ;
connect-src 'self' https: *.mixpanel.com cloudflareinsights.com *.appcues.net wss://api.appcues.net cdn.jsdelivr.net;
style-src 'self' https: 'unsafe-inline' cdn.jsdelivr.net *.googleapis.com *.chargebee.com;
img-src data: 'self';
form-action 'self';
frame-ancestors 'self';
frame-src 'self' https: *.chargebee.com blob: ;
object-src 'self' blob:;
font-src 'self' data: fonts.camunda.io cdn.jsdelivr.net;
worker-src 'self' blob:;
child-src;
script-src-attr 'none'.
camunda.security.authentication.oidc
| Property | Description | Default value |
|---|---|---|
camunda.security.authentication.oidc.client-id | The client ID for OIDC authentication. | |
camunda.security.authentication.oidc.client-secret | The client secret for OIDC authentication. Only takes effect if camunda.security.authentication.oidc.client-authentication-method is set to client_secret_basic or left default. | |
camunda.security.authentication.oidc.issuer-uri | The issuer URI for OIDC authentication. If set, the individual endpoints of your OIDC provider will be fetched from its well-known configuration endpoint. In this case, any individually configured token, authorization, and JWKS URIs do not take effect. | |
camunda.security.authentication.oidc.redirect-uri | The URI for redirects from the OIDC provider to the Orchestration Cluster after user login. | http://localhost:8080/sso-callback |
camunda.security.authentication.oidc.username-claim | The JWT claim that identifies a user. Extracted from a token, this claim value becomes the user's username. This setting is evaluated on any token-based access, regardless of the underlying OIDC/OAuth flow. | sub |
camunda.security.authentication.oidc.groups-claim | The JWT claim that contains a user's or client's groups. Expects an array of String values. If not set, groups can be managed in the Orchestration Cluster through its REST APIs. | |
camunda.security.authentication.oidc.client-id-claim | The JWT claim that identifies a client. Extracted from a token, this claim value becomes the client ID. This setting is evaluated on any token-based access, regardless of the underlying OIDC/OAuth flow. | |
camunda.security.authentication.oidc.prefer-username-claim | Determines if a token that contains both, the configured username claim and the configured client id claim, is treated as a user or a client. If set to true, it is treated as a user. If set to false, it is treated as a client. | false |
camunda.security.authentication.oidc.prefer-id-token-claims | If enabled, claims are read from the ID token and the user info endpoint instead of the access token. Use this when the access token is signed by a key set that Camunda cannot reach, or does not contain the claims Camunda needs. | false |
camunda.security.authentication.oidc.audiences | Comma-separated list of audiences to validate in the OIDC token. | |
camunda.security.authentication.oidc.scope | Comma-separated list of scopes to request in the OIDC token. | openid, profile |
camunda.security.authentication.oidc.jwk-set-uri | Sets the OIDC provider's JWK Set URI explicitly. If set, overrides the value discovered from camunda.security.authentication.oidc.issuer-uri. | |
camunda.security.authentication.oidc.additional-jwk-set-uris | Sets additional JWK Set URIs for key resolution. Use this when your identity provider hosts signing keys at multiple JWKS endpoints (for example, separate endpoints for machine-to-machine access tokens and user session tokens). Keys are resolved from the primary jwk-set-uri first, then from each additional URI in order. | |
camunda.security.authentication.oidc.authorization-uri | Sets the OIDC provider's authorization URI explicitly. If set, overrides the value discovered from camunda.security.authentication.oidc.issuer-uri. | |
camunda.security.authentication.oidc.token-uri | Sets the OIDC provider's token URI explicitly. If set, overrides the value discovered from camunda.security.authentication.oidc.issuer-uri. | |
camunda.security.authentication.oidc.authorize-request-configuration.additional-parameters | Sets a map of additional parameters to send to your IDP during the authorzation flow. | |
camunda.security.authentication.oidc.end-session-endpoint-uri | Sets the OIDC provider's end session endpoint URI explicitly. If set, overrides the value discovered from camunda.security.authentication.oidc.issuer-uri. | |
camunda.security.authentication.oidc.idp-logout-enabled | If enabled, users will be logged out of the identity provider when logging out of the Orchestration Cluster. | true |
camunda.security.authentication.oidc.client-authentication-method | Sets the client authentication method to use. Options: client_secret_basic, private_key_jwt. | client_secret_basic |
camunda.security.authentication.oidc.user-info-enabled | If enabled, will enrich the access token with information from the /userinfo endpoint. See section 5.3 of the OIDC specification.. Generally safe to leave true, but can be safely disabled if you do not need additional claims from this endpoint (e.g. in case you are rate-limited by your provider). | true |
camunda.security.authentication.oidc.user-info-uri | Sets the OIDC provider's user info URI explicitly. If set, overrides the value discovered from the issuer URI. | |
camunda.security.authentication.oidc.user-info-augmentation.enabled | Enables optional enrichment of JWT claims with data from the OIDC user info endpoint. | false |
camunda.security.authentication.oidc.user-info-augmentation.cache-ttl | How long a successful user info response is cached. Format: ISO 8601 duration (PnDTnHnMn.nS). | PT5M |
camunda.security.authentication.oidc.user-info-augmentation.cache-max-size | The maximum number of user info responses held in the cache. | 10000 |
camunda.security.authentication.oidc.user-info-augmentation.negative-cache-ttl | How long a failed user info lookup is cached before it is retried. Format: ISO 8601 duration (PnDTnHnMn.nS). | PT5S |
camunda.security.authentication.oidc.clock-skew | Sets the allowed clock skew when validating JWT issuance and expiration. Format: ISO 8601 duration (PnDTnHnMn.nS). | 60S |
camunda.security.authentication.oidc.id-token-algorithm | Sets the ID token signature algorithm. | RS256 |
camunda.security.authentication.oidc.resource | List of resource indicators to include in token and authorization requests. Used to specify target resources as defined in RFC 8707. | |
camunda.security.authentication.oidc.diagnostics.enabled | Enables additional diagnostic logging during the OIDC authentication flow to help identify common misconfigurations. Intended for troubleshooting only; disable in production environments. | false |
Enabling prefer-id-token-claims changes which token's claims are trusted for authorization decisions, from the access token to the ID token and user info response. Audience semantics differ between the two: the access token's audience identifies the API it authorizes access to, while the ID token's audience identifies the client the token was issued to. Only enable this to work around an access token that Camunda cannot validate or that is missing required claims, not as a default choice.
camunda.security.authentication.oidc.assertion
Configuration options for the client assertion used in Bearer JWT client authentication.
These properties apply only when camunda.security.authentication.oidc.client-authentication-method is set to private_key_jwt.
The key value refers to the private key ID used to sign the client assertion JWT.
| Property | Description | Default value |
|---|---|---|
camunda.security.authentication.oidc.assertion.kid-source | Source for generating the key ID. Options: CERTIFICATE, PUBLIC_KEY. | PUBLIC_KEY |
camunda.security.authentication.oidc.assertion.kid-digest-algorithm | Hash algorithm used to generate the key ID. Options: SHA256, SHA1. | SHA256 |
camunda.security.authentication.oidc.assertion.kid-encoding | Key ID encoding. Options: BASE64URL, HEX. | BASE64URL |
camunda.security.authentication.oidc.assertion.kid-case | Key ID case. Only applicable to HEX encoding. Options: UPPER, LOWER. |
camunda.security.authentication.oidc.assertion.keystore
Configuration of the keystore used to build the client assertion for Bearer JWT client authentication.
These properties apply only when camunda.security.authentication.oidc.client-authentication-method is set to private_key_jwt.
| Property | Description | Default value |
|---|---|---|
camunda.security.authentication.oidc.assertion.keystore.path | Path to the PKCS12 keystore. | |
camunda.security.authentication.oidc.assertion.keystore.password | Keystore password. | |
camunda.security.authentication.oidc.assertion.keystore.key-alias | Alias of the private key to be used to sign the client assertion. | |
camunda.security.authentication.oidc.assertion.keystore.key-password | Password of the private key. |
camunda.security.authentication.providers.oidc
Configuration options to connect to multiple identity providers.
<provider-id> is a unique, user-defined identifier. All properties that share the same <provider-id> belong to the same identity provider configuration.
| Property | Description | Default value |
|---|---|---|
camunda.security.authentication.providers.oidc.<provider-id>.client-name | The client name for OIDC authentication. | |
camunda.security.authentication.providers.oidc.<provider-id>.client-id | The client ID for OIDC authentication. | |
camunda.security.authentication.providers.oidc.<provider-id>.client-secret | The client secret for OIDC authentication. Only takes effect if camunda.security.authentication.providers.oidc.[provider-id].client-authentication-method is set to client_secret_basic or left default. | |
camunda.security.authentication.providers.oidc.<provider-id>.issuer-uri | The issuer URI for OIDC authentication, it is required and identifies the identity provider that issues tokens for this configuration. If set, the individual endpoints of your OIDC provider will be fetched from its well-known configuration endpoint. | |
camunda.security.authentication.providers.oidc.<provider-id>.redirect-uri | The URI for redirects from the OIDC provider to the Orchestration Cluster after user login. | http://localhost:8080/sso-callback |
camunda.security.authentication.providers.oidc.<provider-id>.audiences | Comma-separated list of audiences to validate in the OIDC token. | |
camunda.security.authentication.providers.oidc.<provider-id>.scope | Comma-separated list of scopes to request in the OIDC token. | openid, profile |
camunda.security.authentication.providers.oidc.<provider-id>.jwk-set-uri | Sets the OIDC provider's JWK Set URI explicitly. This will override the well-known configuration's value. | |
camunda.security.authentication.providers.oidc.<provider-id>.additional-jwk-set-uris | Sets additional JWK Set URIs for key resolution. Use this when your identity provider hosts signing keys at multiple JWKS endpoints (for example, separate endpoints for machine-to-machine access tokens and user session tokens). Keys are resolved from the primary jwk-set-uri first, then from each additional URI in order. | |
camunda.security.authentication.providers.oidc.<provider-id>.authorization-uri | Sets the OIDC provider's authorization URI explicitly. This will override the well-known configuration's value. | |
camunda.security.authentication.providers.oidc.<provider-id>.token-uri | Sets the OIDC provider's token URI explicitly. This will override the well-known configuration's value. | |
camunda.security.authentication.providers.oidc.<provider-id>.client-authentication-method | Sets the client authentication method to use. Options: client_secret_basic, private_key_jwt. | client_secret_basic |
camunda.security.authentication.providers.oidc.<provider-id>.resource | List of resource indicators to include in token and authorization requests. Used to specify target resources as defined in RFC 8707. |
Client assertion settings are configured per identity provider. Each provider supports the same client assertion properties described in Client assertion configuration and Keystore Client assertion configuration, applied within the scope of the corresponding <provider-id>.
camunda.security.authorizations
| Property | Description | Default value |
|---|---|---|
camunda.security.authorizations.enabled | Enables authorization checks for Orchestration Cluster resources. | true |
camunda.security.initialization.authorizations
| Property | Description | Default value |
|---|---|---|
camunda.security.initialization.authorizations.[0].ownerType | The owner type to assign to this authorization. | |
camunda.security.initialization.authorizations.[0].ownerId | The owner ID to assign to this authorization. | |
camunda.security.initialization.authorizations.[0].resourceType | The resource type that this authorization applies to. | |
camunda.security.initialization.authorizations.[0].resourceId | The resource ID that this authorization applies to. | |
camunda.security.initialization.authorizations.[0].permissions | Permissions to assign to this authorization. The available permissions vary by resource type. |
camunda.security.initialization.default-roles
| Property | Description | Default value |
|---|---|---|
camunda.security.initialization.default-roles.<role>.clients.[0] | Clients assigned to the <role> role. | |
camunda.security.initialization.default-roles.<role>.groups.[0] | Groups assigned to the <role> role. | |
camunda.security.initialization.default-roles.<role>.mappingrules.[0] | Mapping rules assigned to the <role> role. | |
camunda.security.initialization.default-roles.<role>.users.[0] | Users assigned to the <role> role. |
camunda.security.initialization.groups
| Property | Description | Default value |
|---|---|---|
camunda.security.initialization.groups.[0].groupId | The ID of this group. | |
camunda.security.initialization.groups.[0].name | The name of this group. | |
camunda.security.initialization.groups.[0].description | The description of this group. | |
camunda.security.initialization.groups.[0].clients | The clients assigned to this group. | |
camunda.security.initialization.groups.[0].mappingRules | The mapping rules assigned to this group. | |
camunda.security.initialization.groups.[0].users | The users assigned to this group. |
camunda.security.initialization.roles
| Property | Description | Default value |
|---|---|---|
camunda.security.initialization.roles.[0].roleId | The ID of this role. | |
camunda.security.initialization.roles.[0].name | The name of this role. | |
camunda.security.initialization.roles.[0].description | The description of this role. | |
camunda.security.initialization.roles.[0].clients | The clients assigned to this role. | |
camunda.security.initialization.roles.[0].groups | The groups assigned to this role. | |
camunda.security.initialization.roles.[0].mappingRules | The mapping rules assigned to this role. | |
camunda.security.initialization.roles.[0].users | The users assigned to this role. |
camunda.security.initialization.tenants
| Property | Description | Default value |
|---|---|---|
camunda.security.initialization.tenants.[0].tenantId | The ID of this tenant. | |
camunda.security.initialization.tenants.[0].name | The name of this tenant. | |
camunda.security.initialization.tenants.[0].description | The description of this tenant. | |
camunda.security.initialization.tenants.[0].clients | The clients assigned to this tenant. | |
camunda.security.initialization.tenants.[0].groups | The groups assigned to this tenant. | |
camunda.security.initialization.tenants.[0].mappingRules | The mapping rules assigned to this tenant. | |
camunda.security.initialization.tenants.[0].roles | The roles assigned to this tenant. | |
camunda.security.initialization.tenants.[0].users | The users assigned to this tenant. |
camunda.security.initialization.users
| Property | Description | Default value |
|---|---|---|
camunda.security.initialization.users.[0].email | The email address of the first user. | |
camunda.security.initialization.users.[0].name | The name of the first user. | |
camunda.security.initialization.users.[0].password | The password of the first user. | |
camunda.security.initialization.users.[0].username | The username of the first user. |
camunda.security.initialization.mappingrules
| Property | Description | Default value |
|---|---|---|
camunda.security.initialization.mappingrules.[0].claim-name | The claim of the first mapping rule. | |
camunda.security.initialization.mappingrules.[0].claim-value | The claim's value of the first mapping rule. | |
camunda.security.initialization.mappingrules.[0].mapping-rule-id | The id of the first mapping rule. |
camunda.security.multi-tenancy
| Property | Description | Default value |
|---|---|---|
camunda.security.multi-tenancy.api-enabled | Enables the multi-tenancy API and UI independently from multi-tenancy checks. | true |
camunda.security.multi-tenancy.checks-enabled | Enables multi-tenancy checks. This requires the API to be protected. | false |
camunda.security.transport-layer-security.cluster
| Property | Description | Default value |
|---|---|---|
camunda.security.transport-layer-security.cluster.enabled | Enables TLS authentication for internal cluster (broker-to-broker) communication. | false |
camunda.security.transport-layer-security.cluster.certificate-chain-path | Sets the path to the certificate chain file. | |
camunda.security.transport-layer-security.cluster.certificate-private-key-path | Sets the path to the private key file location. | |
camunda.security.transport-layer-security.cluster.key-store.file-path | Configures the keystore file containing both the certificate chain and the private key. Currently only supports PKCS12 format. | './cluster.jks' |
camunda.security.transport-layer-security.cluster.key-store.password | Configures the keystore password. | ${CLUSTER_KEY_STORE_PW} |
spring.profiles
| Property | Description | Default value |
|---|---|---|
spring.profiles.active | Note: This property will be deprecated as additional authentication methods become available. | consolidated-auth |
CAMUNDA_PERSISTENT_SESSIONS
| Property | Description | Default value |
|---|---|---|
CAMUNDA_PERSISTENT_SESSIONS_ENABLED | Legacy name for CAMUNDA_SECURITY_SESSION_PERSISTENT_ENABLED. Still supported, and mapped to the current variable at startup. | false |
CAMUNDA_SECURITY
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_IDVALIDATIONPATTERN | A Java regular expression that validates the user-defined identifiers of Identity-related entities. | ^[a-zA-Z0-9_@.+-]+$ |
CAMUNDA_SECURITY_SESSION
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_SESSION_PERSISTENT_ENABLED | Stores session data in secondary storage so users stay logged in across cluster nodes. | false |
CAMUNDA_SECURITY_SESSION_MAXINACTIVEINTERVAL | How long a session can go without activity before it is treated as expired. Format: ISO 8601 duration (PnDTnHnMn.nS). | PT30M |
CAMUNDA_SECURITY_SESSION_HEARTBEAT_ENABLED | When disabled, any non-polling request extends the session. When enabled, only a call to the POST {basePath}/session/heartbeat endpoint extends the session, and ordinary application requests no longer count as activity. | false |
CAMUNDA_SECURITY_AUTHENTICATION
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_AUTHENTICATION_AUTHENTICATIONREFRESHINTERVAL | The interval at which the memberships (groups, roles, tenants, component authorizations) are refreshed for logged in users. Find more details in webserver and security. | PT30S |
CAMUNDA_SECURITY_AUTHENTICATION_METHOD | The authentication method to use. Options: basic, oidc. | basic |
CAMUNDA_SECURITY_AUTHENTICATION_UNPROTECTEDAPI | If the API can be used without authentication. | false |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_CLIENTID | The client ID for OIDC authentication. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_CLIENTSECRET | The client secret for OIDC authentication. Only takes effect if CAMUNDA_SECURITY_AUTHENTICATION_OIDC_CLIENTAUTHENTICATIONMETHOD is set to client_secret_basic or left default. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ISSUERURI | The issuer URI for OIDC authentication. If set, the individual endpoints of your OIDC provider will be fetched from its well-known configuration endpoint. In this case, any individually configured token, authorization, and JWKS URIs do not take effect. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_REDIRECTURI | The URI for redirects from the OIDC provider to the Orchestration Cluster after user login. | http://localhost:8080/sso-callback |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_USERNAMECLAIM | The JWT claim that identifies a user. Extracted from a token, this claim value becomes the user's username. This setting is evaluated on any token-based access, regardless of the underlying OIDC/OAuth flow. | sub |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_GROUPSCLAIM | The JWT claim that contains a user's or client's groups. Expects an array of String values. If not set, groups can be managed in the Orchestration Cluster through its REST APIs. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_CLIENTIDCLAIM | The JWT claim that identifies a client. Extracted from a token, this claim value becomes the client ID. This setting is evaluated on any token-based access, regardless of the underlying OIDC/OAuth flow. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_PREFERUSERNAMECLAIM | Determines if a token that contains both, the configured username claim and the configured client id claim, is treated as a user or a client. If set to true, it is treated as a user. If set to false, it is treated as a client. | false |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_PREFERIDTOKENCLAIMS | If enabled, claims are read from the ID token and the user info endpoint instead of the access token. Use this when the access token is signed by a key set that Camunda cannot reach, or does not contain the claims Camunda needs. | false |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_AUDIENCES | Comma-separated list of audiences to validate in the OIDC token. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_SCOPE | Comma-separated list of scopes to request in the OIDC token. | openid, profile |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_JWKSETURI | Sets the OIDC provider's JWK Set URI explicitly. If set, overrides the value discovered from CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ISSUERURI. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ADDITIONALJWKSETURIS.[0] | Sets additional JWK Set URIs for key resolution. Use this when your identity provider hosts signing keys at multiple JWKS endpoints (for example, separate endpoints for machine-to-machine access tokens and user session tokens). Keys are resolved from the primary JWKSETURI first, then from each additional URI in order. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_AUTHORIZATIONURI | Sets the OIDC provider's authorization URI explicitly. If set, overrides the value discovered from CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ISSUERURI. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_TOKENURI | Sets the OIDC provider's token URI explicitly. If set, overrides the value discovered from CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ISSUERURI. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_AUTHORIZEREQUESTCONFIGURATION_ADDITIONALPARAMETERS.[0] | Sets a map of additional parameters to send to your IDP during the authorzation flow. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ENDSESSIONENDPOINTURI | Sets the OIDC provider's end session endpoint URI explicitly. If set, overrides the value discovered from CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ISSUERURI. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_IDPLOGOUTENABLED | If enabled, users will be logged out of the identity provider when logging out of the Orchestration Cluster. | true |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_CLIENTAUTHENTICATIONMETHOD | Sets the client authentication method to use. Options: client_secret_basic, private_key_jwt. | client_secret_basic |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_USERINFOENABLED | If enabled, will enrich the access token with information from the /userinfo endpoint. See section 5.3 of the OIDC specification.. Generally safe to leave true, but can be safely disabled if you do not need additional claims from this endpoint (e.g. in case you are rate-limited by your provider). | true |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_USERINFOURI | Sets the OIDC provider's user info URI explicitly. If set, overrides the value discovered from the issuer URI. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_USERINFOAUGMENTATION_ENABLED | Enables optional enrichment of JWT claims with data from the OIDC user info endpoint. | false |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_USERINFOAUGMENTATION_CACHETTL | How long a successful user info response is cached. Format: ISO 8601 duration (PnDTnHnMn.nS). | PT5M |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_USERINFOAUGMENTATION_CACHEMAXSIZE | The maximum number of user info responses held in the cache. | 10000 |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_USERINFOAUGMENTATION_NEGATIVECACHETTL | How long a failed user info lookup is cached before it is retried. Format: ISO 8601 duration (PnDTnHnMn.nS). | PT5S |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_CLOCKSKEW | Sets the allowed clock skew when validating JWT issuance and expiration. Format: ISO 8601 duration (PnDTnHnMn.nS). | 60S |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_IDTOKENALGORITHM | Sets the ID token signature algorithm. | RS256 |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_RESOURCE_0 | List of resource indicators to include in token and authorization requests. Used to specify target resources as defined in RFC 8707. Use _0, _1, _2, etc. to specify multiple resources. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_DIAGNOSTICSENABLED | Enables additional diagnostic logging during the OIDC authentication flow to help identify common misconfigurations. Intended for troubleshooting only; disable in production environments. | false |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ASSERTION
Configuration options for the client assertion used in Bearer JWT client authentication.
These properties apply only when CAMUNDA_SECURITY_AUTHENTICATION_OIDC_CLIENTAUTHENTICATIONMETHOD is set to private_key_jwt.
The key value refers to the private key ID used to sign the client assertion JWT.
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ASSERTION_KIDSOURCE | Source for generating the key ID. Options: CERTIFICATE, PUBLIC_KEY. | PUBLIC_KEY |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ASSERTION_KIDDIGESTALGORITHM | Hash algorithm used to generate the key ID. Options: SHA256, SHA1. | SHA256 |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ASSERTION_KIDENCODING | Key ID encoding. Options: BASE64URL, HEX. | BASE64URL |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ASSERTION_KIDCASE | Key ID case. Only applicable to HEX encoding. Options: UPPER, LOWER. |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ASSERTION_KEYSTORE
Configuration of the keystore used to build the client assertion for Bearer JWT client authentication.
These properties apply only when CAMUNDA_SECURITY_AUTHENTICATION_OIDC_CLIENTAUTHENTICATIONMETHOD is set to private_key_jwt.
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ASSERTION_KEYSTORE_PATH | Path to the PKCS12 keystore. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ASSERTION_KEYSTORE_PASSWORD | Keystore password. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ASSERTION_KEYSTORE_KEYALIAS | Alias of the private key to be used to sign the client assertion. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ASSERTION_KEYSTORE_KEYPASSWORD | Password of the private key. |
CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC
Configuration options to connect to multiple identity providers.
<provider-id> is a unique, user-defined identifier. All properties that share the same <provider-id> belong to the same identity provider configuration.
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_<provider-id>_CLIENTNAME | The client name for OIDC authentication. | |
CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_<provider-id>_CLIENTID | The client ID for OIDC authentication. | |
CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_<provider-id>_CLIENTSECRET | The client secret for OIDC authentication. Only takes effect if CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_<provider-id>_CLIENT_AUTHENTICATION_METHOD is set to client_secret_basic or left default. | |
CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_<provider-id>_ISSUERURI | The issuer URI for OIDC authentication, it is required and identifies the identity provider that issues tokens for this configuration. If set, the individual endpoints of your OIDC provider will be fetched from its well-known configuration endpoint. | |
CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_<provider-id>_REDIRECTURI | The URI for redirects from the OIDC provider to the Orchestration Cluster after user login. | http://localhost:8080/sso-callback |
CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_<provider-id>_AUDIENCES | Comma-separated list of audiences to validate in the OIDC token. | |
CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_<provider-id>_SCOPE | Comma-separated list of scopes to request in the OIDC token. | openid, profile |
CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_<provider-id>_JWKSETURI | Sets the OIDC provider's JWK Set URI explicitly. This will override the well-known configuration's value. | |
CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_<provider-id>_ADDITIONALJWKSETURIS.[0] | Sets additional JWK Set URIs for key resolution. Use this when your identity provider hosts signing keys at multiple JWKS endpoints (for example, separate endpoints for machine-to-machine access tokens and user session tokens). Keys are resolved from the primary JWKSETURI first, then from each additional URI in order. | |
CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_<provider-id>_AUTHORIZATIONURI | Sets the OIDC provider's authorization URI explicitly. This will override the well-known configuration's value. | |
CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_<provider-id>_TOKENURI | Sets the OIDC provider's token URI explicitly. This will override the well-known configuration's value. | |
CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_<provider-id>_CLIENTAUTHENTICATIONMETHOD | Sets the client authentication method to use. Options: client_secret_basic, private_key_jwt. | client_secret_basic |
CAMUNDA_SECURITY_AUTHENTICATION_PROVIDERS_OIDC_<provider-id>_RESOURCE_0 | List of resource indicators to include in token and authorization requests. Used to specify target resources as defined in RFC 8707. Use _0, _1, _2, etc. to specify multiple resources. |
Client assertion settings are configured per identity provider. Each provider supports the same client assertion properties described in Client assertion configuration and Keystore Client assertion configuration, applied within the scope of the corresponding <provider-id>.
CAMUNDA_SECURITY_AUTHORIZATION
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_AUTHORIZATIONS_ENABLED | Enables authorization checks for Orchestration Cluster resources. | true |
CAMUNDA_SECURITY_CSRF
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_CSRF_ENABLED | Enables or disables CSRF protection. Disabling CSRF protection is not recommended for production environments as it leaves your application vulnerable to cross-site request forgery attacks. | true |
CAMUNDA_SECURITY_CSRF_COOKIEHTTPONLY | Sets HttpOnly on the X-CSRF-TOKEN cookie. Leave this false for browser-facing web applications, which need to read the token from JavaScript. Set it to true only if you exclusively serve API clients that read the token from response headers. | false |
CAMUNDA_SECURITY_CSRF_IGNOREDPATHPATTERNS | Ant-style path patterns that CSRF protection ignores, in addition to the unprotected paths and the login and logout endpoints, which are always ignored. |
CAMUNDA_SECURITY_HTTPHEADERS
| Property | Description | Related Header | Default value |
|---|---|---|---|
CAMUNDA_SECURITY_HTTPHEADERS_CACHECONTROL_ENABLED | Enables or disables cache prevention headers. Default values: Cache-Control: no-cache, no-store, max-age=0, must-revalidate, Pragma: no-cache, Expires: 0. | Cache-Control, Pragma, Expires | true |
CAMUNDA_SECURITY_HTTPHEADERS_CONTENTSECURITYPOLICY_ENABLED | Enables or disables CSP headers. | Content-Security-Policy | true |
CAMUNDA_SECURITY_HTTPHEADERS_CONTENTSECURITYPOLICY_MODE | Selects the built-in default policy. Options: SELF_MANAGED, SAAS, CUSTOM. CAMUNDA_SECURITY_HTTPHEADERS_CONTENTSECURITYPOLICY_POLICYDIRECTIVES applies whenever it is set, regardless of this setting. Setting CUSTOM without also setting it sends no Content-Security-Policy header at all. | Content-Security-Policy | SELF_MANAGED |
CAMUNDA_SECURITY_HTTPHEADERS_CONTENTSECURITYPOLICY_POLICYDIRECTIVES | Custom CSP directives, applied whenever set, regardless of mode. If not set, default values applied. | Content-Security-Policy | |
CAMUNDA_SECURITY_HTTPHEADERS_CONTENTSECURITYPOLICY_REPORTONLY | Enables reporting mode without enforcing policies. | Content-Security-Policy-Report-Only | false |
CAMUNDA_SECURITY_HTTPHEADERS_CONTENTTYPEOPTIONS_ENABLED | Enables or disables X-Content-Type-Options header with nosniff value. | X-Content-Type-Options | true |
CAMUNDA_SECURITY_HTTPHEADERS_CROSSORIGINEMBEDDERPOLICY_VALUE | Restricts embedded cross-origin resources. Options: REQUIRE_CORP, UNSAFE_NONE. | Cross-Origin-Embedder-Policy | UNSAFE_NONE |
CAMUNDA_SECURITY_HTTPHEADERS_CROSSORIGINOPENERPOLICY_VALUE | Isolates windows from cross-origin openers. Options: UNSAFE_NONE, SAME_ORIGIN_ALLOW_POPUPS, SAME_ORIGIN. | Cross-Origin-Opener-Policy | SAME_ORIGIN_ALLOW_POPUPS |
CAMUNDA_SECURITY_HTTPHEADERS_CROSSORIGINRESOURCEPOLICY_VALUE | Declares whether resources can be loaded cross-origin. Options: SAME_ORIGIN, SAME_SITE, CROSS_ORIGIN. | Cross-Origin-Resource-Policy | SAME_SITE |
CAMUNDA_SECURITY_HTTPHEADERS_FRAMEOPTIONS_ENABLED | Enables or disables X-Frame-Options header. Default value is SAMEORIGIN. | X-Frame-Options | true |
CAMUNDA_SECURITY_HTTPHEADERS_FRAMEOPTIONS_MODE | Frame options mode. Options: DENY, SAMEORIGIN. | X-Frame-Options | SAMEORIGIN |
CAMUNDA_SECURITY_HTTPHEADERS_HSTS_ENABLED | Enables or disables Strict-Transport-Security header. | Strict-Transport-Security | true |
CAMUNDA_SECURITY_HTTPHEADERS_HSTS_INCLUDESUBDOMAINS | Applies HSTS to all subdomains. | Strict-Transport-Security | false |
CAMUNDA_SECURITY_HTTPHEADERS_HSTS_MAXAGEINSECONDS | HSTS max age in seconds. | Strict-Transport-Security | 31536000 |
CAMUNDA_SECURITY_HTTPHEADERS_HSTS_PRELOAD | Enables HSTS preloading. | Strict-Transport-Security | false |
CAMUNDA_SECURITY_HTTPHEADERS_PERMISSIONSPOLICY_VALUE | Restricts access to browser capabilities. | Permissions-Policy | Disables all features by default |
CAMUNDA_SECURITY_HTTPHEADERS_REFERRERPOLICY_VALUE | Controls referrer information sharing. See available values below. | Referrer-Policy | STRICT_ORIGIN_WHEN_CROSS_ORIGIN |
Default Content Security Policy
This is default value of the Content Security Policy when enabled:
default-src 'self';
base-uri 'self';
script-src 'self' https: *.chargebee.com *.mixpanel.com ajax.cloudflare.com static.cloudflareinsights.com;
script-src-elem 'self' cdn.jsdelivr.net ;
connect-src 'self' https: *.mixpanel.com cloudflareinsights.com *.appcues.net wss://api.appcues.net cdn.jsdelivr.net;
style-src 'self' https: 'unsafe-inline' cdn.jsdelivr.net *.googleapis.com *.chargebee.com;
img-src data: 'self';
form-action 'self';
frame-ancestors 'self';
frame-src 'self' https: *.chargebee.com blob: ;
object-src 'self' blob:;
font-src 'self' data: fonts.camunda.io cdn.jsdelivr.net;
worker-src 'self' blob:;
child-src;
script-src-attr 'none'.
CAMUNDA_SECURITY_INITIALIZATION_AUTHORIZATIONS
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_INITIALIZATION_AUTHORIZATIONS_0_OWNER_TYPE | The owner type to assign to this authorization. | |
CAMUNDA_SECURITY_INITIALIZATION_AUTHORIZATIONS_0_OWNER_ID | The owner ID to assign to this authorization. | |
CAMUNDA_SECURITY_INITIALIZATION_AUTHORIZATIONS_0_RESOURCE_TYPE | The resource type that this authorization applies to. | |
CAMUNDA_SECURITY_INITIALIZATION_AUTHORIZATIONS_0_RESOURCE_ID | The resource ID that this authorization applies to. | |
CAMUNDA_SECURITY_INITIALIZATION_AUTHORIZATIONS_0_PERMISSIONS | Permissions to assign to this authorization. The available permissions vary by resource type. |
CAMUNDA_SECURITY_INITIALIZATION_DEFAULTROLES
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_INITIALIZATION_DEFAULTROLES_<ROLE>_CLIENTS_0 | Clients assigned to the <role> role. | |
CAMUNDA_SECURITY_INITIALIZATION_DEFAULTROLES_<ROLE>_GROUPS_0 | Groups assigned to the <role> role. | |
CAMUNDA_SECURITY_INITIALIZATION_DEFAULTROLES_<ROLE>_MAPPINGRULES_0 | Mapping rules assigned to the <role> role. | |
CAMUNDA_SECURITY_INITIALIZATION_DEFAULTROLES_<ROLE>_USERS_0 | Users assigned to the <role> role. |
CAMUNDA_SECURITY_INITIALIZATION_MAPPINGRULES
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_INITIALIZATION_MAPPINGRULES_0_CLAIMNAME | The claim of the first mapping rule. | |
CAMUNDA_SECURITY_INITIALIZATION_MAPPINGRULES_0_CLAIMVALUE | The claim's value of the first mapping rule. | |
CAMUNDA_SECURITY_INITIALIZATION_MAPPINGRULES_0_MAPPINGRULEID | The id of the first mapping rule. |
CAMUNDA_SECURITY_INITIALIZATION_GROUPS
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_INITIALIZATION_GROUPS_0_GROUP_ID | The ID of this group. | |
CAMUNDA_SECURITY_INITIALIZATION_GROUPS_0_NAME | The name of this group. | |
CAMUNDA_SECURITY_INITIALIZATION_GROUPS_0_DESCRIPTION | The description of this group. | |
CAMUNDA_SECURITY_INITIALIZATION_GROUPS_0_CLIENTS | The clients assigned to this group. | |
CAMUNDA_SECURITY_INITIALIZATION_GROUPS_0_MAPPING_RULES | The mapping rules assigned to this group. | |
CAMUNDA_SECURITY_INITIALIZATION_GROUPS_0_USERS | The users assigned to this group. |
CAMUNDA_SECURITY_INITIALIZATION_ROLES
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_INITIALIZATION_ROLES_0_ROLE_ID | The ID of this role. | |
CAMUNDA_SECURITY_INITIALIZATION_ROLES_0_NAME | The name of this role. | |
CAMUNDA_SECURITY_INITIALIZATION_ROLES_0_DESCRIPTION | The description of this role. | |
CAMUNDA_SECURITY_INITIALIZATION_ROLES_0_CLIENTS | The clients assigned to this role. | |
CAMUNDA_SECURITY_INITIALIZATION_ROLES_0_GROUPS | The groups assigned to this role. | |
CAMUNDA_SECURITY_INITIALIZATION_ROLES_0_MAPPING_RULES | The mapping rules assigned to this role. | |
CAMUNDA_SECURITY_INITIALIZATION_ROLES_0_USERS | The users assigned to this role. |
CAMUNDA_SECURITY_INITIALIZATION_TENANTS
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_INITIALIZATION_TENANTS_0_TENANT_ID | The ID of this tenant. | |
CAMUNDA_SECURITY_INITIALIZATION_TENANTS_0_NAME | The name of this tenant. | |
CAMUNDA_SECURITY_INITIALIZATION_TENANTS_0_DESCRIPTION | The description of this tenant. | |
CAMUNDA_SECURITY_INITIALIZATION_TENANTS_0_CLIENTS | The clients assigned to this tenant. | |
CAMUNDA_SECURITY_INITIALIZATION_TENANTS_0_GROUPS | The groups assigned to this tenant. | |
CAMUNDA_SECURITY_INITIALIZATION_TENANTS_0_MAPPING_RULES | The mapping rules assigned to this tenant. | |
CAMUNDA_SECURITY_INITIALIZATION_TENANTS_0_ROLES | The roles assigned to this tenant. | |
CAMUNDA_SECURITY_INITIALIZATION_TENANTS_0_USERS | The users assigned to this tenant. |
CAMUNDA_SECURITY_INITIALIZATION_USERS
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_INITIALIZATION_USERS_0_EMAIL | The email address of the first user. | |
CAMUNDA_SECURITY_INITIALIZATION_USERS_0_NAME | The name of the first user. | |
CAMUNDA_SECURITY_INITIALIZATION_USERS_0_PASSWORD | The password of the first user. | |
CAMUNDA_SECURITY_INITIALIZATION_USERS_0_USERNAME | The username of the first user. |
CAMUNDA_SECURITY_MULTITENANCY
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_MULTITENANCY_APIENABLED | Enables the multi-tenancy API and UI independently from multi-tenancy checks. | true |
CAMUNDA_SECURITY_MULTITENANCY_CHECKSENABLED | Enables multi-tenancy checks. This requires the API to be protected. | false |
CAMUNDA_SECURITY_TRANSPORTLAYERSECURITY_CLUSTER
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SECURITY_TRANSPORTLAYERSECURITY_CLUSTER_ENABLED | Enables TLS authentication for internal cluster (broker-to-broker) communication. | false |
CAMUNDA_SECURITY_TRANSPORTLAYERSECURITY_CLUSTER_CERTIFICATECHAINPATH | Sets the path to the certificate chain file. | |
CAMUNDA_SECURITY_TRANSPORTLAYERSECURITY_CLUSTER_CERTIFICATEPRIVATEKEYPATH | Sets the path to the private key file location. | |
CAMUNDA_SECURITY_TRANSPORTLAYERSECURITY_CLUSTER_KEYSTORE_FILEPATH | Configures the keystore file containing both the certificate chain and the private key. Currently only supports PKCS12 format. | './cluster.jks' |
CAMUNDA_SECURITY_TRANSPORTLAYERSECURITY_CLUSTER_KEYSTORE_PASSWORD | Configures the keystore password. | ${CLUSTER_KEY_STORE_PW} |
SPRING_PROFILES
| Property | Description | Default value |
|---|---|---|
SPRING_PROFILES_ACTIVE | Note: This property will be deprecated as additional authentication methods become available. | consolidated-auth |
Some orchestration.security.* Helm values are deprecated in chart 15.x (8.10). They continue to work, and each one logs a [camunda][warning] DEPRECATION message on helm install or helm upgrade. Set them through orchestration.extraConfiguration instead, using the application property names from the Application properties tab. This is a chart packaging change: the camunda.security.* application properties are unchanged in 8.10.
For the full list and the migration targets, see deprecated application configuration Helm keys.
orchestration.security.authentication
| Property | Description | Default value |
|---|---|---|
orchestration.security.authentication.method | The authentication method to use. Options: basic, oidc. | basic |
orchestration.security.authentication.authenticationRefreshInterval | The interval at which the memberships (groups, roles, tenants, component authorizations) are refreshed for logged in users. Find more details in webserver and security. | PT30S |
orchestration.security.authentication.unprotectedApi | If the API can be used without authentication. | false |
orchestration.security.authentication.oidc
| Property | Description | Default value |
|---|---|---|
orchestration.security.authentication.oidc.clientId | The client ID for OIDC authentication. | |
orchestration.security.authentication.oidc.clientSecret | The client secret for OIDC authentication. | |
orchestration.security.authentication.oidc.issuer | Sets the OIDC provider's authorization URI explicitly. | |
orchestration.security.authentication.oidc.jwksUrl | Sets the OIDC provider's JWK Set URI explicitly. | |
orchestration.security.authentication.oidc.tokenUrl | Sets the OIDC provider's token URI explicitly. | |
orchestration.security.authentication.oidc.redirectUrl | The URI for redirects from the OIDC provider to the Orchestration Cluster after user login | http://localhost:8080/sso-callback |
orchestration.security.authentication.oidc.userNameClaim | The JWT claim that identifies a user. Extracted from a token, this claim value becomes the user's username. This setting is evaluated on any token-based access, regardless of the underying OIDC/OAuth flow. | sub |
orchestration.security.authentication.oidc.clientIdClaim | The JWT claim that identifies a client. Extracted from a token, this claim value becomes the client ID. This setting is evaluated on any token-based access, regardless of the underying OIDC/OAuth flow. | sub |
orchestration.security.authentication.oidc.groupsClaim | The JWT claim that contains a user's or client's groups. Expects an array of String values. If not set, groups can be managed in the Orchestration Cluster through its REST APIs. | |
orchestration.security.authentication.oidc.audiences | Comma-separated list of audiences to validate in the OIDC token. |
orchestration.security.authorizations
| Property | Description | Default value |
|---|---|---|
orchestration.security.authorizations.enabled | Enables authorization checks for Orchestration Cluster resources. | true |
orchestration.security.csrf
| Property | Description | Default value |
|---|---|---|
orchestration.security.csrf.enabled | Enables or disables CSRF protection. Disabling CSRF protection is not recommended for production environments as it leaves your application vulnerable to cross-site request forgery attacks. | true |
orchestration.security.httpHeaders
| Property | Description | Related Header | Default value |
|---|---|---|---|
orchestration.security.httpHeaders.cacheControl.enabled | Enables or disables cache prevention headers. Default values: Cache-Control: no-cache, no-store, max-age=0, must-revalidate, Pragma: no-cache, Expires: 0. | Cache-Control, Pragma, Expires | true |
orchestration.security.httpHeaders.contentSecurityPolicy.enabled | Enables or disables CSP headers. | Content-Security-Policy | true |
orchestration.security.httpHeaders.contentSecurityPolicy.policyDirectives | Custom CSP directives. If not set, default values applied. If set, overrides default CSP policies. | Content-Security-Policy | |
orchestration.security.httpHeaders.contentSecurityPolicy.reportOnly | Enables reporting mode without enforcing policies. | Content-Security-Policy-Report-Only | false |
orchestration.security.httpHeaders.contentTypeOptions.enabled | Enables or disables X-Content-Type-Options header with nosniff value. | X-Content-Type-Options | true |
orchestration.security.httpHeaders.crossOriginEmbedderPolicy.value | Restricts embedded cross-origin resources. Options: REQUIRE_CORP, UNSAFE_NONE. | Cross-Origin-Embedder-Policy | UNSAFE_NONE |
orchestration.security.httpHeaders.crossOriginOpenerPolicy.value | Isolates windows from cross-origin openers. Options: UNSAFE_NONE, SAME_ORIGIN_ALLOW_POPUPS, SAME_ORIGIN. | Cross-Origin-Opener-Policy | SAME_ORIGIN_ALLOW_POPUPS |
orchestration.security.httpHeaders.crossOriginResourcePolicy.value | Declares whether resources can be loaded cross-origin. Options: SAME_ORIGIN, SAME_SITE, CROSS_ORIGIN. | Cross-Origin-Resource-Policy | SAME_SITE |
orchestration.security.httpHeaders.frameOptions.enabled | Enables or disables X-Frame-Options header. Default value is SAMEORIGIN. | X-Frame-Options | true |
orchestration.security.httpHeaders.frameOptions.mode | Frame options mode. Options: DENY, SAMEORIGIN. | X-Frame-Options | SAMEORIGIN |
orchestration.security.httpHeaders.hsts.enabled | Enables or disables Strict-Transport-Security header. | Strict-Transport-Security | true |
orchestration.security.httpHeaders.hsts.includeSubdomains | Applies HSTS to all subdomains. | Strict-Transport-Security | false |
orchestration.security.httpHeaders.hsts.maxAgeInSeconds | HSTS max age in seconds. | Strict-Transport-Security | 31536000 |
orchestration.security.httpHeaders.hsts.preload | Enables HSTS preloading. | Strict-Transport-Security | false |
orchestration.security.httpHeaders.permissionsPolicy.value | Restricts access to browser capabilities. | Permissions-Policy | Disables all features by default |
orchestration.security.httpHeaders.referrerPolicy.value | Controls referrer information sharing. See available values below. | Referrer-Policy | STRICT_ORIGIN_WHEN_CROSS_ORIGIN |
Default Content Security Policy
This is default value of the Content Security Policy when enabled:
default-src 'self';
base-uri 'self';
script-src 'self' https: *.chargebee.com *.mixpanel.com ajax.cloudflare.com static.cloudflareinsights.com;
script-src-elem 'self' cdn.jsdelivr.net ;
connect-src 'self' https: *.mixpanel.com cloudflareinsights.com *.appcues.net wss://api.appcues.net cdn.jsdelivr.net;
style-src 'self' https: 'unsafe-inline' cdn.jsdelivr.net *.googleapis.com *.chargebee.com;
img-src data: 'self';
form-action 'self';
frame-ancestors 'self';
frame-src 'self' https: *.chargebee.com blob: ;
object-src 'self' blob:;
font-src 'self' data: fonts.camunda.io cdn.jsdelivr.net;
worker-src 'self' blob:;
child-src;
script-src-attr 'none'.
orchestration.security.initialization
| Property | Description | Default value |
|---|---|---|
orchestration.security.initialization.users | List of users to initialize (each with username, password, name, email). | |
orchestration.security.initialization.defaultRoles | Dictionary of role names assigning initial users, clients, or mapping rules to default roles. | |
orchestration.security.initialization.mappingRules | List of mapping rules to initialize when using OIDC (each with mappingRuleId, claimName, claimValue). | |
orchestration.security.initialization.authorizations | List of authorizations to initialize. |
orchestration.security.multiTenancy
| Property | Description | Default value |
|---|---|---|
orchestration.security.multiTenancy.checksEnabled | Enables multi-tenancy checks. This requires the API to be protected. | false |
orchestration.security.multiTenancy.apiEnabled | Enables the multi-tenancy API and UI independently from multi-tenancy checks. | true |
System
- Application properties
- Environment variables
camunda
| Property | Description | Default value |
|---|---|---|
camunda.mode | Defines the launch mode for Camunda. Use this setting to activate or deactivate features. Valid, non-
null, launch modes are disabled and behavior is defined by the active profiles and configuration properties. | null |
camunda.insecure | Controls whether security and authentication layers are enabled when you launch the application using | false |
camunda.webapps
camunda.webapps.operate
| Property | Description | Default value |
|---|---|---|
camunda.webapps.operate.enabled | Controls whether Operate is enabled in the Orchestration Cluster. | true |
camunda.webapps.operate.ui-enabled | Controls whether the Operate UI is enabled. | true |
camunda.webapps.tasklist
| Property | Description | Default value |
|---|---|---|
camunda.webapps.tasklist.enabled | Controls whether Tasklist is enabled in the Orchestration Cluster. | true |
camunda.webapps.tasklist.ui-enabled | Controls whether the Tasklist UI is enabled. | true |
camunda.webapps.identity
| Property | Description | Default value |
|---|---|---|
camunda.webapps.identity.enabled | Controls whether Identity is enabled in the Orchestration Cluster. | true |
camunda.webapps.identity.ui-enabled | Controls whether the Identity UI is enabled. | true |
camunda.system
| Property | Description | Default value |
|---|---|---|
camunda.system.cpu-thread-count | Controls the number of non-blocking CPU threads to be used Warning: You should never specify a value that is larger than the number of physical cores available. Good practice is to leave 1–2 cores for IO threads and the operating system (it has to run somewhere). For example, when running Zeebe on a machine which has 4 cores, a good value would be | 2 |
camunda.system.io-thread-count | Controls the number of IO threads to be used. These threads are used for workloads that write data to disk. While writing, these threads are blocked which means that they yield the CPU. | 2 |
camunda.system.clock-controlled | Controls whether the system clock or mutable one. If enabled, time progression can be controlled programmatically for testing purposes. | false |
camunda.system.restore
| Property | Description | Default value |
|---|---|---|
camunda.system.restore.validate-config | Controls whether the restore process validates its configuration (and restore setup) before running. | true |
camunda.system.restore.ignore-files-in-target | Controls which files/folders are ignored when the restore app validates that the Zeebe data directory is “empty enough” before restoring. The property is a list type. | [“lost+found”, “directory-initialized.json”] |
camunda.system.actor.idle
| Property | Description | Default value |
|---|---|---|
camunda.system.actor.idle.max-spins | The maximum number of busy-wait spins that an idle actor thread will perform before transitioning to a different idle state in Camunda's actor system. | null |
camunda.system.actor.idle.max-yields | The maximum number of yield operations that an idle actor thread will perform before transitioning to the next idle state in Camunda's actor system. | null |
camunda.system.actor.idle.max-park-period | The maximum duration that an idle actor thread will remain in the parked state in Camunda's actor system. | null |
camunda.system.upgrade
| Property | Description | Default value |
|---|---|---|
camunda.system.upgrade.enable-version-check | Controls whether the version compatibility check is enforced during migration. Use this to test migration logic with snapshot or alpha versions. The default value is | true |
CAMUNDA_SYSTEM
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SYSTEM_CPUTHREADCOUNT | Controls the number of non-blocking CPU threads to be used Warning: You should never specify a value that is larger than the number of physical cores available. Good practice is to leave 1–2 cores for IO threads and the operating system (it has to run somewhere). For example, when running Zeebe on a machine which has 4 cores, a good value would be | 2 |
CAMUNDA_SYSTEM_IOTHREADCOUNT | Controls the number of IO threads to be used. These threads are used for workloads that write data to disk. While writing, these threads are blocked which means that they yield the CPU. | 2 |
CAMUNDA_SYSTEM_CLOCKCONTROLLED | Controls whether the system uses the default system clock or a mutable clock. If enabled, you can control time progression programmatically for testing purposes. | false |
CAMUNDA_SYSTEM_RESTORE
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SYSTEM_RESTORE_VALIDATECONFIG | Controls whether the restore process validates its configuration (and restore setup) before running. | true |
CAMUNDA_SYSTEM_RESTORE_IGNOREFILESINTARGET | Controls which files/folders are ignored when the restore app validates that the Zeebe data directory is “empty enough” before restoring. The property is a list type. | [“lost+found”, “directory-initialized.json”] |
CAMUNDA_SYSTEM_ACTOR_IDLE
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SYSTEM_ACTOR_IDLE_MAXSPINS | The maximum number of busy-wait spins that an idle actor thread will perform before transitioning to a different idle state. | null |
CAMUNDA_SYSTEM_ACTOR_IDLE_MAXYIELDS | The maximum number of yield operations that an idle actor thread will perform before transitioning to the next idle state. | null |
CAMUNDA_SYSTEM_ACTOR_IDLE_MAXPARKPERIOD | The maximum duration that an idle actor thread will remain in the parked state. | null |
CAMUNDA_SYSTEM_UPGRADE
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SYSTEM_UPGRADE_ENABLEVERSIONCHECK | Toggles the version check restriction, used for migration. This is useful for testing migration logic on snapshot or alpha versions. The default value | true |