Files
govoplan-forms/docs/INTERFACE_PATTERN_MIGRATION.md
T

2.5 KiB

Forms Interface Pattern Migration

This migration applies the GovOPlaN interface pattern language to the Forms-owned definition catalogue, package import, and revision editor. Forms owns immutable reusable schemas; Forms Runtime continues to own values, submissions, receipts, and handoff execution.

Surface Inventory

Surface Archetype Consequence class Contract
/forms catalogue Searchable definition library Filter, export, import, create, or revise Shared loading/error/empty/permission/help states and stable row actions
Package import dialog Consequential package review Create local draft from external provenance Assessment, required reason, guarded draft, never implicit publish
Definition dialog Versioned definition editor Create immutable revision Guarded editor, contextual schema help, explained validation and permission states
Publication state Governed lifecycle selector Publish or retire exact revision Admin-only availability and explicit lifecycle confirmation
Field/page/localization editors Structured schema composition Change future runtime schema At least one field, stable ordering, preview, localization and accessibility metadata

Consequence And Availability Rules

  • Every save creates an immutable revision with a reason. Runtime instances retain the exact revision with which they were created.
  • Publishing permits future authorized use. Retirement prevents future use but does not erase definitions, submissions, receipts, or evidence.
  • Imported packages become local drafts and retain source provenance.
  • Missing write or administration authority remains visible with an Access destination; retired definitions show a lifecycle explanation.
  • Optional Runtime, Portal, Workflow, Case, and Policy behavior remains behind declared interfaces and capabilities.

The module uses shared controls, dialogs, blockers, field help, statuses, loading, empty/error states, disabled reasons, confirmations, and unsaved-draft guards. The catalogue now composes WorkspaceFrame, ActionToolbar, FilterBar, and StatePanel; equal-column definition/editor groups use FormGrid, while field, page, localization, and preview headings use the shared section-header toolbar surface. Core therefore owns viewport, search, state, heading, and narrow-layout geometry. These contracts do not change filter scope, permissions, revision semantics, or publication consequences. English and German catalogues cover the owned route and editor vocabulary.