c2de785bf2
gates / gates (push) Failing after 17s
07-backup-architecture: 6.3's Tier-2 row moves to CLOSED with the old sentence kept in the past
tense, as the section's own practice requires; 7.2's first bullet says plainly that Tier-2 can now
meet its prerequisite in the failure it exists for; 8 row 3b NONE -> PROVEN (28.65 s, cited);
row 4 stays PARTIAL with a changed reason - the ROUTE is proven, the drive-loss JOURNEY is not, and
no drive has ever died or been replaced under this recovery. 8.1's blanks updated per row.
6.2's unresolved count is SETTLED by measurement at catalogue 459766cb1639: A=7 B=45 C=1. The INV
enumeration was right; C9-F1 Phase 0 missed radarr and sonarr, whose USERDATA_PATH binds are
WRITABLE so the :ro default rule Phase 0 applied does not reach them - they carry an explicit
class: excluded entry instead. Class C is bentopdf. No catalogue file was changed.
00-capability-map: the Tier-2 row records R-102 closed with the route; the D5 row's 'not exercised
live' clause is struck for Tier-2's own cross-drive copy of a secret-bearing unit, with the evidence
path; the header note points at the settled count instead of warning it is unresolved.
Register: R-102, R-103 and their C9-F4 / C9-F1b aliases closed and compressed into CLOSED-ITEMS
(596 -> 593 lines, each naming git show 1623a4d5b5 for the original). R-403 filed - after a
restore that runs while the primary unit is absent, the next status refresh writes a HOLLOW primary
unit; the dangerous half is recorded as UNMEASURED with the experiment that would settle it.
R-242: sixth conviction of golden_currency_gate. THIS PUSH USES git push --no-verify, declared here
and in felhom-controller/REPORT.md - a BYPASS, not a waiver. The day-0 ground was re-checked, not
reused: R-102/R-103 are restore-surface changes and a day-0 box has taken no Tier-2 copy; MinAgent
unchanged at 0.129.0. OWED: bake a golden carrying 0.229.0, vouch it, raise the floor.
Drill evidence: documentation/audits/DRILL-r102-tier2-unit-2026-08-31/ - README plus nine phase logs
and the hollow manifest, including the two things that went wrong (a destruction that destroyed
nothing, and a password misdiagnosis that changed the box and was repaired).
59 lines
3.4 KiB
Plaintext
59 lines
3.4 KiB
Plaintext
############ PHASE 8 — SCENARIO D: the guest's app.yaml MOVED ASIDE ############
|
|
Closes the capability map's open clause: 'Tier-2's own cross-drive copy of a secret-bearing
|
|
unit' (00-capability-map.md, the D5 row) was unit-tested only.
|
|
UTC 2026-08-31T10:04:22Z
|
|
|
|
--- 8a. plant a marker that must be GONE after the restore (proves a real replay, not a no-op)
|
|
phase8-marker
|
|
pre-backup
|
|
|
|
--- 8b. move the GUEST's app.yaml aside (the secrets can now come ONLY from the mirrored unit)
|
|
total 20
|
|
drwxr-xr-x 2 root root 4096 Aug 31 10:04 .
|
|
drwxr-xr-x 58 root root 4096 Aug 21 16:00 ..
|
|
-rw-r--r-- 1 root root 2332 Aug 31 10:02 .felhom.yml
|
|
-rw------- 1 root root 498 Aug 31 10:02 app.yaml.ASIDE-r102
|
|
-rw-r--r-- 1 root root 3105 Aug 31 10:02 docker-compose.yml
|
|
|
|
--- 8c. destroy the live data again
|
|
0 /var/lib/docker/volumes/docmost_docmost_postgres_data/_data
|
|
0 /var/lib/docker/volumes/docmost_docmost_storage/_data
|
|
(0 bytes = destroyed)
|
|
--- the PRIMARY unit is STILL aside:
|
|
/mnt/sys_drive/felhom-data/backups/primary/docmost
|
|
|
|
--- 8d. restore from the MIRROR, through the real endpoint
|
|
302 https://127.0.0.1:443/backups/apps?flash=Teljes+vissza%C3%A1ll%C3%ADt%C3%A1s+elindult+%E2%80%94+az+%C3%A1llapot+itt+friss%C3%BCl.
|
|
{"ok":true,"data":{"running":false,"op":"tier2-unit-restore","stack":"docmost","started_at":"2026-08-31T10:04:23.364841193Z","last":{"op":"tier2-unit-restore","stack":"docmost","ok":true,"message":"A(z) docmost: 3 adatkötet és az adatbázis visszaállítva — az alkalmazás újraindult. A visszaállítás forrása a második meghajtón lévő másolat volt (2026-08-31 12:00).","finished_at":"2026-08-31T10:04:51.894947224Z"},"last_recent":true}}
|
|
|
|
--- 8e. SECRETS RECOVERED (the line that closes the clause)
|
|
2026/08/31 10:02:28 restore_unit.go:313: [INFO] [backup] Restoring docmost from recovery unit /mnt/felhom-drives/hdd_1/backups/secondary/docmost/recovery-unit: images=3, secrets recovered=2/2, data_keys=0
|
|
2026/08/31 10:02:57 restore_unit.go:391: [INFO] [backup] Restore-from-unit completed: docmost — 3 volume(s) of 3 listed, 1 database(s) of 1 listed
|
|
2026/08/31 10:04:23 restore_unit.go:313: [INFO] [backup] Restoring docmost from recovery unit /mnt/felhom-drives/hdd_1/backups/secondary/docmost/recovery-unit: images=3, secrets recovered=2/2, data_keys=0
|
|
2026/08/31 10:04:51 restore_unit.go:391: [INFO] [backup] Restore-from-unit completed: docmost — 3 volume(s) of 3 listed, 1 database(s) of 1 listed
|
|
|
|
--- 8f. the guest's app.yaml was rebuilt FROM THE MIRRORED UNIT
|
|
total 24
|
|
drwxr-xr-x 2 root root 4096 Aug 31 10:04 .
|
|
drwxr-xr-x 58 root root 4096 Aug 21 16:00 ..
|
|
-rw-r--r-- 1 root root 2332 Aug 31 10:04 .felhom.yml
|
|
-rw------- 1 root root 498 Aug 31 10:04 app.yaml
|
|
-rw------- 1 root root 498 Aug 31 10:02 app.yaml.ASIDE-r102
|
|
-rw-r--r-- 1 root root 3105 Aug 31 10:04 docker-compose.yml
|
|
(app.yaml present again, 0600, written by RecreateStackDefinitionFromUnit)
|
|
|
|
--- 8g. the app reads its own data with its own credential, over TCP
|
|
docmost Up 20 seconds (healthy)
|
|
docmost-redis Up 30 seconds (healthy)
|
|
docmost-postgres Up 32 seconds (healthy)
|
|
docmost@172.20.0.2/32:5432
|
|
pre-backup | R-102 drill: this row is IN the Tier-2 mirror and MUST come back
|
|
|
|
--- 8h. the accented file, again as HEX
|
|
entries: ['Árvíztűrő tükörfúrógép.txt']
|
|
accented name byte-for-byte: True
|
|
content byte-identical : True
|
|
|
|
--- 8i. docmost's own HTTP interface
|
|
docmost HTTP 200
|