USER_SAFETY.md step 2 (core), with S11-S14 decided while building it. - Reports: POST /player/reports takes any target type, core's forum types or a module's registered ones. One resolver (model/safety/targets.js) answers "what is this item, for this reader" and 404s an item the reader cannot see. Every report stores content_reports.snapshot; the queue shows a module item from it. - Hide for everyone: POST /admin/moderation/reports/:id/hide hides the item through its own moderation (forum hide as staff, or the module's hide) and actions the report with actioned_with = 'hide'. - Blocks (user_blocks) name an item, never a person, and land on the author's account first (S12); an unlinked game identity is blocked as itself and becomes an account block once linked (S14). Staff cannot be blocked; a block on someone later promoted stops applying (S8). - Hide for me (user_hidden_items), /auth/me/blocks and /auth/me/hidden. - Forum reads filter blocked authors and hidden items on the server and carry canBlock per thread and post. - MODULE_API 1.21.0: api.registerReportTargets, api.registerGameIdentities, ctx.safety.forViewer and ctx.safety.staffAmong, so a module filters its own per-viewer feeds on the server (S11) and marks lines canBlock (S13). - Web: Hide for me / Block author in the forum menus, a Blocked section on both account pages, Hide for everyone in the Reports queue. - Tests, OpenAPI, route/guard/engagement manifests regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
1172 lines
24 KiB
JSON
1172 lines
24 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/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": "POST",
|
|
"path": "/api/v1/admin/email/disconnect"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/email/test"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/engagement/audience-preview"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/engagement/audiences"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/engagement/channels"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/engagement/retention"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/engagement/retention"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/engagement/rules"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/engagement/rules"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/engagement/rules/:id"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/engagement/rules/:id"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/engagement/rules/:id"
|
|
},
|
|
{
|
|
"method": "PATCH",
|
|
"path": "/api/v1/admin/engagement/rules/:id/enabled"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/engagement/segments"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/engagement/segments"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/engagement/segments/:id"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/engagement/segments/:id"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/engagement/sends"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/engagement/suppressions"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/engagement/suppressions"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/engagement/suppressions"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/engagement/suppressions/by-hash/:hash"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/engagement/templates"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/engagement/templates/:id"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/engagement/templates/:id"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/engagement/templates/:id"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/engagement/templates/:id/duplicate"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/engagement/templates/:id/preview"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/engagement/templates/:id/test-send"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/engagement/triggers"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/events"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/events/:id"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/events/:id"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/events/:id"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events/:id/publish"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events/:id/runs"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events/:id/verify"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/events/:id/versions"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/events/actions"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/events/actions"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/events/calendar"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/events/catalog"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/events/catalog/options/:sourceId"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events/catalog/templates/:templateId"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events/price"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/events/runs"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/events/runs/:runId"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events/runs/:runId/advance"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events/runs/:runId/cancel"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events/runs/:runId/cleanup"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/events/runs/:runId/log"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events/runs/:runId/pause"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events/runs/:runId/resume"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events/runs/:runId/steps/:stepId/confirm"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events/runs/:runId/steps/:stepId/retry"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events/runs/:runId/steps/:stepId/skip"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/events/series"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/events/series"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/events/series/:seriesId"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/events/series/:seriesId"
|
|
},
|
|
{
|
|
"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/reports"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/moderation/reports/:id/handle"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/moderation/reports/:id/hide"
|
|
},
|
|
{
|
|
"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/modules"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/modules"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/modules/:id"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/modules/:id/disable"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/modules/:id/enable"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/modules/:id/purge"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/modules/restart"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/modules/sources"
|
|
},
|
|
{
|
|
"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/settings/brand-asset/:slot"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/site-mode"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/teams"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/teams/:id"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/teams/:id/archive"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/teams/:id/display-name"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/teams/:id/forum/moderation"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/teams/:id/grants"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/teams/:id/hide"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/teams/:id/leader-override"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/teams/:id/leader-override/:memberKey"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/teams/:id/unhide"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/teams/forum/settings"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/teams/forum/uploads"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/teams/integrations"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/teams/integrations"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/teams/integrations/:teamId"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/teams/requests"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/teams/requests/:id/decide"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/teams/resync"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/teams/review"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/admin/teams/voice"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/admin/teams/voice"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/admin/teams/voice/:teamId"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/teams/voice/sync"
|
|
},
|
|
{
|
|
"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": "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/users/email-dedupe-report"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/admin/users/email-dedupe-report/acknowledge"
|
|
},
|
|
{
|
|
"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/email/verify/:token"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/email/verify/:token"
|
|
},
|
|
{
|
|
"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": "DELETE",
|
|
"path": "/api/v1/auth/me/account"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/me/account"
|
|
},
|
|
{
|
|
"method": "PATCH",
|
|
"path": "/api/v1/auth/me/account/email"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/auth/me/account/email/pending"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/me/account/email/resend"
|
|
},
|
|
{
|
|
"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/blocks"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/me/blocks"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/auth/me/blocks/:id"
|
|
},
|
|
{
|
|
"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": "DELETE",
|
|
"path": "/api/v1/auth/me/hidden"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/me/hidden"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/me/hidden"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/auth/me/hidden/:targetType/:targetId"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/me/notifications"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/me/notifications/:id/read"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/me/notifications/channels"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/auth/me/notifications/channels"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/auth/me/notifications/read-all"
|
|
},
|
|
{
|
|
"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/notifications/teams"
|
|
},
|
|
{
|
|
"method": "PUT",
|
|
"path": "/api/v1/auth/me/notifications/teams"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/auth/me/notifications/unread-count"
|
|
},
|
|
{
|
|
"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/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": "GET",
|
|
"path": "/api/v1/player/events/history"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/reports"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/teams"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/teams/:slug/access"
|
|
},
|
|
{
|
|
"method": "PATCH",
|
|
"path": "/api/v1/player/teams/:slug/forum/posts/:id"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/teams/:slug/forum/posts/:id/moderate"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/teams/:slug/forum/report"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/teams/:slug/forum/threads"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/teams/:slug/forum/threads"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/teams/:slug/forum/threads/:id"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/teams/:slug/forum/threads/:id/moderate"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/teams/:slug/forum/threads/:id/posts"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/teams/:slug/forum/uploads"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/player/teams/:slug/forum/uploads/:id"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/player/teams/:slug/grants"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/player/teams/:slug/grants"
|
|
},
|
|
{
|
|
"method": "DELETE",
|
|
"path": "/api/v1/player/teams/:slug/grants/:userId"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/public/contact"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/engagement/unsubscribe/:token"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/public/engagement/unsubscribe/:token"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/events"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/events/:slug"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/events/series/:slug"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/modules"
|
|
},
|
|
{
|
|
"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/status"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/teams"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/teams/:slug"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/teams/:slug/activity"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/teams/:slug/members"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/teams/by-external/:moduleId/:externalId"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/public/teams/unsubscribe/:token"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/api/v1/public/teams/unsubscribe/:token"
|
|
},
|
|
{
|
|
"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"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/api/v1/settings/theme/options"
|
|
}
|
|
],
|
|
"internal": [
|
|
{
|
|
"method": "GET",
|
|
"path": "/health"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/internal/bot-config"
|
|
},
|
|
{
|
|
"method": "GET",
|
|
"path": "/internal/commands"
|
|
},
|
|
{
|
|
"method": "POST",
|
|
"path": "/internal/commands/dispatch"
|
|
}
|
|
]
|
|
}
|