ligbox-ops-platform/specs/037-dns-multi-cloudflare-orchestration/project-email-identity.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

4.5 KiB

Anexo 037-C — E-mail projeto proj_*@ligbox.com.br (agente Ligbox)

Parent: spec.md · 037-B client-cf-account-lifecycle.md
Solicitado por: Roger · 2026-06-22
Status: 📋 Regra definida — implementação Fase 2


Regra (Roger)

O agente Ligbox deve, para cada cliente em onboarding Cloudflare:

  1. Criar caixa real proj_{id}@ligbox.com.br no Carbonio (domínio ligbox.com.br).
  2. Gerar senha segura e entregar ao cliente (uma vez, no wizard / e-mail de boas-vindas).
  3. Referenciar este e-mail em todos os processos ligados à nova conta e à administração dos apontamentos de email da plataforma.

Não é alias passivo — é identidade operacional do projeto até handoff ao admin@{dominio_cliente}.


Ordem no fluxo (antes de CF + DNS cliente)

flowchart LR
  A[validate-domain] --> B[provision-project-email]
  B --> C[Entrega senha ao cliente]
  C --> D[provision-client-account CF]
  D --> E[provision-zone + apply DNS]
  E --> F[account/create admin@cliente]
  F --> G[handoff CF gestor]
Passo Acção E-mail usado
1 POST /project/provision-email Cria proj_005@ligbox.com.br
2 Resposta wizard Senha + credenciais webmail mail.ligbox.com.br
3 POST /dns/cloudflare/provision-client-account Membro CF = proj_005@ligbox.com.br
4 POST /dns/cloudflare/apply activity_log + webhook com ligbox_project_email
5 POST /account/create admin@cliente.com.br (domínio cliente) — distinto do proj
6 Handoff Convite admin@cliente na CF; proj_* mantém-se suporte

Entrega da senha ao cliente

Canal Quando
Wizard (primário) Painel «Credenciais do projeto» após criar proj_* — copiar uma vez
E-mail Opcional: notify_email do wizard → template com link onboard (senha só no painel, não no email por segurança)
Vault servidor onboard_handoff / vault projeto — TTL 24h; nunca logar senha em activity_log

Texto sugerido no wizard:

Use proj_005@ligbox.com.br para aceder à Cloudflare e acompanhar o setup.
Webmail: https://mail.ligbox.com.br/
Guarde a senha — não voltará a ser mostrada.


Onde referenciar ligbox_project_email

Sistema Campo / uso
domain_registry project_id, ligbox_project_email, ligbox_project_password_delivered_at
Conta Cloudflare Membro inicial + login convite
POST /dns/cloudflare/apply Header interno / payload webhook project_email
POST /account/create Body metadata ligbox_project_email (auditoria)
Ops webhook VM122 onboard.project_email no funil 004
activity_log Tag project:proj_005@ligbox.com.br em passos DNS/CF
Purge / Spec 017 Não apagar proj_* sem confirmação ops

Registo domain_registry (extensão)

{
  "domain": "empresa.com.br",
  "project_id": "005",
  "ligbox_project_email": "proj_005@ligbox.com.br",
  "ligbox_project_display_name": "Projeto Empresa — empresa.com.br",
  "ligbox_project_created_at": "2026-06-22T14:00:00Z",
  "ligbox_project_password_delivered": true,
  "portal_admin_email": "admin@empresa.com.br",
  "cf_account_id": "…",
  "handoff_status": "pending"
}

API planeadas (VM112)

Método Path Descrição
POST /api/onboarding/project/provision-email Aloca project_id, cria proj_*@ligbox.com.br, regista domínio
GET /api/onboarding/project/{domain} Estado identidade projeto (sem senha)
POST /api/onboarding/project/reveal-password Uma vez por sessão — devolve senha do vault

Implementação Carbonio: reutilizar carbonio.create_account_full() no domínio ligbox.com.br (já existe em VM112).


Código (monorepo)

Ficheiro Função
projects/wizard/backend/app/services/project_identity.py Aloca ID, cria caixa, vault senha, registo
deploy/vm112-wizard/project-counter.txt Contador sequencial (ou SQLite futuro)

Critérios de aceitação

  1. Cliente recebe proj_{id}@ligbox.com.br + senha antes do passo DNS Cloudflare.
  2. Mesmo e-mail aparece em CF, registry, webhooks e logs de DNS.
  3. admin@{dominio} criado no passo 5 permanece e-mail principal do mail do cliente.
  4. BYO / registrador externo não criam proj_* (só caminho Cloudflare Ligbox).