# Research: 009-ops-audit-overview **Date**: 2026-06-08 ## Decisões ### R1 — Fonte checks infra (carbonio, nginx, cert) **Decisão**: Reutilizar API portal VM112 existente: - `GET /onboarding/infrastructure/status/{domain}` - Campos: `carbonio_hostname`, `carbonio_nginx_vhost`, cert info se exposto **Alternativa rejeitada**: SSH zmprov directo — viola separação, requer credenciais extra. ### R2 — DNS checks **Decisão**: `dnspython` resolver público ou httpx para DNS-over-HTTPS Cloudflare `1.1.1.1/dns-query`. **Rationale**: Ops não depende de resolver interno; alinha com visão cliente externa. ### R3 — Domínios monitorizados **Decisão**: Auto-register de `webhook_events.payload.domain` onde `event_type IN ('account.created','onboarding.completed')`. **MVP**: Manual seed `diarissima.com` ou domínio activo VM112 para demo. ### R4 — Worker vs scheduler **Decisão**: Extender worker container existente (Redis) com job `audit_cycle` — sem novo serviço. ### R5 — UI placement **Decisão**: Nova view `overview` no nav Desk, **antes** Dashboard ou substituir conteúdo Dashboard principal (merge funil 004 + overview 009 num dashboard rico). **Recomendação UX**: Dashboard único com secções: 1. Funil onboarding (004) 2. Tenant health grid (009) 3. Tickets recentes + infra (existente) ## VM112 API endpoints confirmados ``` GET /onboarding/infrastructure/status/{domain} GET /onboarding/dns/verify/{domain} GET /health (já usado vm112/status no Ops) ``` ## Score thresholds | Check | pass | warn | fail | |-------|------|------|------| | cert_le | > 30 days | 14-30 days | < 14 or invalid | | dns_* | record matches expected | partial | missing/wrong | | webmail_http | 200-399 | 403 | timeout/5xx | ## Backlog mapping | Backlog | Feature 009 | |---------|-------------| | AUD-1 Collectors | Phase B collectors | | AUD-2 UI overview | Phase E UI | | AUD-3 Scorecard 8 checks | FR-005 + scorecard API | ## Referências - BACKLOG.md Track A - VISAO_PLATAFORMA_LIGBOX_OPS.md § Track A MVP - CHAT BRUTO VM122 — dashboard expectativa vs MVP