99 lines
3.0 KiB
Markdown
99 lines
3.0 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,
|
|
and provider-neutral filing from Files and Cases.
|
|
|
|
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
|
|
- search
|
|
|
|
Planned optional integrations include:
|
|
|
|
- forms runtime and decisions
|
|
- Campaigns, Postbox, and Reporting
|
|
- DMS/archive providers
|
|
- policy
|
|
- audit
|
|
- transparency
|
|
|
|
## Current Boundary
|
|
|
|
The current kernel supports planned and open records. Restricted per-record
|
|
grants, closure, retention calculation, holds, appraisal, disposition,
|
|
transfer, destruction, and external archive effects remain explicit later
|
|
work packages. Enabling Records does not trigger destructive or external
|
|
effects.
|
|
|
|
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
|
|
```
|