Glosario técnico

Tenant
Una empresa dentro de Kompli. Cada tenant tiene sus usuarios, políticas y firmas aislados del resto vía Row-Level Security en Postgres.
Slug
Identificador corto y único del tenant (acme, maffei). Se usa en login y en URLs de subdominio tenant.app.kompli.com.ar.
Document
Una política, procedimiento, guía o acuerdo. Tiene un código único dentro del tenant (POL-IA-01).
Version
Cada vez que se publica un cambio se crea una nueva versión con su propio content_hash. Versiones viejas quedan archivadas.
Assignment
Pedido de firma de un usuario específico sobre una versión específica. Su status puede ser pending, acknowledged, overdue o cancelled.
Acknowledgment (ack)
La firma en sí. Inmutable, append-only a nivel de base de datos.
Content hash
SHA-256 del HTML del documento en el momento de la firma. Sirve para probar que nadie cambió el contenido después.
Signature hash
SHA-256 de la concatenación user_id + version_id + ip + timestamp + content_hash. Funciona como huella criptográfica del acto de firma.
RLS (Row-Level Security)
Mecanismo de Postgres que filtra filas por tenant a nivel de la base de datos. En Kompli la aplicación corre con un rol no-superuser que no puede bypassear RLS.
SECURITY DEFINER function
Función de Postgres que corre con los permisos del creador (superuser), no del caller. Kompli las usa para flujos públicos puntuales como resolver un token de invitación sin bypasear RLS globalmente.