Control Plane

The obleth Next.js dashboard: what it shows, how to configure it, and how it connects to the Management API.

The control plane is a Next.js dashboard that consumes the obleth Management API exclusively — it never touches Postgres, Redis, or ClickHouse directly. All business logic, validation, and audit logging is in one place (the Management API), and the dashboard is just a UI.

Accessing the dashboard

EnvironmentURL
Docker Compose (dev)http://localhost:3002
Kubernetes (Helm default)http://localhost:3000 (via port-forward) or your Ingress host

In the Docker Compose stack, the dashboard uses dev-admin-token by default. Change it by setting OBLETH_ADMIN_TOKEN and NEXT_PUBLIC_ADMIN_BASE_URL in the control-plane environment.

What the dashboard shows

Overview

  • Live system stats: global in_flight, queued, max_in_flight
  • Token throughput charts (input/output tokens per time bucket)
  • Request rate by admission class (fast, queued, brownout)

Tenants

  • List of all tenants with weight, TPM quota, and group
  • Create, view, and delete tenants
  • Live weight change (calls PATCH /api/v1/tenants/{id}/weight)
  • Quota update (calls PUT /api/v1/tenants/{id}/quota)
  • Per-tenant usage breakdown from ClickHouse

API Keys

  • List all keys with prefix, tenant, status
  • Create a new key for any tenant (secret shown once)
  • Disable/enable and delete keys

Models

  • Model registry: list, create, update, delete
  • Toggle model enabled/disabled
  • Enable/disable and configure the response cache per model
  • Cache stats: 24h hit rate, hits, misses, tokens saved

Fairshare live view

  • Real-time snapshot of the scheduler: per-tenant in_flight, queued, served_tokens, share_score
  • Per-group breakdown (hierarchical mode)
  • Auto-refreshes every few seconds

MCP Servers

  • Register, update, and delete MCP server entries
  • Toggle enabled/disabled

Usage & Costs

  • Token usage aggregated by tenant, key, or model
  • Time-series charts bucketed by 5-minute intervals
  • Cost breakdown using per-model input_cost_per_token and output_cost_per_token rates

Audit log

  • Timeline of all config mutations: who changed what and when
  • Filterable by action type and entity

Configuration

VariablePurpose
OBLETH_ADMIN_BASE_URLBase URL of the Management API (e.g. http://localhost:9090)
OBLETH_ADMIN_TOKENAdmin bearer token for all Management API calls
DASHBOARD_USERNAMEBasic auth username for the dashboard login page
DASHBOARD_PASSWORDBasic auth password
DASHBOARD_SESSION_SECRETNextAuth.js session secret (change in production)

In the Docker Compose stack, these are configured via deploy/docker/.env.