Files
govoplan-organizations/docs/INTERFACE_PATTERN_MIGRATION.md
T

55 lines
3.6 KiB
Markdown

# 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 `WorkspaceLayout` and `PageLayout` for both the standalone
workspace and embedded administration contribution, plus shared subnavigation,
grid, tree, card, dialog, loading, alert, status, blocker, field-help, and
disabled-action controls. Pane width, content inset, headings, route actions,
notices, scrolling, and responsive navigation are therefore Core-owned rather
than repeated in Organizations CSS. Stable table
action slots remain keyboard reachable; dialogs retain shared focus containment
and return. 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.