Skip to content

The problem list is free. A fix prompt for each one is $9.

See pricing

Supabase

service_role in the browser is the mistake

The anon key is supposed to be in the client. The service_role key bypasses Row Level Security. If that JWT is in the page or a same-origin script, anyone who loads the app can copy it.

  • service_role in the bundle

    A service_role JWT in public files is a critical finding. Rotate it and move server work to a route that reads the key from the server environment.

  • Anon key, and RLS we cannot see

    The anon key is recorded as a note, not a leak. This scan does not connect to Postgres or read policies. A quiet bundle does not prove RLS is on. That check is listed as coming soon and is not run.

  • The key also sitting in a public env file

    We request /.env, /.env.local, and /.env.production. If the service_role key is in one of those responses, it is treated as already copied.

Review RLS in the Supabase SQL editor yourself. Monitor at $9/mo re-scans the public URL each week and emails if the grade drops or an issue appears or clears.

Scan a URL you own

The same free check as the homepage. You confirm the app is yours before it runs.

Free public scan

After the results

Monitor weekly: $9/mo

The free scan lists what is already public. Watchdog Monitor re-checks that app every week and emails the grade, plus what is new or fixed. Fix prompts stay a separate $9 one-time unlock on the report.

Monitor weekly: $9/mo

Run the free scan first. The monitor button is on the report.

What this scan can see in a Supabase app →