Skip to main content

Purpose

The Admin Control Plane is the operational nerve centre for MCSP. It runs in a physically separate Kubernetes cluster from the data plane — admin operations cannot interfere with viewer streaming even under catastrophic misconfiguration. All actions performed via the control plane write to the immutable audit log. Admin access requires Platform Admin role; human reviewers access only the Moderation Dashboard subset.
Zero-Trust boundary. Every inter-service call on MCSP requires a valid mTLS client certificate issued per service identity. No internal endpoint is reachable without mutual authentication — the service mesh (Istio) enforces this independently of application code.

Responsibilities

DomainDetail
User lifecycle managementSuspend, ban, or reinstate user accounts. All actions are audit-logged with actor, reason, and timestamp. Account suspension immediately invalidates active sessions via Redis TTL forced expiry.
Content moderation workflowSurfaces flagged content queue to human moderators. Moderators approve (restore), remove (confirm takedown), or escalate. Each decision is audit-logged. The control plane makes decisions; the Content Service executes them.
Residency policy administrationPlatform Admins set organisation-level residency defaults and can revoke incorrectly granted residency decisions (within a restricted audit-logged exception workflow).
Ad campaign managementCRUD for ad campaigns: targeting criteria, creative assets, schedule, budget. Ad campaign configuration consumed by the Ad Server at playback time.
Subscription plan managementCreate, modify, and retire subscription plans. Active subscribers are not automatically migrated on plan changes — an explicit migration workflow is required.
Audit log accessPlatform Admins can read (but not modify) audit log records. Export to CSV for compliance reporting and third-party audit engagements.
Platform analyticsAggregate platform-level metrics: DAU/MAU, total streams, revenue, moderation queue depth, storage tier distribution. Read-only — sourced from analytics pipeline.

API Surface

MethodEndpointAuthDescription
POST/api/v1/admin/users/{userId}/suspendPlatform AdminSuspend a user account
POST/api/v1/admin/users/{userId}/banPlatform AdminPermanently ban a user
GET/api/v1/admin/moderation/queuePlatform Admin / ModeratorFetch pending moderation items
POST/api/v1/admin/moderation/{itemId}/decisionPlatform Admin / ModeratorSubmit moderation decision (APPROVE/REMOVE/ESCALATE)
GET/api/v1/admin/audit-logPlatform AdminQuery audit log records
POST/api/v1/admin/plansPlatform AdminCreate subscription plan
PATCH/api/v1/admin/plans/{planId}Platform AdminModify subscription plan
GET/api/v1/admin/analytics/platformPlatform AdminPlatform-level aggregate metrics

Data Owned

StoreContent
Postgres (control plane DB)moderation_queue, moderation_decisions, admin_actions, subscription_plans, ad_campaigns
Audit Store (append-only)All admin actions, moderation decisions, residency decisions, financial transactions

Kafka Topics

The Admin Control Plane does not produce domain events. Its state changes trigger synchronous calls to downstream services (Content Service for takedowns, Auth Service for session revocation).
Audit log writes are synchronous and write-path critical. Unlike fire-and-forget telemetry, audit log write failures are surfaced back to the calling service. The audit store uses an append-only schema — no DELETE or UPDATE is permitted by any application principal.

Failure Behaviour

FailureBehaviour
Control plane unavailableViewer streaming continues unaffected (separate cluster). New moderation decisions cannot be entered. Flagged content remains in its current state (HELD or visible) until recovery.
Moderation pipeline failureFlagged content enters a holding queue and is not auto-approved. Human review resumes on recovery.
Audit store write failureAction that triggered the write is rolled back (not committed). The audit store write is synchronous and write-path critical — audit guarantees are not degraded silently.

Separation from Data Plane

The Admin Control Plane is the concrete implementation of Principle 9 — Separation of Control Plane and Data Plane. Cross-plane calls from the control plane to the streaming data plane are made through well-defined, rate-limited internal APIs — the control plane cannot directly write to data-plane databases or call media pipeline services.

Build docs developers (and LLMs) love