Leak path 01
RLS exists, but the policy is too broad.
`authenticated` is not the same as `owns this row` or `belongs to this org`.
Free Supabase check · no login · no keys · no uploads
Supabase makes building fast. It also makes it dangerously easy to ship an app where the UI looks private while the database policy is too wide. Run this before a real user becomes your security test.
Leak path 01
`authenticated` is not the same as `owns this row` or `belongs to this org`.
Leak path 02
If privacy depends on a React filter, a direct request can bypass the illusion.
Leak path 03
Files, functions, and service-role paths need the same ownership proof as tables.
When the checker exposes risk
If your app has Supabase auth, RLS, storage, org switching, or private AI outputs, describe the one flow you are worried about. Keep it public and non-sensitive.
Do not send passwords, tokens, API keys, private customer data, database dumps, or private files. This is a lightweight intake path for a fixed-scope review.
Related check
Check payment, auth, data, AI output, support recovery, and launch confidence.
Open simulatorNeed a second pass?
One app, one critical flow, 10 checks, repro notes, and a 2-day action plan.
Book the preflightPayment path too?
If auth is safe but payment state is shaky, check webhooks, entitlement, refunds, and retries.
Check Stripe state