# Backlog — Ligbox Ops Platform (VM122)

**Última atualização:** 2026-06-17 (Specs **014–025** + VM123 finance stack)  
**Projeto:** `ligbox-ops-platform`  
**VM122:** `ligbox-ops` · `10.10.10.122` · SSH WAN `:2522`  
**VM112:** Portal/Wizard — integração **API + webhooks** (fora do compose)  
**VM123:** Finance stack — FOSSBilling + Odoo 16 + OpenPanel · SSH WAN `:2523`

**Visão:** `docs/architecture/VISAO_PLATAFORMA_LIGBOX_OPS.md`  
**Specs:** `specs/` (Spec Kit)

---

## Legenda

| Prioridade | Significado |
|------------|-------------|
| **P0** | Bloqueia MVP / produção |
| **P1** | Sprint actual |
| **P2** | Importante, pós-MVP |
| **P3** | Futuro |

| Estado | Significado |
|--------|-------------|
| 📋 | Backlog |
| 🔄 | Em curso |
| ✅ | Concluído |
| 🔀 | Consolidada noutra spec |

---

## Decisões fechadas

| Data | Tema | Decisão |
|------|------|---------|
| 2026-06-04 | VM alvo | Ops na VM113 (plano inicial) |
| 2026-06-08 | VM alvo | **VM122** criada (8 GB, SQLite MVP) |
| 2026-06-08 | Storage | SQLite no MVP (sem Postgres) |
| 2026-06-08 | VM112 | **Não** entra no compose — só API/webhooks |
| 2026-06-10 | Mail Desk | **VM108** `@ligbox.com.br` via LMTP |
| 2026-06-10 | Spec 007 | Push mobile/web — draft (ntfy + PWA) |
| 2026-06-10 | Spec 010 | Assist/takeover ASM — **P0**, decisões Roger fechadas |
| 2026-06-10 | Spec 011 | OTRS VM112 — stub futuro (pós 010) |
| 2026-06-10 | Ticket onboarding | **1 ticket em `onboarding.started`** no «Criar conta» VM112 |
| 2026-06-10 | Spec 012 | Abandono → Lead CRM — Fase A+B ✅ |
| 2026-06-10 | Spec 013 | Migração e-mail — **migrar antes do DNS** |
| 2026-06-16 | Spec 015 | Módulos Desk — activar/desactivar sem quebrar núcleo |
| 2026-06-16 | Spec 017/018 | Purge VM112 + Orquestração Serviços (MOSP) |
| 2026-06-17 | Spec 023 | Billing Desk Fase 1 — Odoo primário, gateway fase 2 |
| 2026-06-17 | Spec 024 | VM123 FOSS + Odoo + OpenPanel · Opção B domínios ligbox |
| 2026-06-17 | Spec 025 | Onboarding contínuo — Fase 1 idempotência create |

---

## Specs concluídas

| # | Feature | Notas |
|---|---------|-------|
| **001** | `webhook-vm112-integration` | Funil + company gate + tickets |
| **002** | `wazuh-integration` | Ingress genérico + VM104 |
| **003** | `desk-auth-rbac` | Login JWT, root/admin/mini/noc |
| **004** | `desk-account-management` | Cadastro · VM108 · 2-de-3 · TOTP · pt-BR |
| **022** | `carbonio-account-exists-release` | Bloqueios Carbonio + zmprov VM112 |

**API:** `0.9.6-spec019-023`  
**URLs:** `desk.ligbox.com.br` · `api.ops.ligbox.com.br` · `financeiro.ligbox.com.br` · `openpanel.ligbox.com.br`

---

## Fila Spec Kit (014–025)

| # | Feature | Prioridade | Estado | Pendente principal |
|---|---------|------------|--------|-------------------|
| **007** | `mobile-push-notifications` | P1 | 📋 | Fases A–C (ntfy + PWA) |
| **010** | `desk-assist-takeover` | **P0** | 🔄 | Fase D: push 007, auto-escalada |
| **011** | `integration-otrs` | P2 | 📋 | Stub futuro |
| **012** | `abandoned-onboarding-lead` | P1 | 🔄 | Fase C outreach · Fase D CRM |
| **013** | `email-server-migration` | P0 | 📋 | Design completo — execução em 019 |
| **014** | `funnel-phase-timing` | P1 | 🔄 | Validação E2E formal |
| **015** | `desk-module-registry` | P0 | 🔄 | Evolução modular contínua |
| **016** | `onboard-self-service-prefill` | P0 | 🔄 | Regressão UX / testes |
| **017** | `vm112-domain-orchestration` | P1 | 🔄 | Fase 3 VM112 passos tempo real |
| **018** | `service-orchestration` | P1 | 🔄 | Fase 2 API clients · Fase 3 multi-wizard |
| **019** | `email-migration-vm122-execution` | P0 | 🔄 | PST upload · hook VM112 · piloto |
| **020** | `purge-history-desk` | — | 🔀 | Consolidada na **017 v2** |
| **021** | `wizard-cybersecurity-telemetry` | P1 | 🔄 | Deploy middleware VM112 · push ntfy |
| **023** | `billing-recurrence-desk-visibility` | P1 | 🔄 | **Fase 1 ✅** · Fase 2 gateway ASAAS/Iugu |
| **024** | `openpanel-fossbilling` | P1 | ✅ | v1 piloto concluído 17/06 |
| **025** | `wizard-onboarding-continuity` | **P0** | 🔄 | **Fase 1 ✅** · Fase 2 resume + RAM 16GB |

