Encrypt authored-action idempotency ledger at rest #1122

Closed
opened 2026-08-19 09:24:14 +00:00 by rockachopa · 0 comments
Member

User impact

Issue drafts, comments, notification replies, and pull-review feedback retained for retry safety are currently readable in the SQLite ledger. Encrypt operation fingerprints and completed responses while preserving exactly-once replay behavior.

Scope

  • Seal fingerprint and response payloads with the existing private-state cipher, bound to the operation key and field purpose.
  • Lazily and atomically migrate legacy plaintext rows.
  • Fail closed on a wrong key, tampering, or ciphertext substitution.
  • Preserve reservation, conflict, pending/uncertain, replay, expiry, capacity, and contention semantics.

Acceptance tests

  • A unique authored-content canary is absent from the raw database after reservation and completion.
  • Restart with the same key replays the exact completed response.
  • Legacy plaintext pending/completed rows migrate to authenticated v1 envelopes without semantic changes.
  • Wrong keys, tampering, and cross-row/field substitution fail closed.
  • Existing concurrency, expiry, capacity, and authored-action tests remain green.

Implementation must use strict RED-GREEN-REFACTOR and link the delivery PR with Closes #N.

## User impact Issue drafts, comments, notification replies, and pull-review feedback retained for retry safety are currently readable in the SQLite ledger. Encrypt operation fingerprints and completed responses while preserving exactly-once replay behavior. ## Scope - Seal fingerprint and response payloads with the existing private-state cipher, bound to the operation key and field purpose. - Lazily and atomically migrate legacy plaintext rows. - Fail closed on a wrong key, tampering, or ciphertext substitution. - Preserve reservation, conflict, pending/uncertain, replay, expiry, capacity, and contention semantics. ## Acceptance tests - A unique authored-content canary is absent from the raw database after reservation and completion. - Restart with the same key replays the exact completed response. - Legacy plaintext pending/completed rows migrate to authenticated v1 envelopes without semantic changes. - Wrong keys, tampering, and cross-row/field substitution fail closed. - Existing concurrency, expiry, capacity, and authored-action tests remain green. Implementation must use strict RED-GREEN-REFACTOR and link the delivery PR with `Closes #N`.
timmy was assigned by rockachopa 2026-08-19 09:24:14 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#1122
No description provided.