docs(website): record PR 5 — public, player and auth capability split #60
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/router-split-5"
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?
What & why
Documentation for RunicGateway/website#106 (PR 5 of § Phase 2). The domain split is complete.
website/API_V2_PLAN.mdwebsite/BACKEND_DESIGN.mdauth.routes.js/public.routes.jsplaceholders are replaced with the full per-capability tree forauth/,public/andplayer/, matching theadmin/block already there. The in-progress banner becomes a completion note./authand/publicgroup headings now point at theirindex.jsfiles, each with a short note on why the group carries no gate. The/playerprose names the three routers behind the sharednoindex, requireAuthgate.Findings recorded here rather than left in the code alone:
public/andauth/deliberately have no group gate. The obvious "hardening" edit to either one is an outage — logged-out SPA, Discord bot and the AndroidShardStreamClientall read/public/*anonymously, and/authis where a caller becomes authenticated.GET /auth/medepends onsession.router.jsbeing mounted last, becauseuse('/me', meRouter)matches the bare/meand is what supplies itsnoindexheader. Neither manifest can see that.public/site,auth/session) on the PR 4dashboard.router.jsprecedent, safe only because neither declares router-level middleware.loginGuardsis the PR's shared module, the counterpart to PR 3'simageUpload.js.postsnotnews,session.router.jsadded) and whypublic.controller.jswas not split.api-route-inventory.jsonneeded no change — it was already byte-identical to the regeneratedserver/routes.manifest.json(200 public + 2 internal).PROJECT_TREE.mdis left alone: since website#98 it is auto-generated by thesync-project-treeworkflow.How it was tested
Markdown-only. Verified against the merged website branch: every router filename, route count and prefix in the new §2 tree matches the built Express stack, and the 24 / 20 / 10 route counts match the manifest.
Checklist
AI-assisted contributions (required)
Claude Code (Opus 5). I have reviewed and understandevery change, and take responsibility for it. AI-authored commits are
marked with a
Co-Authored-By/Assisted-Bytrailer.License
(GNU GPL v3.0 or later), and I have the right to contribute it.
The domain split is complete. API_V2_PLAN.md gains a "PR 5 — as landed" section (route table, the four zero-diff gates, and the findings worth carrying forward) and its status line and sequencing list are updated: only the CSP enforce PR remains, blocked on soak data rather than on code. BACKEND_DESIGN.md §2 replaces the auth.routes.js / public.routes.js entries with the full per-capability tree for auth/, public/ and player/, and §4's group headings now point at the index.js files. The /player prose names the three routers behind the shared gate. Findings recorded rather than left in the code alone: - public/ and auth/ deliberately have no group gate — the obvious hardening edit to either is an outage. - GET /auth/me depends on session.router.js being mounted last, because use('/me', meRouter) matches the bare /me and supplies its noindex header. - Two root-mounted routers (public/site, auth/session) on the PR 4 dashboard precedent, safe only because neither declares router-level middleware. - loginGuards is the PR's shared module, the counterpart to PR 3's imageUpload.js. - Filename deviations from the target tree (posts not news, session.router.js added) and why public.controller.js was not split. Co-Authored-By: Claude <noreply@anthropic.com>