Row-Level Security and careful function logic keep tenant A from seeing tenant B. Two layers, each needing its own proof, every release.
Policies proven per table, command and identity
Functions, views and triggers judged per routine
Witnessed evidence of table, command and channel
PII in error messages caught
How to do it
Start free with rlsautotest for the policies. seccover covers the policies and the code in one run.
Policies only, free. rlsautotest tests every RLS policy, per table, command and identity.
pip install rlsautotest
rlsautotest --db-url "$DATABASE_URL" --schema public --html rls-report.html
# or emit a committable pgTAP suite:
rlsautotest --db-url "$DATABASE_URL" --schema public --emit supabase/
Policies and code, Enterprise. seccover tests the RLS policies with an improved version of the rlsautotest checks, plus the functions, views and triggers that bypass them.
We would like to log your visit to see how the site is used. That records the page, the site you came from, your IP address and browser, and a random id for this tab. We delete it once we no longer need it.