[P0] Implement encrypted storage, record schema, and migrations #11

Closed
opened 2026-07-17 23:59:26 +00:00 by lost-rob0t · 0 comments
lost-rob0t commented 2026-07-17 23:59:26 +00:00 (Migrated from github.com)

Goal

Persist only encrypted, versioned records while supporting efficient time-based retrieval.

Requirements

  • Separate encrypted content blobs from minimal index metadata.
  • Define what index fields may remain visible and justify each field in the threat model.
  • Prefer encrypted metadata where practical; avoid plaintext window titles and OCR text.
  • Atomic writes with crash recovery.
  • Versioned record schema and forward migrations.
  • Integrity checks for blobs, index entries, and cross-references.
  • Storage quotas and corruption quarantine.

Acceptance criteria

  • The storage layer rejects raw frames, raw text, and unencrypted payloads by type and runtime validation.
  • A filesystem inspection reveals no screenshot thumbnails or captured text in plaintext.
  • Interrupted writes do not produce readable partial records or broken index state.
  • Migration tests cover at least one prior schema fixture.

Depends on

## Goal Persist only encrypted, versioned records while supporting efficient time-based retrieval. ## Requirements - Separate encrypted content blobs from minimal index metadata. - Define what index fields may remain visible and justify each field in the threat model. - Prefer encrypted metadata where practical; avoid plaintext window titles and OCR text. - Atomic writes with crash recovery. - Versioned record schema and forward migrations. - Integrity checks for blobs, index entries, and cross-references. - Storage quotas and corruption quarantine. ## Acceptance criteria - The storage layer rejects raw frames, raw text, and unencrypted payloads by type and runtime validation. - A filesystem inspection reveals no screenshot thumbnails or captured text in plaintext. - Interrupted writes do not produce readable partial records or broken index state. - Migration tests cover at least one prior schema fixture. ## Depends on - #10
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
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
nsaspy/local-recall#11
No description provided.