60 lines
2.9 KiB
Markdown
60 lines
2.9 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.
|
|
|
|
## Git-source WebUI package
|
|
|
|
The repository root exposes `@govoplan/forms-webui` for Git-tagged release
|
|
dependencies. It mirrors the owning `webui/package.json` version, public
|
|
TypeScript/CSS exports and peer requirements, with entry paths under
|
|
`webui/src`. Consumers provide the shared Core/React peers; the facade runs no
|
|
development or install scripts. The source archive contains `webui/src`, this
|
|
README and any repository license file. Run module development checks from `webui/`; Python
|
|
installation remains governed by `pyproject.toml`.
|
|
|
|
Das Repository stellt `@govoplan/forms-webui` am Wurzelpfad für versionierte
|
|
Git-Abhängigkeiten bereit. Version, öffentliche TypeScript-/CSS-Exporte und
|
|
Peer-Anforderungen entsprechen `webui/package.json`; die Einstiegspfade liegen
|
|
unter `webui/src`. Gemeinsame Core-/React-Peers stellt die einbindende Anwendung
|
|
bereit. Die Fassade führt keine Entwicklungs- oder Installationsskripte aus.
|
|
Entwicklungsprüfungen bleiben in `webui/`, die Python-Installation weiterhin in
|
|
`pyproject.toml` definiert.
|