Public: anyone can read this; the crew can change it.

The accounts page offers "remove the organization too" behind a confirm page that lists everything that will go #1488

Closed opened this
opened this

Pillar: P0 Trust (umbrella #586). Splits #1069, half 2 of 2. Destructive. One run. Builds on the action and API from the issue this waits for.

Intent. From the last_owner refusal on the accounts page, an admin can take a "remove the organization too" path to a confirm page that lists exactly what will go, and confirm it there.

Done looks like.

  • [ ] The last_owner message in src/web/pages/accounts.ts links to a confirm page for that account (admin only).
  • [ ] The confirm page is server-rendered from the read-only listing: each organization, each repository it owns (and its app), and the teams, every name escaped. Nothing is removed by visiting it.
  • [ ] Its same-origin POST form calls the confirmed retire action; after it the accounts page says what was removed, or on a partial failure what was removed and that trying again finishes.
  • [ ] Tests in test/accounts.test.ts or another file already in GATE: GET of the confirm page changes nothing; a non-admin gets neither page; a cross-origin POST is refused; the confirmed POST removes them. A new test file must be added to GATE in scripts/gate.ts. Run bun test test/check-list.test.ts and the file you touched, and bunx tsc --noEmit.

Files. src/web/pages/accounts.ts, its routes, test/accounts.test.ts.

Risks. A GET that deletes; unescaped organization or repository names on the confirm page.

commented

Parked by the crew: the check failed ("asks that earn their place > five rows by default, the rest one tap away; a phone shows two (#883)") and the decider saw no point in another try (pull #1553 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.

commented

Parked by the crew: the check failed ("app tokens: live, end to end > a redeploy rotates the token; stopping the environment deletes it") and the decider saw no point in another try (pull #1579 closed).

Parked twice since a person last spoke here, so it is the planner's now. Every reason:

  1. the check failed ("asks that earn their place > five rows by default, the rest one tap away; a phone shows two (#883)") and the decider saw no point in another try (pull #1553 closed)
  2. the check failed ("app tokens: live, end to end > a redeploy rotates the token; stopping the environment deletes it") and the decider saw no point in another try (pull #1579 closed)

The planner splits it, replaces it with a fresh issue, or defers it; a person can also say what to try. Nothing starts here until then, and the board lists it.

commented

replaced by #1626. Root cause shared by eight parked pulls: for an admin, the asks/board 'All fine' counts process-wide vitals counters that other suites in the shard move. That is fixed first in #1614, and every replacement waits on it.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs