Skip to content

Add safe CAS garbage collection and retention-aware mark and sweep #41

Description

@haasonsaas

Context

A longitudinal executable corpus can grow indefinitely, while derived rows, legal holds, and incomplete uploads make blind deletion unsafe. Retention needs a recoverable, auditable storage lifecycle.

Proposal

Add a dry-run and execute garbage collector that marks live CAS objects from artifact records, active jobs, analysis receipts, and legal holds; sweeps only unreferenced objects after a grace period; and records counts/digests.

Acceptance criteria

  • Dry-run reports candidates without mutating storage.
  • Active analysis jobs, legal holds, and failed-but-retryable uploads protect their inputs.
  • Sweep is resumable and idempotent after interruption.
  • Every deletion records tenant, digest, reason, actor, and timestamp.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions