Problem/Motivation
Provide a mechanism in core for handling configuration changes between different environments, such as Dev, Stage, Prod. For example, environments might have different API key configuration, different site names, or even different modules enabled (e.g. Devel in Dev only).
Currently the Config Split module is being used for this.
Proposed resolution
The Config Transform API is being added in #2991683: Add configuration transformer API. Add a new Config Environment module that utilizes the new API to provide environment-specific configuration.
Remaining tasks
- Agree on a scope for the new environment module and define what behaviour will be implemented at what stage along the way.
- Bring over the config_dev module code from the patches in #2991683: Add configuration transformer API as the start of config_environment.
- Determine how to handle config changes such as disabled modules, orphaned config.
- Determine how to support multiple config collections within the config/sync storage.
- Determine if environment config supports multiple translation config.
- Refine patch.
- Commit patch for experimental module to 8.7.x when the Config Transform API has been committed.
User interface changes
Config Environment will have a UI to switch between the different environments and review the config that will be changed by the switch.
API changes
None (beyond the Config Transform API being added in other issue)
Data model changes
- Current environment ID will be stored in the State system.
- New config collections will be added to the config/sync storage for the different environments.