Add QA pass H — authorization and abuse #2
Labels
No Label
P0
P1
P2
release-blocker
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: null/Project-Template#2
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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:
requireCoupleContextin 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.