2.1 KiB
2.1 KiB
Feature Specification: Registry de Módulos Desk (015)
Criado: 2026-06-16
Solicitado por: Roger
Status: Implementação
Prioridade: P0 (infraestrutura para evolução modular)
Resumo
Cada funcionalidade nova do Ligbox Ops Desk passa a ser um módulo registado. O root pode activar/desactivar módulos no menu Módulos; código desactivado não corre na UI nem enriquece APIs — sem quebrar o núcleo.
Módulos (MVP)
| ID | Label | Locked | Nav / efeito |
|---|---|---|---|
core |
Núcleo | sim | Dashboard, Tickets, Conta, Auth |
overview |
Audit Overview | não | menu Overview |
overview-home |
Overview Home | não | menu Overview Home |
infra |
Infra | não | menu Infra |
infra2-soc |
Infra 2 SOC | não | menu Infra 2 |
funnel-timing |
Relógio por fase | não | enriquece timeline/audit |
wazuh-soc |
Wazuh SOC Overview | não | card/modal VM104 no Overview |
leads |
Leads abandonados | não | menu Leads |
events |
Eventos webhook | não | menu Eventos |
tenants |
Tenants | não | menu Tenants |
messages |
Mensagens cadastro | não | menu Mensagens |
admin-users |
Administradores | não | menu Administradores |
Persistência
- Ficheiro:
/data/desk_modules.json(volume Docker) - Default: todos activos excepto definido em
registry.py - Override env:
DESK_MODULES_DISABLED=infra2-soc,funnel-timing(opcional)
API
| Método | Path | Role |
|---|---|---|
| GET | /api/v1/modules |
autenticado |
| PATCH | /api/v1/modules/{module_id} |
super_admin |
Body PATCH: { "enabled": true|false }
Frontend
- Nav items com
data-module="module-id" - Boot:
GET /api/v1/modules→applyModuleVisibility() refresh()ignora views de módulos desactivados- Menu Módulos (só root): toggles + descrição
Princípio de não-regressão
- Módulo OFF → rotas API opcionais devolvem payload sem campos do módulo
- Módulo OFF →
render*do módulo não é chamado - Núcleo nunca depende de módulos opcionais