Ir al contenido

Activación por empresa

Cada empresa puede activar o desactivar plugins independientemente.

Menu lateral → Plugins → toggle para cada plugin.

Ventana de terminal
# Activar
curl -X POST http://localhost:3000/api/plugins/mi-plugin/activate \
-H "Authorization: Bearer <token>" \
-H "x-tenant-id: <tenantId>"
# Desactivar
curl -X POST http://localhost:3000/api/plugins/mi-plugin/deactivate \
-H "Authorization: Bearer <token>" \
-H "x-tenant-id: <tenantId>"
  • Hooks no se ejecutan para esa empresa
  • Campos de BD se ignoran en validación
  • Manifests UI no se cargan
  • Tablas y datos no se borran

Al reactivar el plugin todo vuelve a funcionar con los datos intactos: la activación es un interruptor por tenant, no una instalación.

  1. El plugin se carga una sola vez por servidor: su init() se ejecuta al arrancar, independientemente de qué tenants lo tengan activo.
  2. La activación por tenant actúa como filtro en runtime: el estado se guarda en la tabla TenantPlugin (con cache en memoria) y el HookManager filtra cada hook según la activación del plugin en ese tenant.
  3. Por eso las migraciones (addCustomField, createTable) se aplican al cargar el plugin, mientras que hooks y UI respetan el toggle de cada empresa.

Más contexto en Sistema de plugins § Ciclo de vida.