Cinderblock — RLS Policy Reference

Generated 2026-07-28 from pg_policies on the deployed database via v_public_policies. 22 policies across 8 tables.

public.audit_events

2 policies

audit_events_selectSELECT · public
USING

CASE
    WHEN app_private.has_workspace_role(workspace_id, 'admin'::workspace_role) THEN true
    WHEN app_private.has_workspace_role(workspace_id, 'member'::workspace_role) THEN (actor_id = auth.uid())
    ELSE false
END
WITH CHECK
— (no WITH CHECK clause)
audit_events_insert_cb_audit_writerINSERT · cb_audit_writer
USING
— (no USING clause)
WITH CHECK
true

public.processed_stripe_events

2 policies

processed_stripe_events_selectSELECT · public
USING
false
WITH CHECK
— (no WITH CHECK clause)
processed_stripe_events_insertINSERT · public
USING
— (no USING clause)
WITH CHECK
false

public.step_up_codes

1 policies

step_up_codes_no_user_accessALL · public
USING
false
WITH CHECK
false

public.subscriptions

4 policies

subscriptions_selectSELECT · public
USING
app_private.has_workspace_role(workspace_id, 'admin'::workspace_role)
WITH CHECK
— (no WITH CHECK clause)
subscriptions_insertINSERT · public
USING
— (no USING clause)
WITH CHECK
false
subscriptions_updateUPDATE · public
USING
false
WITH CHECK
false
subscriptions_deleteDELETE · public
USING
false
WITH CHECK
— (no WITH CHECK clause)

public.tasks

4 policies

tasks_selectSELECT · public
USING
app_private.is_workspace_member(workspace_id)
WITH CHECK
— (no WITH CHECK clause)
tasks_insertINSERT · public
USING
— (no USING clause)
WITH CHECK
(app_private.has_workspace_role(workspace_id, 'member'::workspace_role) AND (created_by = auth.uid()) AND app_private.workspace_is_writable(workspace_id))
tasks_updateUPDATE · public
USING
app_private.has_workspace_role(workspace_id, 'member'::workspace_role)
WITH CHECK
(app_private.has_workspace_role(workspace_id, 'member'::workspace_role) AND app_private.workspace_is_writable(workspace_id))
tasks_deleteDELETE · public
USING
app_private.has_workspace_role(workspace_id, 'admin'::workspace_role)
WITH CHECK
— (no WITH CHECK clause)

public.workspace_invitations

3 policies

workspace_invitations_selectSELECT · public
USING
app_private.has_workspace_role(workspace_id, 'admin'::workspace_role)
WITH CHECK
— (no WITH CHECK clause)
workspace_invitations_insertINSERT · public
USING
— (no USING clause)
WITH CHECK
false
workspace_invitations_updateUPDATE · public
USING
false
WITH CHECK
— (no WITH CHECK clause)

public.workspace_members

3 policies

members_selectSELECT · public
USING
(((user_id = auth.uid()) AND (removed_at IS NULL)) OR app_private.has_workspace_role(workspace_id, 'admin'::workspace_role))
WITH CHECK
— (no WITH CHECK clause)
members_insertINSERT · public
USING
— (no USING clause)
WITH CHECK
false
members_updateUPDATE · public
USING
app_private.has_workspace_role(workspace_id, 'admin'::workspace_role)
WITH CHECK
app_private.has_workspace_role(workspace_id, 'admin'::workspace_role)

public.workspaces

3 policies

workspaces_selectSELECT · public
USING
((deleted_at IS NULL) AND app_private.is_workspace_member(id))
WITH CHECK
— (no WITH CHECK clause)
workspaces_insertINSERT · public
USING
— (no USING clause)
WITH CHECK
((created_by = auth.uid()) AND (deleted_at IS NULL))
workspaces_updateUPDATE · public
USING
((deleted_at IS NULL) AND app_private.has_workspace_role(id, 'owner'::workspace_role))
WITH CHECK
((deleted_at IS NULL) AND app_private.has_workspace_role(id, 'owner'::workspace_role))