Files
govoplan-forms/README.md
T

42 lines
1.8 KiB
Markdown

# GovOPlaN Forms
<!-- govoplan-repository-type:start -->
**Repository type:** module (domain).
<!-- govoplan-repository-type:end -->
`govoplan-forms` owns reusable, immutable form definitions, validation rules,
and form package fragments. Submission runtime behavior remains in
`govoplan-forms-runtime`.
The module persists exact tenant-bound revisions, exposes bounded catalogue,
history, and write APIs, and provides `forms.definitions` for consumers. A
published revision can be used by Forms Runtime without importing Forms tables;
existing submissions keep their exact revision when a new schema is published.
The `/forms` designer uses shared application controls to create, revise,
publish, retire, search, and inspect definitions. It edits field order, types,
choices, validation constraints, draft behavior, attachment and signature
requirements, policy references, and permitted handoff kinds. Saving always
creates an exact immutable revision; it never mutates a published schema in
place.
The designer also supports multi-page/section layout, bounded conditional
visibility expressions, localized labels/help/options/page titles, fallback
locale, and accessibility metadata. Server validation rejects unknown fields,
incompatible operators, placement errors, and condition cycles. Verified
configuration-package fragments can be assessed and imported as a new local
draft with source provenance rather than silently becoming active.
Definition writes use optimistic concurrency. Replaying the same object and
revision is safe only when the payload is identical. Published definitions may
be retired but not silently returned to draft.
Focused verification:
```bash
PYTHONPATH=src:/mnt/DATA/git/govoplan-core/src \
/mnt/DATA/git/govoplan/.venv/bin/python -m unittest discover -s tests
```
See [docs/FORMS_BOUNDARY.md](docs/FORMS_BOUNDARY.md) for the boundary decision.