user-feedback: correct UPDATE policy WITH CHECK fallback guidance
Nobody has claimed this yet.
Assessment
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Newbie friendliness
- 92/100
- Issue type
- Documentation
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- postgresql
- Domain
- documentation
Research direction
Edit skills/supabase/SKILL.md in Core Principles → Security checklist → RLS, views, and privileged database code → UPDATE policies. Read the linked PostgreSQL CREATE POLICY and Supabase RLS documentation first, then replace the introductory guidance while retaining the SQL example. Done means the text accurately explains the USING fallback for omitted WITH CHECK and links to the sources.
Written by the indexing model from the issue text.
Description
What happened
Task: Verify the Supabase skill's guidance on UPDATE row-level security policies.
Skill said: The security checklist states that UPDATE policies require both USING and WITH CHECK, and that omitting WITH CHECK allows a user to reassign a row's user_id to someone else.
Expected: PostgreSQL applies the USING expression to the proposed new row when WITH CHECK is omitted for an UPDATE or ALL policy. In the skill's example, the ownership predicate therefore still checks the new owner even without an explicit WITH CHECK.
Explicitly writing both clauses is valid and can improve clarity. The issue is the explanation that omission alone permits ownership reassignment, not the SQL example itself.
Both primary documentation sources describe the fallback:
- PostgreSQL CREATE POLICY, Description and UPDATE sections
- Supabase Row Level Security, UPDATE policies
Source
File: skills/supabase/SKILL.md
Section: Core Principles → Security checklist → RLS, views, and privileged database code → UPDATE policies.
The assertion is present in this immutable upstream revision and in the main-branch file retrieved on 2026-09-08. The installed skill file was compared with that historical upstream revision and matched byte for byte (SHA-256 1171386737b231610fa42485707272765c3516a9bbc0bd2c6c161a8cee3d7d33). This is not a locally introduced wording change.
Fix suggestion
Replace the introductory bullet while retaining the existing SQL example:
UPDATE policies check existing and proposed rows.
USINGdetermines which existing rows may be updated.WITH CHECKdetermines which proposed rows may be stored. ForUPDATEandALLpolicies, PostgreSQL usesUSINGas the check on proposed rows whenWITH CHECKis omitted. SpecifyWITH CHECKexplicitly when the new-row condition must differ, or to make the intended rule clear. The following example spells out the same ownership condition for both checks:
Link the explanation to the PostgreSQL documentation above.
This avoids false security findings based solely on an omitted clause. Effective authorization still depends on all applicable policies, policy composition, privileges and RLS bypass conditions; this report does not claim that arbitrary policy sets are secure.
Verification: Documentation and upstream/local source comparison. No new database runtime reproduction was performed for this documentation report.
- Dominant language
- No language data
- Stars
- 24
- Forks
- 10
- Avg merge
- 22h 23m
- Merged PRs (30d)
- 1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from supabase-community/supabase-plugin
-
verifier Open
Difficulty 4/5 3-5 days Newbie friendliness 25/100
-
Difficulty 4/5 3-5 days Newbie friendliness 42/100
-
Difficulty 3/5 1-2 days Newbie friendliness 52/100
supabase-community/supabase-plugin#50 · 1 comment ·
All issues in supabase-community/supabase-plugin
Similar issues
-
user-reported
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Kong/developer.konghq.com#7316 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
HarperFast/skills#96 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
infinispan/infinispan#18150 ·
-
bug triage:deciding
Difficulty 1/5 Under an hour Newbie friendliness 88/100
open-telemetry/otel-arrow#4132 ·
-
Ecosystem: ClawMetry — the Qwen Code reader is now free and open source (follow-up to #9294 / #9338) Opencategory/integration priority/P3 scope/documentation status/ready-for-human type/feature-request
Difficulty 1/5 Under an hour Newbie friendliness 84/100