Files
devos/Docs/devos-v1/07-BACKEND-ARCHITECTURE.md
phptits 0d6cd37579 DevOS v1 + Phase 2: unified resource model, infra ops, website deployment, AI chat ops
- 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)
2026-09-10 06:35:55 +00:00

74 lines
1.6 KiB
Markdown

# DevOS v1 Backend Architecture
## 1. Style
Modular monolith with NestJS.
## 2. Suggested Structure
```text
apps/api/
├── src/
│ ├── modules/
│ │ ├── identity/
│ │ ├── workspace/
│ │ ├── resource/
│ │ ├── permission/
│ │ ├── audit/
│ │ ├── server/
│ │ ├── container/
│ │ ├── website/
│ │ ├── domain/
│ │ ├── deployment/
│ │ ├── monitoring/
│ │ ├── automation/
│ │ └── ai/
│ ├── integrations/
│ │ ├── ssh/
│ │ ├── docker/
│ │ ├── git/
│ │ ├── dns/
│ │ ├── cloud/
│ │ └── email/
│ ├── common/
│ └── main.ts
```
## 3. Rules
- Controllers handle transport only.
- DTOs define input/output contracts.
- Business logic belongs in application/domain services.
- Provider-specific logic belongs behind adapters.
- Credential access is centralized.
- Mutations are auditable.
- Long-running operations run asynchronously.
- External calls have timeouts, retries where safe, and idempotency where possible.
## 4. Infrastructure Adapters
DevOS does not reimplement:
- SSH
- Git
- Docker
- DNS
- SMTP
- cloud control planes
It provides unified adapters over those systems.
## 5. Async Execution
Use Redis-backed jobs for:
- deployment
- server discovery
- monitoring checks
- long-running SSH commands
- automation execution
## 6. Observability
Every operation should carry:
- request ID
- correlation ID
- actor
- workspace
- resource
- action
- outcome