What is RLS, and why does it matter?
Row Level Security (RLS) is the set of database rules in Supabase that decides which rows each signed-in user can read or change. When many customers share the same tables, one missing or loose rule can let one customer see or change another customer’s data. Nothing looks broken when that happens, so it takes a careful look to find it.
Do you work on my production database?
No. I only test with your written permission, on a local copy built from your code and migrations, with test accounts. I never touch your users’ real data, and I never test a live system without your permission.
What do you need from me?
Access to the code, including the Supabase migrations (a GitHub repository is easiest), a few lines on who your users are and what each role should be able to do, and your written permission. Everything happens by email.
How long does it take?
For a typical app, the report arrives within 5 working days of getting access to the code. Fixes add 3–5 working days. For bigger apps, I confirm the date in writing before I start.
What do I get?
A written report for founders first, developers second: each finding with its severity, what it means for your business and the evidence to reproduce it. With the fix packages you also get the fixes as a database migration, each one checked with a test you can rerun.
And if you don’t find any problems?
Then the report says so, and shows what I checked and how, with tests you can rerun yourself. It is careful, reproducible work, not a guarantee that nothing else can go wrong: I am not a certified penetration tester.