---

## Track A — Auditoria & Ops Dashboard

| ID | P | Item | Estado |
|----|---|------|--------|
| **OPS-1** | P0 | VM Ops (VM122) Debian 12 + fail2ban | ✅ |
| **OPS-2** | P0 | `docker-compose.mvp.yml` | ✅ |
| **OPS-3** | P0 | `tenant-registry` (VM112 = 1º nó) | ✅ |
| **OPS-7** | P1 | VM123 finance stack (Spec 024) | ✅ |
| **AUD-1** | P0 | Collectors: Carbonio, DNS, nginx | 🔄 parcial |
| **AUD-2** | P0 | UI `/ops/overview` + API scorecard | 🔄 parcial |
| **AUD-3** | P1 | Scorecard por domínio (8 checks) | 🔄 |
| **MIG-1** | **P0** | Módulo migração e-mail (Spec 013/019) | 🔄 MVP |
| **MIG-2** | **P0** | Gate DNS — migrar antes de MX | 🔄 gate OK |
| **MIG-3** | P0 | Pipeline PST (readpst + imap-upload) | 📋 |
| **WZ-1** | P1 | Wazuh agent EmailServers + VM123 | 🔄 VM123 ✅ |
| **WZ-2** | P2 | UI Wazuh filtro origem | ✅ |

---

## Track B — Support Desk

| ID | P | Item | Estado |
|----|---|------|--------|
| **DESK-1** | P0 | UI tickets + timeline | ✅ MVP |
| **DESK-2** | P0 | Modelo tickets + estados SQLite | ✅ |
| **INT-2** | P0 | Webhooks VM112 → VM122 | ✅ |
| **DESK-4** | **P0** | Assist/takeover ASM — Spec 010 A+B+C+F | 🔄 |
| **DESK-5** | P1 | Orquestração Serviços MOSP (018) | 🔄 Fase 1 |
| **DESK-6** | P1 | Billing visibilidade 💳 (023 Fase 1) | ✅ |
| **INT-1** | P2 | OTRS API bridge — Spec 011 | 📋 |
| **DESK-3** | P2 | Kanban, SLA (após Spec 010) | 📋 → Spec 008 |
| **AG-1** | P3 | Agentes IA + runbooks | 📋 |

---

## Track RBAC & Auth

| ID | P | Item | Estado |
|----|---|------|--------|
| **OPS-4** | P0 | RBAC: super_admin, ops_lead, technician, noc | ✅ |
| **OPS-6** | P0 | Auth JWT Desk (login UI) | ✅ |
| **OPS-5** | P2 | Roles client_domain_admin (futuro) | 📋 |

### Utilizadores Desk (VM122)

| User | Role | Função |
|------|------|--------|
| `root` | super_admin | Roger — tudo |
| `admin` | ops_lead | Chefe ops |
| `mini` | technician | Suporte N1/N2 |
| `noc` | noc | Monitorização (leitura) |

---

## VM123 — Finance Stack (Spec 024)

| Serviço | URL | Estado |
|---------|-----|--------|
| FOSSBilling Admin | `https://financeiro.ligbox.com.br/admin` | ✅ HTTPS |
| FOSSBilling Cliente | `https://financeiro.ligbox.com.br/login` | ✅ |
| Odoo 16 | `https://financeiro.ligbox.com.br/odoo/web/login?db=ligbox` | ✅ |
| OpenPanel | `https://openpanel.ligbox.com.br` | ✅ |
| OpenAdmin | `https://admin.openpanel.ligbox.com.br` | ✅ |
| Bridge Community API | `http://10.10.10.123:18087` | ✅ |

**Credenciais:** `deploy/vm123-finance-stack/CREDENCIAIS_SERVICOS_VM123.txt`

---

## Prioridades P0/P1 — próximo sprint

1. **025 Fase 2** — resume wizard + VM112 16 GB + Traefik YAML validation  
2. **025 Fase 2** — resume wizard + VM112 16 GB + Traefik YAML validation  
3. **023 Fase 2** — gateway pagamento (ASAAS vs Iugu)  
4. **019** — piloto migração real + hook VM112 gate DNS  
5. **018 Fase 2** — API `clients` + `service_instances`  
6. **012 Fase C** — outreach abandonos  
7. **007** — push ntfy (desbloqueia 010-D e 021)

---

## Portal VM112 (repo separado)

| ID | Item | Estado |
|----|------|--------|
| OPS-1/2 diarissima | DNS + LE + webmail | ✅ |
| WIZ-025 | Onboarding contínuo Fase 1 | ✅ |
| SUP-3.2 | OTRS no `/escalate` | 📋 → Spec **011** |
| SUP-4.1/4.2 | Painel humano ASM + SLA cliente | 📋 → Spec **010** |
| PRD-3 | Painel corporativo UI | 📋 |

---

## Como actualizar

- Spec concluída → actualizar esta tabela + `specs/NNN/tasks.md`
- Sync Obsidian: `rsync -av /opt/ligbox-ops-platform/ /root/obsidian-infra/ligbox-ops-platform/`
- GitHub: `itecnologys/ligbox-ops-platform`
- Deploy VM122: `/opt/ligbox-ops-platform/`
