Configuration files
Configuration options can be specified in a number of different ways. These take precedence in the following orderJava System properties – set using the -D propertyName=value on the java command line / tomcat launch configuration
webapps/<phixflow>/WEB-INF/classes/local.properties – optional java properties file
webapps/<phixflow>/WEB-INF/classes/phixflow.properties – optional java properties file
Environment variables – using the environment form of the property name as described below
webapps/<phixflow>/WEB-INF/classes/context/server.properties – this contains the default values and should not be modified.
Keystore Files
Optionally, secrets such as database passwords can be kept encrypted in external secret files. Refer to XXX for instructions on how to configure this before proceeding with the installation.
Environment form of property names
As operating systems have stricter rules around valid characters in environment variable names, and prefer them to be in upper case, when using environment variables the property name should be converted as follows:
Replace dots (.) with underscores (_).
Remove any dashes (-).
Convert to uppercase.
For instance “db.url” would be looked up as “DB_URL” when resolved from environment variables.
Guidelines and advice for configuration
The context/server.properties file should never be changed. This is replaced on upgrade.
For a multi instance environment (e.g. DEV, QA and Prod) it is recommended that a common phixflow.properties file is used on all the instances, containing configuration settings that are identical on all environments. The local.properties file is then used for local overrides such as database url and passwords.
For single instance environments it is recommended to follow the same structure as with multi instance environments, but alternatively just one of either the phixflow.properties or local.properties files can be used to have all the configuration in a single file.
Only properties that have differing values from the default settings in the server.properties should be configured. This makes it easier to review and manage the configuration and ensures that fixes and improvements to the default settings will be applied automatically.
In docker environments it may be beneficial to use environment variables rather than settings in the local.properties file. Theis allows the same container image to be started as multiple instances with different configurations.