Configuration

All distributions of Camunda Optimize come with a predefined set of configuration options that can be overwritten by the user, based on current environment requirements. To do that, have a look into the folder named environment. There is one file called environment-config.json with values that override the defaults optimize properties.

Configuration file contains JSON object each field of which is containing configuration values of one specific logical part of Camunda Optimize system. You can see a sample configuration file with all possible configuration fields and their default values here.

In the following section you will find description and default values of separate fields inside of main JSON object with their respective JSONPath.

Authentication And Security

These values control internal mechanisms of Optimize related to authentication of users against the system and lifetime of web session tokens.

JSON Path Default Value Description
$.auth.defaultAuthentication.password admin Default password that is automatically added the first time optimize is started.
$.auth.defaultAuthentication.user admin Default user name that is automatically added the first time optimize is started.
$.auth.defaultAuthentication.creationEnabled true Enables the creation of the default Optimize user. If you're using Optimize in production, you should disable this property, so you just use the users from the engine.
$.auth.token.lifeMin 15 Optimize uses token-based authentication to keep track of which users are logged in. Define when a token is supposed to expire.

Container

Settings related to embedded Jetty container, which serves Optimize application.

JSON Path Default Value Description
$.container.host localhost A host name or IP address, to identify a specific network interface on which to listen.
$.container.ports.http 8090 A port number that will be used by the embedded jetty server to process HTTP connections.
$.container.ports.https 8091 A port number that will be used by the embedded jetty server to process secure HTTPS connections.
$.container.keystore.location keystore.jks HTTPS requires an SSL Certificate. When you generate an SSL Certificate, you are creating a keystore file and a keystore password for use when the browser interface connects. Location of keystore file.
$.container.keystore.password optimize Password of keystore file.

Connection to Camunda BPM platform

Configuration for engines used to import data. Please note that you have to have at least one engine configured at all times. You can configure multiple engines to import data from. Each engine configuration should have unique alias associated with it and represented by ${engineAlias}.

JSON Path Default Value Description
$.engines.${engineAlias}.name default The name of the engine that will be used to import data.
$.engines.${engineAlias}.rest http://localhost:8080/engine-rest A base URL that will be used for connections to the Camunda Engine REST API.
$.engines.${engineAlias}.authentication.accessGroup With the specified group id, only engine users that are part of the group can access optimize.
$.engines.${engineAlias}.authentication.enabled false Toggles basic authentication on or off. When enabling basic authentication, please be aware that you also need to adjust the values of the user and password
$.engines.${engineAlias}.authentication.password When basic authentication is enabled, this password is used to authenticate against the engine.
$.engines.${engineAlias}.authentication.user When basic authentication is enabled, this user is used to authenticate against the engine.
$.engines.${engineAlias}.enabled true Check if engine should be considered connected. Disable only for testing!

Engine Common Settings

Settings used by Optimize, which are common among all configured engines, such as REST API endpoint locations, timeouts, etc.

JSON Path Default Value Description
$.engine-commons.connection.timeout 10000 Maximum time in milliseconds without connection to the engine, Optimize should wait until a time out is triggered.
$.engine-commons.groups.resource /identity/groups The engine endpoint to verify group memberships of users.
$.engine-commons.hai.count /history/activity-instance/count The engine endpoint to the historic activity instance count.
$.engine-commons.hai.resource /history/activity-instance The engine endpoint to the historic activity instances.
$.engine-commons.history.procinst.count /history/process-instance/count The engine endpoint to the historic process instance count.
$.engine-commons.history.procinst.resource /history/process-instance The engine endpoint to the historic process instances.
$.engine-commons.history.variable.count /history/variable-instance/count The engine endpoint to the historic variable instance count.
$.engine-commons.history.variable.resource /history/variable-instance The engine endpoint to the historic variable instances.
$.import.data.activity-instance.pageSize.max 10000 Overwrites the maximum page size for historic activity instance fetching.
$.import.data.activity-instance.pageSize.min 1000 Overwrites the minimum page size for historic activity instance fetching.
$.import.executorThreadCount 2 Number of threads being used to process the import jobs in the import job queue
$.import.jobQueueMaxSize 100 Adjust the queue size of the import jobs created. A too large value might cause memory problems.
$.import.pageMaxSize 1000 The data is fetched from the engine in pages. Define a default minimum and maximum size or, to be precise, a range for the number of entities that should be fetched at once for each import type.
$.import.data.process-definition.pageSize.max 1000 Overwrites the maximum page size for process definitions fetching.
$.import.data.process-definition.pageSize.min 10 Overwrites the minimum page size for process definitions fetching.
$.import.process-definition-ids-to-import Restrict the import only for the given process definition ids. If empty, all the data is imported.
$.import.data.process-definition-xml.pageSize.max 4 Overwrites the maximum page size for process definition xml model fetching. Should be a low value, as large models will lead to memory or timeout problems.
$.import.data.process-definition-xml.pageSize.min 1 Overwrites the minimum page size for process definition xml model fetching. Should be a low value, as large models will lead to memory or timeout problems.
$.import.data.process-instance.pageSize.max 1000 Overwrites the maximum page size for historic process instance fetching.
$.import.data.variable.pageSize.max 1000 Overwrites the maximum page size for historic process instance fetching.
$.import.writer.numberOfRetries 5 Number of retries when there is a version conflict in Elasticsearch during the import.
$.engine-commons.procdef.count /process-definition/count The engine endpoint to the process definition count.
$.engine-commons.procdef.resource /process-definition The engine endpoint to the process definition.
$.engine-commons.procdef.xml /xml The engine endpoint to the process definition xml.
$.engine-commons.read.timeout 15000 Maximum time a request to the engine should last, before a timeout triggers.
$.engine-commons.user.validation.resource /identity/verify The engine endpoint for the user validation.

