I'm dipping in and out of thinking about a solution to this problem, specifically the solution I'm going to apply to my system, so apologies for the long periods of radio silence. As always Junilu I appreciate your input very much.
I was aware of the 12 factor app and have now read over the config
sections many times. I'm currently focussed on this statement:
12factor.net wrote:The twelve-factor app stores config in environment variables (often shortened to env vars or env). Env vars are easy to change between deploys without changing any code; unlike config files, there is little chance of them being checked into the code repo accidentally; and unlike custom config files, or other config mechanisms such as Java System Properties, they are a language- and OS-agnostic standard.
I completely get the idea here of using env vars and it sounds very appealing to me but I don't have a good idea of where to store the configuration values. The app is Spring Boot so can have a single application.properties file where the values are placeholders for environment variables
That gets me a single configuration file within the repo that defines the configuration items that are required. This will be an improvement as currently we have multiple config files for different environments and some extra that devs have added for their own testing and one of the problems is that the set of config keys are not consistent across these files where new items have been added to a dev config file but not the prod one.
If I go with this approach then I have the configuration items in my repo with no values, which is good. But now I'm back to the same question of where do I keep my config values?