Migrate Organizations interface patterns
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# Organizations Interface Pattern Migration
|
||||
|
||||
This document records the bounded migration of Organizations-owned WebUI
|
||||
surfaces to the GovOPlaN interface pattern language. Core owns shared controls
|
||||
and host shells. Organizations owns tenant-local model definitions, concrete
|
||||
units, relations, functions, settings, and their mutation consequences.
|
||||
|
||||
## Surface Inventory
|
||||
|
||||
| Surface | Archetype | Consequence class | Contract |
|
||||
| --- | --- | --- | --- |
|
||||
| `/organizations` model section | Repeated administration and definition library | Change model vocabulary | Shared DataGrid/cards/dialogs, stable row actions, governed change reference, contextual help |
|
||||
| `/organizations` units section | Hierarchy explorer and directory | Change hierarchy and routing context | Shared ExplorerTree/DataGrid, parent selection, explicit write blockers, guarded drafts |
|
||||
| `/organizations` relations section | Repeated administration | Change structure traversal | Typed source/target editor, lifecycle state, contextual field help |
|
||||
| `/organizations` functions section | Repeated administration | Change institutional responsibility vocabulary | Stable function rows, optional capability actions, explicit Access boundary |
|
||||
| `organizations.admin.tenant` | Effective tenant configuration | Change governance, audit, and retention behavior | Shared admin layout, permission blocker, dirty-state guard, contextual help |
|
||||
| `organizations.functionPicker` | Governed reference selector | Select an active function | Tenant-safe labels, bounded loading/error state, no sibling-private import |
|
||||
|
||||
## Consequence And Availability Rules
|
||||
|
||||
- Organization hierarchies and settings are tenant-owned. A tenant may start
|
||||
from a versioned system template, but it does not inherit one mutable global
|
||||
hierarchy.
|
||||
- Unit types, structures, relation types, and function types define the model;
|
||||
units, relations, and functions are concrete facts within it.
|
||||
- Parent and relation changes can affect downstream routing, Postbox
|
||||
resolution, reporting, and policy context. Slugs are stable integration
|
||||
references.
|
||||
- Deactivation preserves the record and audit evidence while removing it from
|
||||
active selection. The UI does not represent deactivation as deletion.
|
||||
- Delegation and act-in-place flags describe organizational semantics only.
|
||||
Access and governed workflows still decide effective authority.
|
||||
- When tenant governance requires it, model mutations need an approved
|
||||
change-request reference. Dirty dialogs, section changes, and reloads use the
|
||||
shared unsaved-change guard.
|
||||
- Unavailable actions remain visible and identify the missing permission,
|
||||
responsible administrator, and administration destination.
|
||||
|
||||
## State And Accessibility Evidence
|
||||
|
||||
The module uses Core page, subnavigation, grid, tree, card, dialog, loading,
|
||||
alert, status, blocker, field-help, and disabled-action controls. Stable table
|
||||
action slots remain keyboard reachable; dialogs retain shared focus containment
|
||||
and return. Responsive behavior stays owned by the existing workspace and admin
|
||||
shell CSS. Labels and accessible properties use the English/German module
|
||||
catalogue, and API errors are bounded to the current tenant operation.
|
||||
|
||||
The manifest contributes stable help contexts for the workspace, sections,
|
||||
settings, fields, lifecycle changes, and governed change references. Backend
|
||||
and WebUI contract tests prevent those boundaries and explanations from
|
||||
silently regressing.
|
||||
Reference in New Issue
Block a user