@objectstack/service-sms 17.1.0 → 17.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +462 -0
- package/dist/index.d.mts +33 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +38 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +38 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,467 @@
|
|
|
1
1
|
# @objectstack/service-sms
|
|
2
2
|
|
|
3
|
+
## 17.3.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 6426b86: fix(service-storage,service-sms): a schema default is not a configuration — converge the "authored value" criterion on `ResolvedSettingValue.source` (#5536)
|
|
8
|
+
|
|
9
|
+
Both settings-bound plugins decided "has anyone configured this namespace?" by
|
|
10
|
+
value presence, but the manifest defaults are non-empty on every boot, so an
|
|
11
|
+
unopened settings page read as configuration:
|
|
12
|
+
|
|
13
|
+
- **service-storage**: the swap gate now requires an adapter-relevant key
|
|
14
|
+
(`adapter`, `local_root`, `s3_*` — exactly the inputs `resolveStorageTarget`
|
|
15
|
+
reads) whose `source` is not `'default'` before settings may override the
|
|
16
|
+
constructor-built adapter. Previously the schema defaults
|
|
17
|
+
(`adapter: 'local'`, `local_root: './.objectstack/data/uploads'`) could
|
|
18
|
+
silently move a deployment's declared backing store — and an authored save
|
|
19
|
+
that touched only, say, the upload limit could open the same door.
|
|
20
|
+
- **service-sms**: the downgrade to `LogSmsTransport` now requires an
|
|
21
|
+
operator-authored `provider: 'log'` (`source !== 'default'`). Previously
|
|
22
|
+
the manifest default `'log'` — a value nobody selected — switched off the
|
|
23
|
+
transport the deployment declared via constructor options on every boot.
|
|
24
|
+
|
|
25
|
+
Same criterion, same reason as `EmailServicePlugin` (the in-repo precedent):
|
|
26
|
+
the manifest default (`source: 'default'`) is not a decision anyone made.
|
|
27
|
+
Admin-saved rows and env overrides behave exactly as before. A snapshot with
|
|
28
|
+
no `source` at all reads as `'default'` — the conservative side keeps the
|
|
29
|
+
deployment-declared adapter/transport. The sms `daily_quota` reader keeps its
|
|
30
|
+
declared #2814 exception and still binds by value, never by source.
|
|
31
|
+
- Updated dependencies [809d417]
|
|
32
|
+
- Updated dependencies [387e231]
|
|
33
|
+
- Updated dependencies [f794e4e]
|
|
34
|
+
- Updated dependencies [cae2169]
|
|
35
|
+
- Updated dependencies [b812a54]
|
|
36
|
+
- Updated dependencies [2d4fa75]
|
|
37
|
+
- Updated dependencies [0e4e51b]
|
|
38
|
+
- Updated dependencies [e84bbf6]
|
|
39
|
+
- Updated dependencies [effae80]
|
|
40
|
+
- Updated dependencies [efb3513]
|
|
41
|
+
- Updated dependencies [d62f990]
|
|
42
|
+
- Updated dependencies [c45d8e6]
|
|
43
|
+
- Updated dependencies [8064e6d]
|
|
44
|
+
- Updated dependencies [6dd3e69]
|
|
45
|
+
- Updated dependencies [2e3e8c7]
|
|
46
|
+
- Updated dependencies [e621291]
|
|
47
|
+
- Updated dependencies [655b106]
|
|
48
|
+
- Updated dependencies [40a93b5]
|
|
49
|
+
- Updated dependencies [d5b330d]
|
|
50
|
+
- Updated dependencies [dda969c]
|
|
51
|
+
- Updated dependencies [1f45690]
|
|
52
|
+
- Updated dependencies [277948f]
|
|
53
|
+
- Updated dependencies [8bdd955]
|
|
54
|
+
- Updated dependencies [f3bbbef]
|
|
55
|
+
- Updated dependencies [4f24e9d]
|
|
56
|
+
- Updated dependencies [e238c79]
|
|
57
|
+
- Updated dependencies [8e31083]
|
|
58
|
+
- Updated dependencies [cd288b4]
|
|
59
|
+
- Updated dependencies [4bb412b]
|
|
60
|
+
- Updated dependencies [a5b95ee]
|
|
61
|
+
- Updated dependencies [450e73b]
|
|
62
|
+
- Updated dependencies [2efa1e1]
|
|
63
|
+
- Updated dependencies [35e94c9]
|
|
64
|
+
- Updated dependencies [3798424]
|
|
65
|
+
- Updated dependencies [e27583e]
|
|
66
|
+
- Updated dependencies [4bd6faa]
|
|
67
|
+
- Updated dependencies [86cbe37]
|
|
68
|
+
- Updated dependencies [6a180e4]
|
|
69
|
+
- Updated dependencies [474242f]
|
|
70
|
+
- Updated dependencies [63cd487]
|
|
71
|
+
- Updated dependencies [bd4aa4e]
|
|
72
|
+
- Updated dependencies [803eaab]
|
|
73
|
+
- Updated dependencies [f8e8f03]
|
|
74
|
+
- Updated dependencies [983edf1]
|
|
75
|
+
- Updated dependencies [eae824e]
|
|
76
|
+
- Updated dependencies [9c4c431]
|
|
77
|
+
- Updated dependencies [f6fa22c]
|
|
78
|
+
- Updated dependencies [56d3c7a]
|
|
79
|
+
- Updated dependencies [8a483b3]
|
|
80
|
+
- Updated dependencies [97bcd99]
|
|
81
|
+
- Updated dependencies [df59de0]
|
|
82
|
+
- Updated dependencies [96e25a8]
|
|
83
|
+
- Updated dependencies [f75a38a]
|
|
84
|
+
- Updated dependencies [7a25e7d]
|
|
85
|
+
- Updated dependencies [d3bee87]
|
|
86
|
+
- Updated dependencies [1fa05a6]
|
|
87
|
+
- Updated dependencies [c85a265]
|
|
88
|
+
- Updated dependencies [dcb10a5]
|
|
89
|
+
- Updated dependencies [773a999]
|
|
90
|
+
- Updated dependencies [35dffea]
|
|
91
|
+
- Updated dependencies [d8024f0]
|
|
92
|
+
- Updated dependencies [8120808]
|
|
93
|
+
- Updated dependencies [776a098]
|
|
94
|
+
- Updated dependencies [5060877]
|
|
95
|
+
- Updated dependencies [4f6325d]
|
|
96
|
+
- Updated dependencies [52954c0]
|
|
97
|
+
- Updated dependencies [2aa8456]
|
|
98
|
+
- Updated dependencies [93809a3]
|
|
99
|
+
- Updated dependencies [7c0d0c3]
|
|
100
|
+
- Updated dependencies [daae7aa]
|
|
101
|
+
- Updated dependencies [8dc22d6]
|
|
102
|
+
- Updated dependencies [279431e]
|
|
103
|
+
- Updated dependencies [948dd6b]
|
|
104
|
+
- Updated dependencies [3b4c56c]
|
|
105
|
+
- Updated dependencies [ae8edd2]
|
|
106
|
+
- Updated dependencies [e25403c]
|
|
107
|
+
- Updated dependencies [5c9e40a]
|
|
108
|
+
- Updated dependencies [64baa68]
|
|
109
|
+
- Updated dependencies [9fa70d7]
|
|
110
|
+
- Updated dependencies [09db64a]
|
|
111
|
+
- Updated dependencies [92916e7]
|
|
112
|
+
- Updated dependencies [a84f3ea]
|
|
113
|
+
- Updated dependencies [f2eaae8]
|
|
114
|
+
- Updated dependencies [c09451b]
|
|
115
|
+
- Updated dependencies [ba64877]
|
|
116
|
+
- Updated dependencies [35202f1]
|
|
117
|
+
- Updated dependencies [7345308]
|
|
118
|
+
- Updated dependencies [79b6a22]
|
|
119
|
+
- Updated dependencies [30d96ab]
|
|
120
|
+
- Updated dependencies [f658793]
|
|
121
|
+
- Updated dependencies [c95ad19]
|
|
122
|
+
- Updated dependencies [e58ea8b]
|
|
123
|
+
- Updated dependencies [4a17645]
|
|
124
|
+
- Updated dependencies [3795c5f]
|
|
125
|
+
- Updated dependencies [8ab926b]
|
|
126
|
+
- Updated dependencies [7317cf2]
|
|
127
|
+
- Updated dependencies [e25e839]
|
|
128
|
+
- Updated dependencies [5997207]
|
|
129
|
+
- Updated dependencies [8b13cc8]
|
|
130
|
+
- Updated dependencies [4a4a35d]
|
|
131
|
+
- Updated dependencies [86e765a]
|
|
132
|
+
- Updated dependencies [1d7e76a]
|
|
133
|
+
- Updated dependencies [53dc739]
|
|
134
|
+
- Updated dependencies [fd289be]
|
|
135
|
+
- Updated dependencies [03bf7b1]
|
|
136
|
+
- Updated dependencies [f90e820]
|
|
137
|
+
- Updated dependencies [18d816a]
|
|
138
|
+
- Updated dependencies [e8bd715]
|
|
139
|
+
- Updated dependencies [b91c351]
|
|
140
|
+
- Updated dependencies [a28a3c0]
|
|
141
|
+
- Updated dependencies [daeaaf9]
|
|
142
|
+
- Updated dependencies [c459da6]
|
|
143
|
+
- Updated dependencies [e914733]
|
|
144
|
+
- Updated dependencies [f887e52]
|
|
145
|
+
- Updated dependencies [881f8d8]
|
|
146
|
+
- Updated dependencies [3bfa1e6]
|
|
147
|
+
- Updated dependencies [0a8ebf3]
|
|
148
|
+
- Updated dependencies [901355c]
|
|
149
|
+
- Updated dependencies [34ce8e7]
|
|
150
|
+
- Updated dependencies [33681ea]
|
|
151
|
+
- Updated dependencies [4635f3e]
|
|
152
|
+
- Updated dependencies [fd289be]
|
|
153
|
+
- Updated dependencies [ee3595c]
|
|
154
|
+
- Updated dependencies [b2eab95]
|
|
155
|
+
- Updated dependencies [93940d4]
|
|
156
|
+
- Updated dependencies [3a04b01]
|
|
157
|
+
- Updated dependencies [45b9051]
|
|
158
|
+
- Updated dependencies [b9e9227]
|
|
159
|
+
- Updated dependencies [d395692]
|
|
160
|
+
- Updated dependencies [f074616]
|
|
161
|
+
- Updated dependencies [0e0bf80]
|
|
162
|
+
- Updated dependencies [5894d30]
|
|
163
|
+
- Updated dependencies [a3765f6]
|
|
164
|
+
- Updated dependencies [2d5cee3]
|
|
165
|
+
- Updated dependencies [e22158f]
|
|
166
|
+
- Updated dependencies [7404925]
|
|
167
|
+
- Updated dependencies [0c2334f]
|
|
168
|
+
- Updated dependencies [778c59f]
|
|
169
|
+
- Updated dependencies [d2619fd]
|
|
170
|
+
- Updated dependencies [af56546]
|
|
171
|
+
- Updated dependencies [6acb11a]
|
|
172
|
+
- Updated dependencies [33c5fd3]
|
|
173
|
+
- Updated dependencies [20b0fdb]
|
|
174
|
+
- Updated dependencies [905019b]
|
|
175
|
+
- Updated dependencies [a286411]
|
|
176
|
+
- Updated dependencies [98c0d33]
|
|
177
|
+
- Updated dependencies [368a82e]
|
|
178
|
+
- Updated dependencies [a3d5724]
|
|
179
|
+
- Updated dependencies [93ea19b]
|
|
180
|
+
- Updated dependencies [9ee2dcf]
|
|
181
|
+
- Updated dependencies [8cb96ec]
|
|
182
|
+
- Updated dependencies [8f10a79]
|
|
183
|
+
- Updated dependencies [6269a55]
|
|
184
|
+
- Updated dependencies [a17da05]
|
|
185
|
+
- Updated dependencies [a8c00e2]
|
|
186
|
+
- Updated dependencies [0fb8760]
|
|
187
|
+
- Updated dependencies [e5ce2ed]
|
|
188
|
+
- Updated dependencies [be21955]
|
|
189
|
+
- Updated dependencies [bc56e18]
|
|
190
|
+
- Updated dependencies [be21955]
|
|
191
|
+
- Updated dependencies [a9ee989]
|
|
192
|
+
- Updated dependencies [4d0d944]
|
|
193
|
+
- Updated dependencies [15d58db]
|
|
194
|
+
- Updated dependencies [d63b014]
|
|
195
|
+
- Updated dependencies [9abe4e4]
|
|
196
|
+
- Updated dependencies [2cc7122]
|
|
197
|
+
- Updated dependencies [50d6c92]
|
|
198
|
+
- Updated dependencies [9e0ba21]
|
|
199
|
+
- Updated dependencies [311433f]
|
|
200
|
+
- Updated dependencies [3e5ad08]
|
|
201
|
+
- Updated dependencies [9abe4e4]
|
|
202
|
+
- Updated dependencies [b7131f3]
|
|
203
|
+
- Updated dependencies [e5812fa]
|
|
204
|
+
- Updated dependencies [7085f90]
|
|
205
|
+
- Updated dependencies [dee4dd4]
|
|
206
|
+
- Updated dependencies [ce7e497]
|
|
207
|
+
- Updated dependencies [51ecb2f]
|
|
208
|
+
- Updated dependencies [9086761]
|
|
209
|
+
- Updated dependencies [42a117b]
|
|
210
|
+
- Updated dependencies [1401ae7]
|
|
211
|
+
- Updated dependencies [4297fe7]
|
|
212
|
+
- Updated dependencies [e398863]
|
|
213
|
+
- Updated dependencies [d16df74]
|
|
214
|
+
- Updated dependencies [f11fc61]
|
|
215
|
+
- Updated dependencies [e808890]
|
|
216
|
+
- Updated dependencies [8f79379]
|
|
217
|
+
- Updated dependencies [e6ca40e]
|
|
218
|
+
- Updated dependencies [0c77ea4]
|
|
219
|
+
- Updated dependencies [52954c0]
|
|
220
|
+
- Updated dependencies [89eb997]
|
|
221
|
+
- Updated dependencies [7131f12]
|
|
222
|
+
- Updated dependencies [aa5994e]
|
|
223
|
+
- Updated dependencies [be93457]
|
|
224
|
+
- Updated dependencies [7c342f4]
|
|
225
|
+
- Updated dependencies [a65db76]
|
|
226
|
+
- Updated dependencies [2cf5a96]
|
|
227
|
+
- Updated dependencies [15eb2c9]
|
|
228
|
+
- Updated dependencies [5691b07]
|
|
229
|
+
- Updated dependencies [2a6122b]
|
|
230
|
+
- Updated dependencies [225e769]
|
|
231
|
+
- Updated dependencies [8af88dd]
|
|
232
|
+
- Updated dependencies [fb5fbb8]
|
|
233
|
+
- Updated dependencies [d7b3963]
|
|
234
|
+
- Updated dependencies [33184fd]
|
|
235
|
+
- Updated dependencies [7c41693]
|
|
236
|
+
- Updated dependencies [3c0f3ea]
|
|
237
|
+
- Updated dependencies [4f65837]
|
|
238
|
+
- Updated dependencies [26deb31]
|
|
239
|
+
- Updated dependencies [b72db01]
|
|
240
|
+
- Updated dependencies [dce5cd4]
|
|
241
|
+
- Updated dependencies [9688f58]
|
|
242
|
+
- Updated dependencies [556ebc1]
|
|
243
|
+
- Updated dependencies [177ebdc]
|
|
244
|
+
- Updated dependencies [ad54eb3]
|
|
245
|
+
- Updated dependencies [8d237b4]
|
|
246
|
+
- Updated dependencies [2d2e6f0]
|
|
247
|
+
- Updated dependencies [2d8dd8d]
|
|
248
|
+
- Updated dependencies [22d573e]
|
|
249
|
+
- Updated dependencies [b5a2398]
|
|
250
|
+
- Updated dependencies [348860c]
|
|
251
|
+
- Updated dependencies [5383fa6]
|
|
252
|
+
- Updated dependencies [5b3ff63]
|
|
253
|
+
- Updated dependencies [1a6a19c]
|
|
254
|
+
- Updated dependencies [527e050]
|
|
255
|
+
- Updated dependencies [dd33bf9]
|
|
256
|
+
- Updated dependencies [4cb2a90]
|
|
257
|
+
- Updated dependencies [74a7804]
|
|
258
|
+
- Updated dependencies [53d3689]
|
|
259
|
+
- Updated dependencies [b3a63d3]
|
|
260
|
+
- Updated dependencies [911da5f]
|
|
261
|
+
- Updated dependencies [89448a5]
|
|
262
|
+
- Updated dependencies [49f0dcf]
|
|
263
|
+
- Updated dependencies [033a34c]
|
|
264
|
+
- Updated dependencies [4d25d22]
|
|
265
|
+
- Updated dependencies [1ffee51]
|
|
266
|
+
- Updated dependencies [5ae4303]
|
|
267
|
+
- Updated dependencies [ece4dad]
|
|
268
|
+
- Updated dependencies [e9b377e]
|
|
269
|
+
- Updated dependencies [146f448]
|
|
270
|
+
- Updated dependencies [735f5c7]
|
|
271
|
+
- Updated dependencies [7303cbf]
|
|
272
|
+
- Updated dependencies [a7e18de]
|
|
273
|
+
- Updated dependencies [366f895]
|
|
274
|
+
- Updated dependencies [29ef1e1]
|
|
275
|
+
- Updated dependencies [dc75ba8]
|
|
276
|
+
- Updated dependencies [cce0aa9]
|
|
277
|
+
- Updated dependencies [e764507]
|
|
278
|
+
- Updated dependencies [cff17af]
|
|
279
|
+
- Updated dependencies [39404f3]
|
|
280
|
+
- Updated dependencies [ca1965f]
|
|
281
|
+
- Updated dependencies [8619f95]
|
|
282
|
+
- Updated dependencies [b706af9]
|
|
283
|
+
- Updated dependencies [add4360]
|
|
284
|
+
- Updated dependencies [fc9ba76]
|
|
285
|
+
- Updated dependencies [0f94cc7]
|
|
286
|
+
- Updated dependencies [a11c1a5]
|
|
287
|
+
- Updated dependencies [71f9cd1]
|
|
288
|
+
- Updated dependencies [ee17d86]
|
|
289
|
+
- Updated dependencies [cdbd920]
|
|
290
|
+
- Updated dependencies [18c432e]
|
|
291
|
+
- Updated dependencies [3c418c4]
|
|
292
|
+
- Updated dependencies [fa8715a]
|
|
293
|
+
- Updated dependencies [a933ed7]
|
|
294
|
+
- Updated dependencies [b3ca463]
|
|
295
|
+
- Updated dependencies [a933ed7]
|
|
296
|
+
- Updated dependencies [0d4a6a8]
|
|
297
|
+
- Updated dependencies [518d5e5]
|
|
298
|
+
- Updated dependencies [6643ba1]
|
|
299
|
+
- Updated dependencies [eeba2ef]
|
|
300
|
+
- Updated dependencies [ec4c4d2]
|
|
301
|
+
- Updated dependencies [424f73c]
|
|
302
|
+
- Updated dependencies [cccbe51]
|
|
303
|
+
- Updated dependencies [a8d6b1d]
|
|
304
|
+
- Updated dependencies [e4a7695]
|
|
305
|
+
- Updated dependencies [87075b1]
|
|
306
|
+
- Updated dependencies [fc58a99]
|
|
307
|
+
- Updated dependencies [14cfc00]
|
|
308
|
+
- Updated dependencies [1c6f7b4]
|
|
309
|
+
- Updated dependencies [e854a53]
|
|
310
|
+
- Updated dependencies [dfebfc8]
|
|
311
|
+
- Updated dependencies [d028b37]
|
|
312
|
+
- Updated dependencies [f7b25c5]
|
|
313
|
+
- Updated dependencies [122ef38]
|
|
314
|
+
- Updated dependencies [4a37870]
|
|
315
|
+
- Updated dependencies [428f9b2]
|
|
316
|
+
- Updated dependencies [aa7ff56]
|
|
317
|
+
- Updated dependencies [1401ae7]
|
|
318
|
+
- Updated dependencies [2fd3f1c]
|
|
319
|
+
- Updated dependencies [c41b42e]
|
|
320
|
+
- Updated dependencies [c4db311]
|
|
321
|
+
- Updated dependencies [750fff5]
|
|
322
|
+
- Updated dependencies [c19035e]
|
|
323
|
+
- Updated dependencies [ececf7a]
|
|
324
|
+
- Updated dependencies [d173125]
|
|
325
|
+
- Updated dependencies [8eeca27]
|
|
326
|
+
- Updated dependencies [8425c17]
|
|
327
|
+
- Updated dependencies [7cbe705]
|
|
328
|
+
- Updated dependencies [a5ef1d8]
|
|
329
|
+
- Updated dependencies [772d5de]
|
|
330
|
+
- Updated dependencies [ce80ec2]
|
|
331
|
+
- Updated dependencies [b372318]
|
|
332
|
+
- Updated dependencies [97a2263]
|
|
333
|
+
- Updated dependencies [29d0676]
|
|
334
|
+
- Updated dependencies [0169d49]
|
|
335
|
+
- Updated dependencies [6bd3231]
|
|
336
|
+
- Updated dependencies [d2b5ba8]
|
|
337
|
+
- Updated dependencies [b799ac5]
|
|
338
|
+
- Updated dependencies [8f74307]
|
|
339
|
+
- Updated dependencies [d23dc08]
|
|
340
|
+
- Updated dependencies [644ad50]
|
|
341
|
+
- Updated dependencies [c0714eb]
|
|
342
|
+
- Updated dependencies [9735662]
|
|
343
|
+
- Updated dependencies [bf8d129]
|
|
344
|
+
- Updated dependencies [4d5b4f8]
|
|
345
|
+
- Updated dependencies [0da7cd2]
|
|
346
|
+
- Updated dependencies [28a5c3e]
|
|
347
|
+
- Updated dependencies [4bc18e5]
|
|
348
|
+
- @objectstack/spec@17.3.0
|
|
349
|
+
- @objectstack/core@17.3.0
|
|
350
|
+
- @objectstack/plugin-auth@17.3.0
|
|
351
|
+
|
|
352
|
+
## 17.2.0
|
|
353
|
+
|
|
354
|
+
### Patch Changes
|
|
355
|
+
|
|
356
|
+
- a24b7fa: Make the settings ordering contract **declared and enforced**, and make the
|
|
357
|
+
residual pre-bind READ audible (#10250).
|
|
358
|
+
|
|
359
|
+
`SettingsServicePlugin` binds its data engine from a `kernel:ready` hook
|
|
360
|
+
registered in its `start()`. Three shipped plugins read a settings namespace
|
|
361
|
+
from a `kernel:ready` hook registered in *their* `start()` — `plugin-email`
|
|
362
|
+
(`mail`: SMTP/provider/from-address), `service-sms` (`sms`: provider
|
|
363
|
+
credentials and the daily cost ceiling) and `service-storage` (`storage`:
|
|
364
|
+
backend and credentials). Hooks fire in registration order, so a reader that
|
|
365
|
+
started before the settings plugin read `SettingsService`'s in-memory fallback,
|
|
366
|
+
which is empty at boot: the caller received the manifest **default** with
|
|
367
|
+
`source: 'default'` and `locked: false`, no diagnostic anywhere, while the
|
|
368
|
+
operator's saved row sat unread in `sys_setting`.
|
|
369
|
+
|
|
370
|
+
Nothing constrained that order. None of the three declared any dependency on
|
|
371
|
+
`com.objectstack.service.settings`, so their position was pure `kernel.use()`
|
|
372
|
+
order. It was correct under `os serve` only because the always-on slate happens
|
|
373
|
+
to list `settings` first — and `serve` *prepends* an app's declared `requires`,
|
|
374
|
+
so an ordinary `requires: ['email']` produced email-before-settings and bypassed
|
|
375
|
+
that; cloud's per-tenant runtime mounts the slate from its own wiring.
|
|
376
|
+
|
|
377
|
+
Three changes, one contract:
|
|
378
|
+
|
|
379
|
+
- **Declared order.** Each of the three plugins now declares
|
|
380
|
+
`optionalDependencies: ['com.objectstack.service.settings']`. The kernel
|
|
381
|
+
resolves both the init and the start phase from that graph
|
|
382
|
+
(`resolvePluginOrder`, ADR-0116), so the bind is ordered ahead of the read
|
|
383
|
+
wherever the plugin is composed, in any host. Soft, not hard: a kernel with
|
|
384
|
+
no settings service still boots these plugins unchanged.
|
|
385
|
+
- **The residual is audible.** A settings read issued while a bind is
|
|
386
|
+
*declared but pending* now emits one operator-actionable `warn` per namespace
|
|
387
|
+
naming the repair. Deliberately not a refusal — an in-window read of a
|
|
388
|
+
setting with genuinely no persisted row must answer the manifest default, and
|
|
389
|
+
refusing would turn a correct startup sequence into an error. It stays silent
|
|
390
|
+
in every case that is not the window: after `bindEngine`, on a kernel with no
|
|
391
|
+
`objectql` at all (`settleWithoutEngine`), for a directly constructed
|
|
392
|
+
`SettingsService`, and for a read satisfied by an `OS_*` env override.
|
|
393
|
+
- **The slate pin now derives its boundary.** The foundational-prefix
|
|
394
|
+
assertion covered `slice(0, 6)` while `sms` — a settings reader — sits at
|
|
395
|
+
index 6, one past the end. The new pin
|
|
396
|
+
(`packages/cli/src/commands/serve-settings-ordering.pin.test.ts`) states the
|
|
397
|
+
rule instead of the count: every always-on entry that is not one of the
|
|
398
|
+
services others bind into at `kernel:ready` must be mounted after all of
|
|
399
|
+
them. An entry added tomorrow is covered wherever it lands.
|
|
400
|
+
|
|
401
|
+
No behaviour changes for a deployment whose order was already correct.
|
|
402
|
+
- Updated dependencies [8f04d9a]
|
|
403
|
+
- Updated dependencies [4d7c564]
|
|
404
|
+
- Updated dependencies [6936d07]
|
|
405
|
+
- Updated dependencies [59eb04d]
|
|
406
|
+
- Updated dependencies [9f05b7d]
|
|
407
|
+
- Updated dependencies [163a162]
|
|
408
|
+
- Updated dependencies [26dea14]
|
|
409
|
+
- Updated dependencies [3b2af5e]
|
|
410
|
+
- Updated dependencies [7d2d112]
|
|
411
|
+
- Updated dependencies [03bdd14]
|
|
412
|
+
- Updated dependencies [5fa0d72]
|
|
413
|
+
- Updated dependencies [02b3b07]
|
|
414
|
+
- Updated dependencies [bbe643c]
|
|
415
|
+
- Updated dependencies [914c413]
|
|
416
|
+
- Updated dependencies [55809a0]
|
|
417
|
+
- Updated dependencies [5b0af2b]
|
|
418
|
+
- Updated dependencies [ee2ff45]
|
|
419
|
+
- Updated dependencies [47cd3ec]
|
|
420
|
+
- Updated dependencies [52db1d1]
|
|
421
|
+
- Updated dependencies [5649efb]
|
|
422
|
+
- Updated dependencies [9d7d2de]
|
|
423
|
+
- Updated dependencies [c815c50]
|
|
424
|
+
- Updated dependencies [795ea05]
|
|
425
|
+
- Updated dependencies [2306a76]
|
|
426
|
+
- Updated dependencies [e5ea701]
|
|
427
|
+
- Updated dependencies [a40dcc1]
|
|
428
|
+
- Updated dependencies [def0d3e]
|
|
429
|
+
- Updated dependencies [8d0bb79]
|
|
430
|
+
- Updated dependencies [5acb58d]
|
|
431
|
+
- Updated dependencies [e222a53]
|
|
432
|
+
- Updated dependencies [2e3cf95]
|
|
433
|
+
- Updated dependencies [4c93387]
|
|
434
|
+
- Updated dependencies [504c8d5]
|
|
435
|
+
- Updated dependencies [a037f7c]
|
|
436
|
+
- Updated dependencies [c49007a]
|
|
437
|
+
- Updated dependencies [3ee8ddf]
|
|
438
|
+
- Updated dependencies [16cef97]
|
|
439
|
+
- Updated dependencies [a79bd35]
|
|
440
|
+
- Updated dependencies [6ceaa4b]
|
|
441
|
+
- Updated dependencies [15ea214]
|
|
442
|
+
- Updated dependencies [de19489]
|
|
443
|
+
- Updated dependencies [c684d00]
|
|
444
|
+
- Updated dependencies [923c424]
|
|
445
|
+
- Updated dependencies [1ec36b7]
|
|
446
|
+
- Updated dependencies [5f2e54c]
|
|
447
|
+
- Updated dependencies [189373b]
|
|
448
|
+
- Updated dependencies [af1636c]
|
|
449
|
+
- Updated dependencies [86a8ec9]
|
|
450
|
+
- Updated dependencies [d9353b9]
|
|
451
|
+
- Updated dependencies [35ad101]
|
|
452
|
+
- Updated dependencies [ceb33a9]
|
|
453
|
+
- Updated dependencies [73d9795]
|
|
454
|
+
- Updated dependencies [8012960]
|
|
455
|
+
- Updated dependencies [45204a5]
|
|
456
|
+
- Updated dependencies [9b0172d]
|
|
457
|
+
- Updated dependencies [f34f56b]
|
|
458
|
+
- Updated dependencies [f399618]
|
|
459
|
+
- Updated dependencies [75e9301]
|
|
460
|
+
- Updated dependencies [2810695]
|
|
461
|
+
- @objectstack/plugin-auth@17.2.0
|
|
462
|
+
- @objectstack/spec@17.2.0
|
|
463
|
+
- @objectstack/core@17.2.0
|
|
464
|
+
|
|
3
465
|
## 17.1.0
|
|
4
466
|
|
|
5
467
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -443,6 +443,39 @@ declare class SmsServicePlugin implements Plugin {
|
|
|
443
443
|
* kernel name this plugin when a consumer requires one before it inits.
|
|
444
444
|
*/
|
|
445
445
|
providesServices: string[];
|
|
446
|
+
/**
|
|
447
|
+
* Order-if-present on the settings service (ADR-0116, #10250).
|
|
448
|
+
*
|
|
449
|
+
* `start()` registers a `kernel:ready` hook that reads the `sms` namespace —
|
|
450
|
+
* provider credentials AND the daily cost ceiling. `SettingsServicePlugin`
|
|
451
|
+
* binds its data engine from ITS `kernel:ready` hook, registered in ITS
|
|
452
|
+
* `start()`, so the plugin that starts first registers the earlier hook and
|
|
453
|
+
* the earlier hook runs first. Start order is the topological order over this
|
|
454
|
+
* declaration (`resolvePluginOrder`, used for BOTH phases in
|
|
455
|
+
* `ObjectKernel.bootstrap`), so declaring the edge is what puts the bind
|
|
456
|
+
* ahead of the read.
|
|
457
|
+
*
|
|
458
|
+
* `sms` is the entry this card was filed about: it was added at index 6 of
|
|
459
|
+
* `PLATFORM_ALWAYS_ON_CAPABILITIES`, one past the `slice(0, 6)` prefix that
|
|
460
|
+
* was pinned there at the time, so before this declaration its correct
|
|
461
|
+
* position relative to `settings` was held by nothing at all. In the window
|
|
462
|
+
* `getNamespace('sms')` answers from the manifest defaults — a `log` provider
|
|
463
|
+
* that reports every OTP "sent" and a default cost ceiling — while the
|
|
464
|
+
* operator's saved credentials sit unread in `sys_setting`.
|
|
465
|
+
*
|
|
466
|
+
* That slice is retired (#11046): the slate pin states the rule instead —
|
|
467
|
+
* every always-on entry that is not a bind target (`queue`/`job`/`cache`/
|
|
468
|
+
* `settings`) is mounted after all of them — so `sms` is now held BY the pin
|
|
469
|
+
* rather than sitting one past it, and so is whatever is added next. That
|
|
470
|
+
* covers slate ORDER only; this declaration is still what orders the plugins,
|
|
471
|
+
* and the pin test named below is what keeps it honest.
|
|
472
|
+
*
|
|
473
|
+
* SOFT, not hard: a kernel with no settings service must still boot this
|
|
474
|
+
* plugin (the transport is buildable from options alone). ADR-0049 —
|
|
475
|
+
* declared is enforced: `serve-settings-ordering.pin.test.ts` boots a kernel
|
|
476
|
+
* with the readers registered BEFORE settings and proves the order moves.
|
|
477
|
+
*/
|
|
478
|
+
optionalDependencies: string[];
|
|
446
479
|
version: string;
|
|
447
480
|
type: "standard";
|
|
448
481
|
private readonly options;
|
package/dist/index.d.ts
CHANGED
|
@@ -443,6 +443,39 @@ declare class SmsServicePlugin implements Plugin {
|
|
|
443
443
|
* kernel name this plugin when a consumer requires one before it inits.
|
|
444
444
|
*/
|
|
445
445
|
providesServices: string[];
|
|
446
|
+
/**
|
|
447
|
+
* Order-if-present on the settings service (ADR-0116, #10250).
|
|
448
|
+
*
|
|
449
|
+
* `start()` registers a `kernel:ready` hook that reads the `sms` namespace —
|
|
450
|
+
* provider credentials AND the daily cost ceiling. `SettingsServicePlugin`
|
|
451
|
+
* binds its data engine from ITS `kernel:ready` hook, registered in ITS
|
|
452
|
+
* `start()`, so the plugin that starts first registers the earlier hook and
|
|
453
|
+
* the earlier hook runs first. Start order is the topological order over this
|
|
454
|
+
* declaration (`resolvePluginOrder`, used for BOTH phases in
|
|
455
|
+
* `ObjectKernel.bootstrap`), so declaring the edge is what puts the bind
|
|
456
|
+
* ahead of the read.
|
|
457
|
+
*
|
|
458
|
+
* `sms` is the entry this card was filed about: it was added at index 6 of
|
|
459
|
+
* `PLATFORM_ALWAYS_ON_CAPABILITIES`, one past the `slice(0, 6)` prefix that
|
|
460
|
+
* was pinned there at the time, so before this declaration its correct
|
|
461
|
+
* position relative to `settings` was held by nothing at all. In the window
|
|
462
|
+
* `getNamespace('sms')` answers from the manifest defaults — a `log` provider
|
|
463
|
+
* that reports every OTP "sent" and a default cost ceiling — while the
|
|
464
|
+
* operator's saved credentials sit unread in `sys_setting`.
|
|
465
|
+
*
|
|
466
|
+
* That slice is retired (#11046): the slate pin states the rule instead —
|
|
467
|
+
* every always-on entry that is not a bind target (`queue`/`job`/`cache`/
|
|
468
|
+
* `settings`) is mounted after all of them — so `sms` is now held BY the pin
|
|
469
|
+
* rather than sitting one past it, and so is whatever is added next. That
|
|
470
|
+
* covers slate ORDER only; this declaration is still what orders the plugins,
|
|
471
|
+
* and the pin test named below is what keeps it honest.
|
|
472
|
+
*
|
|
473
|
+
* SOFT, not hard: a kernel with no settings service must still boot this
|
|
474
|
+
* plugin (the transport is buildable from options alone). ADR-0049 —
|
|
475
|
+
* declared is enforced: `serve-settings-ordering.pin.test.ts` boots a kernel
|
|
476
|
+
* with the readers registered BEFORE settings and proves the order moves.
|
|
477
|
+
*/
|
|
478
|
+
optionalDependencies: string[];
|
|
446
479
|
version: string;
|
|
447
480
|
type: "standard";
|
|
448
481
|
private readonly options;
|
package/dist/index.js
CHANGED
|
@@ -433,6 +433,39 @@ var SmsServicePlugin = class {
|
|
|
433
433
|
* kernel name this plugin when a consumer requires one before it inits.
|
|
434
434
|
*/
|
|
435
435
|
this.providesServices = ["sms"];
|
|
436
|
+
/**
|
|
437
|
+
* Order-if-present on the settings service (ADR-0116, #10250).
|
|
438
|
+
*
|
|
439
|
+
* `start()` registers a `kernel:ready` hook that reads the `sms` namespace —
|
|
440
|
+
* provider credentials AND the daily cost ceiling. `SettingsServicePlugin`
|
|
441
|
+
* binds its data engine from ITS `kernel:ready` hook, registered in ITS
|
|
442
|
+
* `start()`, so the plugin that starts first registers the earlier hook and
|
|
443
|
+
* the earlier hook runs first. Start order is the topological order over this
|
|
444
|
+
* declaration (`resolvePluginOrder`, used for BOTH phases in
|
|
445
|
+
* `ObjectKernel.bootstrap`), so declaring the edge is what puts the bind
|
|
446
|
+
* ahead of the read.
|
|
447
|
+
*
|
|
448
|
+
* `sms` is the entry this card was filed about: it was added at index 6 of
|
|
449
|
+
* `PLATFORM_ALWAYS_ON_CAPABILITIES`, one past the `slice(0, 6)` prefix that
|
|
450
|
+
* was pinned there at the time, so before this declaration its correct
|
|
451
|
+
* position relative to `settings` was held by nothing at all. In the window
|
|
452
|
+
* `getNamespace('sms')` answers from the manifest defaults — a `log` provider
|
|
453
|
+
* that reports every OTP "sent" and a default cost ceiling — while the
|
|
454
|
+
* operator's saved credentials sit unread in `sys_setting`.
|
|
455
|
+
*
|
|
456
|
+
* That slice is retired (#11046): the slate pin states the rule instead —
|
|
457
|
+
* every always-on entry that is not a bind target (`queue`/`job`/`cache`/
|
|
458
|
+
* `settings`) is mounted after all of them — so `sms` is now held BY the pin
|
|
459
|
+
* rather than sitting one past it, and so is whatever is added next. That
|
|
460
|
+
* covers slate ORDER only; this declaration is still what orders the plugins,
|
|
461
|
+
* and the pin test named below is what keeps it honest.
|
|
462
|
+
*
|
|
463
|
+
* SOFT, not hard: a kernel with no settings service must still boot this
|
|
464
|
+
* plugin (the transport is buildable from options alone). ADR-0049 —
|
|
465
|
+
* declared is enforced: `serve-settings-ordering.pin.test.ts` boots a kernel
|
|
466
|
+
* with the readers registered BEFORE settings and proves the order moves.
|
|
467
|
+
*/
|
|
468
|
+
this.optionalDependencies = ["com.objectstack.service.settings"];
|
|
436
469
|
this.version = "1.0.0";
|
|
437
470
|
this.type = "standard";
|
|
438
471
|
this.options = options;
|
|
@@ -515,11 +548,13 @@ var SmsServicePlugin = class {
|
|
|
515
548
|
try {
|
|
516
549
|
const payload = await settings.getNamespace("sms");
|
|
517
550
|
const values = {};
|
|
551
|
+
const sources = {};
|
|
518
552
|
for (const [k, v] of Object.entries(payload.values)) {
|
|
519
553
|
values[k] = v?.value;
|
|
554
|
+
if (v?.source) sources[k] = String(v.source);
|
|
520
555
|
}
|
|
521
556
|
this.dailyQuota?.setQuota(values.daily_quota);
|
|
522
|
-
if (!this.options.transport) this.applySmsSettings(values, ctx);
|
|
557
|
+
if (!this.options.transport) this.applySmsSettings(values, sources, ctx);
|
|
523
558
|
} catch (err) {
|
|
524
559
|
ctx.logger.warn("SmsServicePlugin: failed to apply sms settings: " + (err?.message ?? err));
|
|
525
560
|
}
|
|
@@ -582,7 +617,7 @@ var SmsServicePlugin = class {
|
|
|
582
617
|
* on the running SmsService. Incomplete credentials keep the previous
|
|
583
618
|
* transport (with a warning) so a half-saved form can't break delivery.
|
|
584
619
|
*/
|
|
585
|
-
applySmsSettings(values, ctx) {
|
|
620
|
+
applySmsSettings(values, sources, ctx) {
|
|
586
621
|
if (!this.service) return;
|
|
587
622
|
const resolved = providerFromSettings(values);
|
|
588
623
|
if (resolved.missing) {
|
|
@@ -592,7 +627,7 @@ var SmsServicePlugin = class {
|
|
|
592
627
|
return;
|
|
593
628
|
}
|
|
594
629
|
if (resolved.provider === "log") {
|
|
595
|
-
if (values.provider === "log") {
|
|
630
|
+
if (values.provider === "log" && (sources.provider ?? "default") !== "default") {
|
|
596
631
|
this.service.setTransport(new LogSmsTransport(ctx.logger), false);
|
|
597
632
|
ctx.logger.info("SmsServicePlugin: sms settings applied (provider=log; SMS will NOT be sent).");
|
|
598
633
|
}
|