Runtime configuration¶
In some situations, you may wish to define settings of the vars.yaml
not directly,
but via an environment variable instead, to be interpreted at runtime.
On this documentation page, we will use the following examples:
the “Google API Key” shall be set via environment variable, because you do not want the key value to appear in the
vars.yaml
file, as it is sensitive information.the “Password reset” link shall appear or not depending on the value of an environment variable. This can be helpful if you are running several instances of your project, where the link shall appear in some instances, but not all.
Env files¶
For env
files in general, see Build configuration.
Add the environment variables to your env
files, set the right values for that env
:
GOOGLE_API_KEY=<your-key>
GMF_AUTH_PWD_CHANGE=false
Usage in vars¶
In your geoportal/vars.yaml
file, you can refer to these environment variables,
if you list them in the runtime_environment
:
vars:
...
google_api_key: '{GOOGLE_API_KEY}'
...
interfaces_config:
default:
constants:
...
gmfAuthenticationConfig:
allowPasswordReset: '{GMF_AUTH_PWD_RESET}'
...
runtime_environment:
- name: GOOGLE_API_KEY
default: '***REMOVED***'
- name: GMF_AUTH_PWD_RESET
default: 'false'
Note that, in this example, the setting allowPasswordReset
was added to the default
constants, but you could add it only to specific interfaces if you prefer. However,
because the variable allowPasswordReset
is a boolean, additional
processing is needed to interpret it correctly, and you must provide the
correct full path to this variable:
runtime_environment:
...
runtime_postprocess:
- expression: str({}).lower() in ("true", "yes", "1")
vars:
- interfaces_config.default.constants.gmfAuthenticationConfig.allowPasswordReset