R-1299 — the one-time clean-up window gets a button (hub 0.174.0 → 0.174.1), and sec rm (cc-secrets 0.3.0), 2026-10-27 evening
The button
- Where: customer page → „Backup & DR" tab → card „Off-site clean-up window" (0.174.0 had it in the Overview's Backup card; the operator looked under Backup & DR first, so 0.174.1 moved it). Shown only when the box reports off-site enabled.
- Shows: the weekly switch, the normal cap (half the snapshots, at least 5), a waiting one-time grant and its limit, the last window (id, time, result, count, cap).
- Form: optional limit → confirm step (a GET; names the customer and the limit; stores nothing) → POST to the SAME
route as the script address,
/offsite/window-grant/<customer>, rule unchanged (wr(grpOffsite)), the page's CSRF. A waiting grant shows „Cancel the waiting window". - Bound: a raised limit above the store's measured snapshot count is refused (a window cannot remove more than exist); the 500 ceiling stays. D55's 260-for-373 stays possible.
- Record: every grant and cancel writes an operator-only info event
offsite_window_grant(who, customer, limit) and a log line.
Live check (operator's clicks; nothing removed)
- 0.174.0, 20:07 CET: the operator granted ONE window on tester-1 with the normal cap through the confirm step (screenshots
in the session). Hub DB (with WAL):
offsite_window_grant:tester-1 = 1; log „ONE clean-up window granted for tester-1 with the normal cap, by operator session". No event row — the defect below. - 0.174.1, 20:42 CET: the operator pressed „Cancel the waiting window" under Backup & DR. Hub DB: the grant is empty; ONE
stored row
offsite_window_grantinfo „the waiting one-time window was cancelled (by operator session)",{"by":"operator session","cancelled":true}, source hub; the log line matches.
Defect found by step 1 and fixed in 0.174.1: the event went only to the dispatcher, which writes no row (it routes
mail; info routes nowhere). The test had asserted the dispatcher CALL; it now reads the STORED rows — red with 0.174.0's
shape (redproof-0174.1.txt).
Deploys
0.174.0: sha256:4f9ee04a… from d85198b8 (CI 2433), live 19:25 CET. 0.174.1: sha256:bb43f88a… from de57c090 (CI
2437), live 20:26 CET. Both built from a clean clone (the shared clone held another session's uncommitted installer
edit), hub-only ArgoCD sync, Synced/Healthy, 0 restarts. Start-up 36 s / 31 s against a liveness kill at ~65 s → R-1326.
sec rm and the tidy-up
cc-secrets 0.3.0 (dc82cf9): one name per call, unknown refused, rm NAME commit + push, undo by git revert. 7 tests,
2 red-proofs (28/28 in all). The operator approved removing 46 dead names; sec-rm.txt holds the run (names only): 92 →
46 names, every removal committed and pushed, sec doctor all OK after.