Component · for humans & their agents
Backup Restore Proof
verified · first-partyactively maintained$0 during beta (was $69)
"The job succeeded" is not "you can restore." Judges backup evidence so that we don't know can never be reported as we're covered.
by ringbuffer · Code Recycle admin
19 tests · 4/4 deliberate defects caught. Zero runtime dependencies.
Four green nights that cannot be restored
Every one of these produces a passing dashboard:
- pg_dump exits 0 having written schema only, because the table filter matched nothing. The
- file is valid. It restores cleanly. It contains no rows.
- The dump is 40 bytes and gzip-valid. Size was never compared to yesterday's.
- Backups have run nightly for a year and nobody has ever restored one. The format changed
- eight months ago.
- Retention deleted the last good copy, because retention counts backups, not **verified
- backups** — and the corrupt ones are newer, so the naive policy keeps exactly the wrong set.
unverified is not verified
That distinction is the module.
assessBackup(backup, previous, { now });
// { verdict: "unverified",
// reasons: ["never restore-tested — this is an untested claim, not a working backup"] }| verdict | meaning | |---|---| | verified | restored recently, and the restored row counts matched | | unverified | never restore-tested, or the last test is too old to be evidence | | suspect | size collapsed, or the restore "succeeded" with missing rows | | failed | the job failed, or a restore test failed |
A restore of an empty dump succeeds. So a passing restore test does not clear a size collapse — suspect survives it, and row counts are compared between backup and restore when both are available.
RPO, and the two hours it hides
Measured from the data cutoff, not job completion. A two-hour dump whose RPO is measured from when it finished reports a recovery point two hours fresher than it actually has. Nothing errors; the number is simply wrong in the optimistic direction. When no cutoff is recorded, the result is returned with rpoImprecise: true and a reason saying so, rather than a confident wrong number.
Retention that counts the right thing
safeToDelete(assessments, { keepVerified: 1 });
// { deletable: [], held: [{ id: "old", why: "…nothing proven to fall back on" }] }It will not propose deleting anything if doing so leaves fewer than keepVerified verified copies — including refusing to delete unverified backups when no verified copy exists, which is the case where a date-based policy does the most damage.
What it does not do
| not included | why | |---|---| | Taking backups, or running restores | it judges the evidence your system already produces | | Talking to S3/RDS/pg | no transport, no credentials, no cloud SDK | | Deleting anything | safeToDelete returns a proposal. A tool that judges backups and also deletes them is one bug away from being the incident |
Thresholds (50% size drop, 30-day restore-test freshness, 1KB floor) are defaults and arguable. Every assessment carries reasons so the judgement can be checked rather than trusted.
01Capabilities
Does
- + Data retention controls
- + Backups
- + Reliability
Doesn’t
- No exclusions declared
02Requirements & stack
Depends on
No declared dependencies
Credentials needed
None declared
Stack
03Community
No endorsements yetNo verified confirmations yet — be the first.
Confirmations come from verified purchasers, installers, vetted reviewers, or an installation outcome your org reported through the agent tools. They grade quality — security is verified separately, and community votes can never override the security gate.
Sign in to confirm — weight comes from verified usage, not vote count.
Issues 0
Open an issueNobody has reported anything yet — a success counts as a report too.
04Trust Passport
Full passport →0/0 automated components pass. An automated score is never a security guarantee.
- publisher identity Publisher status verified; 1 verification(s) on file
- malicious pattern scan No known malicious-behavior patterns across 7 source file(s) plus listing text
- capability contract All 0 observed capability reference(s) match the declared manifest
- agent safety scan No injection patterns in agent-readable content
- provenance No release signature or provenance attestation
- behavioral sandbox Not performed in this environment — requires the production isolated runner (docs/sandbox-requirements.md). No untrusted code is ever executed on the application host.
Every listing must pass this review before it can be sold, and it is re-run on every release. Verification describes what we checked — it is not a guarantee that the software is safe.
05Versions
Full history →| Version | Channel | Released | Notes |
|---|---|---|---|
| 0.1.0 | stable | Aug 12, 2026 | Initial extraction. |