ligbox-ops-platform/spec.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

21 KiB
Raw Permalink Blame History

Spec 027 — Matriz de Acesso por Função (Time Ligbox)

Criado: 2026-06-19
Solicitado por: Roger
Status: Draft → Fase 2 implementada (Desk RBAC)
Prioridade: P0 (governança operacional)
Sistemas: VM112 (Onboard/Mail) · VM122 (Ops Desk) · VM123 (Finance/Hosting)
Depende de: Spec 003 (RBAC base), 004 (cadastro), 015 (módulos), 023/024 (billing), 018 (serviços)
Estende: Spec 003 — não substitui login/MFA/webhooks; adiciona funções e ambientes


Resumo

Esta spec define a matriz de acesso ao nível de função para todo o time Ligbox — ops, suporte, financeiro, marketing, SEO, desenvolvimento e funções complementares — com permissões explícitas nos três ambientes operacionais:

VM IP Papel
VM112 10.10.10.112 Wizard onboarding, Carbonio mail tenants, API portal
VM122 10.10.10.122 Ligbox Ops Desk (control plane humano)
VM123 10.10.10.123 FOSSBilling, Odoo 16, OpenPanel (financeiro + sites)

Regra de ouro: humanos entram sempre pelo Desk (VM122) ou consolas web dedicadas com conta @ligbox.com.br. SSH direto às VMs é excepção para super_admin e devops — demais funções usam APIs, deep-links e SSO futuro.

Legenda global

Símbolo Significado
Acesso total (CRUD / executar)
🔒 Só leitura (dados podem ser mascarados)
🔗 Deep-link / abrir consola externa (nova aba) — sem credencial partilhada
⚙️ Só via API Desk (sem SSH)
🤖 Conta de sistema / agente autónomo
Sem acesso

1. Catálogo de funções

1.1 Funções ops — já existentes (Spec 003)

ID função Label Desk Descrição
super_admin Super Admin Roger / dono — users, tenants, purge, config global
ops_lead Chefe Ops Gestão operacional, audit, tickets, domínios VM112
technician Suporte Tickets atribuídos, assist/takeover wizard, migração
noc NOC Monitorização read-only, Wazuh, health — dados sensíveis mascarados

1.2 Funções comercial e negócio (novas)

ID função Label Desk Descrição
sales_admin Sales Admin (Gerente Comercial) Gestão pipeline, preços, equipa comercial, pedidos FOSS, aprovações
sales_support Sales Support (Analista Comercial) Atendimento comercial, pedidos, clientes, CRM — sem config admin
finance Financeiro FOSSBilling, Odoo fiscal, validação billing, faturas, inadimplência
marketing Marketing Campanhas, landing, produtos FOSS, leads CRM
seo SEO DNS público, Search Console, performance web, sites OpenPanel
developer Developer Código wizard/Desk, GitHub, deploy, integrações API

Substitui o role genérico sales — usar sempre sales_admin ou sales_support.

1.3 Funções plataforma (recomendadas)

ID função Label Desk Porquê
devops DevOps / Infra Proxmox, Traefik CT114, pfSense, OpenPanel admin — não confundir com developer
security_analyst Segurança / SOC Incidentes, Wazuh rules, resposta — além do noc (só leitura)
content_editor Conteúdo / CMS Sites clientes no OpenPanel — cruza marketing mas foco operacional
agentic_operator Operador Agentes IA Aprova runbooks e acções dos agentes A0A7 antes de remediação

1.4 Funções sistema (não humanas)

ID função Tipo Descrição
api_service M2M Webhooks VM112→122, workers, cron interno
agent_system IA Super-utilizador dos 7 agentes (ver secção 6)

1.5 Funções cliente (fora do time — referência)

ID função Onde Nota
client_domain_admin Wizard /admin VM112 Gerente do domínio — não é função Desk
client_readonly Futuro portal cliente Spec futura

2. Matriz — Ambiente VM112 (Onboard + Mail)

Componentes: onboard.ligbox.com.br · ligbox.com.br · Carbonio · ligbox-wizard API :8090 · SSH · Carbonio Admin

