Review: Doc: Auth architecture on project page
Verdict: NEEDS_REFINEMENT
Second review pass (2026-03-27). Issue body unchanged since first review. Three of four original findings remain open.
Template Completeness
- [x] Type -- Feature
- [x] Lineage -- plan-wkq Phase 11
- [x] Repo -- forgejo_admin/basketball-api (docs only)
- [x] User Story -- platform operator wants auth architecture documented
- [x] Context -- explains hours lost rebuilding what Keycloak provides
- [x] File Targets -- pal-e-docs note project-westside-basketball
- [x] Acceptance Criteria -- 4 items
- [x] Test Expectations -- get_section check
- [x] Constraints -- pal-e-docs update only
- [x] Checklist -- present
- [x] Related -- references #132 and #144
Traceability
- [ ] story:WS-S1 label -- MISMATCH. WS-S1 is "As superadmin, I want to deploy platform changes via IaC so that infrastructure is reproducible and auditable." This ticket documents auth architecture, not IaC. Better:
story:WS-S3(manage Keycloak realms) orstory:WS-S12(manage user accounts/reset passwords), or remove story label (foundational doc work). - [x] arch:auth label -- present on board item. Maps to existing
arch-auth-westside-basketballnote. - [x] Forgejo issue -- basketball-api #145, open
File Targets
- [ ]
project-westside-basketball"add Auth Architecture section" -- WRONG TARGET. The project page Architecture section (block #12304) already links to a dedicatedarch-auth-westside-basketballnote with 8 subsections (Identity Provider, Roles, Two Auth Patterns, Keycloak Clients, Account Creation, API Auth, Token Flow, Related). The ticket should target updatingarch-auth-westside-basketballwith new subsections for: (a) auth management paths, (b) the Gmail OAuth decision. The project page needs no changes.
Repo Placement
OK. Issue filed on basketball-api but body states "docs only -- pal-e-docs note update." Auth is a basketball-api concern. Acceptable.
Dependencies
- #132 (Password reset via Gmail OAuth) -- closed. Source for Gmail OAuth decision to document.
- #144 (Marcus admin access + account console links) -- closed. Source for account/admin console paths.
- #267 (Marcus admin + player self-service) -- done on board. Related auth management work.
- No blocking items. No items blocked by this ticket.
Acceptance Criteria
- "Auth Architecture section added to project-westside-basketball" -- MISLEADING. Section already exists as linked arch note. Rewrite to: "Auth management paths subsection added to
arch-auth-westside-basketball" - "Three auth paths documented (self-service reset, account console, admin console)" -- VALID. These are genuinely missing from the existing arch note. Testable.
- "Key URLs and roles documented" -- PARTIALLY DONE. Roles table and Keycloak URL exist. Missing: account console URL, admin console URL. Sharpen to list specific missing URLs.
- "Key decision recorded: all email = Gmail OAuth, custom forgot-password bypasses Keycloak SMTP" -- VALID. Not yet documented in arch note. Testable.
- Test expectation
get_section(slug="project-westside-basketball", anchor_id="auth-architecture")-- WRONG SLUG. Should targetarch-auth-westside-basketballwith anchor for the new subsection (e.g.,auth-management-paths).
Blast Radius
None. Auth architecture is westside-basketball-specific. No other projects share this Keycloak realm.
Decomposition
1 note to update, 4 AC, estimated <5 minutes. No decomposition needed.
Recommendation
Three issues remain from the first review (arch:auth label was already present, correcting prior review's item 3):
[BODY]Fix file target: Change from "add Auth Architecture section toproject-westside-basketball" to "add Auth Management Paths and Key Decisions subsections to existingarch-auth-westside-basketballnote." The project page already links to this arch note.[LABEL]Fix story label: Changestory:WS-S1tostory:WS-S3(Keycloak realm management) orstory:WS-S12(user account management) on the board item.[BODY]Fix test expectation: Changeget_section(slug="project-westside-basketball", anchor_id="auth-architecture")toget_section(slug="arch-auth-westside-basketball", anchor_id="auth-management-paths").