Define production topology, secrets, backup, and rollback runbook #39

Closed
opened 2026-08-19 01:59:02 +00:00 by timmy · 1 comment
Owner

Parent epic: #7

Outcome

Specify how app, API, model worker, and optional training store run and recover.

Acceptance criteria

  • Network boundaries and least-privilege secrets are documented.
  • Backup excludes transient inference images and tests restore user-owned records.
  • Rollback procedure is exercised on staging.

Dependencies

  • #20 — Write the end-to-end photo data-flow threat model
  • #15 — Containerize the llama.cpp GPU worker with pinned model receipts

Required evidence

  • Test or executable receipt attached to the issue/PR
  • Privacy/safety boundary checked where applicable
  • Clean checkout and relevant full suite pass

Delivery

Open a focused branch and PR with Closes #ISSUE. Do not include real medical images in issue comments or Git history.

Parent epic: #7 ## Outcome Specify how app, API, model worker, and optional training store run and recover. ## Acceptance criteria - [ ] Network boundaries and least-privilege secrets are documented. - [ ] Backup excludes transient inference images and tests restore user-owned records. - [ ] Rollback procedure is exercised on staging. ## Dependencies - #20 — Write the end-to-end photo data-flow threat model - #15 — Containerize the llama.cpp GPU worker with pinned model receipts ## Required evidence - Test or executable receipt attached to the issue/PR - Privacy/safety boundary checked where applicable - Clean checkout and relevant full suite pass ## Delivery Open a focused branch and PR with `Closes #ISSUE`. Do not include real medical images in issue comments or Git history.
timmy added this to the M4 — Production Readiness & Release milestone 2026-08-19 01:59:02 +00:00
timmy added the type/opspriority/P0area/privacyarea/release labels 2026-08-19 01:59:02 +00:00
Member

Backup, restore, and the runbook are on timmy/39-production-runbook-backup as PR #90 — #90

Covered: topology and network boundaries as they actually bind, the four secrets and their rotation, scripts/operator_backup.py (records only; weights, transient inference images, secrets, logs, symlinks refused by name with reasons; one SHA-256 per member; reproducible archive; verify-before-write restore that refuses traversal, links, absolute paths, unlisted members, a non-empty target, and a record-count mismatch), plus 20 new tests and an on-camera demonstration of a real backup/verify/restore over a synthetic corpus.

Not covered: acceptance criterion 3, "rollback procedure is exercised on staging". tests/staging-deploy.test.py exercises the rollback code path against a rootless fixture, but the live drill on the private staging host must be run by an operator, because a rolled-back staging host is serving release testing at the time. The runbook marks it a human gate under #53, so the PR says Refs #39 and does not claim Closes.

Backup, restore, and the runbook are on `timmy/39-production-runbook-backup` as PR #90 — https://forge.alexanderwhitestone.com/git/stackchain/timmy-talking-turd/pulls/90 Covered: topology and network boundaries as they actually bind, the four secrets and their rotation, `scripts/operator_backup.py` (records only; weights, transient inference images, secrets, logs, symlinks refused by name with reasons; one SHA-256 per member; reproducible archive; verify-before-write restore that refuses traversal, links, absolute paths, unlisted members, a non-empty target, and a record-count mismatch), plus 20 new tests and an on-camera demonstration of a real backup/verify/restore over a synthetic corpus. Not covered: acceptance criterion 3, "rollback procedure is exercised on staging". `tests/staging-deploy.test.py` exercises the rollback code path against a rootless fixture, but the live drill on the private staging host must be run by an operator, because a rolled-back staging host is serving release testing at the time. The runbook marks it a human gate under #53, so the PR says `Refs #39` and does not claim `Closes`.
timmy closed this issue 2026-10-29 12:05:44 +00:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: stackchain/timmy-talking-turd#39