- 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)
1.0 KiB
1.0 KiB
11 — Test & Acceptance
Quality gate
每个 milestone 必须:
- typecheck
- unit tests
- API integration tests
- critical E2E
- security regression
Critical E2E
- login → workspace → dashboard
- add server → connect → inspect
- server → containers → restart → audit
- create project → connect repository
- create website → deploy → health check
- domain → DNS verify
- create task → link project/resource
- create automation → run → inspect job
- AI read-only query
- AI mutation → approval → execution → verification
- MCP tool call → same permission/audit behavior
- credential create → access → redaction
Security tests
- cross-workspace resource access denied
- unauthorized server command denied
- secret never returned by API
- secret never appears in logs
- webhook replay rejected
- destructive AI action requires approval
- production defaults rejected
Done definition
V1 Phase 2 不是“页面全部存在”,而是上述闭环可真实运行。