# Spec 037 V4 — Wizard DNS Viewer **Spec:** [dns-viewer.md](../../specs/037-dns-multi-cloudflare-orchestration/dns-viewer.md) · **Rollback:** [DNS-VIEWER-ROLLBACK.md](../../specs/037-dns-multi-cloudflare-orchestration/deploy/DNS-VIEWER-ROLLBACK.md) § VM112 Painel **read-only** no **passo DNS existente** (step 1) — **não** é menu nem página nova. **Estado:** 📋 patches versionados no monorepo · deploy VM112 **pendente** (SSH CT130 falha: LAN permission denied, WAN timeout). --- ## Pré-requisitos | Variável | Valor | Onde | |----------|-------|------| | `DESK_API_URL` | `http://10.10.10.122:8080` | env wizard backend | | `OPS_INTERNAL_TOKEN` | igual ao Desk | env wizard + Desk `.env` | Desk endpoint aceita `X-Ops-Internal-Token` via `require_internal_or_user` (`main.py`). --- ## Backend ```bash # Na VM112 (paths locais após git pull / rsync monorepo) python3 /opt/ligbox-ops-platform/deploy/vm112-wizard/onboarding-dns-viewer-v4.patch.py systemctl restart ligbox-wizard 2>/dev/null || docker compose -f /opt/ligbox-wizard/docker-compose.yml restart backend ``` | Item | Valor | |------|-------| | Endpoint | `GET /api/onboarding/dns/viewer/{domain}` | | Auth sessão | Header `X-Onboarding-Session` | | Proxy | Desk `GET /api/v1/dns/viewer/{domain}?email_service=true` | | Resposta | Mesma shape Desk; `edit_links=[]`; `viewer_context=wizard_onboarding` | --- ## Frontend ```bash python3 /opt/ligbox-ops-platform/deploy/vm112-wizard/frontend-dns-viewer-v4.patch.py cd /opt/ligbox-wizard/frontend && npm run build # Reiniciar serviço static/nginx conforme stack VM112 ``` ## UI (sem nova rota) Painel lateral abaixo das opções DNS no step 1: - Badge modo (Ligbox / externo / OpenPanel) - Tabela registos (max 12 linhas) - Secção «Serão aplicados» se `planned_records` --- ## Validação ```bash # Com sessão onboarding válida curl -sS -H "X-Onboarding-Session: " \ "http://127.0.0.1:8090/api/onboarding/dns/viewer/exemplo.com.br" | jq .mode_label,.summary ``` Browser: `onboard.ligbox.com.br` → passo DNS → painel «Apontamentos DNS (visualização)» após escolher caminho. --- ## SSH / deploy a partir do CT130 | Destino | Comando | Resultado conhecido | |---------|---------|---------------------| | LAN | `ssh root@10.10.10.112` | Permission denied (password `805353` não válida) | | WAN | `ssh -p 2512 root@95.216.14.146` | Timeout a partir CT130 | **Acção:** Roger aplica patches directamente na VM112 ou fornece credencial SSH correcta. --- ## Rollback ```bash ssh root@10.10.10.112 cd /opt/ligbox-wizard BACKUP=$(ls -td .backups/dns-viewer-* 2>/dev/null | head -1) [ -n "$BACKUP" ] && cp -a "$BACKUP"/backend/. backend/ systemctl restart ligbox-wizard 2>/dev/null || docker compose restart backend ``` Ver também rollback completo em `DNS-VIEWER-ROLLBACK.md`.