- Monorepo: NestJS API (Fastify) + React web (antd/ProComponents) + shared packages - PostgreSQL/Prisma (unified resources, relations graph, audit, events, jobs) - Auth/RBAC/workspace isolation, credential vault (AES-256-GCM) - Servers/SSH, Docker discovery & lifecycle, Job Center - Websites & deployments (git provider credential clone, env, health verification) - Domains/DNS (Cloudflare adapter), certificates (TLS probe), monitoring - Automation (cron/event/webhook HMAC + notifications), AI Gateway, MCP (29 tools) - AI chat window (LLM function-calling + rules fallback, SSE streaming, approvals) - Notes: Vditor WYSIWYG markdown editor, non-blocking autosave - Tests: 35 unit/security tests; UI audit clean (desktop+mobile, deep links)
2.0 KiB
2.0 KiB
DevOS v1 API Specification
1. API Style
Use versioned HTTP APIs under /api/v1.
All mutations use explicit DTOs and return structured resources/results.
2. Core Endpoints
Auth
POST /api/v1/auth/login
POST /api/v1/auth/logout
GET /api/v1/auth/me
Workspaces
GET /api/v1/workspaces
POST /api/v1/workspaces
GET /api/v1/workspaces/:workspaceId
Resources
GET /api/v1/resources
POST /api/v1/resources
GET /api/v1/resources/:id
PATCH /api/v1/resources/:id
DELETE /api/v1/resources/:id
GET /api/v1/resources/:id/relations
Servers
GET /api/v1/servers
POST /api/v1/servers
GET /api/v1/servers/:id
POST /api/v1/servers/:id/connect
GET /api/v1/servers/:id/status
GET /api/v1/servers/:id/containers
POST /api/v1/servers/:id/exec
POST /api/v1/servers/:id/restart
Websites
GET /api/v1/websites
POST /api/v1/websites
GET /api/v1/websites/:id
POST /api/v1/websites/:id/deploy
GET /api/v1/websites/:id/logs
GET /api/v1/websites/:id/health
Deployments
GET /api/v1/deployments
GET /api/v1/deployments/:id
POST /api/v1/deployments
POST /api/v1/deployments/:id/cancel
Domains
GET /api/v1/domains
POST /api/v1/domains
GET /api/v1/domains/:id
POST /api/v1/domains/:id/records
Automation
GET /api/v1/automations
POST /api/v1/automations
GET /api/v1/automations/:id
POST /api/v1/automations/:id/enable
POST /api/v1/automations/:id/disable
AI
POST /api/v1/ai/runs
GET /api/v1/ai/runs/:id
POST /api/v1/ai/runs/:id/approve
3. Mutation Contract
Every mutation:
- validates a DTO
- checks workspace authorization
- determines risk
- writes an audit record
- emits domain events when appropriate
- returns a request/correlation identifier
4. Error Contract
{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource was not found",
"requestId": "..."
}
}
Never expose stack traces, credentials or provider secrets through API errors.