A wrong RLS policy doesn't throw an error, it just returns the wrong rows, so it ships untested and you find out when data leaks. rlsautotest generates the pgTAP tests and the seed data straight from your policies, so you can catch it. Free and open-source.
The problem: RLS fails quietly
Row-Level Security is what keeps one tenant's data from another's.
When it's wrong, it doesn't error. It returns the wrong rows.
Too strict → empty results → your app looks broken.






