Tenancy y aislamiento de datos
Row-Level Security (RLS) en cada tabla de todos los esquemas de tenant. Las políticas de RLS comparan organization_id con el claim del JWT del usuario vía current_user_org_id(); en las rutas que se ejecutan bajo el rol restringido de base de datos, las lecturas y escrituras cross-tenant se bloquean en la propia base de datos, y toda consulta del lado del servidor se filtra además por organization_id — verificado por un CI lint de org-scoping en todos los esquemas de tenant. El cliente del navegador con clave anónima devuelve cero filas de cualquier esquema multi-tenant. Las nuevas tablas requieren RLS en la misma migración (guardrail de CI).
PRUEBA →RLS respaldado por JWT vía current_user_org_id() · SELECT anónimo revocado · CI lint de org-scoping