Skip to content

Admin Overview

The admin panel at /admin is a separate React surface for instance-level administrators. Access is gated by the admin permission on the user record — every admin endpoint runs through requireAdmin middleware (checkPermissions(req, ["admin"])) and returns 403 to anyone else.

What's in the panel

  • Users — search, edit, suspend, grant or revoke admin.
  • AI Models — registry of LLM and media models exposed to users.
  • System — branding, SMTP, storage limits, email templates, feature modules, auth policies, system health.
  • API Integration — OAuth client credentials per platform, with built-in test buttons.
  • Billing — plans, coupons, subscription list, payment-request approval queue, invoices.
  • Support — categories, labels, and types for the support knowledge base.

System health

/admin/system/health and GET /api/v1/admin/health surface live diagnostics:

  • MongoDB ping_ms and readyState.
  • Redis queue stats (waiting / active / completed / failed counts) for the publish-post queue and its DLQ.
  • SMTP from-address and configuration completeness.
  • Uploads directory size on disk.
  • Process uptime, memory, API prefix, worker concurrency.

Permission model

typescript
// User.permissions: string[]
"admin"      // grants every admin capability
"reviewer"   // can approve / reject posts in pending_review (composer)
"user"       // default

Grant or revoke admin from Users.