3.3 KiB
GovOPlaN Approvals
Repository type: module (domain).
govoplan-approvals owns generic approval and sign-off chains with trusted delegation, separation of duties, escalation, and signature references. It persists immutable request revisions, append-only decisions and lifecycle evidence, exposes a tenant-scoped API and WebUI, and provides the approvals.requests capability for exact-subject approval checks.
Initial Ownership
- approval requests
- sign-off chains
- delegation and substitution facts
- four-eyes constraints
- escalation state
- signature references
Boundaries
This module does not own:
- module-specific business decisions
- workflow orchestration engine
- identity and RBAC primitives
Detailed boundary notes are in docs/APPROVALS_DOMAIN_BOUNDARY.md.
Tenant approval administrators manage reusable chains under
Admin > Tenant > Approval templates. Template edits and publication create
immutable revisions with content hashes and actor provenance. The history API
and UI compare any two revisions as structured JSON-pointer changes. The
request workspace also exposes due-step escalation to approval administrators;
the server rechecks the due timestamp and request revision before recording the
transition.
Template API additions:
GET /api/v1/approvals/templates/{template_id}/historyGET /api/v1/approvals/templates/{template_id}/compare
Integrations
Optional integrations:
- workflow engine
- audit
- files
- notifications
Development Install
From the core checkout:
cd /mnt/DATA/git/govoplan-core
./.venv/bin/python -m pip install -e ../govoplan-approvals
Focused runtime verification:
cd /mnt/DATA/git/govoplan-approvals
PYTHONPATH=src:/mnt/DATA/git/govoplan-core/src /mnt/DATA/git/govoplan-core/.venv/bin/python -m unittest discover -s tests
Gitea Workflow
Issue templates are installed under .gitea/, and the shared label taxonomy is copied to docs/gitea-labels.json with the module label module/approvals.
From the core checkout, labels can be synced once a local GITEA_TOKEN is available:
cd /mnt/DATA/git/govoplan-core
/mnt/DATA/git/govoplan/tools/gitea/gitea-sync-labels.py --root /mnt/DATA/git/govoplan-approvals --apply
Git-source WebUI package
The repository root exposes @govoplan/approvals-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/approvals-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.