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 |
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.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[].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, | my-listener-type |
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.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 To guarantee the cluster can survive network partitions, all nodes should be specified as initial contact points. | [] |
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). 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.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 the leaders based on a pre-defined priority. As a result, it tries to distribute the leaders uniformly across the brokers. Note that it is only a best-effort strategy. It is not guaranteed to be 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 here 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 which are 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
| 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_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_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, | my-listener-type |
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_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_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 To guarantee the cluster can survive network partitions, all nodes should be specified as initial contact points. | [] |
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). 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_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 the leaders based on a pre-defined priority. As a result, it tries to distribute the leaders uniformly across the brokers. Note that it is only a best-effort strategy. It is not guaranteed to be 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 here 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 which are 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 |
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. 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 comma-separated list of records ids to skip. Whitespace is ignored. | [] |
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. | [OPERATOR, USER_TASK, ADMIN] |
camunda.data.audit-log.user.excludes | List of users to exclude from audit logging. | |
camunda.data.audit-log.client.categories | List of audit log categories to include for client-initiated actions (API clients). | [OPERATOR, USER_TASK, ADMIN] |
camunda.data.audit-log.client.excludes | List of clients to exclude from audit logging. |
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 comma-separated list of records ids to skip. Whitespace is ignored. | [] |
CAMUNDA_DATA_AUDITLOG
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_AUDITLOG_ENABLED | Enable or disable the audit log. | true |
CAMUNDA_DATA_AUDITLOG_USER_CATEGORIES | List of audit log categories to include for user-initiated actions. | [OPERATOR, USER_TASK, ADMIN] |
CAMUNDA_DATA_AUDITLOG_USER_EXCLUDES | List of users to exclude from audit logging. | |
CAMUNDA_DATA_AUDITLOG_CLIENT_CATEGORIES | List of audit log categories to include for client-initiated actions (API clients). | [OPERATOR, USER_TASK, ADMIN] |
CAMUNDA_DATA_AUDITLOG_CLIENT_EXCLUDES | List of clients to exclude from audit logging. |
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-limit | Configures the memory limit, which can be used by RocksDB. Be aware that this setting only applies to RocksDB, which is used by the Zeebe's state management and that an RocksDB instance is used per partition. | 512MB |
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.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_MEMORYLIMIT | Configures the memory limit, which can be used by RocksDB. Be aware that this setting only applies to RocksDB, which is used by the Zeebe's state management and that an RocksDB instance is used per partition. | 512MB |
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_PRIMARY_STORAGE_BACKUP
| CAMUNDA_DATA_PRIMARY_STORAGE_BACKUP_STORE |
Set the backup store type.
Supported values are NONE, S3, GCS, AZURE, FILESYSTEM.
NONE: No backup store is configured and no backup will be taken.S3: Use any Amazon S3 compatible storage.GCS: Use Google Cloud Storage.AZURE: Use Azure Storage.FILESYSTEM: Use filesystem storage
Note: This configuration applies to the backup of primary storage.
|NONE |CAMUNDA_DATA_PRIMARY_STORAGE_BACKUP_S3
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_PRIMARY_STORAGE_BACKUP_S3_BUCKETNAME | 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_ACCESSKEY | Configure access credentials. If either | - |
CAMUNDA_DATA_PRIMARY_STORAGE_BACKUP_S3_SECRETKEY | Configure access credentials. If either | - |
CAMUNDA_DATA_PRIMARY_STORAGE_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_PRIMARY_STORAGE_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_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_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_PRIMARY_STORAGE_BACKUP_S3_CONNECTIONACQUISITIONTIMEOUT | Timeout for acquiring an already-established connection from a connection pool to a remote service. | 45s |
CAMUNDA_DATA_PRIMARY_STORAGE_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_PRIMARY_STORAGE_BACKUP_S3_SUPPORTLEGACYMD5 | Enable s3 md5 plugin for legacy support. | Null |
CAMUNDA_DATA_PRIMARY_STORAGE_BACKUP_GCS
| Property | Description | Default value |
|---|---|---|
CAMUNDA_DATA_PRIMARY_STORAGE_BACKUP_GCS_BUCKETNAME | Name of the bucket where the backup will be stored.
| 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_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_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_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_PRIMARY_STORAGE_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_PRIMARY_STORAGE_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_PRIMARY_STORAGE_BACKUP_AZURE_BASEPATH | Defines the container name where backup contents are saved. | Null |
CAMUNDA_DATA_PRIMARY_STORAGE_BACKUP_AZURE_CREATECONTAINER | Defines the container name where backup contents are saved. | true |
CAMUNDA_DATA_PRIMARY_STORAGE_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_PRIMARY_STORAGE_BACKUP_AZURE_SASTOKEN_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_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: |
|
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.id | To do | - |
camunda.data.secondary-storage.elasticsearch.interceptor-plugins.class-name | To do | - |
camunda.data.secondary-storage.elasticsearch.interceptor-plugins.jar-path | To do | - |
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. | 0 |
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 | To do | 'https' |
camunda.data.secondary-storage.elasticsearch.incident-notifier.webhook | To do | '' |
camunda.data.secondary-storage.elasticsearch.incident-notifier.m2m-client-id | To do | '' |
camunda.data.secondary-storage.elasticsearch.incident-notifier.m2m-client-secret | To do | '' |
camunda.data.secondary-storage.elasticsearch.incident-notifier.m2m-audience | To do | '' |
camunda.data.secondary-storage.elasticsearch.batch-operations.export-items-on-creation | To do | 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 per archiving batch. | 100 |
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.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.id | To do | - |
camunda.data.secondary-storage.opensearch.interceptor-plugins.class-name | To do | - |
camunda.data.secondary-storage.opensearch.interceptor-plugins.jar-path | To do | - |
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. | 0 |
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 | To do | 'https' |
camunda.data.secondary-storage.opensearch.incident-notifier.webhook | To do | '' |
camunda.data.secondary-storage.opensearch.incident-notifier.m2m-client-id | To do | '' |
camunda.data.secondary-storage.opensearch.incident-notifier.m2m-client-secret | To do | '' |
camunda.data.secondary-storage.opensearch.incident-notifier.m2m-audience | To do | '' |
camunda.data.secondary-storage.opensearch.batch-operations.export-items-on-creation | To do | 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 per archiving batch. | 100 |
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 | To do | true |
camunda.data.secondary-storage.rdbms.database-vendor-id | To do | '' |
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 | To do | 10 |
camunda.data.secondary-storage.rdbms.connection-pool.minimum-idle | To do | 10 |
camunda.data.secondary-storage.rdbms.connection-pool.idle-timeout | To do | 600000 |
camunda.data.secondary-storage.rdbms.connection-pool.max-lifetime | To do | 1800000 |
camunda.data.secondary-storage.rdbms.connection-pool.connection-timeout | To do | 30000 |
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_SECONDARYSTORAGE_ELASTICSEARCH_INTERCEPTORPLUGINS_ID | To do | - |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_INTERCEPTORPLUGINS_CLASSNAME | To do | - |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_INTERCEPTORPLUGINS_JARPATH | To do | - |
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 | To do | 'https' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_INCIDENTNOTIFIER_WEBHOOK | To do | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_INCIDENTNOTIFIER_M2MCLIENTID | To do | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_INCIDENTNOTIFIER_M2MCLIENTSECRET | To do | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_INCIDENTNOTIFIER_M2MAUDIENCE | To do | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_ELASTICSEARCH_BATCHOPERATIONS_EXPORTITEMSONCREATION | To do | 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 per archiving batch. | 100 |
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_SECONDARYSTORAGE_OPENSEARCH_INTERCEPTORPLUGINS_ID | To do | - |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_INTERCEPTORPLUGINS_CLASSNAME | To do | - |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_INTERCEPTORPLUGINS_JARPATH | To do | - |
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 | To do | 'https' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_INCIDENTNOTIFIER_WEBHOOK | To do | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_INCIDENTNOTIFIER_M2MCLIENTID | To do | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_INCIDENTNOTIFIER_M2MCLIENTSECRET | To do | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_INCIDENTNOTIFIER_M2MAUDIENCE | To do | '' |
CAMUNDA_DATA_SECONDARYSTORAGE_OPENSEARCH_BATCHOPERATIONS_EXPORTITEMSONCREATION | To do | 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 per archiving batch. | 100 |
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 | To do | true |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_DATABASEVENDORID | To do | '' |
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 | To do | 10 |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_CONNECTIONPOOL_MINIMUMIDLE | To do | 10 |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_CONNECTIONPOOL_IDLETIMEOUT | To do | 600000 |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_CONNECTIONPOOL_MAXLIFETIME | To do | 1800000 |
CAMUNDA_DATA_SECONDARYSTORAGE_RDBMS_CONNECTIONPOOL_CONNECTIONTIMEOUT | To do | 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
- Application properties
- Helm values
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.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.authorizations.enabled | Enables authorization checks for Orchestration Cluster resources. | true |
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 |
Disabling CSRF protection is not recommended for production environments as it leaves your application vulnerable to cross-site request forgery attacks.
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.policy-directives | Custom CSP directives. If not set, default values applied. If set, overrides default CSP policies. | 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 |
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 underying 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 clients's ID. This setting is evaluated on any token-based access, regardless of the underying 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.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. Only takes effect if camunda.security.authentication.oidc.issuer-uri is not set. | |
camunda.security.authentication.oidc.authorization-uri | Sets the OIDC provider's authorization URI explicitly. Only takes effect if camunda.security.authentication.oidc.issuer-uri is not set. | |
camunda.security.authentication.oidc.token-uri | Sets the OIDC provider's token URI explicitly. Only takes effect if camunda.security.authentication.oidc.issuer-uri is not set. | |
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.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.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.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.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.persistent.sessions
| Property | Description | Default value |
|---|---|---|
camunda.persistent.sessions.enabled | Stores session data in secondary storage so users stay logged in across cluster nodes. | false |
spring.profiles
| Property | Description | Default value |
|---|---|---|
spring.profiles.active | Note: This property will be deprecated as additional authentication methods become available. | consolidated-auth |
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_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_AUTHORIZATIONS_ENABLED | Enables authorization checks for Orchestration Cluster resources. | true |
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_CLIENT_AUTHENTICATION_METHOD 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 underying 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 clients's id. This setting is evaluated on any token-based access, regardless of the underying 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_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. Only takes effect if CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ISSUERURI is not set. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_AUTHORIZATIONURI | Sets the OIDC provider's authorization URI explicitly. Only takes effect if CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ISSUERURI is not set. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_TOKENURI | Sets the OIDC provider's token URI explicitly. Only takes effect if CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ISSUERURI is not set. | |
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_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_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_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_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_POLICY_DIRECTIVES | Custom CSP directives. If not set, default values applied. If set, overrides default CSP policies. | 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 |
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_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_PERSISTENT_SESSIONS
| Property | Description | Default value |
|---|---|---|
CAMUNDA_PERSISTENT_SESSIONS_ENABLED | Stores session data in secondary storage so users stay logged in across cluster nodes. | false |
SPRING_PROFILES
| Property | Description | Default value |
|---|---|---|
SPRING_PROFILES_ACTIVE | Note: This property will be deprecated as additional authentication methods become available. | consolidated-auth |
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 clients's 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.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 |
Security
- Application properties
- Environment variables
- Helm values
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.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.authorizations.enabled | If authorizations are enabled. | true |
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.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.policy-directives | Custom CSP directives. If not set, default values applied. If set, overrides default CSP policies. | 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 |
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.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. Only takes effect if camunda.security.authentication.oidc.issuer-uri is not set. | |
camunda.security.authentication.oidc.authorization-uri | Sets the OIDC provider's authorization URI explicitly. Only takes effect if camunda.security.authentication.oidc.issuer-uri is not set. | |
camunda.security.authentication.oidc.token-uri | Sets the OIDC provider's token URI explicitly. Only takes effect if camunda.security.authentication.oidc.issuer-uri is not set. | |
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.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.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.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} |
camunda.persistent.sessions
| Property | Description | Default value |
|---|---|---|
camunda.persistent.sessions.enabled | Stores session data in secondary storage so users stay logged in across cluster nodes. | false |
spring.profiles
| Property | Description | Default value |
|---|---|---|
spring.profiles.active | Note: This property will be deprecated as additional authentication methods become available. | consolidated-auth |
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_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_AUTHORIZATIONS_ENABLED | If authorizations are enabled. | true |
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_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. Only takes effect if CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ISSUERURI is not set. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_AUTHORIZATIONURI | Sets the OIDC provider's authorization URI explicitly. Only takes effect if CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ISSUERURI is not set. | |
CAMUNDA_SECURITY_AUTHENTICATION_OIDC_TOKENURI | Sets the OIDC provider's token URI explicitly. Only takes effect if CAMUNDA_SECURITY_AUTHENTICATION_OIDC_ISSUERURI is not set. | |
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_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_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_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_POLICYDIRECTIVES | Custom CSP directives. If not set, default values applied. If set, overrides default CSP policies. | 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_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_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} |
CAMUNDA_PERSISTENT_SESSIONS
| Property | Description | Default value |
|---|---|---|
CAMUNDA_PERSISTENT_SESSIONS_ENABLED | Stores session data in secondary storage so users stay logged in across cluster nodes. | false |
SPRING_PROFILES
| Property | Description | Default value |
|---|---|---|
SPRING_PROFILES_ACTIVE | Note: This property will be deprecated as additional authentication methods become available. | consolidated-auth |
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 | If authorizations are enabled. | 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.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 |
Disabling CSRF protection is not recommended for production environments as it leaves your application vulnerable to cross-site request forgery attacks.
System
- Application properties
- Environment variables
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 | true | |
camunda.system.restore.ignore-files-in-target | lost + found |
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 | Toggles the version check restriction, used for migration. This is useful for testing migration logic on snapshot or alpha versions. The default value | 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 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_VALIDATECONFIG | true | |
CAMUNDA_SYSTEM_RESTORE_IGNOREFILESINTARGET | lost + found |
CAMUNDA_SYSTEM_ACTOR_IDLE
| Property | Description | Default value |
|---|---|---|
CAMUNDA_SYSTEM_ACTOR_IDLE_MAXSPINS | The maximum number of busy-wwait 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 |