Properties
Some Aspire components must be configured before the settings.json is read like the NoSQL provider. This configuration is done using environment variables or JVM parameters.
Some components configured in the settings file like the Worker and Manager node allows configuration with environment variables or JVM parameters as an alternative
Format
All properties can be passed either as a environment variable or as a JVM parameter. The "." and "_" characters can be replaced with each other.
SET aspire.noSql.elastic.server=http://localhost:9200 //Setting a property as a environment variable
java -Daspire.noSql.elastic.server=http://localhost:9200 //Passing a property like JVM parameterIn the case of environment variables, property name should always use "_" instead of "."
Memory settings
In Linux based systems, the memory usage can be changed with the following environment variables
Parameter | Required | Default | Description |
|---|---|---|---|
| no | 2g | Maximum Heap the JVM will request and use from the host system |
| no | 256m | Maximum metaspace the JVM will request and use from the host system. |
In windows-based systems, if using the aspire.bat file, the memory usage should be changed in the aspire.bat itself. Otherwise, if it is running as a Windows Service:
Browse to
HKEY_LOCAL_MACHINE / SOFTWARE / WOW6432Node / Apache Software / Procrun 2.0/ AspireService / Parameters / Java
Modify JvmMs and JvmMx to what you need (in bytes), and then restart the service.
Elasticsearch NoSQL Provider
Below are the list of properties to configure the Elasticsearch NoSQL Provider
Parameter | Required | Default | New & Available from | Description |
|---|---|---|---|---|
aspire.noSql.elastic.server | yes |
| The Elasticsearch server URL to use. It can be multiple URLs separated by "," | |
aspire.noSql.elastic.authentication.basic | no | false |
| Enables Elasticsearch basic authentication |
aspire.noSql.elastic.user | no | null |
| The Elasticsearch user to use for basic authentication |
aspire.noSql.elastic.password | no | null |
| The Elasticsearch password to use for basic authentication |
aspire.noSql.elastic.authentication.apiKey | no | false |
| Enables Elastic Cloud API keys authentication |
aspire.noSql.elastic.apiKey | no | null |
| The API key to use for Elastic Cloud API keys authentication |
aspire.noSql.elastic.authentication.aws | no | false |
| Enables Elasticsearch AWS authentication |
aspire.noSql.elastic.authentication.useCredentialsProviderChain | no | false |
| Option to use the AWS credentials provider chain to get the credentials |
aspire.noSql.elastic.aws.assumeRole | no | false | 5.0.3 | If a role must be assumed to access Elasticsearch. Must be true/false |
aspire.noSql.elastic.aws.roleArn | no | null | 5.0.3 | The Role ARN to be assumed. |
aspire.noSql.elastic.aws.access.key | no | null |
| AWS access key for authentication |
aspire.noSql.elastic.aws.secret.key | no | null |
| AWS secret key for authentication |
aspire.noSql.elastic.aws.region | no | null |
| The AWS region |
aspire.noSql.elastic.keepSearchContextAlive | no | 5m |
| The amount of time to keep Elasticsearch scrolls requests search context alive using "m" as a unit |
aspire.noSql.elastic.maxRequestSize | no | 10485760B |
| The maximum size for a bulk request. The value can be specified in B, K, M and G units |
aspire.noSql.elastic.maxConnections | no | 100 |
| The maximum number of connections to keep open. |
aspire.noSql.elastic.maxConnectionsPerRoute | no | 10 |
| The maximum number of connections per server |
aspire.noSql.elastic.readTimeout | no | 30000 |
| The socket timeout. |
aspire.noSql.elastic.connectionTimeout | no | 15000 |
| The connection timeout. |
aspire.noSql.elastic.maxRetries | no | 3 |
| The number of times to retry each request |
aspire.noSql.elastic.retriesWaitTime | no | 5000 |
| The time to wait in ms between retries |
aspire.noSql.elastic.useThrottling | no | false |
| Enables requests throttling to Elasticsearch |
aspire.noSql.elastic.throttlingRate | no | 5000 |
| The throttling rate in ms |
aspire.noSql.elastic.throttlingConnectionRate | no | 500 |
| The maximum number of requests allowed in the period specified by the throttlingRate |
aspire.noSql.elastic.waitTime429 | no | 3000 |
| The time to wait in ms before retrying a 429 error |
aspire.noSql.elastic.bulk | no | true |
| Enables using bulk for requests |
aspire.noSql.elastic.bulkSize | no | 500 |
| The maximum number of documents to include in a bulk request |
aspire.noSql.elastic.bulkInactivityTimeout | no | 5 |
| The inactivity in s before flushing a bulk request |
aspire.noSql.elastic.bulkRegularTimeout | no | 30 |
| The maximum amount of time in s for a bulk request to be kept in memory before flushing |
aspire.noSql.elastic.debugFile | no | null |
| The path to the debug file, request to ES are logged in this file |
aspire.noSql.elastic.mappingFile | no | null |
| The file path (including file name) that includes the mapping for the indexes used by Aspire. By default, the mapping included in the provider is used |
aspire.noSql.elastic.index.prefix | no | aspire |
| The prefix to use for the indexes created by the provider |
aspire.noSql.elastic.debug | no | false |
| Enables debug logging information |
aspire.noSql.elastic.usePooling | no | true |
| Enables HTTP connection pooling |
aspire.nosql.elastic.timeSeriesType | no | index | 5.0.3, 5.3 (Opensearch) | Enables rollover possibility for audit, error, log time series index. Value "index" - default without rollover, Value "dataStream" - rollover based on data stream. Value "dataStreamOpensearch" - rollover based on Opensearch data stream. |
aspire.nosql.elastic.ilmPolicyFile | no | default provider policy file | 5.0.3 | The file path (including file name) that includes the ilm policy file for the indexes used by Aspire. Used only for the time series option "dataStream*". |
aspire.nosql.elastic.indexTemplateFile | no | default provider template file | 5.0.3 | The file path (including file name) that includes the template file for the indexes used by Aspire. Used only for the time series option "dataStream*". |
Index Sharding and Replicas settings
Each index sharding and replicas settings can be changed by using a custom mappingFile and configuring the aspire.noSql.elastic.mappingFile property.
Since 5.0.1, when using the default mapping settings, you can use the following prefix parameter:
aspire.noSql.elastic.index.shards.[indexName]
Should hold an integer specifying the number of shards for the given index
aspire.noSql.elastic.index.replicas.[indexName]
Should hold an integer specifying the number of replicas for the given index
If none of these properties are specified, the default replicas and shard number of the cluster will be used (usually 1 shard and 1 replica).
The different index names available are:
audit
base
errors
hierarchy
log
map
queue
retryLog
set
settings
snapshot
updateQueue
identityCache
SSL Certificates
Bellow are the list of properties to configure the SSL Certificates
Parameter | Required | Default | Description |
|---|---|---|---|
aspire.ssl.trustAll | no | false | Configure if all certificates should be trusted |
aspire.ssl.overwriteFactory | no | false | Configure if the created key managers should overwrite the Java connection factory |
aspire.ssl.truststore.file | no | null | The path of the trust store file |
aspire.ssl.truststore.password | no | null | The trust store file password |
aspire.ssl.truststore.type | no | jks | The file format of the trust store file |
aspire.ssl.keystore.file | no | null | The path of the key store file |
aspire.ssl.keystore.password | no | null | The key store file password |
aspire.ssl.keystore.type | no | jks | The file format of the key store file |
Security and encryption
Below are the list of properties related to the Aspire security and encryption
Parameter | Required | Default | Description |
|---|---|---|---|
aspire.ldap.bind.dn.password | no | null | The password of the User DN. Not required if the authentication is anonymous |
aspire.security.api.auditing | no | true | It audits the Aspire API calls. It is available from Aspire 5.1 and on. |
Encryption
When a password/secret/token in a configuration must be persisted, Aspire encrypts it and stores it encrypted. The default encryption mechanism is AES 256 given a local key. AWS KMS encryption can be used instead as of version 5.0.3
Standard AES 256 Encryption with local key
Parameter | Required | Default | Description |
|---|---|---|---|
aspire.encryption.key.file | no | null | (Optional) Path (including file name) where the encryption key is located, if not provided a default in-memory key will be used, for production installations it must be always provided. This can also be passed as a JVM parameter or as an environment variable, aspire_encryption_key_file. This should be a 32 byte file, if longer, the first 32 bytes will be used as the encryption key. Grant read access to the Aspire user only (chmod 400 <file>) This file could be generated randomly
|
AWS KMS Encryption
Available since Aspire 5.0.3, Uses AWS Key Management Service (KMS) to encrypt the sensitive data. It uses a key in KMS to encrypt and decrypt data. See more details about this encryption provider at Aspire KMS encryption
Parameter | Required | Default | Description |
|---|---|---|---|
aspire.encryption.kms.roleARN | no | null | (Optional) If the KMS service must be accessed through the assumption of an IAM role, specify the role ARN. |
aspire.encryption.kms.keyARN | yes | N/A | The KMS key ARN. See Aspire KMS encryption for more information about creating a KMS key for Aspire. |