obsidian-vault/ligbox-ops-platform/specs/015-desk-module-registry/spec.md
2026-06-19 17:26:42 +00:00

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/modulesapplyModuleVisibility()
  • 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