Built so the most paranoid person on the team can approve it.
We treat data security as a product feature, not a compliance checkbox. Here’s how it works.
The three rules we build to.
Keep each business’s data to that business. Give people only the access their role needs. Say only what can be checked.
Defense in depth
Sign-in, role checks on the server, business scoping in the application, row-level security in the database, and an audit log. Server code that uses the service key skips row-level security, so there the application’s scoping is the guard.
Least privilege, by default
Each staff member has one of four roles, and the app checks the role before protected actions on its screens. Settings and access changes land in the audit log.
Trust through verification
Signed webhooks your systems can check, and an audit log you can export as CSV. Penetration test reports, a bug bounty and a public status page are not published.