ligbox-ops-platform/specs/019-ops-console-active-operations/tasks.md
Ligbox Spec Hub 3a2c64834b Initial import: ligbox-ops-platform + specs + LAPTOP + obsidian merge (CT130)
Source: VM122 /opt + obsidian-infra + LAPTOP
Hub: CT130 spec-hub 10.10.10.130
2026-06-19 17:26:41 +00:00

93 lines
3.1 KiB
Markdown

# Tasks: 019-ops-console-active-operations
**Spec:** [spec.md](./spec.md) · **Plan:** [plan.md](./plan.md)
---
## F0 — Pré-deploy VM123
- [ ] T001 Inventariar VM123 no Proxmox (IP, hostname, serviços existentes)
- [ ] T002 Executar `deploy/scripts/preflight-vm123.sh` e documentar resultado
- [ ] T003 Confirmar porta livre (default 8100) ou definir `CONSOLE_HOST_PORT` no `.env`
- [ ] T004 DNS `console.ligbox.com.br` → Traefik CT114
- [ ] T005 Router Traefik → `http://10.10.10.123:8100` (ou bind local + proxy)
---
## 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**
- [ ] T041 Traefik console.ligbox.com.br
---
## 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