- RLS should be used as the authoritative set of security rules applied to your users’ CRUD operations that reach Postgres.
- Sync Streams (or legacy Sync Rules) are only applied for data that is to be downloaded to clients. They do not apply to uploaded data.
- Sync Streams / Sync Rules can typically be considered to be complementary to RLS, and will generally mirror your RLS setup.
Supabase tables are often created with auto-increment IDs. For easiest use of PowerSync, make sure to convert them to text IDs as detailed here.
Example
The Supabase + PowerSync guide sets up RLS policies for the to-do list demo app:auth.uid() in a Supabase RLS policy maps to:
auth.user_id()in Sync Streamsrequest.user_id()(previouslytoken_parameters.user_id) in legacy Sync Rules