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
docs(permissions): re-anchor system-context census citations after the bootstrap rewrite shifted security-plugin.ts line numbers
Pure line rot: the #11974 edit moved seven isSystem read sites (and one
NON_READ_ANCHORS citation target) by +19/+20 lines; every re-anchored line
is content-identical to its merge-base counterpart (measured pair by pair
before editing). check-system-context-census --fix refused mechanically
(#13490's false-refusal shape: it counts shifted NON_READ_ANCHORS
citations as read anchors), so the eight citations are re-anchored by hand
to proven-identical lines. Census verdict line is back byte-identical to
the merge base's: 109 sites, 145 anchors, 27 declared non-read.
Copy file name to clipboardExpand all lines: content/docs/permissions/system-context.mdx
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -87,14 +87,14 @@ that silently does not happen.
87
87
88
88
| # | Behaviour when `isSystem`| Package | What you get / what you lose | Anchor |
89
89
|:--|:---|:---|:---|:---|
90
-
| 1 |**The whole security middleware short-circuits** before any gate runs | plugin-security | Get: every CRUD/FLS/tenant/owner gate below skipped in one branch. Lose: all of rows 2–6 at once — this is the single largest behaviour on the page |`security-plugin.ts:1565`|
91
-
| 2 |**`owner_id` is not auto-stamped on INSERT** (the step 3.5 anchor guard is inside the block row 1 skips) | plugin-security | Lose: the row lands `owner_id = NULL`, so the default `owner_only_writes` policy hides it **from its own creator**. Get: nothing — this is a gap, not a capability | guard at `security-plugin.ts:2491` (the step 3.5 block), skipped by `:1565`|
| 1 |**The whole security middleware short-circuits** before any gate runs | plugin-security | Get: every CRUD/FLS/tenant/owner gate below skipped in one branch. Lose: all of rows 2–6 at once — this is the single largest behaviour on the page |`security-plugin.ts:1585`|
91
+
| 2 |**`owner_id` is not auto-stamped on INSERT** (the step 3.5 anchor guard is inside the block row 1 skips) | plugin-security | Lose: the row lands `owner_id = NULL`, so the default `owner_only_writes` policy hides it **from its own creator**. Get: nothing — this is a gap, not a capability | guard at `security-plugin.ts:2511` (the step 3.5 block), skipped by `:1585`|
| 7 | Metadata-plane schema masking exempt (ADR-0106 D4) | metadata-core | Get: unmasked object schema. Note: the exemption is a **caller** property — it short-circuits before the security service is consulted |`object-schema-fls.ts:228`|
97
-
| 8 |`explain()` may target a principal other than the caller | plugin-security | Get: no `manage_users` / delegated-admin check |`security-plugin.ts:3808`|
97
+
| 8 |`explain()` may target a principal other than the caller | plugin-security | Get: no `manage_users` / delegated-admin check |`security-plugin.ts:3827`|
98
98
| 9 | Anonymous-deny treats the caller as authenticated | core | Get: passes the 401 seam with no `userId`|`anonymous-deny.ts:154`|
0 commit comments