Videa Docs

Admin Dashboard

User management, credit adjustment, and subscription control.

Overview

The admin dashboard is available at /admin and requires user.role = 'admin'.

Setup

Create an admin account:

ADMIN_EMAIL=your@email.com pnpm admin:setup

Or manually set role = 'admin' in the database for an existing user.

Features

User Management (/admin/users)

  • Search users by name or email
  • Paginated user list (20 per page)
  • View: name, email, verification status, credits, role, ban status, plan

User Actions

ActionEndpointDescription
Adjust creditsPUT /api/admin/users/[userId]/creditsAdd or remove credits
Change subscriptionPUT /api/admin/users/[userId]/subscriptionUpdate user's plan
Ban userVia admin panelTemporary or permanent ban

Subscription Management (/admin/subscriptions)

  • View all active subscriptions
  • Filter by plan and status

Credit Ledger (/admin/credits)

  • View all credit transactions across users
  • Filter by reason, date range

Authorization

Admin routes are protected by AdminGuard in features/admin/components/admin-guard.tsx:

// Checks user.role === 'admin'
// Redirects non-admins to dashboard

API routes check admin status via lib/auth/admin.ts.

On this page