Função Desk assist / wizard API VM112 Carbonio admin SSH VM112 Purge domínio
super_admin takeover
ops_lead takeover 🔗 🔗
technician takeover* ⚙️ assist 🔗
noc 🔒 observar 🔒
finance 🔒 ver sessão 🔒 billing fields
marketing 🔒 funil/leads 🔒
seo 🔒 domínio/DNS 🔒 dns verify
developer ⚙️ dev/staging API dev key 🔗
sales_admin 🔒 leads + billing 🔒
sales_support 🔒 leads 🔒
devops 🔒 infra status infra endpoints 🔗 ⚙️ com root
security_analyst 🔒 telemetria 🔒 🔗
content_editor
agentic_operator 🔒 + aprovar ⚙️
api_service 🤖 webhooks 🤖

* technician: takeover apenas tickets/sessões atribuídas (Spec 010).

URLs VM112

Recurso URL
Wizard https://onboard.ligbox.com.br
API http://10.10.10.112:8090 (LAN) / Traefik interno
Webmail admin tenant https://mail.{dominio}/
Painel domínio https://onboard.ligbox.com.br/admin

3. Matriz — Ambiente VM122 (Ops Desk)

Componentes: desk.ligbox.com.br · api.ops.ligbox.com.br · módulos Spec 015

3.1 Módulos Desk × função

Módulo (ID) super_admin ops_lead technician noc finance sales_admin sales_support marketing seo developer devops security_analyst content_editor agentic_operator
core (dashboard/tickets) 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒
overview 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒
overview-home (Serviços) 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒
infra / infra2-soc 🔒 🔒 🔒 🔒 🔒
funnel-timing 🔒 🔒 🔒 🔒
wazuh-soc 🔒 🔒 🔒 🔒
leads (abandono CRM) 🔒
events (webhooks) 🔒 🔒 wazuh 🔒 billing 🔒 🔒 🔒 🔒 ⚙️ ⚙️ 🔒 ⚙️
tenants 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒
messages (cadastro)
admin-users
billing-recurrence (023) 🔒 🔒
migration (013) 🔒 🔒
assist (010) 🔒
modules (toggle)

3.2 Acções API críticas × função (extensão Spec 003)

Acção super_admin ops_lead technician noc finance sales_admin sales_support marketing seo developer devops security_analyst agentic_operator
Fechar ticket *
Assist takeover wizard *
Disparar audit manual
Purge domínio VM112 ⚙️
Validar billing (billing_state)
Criar pedido FOSS (VM123) 🔒 ⚙️
Ver CNPJ / morada completa masc. 🔒 🔒 🔒
Gestão utilizadores Desk
PATCH módulos Desk
Deploy API/frontend
Aprovar runbook agente

4. Matriz — Ambiente VM123 (Finance + Hosting)

Componentes: FOSSBilling · Odoo 16 · OpenPanel · SSH :2523

Função FOSSBilling Admin FOSSBilling Cliente Odoo 16 OpenPanel OpenAdmin SSH VM123
super_admin
ops_lead 🔗 🔒 🔗 🔗 🔗 🔗
technician 🔗 site cliente
noc
finance 🔒 🔒 🔗
sales_admin pedidos+clientes+staff RO Sales Manager 🔗 🔗 Admin
sales_support pedidos+clientes Salesman 🔗 autologin
marketing 🔒 produtos campanhas sites 🔗
seo SEO/hosting 🔗
developer ⚙️ API ⚙️ API ⚙️ bridge 🔗
devops
security_analyst 🔒 logs 🔒 🔒 🔗
content_editor
agentic_operator
api_service 🤖 webhook 🤖 🤖 provision

4.1 Integração APIs VM123 — perfis de produto

Documento completo: contracts/vm123-product-roles.md

Produto API Auth Mapeamento função Desk
FOSSBilling POST /api/admin/{module}/{action} Basic admin:API_KEY Staff groups: ligbox-sales-admin, ligbox-sales-support, ligbox-finance-admin
Odoo 16 XML-RPC /odoo/xmlrpc/2/object login + API key group_sale_managersales_admin; group_sale_salesmansales_support
OpenPanel Bridge :18087 (Community) ou :2087/api (Enterprise) Bearer JWT / bridge token sales_support = autologin cliente; devops = OpenAdmin

