Schema: files with hash, size and lifecycle status #15

Open
opened 2026-10-10 22:18:27 +00:00 by keith · 1 comment
Owner

File records are distinct from model records and carry integrity state.

Scope

  • Owning model reference
  • Path relative to the library root, unique
  • Original source path recorded at import
  • SHA-256 content hash, byte size, filesystem mtime
  • Format discriminator so non-STL formats need no structural change later
  • Status supporting ok, missing, updated
  • Index on hash for duplicate detection

Acceptance criteria

  • One model can own many files
  • Hash indexed for efficient duplicate lookup
  • Adding a future format requires no table restructuring
  • Status transitions cover the lifecycle states in the spec

Blocked by: #14, #3

File records are distinct from model records and carry integrity state. ## Scope - Owning model reference - Path relative to the library root, unique - Original source path recorded at import - SHA-256 content hash, byte size, filesystem mtime - Format discriminator so non-STL formats need no structural change later - Status supporting `ok`, `missing`, `updated` - Index on hash for duplicate detection ## Acceptance criteria - [ ] One model can own many files - [ ] Hash indexed for efficient duplicate lookup - [ ] Adding a future format requires no table restructuring - [ ] Status transitions cover the lifecycle states in the spec --- Blocked by: #14, #3
keith added this to the M2 - Data Model & Migrations milestone 2026-10-10 22:18:27 +00:00
keith added the area:dbtype:featurepriority:high labels 2026-10-10 22:18:27 +00:00
Author
Owner

Acceptance reconciliation at c1ef2ee: keeping open. Multipart files and indexed hashes exist. Source mtime and explicit format metadata are missing; reconcile lifecycle naming with the spec. This is a source/test review, not a newly executed crash or restore experiment. Fresh Windows suite: 291 tests, 1801 assertions, 22 skips; lint passes. PostgreSQL fixture success does not waive these feature criteria.

Acceptance reconciliation at c1ef2ee: keeping open. Multipart files and indexed hashes exist. Source mtime and explicit format metadata are missing; reconcile lifecycle naming with the spec. This is a source/test review, not a newly executed crash or restore experiment. Fresh Windows suite: 291 tests, 1801 assertions, 22 skips; lint passes. PostgreSQL fixture success does not waive these feature criteria.
Sign in to join this conversation.