RowShield service_role writes schema
RowShield service_role writes schema: AI writes the schema and nobody writes the policies. High-velocity Supabase backends ship with dangerous defaults: RLS
AI writes the schema and nobody writes the policies. High-velocity Supabase backends ship with dangerous defaults: RLS disabled on a table that PostgREST will happily serve to anyone holding the anon key, which is public by design and ships in the client bundle.
AI writes the schema and nobody writes (service_role)
Permissive policies whose expression is a constant true, so the dashboard reports the table as protected while it is wide open.
- A service_role key in a client bundle, which bypasses RLS entirely and makes every policy in the project decorative.
- And publicly accessible storage buckets.
RowShield runs security checks on AI-built Supabase apps
RowShield runs security checks on AI-built Supabase apps: RLS policies, leaked keys, public storage and schema drift, before they become incidents.
The audit is free
The audit is free.
- Continuous monitoring is Indie at $19 per 30 days (up to 3 projects, hourly scans, email and Slack alerts, 1 seat) or Team at $49 per 30 days (up to 15 projects, 15-minute scans, email, Slack, Discord and custom webhooks, unlimited seats).
- One-time payment through Revolut Pro, includes 30 days, does not auto-renew.
Nine detection rules across the catalog (RLS_DISABLED, RLS_TAUTOLOGY)
Nine detection rules across the catalog and the public surface, with named rules a reader can look up: RLS_DISABLED, RLS_TAUTOLOGY, SERVICE_ROLE_KEY_EXPOSED, PUBLIC_BUCKET_EXPOSURE.
Each finding ships with the remediation SQL, generated
Each finding ships with the remediation SQL, generated from the project’s actual columns rather than from a template.
Drift tracking — what appeared, what came back
Drift tracking — what appeared, what came back after a fix, what disappeared — instead of the same report every time.
Alerts fire on state transitions, not on every scan.
A free read-only audit at rowshield.dev (rowshield.dev)
A free read-only audit at rowshield.dev.
- Paste a deployed app URL — no account, no signup, no database writes.
- RowShield reads the public bundle to discover the Supabase connection, issues GET, HEAD and OPTIONS only, never stores rows, and usually finishes in under 10 seconds.