Entrega read-only de apontamentos DNS (Cloudflare, OpenPanel BIND, público) no Desk e Console /admin/dominio, com spec, scripts de rollback e patches VM112 para painel lateral no passo DNS do onboarding (deploy wizard pendente). Co-authored-by: Cursor <cursoragent@cursor.com>
90 lines
2.8 KiB
Markdown
90 lines
2.8 KiB
Markdown
# Spec 037 — Plano de implementação (4 fases FECHADAS)
|
|
|
|
**Roger · 2026-06-22** · Status: 🏗️ **CONSTRUÇÃO ACTIVA** (Fase A deploy VM112 ✅)
|
|
|
|
Todas as fases estão **definidas e fechadas** para execução. Ordem de construção obrigatória: **A → B → C → D**.
|
|
|
|
---
|
|
|
|
## Fase A — VM112 núcleo (FastAPI + wizard)
|
|
|
|
**Objectivo:** Multi-conta CF, BYO, `proj_*@ligbox.com.br`, provision-zone, apply.
|
|
|
|
| Entrega | Path / endpoint |
|
|
|---------|-----------------|
|
|
| Registry 3 contas | `dns-accounts.yaml` + `dns_account_registry.py` |
|
|
| Resolve / BYO | `GET /dns/resolve`, `POST /dns/cloudflare/connect-custom` |
|
|
| Zona cliente | `POST /dns/cloudflare/provision-zone` |
|
|
| Identidade projeto | `POST /project/provision-email`, `GET /project/{domain}` |
|
|
| UI wizard | 3 caminhos DNS + painel credenciais `proj_*` |
|
|
| Webhook 004 | `ligbox_project_email` em eventos |
|
|
|
|
**Critério done:** onboarding completo em VM112 sem Worker edge.
|
|
|
|
---
|
|
|
|
## Fase B — Worker orquestrador (1 Durable Object)
|
|
|
|
**Objectivo:** `onboard-maestro` DO por sessão; delega VM112 via HTTP; WebSocket wizard.
|
|
|
|
| Entrega | Path |
|
|
|---------|------|
|
|
| Worker | `projects/cloudflare-agents/onboard/` |
|
|
| DO | `OnboardMaestro` — estado sessão |
|
|
| Routes | `POST /session`, `WS /session/{id}` |
|
|
| Client | `vm112_client.ts` → API onboarding |
|
|
|
|
**Critério done:** wizard pode usar edge OU VM112 directo (feature flag).
|
|
|
|
---
|
|
|
|
## Fase C — Multi-agent edge (4 agentes)
|
|
|
|
**Objectivo:** Especialização + human-in-the-loop + MCP.
|
|
|
|
| Agente DO | Tools |
|
|
|-----------|-------|
|
|
| `proj-mail` | provision-email |
|
|
| `cf-zone` | provision-zone, apply, verify |
|
|
| `cf-handoff` | handoff-manager (stub → Fase D) |
|
|
| `onboard-maestro` | coordena + pausa humana |
|
|
|
|
**Critério done:** 4 passos críticos com pause/resume; eventos VM122 Spec 029.
|
|
|
|
---
|
|
|
|
## Fase D — Conta CF dedicada por cliente
|
|
|
|
**Objectivo:** `POST /accounts` Tenant + handoff gestor.
|
|
|
|
| Entrega | Endpoint VM112 |
|
|
|---------|----------------|
|
|
| Conta CF cliente | `POST /dns/cloudflare/provision-client-account` |
|
|
| Handoff | `POST /dns/cloudflare/handoff-manager` |
|
|
| Registo | `/var/lib/ligbox-wizard/cf_client_accounts/` |
|
|
|
|
**Pré-requisito:** Tenant Cloudflare Ligbox activo.
|
|
|
|
**Critério done:** zona na conta **do cliente**, não na mãe ibytera.
|
|
|
|
---
|
|
|
|
## Anexos (referência fechada)
|
|
|
|
| Doc | Conteúdo |
|
|
|-----|----------|
|
|
| [spec.md](./spec.md) | Visão geral |
|
|
| [client-cf-account-lifecycle.md](./client-cf-account-lifecycle.md) | Fase D regras |
|
|
| [project-email-identity.md](./project-email-identity.md) | Fase A identidade |
|
|
| [cf-agents-sdk-architecture.md](./cf-agents-sdk-architecture.md) | Fases B+C |
|
|
|
|
---
|
|
|
|
## Construção — sprint actual
|
|
|
|
```
|
|
[A] VM112 endpoints project + wizard UI ← AGORA
|
|
[B] Worker scaffold + wrangler
|
|
[C] Agent classes no Worker
|
|
[D] provision-client-account stub + handoff stub
|
|
```
|