Skip to content

docs(security): sync hand-written docs + data skill to ADR-0056 landings#2075

Merged
os-zhuang merged 1 commit into
mainfrom
claude/lucid-gauss-t7dd3z
Jun 20, 2026
Merged

docs(security): sync hand-written docs + data skill to ADR-0056 landings#2075
os-zhuang merged 1 commit into
mainfrom
claude/lucid-gauss-t7dd3z

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

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-data authoring 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-showcase has only docs guides, no skills/), so nothing to update there.

What changed

File Correction Source
guides/public-forms.mdx Public forms now self-authorize via a declaration-derived publicFormGrant (create + read-back on the form's target object). A guest_portal profile is no longer required — retained only for back-compat (hooks detecting a guest via falsy ctx.user?.id). Option A / #2073
concepts/implementation-status.mdx 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. D1/D2/D6/D7
guides/security.mdx Same anonymous-posture fix; documented the role_and_subordinates sharing recipient (configurable role-hierarchy widening). D2/D6
guides/cheatsheets/permissions-matrix.mdx object.sharingModel now accepts the canonical OWD vocabulary (private/public_read/public_read_write/controlled_by_parent) alongside the legacy read/read_write/full spellings. D1
skills/objectstack-data/SKILL.md Corrected the RLS section from an unenforced object-level CEL predicate/os.user.* form to the enforced rowLevelSecurity policy shape (using/check + current_user.* placeholders, incl. the new current_user.email); flagged the object-level rls config as experimental. #2054 / D8

Not touched (already accurate)

Verification

Edits are pure markdown/MDX content, cross-checked against the merged source: object.zod.ts sharingModel enum (D1), plugin-sharing/rule-hooks.ts (afterInsert/afterUpdate evaluation), rest-server.ts + security-plugin.ts publicFormGrant short-circuit (Option A), and default-permission-sets.ts current_user.* policies.

🤖 Generated with Claude Code


Generated by Claude Code

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
@vercel

vercel Bot commented Jun 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jun 20, 2026 10:50am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation size/m labels Jun 20, 2026
@os-zhuang os-zhuang added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Jun 20, 2026 — with Claude
@os-zhuang
os-zhuang marked this pull request as ready for review June 20, 2026 12:38
@os-zhuang
os-zhuang merged commit eb2961e into main Jun 20, 2026
18 checks passed
@os-zhuang
os-zhuang deleted the claude/lucid-gauss-t7dd3z branch June 20, 2026 12:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/m skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants