[Feature] Govern View inheritance, assignment ceilings, and explainable provenance #9

Closed
opened 2026-07-28 18:59:03 +02:00 by zemion · 2 comments
Owner

Outcome

Policy resolves which Views and interface surfaces may be selected or imposed at system, tenant, group, and user scope, and explains every effective limitation.

Acceptance criteria

  • Define module-neutral decisions for view, select, assign, edit, derive, and workflow_activate actions.
  • Resolve system/tenant/group/user ceilings so lower scopes and workflows may narrow inherited visibility but never broaden it.
  • Support administrator defaults, mandatory/locked View assignments, allowed View sets, and user selection within the effective ceiling.
  • A workflow step may request a View or narrower overlay, but cannot bypass the administrative ceiling or ordinary authorization.
  • Return ordered provenance for each hidden, forced, inherited, or unavailable surface and make it consumable by the Views editor/UI.
  • Keep presentation policy distinct from RBAC: a Policy decision about a View never grants a backend permission.
  • Preserve the last valid effective definition when a referenced View becomes invalid; otherwise fall back to the normal authorized interface with an administrator-visible diagnostic rather than trapping the user in an empty shell.
  • Cover inheritance, mandatory assignments, workflow narrowing, stale revisions, and attempted broadening in focused tests.

Dependencies

Depends on the Core surface/runtime contract. govoplan-policy must not import Views or Workflow implementations.

## Outcome Policy resolves which Views and interface surfaces may be selected or imposed at system, tenant, group, and user scope, and explains every effective limitation. ## Acceptance criteria - Define module-neutral decisions for `view`, `select`, `assign`, `edit`, `derive`, and `workflow_activate` actions. - Resolve system/tenant/group/user ceilings so lower scopes and workflows may narrow inherited visibility but never broaden it. - Support administrator defaults, mandatory/locked View assignments, allowed View sets, and user selection within the effective ceiling. - A workflow step may request a View or narrower overlay, but cannot bypass the administrative ceiling or ordinary authorization. - Return ordered provenance for each hidden, forced, inherited, or unavailable surface and make it consumable by the Views editor/UI. - Keep presentation policy distinct from RBAC: a Policy decision about a View never grants a backend permission. - Preserve the last valid effective definition when a referenced View becomes invalid; otherwise fall back to the normal authorized interface with an administrator-visible diagnostic rather than trapping the user in an empty shell. - Cover inheritance, mandatory assignments, workflow narrowing, stale revisions, and attempted broadening in focused tests. ## Dependencies Depends on the Core surface/runtime contract. `govoplan-policy` must not import Views or Workflow implementations.
Author
Owner

Codex State: note

Summary

  • The Views module now resolves assignment precedence, required/default/available modes, user selection, basic provenance, and stale projection recovery.
  • Policy-owned ceilings, narrowing-only decisions, and per-surface policy provenance are not implemented and this issue remains open.

Changed Files

  • govoplan-policy@242d023

Next / Blocked

  • Build the module-neutral Policy decisions over the published views.resolver and views.surface_contract interfaces.
## Codex State: note ### Summary - The Views module now resolves assignment precedence, required/default/available modes, user selection, basic provenance, and stale projection recovery. - Policy-owned ceilings, narrowing-only decisions, and per-surface policy provenance are not implemented and this issue remains open. ### Changed Files - `govoplan-policy@242d023` ### Next / Blocked - Build the module-neutral Policy decisions over the published views.resolver and views.surface_contract interfaces.
Author
Owner

Implemented and pushed in govoplan-core@5ee85d0, govoplan-policy@84acc34, and govoplan-views@303f155.

Delivered:

  • module-neutral view/select/assign/edit/derive/workflow_activate Policy contract
  • persisted system/tenant/group/user View policy ceilings with audited administration API
  • narrowing-only boolean, allowed-View, and visible-surface inheritance
  • target-scope-aware resolution, ordered per-surface provenance, and diagnostics
  • Policy enforcement for View resolution, user selection, workflow activation, definition editing/derivation, and assignment changes
  • required/default/available assignment precedence retained under the effective ceiling
  • projection-only filtering when no View is selected
  • malformed or unreachable ceilings fall back to the normal authorized interface with diagnostics, preserving RBAC separation and lockout escape surfaces

Verification: 37 Policy tests, 29 Views tests, 122 Core module-system/contract tests, the linked full WebUI build, and all 33 WebUI module permutations pass; bundle budgets remain within limits.

Implemented and pushed in govoplan-core@5ee85d0, govoplan-policy@84acc34, and govoplan-views@303f155. Delivered: - module-neutral view/select/assign/edit/derive/workflow_activate Policy contract - persisted system/tenant/group/user View policy ceilings with audited administration API - narrowing-only boolean, allowed-View, and visible-surface inheritance - target-scope-aware resolution, ordered per-surface provenance, and diagnostics - Policy enforcement for View resolution, user selection, workflow activation, definition editing/derivation, and assignment changes - required/default/available assignment precedence retained under the effective ceiling - projection-only filtering when no View is selected - malformed or unreachable ceilings fall back to the normal authorized interface with diagnostics, preserving RBAC separation and lockout escape surfaces Verification: 37 Policy tests, 29 Views tests, 122 Core module-system/contract tests, the linked full WebUI build, and all 33 WebUI module permutations pass; bundle budgets remain within limits.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-policy#9