33 lines
1.9 KiB
Markdown
33 lines
1.9 KiB
Markdown
# Distribution Lists Interface Pattern Migration
|
|
|
|
This migration applies the GovOPlaN interface pattern language to the
|
|
distribution-list catalogue, revision editor, expansion preview, snapshot
|
|
evidence, and reusable picker.
|
|
|
|
## Surface Inventory
|
|
|
|
| Surface | Archetype | Consequence class | Contract |
|
|
| --- | --- | --- | --- |
|
|
| `/distribution-lists` catalogue | Governed work queue | Select, create, or delete a list | Shared loading, empty, permission, disabled-reason, and help states |
|
|
| Definition editor | Consequential definition editor | Save immutable revision | Guarded list and nested-entry drafts with contextual field semantics |
|
|
| Expansion preview | Evidence preview | Resolve current saved revision | Explicit exclusions, provider availability, provenance, and decision explanations |
|
|
| Frozen snapshots | Evidence register | Retain exact expansion | Immutable recipients, exclusions, source revisions, parameters, provenance, and hash |
|
|
| Distribution-list picker | Shared object selector | Reference a list | Searchable selector with contextual definition help |
|
|
|
|
## Consequence And Availability Rules
|
|
|
|
- Saving creates an immutable list revision; previews and snapshots use only a
|
|
saved revision.
|
|
- Include, exclude, and manual-override entries have distinct semantics. Manual
|
|
override requires an auditable reason.
|
|
- Freezing is confirmed because it creates retained evidence consumed by other
|
|
modules. Deleting the reusable definition does not rewrite retained snapshots.
|
|
- Provider absence is explained and never turns an optional integration into a
|
|
hard dependency.
|
|
- Missing write permission and incomplete or unchanged drafts expose a reason
|
|
and required next action instead of a silent disabled control.
|
|
|
|
Backend and WebUI manifests publish the same surface identifiers. English and
|
|
German catalogues cover the module-owned interaction vocabulary, and contextual
|
|
help resolves through manifest documentation rather than detached UI guidance.
|