Properties

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 parameter

In 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

Parameter

Required

Default

Description

aspire.max.heap.memory

no

2g

Maximum Heap the JVM will request and use from the host system

aspire.max.metaspace.size

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:

  1. Browse to

    • HKEY_LOCAL_MACHINE / SOFTWARE / WOW6432Node / Apache Software / Procrun 2.0 / AspireService / Parameters / Java

  2. 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

Parameter

Required

Default

New & Available from

Description

aspire.noSql.elastic.server

yes

http://localhost:9200

 

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

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

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

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

$ head -c 32 /dev/urandom > encryption.key

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

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.