Elasticsearch

Settings related to Elasticsearch such as index and type names, connection properties and shard settings.

JSON Path Default Value Description
$.es.analyzer.name case_sensitive Defines the name of the analyzer.
$.es.analyzer.tokenfilter standard Tokenfilter applied to every token.
$.es.analyzer.tokenizer whitespace Tokenizer used to process tokens within a query.
$.es.connection.timeout 10000 Maximum time without connection to Elasticsearch, Optimize should wait until a time out triggers.
$.import.data.activity-instance.elasticsearchType event The name of the event type.
$.es.heatmap.duration.targetValueType duration-target-value The name of the duration target value type.
$.es.host localhost A hostname on which the Elasticsearch TCP listener is available.
$.es.port 9300 A port number used by Elasticsearch to accept TCP connections.
$.import.handler.backoff.interval 1000 Interval which is used for the backoff time calculation.
$.import.handler.backoff.value 6000 If all jobs are backing off at the moment, this interval is used to trigger general backoff
$.import.handler.backoff.max 5 Once all pages are consumed, the import scheduler component will start scheduling fetching tasks in increasing periods of time, controlled by "backoff" counter.
$.import.handler.pages.resetInterval.unit Minutes Chronological unit used to calculate index reset due date. Possible values are: Seconds, Minutes, Hours, HalfDays, Days, Weeks, Months in case not supported value is provided 'Minutes' will be used for interval calculation.
$.import.handler.pages.resetInterval.value 30 Interval the import is started all over again, meaning only missing entities are fetched during the import restart. The data already imported is kept.
$.import.indexType import-index The name of the import index type.
$.es.index optimize An index name used to create all Camunda Optimize types, shards, etc.
$.es.licenseType license A type used to store license information
$.import.data.process-definition.indexType process-definition-import-index The name of the import index type when a list of process definitions to import is defined.
$.import.data.process-definition.elasticsearchType process-definition The name of the process definition type.
$.import.data.process-definition-xml.elasticsearchType process-definition-xml The name of the process definition xml type.
$.import.data.process-instance.idTrackingType process-instance-id-tracking The name of the process instance (pi) tracking type that is used to find pi’s that were already imported.
$.import.data.process-instance.elasticsearchType process-instance The name of the process instance type.
$.es.sampler.interval 5000 Connection sampler interval set to the client
$.es.scrollTimeout 60000 Maximum time a request to elasticsearch should last, before a timeout triggers.
$.es.settings.index.number_of_replicas 0 How often should the data replicated in case of node failure. Note, the more replicas you define, the slower Elasticsearch becomes.
$.es.settings.index.number_of_shards 1 How many shards should be used in the cluster.
$.es.settings.index.refresh_interval 2s How long Elasticsearch waits until the documents are available for search. A positive value defines the duration in seconds. A value of -1 means that a refresh needs to be done manually.
$.es.users.type users The name of the user type.
$.import.data.variable.elasticsearchType variable The name of the variable type.

Other

Settings of plugin subsystem serialization format, variable import.

JSON Path Default Value Description
$.plugin.variableImport.basePackages Look in the given base package list for variable import adaption plugins. If empty, the import is not influenced.
$.serialization.dateFormat yyyy-MM-dd'T'HH:mm:ss Define a custom date format that should be used (should be the same as in the engine)
$.variable.maxValueListSize 15 States the maximum number of values that are shown for the user in the variable filter selection.

On this Page: