114 lines
3.8 KiB
Markdown
114 lines
3.8 KiB
Markdown
# GovOPlaN Records
|
|
|
|
<!-- govoplan-repository-type:start -->
|
|
**Repository type:** module (domain).
|
|
<!-- govoplan-repository-type:end -->
|
|
|
|
`govoplan-records` owns GovOPlaN's native eAkte boundary: versioned file plans
|
|
and record classes, stable record identities, immutable record revisions,
|
|
volumes, exact filing references, and record chronology. Source modules retain
|
|
authority over their objects and bytes.
|
|
|
|
The first working vertical slice includes PostgreSQL/SQLite models and an
|
|
Alembic migration, tenant-scoped APIs, optimistic concurrency and idempotent
|
|
filing, temporal reads, search registration, a full-height Records workspace,
|
|
provider-neutral filing from Files, Cases, Forms Runtime, and Decisions, and a
|
|
governed close/retention/hold/appraisal/disposition/transfer lifecycle.
|
|
|
|
The `privacy.dsar.records` capability exports bounded record and lifecycle
|
|
metadata from an explicit record or authoritative source linkage. Canonical
|
|
account, identity, and membership selectors return minimized staff
|
|
accountability attribution; they do not turn a staff action into record-subject
|
|
ownership. Immutable eAkte evidence is retained, while the current record fact
|
|
is routed to manual lifecycle review. Source content, snapshots, opaque
|
|
contexts, payloads, hashes, replay keys, and archive manifests/receipts are not
|
|
exported by Records.
|
|
|
|
## Initial Ownership
|
|
|
|
- file plans
|
|
- records classification
|
|
- retention schedule application
|
|
- disposal holds
|
|
- archive handoff state
|
|
- legal record identity
|
|
|
|
## Boundaries
|
|
|
|
This module does not own:
|
|
|
|
- document binary storage
|
|
- DMS editing workflows
|
|
- generic privacy policy engine
|
|
|
|
Detailed boundary notes are in [docs/RECORDS_DOMAIN_BOUNDARY.md](docs/RECORDS_DOMAIN_BOUNDARY.md).
|
|
|
|
## Integrations
|
|
|
|
Implemented optional integrations:
|
|
|
|
- files
|
|
- cases
|
|
- forms runtime
|
|
- decisions
|
|
- approvals
|
|
- audit
|
|
- search
|
|
|
|
Planned optional integrations include:
|
|
|
|
- Campaigns, Postbox, and Reporting
|
|
- target-tested DMS/archive providers
|
|
- policy
|
|
- transparency
|
|
|
|
## Current Boundary
|
|
|
|
The current kernel supports planned/open records, exact filing, closure,
|
|
retention calculation, holds, appraisal, independent disposition approval,
|
|
archive-neutral packaging, recovery evidence, and a clearly marked transfer
|
|
simulation. The simulation never claims archival custody. Restricted
|
|
per-record grants, real target conformance, destructive execution, and real
|
|
archive effects remain explicit later work packages.
|
|
|
|
## Reference Journey
|
|
|
|
The executable resident-parking-permit fixture proves equivalent assisted and
|
|
authenticated digital eAkten. It files the exact form, attachment, case and
|
|
representation, decision, delivery, and correction revisions; preserves
|
|
authority, purpose, policy, chronology, and custody evidence; exercises hold
|
|
and independent approval; and verifies search, temporal reconstruction, and
|
|
source/package integrity after a SQLite backup/restore round trip. The Records
|
|
workspace keeps the selected `recordId` in the URL so an authorized actor can
|
|
resume the same record and inspect the complete evidence chain.
|
|
|
|
The detailed target and implementation sequence are documented in
|
|
[docs/EAKTE_ARCHITECTURE.md](docs/EAKTE_ARCHITECTURE.md).
|
|
|
|
## Development Install
|
|
|
|
From the workspace:
|
|
|
|
```bash
|
|
cd /mnt/DATA/git/govoplan-records
|
|
/mnt/DATA/git/govoplan/.venv/bin/python -m pip install -e .
|
|
```
|
|
|
|
Focused manifest verification:
|
|
|
|
```bash
|
|
cd /mnt/DATA/git/govoplan-records
|
|
PYTHONPATH=src /mnt/DATA/git/govoplan/.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/records`.
|
|
|
|
From the core checkout, labels can be synced once a local `GITEA_TOKEN` is available:
|
|
|
|
```bash
|
|
cd /mnt/DATA/git/govoplan-core
|
|
/mnt/DATA/git/govoplan/tools/gitea/gitea-sync-labels.py --root /mnt/DATA/git/govoplan-records --apply
|
|
```
|