# Tasks: 019-ops-console-active-operations

**Spec:** [spec.md](./spec.md) · **Plan:** [plan.md](./plan.md)

---

## F0 — Pré-deploy VM123

- [x] T001 Inventariar VM123 no Proxmox (IP, hostname, serviços existentes)
- [x] T002 Executar `deploy/scripts/preflight-vm123.sh` e documentar resultado
- [x] T003 Confirmar porta livre (default 8100) ou definir `CONSOLE_HOST_PORT` no `.env`
- [x] T004 DNS `console.ligbox.com.br` → Traefik CT114 **(G1 2026-06-25)**
- [x] T005 Router Traefik → `http://10.10.10.123:8100` **(G1 2026-06-25)**

---

## F1 — Data model VM122

- [ ] T010 Migração SQL `chamados`, `chamado_eventos`, `runbook_execucoes`, `aprovacoes`
- [ ] T011 `chamado_aggregator.py` — regras session_id + domain + 72h
- [ ] T012 Worker hook pós-`webhook_events` insert
- [ ] T013 Gerador `public_id` `CH-YYYY-NNNNN`
- [ ] T014 Teste unitário agregação (Wazuh + onboard mesmo domínio → 1 chamado)
- [ ] T015 Extractor `chamado_observables` a partir de payloads
- [ ] T016 `chamado_notas` + append timeline

---

## F2 — API hub VM122

- [ ] T020 `GET /api/v1/chamados` com filtros
- [ ] T021 `GET /api/v1/chamados/{public_id}` — **resposta hub completa**
- [ ] T022 `POST .../assumir` + RBAC
- [ ] T023 `PATCH ...` estados
- [ ] T024 `POST .../eventos/anexar` + `POST .../notas`
- [ ] T025 `GET .../links/wazuh` deep link builder
- [ ] T026 Compat: `desk/tickets` expõe `chamado_public_id`
- [ ] T027 `scripts/verify-chamado-unico.sh`

---

## F3 — Console UI Docker VM123

- [x] T030 Scaffold React + Vite + React Router
- [x] T031 navigation-ia.md — rotas e drill-down
- [x] T032 Layout sidebar + tema tokens
- [x] T033 View Overview → links para hub
- [x] T034 View Discover → abrir hub
- [x] T035 View Chamados lista
- [x] T036 **ChamadoHub** `/chamados/:publicId` — timeline + tabs (mock)
- [ ] T037 `ObservablesPanel` drill-down real (API)
- [ ] T038 `WazuhDeepLinkButton` API
- [ ] T039 Auth JWT → API VM122
- [x] T040 Deploy Docker VM123 — **ligbox-ops-console-ui UP :8100**
- [x] T041 Traefik console.ligbox.com.br **(G1 2026-06-25 — HTTPS 200 via CT114)**

## F4 — Console v2 home (2026-06-25)

- [x] T047 KPI bar (desk/summary + alertas Wazuh)
- [x] T048 Saúde plataforma — port Overview (`HealthCards`)
- [x] T049 Domínios com atenção (`DomainAttention`)
- [x] T050 Incidentes Agentic strip (mock + API fallback)
- [x] T051 Desk banners migração Overview/Eventos/Tickets/Dashboard
- [x] T052 Rollback doc `deploy/CONSOLE-V2-ROLLBACK.md`
- [ ] T053 Rota `/ops` alias + redirect desk cutover
- [ ] T054 Assist panel live no hub CH-*

---

## F4 — Runbooks + aprovações

- [ ] T040 Registry runbooks MVP (8 códigos — ver spec)
- [ ] T041 `POST .../runbooks/{code}/executar`
- [ ] T042 Fila `GET /api/v1/aprovacoes`
- [ ] T043 `POST .../aprovar` e `.../rejeitar`
- [ ] T044 UI Aprovações na Console
- [ ] T045 Executores R0 (`infra_recheck`) e R1 (`traefik_cert_sync` mock)
- [ ] T046 Middleware bloqueio R3 sem dupla aprovação

---

## F5 — Assist Opção A

- [ ] T050 VM112 `GET /api/onboarding/session/{id}/ops-status` + secret LAN
- [ ] T051 VM122 poll/cache passo wizard no chamado
- [ ] T052 Console `AssistPanel` no detalhe chamado
- [ ] T053 Validar: sem senha/replay no payload

---

## F6 — Agentic + WebSocket (pós-MVP)

- [ ] T060 Políticas agentic R0/R1
- [ ] T061 Propostas runbook na fila aprovações
- [ ] T062 `WS /api/v1/chamados/{id}/live`
- [ ] T063 Console substitui poll por WebSocket

---

## Cutover

- [ ] T070 Redirect `desk.ligbox.com.br` → `console.ligbox.com.br`
- [ ] T071 Documentar rollback (`docker compose -f ... down` só stack console)
- [ ] T072 Actualizar `docs/network/INTERFACES_PROXMOX.md` com VM123 Console
