Problem/Motivation
Workspaces Config marks field.field.*.*.* as workspace-safe, but field configuration entities are not yet safe to change inside a workspace. Deleting a field runs core's deletion pipeline. That registers data for purging, marks every row of the bundle deleted, invokes delete hooks, and can delete the field storage. Field tables are shared with Live, so a draft deletion destroys Live data immediately.
Proposed resolution
Add a workspace-aware field_config storage handler:
- Deleting a field that exists in Live records the deletion and defers its delete hooks until publication.
- A workspace-only field still runs core's pipeline, while a field storage that exists in Live survives the cascade.
- Changes are rejected when Live or another workspace holds a different field with the same name, and when the active workspace is not top-level.
- Discarding a workspace deletes its workspace-only fields through the entity API, so their rows are registered for purging.
Install and runtime requirements report a conflict when another module overrides the field_config storage handler. Field configuration is then reported unsupported rather than silently ignored.
Issue fork workspace_config-3617905
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #4
amateescu commentedMerged.