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>
3.6 KiB
3.6 KiB
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 |
| V2–V4 | ⏳ 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:
DNS_VIEWER_ENABLED=0(30 segundos)- Rollback frontend se UI partida
- Rollback API se 500
git revertCT130 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.readem Spec 027