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_msandreadyState. - 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" // defaultGrant or revoke admin from Users.