Hosted Control Plane
RepoDocs AI now includes a small hosted control plane for repository-native automation.
It is intentionally scoped as an evaluation and internal automation surface, not as a finished enterprise platform.
Purpose
- expose validation, export, agent, analytics, and graph jobs over HTTP
- provide a lightweight dashboard for hosted deployment
- surface generated artifacts without requiring shell access
- protect automation endpoints with per-user API-key or bearer-token authentication
- accept multiple job requests safely through durable queued execution
- persist users, keys, queue state, and run history in Redis-backed shared state
Run Locally
npm run control-plane:start
Default address:
http://127.0.0.1:4312
Environment variables:
REPODOCS_CONTROL_PLANE_HOSTREPODOCS_CONTROL_PLANE_PORTREDIS_URLREPODOCS_CONTROL_PLANE_DATA_DIRREPODOCS_CONTROL_PLANE_BOOTSTRAP_USERREPODOCS_CONTROL_PLANE_BOOTSTRAP_DISPLAY_NAMEREPODOCS_CONTROL_PLANE_BOOTSTRAP_KEY
Authentication:
- protected endpoints accept
X-API-Key: <token> - protected endpoints also accept
Authorization: Bearer <token> - bootstrap the first admin account with
REPODOCS_CONTROL_PLANE_BOOTSTRAP_KEY - user records, queue state, and run metadata are persisted in Redis
GET /healthandGET /auth/statusremain available for health and auth discovery
User management endpoints:
GET /usersPOST /usersPATCH /users/:idPOST /users/:id/keysDELETE /users/:id/keys/:keyId
Endpoints
GET /healthGET /auth/statusGET /jobsGET /runsGET /artifactsGET /dashboardPOST /jobs/validatePOST /jobs/agentPOST /jobs/analyticsPOST /jobs/graphPOST /jobs/automationPOST /jobs/export
Hosting Model
This control plane is intentionally small. It is suitable for a single-process hosted deployment behind a reverse proxy or container platform. The service runs existing npm automation commands and returns run metadata plus artifact summaries.
Container Deployment
Build:
npm run docker:control-plane:build
Run:
docker run --rm -p 4312:4312 --add-host=host.docker.internal:host-gateway -v repodocs-ai-control-plane-data:/var/data -e REDIS_URL=redis://host.docker.internal:6379 -e REPODOCS_CONTROL_PLANE_HOST=0.0.0.0 -e REPODOCS_CONTROL_PLANE_DATA_DIR=/var/data/control-plane -e REPODOCS_CONTROL_PLANE_BOOTSTRAP_USER=admin -e REPODOCS_CONTROL_PLANE_BOOTSTRAP_KEY=replace-me repodocs-ai-control-plane
Local Compose Stack
For local end-to-end verification, set REPODOCS_CONTROL_PLANE_BOOTSTRAP_KEY and run:
npm run control-plane:stack:smoke
The compose stack publishes health checks for both Redis and the control plane so readiness is visible in docker compose ps.
Render Deployment
The repository now includes a render.yaml manifest for deploying the control plane as a Docker-backed web service with a persistent disk mounted at /var/data.
Current Limits
- one active worker processes queued jobs in FIFO order
- multiple requests can be accepted while work is already running or after a process restart
- local process execution only
- artifact storage remains filesystem-based
- authentication is per-user and role-based, but not yet tied to an external identity provider
- Redis-backed queue storage is in place, but the runtime is still intentionally lightweight rather than a full tenant-isolated orchestration platform
- identity-provider integration, tenancy isolation, audit logging, and broader operational controls are not yet implemented