Skip to main content

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/stats and standard /metrics (Prometheus format).
  • Observability Strategy: Zero-overhead Prometheus metrics exporter (prometheus-fastapi-instrumentator 7.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:

DomainRole / TargetVerification Focus
admin.bizoholic.comSuper Admin / Platform OperatorTenant/User management, Bulk CRUD operations, System Telemetry, Security Logs
app.bizoholic.comClient TenantWorkspace operations, Campaigns, E-commerce, Marketing AI agents
partner.bizoholic.comPartner / Agency ManagerMulti-tenant delegation, client account management
thrillring.com / bizoholic.comPrimary Storefront / BrandPublic landing pages, marketing funnel, customer checkout

3.2 Verification Test Matrix

Step 1: Telemetry & Live Stats Sync

  1. Log in to admin.bizoholic.com as a Super Admin.
  2. Navigate to Platform Overview / Stats.
  3. Confirm that Total Tenants, Total Users, and Monthly Revenue display real calculated figures rather than zero or static mock data.
  4. Verify the raw Prometheus metrics endpoint by navigating to: https://admin.bizoholic.com/metrics or http://localhost:8000/metrics
  5. Ensure key metrics are visible:
    • http_requests_total
    • http_request_duration_seconds
    • Custom BizOSaaS operational gauges

Step 2: Bulk User Role Update & Deletion

  1. In admin.bizoholic.com, open User Management (/admin/users).
  2. Select multiple target test user checkboxes.
  3. Click Bulk ActionsChange Role → Select Partner or Client.
  4. Confirm successful status message and role update in table.
  5. Select test user checkboxes and click Bulk Delete.
  6. Confirm deletion modal, proceed, and verify users are removed from the list.
  7. Note: The owner account ([email protected]) is protected from bulk deletion.

Step 3: Bulk Tenant Status Update & Deletion

  1. Open Tenant Management (/admin/tenants).
  2. Select test tenant checkboxes.
  3. Click Bulk ActionsPause Tenants (or Activate).
  4. Verify tenant status updates immediately across the list.
  5. Select a test tenant and execute Bulk Delete.
  6. Confirm associated users and configurations are cleaned up gracefully.

Step 4: Grafana Cloud Integration (Free Tier)

  1. In Grafana Cloud, navigate to ConnectionsPrometheus.
  2. Configure a scrape job pointing to https://admin.bizoholic.com/metrics (or via Grafana Alloy agent on the VPS).
  3. 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-instrumentator version 7.1.0 is installed. The routing layer includes a safety check for hasattr(route, "path") to prevent conflicts with Starlette's _IncludedRouter proxy objects.
  • Audit Log UUID Serialization: AuditService formats user_id as 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.