ligbox-ops-platform/specs/037-dns-multi-cloudflare-orchestration/implementation-phases.md
Ligbox Spec Hub 038fb8f7ce feat(dns): Spec 037 DNS Viewer — Desk, Console e patches Wizard V4
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>
2026-06-25 16:36:25 +00:00

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
```