Skip to main content

Three layers: a short note at the top, the key lines with our take in the middle, the full source at the bottom.

Runbook

r2-lifecycle.md

How object storage is configured and the lifecycle rules that delete old uploads automatically.

Repo path runbooks/r2-lifecycle.mdLanguage Markdown

What this is

A short operations document that names the storage rules for invoice scans. Cloudflare R2 (the storage layer) is configured to abort incomplete uploads after one hour and to apply the 24-hour retention rule for unlocked files automatically.

What it proves

Backs the promise that scans are retained for 24 hours and no longer. The rules are configured at the storage layer, not just in application code, so even a future bug in the reaper job would not extend retention beyond what R2 itself enforces. Read the promise →

What to look for in the source below

  • The expiry rule on the unlocked-scans bucket.
  • The abort-incomplete-upload rule (1 hour).
  • A list of who has access to change these rules — small, audited.
Show the full file (120 lines)

See also

This is the file as it lives at the moment of this build. The canonical history lives in git. If you want the full history or a specific commit, write to hello@muntin.digital.

r2-lifecycle.md · Verify · Muntin Ledger · Muntin