R-543: off-site ON by default is not off-site WORKING on day one
gates / gates (push) Successful in 21s

Measured on the fresh box: tier 3 sits at „Kulcsletétre vár" — the off-site copy is
paused until the household performs the key-escrow ceremony, and nothing asks them
to. POST /backup/offbox/run returns 302 and produces no snapshot; the controller log
shows only offsite-credential-retry.

That matters more after today, not less: the new default exists because a one-drive
box otherwise keeps the household's files in no tier at all, and the tier-1 row now
prints „Az alkalmazás fájljait a távoli másolat … védi". On day one that sentence
promises a copy that does not exist yet.

The good half, proven on the same page: tier 1 reads „DB + Konfig" with the new
sentence, and „DB + Konfig + Adatok" appears zero times — R-537 holds here too.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-16 19:21:28 +02:00
parent 0cfbfe709c
commit 63e2de9b9e
3 changed files with 65 additions and 0 deletions
@@ -344,3 +344,12 @@ urllib.error.HTTPError: HTTP Error 403: Forbidden
## the stack still pulling images. On 2026-09-16 morning the same moment produced
## „Alkalmazás telepítve: Mealie" — an install that was then killed 5 s later and never happened.
## The other half of the pair (app_deployed at COMPLETION) is checked when the stack reaches running.
## 2026-09-16T17:17:31Z the completion half of R-536:
2026/09/16 19:15:34 [INFO] Event from tester-1: app_deploy_started (info) — Alkalmazás telepítése elindult: Nextcloud
2026/09/16 19:16:23 [INFO] Event from tester-1: app_deployed (info) — Alkalmazás telepítve: Nextcloud
## THE PAIR, COMPLETE (R-536 proven live on a fresh box, both halves):
## 19:15:34 CEST app_deploy_started (info) — „Alkalmazás telepítése elindult: Nextcloud" <- the 202
## 19:16:23 CEST app_deployed (info) — „Alkalmazás telepítve: Nextcloud" <- 49 s later,
## when the stack was up
## Forty-nine seconds separate the acceptance from the installation. Before today those were the
## same instant, and an install that never finished kept the „telepítve" record for ever.
@@ -0,0 +1,55 @@
## 2026-09-16T17:17:39Z five photos into Nextcloud, through the app's own interface
app front door: status.php -> 200
MKCOL Fotok -> 201
PUT nyaralas-1.jpg (200000 B) -> 201
PUT nyaralas-2.jpg (400000 B) -> 201
PUT nyaralas-3.jpg (600000 B) -> 201
PUT nyaralas-4.jpg (800000 B) -> 201
PUT nyaralas-5.jpg (1000000 B) -> 201
total uploaded: 3000000 B in 5 files
listing:
nyaralas-1.jpg
nyaralas-2.jpg
nyaralas-3.jpg
nyaralas-4.jpg
nyaralas-5.jpg
## 2026-09-16T17:18:05Z pointing Nextcloud at the off-site tier
POST /backup/offbox/toggle app=nextcloud enabled=1 -> http=302
page now says: tkezés ↗ Biztonsági mentés — Távoli mentés enkicsifelhom.hu Aktív — nincs kijelölt alkalmazás Távoli mentés (3. mentés) — titkosított, offsite Az alkalmazás-mentések titkosított másolata egy távoli tárolóra — saját NAS vagy Felhom offsite tárhely — restic + SFTP kapcsolaton. A tároló csak titkosított adatot lát. Ez a 3-2-1 szabály „1 off-site" lába — függetl
## 2026-09-16T17:18:31Z running the tier-1 leg (the local app backup) on the fresh box
POST /api/backup/run -> {"ok":true,"message":"Mentés elindítva"}
http=200
finished: {"ok":true,"data":{"db_dump":{"count":1,"duration":"22.245700003s","last_run":"2026-09-16T17:18:54.254096666Z","success":true},"enabled":true,"running":false}}
## 2026-09-16T17:19:20Z off-site toggle retried with the value the FORM uses (enabled=true, not 1)
POST toggle enabled=true -> http=302
app=nextcloud next-value=false (a toggle shows the value it would SET)
header: Biztonsági mentés — Távoli mentés — Felhom.eu Indítópult Vezérlőpult Alkalmazások Tárhely Meghajtók Hálózati tárhely Biztonsági mentés Áttekintés Táv
## THE TIER-1 LEG RAN on the fresh box, with the five photos already in place:
## POST /api/backup/run -> 200 {"ok":true,"message":"Mentés elindítva"}
## finished: db_dump count=1, duration 22.2 s, success=true
## (One database, because Nextcloud is the only app on this box. The unit capture rides the same run.)
## MY SHORTCUT, caught by the page rather than by luck: the first off-site toggle POST returned 302 —
## the SHAPE of success — and changed nothing, because I sent `enabled=1` while the form's own field
## carries `enabled=true`. Reading the per-app row instead of the redirect is what found it.
## 2026-09-16T17:19:41Z running the TIER-3 (off-site) leg — this is what carries the photos off the box
POST /backup/offbox/run -> http=302
status now: {"ok":true,"data":{"db_dump":{"count":1,"duration":"22.245700003s","last_run":"2026-09-16T17:18:54.254096666Z","success":true},"enabled":true,"running":false}}
## THE OFF-SITE TOGGLE IS ON for Nextcloud: the row's form now offers `enabled=false`, which is how a
## toggle says „currently on". Read from the row, not from the redirect — the first attempt returned
## 302 and changed nothing.
## So on this box, an hour after the default shipped: tier 3 provisioned by the hub automatically,
## and the household's one app pointed at it.
## 2026-09-16T17:2xZ THE BACKUP PAGE ON THE FRESH BOX — the good half and the gap, both measured:
## Nextcloud · Adatlemez · 62.2 MB
## „1. mentés Auto helyi Utolsó: 1 perce DB + Konfig"
## „Az alkalmazás fájljait a távoli másolat (és a második meghajtó) védi — ez a helyi mentés a
## beállításokat és az adatbázist tartalmazza."
## „2. mentés … Nincs 2. (off-drive) másolat"
## „3. mentés Kulcsletétre vár · A távoli mentés a titkosítási kulcs letétbe helyezéséig szünetel"
## „DB + Konfig + Adatok" appears ZERO times on this page — R-537 holds here too: the tier-1 row
## does not claim to hold the app's files.
## AND THE GAP (R-543): off-site is ON by default and PAUSED, waiting for the escrow ceremony that
## nothing asks the household to perform. `POST /backup/offbox/run` -> 302 and produced no snapshot;
## the controller log shows only `offsite-credential-retry`, no restic activity. So on day one the
## sentence above promises protection by a copy that does not exist yet.