2.4 KiB
2.4 KiB
Forms Module Boundary
govoplan-forms owns reusable form definitions and validation metadata.
Runtime submissions and workflow handoff are separate behavior.
The core boundary decision register is in
/mnt/DATA/git/govoplan-core/docs/MODULE_ARCHITECTURE.md.
Ownership
Forms owns:
- form definitions, field schemas, sections, validation rules, and visibility rules
- localization, accessibility metadata, versioning, draft/published lifecycle, and admin editing
- form import/export and configuration-package fragments
- schema contracts that let portal, workflow, cases, and reporting understand a form without importing form internals
govoplan-forms-runtime owns, when implemented:
- public/internal submission sessions, drafts, receipts, submitted values, validation evidence, attachment references, and submission status
- submission handoff events to workflow, cases, tasks, mail, reporting, files, DMS, or portal
Boundaries
Forms does not own:
- public portal identity and anonymous/authenticated public entry points
- file storage and file permissions for uploaded attachments
- cases, workflow transitions, tasks, or assignment state
- DMS document lifecycle and generated record storage
- reporting aggregation or dataflow transformation
Submission Status Model
Candidate runtime statuses:
draftsubmittedvalidatedneeds_reviewacceptedrejectedhanded_offarchived
The definition module can declare valid transitions and required evidence, but runtime state belongs to the runtime module.
Accessibility And Validation Requirements
Form definitions should carry:
- labels, descriptions, required markers, and help text
- machine-readable validation rules
- field grouping and ordering
- keyboard and screen-reader metadata where needed
- localization keys and fallback text
- data classification for privacy/retention decisions
Candidate Capabilities
forms.catalogforms.schemaforms.validationforms.packageFragmentsforms.runtimewhen runtime is installed
First Implementation Slice
- Define manifest metadata, permissions, and capability names.
- Add form definition/version DTOs.
- Add validation metadata for one reusable form schema.
- Add package fragment import/export format.
- Add tests that portal/workflow/reporting can detect form capabilities without importing form internals.