# 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](./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](./domain-manager-console-ui.md) | Nível 1 — Gerente domínio | | [user-self-service-ui.md](./user-self-service-ui.md) | Nível 2 — Utilizador email | | [spec.md](./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 1. ~~Roger confirma URL~~ → **`console.ligbox.com.br`** ✅ 2. Implementar **UX-A** gerente `/admin` primeiro (ligbox-console-shell §7) 3. Depois **UX-B** `/comercial` + **UX-C** `/ops`