Add QA pass H — authorization and abuse #2

Closed
opened 2026-08-17 22:51:04 -05:00 by null · 0 comments
Owner

docs/qa/ClaudeQAPlan.md stops at pass G. Passes A-G contain no case where a caller is not who they claim, does not own what they ask for, or asks too often. Pass B walks the happy path; nothing looks at what B cannot see.

This has already cost this portfolio once: requireCoupleContext in Closer-Couples never checked the caller was in the couple whose data was returned. Authentication was present and correct and proved nothing about ownership.

The organising sentence: authenticated is not the same as owning, and neither is the same as permitted. Login is the front door; every room inside still needs its own lock.

Pass H covers: every authenticated endpoint called logged-out; a list endpoint checked for rows the caller should not see; User A requesting User B's object by id; an admin route opened as an ordinary user; the most expensive endpoint hit repeatedly; the built bundle and localStorage inspected.

Verify: docs/qa/ClaudeQAPlan.md lists pass H with all six cases, and docs/qa/ClaudeQACoverage.md has a row for it.

docs/qa/ClaudeQAPlan.md stops at pass G. Passes A-G contain no case where a caller is not who they claim, does not own what they ask for, or asks too often. Pass B walks the happy path; nothing looks at what B cannot see. This has already cost this portfolio once: `requireCoupleContext` in Closer-Couples never checked the caller was in the couple whose data was returned. Authentication was present and correct and proved nothing about ownership. The organising sentence: **authenticated is not the same as owning, and neither is the same as permitted.** Login is the front door; every room inside still needs its own lock. Pass H covers: every authenticated endpoint called logged-out; a list endpoint checked for rows the caller should not see; User A requesting User B's object by id; an admin route opened as an ordinary user; the most expensive endpoint hit repeatedly; the built bundle and localStorage inspected. Verify: docs/qa/ClaudeQAPlan.md lists pass H with all six cases, and docs/qa/ClaudeQACoverage.md has a row for it.
null added this to the Batch 01 — Production-readiness controls milestone 2026-08-17 22:51:04 -05:00
null added the
P1
label 2026-08-17 22:51:04 -05:00
null closed this issue 2026-08-17 22:54:13 -05:00
Sign in to join this conversation.
No Label
P0
P1
P2
release-blocker
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: null/Project-Template#2
No description provided.