Commit 7df7c64
authored
feat(sharing): criteria_json is declaratively required — ADR-0113 P2, the first consumer (P1 browser-verified) (#4044)
The field ADR-0113 was written for, cashing in the split #4031 landed.
sys_sharing_rule.criteria_json flips to required: true — the posture that was un-declarable before the split: write contract only (insert must provide, update may not null out, rows predating the gate rest, an admin can still active:false an over-broad legacy rule), deliberately NO storage.notNull because deployed tenants' legacy null rows are the case the split exists for.
The #3929 guards consolidate by layer: the declaration owns missing/null/explicit-clear plus the Setup form's marker and client validation; bindRuleCriteriaGuard narrows to the non-null match-all shapes required cannot express ('{}', vacuous $and/$or, unparsable JSON — the shape-naming message still wins, hooks fire before validation); defineRule keeps the API seam; the evaluator stays fail-closed (ADR-0049). Empty-state registry entry carries the declarative pointer.
P1 verified in the browser with zero Console changes (objectui form-view bridge is already metadata-driven): the served metadata carries criteria_json.required: true, and the Setup sharing-rule form renders Criteria* — positive control Object*, negative control Description. The dogfood legacy-row fixture moved to the driver seam: with the declaration in place, unbinding the hook no longer fakes a pre-gate row through the engine — the defense-in-depth the flip bought, caught by CI.
plugin-sharing 198/198; the bound sharing-rule-criteria-required proof 5/5 against a booted stack; check:empty-state + check:liveness green; patch changeset (not breaking — the same writes were already rejected by the hook).1 parent 0af50a3 commit 7df7c64
5 files changed
Lines changed: 62 additions & 36 deletions
File tree
- .changeset
- packages
- plugins/plugin-sharing/src
- objects
- qa/dogfood/test
- spec/scripts/liveness
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
Lines changed: 12 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
146 | 151 | | |
147 | 152 | | |
148 | 153 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | | - | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
98 | 104 | | |
99 | 105 | | |
100 | 106 | | |
| |||
Lines changed: 20 additions & 22 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
35 | | - | |
36 | 34 | | |
37 | 35 | | |
38 | 36 | | |
| |||
129 | 127 | | |
130 | 128 | | |
131 | 129 | | |
132 | | - | |
133 | | - | |
134 | | - | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
135 | 137 | | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
153 | 151 | | |
154 | 152 | | |
155 | 153 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
106 | | - | |
107 | | - | |
| 106 | + | |
| 107 | + | |
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
| |||
0 commit comments