Cloud-agnostic, Docker-ready Express.js backend for the FastStart admin dashboard.
- Full REST API for environments, insights, agents, pipelines, prompts, signups, tasks, and more
- JWT authentication with pluggable providers (Cognito, Auth0, Okta, Keycloak)
- All AWS SDK v3 calls preserved (DynamoDB, S3, STS, Organizations, CloudFormation, SSM, CodePipeline, etc.)
- Request logging with pino
- Graceful shutdown
- Docker multi-stage build
- GitHub Actions CI/CD with GHCR
npm install
cp .env.example .env
# Edit .env with your configuration
npm run devAll configuration is via environment variables. See .env.example for the full list.
| Variable | Description | Default |
|---|---|---|
PORT |
Server port | 3000 |
AUTH_PROVIDER |
cognito or oidc |
cognito |
AUTH_ISSUER |
JWT issuer URL | — |
AUTH_JWKS_URI |
JWKS endpoint URL | — |
AWS_REGION |
AWS region | us-east-1 |
CORS_ORIGIN |
CORS allowed origin | * |
docker build -t admin-api .
docker compose upGET /health— Health check (unauthenticated)
GET /api/environments— List all environmentsPOST /api/environments— Create environmentGET /api/environments/:id— Get environment detailsDELETE /api/environments/:id— Close environmentGET /api/environments/:id/connect— Connection instructionsGET /api/environments/:id/console-credentials— Console credentialsPOST /api/environments/:id/access-keys— Generate access keysPOST /api/environments/:id/email-keys— Email access keysGET /api/environments/:id/ssm-url— SSM session URLGET /api/environments/:id/stack-progress— Stack deployment progressPATCH /api/environments/:id/display-name— Rename environmentGET /api/environments/:id/messages— Chat messages
GET /api/insights/security— Security findingsGET /api/insights/costs— Cost breakdownGET /api/insights/tokens— Token usageGET /api/insights/quotas— Quota statusGET /api/insights/litellm— LiteLLM overviewGET /api/insights/litellm/keys— Usage by keyGET /api/insights/litellm/models— Usage by modelGET /api/insights/litellm/timeline— Usage timeline
POST /api/agent-send— Send prompt/command to agentsGET /api/agent-history/:accountId— Command historyGET /api/agent-result/:accountId/:commandId/:instanceId— Command result
GET /api/signups— List signupsPOST /api/signups/:id/approve— Approve and provisionGET /api/signups/:id/check— Check for conflictsPATCH /api/signups/:id/status— Update statusGET /api/signups/:id/template— CloudFormation template URLDELETE /api/signups/:id— Delete signup
GET /api/keys— List keysPOST /api/keys— Create keyPATCH /api/keys/:id/deactivate— Deactivate keyPATCH /api/keys/:id/activate— Activate keyGET /api/keys/:id/usage— Key usageDELETE /api/keys/:id— Delete key
GET /api/litellm/keys— List virtual keysPATCH /api/litellm/keys/:token/budget— Update budget
GET /api/prompts— List promptsPOST /api/prompts— Create promptGET /api/prompts/:id— Get promptPUT /api/prompts/:id— Update promptDELETE /api/prompts/:id— Delete prompt
GET /api/tasks— List tasksPOST /api/tasks— Create taskPUT /api/tasks/:id— Update taskPOST /api/tasks/:id/move— Move taskDELETE /api/tasks/:id— Delete task
GET /api/pipelines— List pipelinesGET /api/pipelines/active-tasks— Active task IDs
GET /api/dashboard/stats— Aggregated stats
GET /api/bootstrap/brain— List brain templatesGET /api/bootstrap/brain/:filename— Get template filePUT /api/bootstrap/brain/:filename— Update template fileGET /api/bootstrap/scripts— List bootstrap scriptsGET /api/bootstrap/scripts/:filename— Get script contentPUT /api/bootstrap/scripts/:filename— Update script
GET /api/reveal/:token— Redeem one-time key linkPOST /api/loki/wake— Trigger Loki heartbeatGET /api/apps— List apps from registry