Files
felhom-controller/REPORT.md
T
2026-10-16 21:36:06 +02:00

3.0 KiB

REPORT — v0.323.0: Debian 13, restic 0.18.1 pinned outside the OS and re-proven, felhom-samba 1.2.0 (2026-10-16)

Brief: „the controller on Debian 13 with a pinned restic, re-proven; the Samba image rebuilt". Full report, in plain words: felhom.eu REPORT-debian13-restic-2026-10-16.md. Evidence: felhom.eu documentation/audits/debian13-restic-2026-10-16/.

1. What changed

  • controller/Dockerfile: a restic stage fetches the official restic 0.18.1 binary and checks the signed SHA256SUMS (vendored key, third_party/restic/), the published sum and the per-arch sum pinned in the file. Runtime debian:13.7-slim (digest); Docker repo codename from /etc/os-release. Removed packages the binary never runs: postgres and mysql clients, sqlite3, fdisk, e2fsprogs, parted, sshpass.
  • infra-images/samba/Dockerfile: Alpine 3.24.2 (digest). SambaImage → felhom-samba:1.2.0 (pushed once). scripts/build-samba-image.sh refuses a reused tag, an unanswerable registry and a dirty/unpushed tree.
  • Comments in internal/backup/offbox_{capture,progress,proof,window}.go corrected to what was measured on both versions.

2. Tests (each red-proved)

  • TestR1105_ResticIsPinnedOutsideTheOS (cmd/controller): fails on the old Dockerfile and on four single mutations.
  • TestR1105_EachResticFailureKeepsItsClass, _InitRaceIsStillSuccess, _TheJSONTheCodeReadsStillParses, _TheForgetPlanOnlyEverKeepsMore (internal/backup): REAL outputs of 0.14.0 and 0.18.1 in testdata/restic/, through the code's own parsers and classifiers. Six mutations, each convicted.
  • scripts/test_samba_build_push_once.sh: 6 cases; 4 fail on the old script.
  • Full suite green; controller_gates.py --fast green.

3. Live

demo-hp 9201 on rc.1 (code identical to the release): both restore directions byte-identical on the real store; the off-site run (dumps + push, live progress) ok; the drill's row and file came back from the off-site copy; Samba 1.1.0 → 1.2.0 with the same household password, every discovery daemon answering. Released by per-box floors to Tester 1, demo-hp, demo-felhom (19:25 UTC), box walk green. The global floor waits for each box's first night on 0.323.0.

4. Observations

  1. The forget plan of restic 0.17+ keeps each group's oldest snapshot while monthly slots are unused. NOT-A-FINDING: it only ever keeps more; pinned by TestR1105_TheForgetPlanOnlyEverKeepsMore, written into felhom.eu 07 §6.8.
  2. A reinstalled database app restored from the off-site copy is unusable (old volume, new password). FILED: R-1106
  3. The official restic 0.18.1 binary adds 50 fixable scanner findings. FILED: R-1107
  4. A share added before the first household password is not exported. FILED: R-1108
  5. A plain restic restore writes a lock on both versions; a comment said it did not. NOT-A-FINDING: comment corrected; the nightly proof uses --no-lock.
  6. build.sh --push also pushes :latest for an rc tag. NOT-A-FINDING: nothing pulls :latest; boxes run a named tag and the update button reads X.Y.Z tags.