3.0 KiB
3.0 KiB
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
- Sign in with an admin user (role
admin). - Navigate to
/dashboard/admin/*routes. - 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.