21 KiB
FRONTEND ADMIN & SETTINGS PAGES - COMPREHENSIVE AUDIT
Date: December 20, 2025
Purpose: Document all frontend admin and settings pages, their data sources, actions, Django admin equivalents, and whether regular users need them.
ADMIN PAGES (All require AdminGuard - developer/superuser only)
| Page Path | File Path | API Endpoints Called | Data Displayed | Actions Allowed | Django Admin Equivalent | Regular Users Need It? |
|---|---|---|---|---|---|---|
/admin/dashboard |
frontend/src/pages/admin/AdminSystemDashboard.tsx |
/v1/admin/billing/stats/ |
System stats: total users, active users, credits issued, credits used. Links to all admin tools (Django admin, PgAdmin, Portainer, Gitea). | Read-only dashboard, external links to admin tools | ❌ No equivalent (custom dashboard) | ❌ NO - System-wide overview only for superusers |
/admin/accounts |
frontend/src/pages/admin/AdminAllAccountsPage.tsx |
/v1/auth/accounts/ |
All accounts: name, slug, owner email, status, credit balance, plan, created date | Search, filter by status, view account details | ✅ YES - Account model in auth admin |
❌ NO - Cross-account data only for superusers |
/admin/subscriptions |
frontend/src/pages/admin/AdminSubscriptionsPage.tsx |
/v1/admin/subscriptions/ |
All subscriptions: account name, plan, status, period dates, cancellation status | Filter by status, activate/cancel subscriptions | ✅ YES - Subscription model in auth admin |
❌ NO - Cross-account subscription management |
/admin/account-limits |
frontend/src/pages/admin/AdminAccountLimitsPage.tsx |
None (static form) | Mock account limit settings: max sites, team members, storage, API calls, concurrent jobs, rate limits | Edit limit values (mock data - no backend) | ⚠️ PARTIAL - No dedicated model, limits stored in Plan/Account | ❌ NO - System-wide configuration |
/admin/billing |
frontend/src/pages/Admin/AdminBilling.tsx |
/v1/admin/billing/stats/, /v1/admin/users/, /v1/admin/credit-costs/, /v1/billing/credit-packages/ |
System billing stats, all users with credits, credit cost configs, credit packages | Adjust user credits, update credit costs, view stats | ✅ YES - Multiple models: CreditTransaction, CreditUsageLog, CreditCostConfig, CreditPackage |
❌ NO - Global billing administration |
/admin/invoices |
frontend/src/pages/admin/AdminAllInvoicesPage.tsx |
/v1/admin/billing/invoices/ (via getAdminInvoices) |
All invoices: invoice number, account name, date, amount, status | Search by invoice number, filter by status, download invoices | ✅ YES - Invoice model in billing admin |
❌ NO - Cross-account invoice viewing |
/admin/payments |
frontend/src/pages/admin/AdminAllPaymentsPage.tsx |
/v1/admin/billing/payments/, /v1/admin/billing/pending_payments/, /v1/admin/billing/payment_method_configs/, /v1/admin/users/ |
All payments, pending manual payments, payment method configs (country-level), account payment methods | Filter payments, approve/reject manual payments, manage payment method configs, manage account payment methods | ✅ YES - Payment model, PaymentMethodConfig, AccountPaymentMethod in billing admin |
❌ NO - Cross-account payment management and approval workflow |
/admin/payments/approvals |
frontend/src/pages/admin/PaymentApprovalPage.tsx |
Not read yet (needs investigation) | Pending payment approvals | Approve/reject payments | ✅ YES - Payment model with status field |
❌ NO - Payment approval workflow |
/admin/credit-packages |
frontend/src/pages/admin/AdminCreditPackagesPage.tsx |
/v1/admin/credit-packages/ (GET), /v1/admin/credit-packages/ (POST/PUT/DELETE) |
Credit packages: name, credits, price, discount %, description, active status, featured status, sort order | Create, edit, delete credit packages | ✅ YES - CreditPackage model in billing admin |
❌ NO - Defines packages available to all accounts |
/admin/credit-costs |
frontend/src/pages/Admin/AdminCreditCostsPage.tsx |
/v1/admin/credit-costs/ (GET), /v1/admin/credit-costs/ (POST for updates) |
Credit costs per operation: operation type, display name, cost, unit, description | Update credit cost for each operation | ✅ YES - CreditCostConfig model in billing admin |
❌ NO - System-wide pricing configuration |
/admin/users |
frontend/src/pages/admin/AdminAllUsersPage.tsx |
/v1/admin/users/ |
All users: name, email, account name, role, status (active/inactive), last login, date joined | Search by email/name, filter by role, manage users | ✅ YES - User model in auth admin |
❌ NO - Cross-account user management |
/admin/roles |
frontend/src/pages/admin/AdminRolesPermissionsPage.tsx |
None (static mock data) | Mock role data: developer, owner, admin, editor, viewer with permissions and user counts | View roles and permissions (read-only mock) | ⚠️ PARTIAL - Roles stored in User model, no separate Role model | ❌ NO - System-wide role configuration |
/admin/activity-logs |
frontend/src/pages/admin/AdminActivityLogsPage.tsx |
None (mock data) | Mock activity logs: timestamp, user, account, action, resource, details, IP address | Search, filter by action type | ⚠️ PARTIAL - SystemLog exists but not used by this page |
❌ NO - Cross-account activity auditing |
/admin/settings/system (mapped to /admin/system-settings in sidebar) |
frontend/src/pages/admin/AdminSystemSettingsPage.tsx |
None (mock data) | Mock system settings: site name, description, maintenance mode, registration settings, session timeout, upload limits, timezone | Edit settings (mock - no backend) | ⚠️ PARTIAL - Some settings in Django settings, no unified model | ❌ NO - System-wide configuration |
/admin/monitoring/health (mapped to /admin/system-health in sidebar) |
frontend/src/pages/admin/AdminSystemHealthPage.tsx |
None (mock data) | Mock health checks: API server, database, background jobs, Redis cache with status and response times | View health status (refreshes every 30s) | ❌ NO - Custom monitoring page | ❌ NO - Infrastructure monitoring |
/admin/monitoring/api (mapped to /admin/api-monitor in sidebar) |
frontend/src/pages/admin/AdminAPIMonitorPage.tsx |
None (mock data) | Mock API metrics: total requests, requests/min, avg response time, error rate, top endpoints | View API usage statistics | ❌ NO - Custom monitoring page | ❌ NO - Infrastructure monitoring |
Admin Pages Summary:
- Total Pages: 16 admin pages
- Django Admin Coverage: 10 have equivalent models, 3 partial, 3 no equivalent
- Regular User Need: 0 pages (all are superuser-only)
- Pages with Mock Data: 5 pages (account-limits, roles, activity-logs, system-settings, both monitoring pages)
- Pages Needing Backend Work: Activity logs needs real API integration, system settings needs backend model
SETTINGS PAGES (User-facing account settings)
| Page Path | File Path | API Endpoints Called | Data Displayed | Actions Allowed | Django Admin Equivalent | Regular Users Need It? |
|---|---|---|---|---|---|---|
/settings/status (Master Status) |
frontend/src/pages/Settings/Status.tsx (previously MasterStatus.tsx) |
/v1/system/status/ |
System health: CPU, memory, disk usage, database status, Redis status, Celery workers, process counts, module stats | View system status (refreshes every 30s) | ⚠️ PARTIAL - SystemStatus model exists but page shows more than stored |
⚠️ MAYBE - Account owners might want to see their instance health |
/settings/api-monitor |
frontend/src/pages/Settings/ApiMonitor.tsx |
Multiple test endpoints for validation: /v1/system/status/, /v1/auth/me/, /v1/planner/keywords/, /v1/writer/tasks/, /v1/writer/images/content_images/, etc. |
Endpoint health checks with response times, grouped by module | Test API endpoints, validate page data population | ❌ NO - Custom monitoring tool | ⚠️ MAYBE - Developers/integrators might need it |
/settings/debug-status |
frontend/src/pages/Settings/DebugStatus.tsx |
/v1/writer/content/, WordPress sync diagnostics (site-specific) |
WordPress integration health, database schema validation, sync events, data validation | Test integration health, view sync logs, diagnose issues | ❌ NO - Custom debugging tool | ✅ YES - Account owners troubleshooting WP integration |
/settings/modules |
frontend/src/pages/Settings/Modules.tsx |
/v1/system/settings/modules/ (load), /v1/system/settings/modules/ (update) |
Module enable/disable status for planner, writer, thinker, linker, optimizer | Enable/disable modules for account | ⚠️ PARTIAL - Settings stored in account but managed differently | ✅ YES - Account owners control which modules they use |
/settings/ai |
frontend/src/pages/Settings/AI.tsx |
/v1/system/settings/ai/ |
AI-specific settings (placeholder - "coming soon") | None yet | ⚠️ PARTIAL - AI prompts exist in AIPrompt model |
✅ YES - Account owners might want AI configuration |
/settings/system |
frontend/src/pages/Settings/System.tsx |
/v1/system/settings/system/ |
System-wide settings (placeholder - "coming soon") | None yet | ⚠️ PARTIAL - Various system settings exist but not unified | ⚠️ UNCLEAR - Depends on what settings will be exposed |
/settings/integration |
frontend/src/pages/Settings/Integration.tsx |
/v1/system/settings/integrations/{id}/test/, /v1/system/settings/integrations/openai/, /v1/system/settings/integrations/runware/, etc. |
Integration configs: OpenAI (API key, model), Runware (API key), Image Generation (provider, model, settings), GSC (client ID/secret), site-specific WP integrations | Configure API integrations, test connections, manage image generation settings, configure site integrations | ✅ YES - IntegrationSettings model, SiteIntegration model in business/integration admin |
✅ YES - Account owners configure their own integrations |
Other Settings Pages (not explicitly tested but exist in routing):
| Page Path | File Path | Purpose | Regular Users Need It? |
|---|---|---|---|
/settings (General) |
frontend/src/pages/Settings/General.tsx |
General account settings | ✅ YES |
/settings/profile |
frontend/src/pages/settings/ProfileSettingsPage.tsx |
User profile settings | ✅ YES |
/settings/users |
frontend/src/pages/Settings/Users.tsx |
Account user management | ✅ YES - Account owners manage their team |
/settings/subscriptions |
frontend/src/pages/Settings/Subscriptions.tsx |
Account subscription management | ✅ YES - Account owners manage their subscription |
/settings/account |
frontend/src/pages/Settings/Account.tsx |
Account settings | ✅ YES |
/settings/plans |
frontend/src/pages/Settings/Plans.tsx |
View/manage plans | ✅ YES - Account owners view available plans |
/settings/industries |
frontend/src/pages/Settings/Industries.tsx |
Industry/sector management | ✅ YES - Account owners configure their industries |
/settings/publishing |
frontend/src/pages/Settings/Publishing.tsx |
Publishing settings | ✅ YES - Account owners configure publishing |
/settings/sites |
frontend/src/pages/Settings/Sites.tsx |
Site management settings | ✅ YES - Account owners manage their sites |
/settings/import-export |
frontend/src/pages/Settings/ImportExport.tsx |
Import/export data | ✅ YES - Account owners manage their data |
Settings Pages Summary:
- Total Settings Pages: ~17 pages (7 detailed + 10 other)
- Regular Users Need: ~13 pages (most are account-owner facing)
- Admin-Only (via AdminGuard):
/settings/integrationhas AdminGuard wrapping it in routes - Monitoring/Debug Pages: 3 pages (status, api-monitor, debug-status) - borderline admin tools
HELP/TESTING PAGES
| Page Path | File Path | API Endpoints Called | Data Displayed | Actions Allowed | Regular Users Need It? |
|---|---|---|---|---|---|
/help/function-testing (mapped to /admin/function-testing in sidebar) |
frontend/src/pages/Help/FunctionTesting.tsx |
None | "Coming Soon" placeholder | None | ❌ NO - Development/testing tool |
/help/system-testing (mapped to /admin/system-testing in sidebar) |
frontend/src/pages/Help/SystemTesting.tsx |
None | "Coming Soon" placeholder | None | ❌ NO - Development/testing tool |
UI ELEMENTS PAGES (All /ui-elements/* routes)
These are component showcase/documentation pages for developers and designers. They demonstrate UI components with examples.
Located in: frontend/src/pages/Settings/UiElements/
List of UI Element Pages:
/ui-elements/alerts- Alerts.tsx/ui-elements/avatars- Avatars.tsx/ui-elements/badges- Badges.tsx/ui-elements/breadcrumb- Breadcrumb.tsx/ui-elements/buttons- Buttons.tsx/ui-elements/buttons-group- ButtonsGroup.tsx/ui-elements/cards- Cards.tsx/ui-elements/carousel- Carousel.tsx/ui-elements/dropdowns- Dropdowns.tsx/ui-elements/images- Images.tsx/ui-elements/links- Links.tsx/ui-elements/list- List.tsx/ui-elements/modals- Modals.tsx/ui-elements/notifications- Notifications.tsx/ui-elements/pagination- Pagination.tsx/ui-elements/popovers- Popovers.tsx/ui-elements/pricing-table- PricingTable.tsx/ui-elements/progressbar- Progressbar.tsx/ui-elements/ribbons- Ribbons.tsx/ui-elements/spinners- Spinners.tsx/ui-elements/tabs- Tabs.tsx/ui-elements/tooltips- Tooltips.tsx/ui-elements/videos- Videos.tsx
Total: 23 UI element showcase pages
Purpose: Design system documentation and component testing
Regular Users Need: ❌ NO - These are for developers/designers only
Recommendation: Should be behind a feature flag or removed from production builds
DJANGO ADMIN COVERAGE ANALYSIS
Models in Django Admin (from backend admin.py files):
Auth Module:
- ✅
Plan- Plans admin - ✅
Account- Account admin with history - ✅
Subscription- Subscription admin - ✅
PasswordResetToken- Password reset admin - ✅
Site- Site admin - ✅
Sector- Sector admin - ✅
SiteUserAccess- Site access admin - ✅
Industry- Industry admin - ✅
IndustrySector- Industry sector admin - ✅
SeedKeyword- Seed keyword admin - ✅
User- User admin with account filtering
Billing Module:
- ✅
CreditTransaction- Credit transaction logs - ✅
CreditUsageLog- Usage logs - ✅
Invoice- Invoice admin - ✅
Payment- Payment admin with history and approval workflow - ✅
CreditPackage- Credit package admin - ✅
PaymentMethodConfig- Payment method config admin - ✅
AccountPaymentMethod- Account-specific payment methods - ✅
CreditCostConfig- Credit cost configuration with history - ✅
PlanLimitUsage- Plan limit usage tracking - ✅
BillingConfiguration- Billing configuration
System Module:
- ✅
SystemLog- System logging - ✅
SystemStatus- System status - ✅
AIPrompt- AI prompt management - ✅
IntegrationSettings- Integration settings - ✅
AuthorProfile- Author profiles - ✅
Strategy- Content strategies
Planner Module:
- ✅
Clusters- Keyword clusters - ✅
Keywords- Keywords - ✅
ContentIdeas- Content ideas
Writer Module:
- ✅
Tasks- Writing tasks - ✅
Images- Images - ✅
Content- Content with extensive filtering - ✅
ContentTaxonomy- Taxonomies (categories/tags) - ✅
ContentAttribute- Content attributes - ✅
ContentTaxonomyRelation- Taxonomy relationships - ✅
ContentClusterMap- Cluster mappings
Business Modules:
- ✅
OptimizationTask- SEO optimization tasks - ✅
SiteIntegration- Site integrations (WordPress) - ✅
SyncEvent- Sync event logs - ✅
PublishingRecord- Publishing records - ✅
DeploymentRecord- Deployment records - ✅
AutomationConfig- Automation configuration - ✅
AutomationRun- Automation run logs
AI Module:
- ✅
AITaskLog- AI task logging
Celery:
- ✅
TaskResult- Celery task results - ✅
GroupResult- Celery group results
Total Django Admin Models: 40+ models
Frontend Pages WITHOUT Django Admin Equivalent:
- ❌ Admin Dashboard (
/admin/dashboard) - Custom dashboard - ❌ System Health Monitoring (
/admin/monitoring/health) - Custom monitoring - ❌ API Monitor (
/admin/monitoring/api) - Custom monitoring - ⚠️ Account Limits (
/admin/account-limits) - Logic exists but no unified model - ⚠️ Roles & Permissions (
/admin/roles) - Logic in User model but no separate Role model - ⚠️ System Settings (
/admin/settings/system) - Various settings but no unified model
KEY FINDINGS & RECOMMENDATIONS
1. Pages That Should NOT Be User-Accessible ❌
These are correctly behind AdminGuard but listed for clarity:
- All
/admin/*pages (16 pages) /help/function-testingand/help/system-testing(2 pages)- All
/ui-elements/*pages (23 pages)
Total: 41 pages that are admin/developer-only
2. Settings Pages Regular Users NEED ✅
/settings/modules- Control which modules are enabled/settings/integration- Configure API integrations (OpenAI, Runware, etc.)/settings/debug-status- Troubleshoot WordPress integration- All other standard settings (profile, users, account, sites, etc.)
Total: ~13 user-facing settings pages
3. Borderline Pages ⚠️
These might be useful for power users but could overwhelm regular users:
/settings/status- System health monitoring/settings/api-monitor- API endpoint testing
Recommendation: Consider adding a "Developer Mode" toggle or role-based visibility
4. Pages Using Mock Data 🚧
These need backend implementation:
/admin/account-limits- Needs Account/Plan limit model/admin/roles- Needs proper Role/Permission model or use existing User roles/admin/activity-logs- Needs to connect toSystemLogmodel/admin/system-settings- Needs unified SystemSettings model- Both monitoring pages - Need real metrics collection
5. Pages with Incomplete Features 📝
/settings/ai- Placeholder "coming soon"/settings/system- Placeholder "coming soon"/help/function-testing- Placeholder "coming soon"/help/system-testing- Placeholder "coming soon"
6. Django Admin Coverage ✅
- Excellent coverage for core business models (40+ models)
- All major data entities have admin interfaces
- Many use ImportExportMixin for data management
- Historical tracking enabled for critical models (Account, Payment, etc.)
7. Duplicate Functionality 🔄
Some admin pages duplicate Django admin functionality:
- Account management
- User management
- Payment management
- Credit package management
- Subscription management
Consideration: Could consolidate some admin operations to Django admin only, keep frontend for dashboard/overview purposes.
ROUTING PROTECTION SUMMARY
AdminGuard Routes (Superuser Only):
// All /admin/* routes are NOT wrapped in AdminGuard in App.tsx
// They should be accessible by checking user.is_superuser in components
// Current: No route-level protection
Protected Routes (Authenticated Users):
// All routes inside <AppLayout /> require ProtectedRoute
// This includes both /settings/* and /admin/* routes
Current Issue:
❌ CRITICAL: Admin routes (/admin/*) are NOT wrapped in <AdminGuard> at the route level in App.tsx. Only /settings/integration has AdminGuard wrapping. Individual pages might check permissions, but this should be enforced at routing level.
Recommendation: Wrap all /admin/* routes in <AdminGuard> component in App.tsx to prevent unauthorized access at routing level.
CONCLUSION
Summary Statistics:
-
Total Pages Audited: ~58 pages
- 16 admin pages
- 17 settings pages
- 2 help/testing pages
- 23 UI element pages
-
Django Admin Models: 40+ models with comprehensive coverage
-
Pages Needing Backend Work: 5 pages (mostly using mock data)
-
Pages Regular Users Need: ~13 settings pages
-
Pages That Should Be Admin-Only: 41 pages
Priority Actions:
- ✅ High Priority: Add route-level AdminGuard protection to all
/admin/*routes - 🚧 Medium Priority: Implement backend for mock data pages (account-limits, activity-logs, system-settings)
- 📝 Low Priority: Complete placeholder pages (AI settings, system settings, testing pages)
- 🔄 Consider: Add developer mode toggle for borderline monitoring pages
- 🎨 Optional: Feature-flag or remove UI elements showcase pages from production
Architecture Strength:
✅ Strong Django admin foundation with 40+ models
✅ Clear separation between admin and user-facing features
✅ Comprehensive API coverage for most operations
⚠️ Route-level protection needs improvement
🚧 Some features still using mock data
End of Comprehensive Audit