Phases 0-2 of docs/website/THEMING_AND_NAV.md. Groundwork only: no admin UI, no consumer wiring, and an instance that never touches the new settings keys renders exactly as it does today. Phase 0 - settings store: - settingsDb.remove() and DELETE /api/v1/admin/settings/:key, the "reset to default" primitive. Defaults for these keys live in BRAND_* env, theme.css and the hardcoded NAV arrays, so reset has to delete the row rather than store a copy of the default. Allowlisted to the five theming/nav keys plus hero_layout_draft, admin-only, idempotent. - GET /api/v1/settings/nav behind requireAuth with no role gate. AdminLayout renders for editors and moderators and PlayerPortalLayout for players, and none of them can read GET /admin/settings, so without this their nav override would silently never apply. - A fifth router group for it: /public is anonymous, /admin/settings is adminOnly, /player is self-scoped data. This is configuration that needs a login. - parseJsonSetting() in utils/settingsJson.js. settings.value is TEXT, so every JSON key arrives as a string; malformed or wrong-shaped reads as absent, never as an error and never half-applied. - theme_visual / brand_assets / nav_public join PUBLIC_KEYS; nav_admin and nav_player deliberately do not. Phase 1 - client/src/lib/navOverrides.js, the pure merge util. Presentation only: it can set label/order/hidden and (grouped navs) group, and nothing else. It cannot introduce a `to`, cannot touch roles/feature, and hidden:false cannot un-hide anything - the existing filters run afterward, unchanged, and remain the boundary. Phase 2 - promoted 23 border-radius literals in theme.css to four tokens at today's values (14x8px, 4x999px, 4x10px, 1x12px). The 7px/6px editor chrome and the two 50% circles stay literal. --shadow-card and --panel-grad were already tokens. Tests: 16 new server tests, 20 new client tests. The route-manifest guard now also asserts /settings/** sits behind requireAuth. Swagger and both route artifacts regenerated. Co-Authored-By: Claude <noreply@anthropic.com>
916 lines
19 KiB
JSON
916 lines
19 KiB
JSON
{
|
|
"$comment": "Generated route inventory - the authoritative freeze of the URL surface. Regenerate with `npm run routes:manifest` in website/server; a domain-split PR must produce a zero-line diff here.",
|
|
"public": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/.well-known/assetlinks.json"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/csp-report"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/docs.json"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/health"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/account"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/account/identities"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/account/identities/:provider"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/account/totp/disable"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/account/totp/enable"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/account/totp/setup"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/activity"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/auth/providers"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/auth/providers"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/auth/providers/:id"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/auth/providers/:id"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/bot-activity"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/bot-activity/unban"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/dashboard"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/discord-bot/config"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/discord-bot/config"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/email/config"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/email/config"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/email/connect/callback"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/email/connect/start"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/email/disconnect"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/email/test"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/invites"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/invites"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/invites/:id"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/moderation/appeals"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/moderation/appeals/:id"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/moderation/appeals/:id/claim"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/moderation/appeals/:id/resolve"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/moderation/filter-hits"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/moderation/members"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/moderation/recent"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/moderation/search"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/moderation/spam-hits"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/moderation/stats/summary"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/moderation/user/:discordId"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/moderation/user/:discordId/actions"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/moderation/user/:discordId/appeals"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/moderation/user/:discordId/notes"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/moderation/user/:discordId/notes"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/pages"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/pages"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/pages/:id"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/pages/:id"
|
|
},
|
|
{
|
|
"method": "PATCH",
|
|
"path": "/api/v1/admin/pages/:id"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/pages/:id/preview"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/pages/:id/unprotect"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/posts"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/posts"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/posts/:id"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/posts/:id"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/posts/:id"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/posts/:id/announce"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/posts/:id/announce/retry"
|
|
},
|
|
{
|
|
"method": "PATCH",
|
|
"path": "/api/v1/admin/posts/:id/publish"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/posts/upload"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/settings"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/settings"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/settings/:key"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/shard/account"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/shard/accounts"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/shard/atlas"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/shard/atlas/approve"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/shard/atlas/import"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/shard/atlas/path"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/shard/atlas/reject"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/shard/audit"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/shard/ban"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/shard/broadcast"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/shard/char/:serial"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/shard/clilocs"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/shard/clilocs/import"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/shard/clilocs/path"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/shard/houses"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/shard/kick"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/shard/link"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/shard/pages"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/shard/pages/:id/close"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/shard/pages/:id/respond"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/shard/roster/:account"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/shard/sales"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/shard/unban"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/shard/vendors/:account"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/shard/visibility"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/shard/visibility"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/site-mode"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/uo-link/config"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/uo-link/config"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/uo-link/stream"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/uo-link/towncrier"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/uo-link/towncrier/:id"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/uploads"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/users"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/users"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/users/:id"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/users/:id"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/users/:id"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/users/:id/mfa/reset"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/users/:id/shard/accounts"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/users/:id/shard/houses"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/users/:id/shard/link/:account"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/users/:id/shard/online"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/users/:id/shard/sales"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/users/:id/shard/standing"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/users/:id/trusted-devices"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/users/:id/trusted-devices"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/users/:id/trusted-devices/:deviceId"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/wiki"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/wiki"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/wiki/:slug"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/wiki/:slug"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/wiki/:slug"
|
|
},
|
|
{
|
|
"method": "PATCH",
|
|
"path": "/api/v1/admin/wiki/:slug/publish"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/wiki/:slug/revisions"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/wiki/:slug/revisions/:id"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/wiki/:slug/revisions/:id/restore"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/wiki/categories"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/wiki/categories"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/wiki/categories/:id"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/wiki/categories/:id"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/wiki/tags"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/invite/:token"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/invite/:token/accept"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/login"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/login/totp"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/logout"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/me"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/me/account"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/me/account/identities"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/auth/me/account/identities/:provider"
|
|
},
|
|
{
|
|
"method": "PATCH",
|
|
"path": "/api/v1/auth/me/account/password"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/me/account/recovery-codes/generate"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/me/account/recovery-codes/status"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/me/account/totp/disable"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/me/account/totp/enable"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/me/account/totp/setup"
|
|
},
|
|
{
|
|
"method": "PATCH",
|
|
"path": "/api/v1/auth/me/account/username"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/me/devices"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/me/devices"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/auth/me/devices/:id"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/me/notifications/streams"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/me/notifications/subscriptions"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/auth/me/notifications/subscriptions"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/me/sessions"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/auth/me/sessions/:id"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/auth/me/trusted-devices"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/me/trusted-devices"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/me/trusted-devices"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/auth/me/trusted-devices/:id"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/mobile/login"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/mobile/logout"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/mobile/refresh"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/mobile/sso/exchange"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/mobile/sso/start"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/password/forgot"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/password/reset/:token"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/password/reset/:token"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/providers"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/register"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/sso/:provider/callback"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/sso/:provider/link"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/sso/:provider/start"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/sso/totp"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/account"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/account/identities"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/player/account/identities/:provider"
|
|
},
|
|
{
|
|
"method": "PATCH",
|
|
"path": "/api/v1/player/account/password"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/account/totp/disable"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/account/totp/enable"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/account/totp/setup"
|
|
},
|
|
{
|
|
"method": "PATCH",
|
|
"path": "/api/v1/player/account/username"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/appeals"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/appeals"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/appeals/:id/withdraw"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/appeals/eligible"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/shard/account"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/shard/accounts"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/shard/char/:serial"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/shard/houses"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/shard/link"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/shard/roster/:account"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/shard/sales"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/shard/vendors/:account"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/atlas/champions"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/atlas/creatures"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/atlas/creatures/:slug"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/atlas/landmarks"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/atlas/meta"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/atlas/regions"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/public/contact"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/pages/:id/preview/:token"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/pages/:slug"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/posts/:category"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/posts/:category/:idOrSlug"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/settings"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/champs"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/economy"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/features"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/feed"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/governors"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/governors/:city/history"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/guilds"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/houses"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/idoc"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/market"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/market/meta"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/market/vendors/:serial"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/online"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/points"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/points/:system"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/presence"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/ruleset"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/status"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/shard/stream"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/status"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/version"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/wiki"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/wiki/:slug"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/wiki/categories"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/wiki/tags"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/settings/nav"
|
|
}
|
|
],
|
|
"internal": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/health"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/internal/bot-config"
|
|
}
|
|
]
|
|
}
|