Skip to content

[Scale] Nightly repository backups to R2 with a restore drill #117

Closedsyntaqx opened this feature

Artifacts documents replication but no SLA, export or restore. Back up every repository nightly (incremental git bundles) to R2 from a container, and rehearse a restore.

Source: docs/ARTIFACTS.md (Cloudflare Artifacts due diligence, 2026-10-06). R11.

Repositories

Discussion

syntaqxcommented

Built and live (docs/ARTIFACTS.md, R11): nightly git bundles to R2 (g1t-backups) at 02:53 UTC, full then incremental, with a restore drill in scripts/ops/backup-restore-drill.mjs. The first run is 2026-10-08; the drill follows it.

syntaqxclosed this as completed·
syntaqxcommented

Restore drill after the first nightly backup (2026-10-08, 02:56 UTC run): passed.

scripts/ops/backup-restore-drill.mjs --bundles on a read-only copy of g1t-backups, each repository rebuilt from its bundle chain and every ref compared with its manifest and with the live repository:

RepositoryBackupRestored inRefs
flagon-io/g1t8.6 MiB full0.7 s11 match
flagon-io/hello42 KB full0.4 s3 match
flagon-io/automation-lab17 KB full0.4 s7 match
flagon-io/lab-api1.9 KB full0.3 s4 match
g1t-reviewer/first-steps1.5 KB full0.4 s2 match

Not exercised yet: no bundle reached the 32 MiB multipart part size (largest 8.6 MiB) and the run took about 12 s, so the 5-minute store credential was never near its end. Both need a repository over 32 MiB; the next drill after one exists covers them. The drill's own bucket read needs a token with R2 read (CLOUDFLARE_DEPLOY_TOKEN); the wrangler login has no R2 scope.

Sign in to comment.