We should have non-hacky way to test what a configuration change would do to production without:
- Actually changing the versioned configuration.
- Having to deploy hacked versions of code to test future changes of config.
One possibility that occurs to me is to create a DevConfigOverrides entity keyed by username and have waterfall_config determine based on the name of the version it's running if it's a dev deployment and the configuration needs to be overriden.
UI-wise we could change the config page to display a couple extra buttons when running on a dev deployment:
- "Save as Dev Override": would save any changes to config to a DevConfigOverride entity associated with the running version name, instead of saving them to the wf_config.FinditConfig entity.
- "Reset Overrides": Would remove the overrides, letting the production configuration take effect on the dev version.
Ideally, the DevConfigOverrides entity would only store the diff between the latest real configuration and the intended end configuration, so that the dev versions reflect the real configuration being used in production plus any overrides created for dev.
Comment 1 by robert...@chromium.org
, Apr 29 2017