Saltar a contenido

ADR 019: Namespaces operations y admin

Estado

Aceptado — 2026-07 (reescrito)

Contexto

La operación diaria (agenda, reservas, clientes, recursos) debe convivir con la parametrización (ventas, facturación, pagos, tarifas) sin mezclar perfiles en un mismo menú operativo.

Decisión

  1. operations y admin son namespaces de composición, no productos pip fijos.
  2. Plugins de dominio eligen panel_id al registrar recursos, widgets y settings:
  3. Operación diaria → panel_id="operations" (booking, clients, resources, …)
  4. Parametrización → panel_id="admin" (sales, billing, payments, pricing, …)
  5. El namespace aparece en /api/v1/panels solo cuando hay al menos un plugin habilitado que contribuye a ese panel_id.
  6. Metadata de shell (marca, tema, dashboard home de operations/admin) la aportan módulos integrados del framework cuando el namespace está activo.
  7. merge_panel_infrastructure fusiona widgets de plugins en el dashboard home sin reemplazarlo.
  8. El módulo configuration en sidebar existe solo si hay settings contribuidos (ADR 029).
flowchart LR
  subgraph operations [namespace operations]
    booking[booking]
    clients[clients]
    resources[resources]
  end
  subgraph adminNs [namespace admin]
    sales[sales]
    billing[billing]
    payments[payments]
    pricing[pricing]
  end
  plugins[Plugins habilitados]
  plugins -->|panel_id operations| operations
  plugins -->|panel_id admin| adminNs

Consecuencias

  • Activar booking en /control/plugins materializa operations si es el primer contribuyente a ese namespace.
  • El menú operativo no lista módulos CRUD de finanzas; puede mostrar widgets KPI de otros dominios en su dashboard.
  • default_route de cada namespace apunta al dashboard home (/operations, /admin).

Referencias