# GovOPlaN Records **Repository type:** module (domain). `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 ```