Configuration system data types
There are multiple places configuration data may be found:
-
Module-provided defaults: Any module may provide default configurations in its
config/install
directory. These configurations are imported to the active configuration upon installation. A module may provide either:- Configuration in its own namespace (e.g., its default settings and configurations for its own functionality).
- Configuration in another module's namespace (e.g., a default view of nodes provided by
node.module
).
-
Active configuration: The active configuration is the location of the current, canonical configuration for a given site. This includes both settings and stored ConfigEntity objects like views.
-
Staging: The configuration staging directory is used for deploying new configurations on a site. Configuration files in this directory are compared to the active configuration and imported or synchronized.
-
(Proposed) Snapshots: See #1515312: Add snapshots of last loaded config for tracking whether config has changed. The proposed snapshot directory creates a config snapshot following a successful import.
Views functionality
There are a number of operations users might wish to perform on a view:
- Add a new view:
- Through the UI.
- From a module default.
- From imported/staged configuration.
- Update an existing view:
- Through the UI.
- From a version update to an already-installed module.
- From imported/staged configuration.
- Enable or disable an existing view:
- During module installation or update.
- Through the UI.
- As part of a staging operation.
- Revert an existing view:
- To the state provided in a module default.
- To the saved state before recent changes when editing in the UI.
- To an earlier revision.
- As part of the synchronization workflow.
- List all views, their metadata, their original source/owner, and their active status.
- Stage and manage changes or updates through the UI.
- Locate and/or download a copy of the active configuration through the UI
- For staging on restrictive hosting environments or in certain staging workflows.
- For debugging or troubleshooting.
Relevant issues
- #1515312: Add snapshots of last loaded config for tracking whether config has changed
- #1601168: Orphan/obsolete keys and sub-keys *within* configuration objects are retained *forever*
- #1776830: [META-1] Installation and uninstallation of configuration provided by a module that belongs to another module's API
- #1398040: Detect if default configuration of a module has been changed, and allow to restore to the original
- #1620140: Allow synchronizing config entities from default config when modules are updated
- #1874394: Provide an API for upgrading configuration
- #1703168: [Meta] Ensure that configuration system functionality matches expected workflows for users and devs
- #1790398: Re introduce revert functionality for views using the config system
- #1825896: Add module owner to plugin data on handlers
- #1822048: Introduce a generic fallback plugin mechanism
- #1497268: Add revert functionality to Config entities
- #1826602: Allow all configuration entities to be enabled/disabled
- #1642062: Add TempStore for persistent, limited-term storage of non-cache data
- #1697256: Create a UI for importing new configuration
- #1760284: Rewrite ViewListController to use the core EntityListController
- #1781372: Add an API for listing (configuration) entities
- #1828414: Allow Views to be deleted
- #1969698: ConfigEntity::save() should disallow saving ID/UUID conflicts (Field UUID changes can badly corrupt field data)
Comments
Comment #0.0
xjmUpdated issue summary.
Comment #0.1
xjmUpdated issue summary.
Comment #0.2
xjmUpdated issue summary.
Comment #0.3
xjmUpdated issue summary.
Comment #0.4
xjmUpdated issue summary.
Comment #0.5
xjmUpdated issue summary.
Comment #0.6
xjmUpdated issue summary.
Comment #0.7
xjmUpdated issue summary.
Comment #0.8
xjm.
Comment #0.9
xjm.
Comment #0.10
xjmUpdated issue summary.
Comment #1
tim.plunkettComment #1.0
tim.plunkettadded another issue
Comment #2
andypostNot sure which issue more suitable but ConfigEntity needs implemet ::loadByProperties for its controller
Comment #2.0
andypost.
Comment #2.1
xjmUpdated issue summary.
Comment #2.2
xjmUpdated issue summary.
Comment #2.3
xjmUpdated issue summary.
Comment #2.4
xjmUpdated issue summary.
Comment #2.5
xjmUpdated issue summary.
Comment #2.6
xjmUpdated issue summary.
Comment #2.7
xjmUpdated issue summary.
Comment #3
gddDemoting to normal per discussion with xjm and timplunkett
Comment #3.0
gddUpdated issue summary.
Comment #3.1
tim.plunkettRemoved dupe #1790398
Comment #4
xjmThis one's fun: #1969698: ConfigEntity::save() should disallow saving ID/UUID conflicts (Field UUID changes can badly corrupt field data)
Comment #4.0
xjmrearrange
Comment #4.1
xjmUpdated issue summary.
Comment #4.2
xjmRemoving myself from the author field so I can unfollow. --xjm
Comment #5
xjmComment #6
alexpottComment #11
xjmThe necessary scope here was resolved before release; cleaning out the queue a bit.