Commit bb1ce2e
authored
Two concrete findings from the ADR-0116 consumer-side audit, plus the
authoring rule that would have prevented both.
plugin-auth claimed a fallback it did not have: init() ran
`const dataEngine = ctx.getService('data'); if (!dataEngine) { warn(...
"auth will use in-memory storage") }`. That branch could never execute —
getService THROWS for an unregistered service rather than returning
undefined, and this plugin declares a hard dependency on ObjectQL (which
registers `data` unconditionally), so a kernel without the engine fails
earlier still with "Dependency ... not found". The branch is removed and
the real contract declared as requiresServices: ['data', 'manifest'],
which also replaces a trailing `// manifest service required` comment
with the machine-checked form of the same claim. AuthManager keeps its
own optional dataEngine guards — it is usable outside the plugin.
plugin-webhook-outbox was protected only transitively: it resolves
`manifest` in init() with no fallback while depending on messaging,
which in turn depends on ObjectQL, the actual provider. That would have
broken silently the day messaging stopped depending on the engine, and
surfaced as a crash inside an unrelated plugin's init. It now declares
requiresServices: ['manifest'] directly.
Neither change alters ordering or boot outcomes on any current
composition — both plugins were already ordered correctly. What changes
is what a broken composition says, and that the guarantees are checked
rather than inherited.
Docs: anatomy.mdx gains the three ADR-0116 fields and the decision rule
for resolving a service inside init(), including the two traps behind
these fixes. The api-registry example declares the contract on all seven
of its plugins instead of relying on kernel.use() order.
Refs #4187
1 parent 6f23667 commit bb1ce2e
5 files changed
Lines changed: 159 additions & 6 deletions
File tree
- .changeset
- content/docs/plugins
- packages
- core/examples
- plugins
- plugin-auth/src
- plugin-webhooks/src
| 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 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
131 | 131 | | |
132 | 132 | | |
133 | 133 | | |
| 134 | + | |
134 | 135 | | |
135 | 136 | | |
136 | 137 | | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
137 | 160 | | |
138 | 161 | | |
139 | 162 | | |
| |||
242 | 265 | | |
243 | 266 | | |
244 | 267 | | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
245 | 309 | | |
246 | 310 | | |
247 | 311 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
27 | 33 | | |
28 | 34 | | |
29 | 35 | | |
| |||
163 | 169 | | |
164 | 170 | | |
165 | 171 | | |
| 172 | + | |
| 173 | + | |
166 | 174 | | |
167 | 175 | | |
168 | 176 | | |
| |||
212 | 220 | | |
213 | 221 | | |
214 | 222 | | |
| 223 | + | |
| 224 | + | |
215 | 225 | | |
216 | 226 | | |
217 | 227 | | |
| |||
282 | 292 | | |
283 | 293 | | |
284 | 294 | | |
| 295 | + | |
| 296 | + | |
285 | 297 | | |
286 | 298 | | |
287 | 299 | | |
| |||
310 | 322 | | |
311 | 323 | | |
312 | 324 | | |
| 325 | + | |
| 326 | + | |
313 | 327 | | |
314 | 328 | | |
315 | 329 | | |
| |||
361 | 375 | | |
362 | 376 | | |
363 | 377 | | |
| 378 | + | |
| 379 | + | |
364 | 380 | | |
365 | 381 | | |
366 | 382 | | |
| |||
431 | 447 | | |
432 | 448 | | |
433 | 449 | | |
| 450 | + | |
| 451 | + | |
434 | 452 | | |
435 | 453 | | |
436 | 454 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
147 | | - | |
148 | | - | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
149 | 160 | | |
150 | 161 | | |
151 | 162 | | |
| |||
199 | 210 | | |
200 | 211 | | |
201 | 212 | | |
202 | | - | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
203 | 225 | | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | 226 | | |
208 | 227 | | |
209 | 228 | | |
| |||
Lines changed: 10 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
65 | 75 | | |
66 | 76 | | |
67 | 77 | | |
| |||
0 commit comments