Tenant isolation enforced in the database
Every tenant-owned table in VoicaX has row-level security enabled, and every policy resolves the caller's organisation membership through security-definer helper functions. A bug in application code cannot leak another organisation's conversations, documents or billing records, because the database refuses the read.
Platform-level roles are stored in a dedicated role table, never on the user profile, which removes the classic privilege-escalation path where a user updates their own role field.
