Skip to content

Re-home the Wedding backup denial proof and remove cutover tooling that needs the retired shared store #4480

Closed as duplicate

Description

@devantler

🤖 Generated by the Agentic Engineer

Evidence

#3253 retires the Wedding tenant's access to the shared backup credential: the wedding-db ObjectStore and the wedding-db-backup-r2 Secret leave the wedding-app namespace. Three operator tools were written for the cutover and assume both still exist there:

All three now refuse at their first precondition. That is safe, but CI still runs their fixture suites on every pull request, and the runbook names a proof nobody can run.

Expected outcome

A dedicated-token rotation can again be followed by an observed denial, without the tenant namespace ever holding the shared credential, and the repository no longer carries one-shot tooling that cannot run.

Acceptance criteria

  • The denial proof runs again with the shared credential kept out of the wedding-app namespace (for example from a platform-owned namespace that already holds it, using a run-owned copy of the lower-privilege dedicated credential), keeping its positive controls and its no-trace check.
  • A protected main run of the re-homed proof reports the denial.
  • The catalogue mirror and the incident recovery tooling are removed, with their CI steps, or a recorded reason keeps them.
  • docs/dr/runbook.md, docs/dr/velero-cnpg.md and docs/dr/restore-drill.md describe only tooling that can run.

Blocker: none — follows #3253's retirement change.

Activity

  1. moved this to 📥 Backlog in 🌊 Project Boardon Oct 4, 2026
  2. devantler commented on Oct 5, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Closing as a duplicate of #4482. The canonical issue includes every acceptance criterion here, plus the tenant-owned database reference. Its repair is now claimed and in progress. The protected-main denial receipt remains required; duplicate closure does not mark that outcome delivered.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions