AssetManifestTable
tableBreakdex::DataStores::AssetManifestTable
Content-addressed registry of every video asset — the single source of truth for binary files
Each row is a unique video asset identified by its SHA-256 content hash. The manifest tracks physical location, dimensions, provenance, and tombstone state. Multiple moves can reference the same asset via content_hash. This is the foundation of deduplication and multi-provider cloud sync.
Relationships
Depends On 2
asset_manifest_daoasset_hash_service
Reads From 2
moves_tablecombos_table
Writes To 1
asset_copies_table
Breaks If 3
content_hash_algorithm_changesmanifest_corruptionlocal_path_resolver_breaks
Data Access
Owns 1
asset_copies_table
Reads 2
moves_tablecombos_table
Writes 1
asset_copies_table
Answers
States
| State | Behavior |
|---|---|
| no Dimensions | message: Width/height NULL — video metadata extraction failed or was skipped shows: unknown_aspect_ratio |
| no Local Path | message: Asset exists in manifest but not on device — must download from cloud provider shows: cloud_only_indicator |
| tombstoned | message: Asset soft-deleted with reason — retained for sync reconciliation, not served to UI shows: deleted_asset_marker |
Columns
| Name | Type | Constraints |
|---|---|---|
| content_hash | text | NOT NULL |
| file_size_bytes | int | NOT NULL |
| mime_type | text | NOT NULL DEFAULT: video/mp4 |
| duration_ms | int | |
| width | int | |
| height | int | |
| local_path | text | |
| local_verified_at | datetime | |
| source_type | text | NOT NULL ENUM: camera, photos, files, cloud_download, legacy_migration |
| source_name | text | |
| imported_at | datetime | NOT NULL |
| deleted_at | datetime | |
| tombstone_reason | text | ENUM: user, replaced, corrupted |
| copy_count | int | NOT NULL DEFAULT: 1 |
| last_sync_at | datetime |
Primary Key
content_hashIndexes
idx_asset_manifest_local_path
(local_path)Concerns
ContentAddressed