> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Properties in Atoti Server

Atoti defines a set of properties for configuration.

The mechanism for property handling in Atoti allows the usage of JVM arguments, system/environment properties, and external property files.

## Atoti Server Properties

Properties used to configure Atoti starters are defined in `PropertyNames` class of each starter.

Other properties are defined and documented in the `ActiveViamProperty` class.
They correspond to the properties used to configure Atoti as well as other ActiveViam products.

### System properties

Properties can be defined with JVM arguments and are defined using the `-D` argument when starting the JVM.

### Environment variables

Properties can be defined with environment variables are defined in the environment where the Atoti Server is running.

### Spring properties

Spring properties can be defined using property files or other means.
They can be used to configure Spring or to override the value of an `ActiveViamProperty`
by importing `com.activeviam.springboot:atoti-server-starter` in an Atoti project.

> It is recommended to use one format to define these properties.

## The PropertyRegistry

The `PropertyRegistry` class contains the information about resolved properties and their current values.

By default, Atoti Server provides the property handling mechanism that can use the following sources for Atoti properties:

* Environment variables
* System properties
* Spring environment properties.

### Accessing properties

The `PropertyRegistry` provides several methods to fetch properties:

* Type-specific accessors with default fallback value: `getString()`, `getInteger()`, `getLong()`, `getBoolean()`, `getDouble`
* Type-specific accessors with required value: `getRequiredString()`, `getRequiredInteger()`, `getRequiredLong()`, `getRequiredBoolean()`, `getRequiredDouble()`.
  When a requested property is not defined in the `PropertyRegistry` while calling these methods, an exception is thrown.

### Setting properties

> Once the Registry has been instantiated, you cannot dynamically reload registry properties from the Sources.
> To programmatically change Atoti Server Properties you must use the `PropertyRegistry` API.

The `PropertyRegistry` provides several methods to set properties:

* Type-specific accessors with default fallback value: `setString()`, `setInteger()`, `setLong()`, `setBoolean()`, `setDouble`
* `clear()` method to remove a property.

## Order of resolution

