ligbox-ops-platform/specs/037-dns-multi-cloudflare-orchestration/deploy/DNS-VIEWER-EXEC-20260625.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

3.6 KiB
Raw Blame History

DNS Viewer V1 — Execução e versionamento

Responsável: Cursor Agent · Aprovado por: Roger
Data: 2026-06-25
Spec: dns-viewer.md · Rollback: DNS-VIEWER-ROLLBACK.md


Escopo desta execução

Fase Incluída agora Entregável
V0 baseline cloudflare_dns.py + modal Desk (já existe)
V1 📋 próximo deploy API GET /api/v1/dns/viewer/{domain}
V1b 📋 dns-viewer.js + migrar modal Desk
V2V4 futuro OpenPanel, Console, Wizard

Checklist pré-deploy (obrigatório)

# CT130 — tag git (usar SSHPASS se preflight/rollback a partir do Spec Hub)
cd /opt/ligbox-spec-hub/repos/ligbox-ops-platform
git tag -a dns-viewer-pre-v1-$(date +%Y%m%d) -m "Antes DNS Viewer V1"

# VM122 — backup (CT130: export SSHPASS=805353)
export SSHPASS='805353'   # opcional — só se SSH key falhar
bash specs/037-dns-multi-cloudflare-orchestration/deploy/scripts/preflight-dns-viewer.sh \
  --host root@10.10.10.122

Ficheiros versionados (monorepo)

Ficheiro Fase Notas
projects/ops-desk/api/app/cloudflare_dns.py V0 Não remover — provider CF
projects/ops-desk/api/app/dns_viewer.py V1 Novo orquestrador
projects/ops-desk/api/app/openpanel_dns.py V2 Novo — opcional
projects/ops-desk/api/app/main.py V1 Rota viewer + flag
projects/ops-desk/api/app/permissions.py V1 can_read_dns_viewer
projects/ops-desk/frontend/assets/dns-viewer.js V1b Novo componente
projects/ops-desk/frontend/assets/app.js V1b Integrar viewer
projects/ops-desk/frontend/index.html V1b Cache bust ?v=
projects/wizard/backend/app/services/dns_viewer.py V4 Wizard variant

Deploy VM122 (após implementação V1/V1b)

# CT130 ou laptop com rsync
REPO=/opt/ligbox-spec-hub/repos/ligbox-ops-platform
rsync -av --delete \
  "$REPO/projects/ops-desk/api/app/" \
  root@10.10.10.122:/opt/ligbox-ops-platform/api/app/

rsync -av \
  "$REPO/projects/ops-desk/frontend/assets/" \
  root@10.10.10.122:/opt/ligbox-ops-platform/frontend/assets/

ssh root@10.10.10.122 'cd /opt/ligbox-ops-platform && \
  grep -q DNS_VIEWER_ENABLED .env || echo DNS_VIEWER_ENABLED=1 >> .env && \
  docker compose -f docker-compose.mvp.yml build api frontend && \
  docker compose -f docker-compose.mvp.yml up -d api frontend'

Validação pós-deploy

bash specs/037-dns-multi-cloudflare-orchestration/deploy/scripts/verify-dns-viewer.sh \
  --host 10.10.10.122

# Manual UI
# Desk → Overview → tenant VM112 → domínio → secção DNS unificada
# Browser devtools: zero SyntaxError em app.js / dns-viewer.js

Rollback

Ver DNS-VIEWER-ROLLBACK.md — ordem recomendada:

  1. DNS_VIEWER_ENABLED=0 (30 segundos)
  2. Rollback frontend se UI partida
  3. Rollback API se 500
  4. git revert CT130 se necessário

Registo de versões (preencher após cada deploy)

Data Tag git VM122 backup dir Commit Notas
2026-06-25 dns-viewer-pre-v1-20260625 .backups/dns-viewer-20260625-161839 7e4920a Pré-deploy
2026-06-25 tag Docker post-dns-viewer-v1-20260625 (working tree) V1+V1b deploy OK · verify PASSED

Pendente V2+

  • OpenPanel BIND provider
  • Console console.ligbox.com.br/admin/dominio
  • Wizard GET /api/onboarding/dns/viewer/{domain}
  • Formalizar dns.viewer.read em Spec 027