You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 9753e50
Browse filesBrowse the repository at this point in the historyBrowse files
feat(lint): gate a sharing rule anchored where sharing has nothing to widen (#9698)
`validateSharingRuleEnforceability` gains its second arm. It already judged a
sharing rule's `condition` against the compiler that lowers it; it now judges
the rule's `object` against the verdict that decides whether the grant can
exist at all — `SharingService.inertGrantReason` (ADR-0111 D7), mirrored rather
than modelled, over the two of its arms that are decidable from authored
metadata before anything boots.
Two ids, because the two are not the same failure. Measured against a real
`SharingService`: a `public` OWD refuses the grant and leaves `buildReadFilter`
returning null, so the audience already reads everything and the declaration
advertises a restriction that does not exist; a `controlled_by_parent` anchor
refuses with a different reason and leaves the recipient seeing only what the
MASTER grants, so the author believes a grant exists that does not.
Blast radius measured through `objectstack build` before choosing `error`: 5
sharing rules exist in this repo, 3 fire, all in examples/app-crm, all on
`public_read_write` objects, all failing their boot backfill since they were
written. Removed under ADR-0049 enforce-or-remove, as #9237 did for the two
equivalent showcase rules. The showcase's remaining 2 stay silent.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XqDQYVU5smx29ts9pAErja
0 commit comments