journal/deferred(2): Q3.5 immich PARTIAL — restore P4 blocked by upstream recipe (volume backup, no pg_dump hook); recipe-PR unit filed (drive/meet pg_backup.sh pattern)

This commit is contained in:
2026-05-29 15:53:22 +01:00
parent 250bed4768
commit 9272c20727
2 changed files with 47 additions and 0 deletions

View File

@ -231,3 +231,22 @@ before the build is called done) — but does **not** force closure.
test_create_doc.py (closed in the entry above). Upload/conversion exercises a distinct subsystem
(y-provider + docspec) and adds two binary fixtures + a multi-service-readiness wait.
Defensible defer; lift when the operator wants the deeper coverage OR Phase-4 reviews.
### 2026-05-29 — immich recipe needs a pg_dump backup hook for reliable DB restore (P4)
- [ ] **What:** immich's upstream recipe backs up the LIVE postgres data VOLUME via restic
(`backupbot.backup=true` on `database`, no pg_dump hook), so a DB row does NOT survive
`abra app restore` (diagnosed: seed→backup→drop→restore→row absent; app healthy). Real
backup data-integrity (P4) requires a consistent SQL dump. **Fix:** add the drive/meet pattern
to the immich recipe — `pg_backup.sh` swarm-config + labels `backupbot.backup.pre-hook:
"/pg_backup.sh backup"` + `backupbot.backup.volumes.postgres.path: "backup.sql"` +
`backupbot.restore.post-hook: "/pg_backup.sh restore"` (adapt POSTGRES_USER=postgres,
POSTGRES_DB=immich). Via the recipe-create-pr flow (mirror immich on recipe-maintainers → branch
→ cc-ci full-suite GREEN on the PR incl. restore tier → Adversary cold-verify → operator merge),
exactly like the parked Q3.2b lasuite-drive recipe-robustness PR.
- **Filed by:** Builder, phase 2 (Q3.5 immich enrollment).
- **Reason for deferral:** UPSTREAM recipe defect; the proper fix is a recipe PR (we maintain it),
which is operator-merge-gated — not a cc-ci/test change. immich's other tiers (install/upgrade/
backup-artifact/restore-healthy/custom incl. §4.3 asset upload→readback→thumbnail) are GREEN.
- **Re-entry trigger:** pick up as a recipe-PR unit (parallel to Q3.2b); OR Adversary §7.1 sign-off on
the documented maximal subset if a recipe PR is out of scope for Phase-2 DONE.
- **Linked IDEA:** —