role y permission. Es la
tabla intermedia más pura del schema y aun así tiene su propia página: una tabla intermedia es una
tabla (ADR-024), y su registro de cambios es el que explica por qué un rol ganó o perdió acceso.
Clave primaria
Claves foráneas
Atributos base
Restricciones e índices
Invariante que la base no expresa: las filas de un rol de sistema son inmutables. Se
garantiza en el command handler y se prueba; un check constraint tendría que mirar
role.is_system,
que está en otra tabla.
RLS y particionamiento
RLS activa portenant_id. No particionada. Se cachea junto con el rol: resolver permisos en
caliente no debe tocar la base.