# 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
