MATIH Platform is in active MVP development. Documentation reflects current implementation status.
15. Workbench Architecture
Control Plane UI
Overview

Control Plane UI Overview

The Control Plane UI is a React/Vite application that provides the administrative interface for platform operators and tenant administrators. It enables user management, billing configuration, audit log review, infrastructure monitoring, privacy controls, and tenant provisioning through a unified dashboard experience.


Application Structure

The Control Plane UI is located at frontend/control-plane-ui/ and follows the standard MATIH frontend architecture:

DirectoryPurpose
src/pages/Page components for each functional area
src/components/Reusable UI components
src/hooks/Custom React hooks
src/routes/Route definitions and guards
src/store/State management (Zustand)

Pages

PageComponentRouteDescription
AuthenticationAuthPages/auth/*Login, registration, password reset
Executive DashboardExecutiveDashboard/dashboardPlatform-wide KPI overview
User ManagementUserManagement/usersUser CRUD, role assignment
BillingBillingPage/billingInvoicing, usage metering, plan management
Audit LogAuditLogPage/auditSearchable audit event timeline
Privacy CenterPrivacyCenter/privacyData subject requests, consent management
InfrastructureInfrastructurePage/infrastructureCluster topology, resource monitoring
ProvisioningProvisioningWizard/provisioningTenant onboarding wizard

Technology Stack

TechnologyVersionPurpose
React18.xUI framework
Vite5.xBuild tool and dev server
TypeScript5.xType-safe development
Tailwind CSS3.xUtility-first styling
Zustand4.xState management
React Router6.xClient-side routing
TanStack Query5.xServer state management

Authentication Flow

The Control Plane UI uses JWT-based authentication through the IAM Service:

  1. User submits credentials on login page
  2. IAM Service validates and returns access + refresh tokens
  3. Tokens are stored in HTTP-only cookies
  4. API Client attaches tokens to all subsequent requests
  5. Token refresh happens transparently before expiration

Role-Based Access

RoleDashboardUsersBillingAuditInfrastructureProvisioning
Platform AdminFullFullFullFullFullFull
Tenant AdminTenantTenantViewTenantViewInitiate
OperatorViewNoneNoneViewFullNone
AuditorViewNoneNoneFullNoneNone

Development

cd frontend/control-plane-ui
npm install
npm run dev  # Starts on port 3004

Detailed Sections

SectionContent
Authentication PagesLogin, registration, MFA, password reset
Executive DashboardKPI cards, usage charts, health indicators
User ManagementUser CRUD, role assignment, team management
Billing and InvoicingPlans, usage metering, invoice history
Audit LogEvent search, filtering, export
Privacy CenterDSAR handling, consent, data retention
Infrastructure TopologyCluster view, resource monitoring
Provisioning WizardTenant creation, configuration steps