Back to Supabase

Deprecated Rls Features Pm77Zs

apps/docs/content/troubleshooting/deprecated-rls-features-Pm77Zs.mdx

1.26.04892 B
Original Source

The auth.role() function is now deprecated

The auth.role() function has been deprecated in favour of using the TO field, natively supported within Postgres:

sql
-- DEPRECATED
create policy "Public profiles are viewable by everyone."
on profiles for select using (
  auth.role() = 'authenticated' or auth.role() = 'anon'
);

-- RECOMMENDED
create policy "Public profiles are viewable by everyone."
on profiles for select
to authenticated, anon
using (
  true
);

The auth.email() function is now deprecated

The auth.email() function has been deprecated in favour a more generic function to return the full JWT:

sql
- DEPRECATED
create policy "User can view their profile."
on profiles for select using (
  auth.email() = email
);

-- RECOMMENDED
create policy "User can view their profile."
on profiles for select using (
  (auth.jwt() ->> 'email') = email
);