← EP21 Internal Docs EP21 Backup Engine
ADR · ADR-0003 · v1.1.0

Artifact Naming, SHA256 and Symlink Strategy

accepted v1.0.0 accepted 2026-02-24 Authors: david.sorf Created: 2026-02-24 Updated: 2026-04-09
artifact naming sha256 symlinks integrity
Každý dump artifact je pojmenován timestampem a run ID, doplněn SHA256 checksumem a metadata sidecar souborem. Symlinky latest.dump a meta.latest.json zajišťují rychlý přístup na poslední artefakt bez prohledávání adresáře.
Related docs:

Kontext

Je potřeba:

Zvažované alternativy pro pojmenování:

A) Prostý timestamp bez run ID — kolize při vícenásobném runu ve stejné minutě

B) <run_ts>__<run_id> prefix (zvoleno) — unikátní, seřaditelné, auditovatelné

C) Hash obsahu jako název — ztrácí se časová informace, hůř čitelné

Rozhodnutí

✓ Chosen: B — timestampovaný název s run ID prefixem, SHA256 sidecar, symlinky na latest

Naming schema:

  • Dump: <run_ts>__<run_id>.dump
  • Checksum sidecar: <run_ts>__<run_id>.sha256
  • Metadata sidecar: <run_ts>__<run_id>.meta.json

Symlinky per DB adresář:

  • latest.dump → poslední dump soubor
  • meta.latest.json → poslední metadata soubor

SHA256: hash binárního obsahu dump souboru. Slouží pro:

1. Ověření integrity přenosu

2. Detekci duplicitního obsahu (ADR-0005 — skip if same SHA)

3. První level restore validace — při stažení dumpu z restic/storage serveru je SHA256 první kontrolou že dump je kompletní a nepoškozený. Bez uloženého SHA256 nelze tento krok automatizovat. Viz TODO: Restore testing ADR.

Symlinky jsou atomicky přepsány po každém úspěšném runu — vždy ukazují na validní artefakt.

Důsledky

Pozitivní:

Negativní:

Changelog

VersionDateAuthorNote
1.1.02026-04-09david.sorf + claude-sonnet-4-6

Rozšířeno rationale SHA256 o Level 1 restore validaci (stáhnout dump, ověřit hash = první automatizovatelný restore test). Přidán TODO do důsledků: JSON run history soubory (meta/inventory/, meta/db/) nemají vlastní prune/archivační mechanismus — musí být řešeno v dalším kroku, kandidát na samostatnou ADR nebo rozšíření DS-0001 roadmap.

1.0.02026-04-09david.sorf + claude-sonnet-4-6

Migrace z doc/ADR/ADR-0003-artifact-naming-hash-symlinks.md do DAK JSON formátu. Rozšířeno o alternativy A/B/C, detail symlink atomicity a vazby na ADR-0005 a ADR-0006.