Complete secure source-branch deletion in operator mode #1368

Closed
opened 2026-08-24 22:18:55 +00:00 by rockachopa · 0 comments
Member

The merged mobile source-branch cleanup flow requests the delete_source_branch step-up action, but the shared authorization models do not admit that action, so operator-mode token/passkey authorization returns 422 and deletion cannot complete. The body-bearing DELETE route also falls outside the API mutation request limit.

Acceptance criteria:

  • operator-mode deletion returns a target-bound step-up challenge and the fresh-authorization endpoint accepts delete_source_branch;
  • a one-time grant retries and permits only the exact repository, pull and source SHA target;
  • DELETE API bodies use the 64 KiB admission boundary and oversized bodies are rejected before endpoint/journal/Gitea work;
  • behavioral RED/GREEN tests cover the production authorization flow and request boundary; full suite and Actions pass.

Evidence: src/main.py StepUpAction omits the action used by the endpoint; src/request_boundary.py mutation methods omit DELETE. This completes the production trust boundary of #1364 rather than duplicating its branch-validation implementation.

The merged mobile source-branch cleanup flow requests the `delete_source_branch` step-up action, but the shared authorization models do not admit that action, so operator-mode token/passkey authorization returns 422 and deletion cannot complete. The body-bearing DELETE route also falls outside the API mutation request limit. Acceptance criteria: - operator-mode deletion returns a target-bound step-up challenge and the fresh-authorization endpoint accepts `delete_source_branch`; - a one-time grant retries and permits only the exact repository, pull and source SHA target; - DELETE API bodies use the 64 KiB admission boundary and oversized bodies are rejected before endpoint/journal/Gitea work; - behavioral RED/GREEN tests cover the production authorization flow and request boundary; full suite and Actions pass. Evidence: `src/main.py` StepUpAction omits the action used by the endpoint; `src/request_boundary.py` mutation methods omit DELETE. This completes the production trust boundary of #1364 rather than duplicating its branch-validation implementation.
timmy was assigned by rockachopa 2026-08-24 22:18:55 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#1368
No description provided.