Property expansion
Configuration on steroids
Introduction
Property expansion is the process of replacing a value, or a part of a value, with the result of an expression.
The actual expression is a (dot-separated) path to another element in the same (logical) configuration.
Expansion expressions are written in the following format:
Expansion is performed after file inclusion allowing included files to also contain expansions.
Syntax
An expansion expression MUST:
be in string format (
"..."
)start with
${
end with
}
contain only a (dot-separated) path to another property in the current configuration
Expansion expression MAY:
be embedded in a string
be combined
If an expansion expression path contains an array, elements are referenced using an index property:
It is not recommended to use arrays in expansions since expressions becomes tied to the order of the array elements. Use objects instead with named properties (instead of index).
Scopes
Scopes are the named objects containing expansion result values.
The following scopes are available in addition to the configuration itself:
system
Java system properties
env
Process environment variables
secrets
External secrets. Requires secrets managemant to be enabled, see Secrets management.
Do NOT use dotted names for properties in system
and env
scope.
Examples
To externalize a secret from the configuration file, define a system property containing the value and use expansion:
Use a path defined in the environment in the configuration: