docs(website): record the PR 4 admin router split and the end of admin.routes.js #58

Merged
whitlocktech merged 1 commits from docs/admin-router-split-4 into main 2026-07-28 01:31:57 +00:00
Member

What & why

Documents website PR 4 of the in-place admin router split — the last admin one, which moves the entire residual 33 routes into capability routers and deletes admin.routes.js. Website PR: RunicGateway/website#105.

  • website/API_V2_PLAN.md — new § PR 4 — as landed with the router/gate table (shard 16, uo-link 5, email 6, discord-bot 2, settings 2, dashboard+site-mode 2), and the two decisions a reviewer would otherwise have to reconstruct from the diff:

    • dashboard.router.js is mounted at the group root, the one relaxation of the mount-at-a-prefix rule — safe only because it declares no router-level middleware.
    • /shard keeps two gate tiers in one router (self-service linking with no extra gate, in-game staff ops on modAccess), because prefix ownership beats swagger-tag grouping.

    Also records that no gate moved to router level, that the /:param shadowing check came back clean (110 admin routes, 59 literal, 0 shadowed), and which dangling see admin.routes.js pointers were repointed. Sequencing item 7 is marked landed; PR 5 (public/* + player/* + auth/*) is now the only split PR left.

  • website/BACKEND_DESIGN.md — §2 gains the six new routers in the folder tree and drops the residual entry ("the admin group is fully split"); §4's /admin preamble now describes the ops/config gates instead of pointing at a file that no longer exists.

  • website/WIKI_UPGRADE.md — its two links into admin.routes.js are repointed at wiki.router.js and admin/imageUpload.js.

PROJECT_TREE.md is deliberately untouched — it is auto-generated by the sync-project-tree workflow, which opens its own PR after the website merge.

Checklist

  • I have read CONTRIBUTING.md.
  • My commits are reasonably scoped with clear messages.

AI-assisted contributions (required)

This project requires disclosure of AI tool usage. Please pick one:

  • No AI tools were used to produce this contribution.
  • AI tools were used. Tool(s): Claude Code (Opus 5). I have reviewed and understand
    every change, and take responsibility for it. AI-authored commits are
    marked with a Co-Authored-By / Assisted-By trailer.

License

  • I agree that my contribution is licensed under this project's license
    (GNU GPL v3.0 or later), and I have the right to contribute it.
## What & why Documents **website PR 4 of the in-place admin router split — the last admin one**, which moves the entire residual 33 routes into capability routers and **deletes `admin.routes.js`**. Website PR: RunicGateway/website#105. - **`website/API_V2_PLAN.md`** — new **§ PR 4 — as landed** with the router/gate table (shard 16, uo-link 5, email 6, discord-bot 2, settings 2, dashboard+site-mode 2), and the two decisions a reviewer would otherwise have to reconstruct from the diff: - `dashboard.router.js` is mounted at the **group root**, the one relaxation of the mount-at-a-prefix rule — safe only because it declares no router-level middleware. - `/shard` keeps **two gate tiers in one router** (self-service linking with no extra gate, in-game staff ops on `modAccess`), because prefix ownership beats swagger-tag grouping. Also records that no gate moved to router level, that the `/:param` shadowing check came back clean (110 admin routes, 59 literal, 0 shadowed), and which dangling `see admin.routes.js` pointers were repointed. Sequencing item 7 is marked ✅ landed; **PR 5 (`public/*` + `player/*` + `auth/*`) is now the only split PR left**. - **`website/BACKEND_DESIGN.md`** — §2 gains the six new routers in the folder tree and drops the residual entry ("the admin group is fully split"); §4's `/admin` preamble now describes the ops/config gates instead of pointing at a file that no longer exists. - **`website/WIKI_UPGRADE.md`** — its two links into `admin.routes.js` are repointed at `wiki.router.js` and `admin/imageUpload.js`. `PROJECT_TREE.md` is deliberately untouched — it is auto-generated by the `sync-project-tree` workflow, which opens its own PR after the website merge. ## Checklist - [x] I have read [CONTRIBUTING.md](CONTRIBUTING.md). - [x] My commits are reasonably scoped with clear messages. ## AI-assisted contributions (required) This project **requires disclosure of AI tool usage**. Please pick one: - [ ] No AI tools were used to produce this contribution. - [x] AI tools were used. Tool(s): `Claude Code (Opus 5)`. I have reviewed and understand every change, and take responsibility for it. AI-authored commits are marked with a `Co-Authored-By` / `Assisted-By` trailer. ## License - [x] I agree that my contribution is licensed under this project's license (**GNU GPL v3.0 or later**), and I have the right to contribute it.
wtclaude added 1 commit 2026-07-28 01:04:11 +00:00
Covers website PR 4, the last admin split PR: shard (16), uo-link (5), email
(6), discord-bot (2), settings (2) and dashboard/site-mode (2) leave the
residual file, which is deleted. The admin group is fully split.

API_V2_PLAN.md gains a "PR 4 — as landed" section recording the two decisions a
reviewer would otherwise have to reconstruct: dashboard.router.js is mounted at
the group root (the single relaxation of the mount-at-a-prefix rule, safe only
because it declares no router-level middleware), and /shard keeps two gate tiers
in one router because prefix ownership beats swagger-tag grouping. Sequencing
item 7 is marked landed; PR 5 (public/player/auth) is the only split PR left.

BACKEND_DESIGN.md §2 gets the six new routers in the folder tree and drops the
residual entry; §4's /admin preamble now describes the ops/config gates instead
of pointing at a file that no longer exists.

WIKI_UPGRADE.md's two links into admin.routes.js are repointed at wiki.router.js
and admin/imageUpload.js.

Co-Authored-By: Claude <noreply@anthropic.com>
whitlocktech merged commit a3e3ca817e into main 2026-07-28 01:31:57 +00:00
whitlocktech deleted branch docs/admin-router-split-4 2026-07-28 01:31:58 +00:00
Sign in to join this conversation.
No description provided.