# ADR 0010 — Infisical secrets with SOPS DR fallback Status: accepted (2026-07-07) · Plan: rev 3, Phase 5 (resolves audit S9) ## Context SOPS+age is file-based: no runtime API, no machine identities, no rotation tracking, and every consumer needs the age key. ## Decision Infisical in the Docker stack; services fetch via machine identities; secrets never in env files or plain config (config hierarchy: defaults → file → env → Infisical, secrets only). Bootstrap root of trust: Infisical master key in the mac-mini Keychain, backed up offline. One age key is retained and all secrets are exported to a SOPS-encrypted fallback file until an Infisical restore drill has passed; the fallback is refreshed on rotation. ## Consequences - Chicken-and-egg is explicit: the Keychain + offline copy are the root. - SOPS retirement is gated on a passed restore drill, not on the calendar.