Diferença Sales Admin vs Sales Support

Capacidade sales_admin (Gerente) sales_support (Analista)
Desk — validar billing
Desk — leads / funil
FOSS — criar/editar clientes
FOSS — criar pedidos / hosting
FOSS — faturas / preços / produtos 🔒
FOSS — staff / settings
Odoo — CRM manager
Odoo — CRM user
OpenPanel — OpenAdmin 🔗 (só autologin)
Fechar tickets comerciais

Provisionamento automático (Fase 3): ao aprovar cadastro Desk com função sales_*, API VM122 cria staff FOSS + user Odoo via api_service — ver fluxo no contrato.

URLs VM123

Serviço URL pública
FOSSBilling Admin https://financeiro.ligbox.com.br/admin
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://openpanel.ligbox.com.br:2087

Integração Desk → VM123 (fase 23): ficha «Conta do cliente» (Spec 023) abre deep-link FOSS/Odoo; finance, sales_admin e sales_support com botões API no drawer.


Consola super_admin ops_lead technician noc finance sales_admin sales_support marketing seo developer devops security_analyst
Cloudflare DNS 🔗 🔒 🔒 🔒
Traefik CT114 🔗 🔗
Proxmox host 🔗
pfSense API 🔗 🔗
Wazuh VM104 🔒 🔒 🔒
GitHub itecnologys/* 🔒
Google Search Console 🔗
FOSSBilling Admin 🔗 🔒 🔒
Odoo ligbox 🔗 🔒

6. Agentes IA (Agentics) — responsabilidades e governança

Os 7 agentes (VISÃO_PLATAFORMA A0A7) não são utilizadores humanos. Operam com role agent_system e token dedicado.

Agente ID Responsabilidade Dados que lê Acções que executa Aprovação humana
Orchestrator A0 Roteamento e síntese multi-agente Todos os feeds Delegar tarefas agentic_operator / ops_lead
Node Health A1 CPU, RAM, serviços Carbonio VM112 metrics Alertas, tickets Auto para info; ops_lead para restart
Infra Mail A2 DNS, LE, Traefik, nginx DNS, certs, SNI Sugerir/fix DNS devops ou ops_lead antes de aplicar
Deliverability A3 SPF/DKIM/DMARC DNS mail Relatórios seo / technician revisão
Security Mail A4 amavis, spam, clamav Filas, logs mail Quarentena sugerida security_analyst
Wazuh SOC A5 Correlação SIEM VM104 Wazuh Alertas Desk security_analyst / noc
Support Copilot A6 Assistência tickets Tickets, timeline Rascunho resposta technician envia
Remediation A7 Runbooks Playbooks aprovados Executar após OK agentic_operator obrigatório

Quem gere agentes no Desk

Função Ver sugestões agente Aprovar runbook A7 Configurar prompts/modelos
super_admin
ops_lead 🔒
agentic_operator
security_analyst A4/A5 scope segurança
developer ⚙️
Demais ou 🔒 resumo

7. Cadastro e atribuição de função (fluxo)

Estende Spec 004:

  1. Candidato regista-se em desk.ligbox.com.br/register.html com @ligbox.com.br
  2. super_admin aprova em Mensagens e escolhe função (lista secção 1 — incl. sales_admin / sales_support)
  3. Ativação 2-de-3 (e-mail, telefone, TOTP)
  4. Desk aplica módulos e permissões conforme matriz desta spec
  5. Contas FOSS/Odoo/OpenPanel (VM123) criadas via provisionamento Fase 3 (api_service) ou manualmente — nunca partilhar password root VM

Mapeamento função → módulos default (activação)

Função Módulos ON por defeito
sales_admin core, leads, funnel-timing, overview-home, billing-recurrence, tenants
sales_support core, leads, funnel-timing, overview-home, tenants
finance core, overview-home, billing-recurrence, events (billing)
marketing core, leads, funnel-timing, overview-home
seo core, funnel-timing, overview-home, leads
developer core, events, infra (read), overview
devops core, infra, infra2-soc, overview-home, events
security_analyst core, infra2-soc, wazuh-soc, events
content_editor core + acesso OpenPanel (fora Desk)
agentic_operator core, overview, events, infra2-soc

Mapeamento função → VM123 (provisionamento)

Função FOSS group Odoo OpenPanel
sales_admin ligbox-sales-admin Sales Manager OpenAdmin Admin
sales_support ligbox-sales-support Salesman autologin apenas
finance ligbox-finance-admin Account Manager read-only

Ver contracts/vm123-product-roles.md.


8. Implementação técnica (fases)

Fase 1 — Documentação + enum (esta spec)

  • Publicar matriz; alinhar Roger
  • Actualizar permissions.py com constantes ALL_FUNCTIONS

Fase 2 — RBAC Desk (VM122)

  • Expandir ROLES em api/app/permissions.py
  • ROLE_MODULES map em registry.py (Spec 015)
  • UI: labels pt-BR no cadastro (Spec 004)
  • Testes: verify-rbac-matrix.sh por função
  • Drawer «Conta do cliente» → FOSS/Odoo via /api/v1/vm123/links/client
  • Endpoints /api/v1/vm123/* (contrato vm123-product-roles.md)
  • Provisionamento staff FOSS + user Odoo ao activar cadastro (provision_desk_user)
  • Pré-requisito Odoo: instalar apps sale + account na VM123 para grupos standard existirem

Fase 4 — Agentes

  • Service account agent_system + fila aprovação agentic_operator
  • Auditoria de cada acção A7

9. Requisitos funcionais

  • FR-027-001: Sistema MUST suportar no mínimo 13 funções humanas (secção 1) incluindo sales_admin e sales_support.
  • FR-027-002: Cada função MUST ter módulos Desk activos por defeito conforme secção 7.
  • FR-027-003: Nenhuma função excepto super_admin e devops MUST ter SSH root às VMs por defeito.
  • FR-027-004: Função noc MUST continuar a mascarar CNPJ, morada e e-mails billing (Spec 003).
  • FR-027-005: Função finance MUST poder transicionar billing_state (Spec 023).
  • FR-027-006: Agentes A0A7 MUST NOT autenticar como humanos; usam agent_system.
  • FR-027-007: Acções A7 (remediação) MUST exigir aprovação agentic_operator ou ops_lead.
  • FR-027-008: Cadastro MUST restringir e-mail a @ligbox.com.br para funções internas.
  • FR-027-009: sales_admin MUST poder validar billing_state e criar pedidos FOSS; sales_support MUST NOT validar billing nem aceder OpenAdmin.
  • FR-027-010: Provisionamento VM123 MUST usar APIs em contracts/vm123-product-roles.md — sem credenciais root partilhadas.

10. Fora de âmbito (esta spec)

  • SSO Google/Azure
  • Permissões por tenant isolado (multi-empresa Ligbox)
  • Cliente final (client_domain_admin) — permanece no wizard VM112
  • Criação automática de contas Linux nas VMs (usar contas app)

11. Documentos relacionados

Spec Relação
003 RBAC base (4 roles) — pai
004 Cadastro e atribuição de perfil
015 Registry módulos Desk
010 Assist / takeover
013 Migração e-mail
018 Serviços / clientes
023 Billing Desk
024 VM123 finance stack + APIs produto
021 Telemetria / segurança wizard

12. Critérios de aceite

  • Roger valida matriz secções 26 e Sales Admin vs Support
  • permissions.py inclui 13 funções + testes 403
  • Cadastro Desk lista sales_admin e sales_support no approve
  • Grupos FOSS ligbox-sales-admin e ligbox-sales-support criados na VM123
  • sales_admin abre FOSS + Odoo a partir do Desk
  • sales_support cria pedido FOSS sem OpenAdmin
  • Contrato vm123-product-roles.md referenciado no deploy VM122

Roger — validar secção 4.1 (APIs VM123) e limites Sales Admin vs Support antes da Fase 2.