[Security] Adopt recovery-ledger and evidence guarantees for Records effects #6

Closed
opened 2026-08-06 00:28:35 +02:00 by zemion · 1 comment
Owner

Parent: #1

Bind record manifests, source references, policy/configuration revisions, holds and external intents to recovery-ledger evidence. Add restore validation, checksum/missing-reference diagnostics, replay/idempotency tests, Audit events and operator reconciliation states.

Acceptance: accepted filing/lifecycle work survives worker loss and restore; outcome-unknown external effects never cause silent deletion or duplicate transfer.

Parent: #1 Bind record manifests, source references, policy/configuration revisions, holds and external intents to recovery-ledger evidence. Add restore validation, checksum/missing-reference diagnostics, replay/idempotency tests, Audit events and operator reconciliation states. Acceptance: accepted filing/lifecycle work survives worker loss and restore; outcome-unknown external effects never cause silent deletion or duplicate transfer.
Author
Owner

Codex State: done

Summary

  • Wrapped every Records mutation in the shared recovery ledger with idempotent request hashing, distributed runtime ownership, atomic terminal checkpoints and Audit evidence.
  • Added operator recovery diagnostics for source references, transfer-package hashes and evidence chains; unknown archive outcomes are non-retryable and cannot silently advance custody.
  • Added database backup/restore evidence verification and worker-loss/replay coverage.

Changed Files

  • src/govoplan_records/backend/recovery.py
  • src/govoplan_records/backend/router.py
  • src/govoplan_records/backend/service.py
  • tests/test_recovery.py

Verification

  • Recovery replay, concurrent-runtime exclusion and restored evidence-chain tests pass.
  • Unknown-outcome archive dispatch is persisted and a second provider effect is blocked.

Next / Blocked

## Codex State: done ### Summary - Wrapped every Records mutation in the shared recovery ledger with idempotent request hashing, distributed runtime ownership, atomic terminal checkpoints and Audit evidence. - Added operator recovery diagnostics for source references, transfer-package hashes and evidence chains; unknown archive outcomes are non-retryable and cannot silently advance custody. - Added database backup/restore evidence verification and worker-loss/replay coverage. ### Changed Files - `src/govoplan_records/backend/recovery.py` - `src/govoplan_records/backend/router.py` - `src/govoplan_records/backend/service.py` - `tests/test_recovery.py` ### Verification - `Recovery replay, concurrent-runtime exclusion and restored evidence-chain tests pass.` - `Unknown-outcome archive dispatch is persisted and a second provider effect is blocked.` ### Next / Blocked - Delivered in GovOPlaN/govoplan-records@df51bb1 with the shared contract in GovOPlaN/govoplan-core@f594942.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-records#6