- 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
Continuing with the schema set up during the guide, below are the RLS policies for the to-do list 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