ADR 0018 — Planes y marca de la plataforma editables desde el panel
- Estado: aceptada
- Fecha: 2026-10-18
Contexto
En 0.11 los planes (precios, módulos, límites) solo se cambiaban en el código y había que desplegar. La marca de la plataforma (logo, contacto) vivía en variables de entorno de cada app.
Decisiones
- La configuración sigue siendo la base; el panel guarda diferencias.
tenancy_plan_settingstiene un JSON por plan con los campos cambiados (o el plan completo si se creó en el panel). Los planes efectivos son configuración ⊕ cambios. "Restablecer" borra los cambios de un plan de código. - El catálogo de módulos no se edita desde el panel: la app los hace cumplir con
requireFeature; un módulo inventado en el panel no protegería nada. - Los permisos siguen siendo síncronos. El catálogo efectivo vive en memoria: se carga una vez (la primera petición la espera), se recarga al recibir
{ kind: 'plans' }por el bus de invalidación y cadarefreshMs(60 s) como respaldo si un aviso se pierde. Si la tabla no existe todavía (antes detenancy install), se usa la configuración de código y se avisa una vez. - Los planes del panel se archivan, no se borran, y no se pueden archivar si los usan tenants o si son el plan por defecto: un tenant nunca queda apuntando a un plan desaparecido.
- Marca de la plataforma como clave → JSON en
tenancy_platform_settings, con valores por defecto en la configuración. La parte pública (GET /tenancy/platform) nunca incluye los correos internos (salesNotifyTo). Los archivos van al almacenamiento central bajoplatform/y solo esa carpeta se sirve públicamente.