docs(security): sync hand-written docs + data skill to ADR-0056 landings#2075
Merged
Conversation
The nine ADR-0056 PRs merged but updated only one doc line (the email-RLS note in #2054). This brings the hand-written security docs and the data authoring skill in line with what actually shipped and is dogfood-proven: - public-forms: public forms are now self-authorizing via a declaration- derived `publicFormGrant` (create + read-back on the form's target object). A `guest_portal` profile is no longer required — it is retained only for back-compat (hooks detecting a guest via falsy `ctx.user?.id`). (ADR-0056 Option A, #2073) - implementation-status + security guide: corrected the "anonymous traffic bypasses enforcement" posture (boot warning lands in D2; public forms no longer depend on the fall-open; the default-deny flip is release-gated); marked OWD/sharing-model enforcement, the sharing-rule evaluator, and the app-declarable default profile as live. - security guide: documented the `role_and_subordinates` sharing recipient (configurable role-hierarchy widening, D6). - permissions-matrix: `object.sharingModel` now accepts the canonical OWD vocabulary (`private`/`public_read`/`public_read_write`/ `controlled_by_parent`) alongside the legacy spellings (D1). - objectstack-data skill: corrected the RLS section to the enforced `rowLevelSecurity` policy shape (`using`/`check` + `current_user.*` placeholders, incl. the new `current_user.email`), and flagged the object-level CEL `rls` config as experimental (D8). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XVdnfUAx85amkerym26vdx
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
os-zhuang
marked this pull request as ready for review
June 20, 2026 12:38
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The nine ADR-0056 PRs (#2054, #2058, #2062, #2064, #2065, #2069, #2070, #2071, #2073) all merged — but across that entire range only one doc line was updated (the email-RLS note in #2054). The hand-written security docs and the
objectstack-dataauthoring skill therefore describe the old/incomplete model. This PR brings them in line with what actually shipped and is dogfood-proven.There are no showcase skills (
examples/app-showcasehas only docs guides, noskills/), so nothing to update there.What changed
guides/public-forms.mdxpublicFormGrant(create + read-back on the form's target object). Aguest_portalprofile is no longer required — retained only for back-compat (hooks detecting a guest via falsyctx.user?.id).concepts/implementation-status.mdxguides/security.mdxrole_and_subordinatessharing recipient (configurable role-hierarchy widening).guides/cheatsheets/permissions-matrix.mdxobject.sharingModelnow accepts the canonical OWD vocabulary (private/public_read/public_read_write/controlled_by_parent) alongside the legacyread/read_write/fullspellings.skills/objectstack-data/SKILL.mdpredicate/os.user.*form to the enforcedrowLevelSecuritypolicy shape (using/check+current_user.*placeholders, incl. the newcurrent_user.email); flagged the object-levelrlsconfig as experimental.Not touched (already accurate)
protocol/objectql/security.mdx— already documentscurrent_user.emailand the enforcedusing/checkshape (feat(security): resolve current_user.email in RLS owner policies + owner-scoped showcase invoices #2054).references/security/sharing.mdx— already listsrole_and_subordinatesas a recipient type.Verification
Edits are pure markdown/MDX content, cross-checked against the merged source:
object.zod.tssharingModelenum (D1),plugin-sharing/rule-hooks.ts(afterInsert/afterUpdateevaluation),rest-server.ts+security-plugin.tspublicFormGrantshort-circuit (Option A), anddefault-permission-sets.tscurrent_user.*policies.🤖 Generated with Claude Code
Generated by Claude Code