Skip to content

Selected-artifact checksum repair — 2026-10-24

PR #469 merged the first recovery contract repair. The next bounded slice, PR #470, addresses INC-003: checksum verification must cover the recovery copy selected for import, not its historical source path. Source implementation and synthetic validation do not establish deployment or application recovery acceptance.

What changed

OneUptime, the incident adapter and the remediation broker now use a shared checksum verifier before their restore drills make any Docker call, including inspection or cleanup. It hashes the explicitly selected dump and requires the adjacent checksum sidecar. The filename recorded inside the sidecar is checked for identity but is never followed to choose another file.

New backup runs produce basename-relative sidecars. Valid old absolute-path records remain usable after relocation without changing retained backups. Missing or malformed records, a different filename and mismatched bytes fail closed; adapter/broker drills no longer silently skip missing checksums.

The operating guides specify the supported record format, full-checkout/Python requirements and how to recover a trusted missing sidecar. Generating a fresh checksum from untrusted restored bytes is not a valid way to pass the gate. Checksums establish byte agreement, not authenticity, freshness, database consistency or application recoverability.

Validation and phase status

Synthetic tests keep the original dump intact while corrupting only the relocated copy and require refusal before any Docker invocation. Other tests cover valid legacy/new records, missing/malformed/multiple/wrong-filename records, regular-file constraints, streamed hashing and all three writers. Workflow tests use fake Docker and stop a valid drill at its first Docker operation; they are not successful database restores.

Area Status Remaining gate
PR #469 Merged; REC-001 remains implemented Observe effective units and new local/offsite snapshots, then validate application recovery and rollback
INC-003 checksum slice Source changes and synthetic regression tests in PR #470 Review exact-head CI and implementation evidence before merge
Live verification Not established Read-only SSH stopped at strict host-key verification; establish trusted host identity before retrying
Application recovery Not performed Approved isolated database restore, integrity and rollback checks
Other audit concerns Separate backlog No unrelated finding or workstream is closed by this repair

The failed SSH attempt ran no remote commands. Host-key checking was not disabled and no unverified key was enrolled. Agents can continue source repair and record results; the owner/operator must supply or establish a trusted access path and approve deployment and recovery exercises. The immutable audit and prior session records remain intact, with current evidence linked from the private registry in the repository README.

flowchart TD
    Merge[PR 469 merged] --> Scope[INC-003 source repair]
    Scope --> Tests[Synthetic checksum and workflow regressions]
    Tests --> Review[Review PR 470 and exact-head CI]
    Review --> Deploy[Approved deployment with trusted host access]
    Deploy --> Drill[Isolated application integrity and rollback checks]
    Drill --> Accept[Record owner acceptance separately]

Operating guidance

No live backup, production container, database restore, offsite repository, credential decryption, backup cleanup or merge was performed in this slice. Existing snapshot-set rules, image/secret prerequisites and other restore limitations remain independent acceptance requirements.