Verify artifacts
Promote hostile uploads only after trusted streaming validation and tenant-scoped create-only storage.
Outcome
An artifact becomes canonical only after trusted verification computes its digest and commits one tenant-scoped immutable manifest.
Prerequisites
Separate staging upload authority from finalization authority. Define maximum size, accepted media and magic types, archive/symlink policy, malware policy, retention class, and tenant/project ownership.
Steps
- Mint a random, one-use, short-lived staging upload target.
- Stream the uploaded object through size, digest, media, magic, ownership, and content-policy checks.
- Compute the canonical digest in the trusted finalizer.
- Conditionally promote to the workspace/project content-addressed namespace without overwrite.
- Commit manifest, lineage, retention, and event only after promotion succeeds.
- Quarantine invalid bytes and reconcile ambiguous finalization by the deterministic operation ID.
Slice 0 uses a create-only filesystem implementation and verifies digest plus mode. Remote staging and promotion activate with object storage.
Verify
Test overwrite, mismatch, partial upload, duplicate finalization, collision, symlink/archive abuse, cross-tenant deduplication, and a lost finalize response. Every valid retry yields one manifest.
Recover
If bytes and database diverge, mark affected evidence unavailable, stop promotion, run the consistency scanner, and restore or re-upload only from a verified source. Do not edit a digest to match bad bytes.