Skip to content

Commit cf991db

Browse files
committed
docs(validating-metadata): the RLS rule and the membership key rule get their own door rows (#25234)
Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01M4rJHRAZDFqLYQ9dHMH339
1 parent d16c4a7 commit cf991db

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

‎content/docs/deployment/validating-metadata.mdx‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,9 @@ orthogonal to both, and no cell here can carry it; it is written out in
477477
| Security vocabulary freeze (ADR-0090 D3 — the reserved word, replaced by `permission_set` / `position` / `business_unit`) | ✓ | ✓ | ✓ | ✓ᵒᵖᵉᵇᵖᵒᵃ |
478478
| Organization-axis red lines (ADR-0105 D6) | ✓ | ✓ | ✓ | — |
479479
| Declared enforcement that cannot run, **declared on the object being written** — a validation rule's regex / JSON Schema (#4762) and its `format` names (#5178) | ✓ | ✓ | ✓ | ✓ᵒ |
480-
| Declared enforcement that cannot run, **declared on another collection** — sharing-rule conditions (#4698), row-level-security predicates (#4983) | ✓ | ✓ | ✓ | — |
480+
| Declared enforcement that cannot run, **declared on another collection** — sharing-rule conditions (#4698) | ✓ | ✓ | ✓ | — |
481+
| Row-level-security predicates (#4983) — a permission set's policies, an object's `defaultRowScope` and a membership key's `filter`; at the save door also a membership key nothing owns (#25234) | ✓ | ✓ | ✓ | ✓ᵖᵉᵒ |
482+
| Membership key declarations — `userField` / `valueField` columns, one key on one object, a key the registered resolver also owns (save door only) (#25234) | ✓ | ✓ | ✓ | ✓ᵒ |
481483
| Platform-schedule `create_record` organization (#6285) | — | — | — | ✓ᶠ |
482484
| Public-form anonymous intake on this deployment's tenancy posture — advisory only (#21476) | — | — | — | ✓ᵛ |
483485
| Autonumber `{field}` interpolation | ✓ | ✓ | ✓ | ✓ᵒ |
@@ -543,7 +545,11 @@ is answered by an `object` write at all — and each is held by something
543545
different: the door does not accept `sharing_rule` as a type yet, whereas
544546
`permissions` has been in the snapshot since #8309 and only the declaration is
545547
missing. The freeze kept one id whole by staying behind and then crossing whole;
546-
here four ids stopped agreeing, and one row cannot say two things. **When the next crossing lands on
548+
here four ids stopped agreeing, and one row cannot say two things. The RLS
549+
rule has since crossed on its own: to `permission` writes in #20158, and to
550+
`object` writes in #25234, where it judges an object's `defaultRowScope` and
551+
its membership keys' `filter`s and refuses an object write that breaks a stored
552+
policy, so it now has a row of its own. **When the next crossing lands on
547553
a shared row, check the rule ids before the cell: if they disagree, split the
548554
row by the collection each id reads, and neither `✓` nor `—` has to lie.**
549555

0 commit comments

Comments
 (0)