Config Removal

Component ID

2836465

Component name

Config Removal

Component type

module

Maintenance status

Development status

Component security advisory coverage

not-covered

Component created

Component changed

Component body

Multiple configuration destinations are often used to store configuration specific to environment or even to separate on a site-by-site basis.

A common workflow is to leverage "sync" (the default and out-of-the-box configuration destination) as the destination for storing shared/global configuration. Overridden and additional configuration is stored in subsequent configuration destinations. A config import with the "partial" option allows for the secondary destination to bring in only that which is overridden or added.

A deeper dive into this workflow:

1. Additional configuration writes a new YML file to a secondary destination

2. Overridden configuration copies an existing YML file from the global configuration into the secondary destination and makes overridden changes to the definition

What happens if a configuration destination desires to remove configuration from the global config? Consider the use case in which basic auth is enabled for all environments except for production. Or, a second use case in which a View needs to be removed from one site and not every other. When running the wholesale config import/export, these settings would need to be manually removed/changed for each time configuration was run. A better solution is needed to integrate the removal of configuration during an import.

This project aims to solve the problem by providing additional configuration that defines a set of configuration keys that should be removed per config destination on import.