* Properties are resolved following the order defined in the [Spring Boot documentation](https://docs.spring.io/spring-boot/reference/features/external-config.html#features.external-config.command-line-args)

## List of Atoti properties

### Atoti Server Starter Properties

| Property                                                                        | Description                                                                                                                                                                                                        |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| activeviam.pivot.enabled                                                        | Enable/disable Atoti services autoconfiguration.                                                                                                                                                                   |
| activeviam.serveri18n.content-service.enabled                                   | Enable/disable i18n configuration from data in the Content Service.                                                                                                                                                |
| activeviam.serveri18n.local.enabled                                             | Enable/disable i18n configuration from project files.                                                                                                                                                              |
| activeviam.version.security.enabled                                             | Enable/disable version endpoint autoconfiguration.                                                                                                                                                                 |
| activeviam.ws.enabled                                                           | Enable/disable Websocket endpoint autoconfiguration.                                                                                                                                                               |
| atoti.jwt.enabled                                                               | Enable/disable JWT configuration.                                                                                                                                                                                  |
| atoti.server.content-service.enabled-type                                       | Type of Content Service to enable for the Atoti application, can be "in\_memory", "hibernate" or "remote".                                                                                                         |
| atoti.server.content-service.pivot-integration.cache.cache-entitlements-ttl     | Duration entitlements will be kept in the cache (in seconds, use -1 for infinite time).                                                                                                                            |
| atoti.server.content-service.pivot-integration.cache.enabled                    | Enable/disable the caching of entitlements in the Content Service.                                                                                                                                                 |
| atoti.server.content-service.pivot-integration.enabled                          | Enable/disable the initialization of an `ActivePivotContentService` for the Atoti application.                                                                                                                     |
| atoti.server.content-service.pivot-integration.roles.calculated-member          | Role which allows to create calculated members in the `IConfigurationService`.                                                                                                                                     |
| atoti.server.content-service.pivot-integration.roles.kpi                        | Role which allows to create KPIs in `IConfigurationService`.                                                                                                                                                       |
| atoti.server.content-service.pivot-integration.ui-integration.enabled           | Whether to initialize of the Content Server with the required structure to work with Atoti UI.                                                                                                                     |
| atoti.server.content-service.remote.max-connection-time                         | Maximum duration for establishing a connection to the remote Content Service.                                                                                                                                      |
| atoti.server.content-service.remote.uri                                         | URI of the remote running Content Server.                                                                                                                                                                          |
| atoti.server.content-service.remote.username                                    | Root username for special operations.                                                                                                                                                                              |
| atoti.server.endpoint.activepivot.security.filters.authentication-flow\.enabled | Enable/disable the default authentication flow with login/logout pages. This property is set to true by default.                                                                                                   |
| atoti.server.endpoint.activepivot.security.allowed-redirection.hosts            | Comma-separated list of allowed redirection hosts after login. Empty by default which allows redirection to any domain.                                                                                            |
| atoti.server.endpoint.content-service.security.enabled                          | Enable/disable Content Service endpoint security autoconfiguration.                                                                                                                                                |
| atoti.server.endpoint.database.security.enabled                                 | Enable/disable Atoti Database-related rest endpoints security autoconfiguration.                                                                                                                                   |
| atoti.server.endpoint.diagnostics.enabled                                       | Enable/disable diagnostics service autoconfiguration.                                                                                                                                                              |
| atoti.server.endpoint.diagnostics.security.enabled                              | Enable/disable diagnostics security autoconfiguration.                                                                                                                                                             |
| atoti.server.endpoint.jwt.security.enabled                                      | Enable/disable JWT endpoint security autoconfiguration.                                                                                                                                                            |
| atoti.server.endpoint.security.enabled                                          | Enable/disable Atoti ActivePivot-related rest endpoints security autoconfiguration.                                                                                                                                |
| atoti.server.endpoint.ws.engine.heart-beat-period                               | The number of milliseconds between heartbeats. Set to 0 so that no heartbeat will ever be sent.                                                                                                                    |
| atoti.server.endpoint.ws.engine.max-binary-message-buffer-size                  | The maximum length of incoming binary messages that the session can buffer. Set to 0 to use the default value of the web server.                                                                                   |
| atoti.server.endpoint.ws.engine.max-idle-timeout                                | The number of milliseconds before a conversation may be closed by the container if it is inactive, i.e. no messages are either sent or received in that time. Set to 0 to use the default value of the web server. |
| atoti.server.endpoint.ws.engine.max-text-message-buffer-size                    | The maximum length of incoming text messages that the session can buffer. Set to 0 to use the default value of the web server.                                                                                     |
| atoti.server.endpoint.xmla.enabled                                              | Enable/disable XMLA endpoint autoconfiguration.                                                                                                                                                                    |
| atoti.server.endpoint.xmla.security.enabled                                     | Enable/disable XMLA endpoint security autoconfiguration.                                                                                                                                                           |
| atoti.server.service.enabled                                                    | Enable/disable Atoti Rest Services autoconfiguration.                                                                                                                                                              |
| atoti.server.service.health-agent.enabled                                       | Enable/disable the service reporting the health of the Atoti application through logs and events.                                                                                                                  |

### Atoti AdminUI Starter Properties

| Property                              | Description                                                        |
| ------------------------------------- | ------------------------------------------------------------------ |
| atoti.server.security.adminui.enabled | Enable/disable autoconfiguration of the security for this starter. |

### Atoti UI Starter Properties

| Property                         | Description                                                                            |
| -------------------------------- | -------------------------------------------------------------------------------------- |
| atoti.server.security.ui.enabled | Enable/disable autoconfiguration of the security for this starter.                     |
| atoti.server.ui.enabled          | Property to enable/disable the autoconfiguration of the ui for this starter.           |
| atoti.server.ui.env-js-resource  | Property to provide a custom path for the env.js file used by the ui for this starter. |

### Atoti APM Starter Properties

| Property                                    | Description                                              |
| ------------------------------------------- | -------------------------------------------------------- |
| activeviam.apm.feed.loading.enabled         | Enable/disable Monitored Data Loading autoconfiguration. |
| activeviam.apm.node.starter.jmx.enabled     | Enable/disable JMX autoconfiguration.                    |
| activeviam.apm.node.starter.logging.enabled | Enable/disable logging autoconfiguration.                |

### Other Atoti Properties

| Property                                                 | Description                                                                                                                                     |
| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| activemonitor.activepivot.url                            | URL for the connection of a ActiveMonitor agent.                                                                                                |
| activemonitor.daemon.waitStableDistribution              | Whether the activemonitor daemon should wait for the distributed architecture to be stable.                                                     |
| activemonitor.periodicExecutors.poolSize                 | Size of the periodic monitor executor pool.                                                                                                     |
| activemonitor.poll.log.threshold                         | The number of polling failure the activemonitor daemon has to reach before logging.                                                             |
| activemonitor.poll.period                                | The poll period of the ActiveMonitor Daemon (in seconds).                                                                                       |
| activemonitor.poll.period.max                            | The maximum poll period of the ActiveMonitor Daemon (in seconds).                                                                               |
| activemonitor.ui.url                                     | Live URL for the connection of a ActiveMonitor agent.                                                                                           |
| activepivot.location.separator.hierarchy                 | The hierarchy separator sequence.                                                                                                               |
| activepivot.location.separator.level                     | The level separator sequence.                                                                                                                   |
| activepivot.location.wildcard                            | The wildcard sequence.                                                                                                                          |
| activeviam.activecollector.renew\.frequency              | Frequency at which fences are renewed (in ms).                                                                                                  |
| activeviam.activepivot.allowNoDimensions                 | Whether to allow the definition of pivots without dimensions.                                                                                   |
| activeviam.activepivot.ensureSerializableMeasures        | Forces the cube to check if all its measures are serializable.                                                                                  |
| activeviam.activepivot.expiredqueries.polling            | Polling period for expired queries (in seconds).                                                                                                |
| activeviam.branch.master                                 | Name of the branch on which the real data is.                                                                                                   |
| activeviam.chunk.compression.enabledFrequentValue        | Whether frequency compression for each type of chunks is enabled.                                                                               |
| activeviam.chunk.compression.frequentValueRatio          | Ratio to compress chunks into frequent-value chunks, avoiding storing the repeated values.                                                      |
| activeviam.chunkAllocatorKey                             | Key of the chunk allocator to use.                                                                                                              |
| activeviam.chunkGarbageCollectionFactor                  | Chunk garbage collection factor of the application.                                                                                             |
| activeviam.cloud.azure.maxRetriesOnError                 | The maximum number of times the azure cloud source will retry the download of the content of a particular Blob before giving up.                |
| activeviam.cloud.azure.retryDelay                        | The delay, in ms, between two download attempts of the content of a particular Azure Blob.                                                      |
| activeviam.collectible.query.type                        | Query type to collect.                                                                                                                          |
| activeviam.completer.log.suppressed                      | Whether suppressed exceptions should be logged.                                                                                                 |
| activeviam.compression.chunkset.disable                  | Whether to disable ChunkSet compression.                                                                                                        |
| activeviam.conflation.maxDelayTime                       | Maximum time (in ms) for which the oldest transaction of the master branch has been waiting in the queue before we stop accepting transactions. |
| activeviam.conflation.maxQueueSize                       | Maximum size of the transaction queue for the master branch before we stop accepting transactions.                                              |
| activeviam.conflation.sequential                         | Whether conflated events of different types must be processed sequentially by the conflation event engine.                                      |
| activeviam.contentServer.remote.import.timeout           | Read timeout for imports (in minutes).                                                                                                          |
| activeviam.contentServer.restrictedListing               | Whether to restrict the content service's entries a user can list on a readable directory.                                                      |
| activeviam.contentService.nameGenerator.defaultSize      | Default size of the names generated by the content service.                                                                                     |
| activeviam.contentService.nameGenerator.prefix           | Prefix to add to the names generated by the content service.                                                                                    |
| activeviam.contentService.nameGenerator.size             | Size of the names generated by the content service.                                                                                             |
| activeviam.contentService.webSocket.reconnectionDelay    | Time in seconds to wait to retry the connection to a web socket.                                                                                |
| activeviam.contentservice.root                           | Name of the root role.                                                                                                                          |
| activeviam.contextvaluemanager.session.lifetime          | Maximal lifetime of session context values (in seconds).                                                                                        |
| activeviam.continuousQueryMonitoring                     | Enable/disable continuous query monitoring.                                                                                                     |
| activeviam.copper.join.index.parallelism                 | Maximal parallelism of the thread pool used for performing a parallel build of the index used to perform Copper join operations.                |
| activeviam.dataexport.arrow\.batchSize                   | Number of records in Arrow batches.                                                                                                             |
| activeviam.dataexportservice.rootpath                    | Root path in which to save the exported query results.                                                                                          |
| activeviam.datastore.query.maxLookupsOnSecondary         | Maximal number of look-ups generated for a single condition on Secondary Index.                                                                 |
| activeviam.datastore.query.maxLookupsOnUnique            | Maximal number of look-ups generated for a single condition on Unique Index.                                                                    |
| activeviam.datastore.query.maxRangeOperands              | Maximal number of range operands with multiple values that are supported for a query using a unique or secondary index.                         |
| activeviam.datastore.schema.separator                    | Path separator to use.                                                                                                                          |
| activeviam.defaultChunkSize                              | Default chunk size of the application.                                                                                                          |
| activeviam.directquery.enableUnsupportedDatabaseVersion  | Whether to allow DirectQuery to try to use an unsupported database version.                                                                     |
| activeviam.distribution.gossip.router.enable             | Enable/disable the gossip router.                                                                                                               |
| activeviam.distribution.gossip.router.port               | Port of the gossip router.                                                                                                                      |
| activeviam.distribution.log.size.threshold               | Threshold (in bytes) above which the size of a `IBroadcastMessage` sent or received is logged at level INFO.                                    |
| activeviam.distribution.maxPendingDiscoveries            | Maximum number of pending initial discoveries that this instance can tolerate before refusing new ones.                                         |
| activeviam.distribution.netty.bindAddress                | Bind address for the Netty messenger.                                                                                                           |
| activeviam.distribution.netty.externalAddress            | Current machine address or external public IP address.                                                                                          |
| activeviam.distribution.netty.portRange                  | Range of ports for Netty messenger.                                                                                                             |
| activeviam.distribution.nettyMessageMaxSize              | Size limit of messages (in bytes) sent over the network.                                                                                        |
| activeviam.distribution.query.throwOnMissingResponse     | Whether distributed queries should throw if responses from remote instances are missing.                                                        |
| activeviam.distribution.remote.pool.size                 | Number of worker threads in the remote pool.                                                                                                    |
| activeviam.duringThreadNumber                            | Number of threads allocated by the application to trigger updates when using the function `PAST_PERIODS`.                                       |
| activeviam.exportservice.rootpath                        | Root path in which to save the exported query results.                                                                                          |
| activeviam.external.retrieval.max.size                   | Maximum size for which the building of the index used to perform Copper join operations is single threaded.                                     |
| activeviam.handler.stored.maxSize                        | Maximum impact size above which a full (range) impact is returned for a given event.                                                            |
| activeviam.health.log                                    | Health events to enable.                                                                                                                        |
| activeviam.i18nconfig.file.encoding                      | The encoding with which to decode internationalization files that are stored locally.                                                           |
| activeviam.jit.pointIndex.size                           | Maximum size allowed for the point index in the Just In Time aggregate collector.                                                               |
| activeviam.jit.pointIndex.type                           | Type of point index to use for the Just In Time aggregate collector.                                                                            |
| activeviam.json.strongPrimitiveParsing                   | Enables string JSON parsing from primitive types, where `null` are not automatically converted into the type default values.                    |
| activeviam.jwt.key.private                               | Private key used to sign tokens, encoded in Base64. Only RSA keys using the PKCS 8 standard are supported.                                      |
| activeviam.jwt.key.public                                | Public key used to verify the integrity of tokens, encoded in Base64. Only RSA keys using the PKCS 8 standard are supported.                    |
| activeviam.logicalAddress                                | Logical address of the `IActivePivot` query or data cube in the cluster.                                                                        |
| activeviam.maxDuringThreadNumber                         | Number of threads allocated by the application to trigger updates when using the function `PAST_PERIODS`.                                       |
| activeviam.mdx.epoch.dimension.legacyName                | Whether to rename the Epoch dimension/hierarchy to `Branch` (instead of `Epoch`).                                                               |
| activeviam.mdx.formula.callStackDepthLimit               | Maximum MDX call depth.                                                                                                                         |
| activeviam.mdx.largeMdxSetOptimization                   | Whether the MDX engine should optimize queries with large MDX sets.                                                                             |
| activeviam.mdx.negativecellset.limit                     | Maximum number of removed locations that can be handled by real-time MDX queries.                                                               |
| activeviam.mdx.queryBouncer.limit                        | Maximum number of running mdx queries.                                                                                                          |
| activeviam.mdx.queryBouncer.waitLimit                    | Waiting time (in seconds) while trying to execute a query when the maximum number of allowed running queries has been reached.                  |
| activeviam.memory.legacyAllocation                       | Whether to activate legacy allocation considering huge page alignment.                                                                          |
| activeviam.minimalChunkSize                              | Minimal chunk size of the application.                                                                                                          |
| activeviam.mmap.sampling.depth                           | Maximum depth of the stacktrace when sampling is enabled.                                                                                       |
| activeviam.mmap.sampling.percent                         | Percentage of allocations to sample.                                                                                                            |
| activeviam.mmap.sampling.start                           | Whether to start sampling as soon as the allocator is built.                                                                                    |
| activeviam.mmap.threshold                                | Threshold under which `sun.misc.Unsafe` is used for memory allocation.                                                                          |
| activeviam.mmap.tracking                                 | Enable/disable mmap native memory tracking.                                                                                                     |
| activeviam.msg.csv.reporting.maxAnomalies                | The maximum number of anomalies that are reported during the parsing of a CSV source.                                                           |
| activeviam.msg.reporting.enabled                         | Enable/disable detailed report generation for data sources.                                                                                     |
| activeviam.nativeMemoryCacheRatio                        | Cache ratio.                                                                                                                                    |
| activeviam.pool.nodes                                    | Nodes on which the user is allowed to run.                                                                                                      |
| activeviam.pool.policy                                   | NUMA thread placement policy.                                                                                                                   |
| activeviam.pool.procs                                    | Hint about the number of available processors.                                                                                                  |
| activeviam.pool.scheduler.size                           | Number of worker threads in the scheduler service.                                                                                              |
| activeviam.pool.size                                     | Number of worker threads in the Atoti pools.                                                                                                    |
| activeviam.postprocessor.partitionOnRangeLevelsByDefault | Default behavior for post-processors supporting automatic expansion on range level partitioning.                                                |
| activeviam.property.separator                            | Expression separator.                                                                                                                           |
| activeviam.protocolPath                                  | The Distribution protocol file's path.                                                                                                          |
| activeviam.queries.continuous.primitive.fullFork         | Whether to toggle the behavior of the primitive retrievals in continuous queries.                                                               |
| activeviam.query.execution.checks                        | Whether `ActivePivotAggregatesRetriever` should perform extensive sanity checks.                                                                |
| activeviam.repository.cache.isolated\_transactions       | Whether parameter store transactions should be isolated or trigger transactions on the ActivePivots.                                            |
| activeviam.repository.daemon.waitStableDistribution      | Whether the repository daemon should wait for the distributed architecture to be stable.                                                        |
| activeviam.repository.poll.log.threshold                 | The number of polling failure the repository daemon has to reach before logging.                                                                |
| activeviam.repository.poll.period                        | Poll period of the Repository Daemon (in seconds).                                                                                              |
| activeviam.repository.poll.period.max                    | Maximum poll period of the Repository Daemon (in seconds).                                                                                      |
| activeviam.selection.listener.catchUpMaxTime             | Property that specifies with this the catchUpMaxTime (in seconds).                                                                              |
| activeviam.slab.memory.allocation.strategy               | Reserved memory to allocate for a given size of chunk.                                                                                          |
| activeviam.stream.configuration.gc.delay                 | Time threshold (in ms) indicating when the stream configuration of a closed stream can be safely removed from the system and can be collected.  |
| activeviam.streaming.GET\_AGGREGATES.attemptLimit        | Maximum number of attempts to register the continuous queries.                                                                                  |
| activeviam.streaming.MDX.attemptLimit                    | Maximum number of attempts to register the continuous queries.                                                                                  |
| activeviam.streaming.initialPublicationMode              | Default stream Initial publication mode.                                                                                                        |
| activeviam.testPhase                                     | PropWhether the current environment is a test environment.                                                                                      |
| activeviam.vectorDelimiter                               | Vector delimiter when parsing vectors.                                                                                                          |
| activeviam.vectors.allocator.pool.size                   | Number of vector allocators that are kept alive after thread death.                                                                             |
| activeviam.vectors.defaultBlockSize                      | Default block size of the application.                                                                                                          |
| activeviam.vectors.garbageCollectionFactor               | Garbage collection factor for vectors.                                                                                                          |
| activeviam.vectors.swap.directory.numberFiles            | Maximum number of swap files that will be created in one directory.                                                                             |
| activeviam.webclient.codec.maxInMemorySize               | Max size of webclient buffers in remote classes.                                                                                                |
| activeviam.xmlaDiscoveryApproxCardinality                | Behavior during an XMLA discovery when computing hierarchy cardinality and level cardinality.                                                   |
| atoti.license                                            | Atoti license path.                                                                                                                             |
| logLoggerName                                            | Whether to insert the name of the logger in logs.                                                                                               |
| logThread                                                | Whether to insert the current thread in logs.                                                                                                   |
| logUser                                                  | Whether to insert the current user in logs.                                                                                                     |
| stopwatch.disabled                                       | Whether to disable timings measurement.                                                                                                         |
