BizOSaaS Admin Portal — Verification & Operational Guide
Date: 2026-08-10
Status: 🟢 Operational & Fully Verified
Telemetry Architecture: Phase 1 (Native Prometheus Exporter + Native Admin Dashboard + Grafana Cloud Free Tier)
Admin Capabilities: Live Telemetry Dashboard, Multi-Tenant Management, Bulk CRUD Operations (Users & Tenants), Role & Status Management.
1. Executive Summary
This guide provides a comprehensive overview of the BizOSaaS Administration Portal, including setup verification, local automated testing procedures, and manual verification steps for production environments (admin.bizoholic.com, app.bizoholic.com, partner.bizoholic.com).
Architecture Highlights
- Bulk Admin CRUD Operations: Bulk role updates, bulk user deletion, bulk tenant status updates, and bulk tenant deletion exposed via
/api/admin/*endpoints. - Live Metrics Sync: Telemetry queried dynamically from real database instances (
tenants,user,orders), exposing/api/admin/statsand standard/metrics(Prometheus format). - Observability Strategy: Zero-overhead Prometheus metrics exporter (
prometheus-fastapi-instrumentator7.1.0) feeding into the native Admin Dashboard and Grafana Cloud (Free Tier).
2. Automated Local Verification Suite
We provide a programmatic end-to-end verification script (test-local-bulk-admin.py) that initializes an in-memory SQLite database, seeds tenants, users, and audit logs, and validates all admin endpoints using an isolated HTTP client (httpx.AsyncClient).
Prerequisites
- Python 3.10+ virtual environment (
apps/ai-service/venv) - FastAPI service dependencies installed (
httpx,prometheus-fastapi-instrumentator,sqlalchemy)
Execution Command
Run the test script from the repository root:
cd /media/alagirirajesh/storage/projects/bizosaas-platform
rm -f apps/ai-service/ai-agents/test.db
apps/ai-service/venv/bin/python test-local-bulk-admin.py
Expected Output
=========================================================
🛠️ Admin Portal Live Metrics & Bulk CRUD Operations Test
=========================================================
✅ Test SQLite database seeded successfully with 1 Tenant and 2 Users.
🔹 Testing GET /api/admin/stats (Live Metrics Sync)...
Status Code: 200
✅ Live Stats Output: total_tenants=1, total_users=2, monthly_rev=$14950.0
🔹 Testing POST /api/admin/users/bulk-update-role...
Status Code: 200
✅ Bulk Role Update Output: {'status': 'success', 'updated_count': 2, 'new_role': 'partner'}
🔹 Testing POST /api/admin/users/bulk-delete...
Status Code: 200
✅ Bulk User Delete Output: {'status': 'success', 'deleted_count': 2, 'errors': []}
🔹 Testing POST /api/admin/tenants/bulk-update-status...
Status Code: 200
✅ Bulk Tenant Status Update Output: {'status': 'paused', 'updated_count': 1}
🔹 Testing POST /api/admin/tenants/bulk-delete...
Status Code: 200
✅ Bulk Tenant Delete Output: {'status': 'success', 'deleted_count': 1}
🎉 ALL BULK ADMIN & LIVE METRICS TESTS PASSED SUCCESSFULLY!
3. Step-by-Step Manual & Portal Verification Guide
3.1 Domain Map & Scope
Verify that the following production & staging domain routes operate cleanly with authentication/role-based access control:
| Domain | Role / Target | Verification Focus |
|---|---|---|
admin.bizoholic.com | Super Admin / Platform Operator | Tenant/User management, Bulk CRUD operations, System Telemetry, Security Logs |
app.bizoholic.com | Client Tenant | Workspace operations, Campaigns, E-commerce, Marketing AI agents |
partner.bizoholic.com | Partner / Agency Manager | Multi-tenant delegation, client account management |
thrillring.com / bizoholic.com | Primary Storefront / Brand | Public landing pages, marketing funnel, customer checkout |
3.2 Verification Test Matrix
Step 1: Telemetry & Live Stats Sync
- Log in to
admin.bizoholic.comas a Super Admin. - Navigate to Platform Overview / Stats.
- Confirm that Total Tenants, Total Users, and Monthly Revenue display real calculated figures rather than zero or static mock data.
- Verify the raw Prometheus metrics endpoint by navigating to:
https://admin.bizoholic.com/metricsorhttp://localhost:8000/metrics - Ensure key metrics are visible:
http_requests_totalhttp_request_duration_seconds- Custom BizOSaaS operational gauges
Step 2: Bulk User Role Update & Deletion
- In
admin.bizoholic.com, open User Management (/admin/users). - Select multiple target test user checkboxes.
- Click Bulk Actions → Change Role → Select Partner or Client.
- Confirm successful status message and role update in table.
- Select test user checkboxes and click Bulk Delete.
- Confirm deletion modal, proceed, and verify users are removed from the list.
- Note: The owner account (
[email protected]) is protected from bulk deletion.
Step 3: Bulk Tenant Status Update & Deletion
- Open Tenant Management (
/admin/tenants). - Select test tenant checkboxes.
- Click Bulk Actions → Pause Tenants (or Activate).
- Verify tenant status updates immediately across the list.
- Select a test tenant and execute Bulk Delete.
- Confirm associated users and configurations are cleaned up gracefully.
Step 4: Grafana Cloud Integration (Free Tier)
- In Grafana Cloud, navigate to Connections → Prometheus.
- Configure a scrape job pointing to
https://admin.bizoholic.com/metrics(or via Grafana Alloy agent on the VPS). - Import the default FastAPI / HTTP Dashboard to view real-time request rates, error codes, and latency metrics.
4. Troubleshooting & Operational Notes
- Prometheus Instrumentator Compatibility:
prometheus-fastapi-instrumentatorversion7.1.0is installed. The routing layer includes a safety check forhasattr(route, "path")to prevent conflicts with Starlette's_IncludedRouterproxy objects. - Audit Log UUID Serialization:
AuditServiceformatsuser_idas string UUIDs to ensure uniform compatibility across PostgreSQL native UUIDs and SQLite string types. - Emergency Ops: In case of emergency or queue stalls, use the platform Panic Button (
/admin/security) to halt active agent swarms.