Problem/Motivation

Config changes made in a sub-workspace break on merge. WorkspaceMerger doesn't know about the module's key_value_workspace overlay rows (config entity lookup indexes, bundle field maps) nor dispatches a merge event through which the module could move them. After a merge, the parent would hold config revisions without their matching lookup and field-map data.

Proposed resolution

Allow config changes only in top-level workspaces:

  • The active config storage decorator rejects write(), delete(), rename() and deleteAll() while a sub-workspace is active. An active workspace ID that cannot be loaded rejects the operation instead of allowing it.
  • The form alteration marks the config forms this module manages as workspace-unsafe in a sub-workspace, so core's workspace form validation blocks submission with its standard message. This has to actively set workspace_safe to FALSE because core marks managed config entity forms safe through their ignored workspace handler.
  • Reads are unchanged: sub-workspaces keep read-only inheritance of staged config.
Command icon 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

amateescu created an issue. See original summary.

  • amateescu committed d8bb4424 on 1.0.x
    task: #3617067 Restrict config changes to top-level workspaces
    
    By:...
amateescu’s picture

Status: Active » Fixed

Merged.

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

  • amateescu committed 1464dc48 on 1.0.x
    task: #3617067 followup - Add a validation constraint for the top-level...

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.