Files
dewemoji/dewemoji-admin-walkthrough.md
2026-02-12 00:52:40 +07:00

116 lines
3.0 KiB
Markdown

# Dewemoji Admin Dashboard Walkthrough
This guide explains how to access and operate the admin dashboard, plus how each section is wired in the current build.
## Access
1. Sign in with an admin user (role `admin`).
2. Navigate to `/dashboard/admin/*` routes.
3. The sidebar automatically shows admin navigation when the session user is admin.
## Admin Sections
### Analytics
Route: `/dashboard/admin/analytics`
What it shows:
- User totals, active subscriptions, webhook counts
- Recent webhook events
Data source:
- Direct database counts via `AdminDashboardController::analytics()`
### Users
Route: `/dashboard/admin/users`
What it shows:
- User list (latest 50)
- Filters: search, tier, role
- Inline tier update (free/personal)
Actions:
- Update tier: POST `/dashboard/admin/users/tier`
### Subscriptions
Route: `/dashboard/admin/subscriptions`
What it shows:
- Subscription list (latest 50)
- Grant/revoke forms
Actions:
- Grant: POST `/dashboard/admin/subscriptions/grant`
- Revoke: POST `/dashboard/admin/subscriptions/revoke`
Notes:
- Granting an active subscription automatically sets user tier to `personal`.
- Revoking updates the user tier based on remaining active subscriptions.
### Pricing
Route: `/dashboard/admin/pricing`
What it shows:
- Pricing plans with editable fields
- Change log (latest 5)
Actions:
- Update pricing: POST `/dashboard/admin/pricing/update`
- Reset to defaults: POST `/dashboard/admin/pricing/reset`
Notes:
- Updates are stored in `pricing_plans`.
- Each change logs a snapshot to `pricing_changes`.
### Webhooks
Route: `/dashboard/admin/webhooks`
What it shows:
- Recent webhook events (latest 50)
- Replay action per event
Actions:
- Replay: POST `/dashboard/admin/webhooks/{id}/replay`
Notes:
- Replay marks the event as `pending`. (Actual processing should be handled by the webhook processor job/worker.)
### Settings
Route: `/dashboard/admin/settings`
What it shows:
- Current environment config summaries
- Editable settings for public access + maintenance mode
Actions:
- Update settings: POST `/dashboard/admin/settings/update`
Settings stored:
- `maintenance_enabled` (bool)
- `public_enforce` (bool)
- `public_origins` (array)
- `public_extension_ids` (array)
- `public_hourly_limit` (int)
## Admin Routes Reference
- GET `/dashboard/admin/analytics`
- GET `/dashboard/admin/users`
- POST `/dashboard/admin/users/tier`
- GET `/dashboard/admin/subscriptions`
- POST `/dashboard/admin/subscriptions/grant`
- POST `/dashboard/admin/subscriptions/revoke`
- GET `/dashboard/admin/pricing`
- POST `/dashboard/admin/pricing/update`
- POST `/dashboard/admin/pricing/reset`
- GET `/dashboard/admin/webhooks`
- POST `/dashboard/admin/webhooks/{id}/replay`
- GET `/dashboard/admin/settings`
- POST `/dashboard/admin/settings/update`
## Notes for Future Wiring
- Replace placeholder analytics charts with real metrics/graphs.
- Add pagination + sorting for users, subscriptions, and webhooks.
- Add confirmation dialogs for destructive actions.
- Wire replay to actual processor/job queue if needed.