Control Plane UI
The Control Plane UI is the platform administration interface running on port 3004. It provides tenant management, user administration, billing and usage tracking, infrastructure monitoring, service provisioning, topology visualization, and an administrative AI assistant. This interface is used by platform administrators and tenant managers to configure and monitor the MATIH platform.
Application Structure
frontend/control-plane-ui/src/
components/
AdminAssistant/ # AI assistant for admin tasks
audit/ # Audit log browsing
Billing/ # Billing and usage management
ErrorBoundary.tsx # Error boundary
executive/ # Executive dashboard components
infrastructure/ # Infrastructure monitoring
Layout/ # Layout components
provisioning/ # Tenant provisioning wizard
SupportChatWidget.tsx # Support chat integration
Topology/ # Service topology visualization
users/ # User management
Wizard/ # Configuration wizards
hooks/
useAuditLog.ts # Audit log data access
useUsers.ts # User management operations
pages/ # Route-level page components
App.tsx # Root application component
main.tsx # Vite entry pointKey Numbers
| Metric | Value |
|---|---|
| Port | 3004 |
| Component directories | 12 |
| Custom hooks | 2 |
| Backend integrations | IAM Service, Tenant Service, Billing Service, Audit Service, Infrastructure Service |
Tenant Management
The tenant management section provides a complete lifecycle view of all tenants on the platform.
Tenant List
| Column | Description |
|---|---|
| Tenant name | Display name of the tenant organization |
| Slug | URL-safe identifier used in routing and namespacing |
| Status | Active, Provisioning, Suspended, Decommissioning |
| Plan | Subscription tier (Starter, Professional, Enterprise) |
| Users | Number of active users |
| Data volume | Current data storage utilization |
| Created | Tenant creation date |
| Health | Overall health indicator based on service status |
Tenant Detail View
The tenant detail view provides deep information organized in tabs:
| Tab | Content |
|---|---|
| Overview | Tenant metadata, status, plan, resource quotas, health summary |
| Services | Per-service status for all data plane services in the tenant namespace |
| Users | User list with roles, last login, and activity summary |
| Configuration | Tenant-specific configuration overrides |
| Usage | Resource usage metrics: compute, storage, queries, API calls |
| Billing | Current charges, invoice history, payment status |
| Audit | Audit trail of all administrative actions on this tenant |
| Networking | DNS zones, ingress configuration, TLS certificates |
Provisioning Wizard
The provisioning/ directory contains a multi-step wizard for provisioning new tenants:
| Step | Title | Configuration |
|---|---|---|
| 1 | Organization Details | Tenant name, slug, contact information |
| 2 | Plan Selection | Subscription tier and resource quotas |
| 3 | Namespace Configuration | Kubernetes namespace, resource limits |
| 4 | Service Selection | Which data plane services to deploy |
| 5 | Database Provisioning | Per-tenant database creation |
| 6 | Networking | DNS zone, ingress controller, TLS |
| 7 | Initial Users | Create initial admin and user accounts |
| 8 | Review and Confirm | Summary of all settings before provisioning |
The wizard submits the provisioning request to the Tenant Service, which orchestrates the multi-phase deployment described in Chapter 7.
User Administration
The users/ component directory provides user management capabilities:
User List
| Column | Description |
|---|---|
| Name | Full name of the user |
| Email address (login identifier) | |
| Role | Assigned role (Platform Admin, Tenant Admin, Analyst, Engineer, Viewer) |
| Status | Active, Invited, Suspended, Locked |
| Last login | Timestamp of most recent authentication |
| MFA enabled | Multi-factor authentication status |
| Tenant access | List of tenants the user can access |
User Management Actions
| Action | Description | Permission Required |
|---|---|---|
| Invite user | Send invitation email with role assignment | Tenant Admin |
| Edit role | Change user's role and permissions | Tenant Admin |
| Suspend user | Temporarily disable account access | Tenant Admin |
| Reset password | Trigger password reset flow | Platform Admin |
| Enable/disable MFA | Manage multi-factor authentication | Platform Admin |
| View audit trail | See all actions performed by this user | Audit Viewer |
| Manage tenant access | Grant or revoke access to specific tenants | Platform Admin |
User Hook
// frontend/control-plane-ui/src/hooks/useUsers.ts
export function useUsers() {
// User CRUD operations backed by IAM Service
const listUsers = useCallback(async (params?: UserListParams) => { /* ... */ }, []);
const getUser = useCallback(async (userId: string) => { /* ... */ }, []);
const inviteUser = useCallback(async (invitation: UserInvitation) => { /* ... */ }, []);
const updateUserRole = useCallback(async (userId: string, role: string) => { /* ... */ }, []);
const suspendUser = useCallback(async (userId: string, reason: string) => { /* ... */ }, []);
const resetPassword = useCallback(async (userId: string) => { /* ... */ }, []);
return { listUsers, getUser, inviteUser, updateUserRole, suspendUser, resetPassword };
}Billing Management
The Billing/ component directory provides billing and usage tracking:
Billing Dashboard
| Widget | Content |
|---|---|
| Current month charges | Running total for the current billing period |
| Usage breakdown | Cost breakdown by service (compute, storage, queries, AI tokens) |
| Usage trend | Month-over-month usage trend chart |
| Plan utilization | Percentage of plan quotas consumed |
| Invoice history | List of past invoices with payment status |
| Cost forecasting | Projected charges for the remainder of the billing period |
Plan Comparison
| Feature | Starter | Professional | Enterprise |
|---|---|---|---|
| Users | 5 | 25 | Unlimited |
| Storage | 100 GB | 1 TB | Custom |
| Queries/day | 1,000 | 50,000 | Unlimited |
| AI tokens/month | 100K | 1M | Custom |
| Dashboards | 10 | 100 | Unlimited |
| SLA | -- | 99.5% | 99.99% |
| Support | Priority | Dedicated |
Infrastructure Monitoring
The infrastructure/ component directory provides visibility into the platform's infrastructure layer:
Infrastructure Dashboard
| Panel | Content |
|---|---|
| Cluster overview | Kubernetes cluster health, node count, resource utilization |
| Service status | Health status of all Control Plane and Data Plane services |
| Resource utilization | CPU, memory, disk, and network utilization across namespaces |
| Pod status | Running, pending, failed, and restarting pod counts |
| Storage | Persistent volume claims, usage, and capacity |
| Network | Ingress traffic, inter-service communication, DNS resolution |
Service Health Grid
+-----------------------------------------------------------+
| Service Health |
+-----------------------------------------------------------+
| Control Plane: |
| [OK] IAM [OK] Tenant [OK] Config [OK] Billing |
| [OK] Audit [OK] Notify [OK] Registry [OK] Infra |
| [OK] Gateway [OK] Observability |
+-----------------------------------------------------------+
| Data Plane (tenant: acme-corp): |
| [OK] Query Engine [OK] AI Service [OK] BI Service |
| [!] Pipeline Svc [OK] Catalog Svc [OK] ML Service |
| [OK] Governance [OK] Render Svc [OK] Semantic Layer |
+-----------------------------------------------------------+
| Infrastructure: |
| [OK] PostgreSQL [OK] Redis [OK] Kafka |
| [OK] Trino [OK] Elasticsearch [OK] MinIO |
+-----------------------------------------------------------+Topology Visualization
The Topology/ component renders a visual map of service dependencies and communication patterns:
Topology View
+-----------------------------------------------------------+
| Platform Topology [Zoom] [Filter] [Layout] |
+-----------------------------------------------------------+
| |
| [Kong Gateway] |
| | | |
| [Control Plane] [Data Plane] |
| +---+---+---+ +---+---+---+ |
| |IAM|Ten|Cfg| |QE |AI |BI | |
| +---+---+---+ +---+---+---+ |
| | | | |
| [PostgreSQL] [Trino] [Redis] |
| | |
| [Kafka] |
| |
+-----------------------------------------------------------+
| Legend: [OK] Healthy [!] Degraded [X] Down |
+-----------------------------------------------------------+The topology view supports:
| Feature | Description |
|---|---|
| Interactive zoom | Zoom in/out and pan the topology graph |
| Node selection | Click a service to see its details, metrics, and dependencies |
| Edge highlighting | Hover over connections to see traffic volume and latency |
| Filtering | Filter by namespace, service type, or health status |
| Layout modes | Hierarchical, force-directed, or grid layout |
Audit Log Browsing
The audit/ component provides a searchable audit trail:
Audit Log Columns
| Column | Description |
|---|---|
| Timestamp | When the action occurred |
| Actor | User or service that performed the action |
| Action | What was done (create, update, delete, login, etc.) |
| Resource | What was affected (tenant, user, dashboard, etc.) |
| Details | Specific changes (before/after values) |
| IP address | Source IP of the request |
| Tenant | Tenant context of the action |
| Status | Success or failure |
Audit Hook
// frontend/control-plane-ui/src/hooks/useAuditLog.ts
export function useAuditLog() {
const fetchAuditLogs = useCallback(async (params: AuditLogParams) => {
// Query audit service with filters
// Supports: date range, actor, action, resource type, tenant
}, []);
const exportAuditLogs = useCallback(async (params: AuditLogParams, format: 'csv' | 'json') => {
// Export filtered audit logs
}, []);
return { fetchAuditLogs, exportAuditLogs };
}Admin Assistant
The AdminAssistant/ component provides an AI-powered assistant for administrative tasks:
| Capability | Example |
|---|---|
| Natural language queries | "How many active users does the acme-corp tenant have?" |
| Guided troubleshooting | "The pipeline service is showing errors for tenant xyz" |
| Configuration help | "What configuration changes would improve query performance?" |
| Compliance checks | "Is the acme-corp tenant compliant with our data retention policy?" |
| Usage analysis | "Which tenants have exceeded 80% of their storage quota?" |
Executive Dashboard
The executive/ component directory provides high-level platform overview dashboards for executives:
| Widget | Content |
|---|---|
| Platform health | Overall platform health score with trend |
| Active tenants | Total active tenants with growth rate |
| Monthly revenue | Current month revenue with forecast |
| User engagement | Daily/weekly/monthly active users across all tenants |
| Query volume | Platform-wide query execution volume |
| AI usage | Total AI tokens consumed with cost breakdown |
| SLA compliance | SLA achievement rate across all tenants |
Key Source Files
| Component | Location |
|---|---|
| Application entry | frontend/control-plane-ui/src/App.tsx |
| Admin assistant | frontend/control-plane-ui/src/components/AdminAssistant/ |
| Audit log | frontend/control-plane-ui/src/components/audit/ |
| Billing | frontend/control-plane-ui/src/components/Billing/ |
| Executive dashboard | frontend/control-plane-ui/src/components/executive/ |
| Infrastructure | frontend/control-plane-ui/src/components/infrastructure/ |
| Layout | frontend/control-plane-ui/src/components/Layout/ |
| Provisioning wizard | frontend/control-plane-ui/src/components/provisioning/ |
| Topology | frontend/control-plane-ui/src/components/Topology/ |
| User management | frontend/control-plane-ui/src/components/users/ |
| Configuration wizard | frontend/control-plane-ui/src/components/Wizard/ |
| Audit log hook | frontend/control-plane-ui/src/hooks/useAuditLog.ts |
| Users hook | frontend/control-plane-ui/src/hooks/useUsers.ts |