Entrega read-only de apontamentos DNS (Cloudflare, OpenPanel BIND, público) no Desk e Console /admin/dominio, com spec, scripts de rollback e patches VM112 para painel lateral no passo DNS do onboarding (deploy wizard pendente). Co-authored-by: Cursor <cursoragent@cursor.com>
11 KiB
Spec 035-C — Admin Ligbox (Sistema) — Console agregado staff
Criado: 2026-06-21
Solicitado por: Roger
Status: ✅ URL fixada — integrado em ligbox-console-shell.md
URL: https://console.ligbox.com.br/comercial (staff) · /ops (chamados Spec 019)
Relacionado: Spec 035 · 024 · 027 (RBAC) · 019 (Ops Console)
1. Decisão Roger (2026-06-21)
A página de aprovação de preços pertence ao Admin Ligbox — não ao FOSS nem a portais dispersos.
Da mesma forma que precisamos de uma página agregada para utilizadores (todos os setups de user de todas as ferramentas), precisamos do mesmo para o Admin do sistema.
Princípio único (3 portais):
| Portal | Quem | O quê agrega |
|---|---|---|
| Admin Ligbox (esta spec) | Roger + staff RBAC | Todos os setups admin/plataforma — preços, produtos, gateway, provisionamento, clientes |
| Gerente de Domínio | admin@{dom} |
Todos os setups do domínio — contas, quotas, DMARC, pagamento resumo |
| Utilizador (Fase B) | {user}@{dom} |
Todos os setups pessoais — OOO, assinatura, redirects, senha, Files prefs |
Regra de ouro: nenhum portal manda o utilizador «configurar» noutra ferramenta nativa (FOSS admin, OpenPanel UI, Nextcloud admin, Carbonio admin). APIs nativas ficam por trás; a UI Ligbox agrega.
2. Três níveis — visão completa
┌─────────────────────────────────────────────────────────────────┐
│ NÍVEL 0 — ADMIN LIGBOX (Sistema) ← ESTA SPEC (035-C) │
│ Roger · staff @ligbox.com.br (RBAC Spec 027) │
│ • Aprovação de preços & catálogo bundles │
│ • Gateway pagamento (boleto/PIX) — config & status │
│ • Provisioning global (OpenPanel, wizard, VM116) │
│ • Clientes / domínios / impersonate gerente │
│ • Ops: chamados, health, audit (integra Spec 019) │
└─────────────────────────────────────────────────────────────────┘
│
│ vende & provisiona
▼
┌─────────────────────────────────────────────────────────────────┐
│ NÍVEL 1 — GERENTE DE DOMÍNIO ← Spec 035-UI (Fase A)│
│ admin@empresa.com.br · onboard.ligbox.com.br/admin │
│ • Plano, limites, boleto/PIX resumo │
│ • CRUD contas email + quotas Nextcloud │
│ • DMARC, DNS, upgrade plano │
└─────────────────────────────────────────────────────────────────┘
│
│ cria contas
▼
┌─────────────────────────────────────────────────────────────────┐
│ NÍVEL 2 — UTILIZADOR DE EMAIL ← Spec 035-B (Fase B)│
│ vendas@empresa.com.br · onboard.ligbox.com.br/me │
│ • Redirects, OOO, assinatura, senha │
│ • Prefs Files pessoais, quota uso │
│ • (sem admin domínio · sem preços · sem DMARC global) │
└─────────────────────────────────────────────────────────────────┘
3. Admin Ligbox — secções agregadas
3.1 Comercial & preços (Roger — obrigatório)
| Funcionalidade | Hoje (disperso) | UI Admin Ligbox |
|---|---|---|
| Aprovar preços | FOSS admin / planilha | Fila «Preços pendentes» → Roger aprova/rejeita |
| Catálogo bundles | FOSS produtos | Starter / Business / Enterprise / Custom |
| Margem & benchmark | spec.md §1.1 | Editor inline + histórico versões |
| Publicar no FOSS | manual | Botão «Publicar» → API FOSS |
| Promoções / cupons | FOSS | Lista + criar (proxy API) |
Fluxo aprovação preços:
Staff propõe alteração preço (ou import Spec)
→ Estado: rascunho
→ Fila Admin Ligbox «Aguarda Roger»
→ Roger aprova
→ Desk API → FOSSBilling actualiza produto
→ Log audit (quem, quando, valor anterior/novo)
Roger nunca precisa entrar no backoffice FOSS para aprovar preço.
3.2 Billing & gateway
| Funcionalidade | Backend | UI Admin Ligbox |
|---|---|---|
| Config gateway ASAAS/Iugu | VM123 | Credenciais, ambiente sandbox/prod |
| Webhooks pagamento | FOSS + Desk | Log últimos eventos |
| Faturas globais | FOSS | Pesquisa por cliente/domínio |
| Inadimplência | FOSS | Lista + acções (suspender bundle) |
3.3 Provisioning & plataforma
| Funcionalidade | Backend | UI Admin Ligbox |
|---|---|---|
| Jobs provisionamento | OpenPanel + Wizard | Fila, retry, erro |
| Domínios activos | Wizard + Desk | Lista + health |
| Nextcloud VM116 | OCS / admin API | Quota cluster, tenants |
| EasyDMARC contas | API ext. | Domínios registados |
| Bridge FOSS↔OP | VM123 :18087 | Status bridge |
3.4 Clientes & suporte
| Funcionalidade | UI Admin Ligbox |
|---|---|
| Lista clientes FOSS | pesquisa, plano, estado pagamento |
| Impersonate gerente | abre /admin como domínio (auditado Spec 027) |
| Chamados | integração Spec 019 / Desk tickets |
| Leads abandonados | Spec 012 widget |
3.5 Ops & segurança — mesmo shell (Spec 019)
Chamados CH-*, Discover e Wazuh vivem em console.ligbox.com.br/ops — não app separada.
| Item | Rota |
|---|---|
| Overview alertas | /ops |
| Chamado hub | /ops/ch/:id |
| Discover | /ops/discover |
| Ver no Wazuh | deep-link VM104 (staff only) |
Mesmo header, logo e design system que /admin gerente e /comercial.
4. Wireframe resumo (Admin Ligbox)
╔══════════════════════════════════════════════════════════════════╗
║ LIGBOX ADMIN Roger ▼ Sair ║
╠══════════════════════════════════════════════════════════════════╣
║ ┌─ Sidebar ─────────┐ ┌─ Conteúdo ──────────────────────────┐ ║
║ │ 📊 Dashboard │ │ Preços pendentes (2) │ ║
║ │ 💰 Preços & catálogo│ │ ┌─────────────────────────────┐ │ ║
║ │ 💳 Gateway & faturas│ │ │ Business R$549 → R$599 │ │ ║
║ │ ⚙️ Provisioning │ │ │ [Aprovar] [Rejeitar] [Diff] │ │ ║
║ │ 👥 Clientes │ │ └─────────────────────────────┘ │ ║
║ │ 🌐 Domínios │ │ │ ║
║ │ 🎫 Chamados │ │ Catálogo publicado │ ║
║ │ 🔐 RBAC staff │ │ Starter · Business · Enterprise │ ║
║ │ 📈 Ops Console → │ │ [+ Novo bundle] [Editar preços] │ ║
║ └────────────────────┘ └─────────────────────────────────────┘ ║
╚══════════════════════════════════════════════════════════════════╝
5. Integrações invisíveis (backend)
Admin Ligbox SPA (console.ligbox.com.br/comercial + /ops)
│
├── Desk API /api/v1/ligbox-admin/* → RBAC, audit, orquestração
├── FOSS API (proxy) → produtos, preços, faturas
├── Gateway API (proxy) → boleto/PIX config
├── OpenPanel API (proxy) → provision jobs
├── Wizard API (proxy) → domínios, health VM112
├── Nextcloud admin API (proxy VM116) → plataforma Files
└── Spec 019 Console API → chamados, ops
FOSSBilling / OpenPanel / Nextcloud admin nativos: zero exposição ao Roger para tarefas do dia-a-dia. Só APIs.
6. RBAC (Spec 027)
| Role | Preços | Gateway | Provisioning | Impersonate | Ops |
|---|---|---|---|---|---|
ligbox_owner (Roger) |
aprovar | sim | sim | sim | sim |
ligbox_commercial |
propor | read | read | não | não |
ligbox_ops |
read | read | sim | sim (audit) | sim |
ligbox_support |
read | read | read | limitado | tickets |
7. Relação com outros documentos
| Documento | Nível |
|---|---|
| Este ficheiro | Nível 0 — Admin Ligbox sistema |
| domain-manager-console-ui.md | Nível 1 — Gerente domínio |
| user-self-service-ui.md | Nível 2 — Utilizador email |
| spec.md §4 | Arquitectura backend |
| Spec 019 | Ops Console (secção dentro ou link Admin Ligbox) |
8. Fases de implementação
| Fase | Entrega |
|---|---|
| C0 | Wireframe + RBAC roles «preços» |
| C1 | Fila aprovação preços → publicar FOSS |
| C2 | Dashboard clientes + domínios + gateway status |
| C3 | Provisioning monitor + impersonate gerente |
| C4 | Unificar navegação com Ops Console Spec 019 |
Depende de: Fase 0 Spec 035 (produtos FOSS rascunho) para alimentar fila de preços.
9. Próximo passo
Roger confirma URL→console.ligbox.com.br✅- Implementar UX-A gerente
/adminprimeiro (ligbox-console-shell §7) - Depois UX-B
/comercial+ UX-C/ops