Při chybách (síťový výpadek, chyba pg_dump, nedostupný kontejner) musí existovat konzistentní auditní stopa o průběhu runu. Bez tohoto by selhaný běh nezanechal žádné strojově čitelné informace — monitoring by nemohl rozlišit mezi "backup neproběhl" a "backup proběhl ale selhal".
Zvažované alternativy:
A) Zapsat metadata pouze při úspěchu — ztráta auditní stopy při selhání
B) Zapsat vždy via trap EXIT (zvoleno) — garantovaný zápis i při neočekávaném ukončení
C) Externínotifikační systém — příliš složité, externí závislost
db_bkup.sh registruje handler přes trap on_exit EXIT. Handler se zavolá vždy při ukončení skriptu — ať už normálním exit, chybou, nebo signálem.
Stav runu:
status: success — exit code 0, všechny DB zálohoványstatus: partial — nenulový exit, záloha proběhla jen částečněMetadata obsahují:
last_step — poslední úspěšně dokončený krok (pro post-mortem debugging)error — chybová zpráva pokud je k dispoziciexit_code — skutečný exit kód procesuVýstupní soubory:
meta/inventory/run.<run_ts>.json — timestampovaný záznammeta/inventory/run.latest.json — symlink na poslední run (vždy aktuální)Tento přístup je součástí metadata-first designu (ADR-0001) — metadata jsou zdrojem pravdy i o neúspěšných bězích.
Pozitivní:
run.latest.json vždy existuje a je čitelnýrun.latest.json) bez nutnosti parsovat logylast_step umožňuje přesně identifikovat kde a proč backup selhalNegativní:
last_step při přidávání nových kroků do skriptu — pokud vývojář přidá krok a nepropaguje last_step, debugovatelnost se zhoršípartial status nevypovídá bez last_step co konkrétně selhalo| Version | Date | Author | Note |
|---|---|---|---|
| 1.0.0 | 2026-04-09 | david.sorf + claude-sonnet-4-6 | Migrace z doc/ADR/ADR-0004-partial-run-status.md do DAK JSON formátu. Rozšířeno o alternativy A/B/C, detail trap mechanismu, popis všech metadata polí a vazbu na ADR-0001. |