@cosmicdrift/kumiko-bundled-features 0.355.0 → 0.357.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/dist/auth-mfa/i18n.js +1 -0
- package/dist/auth-mfa/schema/user-mfa.d.ts +6 -0
- package/dist/auth-mfa/screens.js +8 -1
- package/dist/billing-foundation/entities.d.ts +8 -0
- package/dist/billing-foundation/projection.d.ts +8 -0
- package/dist/cap-counter/entity.d.ts +1 -0
- package/dist/cap-counter/feature.js +7 -1
- package/dist/cap-overview/screens.js +3 -1
- package/dist/compliance-profiles/handlers/set-profile.write.js +14 -22
- package/dist/config/table.d.ts +6 -0
- package/dist/crypto-shredding/handlers/forget-subject.write.js +15 -3
- package/dist/custom-fields/entity.d.ts +4 -0
- package/dist/custom-fields/handlers/define-system-field.write.js +8 -16
- package/dist/custom-fields/handlers/delete-system-field.write.js +5 -2
- package/dist/custom-fields/lib/define-or-resurrect.d.ts +2 -1
- package/dist/custom-fields/lib/define-or-resurrect.js +11 -4
- package/dist/data-retention/schema/tenant-retention-override.d.ts +4 -0
- package/dist/delivery/chat-webhook-sender.js +1 -1
- package/dist/delivery/constants.d.ts +1 -0
- package/dist/delivery/constants.js +4 -0
- package/dist/delivery/delivery-service.js +62 -25
- package/dist/delivery/feature.js +7 -1
- package/dist/delivery/jobs.js +25 -1
- package/dist/delivery/tables.d.ts +6 -0
- package/dist/delivery/testing.d.ts +1 -0
- package/dist/document-ingest-foundation/entity.d.ts +4 -0
- package/dist/folders/entity.d.ts +8 -0
- package/dist/form-draft/entity.d.ts +2 -0
- package/dist/inbound-mail-foundation/entities.d.ts +25 -0
- package/dist/inbound-mail-foundation/projection.d.ts +20 -0
- package/dist/jobs/job-run-table.d.ts +6 -0
- package/dist/ledger/entity.d.ts +13 -0
- package/dist/managed-pages/handlers/set.write.js +6 -17
- package/dist/managed-pages/table.d.ts +12 -0
- package/dist/notes-history/entity.d.ts +12 -0
- package/dist/notes-history/entity.js +7 -6
- package/dist/notes-history-user-data/hooks.d.ts +10 -1
- package/dist/notes-history-user-data/hooks.js +78 -61
- package/dist/notes-history-user-data/index.d.ts +1 -0
- package/dist/notes-history-user-data/index.js +2 -1
- package/dist/personal-access-tokens/schema/api-token.d.ts +6 -0
- package/dist/personal-access-tokens/screens.js +2 -0
- package/dist/secrets/table.d.ts +1 -0
- package/dist/sessions/schema/user-session.d.ts +4 -0
- package/dist/sessions/screens.js +2 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.js +1 -0
- package/dist/shared/require-for-tenant.d.ts +2 -0
- package/dist/shared/require-for-tenant.js +9 -0
- package/dist/tags/entity.d.ts +9 -0
- package/dist/template-resolver/handlers/collection-set.write.js +4 -4
- package/dist/template-resolver/handlers/set.write.js +6 -7
- package/dist/template-resolver/handlers/upsert-system.write.js +6 -6
- package/dist/template-resolver/handlers/upsert-tenant.write.js +6 -4
- package/dist/template-resolver/table.d.ts +10 -0
- package/dist/template-resolver/user-content-table.d.ts +10 -0
- package/dist/tenant/cancel-pending-invitation.d.ts +2 -2
- package/dist/tenant/cancel-pending-invitation.js +2 -2
- package/dist/tenant/constants.d.ts +1 -0
- package/dist/tenant/constants.js +6 -3
- package/dist/tenant/feature.js +2 -0
- package/dist/tenant/handlers/member-role-availability.query.d.ts +7 -0
- package/dist/tenant/handlers/member-role-availability.query.js +18 -0
- package/dist/tenant/handlers/remove-member.write.js +13 -10
- package/dist/tenant/handlers/update-member-roles.write.js +12 -9
- package/dist/tenant/invitation-table.d.ts +6 -0
- package/dist/tenant/member-role-options.d.ts +2 -0
- package/dist/tenant/member-role-options.js +4 -0
- package/dist/tenant/membership-table.d.ts +4 -0
- package/dist/tenant/schema/tenant.d.ts +6 -0
- package/dist/tenant/screens.d.ts +4 -2
- package/dist/tenant/screens.js +10 -6
- package/dist/tier-engine/entity.d.ts +2 -0
- package/dist/tier-engine/handlers/set-tenant-tier.write.js +7 -18
- package/dist/tier-engine/tier-resolver.d.ts +2 -0
- package/dist/user/schema/user.d.ts +12 -0
- package/dist/user/screens.js +8 -1
- package/dist/user-data-rights/schema/download-attempt.d.ts +14 -0
- package/dist/user-data-rights/schema/download-token.d.ts +8 -0
- package/dist/user-data-rights/schema/export-job.d.ts +6 -0
- package/dist/user-data-rights/screens.js +8 -1
- package/dist/waitlist/entity.d.ts +14 -0
- package/dist/waitlist/screens.js +8 -1
- package/package.json +9 -9
- package/src/auth-mfa/changes.json +6 -0
- package/src/crypto-shredding/changes.json +6 -0
- package/src/delivery/changes.json +6 -0
- package/src/tenant/changes.json +6 -0
|
@@ -4,6 +4,7 @@ export declare const mailAccountsProjectionTable: import("@cosmicdrift/kumiko-fr
|
|
|
4
4
|
readonly description?: string;
|
|
5
5
|
readonly maxLength?: number;
|
|
6
6
|
readonly minLength?: number;
|
|
7
|
+
readonly autoComplete?: string;
|
|
7
8
|
readonly required?: boolean;
|
|
8
9
|
readonly searchable?: boolean;
|
|
9
10
|
readonly sortable?: boolean;
|
|
@@ -26,6 +27,7 @@ export declare const mailAccountsProjectionTable: import("@cosmicdrift/kumiko-fr
|
|
|
26
27
|
readonly description?: string;
|
|
27
28
|
readonly maxLength?: number;
|
|
28
29
|
readonly minLength?: number;
|
|
30
|
+
readonly autoComplete?: string;
|
|
29
31
|
readonly required?: boolean;
|
|
30
32
|
readonly searchable?: boolean;
|
|
31
33
|
readonly sortable?: boolean;
|
|
@@ -48,6 +50,7 @@ export declare const mailAccountsProjectionTable: import("@cosmicdrift/kumiko-fr
|
|
|
48
50
|
readonly description?: string;
|
|
49
51
|
readonly maxLength?: number;
|
|
50
52
|
readonly minLength?: number;
|
|
53
|
+
readonly autoComplete?: string;
|
|
51
54
|
readonly required?: boolean;
|
|
52
55
|
readonly searchable?: boolean;
|
|
53
56
|
readonly sortable?: boolean;
|
|
@@ -70,6 +73,7 @@ export declare const mailAccountsProjectionTable: import("@cosmicdrift/kumiko-fr
|
|
|
70
73
|
readonly description?: string;
|
|
71
74
|
readonly maxLength?: number;
|
|
72
75
|
readonly minLength?: number;
|
|
76
|
+
readonly autoComplete?: string;
|
|
73
77
|
readonly required?: boolean;
|
|
74
78
|
readonly searchable?: boolean;
|
|
75
79
|
readonly sortable?: boolean;
|
|
@@ -92,6 +96,7 @@ export declare const mailAccountsProjectionTable: import("@cosmicdrift/kumiko-fr
|
|
|
92
96
|
readonly description?: string;
|
|
93
97
|
readonly maxLength?: number;
|
|
94
98
|
readonly minLength?: number;
|
|
99
|
+
readonly autoComplete?: string;
|
|
95
100
|
readonly required?: boolean;
|
|
96
101
|
readonly searchable?: boolean;
|
|
97
102
|
readonly sortable?: boolean;
|
|
@@ -114,6 +119,7 @@ export declare const mailAccountsProjectionTable: import("@cosmicdrift/kumiko-fr
|
|
|
114
119
|
readonly description?: string;
|
|
115
120
|
readonly maxLength?: number;
|
|
116
121
|
readonly minLength?: number;
|
|
122
|
+
readonly autoComplete?: string;
|
|
117
123
|
readonly required?: boolean;
|
|
118
124
|
readonly searchable?: boolean;
|
|
119
125
|
readonly sortable?: boolean;
|
|
@@ -136,6 +142,7 @@ export declare const mailAccountsProjectionTable: import("@cosmicdrift/kumiko-fr
|
|
|
136
142
|
readonly description?: string;
|
|
137
143
|
readonly maxLength?: number;
|
|
138
144
|
readonly minLength?: number;
|
|
145
|
+
readonly autoComplete?: string;
|
|
139
146
|
readonly required?: boolean;
|
|
140
147
|
readonly searchable?: boolean;
|
|
141
148
|
readonly sortable?: boolean;
|
|
@@ -175,6 +182,7 @@ export declare const inboundMessagesProjectionTable: import("@cosmicdrift/kumiko
|
|
|
175
182
|
readonly description?: string;
|
|
176
183
|
readonly maxLength?: number;
|
|
177
184
|
readonly minLength?: number;
|
|
185
|
+
readonly autoComplete?: string;
|
|
178
186
|
readonly required?: boolean;
|
|
179
187
|
readonly searchable?: boolean;
|
|
180
188
|
readonly sortable?: boolean;
|
|
@@ -197,6 +205,7 @@ export declare const inboundMessagesProjectionTable: import("@cosmicdrift/kumiko
|
|
|
197
205
|
readonly description?: string;
|
|
198
206
|
readonly maxLength?: number;
|
|
199
207
|
readonly minLength?: number;
|
|
208
|
+
readonly autoComplete?: string;
|
|
200
209
|
readonly required?: boolean;
|
|
201
210
|
readonly searchable?: boolean;
|
|
202
211
|
readonly sortable?: boolean;
|
|
@@ -219,6 +228,7 @@ export declare const inboundMessagesProjectionTable: import("@cosmicdrift/kumiko
|
|
|
219
228
|
readonly description?: string;
|
|
220
229
|
readonly maxLength?: number;
|
|
221
230
|
readonly minLength?: number;
|
|
231
|
+
readonly autoComplete?: string;
|
|
222
232
|
readonly required?: boolean;
|
|
223
233
|
readonly searchable?: boolean;
|
|
224
234
|
readonly sortable?: boolean;
|
|
@@ -241,6 +251,7 @@ export declare const inboundMessagesProjectionTable: import("@cosmicdrift/kumiko
|
|
|
241
251
|
readonly description?: string;
|
|
242
252
|
readonly maxLength?: number;
|
|
243
253
|
readonly minLength?: number;
|
|
254
|
+
readonly autoComplete?: string;
|
|
244
255
|
readonly required?: boolean;
|
|
245
256
|
readonly searchable?: boolean;
|
|
246
257
|
readonly sortable?: boolean;
|
|
@@ -263,6 +274,7 @@ export declare const inboundMessagesProjectionTable: import("@cosmicdrift/kumiko
|
|
|
263
274
|
readonly description?: string;
|
|
264
275
|
readonly maxLength?: number;
|
|
265
276
|
readonly minLength?: number;
|
|
277
|
+
readonly autoComplete?: string;
|
|
266
278
|
readonly required?: boolean;
|
|
267
279
|
readonly searchable?: boolean;
|
|
268
280
|
readonly sortable?: boolean;
|
|
@@ -285,6 +297,7 @@ export declare const inboundMessagesProjectionTable: import("@cosmicdrift/kumiko
|
|
|
285
297
|
readonly description?: string;
|
|
286
298
|
readonly maxLength?: number;
|
|
287
299
|
readonly minLength?: number;
|
|
300
|
+
readonly autoComplete?: string;
|
|
288
301
|
readonly required?: boolean;
|
|
289
302
|
readonly searchable?: boolean;
|
|
290
303
|
readonly sortable?: boolean;
|
|
@@ -307,6 +320,7 @@ export declare const inboundMessagesProjectionTable: import("@cosmicdrift/kumiko
|
|
|
307
320
|
readonly description?: string;
|
|
308
321
|
readonly maxLength?: number;
|
|
309
322
|
readonly minLength?: number;
|
|
323
|
+
readonly autoComplete?: string;
|
|
310
324
|
readonly required?: boolean;
|
|
311
325
|
readonly searchable?: boolean;
|
|
312
326
|
readonly sortable?: boolean;
|
|
@@ -329,6 +343,7 @@ export declare const inboundMessagesProjectionTable: import("@cosmicdrift/kumiko
|
|
|
329
343
|
readonly description?: string;
|
|
330
344
|
readonly maxLength?: number;
|
|
331
345
|
readonly minLength?: number;
|
|
346
|
+
readonly autoComplete?: string;
|
|
332
347
|
readonly required?: boolean;
|
|
333
348
|
readonly searchable?: boolean;
|
|
334
349
|
readonly sortable?: boolean;
|
|
@@ -351,6 +366,7 @@ export declare const inboundMessagesProjectionTable: import("@cosmicdrift/kumiko
|
|
|
351
366
|
readonly description?: string;
|
|
352
367
|
readonly maxLength?: number;
|
|
353
368
|
readonly minLength?: number;
|
|
369
|
+
readonly autoComplete?: string;
|
|
354
370
|
readonly required?: boolean;
|
|
355
371
|
readonly searchable?: boolean;
|
|
356
372
|
readonly sortable?: boolean;
|
|
@@ -388,6 +404,7 @@ export declare const inboundMessagesProjectionTable: import("@cosmicdrift/kumiko
|
|
|
388
404
|
readonly description?: string;
|
|
389
405
|
readonly maxLength?: number;
|
|
390
406
|
readonly minLength?: number;
|
|
407
|
+
readonly autoComplete?: string;
|
|
391
408
|
readonly required?: boolean;
|
|
392
409
|
readonly searchable?: boolean;
|
|
393
410
|
readonly sortable?: boolean;
|
|
@@ -410,6 +427,7 @@ export declare const inboundMessagesProjectionTable: import("@cosmicdrift/kumiko
|
|
|
410
427
|
readonly description?: string;
|
|
411
428
|
readonly maxLength?: number;
|
|
412
429
|
readonly minLength?: number;
|
|
430
|
+
readonly autoComplete?: string;
|
|
413
431
|
readonly required?: boolean;
|
|
414
432
|
readonly searchable?: boolean;
|
|
415
433
|
readonly sortable?: boolean;
|
|
@@ -434,6 +452,7 @@ export declare const mailThreadsProjectionTable: import("@cosmicdrift/kumiko-fra
|
|
|
434
452
|
readonly description?: string;
|
|
435
453
|
readonly maxLength?: number;
|
|
436
454
|
readonly minLength?: number;
|
|
455
|
+
readonly autoComplete?: string;
|
|
437
456
|
readonly required?: boolean;
|
|
438
457
|
readonly searchable?: boolean;
|
|
439
458
|
readonly sortable?: boolean;
|
|
@@ -456,6 +475,7 @@ export declare const mailThreadsProjectionTable: import("@cosmicdrift/kumiko-fra
|
|
|
456
475
|
readonly description?: string;
|
|
457
476
|
readonly maxLength?: number;
|
|
458
477
|
readonly minLength?: number;
|
|
478
|
+
readonly autoComplete?: string;
|
|
459
479
|
readonly required?: boolean;
|
|
460
480
|
readonly searchable?: boolean;
|
|
461
481
|
readonly sortable?: boolean;
|
|
@@ -7,6 +7,7 @@ export declare const jobRunEntity: import("@cosmicdrift/kumiko-types/fields").En
|
|
|
7
7
|
readonly description?: string;
|
|
8
8
|
readonly maxLength?: number;
|
|
9
9
|
readonly minLength?: number;
|
|
10
|
+
readonly autoComplete?: string;
|
|
10
11
|
readonly required?: boolean;
|
|
11
12
|
readonly searchable?: boolean;
|
|
12
13
|
readonly sortable?: boolean;
|
|
@@ -29,6 +30,7 @@ export declare const jobRunEntity: import("@cosmicdrift/kumiko-types/fields").En
|
|
|
29
30
|
readonly description?: string;
|
|
30
31
|
readonly maxLength?: number;
|
|
31
32
|
readonly minLength?: number;
|
|
33
|
+
readonly autoComplete?: string;
|
|
32
34
|
readonly required?: boolean;
|
|
33
35
|
readonly searchable?: boolean;
|
|
34
36
|
readonly sortable?: boolean;
|
|
@@ -51,6 +53,7 @@ export declare const jobRunEntity: import("@cosmicdrift/kumiko-types/fields").En
|
|
|
51
53
|
readonly description?: string;
|
|
52
54
|
readonly maxLength?: number;
|
|
53
55
|
readonly minLength?: number;
|
|
56
|
+
readonly autoComplete?: string;
|
|
54
57
|
readonly required?: boolean;
|
|
55
58
|
readonly searchable?: boolean;
|
|
56
59
|
readonly sortable?: boolean;
|
|
@@ -73,6 +76,7 @@ export declare const jobRunEntity: import("@cosmicdrift/kumiko-types/fields").En
|
|
|
73
76
|
readonly description?: string;
|
|
74
77
|
readonly maxLength?: number;
|
|
75
78
|
readonly minLength?: number;
|
|
79
|
+
readonly autoComplete?: string;
|
|
76
80
|
readonly required?: boolean;
|
|
77
81
|
readonly searchable?: boolean;
|
|
78
82
|
readonly sortable?: boolean;
|
|
@@ -95,6 +99,7 @@ export declare const jobRunEntity: import("@cosmicdrift/kumiko-types/fields").En
|
|
|
95
99
|
readonly description?: string;
|
|
96
100
|
readonly maxLength?: number;
|
|
97
101
|
readonly minLength?: number;
|
|
102
|
+
readonly autoComplete?: string;
|
|
98
103
|
readonly required?: boolean;
|
|
99
104
|
readonly searchable?: boolean;
|
|
100
105
|
readonly sortable?: boolean;
|
|
@@ -185,6 +190,7 @@ export declare const jobRunEntity: import("@cosmicdrift/kumiko-types/fields").En
|
|
|
185
190
|
readonly description?: string;
|
|
186
191
|
readonly maxLength?: number;
|
|
187
192
|
readonly minLength?: number;
|
|
193
|
+
readonly autoComplete?: string;
|
|
188
194
|
readonly required?: boolean;
|
|
189
195
|
readonly searchable?: boolean;
|
|
190
196
|
readonly sortable?: boolean;
|
package/dist/ledger/entity.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export declare const accountEntity: import("@cosmicdrift/kumiko-types/fields").E
|
|
|
4
4
|
readonly description?: string;
|
|
5
5
|
readonly maxLength?: number;
|
|
6
6
|
readonly minLength?: number;
|
|
7
|
+
readonly autoComplete?: string;
|
|
7
8
|
readonly required?: boolean;
|
|
8
9
|
readonly searchable?: boolean;
|
|
9
10
|
readonly sortable?: boolean;
|
|
@@ -51,6 +52,7 @@ export declare const accountEntity: import("@cosmicdrift/kumiko-types/fields").E
|
|
|
51
52
|
readonly description?: string;
|
|
52
53
|
readonly maxLength?: number;
|
|
53
54
|
readonly minLength?: number;
|
|
55
|
+
readonly autoComplete?: string;
|
|
54
56
|
readonly required?: boolean;
|
|
55
57
|
readonly searchable?: boolean;
|
|
56
58
|
readonly sortable?: boolean;
|
|
@@ -73,6 +75,7 @@ export declare const accountEntity: import("@cosmicdrift/kumiko-types/fields").E
|
|
|
73
75
|
readonly description?: string;
|
|
74
76
|
readonly maxLength?: number;
|
|
75
77
|
readonly minLength?: number;
|
|
78
|
+
readonly autoComplete?: string;
|
|
76
79
|
readonly required?: boolean;
|
|
77
80
|
readonly searchable?: boolean;
|
|
78
81
|
readonly sortable?: boolean;
|
|
@@ -111,6 +114,7 @@ export declare const transactionEntity: import("@cosmicdrift/kumiko-types/fields
|
|
|
111
114
|
readonly description?: string;
|
|
112
115
|
readonly maxLength?: number;
|
|
113
116
|
readonly minLength?: number;
|
|
117
|
+
readonly autoComplete?: string;
|
|
114
118
|
readonly required?: boolean;
|
|
115
119
|
readonly searchable?: boolean;
|
|
116
120
|
readonly sortable?: boolean;
|
|
@@ -133,6 +137,7 @@ export declare const transactionEntity: import("@cosmicdrift/kumiko-types/fields
|
|
|
133
137
|
readonly description?: string;
|
|
134
138
|
readonly maxLength?: number;
|
|
135
139
|
readonly minLength?: number;
|
|
140
|
+
readonly autoComplete?: string;
|
|
136
141
|
readonly required?: boolean;
|
|
137
142
|
readonly searchable?: boolean;
|
|
138
143
|
readonly sortable?: boolean;
|
|
@@ -193,6 +198,7 @@ export declare const transactionEntity: import("@cosmicdrift/kumiko-types/fields
|
|
|
193
198
|
readonly description?: string;
|
|
194
199
|
readonly maxLength?: number;
|
|
195
200
|
readonly minLength?: number;
|
|
201
|
+
readonly autoComplete?: string;
|
|
196
202
|
readonly required?: boolean;
|
|
197
203
|
readonly searchable?: boolean;
|
|
198
204
|
readonly sortable?: boolean;
|
|
@@ -215,6 +221,7 @@ export declare const transactionEntity: import("@cosmicdrift/kumiko-types/fields
|
|
|
215
221
|
readonly description?: string;
|
|
216
222
|
readonly maxLength?: number;
|
|
217
223
|
readonly minLength?: number;
|
|
224
|
+
readonly autoComplete?: string;
|
|
218
225
|
readonly required?: boolean;
|
|
219
226
|
readonly searchable?: boolean;
|
|
220
227
|
readonly sortable?: boolean;
|
|
@@ -239,6 +246,7 @@ export declare const scheduleEntity: import("@cosmicdrift/kumiko-types/fields").
|
|
|
239
246
|
readonly description?: string;
|
|
240
247
|
readonly maxLength?: number;
|
|
241
248
|
readonly minLength?: number;
|
|
249
|
+
readonly autoComplete?: string;
|
|
242
250
|
readonly required?: boolean;
|
|
243
251
|
readonly searchable?: boolean;
|
|
244
252
|
readonly sortable?: boolean;
|
|
@@ -329,6 +337,7 @@ export declare const scheduleEntity: import("@cosmicdrift/kumiko-types/fields").
|
|
|
329
337
|
readonly description?: string;
|
|
330
338
|
readonly maxLength?: number;
|
|
331
339
|
readonly minLength?: number;
|
|
340
|
+
readonly autoComplete?: string;
|
|
332
341
|
readonly required?: boolean;
|
|
333
342
|
readonly searchable?: boolean;
|
|
334
343
|
readonly sortable?: boolean;
|
|
@@ -351,6 +360,7 @@ export declare const scheduleEntity: import("@cosmicdrift/kumiko-types/fields").
|
|
|
351
360
|
readonly description?: string;
|
|
352
361
|
readonly maxLength?: number;
|
|
353
362
|
readonly minLength?: number;
|
|
363
|
+
readonly autoComplete?: string;
|
|
354
364
|
readonly required?: boolean;
|
|
355
365
|
readonly searchable?: boolean;
|
|
356
366
|
readonly sortable?: boolean;
|
|
@@ -373,6 +383,7 @@ export declare const scheduleEntity: import("@cosmicdrift/kumiko-types/fields").
|
|
|
373
383
|
readonly description?: string;
|
|
374
384
|
readonly maxLength?: number;
|
|
375
385
|
readonly minLength?: number;
|
|
386
|
+
readonly autoComplete?: string;
|
|
376
387
|
readonly required?: boolean;
|
|
377
388
|
readonly searchable?: boolean;
|
|
378
389
|
readonly sortable?: boolean;
|
|
@@ -395,6 +406,7 @@ export declare const scheduleEntity: import("@cosmicdrift/kumiko-types/fields").
|
|
|
395
406
|
readonly description?: string;
|
|
396
407
|
readonly maxLength?: number;
|
|
397
408
|
readonly minLength?: number;
|
|
409
|
+
readonly autoComplete?: string;
|
|
398
410
|
readonly required?: boolean;
|
|
399
411
|
readonly searchable?: boolean;
|
|
400
412
|
readonly sortable?: boolean;
|
|
@@ -417,6 +429,7 @@ export declare const scheduleEntity: import("@cosmicdrift/kumiko-types/fields").
|
|
|
417
429
|
readonly description?: string;
|
|
418
430
|
readonly maxLength?: number;
|
|
419
431
|
readonly minLength?: number;
|
|
432
|
+
readonly autoComplete?: string;
|
|
420
433
|
readonly required?: boolean;
|
|
421
434
|
readonly searchable?: boolean;
|
|
422
435
|
readonly sortable?: boolean;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { fetchOne } from "@cosmicdrift/kumiko-framework/bun-db";
|
|
2
|
-
import { createEventStoreExecutor
|
|
2
|
+
import { createEventStoreExecutor } from "@cosmicdrift/kumiko-framework/db";
|
|
3
3
|
import { defineWriteHandler } from "@cosmicdrift/kumiko-framework/engine";
|
|
4
4
|
import * as z from "zod";
|
|
5
|
+
import { requireForTenant } from "../../shared/index.js";
|
|
5
6
|
import { pageEntity, pagesTable } from "../table.js";
|
|
6
7
|
const slugSchema = z
|
|
7
8
|
.string()
|
|
@@ -14,7 +15,6 @@ const langSchema = z
|
|
|
14
15
|
.max(8)
|
|
15
16
|
.regex(/^[a-z]{2}(-[a-z]{2})?$/i, "lang must be ISO 639-1 (e.g. de, en, en-us)");
|
|
16
17
|
const executor = createEventStoreExecutor(pagesTable, pageEntity, { entityName: "page" });
|
|
17
|
-
const SET_PAGE_TENANT_OVERRIDE_REASON = "SystemAdmin tenantIdOverride re-scopes the page write to the target tenant";
|
|
18
18
|
// Upsert einer Page — eine Operation pro (tenantId, slug, lang). Tenant-
|
|
19
19
|
// Scope default aus event.user; SystemAdmin kann via `tenantIdOverride`
|
|
20
20
|
// für einen anderen Tenant schreiben (typisch SYSTEM_TENANT_ID für app-
|
|
@@ -36,23 +36,12 @@ export const setWrite = defineWriteHandler({
|
|
|
36
36
|
}),
|
|
37
37
|
access: { roles: ["TenantAdmin", "SystemAdmin"] },
|
|
38
38
|
description: "Creates or overwrites one managed page addressed by slug and language, keeping the existing published flag, description and OG image when the payload omits them; use it for content edits and publish toggles, and as SystemAdmin to write another tenant's pages.",
|
|
39
|
-
escapeHatch: {
|
|
40
|
-
grants: ["unsafeRaw"],
|
|
41
|
-
reason: SET_PAGE_TENANT_OVERRIDE_REASON,
|
|
42
|
-
},
|
|
43
39
|
handler: async (event, ctx) => {
|
|
44
|
-
const db = ctx.db;
|
|
45
40
|
const override = event.payload.tenantIdOverride;
|
|
46
|
-
const tenantId = override ?? event.user.tenantId;
|
|
47
|
-
// override: point the executor context at the target tenant, else getStreamVersion runs against user.tenantId → version_conflict.
|
|
48
|
-
const executorUser = override !== undefined ? { ...event.user, tenantId: override } : event.user; // @cast-boundary engine-bridge
|
|
41
|
+
const tenantId = (override ?? event.user.tenantId); // @cast-boundary engine-bridge
|
|
49
42
|
// ctx.db is scoped to the executing user's tenant, wrong for a cross-tenant override
|
|
50
43
|
// on both the existing-check and the executor's stream reads; re-scope to the target.
|
|
51
|
-
|
|
52
|
-
const scopedDb = override !== undefined
|
|
53
|
-
? createTenantDb(db.unsafeRaw(), override, // @cast-boundary engine-bridge
|
|
54
|
-
"tenant")
|
|
55
|
-
: db;
|
|
44
|
+
const { db: scopedDb, streamTenantId } = requireForTenant(ctx, tenantId);
|
|
56
45
|
const existing = await fetchOne(scopedDb, pagesTable, {
|
|
57
46
|
tenantId,
|
|
58
47
|
slug: event.payload.slug,
|
|
@@ -71,7 +60,7 @@ export const setWrite = defineWriteHandler({
|
|
|
71
60
|
ogImage: event.payload.ogImage !== undefined ? event.payload.ogImage : existing.ogImage,
|
|
72
61
|
published: event.payload.published !== undefined ? event.payload.published : existing.published,
|
|
73
62
|
},
|
|
74
|
-
},
|
|
63
|
+
}, event.user, scopedDb, { streamTenantId });
|
|
75
64
|
if (!result.isSuccess)
|
|
76
65
|
return result;
|
|
77
66
|
return {
|
|
@@ -88,7 +77,7 @@ export const setWrite = defineWriteHandler({
|
|
|
88
77
|
ogImage: event.payload.ogImage ?? null,
|
|
89
78
|
published: event.payload.published ?? false,
|
|
90
79
|
tenantId,
|
|
91
|
-
},
|
|
80
|
+
}, event.user, scopedDb, { streamTenantId });
|
|
92
81
|
if (!result.isSuccess)
|
|
93
82
|
return result;
|
|
94
83
|
return {
|
|
@@ -4,6 +4,7 @@ export declare const pageEntity: import("@cosmicdrift/kumiko-types/fields").Enti
|
|
|
4
4
|
readonly description?: string;
|
|
5
5
|
readonly maxLength?: number;
|
|
6
6
|
readonly minLength?: number;
|
|
7
|
+
readonly autoComplete?: string;
|
|
7
8
|
readonly required?: boolean;
|
|
8
9
|
readonly searchable?: boolean;
|
|
9
10
|
readonly sortable?: boolean;
|
|
@@ -26,6 +27,7 @@ export declare const pageEntity: import("@cosmicdrift/kumiko-types/fields").Enti
|
|
|
26
27
|
readonly description?: string;
|
|
27
28
|
readonly maxLength?: number;
|
|
28
29
|
readonly minLength?: number;
|
|
30
|
+
readonly autoComplete?: string;
|
|
29
31
|
readonly required?: boolean;
|
|
30
32
|
readonly searchable?: boolean;
|
|
31
33
|
readonly sortable?: boolean;
|
|
@@ -48,6 +50,7 @@ export declare const pageEntity: import("@cosmicdrift/kumiko-types/fields").Enti
|
|
|
48
50
|
readonly description?: string;
|
|
49
51
|
readonly maxLength?: number;
|
|
50
52
|
readonly minLength?: number;
|
|
53
|
+
readonly autoComplete?: string;
|
|
51
54
|
readonly required?: boolean;
|
|
52
55
|
readonly searchable?: boolean;
|
|
53
56
|
readonly sortable?: boolean;
|
|
@@ -70,6 +73,7 @@ export declare const pageEntity: import("@cosmicdrift/kumiko-types/fields").Enti
|
|
|
70
73
|
readonly description?: string;
|
|
71
74
|
readonly maxLength?: number;
|
|
72
75
|
readonly minLength?: number;
|
|
76
|
+
readonly autoComplete?: string;
|
|
73
77
|
readonly required?: boolean;
|
|
74
78
|
readonly searchable?: boolean;
|
|
75
79
|
readonly sortable?: boolean;
|
|
@@ -92,6 +96,7 @@ export declare const pageEntity: import("@cosmicdrift/kumiko-types/fields").Enti
|
|
|
92
96
|
readonly description?: string;
|
|
93
97
|
readonly maxLength?: number;
|
|
94
98
|
readonly minLength?: number;
|
|
99
|
+
readonly autoComplete?: string;
|
|
95
100
|
readonly required?: boolean;
|
|
96
101
|
readonly searchable?: boolean;
|
|
97
102
|
readonly sortable?: boolean;
|
|
@@ -114,6 +119,7 @@ export declare const pageEntity: import("@cosmicdrift/kumiko-types/fields").Enti
|
|
|
114
119
|
readonly description?: string;
|
|
115
120
|
readonly maxLength?: number;
|
|
116
121
|
readonly minLength?: number;
|
|
122
|
+
readonly autoComplete?: string;
|
|
117
123
|
readonly required?: boolean;
|
|
118
124
|
readonly searchable?: boolean;
|
|
119
125
|
readonly sortable?: boolean;
|
|
@@ -141,6 +147,7 @@ export declare const pagesTable: import("@cosmicdrift/kumiko-framework/db").Enti
|
|
|
141
147
|
readonly description?: string;
|
|
142
148
|
readonly maxLength?: number;
|
|
143
149
|
readonly minLength?: number;
|
|
150
|
+
readonly autoComplete?: string;
|
|
144
151
|
readonly required?: boolean;
|
|
145
152
|
readonly searchable?: boolean;
|
|
146
153
|
readonly sortable?: boolean;
|
|
@@ -163,6 +170,7 @@ export declare const pagesTable: import("@cosmicdrift/kumiko-framework/db").Enti
|
|
|
163
170
|
readonly description?: string;
|
|
164
171
|
readonly maxLength?: number;
|
|
165
172
|
readonly minLength?: number;
|
|
173
|
+
readonly autoComplete?: string;
|
|
166
174
|
readonly required?: boolean;
|
|
167
175
|
readonly searchable?: boolean;
|
|
168
176
|
readonly sortable?: boolean;
|
|
@@ -185,6 +193,7 @@ export declare const pagesTable: import("@cosmicdrift/kumiko-framework/db").Enti
|
|
|
185
193
|
readonly description?: string;
|
|
186
194
|
readonly maxLength?: number;
|
|
187
195
|
readonly minLength?: number;
|
|
196
|
+
readonly autoComplete?: string;
|
|
188
197
|
readonly required?: boolean;
|
|
189
198
|
readonly searchable?: boolean;
|
|
190
199
|
readonly sortable?: boolean;
|
|
@@ -207,6 +216,7 @@ export declare const pagesTable: import("@cosmicdrift/kumiko-framework/db").Enti
|
|
|
207
216
|
readonly description?: string;
|
|
208
217
|
readonly maxLength?: number;
|
|
209
218
|
readonly minLength?: number;
|
|
219
|
+
readonly autoComplete?: string;
|
|
210
220
|
readonly required?: boolean;
|
|
211
221
|
readonly searchable?: boolean;
|
|
212
222
|
readonly sortable?: boolean;
|
|
@@ -229,6 +239,7 @@ export declare const pagesTable: import("@cosmicdrift/kumiko-framework/db").Enti
|
|
|
229
239
|
readonly description?: string;
|
|
230
240
|
readonly maxLength?: number;
|
|
231
241
|
readonly minLength?: number;
|
|
242
|
+
readonly autoComplete?: string;
|
|
232
243
|
readonly required?: boolean;
|
|
233
244
|
readonly searchable?: boolean;
|
|
234
245
|
readonly sortable?: boolean;
|
|
@@ -251,6 +262,7 @@ export declare const pagesTable: import("@cosmicdrift/kumiko-framework/db").Enti
|
|
|
251
262
|
readonly description?: string;
|
|
252
263
|
readonly maxLength?: number;
|
|
253
264
|
readonly minLength?: number;
|
|
265
|
+
readonly autoComplete?: string;
|
|
254
266
|
readonly required?: boolean;
|
|
255
267
|
readonly searchable?: boolean;
|
|
256
268
|
readonly sortable?: boolean;
|
|
@@ -5,6 +5,7 @@ export declare function createNoteEntryEntity(access?: EntityDefinition["access"
|
|
|
5
5
|
readonly description?: string;
|
|
6
6
|
readonly maxLength?: number;
|
|
7
7
|
readonly minLength?: number;
|
|
8
|
+
readonly autoComplete?: string;
|
|
8
9
|
readonly required?: boolean;
|
|
9
10
|
readonly searchable?: boolean;
|
|
10
11
|
readonly sortable?: boolean;
|
|
@@ -27,6 +28,7 @@ export declare function createNoteEntryEntity(access?: EntityDefinition["access"
|
|
|
27
28
|
readonly description?: string;
|
|
28
29
|
readonly maxLength?: number;
|
|
29
30
|
readonly minLength?: number;
|
|
31
|
+
readonly autoComplete?: string;
|
|
30
32
|
readonly required?: boolean;
|
|
31
33
|
readonly searchable?: boolean;
|
|
32
34
|
readonly sortable?: boolean;
|
|
@@ -49,6 +51,7 @@ export declare function createNoteEntryEntity(access?: EntityDefinition["access"
|
|
|
49
51
|
readonly description?: string;
|
|
50
52
|
readonly maxLength?: number;
|
|
51
53
|
readonly minLength?: number;
|
|
54
|
+
readonly autoComplete?: string;
|
|
52
55
|
readonly required?: boolean;
|
|
53
56
|
readonly searchable?: boolean;
|
|
54
57
|
readonly sortable?: boolean;
|
|
@@ -71,6 +74,7 @@ export declare function createNoteEntryEntity(access?: EntityDefinition["access"
|
|
|
71
74
|
readonly description?: string;
|
|
72
75
|
readonly maxLength?: number;
|
|
73
76
|
readonly minLength?: number;
|
|
77
|
+
readonly autoComplete?: string;
|
|
74
78
|
readonly required?: boolean;
|
|
75
79
|
readonly searchable?: boolean;
|
|
76
80
|
readonly sortable?: boolean;
|
|
@@ -111,6 +115,7 @@ export declare const noteEntryEntity: EntityDefinition<{
|
|
|
111
115
|
readonly description?: string;
|
|
112
116
|
readonly maxLength?: number;
|
|
113
117
|
readonly minLength?: number;
|
|
118
|
+
readonly autoComplete?: string;
|
|
114
119
|
readonly required?: boolean;
|
|
115
120
|
readonly searchable?: boolean;
|
|
116
121
|
readonly sortable?: boolean;
|
|
@@ -133,6 +138,7 @@ export declare const noteEntryEntity: EntityDefinition<{
|
|
|
133
138
|
readonly description?: string;
|
|
134
139
|
readonly maxLength?: number;
|
|
135
140
|
readonly minLength?: number;
|
|
141
|
+
readonly autoComplete?: string;
|
|
136
142
|
readonly required?: boolean;
|
|
137
143
|
readonly searchable?: boolean;
|
|
138
144
|
readonly sortable?: boolean;
|
|
@@ -155,6 +161,7 @@ export declare const noteEntryEntity: EntityDefinition<{
|
|
|
155
161
|
readonly description?: string;
|
|
156
162
|
readonly maxLength?: number;
|
|
157
163
|
readonly minLength?: number;
|
|
164
|
+
readonly autoComplete?: string;
|
|
158
165
|
readonly required?: boolean;
|
|
159
166
|
readonly searchable?: boolean;
|
|
160
167
|
readonly sortable?: boolean;
|
|
@@ -177,6 +184,7 @@ export declare const noteEntryEntity: EntityDefinition<{
|
|
|
177
184
|
readonly description?: string;
|
|
178
185
|
readonly maxLength?: number;
|
|
179
186
|
readonly minLength?: number;
|
|
187
|
+
readonly autoComplete?: string;
|
|
180
188
|
readonly required?: boolean;
|
|
181
189
|
readonly searchable?: boolean;
|
|
182
190
|
readonly sortable?: boolean;
|
|
@@ -217,6 +225,7 @@ export declare function createNoteMentionEntity(): EntityDefinition<{
|
|
|
217
225
|
readonly description?: string;
|
|
218
226
|
readonly maxLength?: number;
|
|
219
227
|
readonly minLength?: number;
|
|
228
|
+
readonly autoComplete?: string;
|
|
220
229
|
readonly required?: boolean;
|
|
221
230
|
readonly searchable?: boolean;
|
|
222
231
|
readonly sortable?: boolean;
|
|
@@ -239,6 +248,7 @@ export declare function createNoteMentionEntity(): EntityDefinition<{
|
|
|
239
248
|
readonly description?: string;
|
|
240
249
|
readonly maxLength?: number;
|
|
241
250
|
readonly minLength?: number;
|
|
251
|
+
readonly autoComplete?: string;
|
|
242
252
|
readonly required?: boolean;
|
|
243
253
|
readonly searchable?: boolean;
|
|
244
254
|
readonly sortable?: boolean;
|
|
@@ -263,6 +273,7 @@ export declare const noteMentionEntity: EntityDefinition<{
|
|
|
263
273
|
readonly description?: string;
|
|
264
274
|
readonly maxLength?: number;
|
|
265
275
|
readonly minLength?: number;
|
|
276
|
+
readonly autoComplete?: string;
|
|
266
277
|
readonly required?: boolean;
|
|
267
278
|
readonly searchable?: boolean;
|
|
268
279
|
readonly sortable?: boolean;
|
|
@@ -285,6 +296,7 @@ export declare const noteMentionEntity: EntityDefinition<{
|
|
|
285
296
|
readonly description?: string;
|
|
286
297
|
readonly maxLength?: number;
|
|
287
298
|
readonly minLength?: number;
|
|
299
|
+
readonly autoComplete?: string;
|
|
288
300
|
readonly required?: boolean;
|
|
289
301
|
readonly searchable?: boolean;
|
|
290
302
|
readonly sortable?: boolean;
|
|
@@ -20,17 +20,18 @@ import { createEntity, createLongTextField, createTextField, } from "@cosmicdrif
|
|
|
20
20
|
//
|
|
21
21
|
// `body` is instead `personal: { of: "id" }` (Row-Subject, fw#2596/#2786):
|
|
22
22
|
// the note's OWN row is its content's subject, so `body` is encrypted under a
|
|
23
|
-
// per-note key that nothing else shares. That key gets erased only when
|
|
24
|
-
// `note-mention` (below) names
|
|
25
|
-
//
|
|
26
|
-
//
|
|
23
|
+
// per-note key that nothing else shares. That key gets erased only when the
|
|
24
|
+
// note is reached by a forgotten subject: `note-mention` (below) names the
|
|
25
|
+
// subject, or the note hangs on the subject as host (entityId, plus entityType
|
|
26
|
+
// for record subjects). See `notes-history-user-data/hooks.ts`; any other note
|
|
27
|
+
// is untouched. GDPR erasure of the AUTHOR still separately
|
|
27
28
|
// shreds `authorName` (`personal: { of: "authorId" }`, the name as stamped at
|
|
28
29
|
// write time); the two erasures are independent.
|
|
29
30
|
//
|
|
30
31
|
// Known gap (fw#2596, not fixed by this entity): prose that names a third
|
|
31
32
|
// party without a structured @-mention is not tracked — regex/NLP over
|
|
32
|
-
// free text is unreliable.
|
|
33
|
-
//
|
|
33
|
+
// free text is unreliable. An operator must erase such a note's own record
|
|
34
|
+
// subject (`forget-subject` kind "record", entity "note-entry") to cover it.
|
|
34
35
|
export function createNoteEntryEntity(access, parents) {
|
|
35
36
|
return createEntity({
|
|
36
37
|
table: "read_note_entries",
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { type SubjectId } from "@cosmicdrift/kumiko-framework/crypto";
|
|
2
|
+
import type { DbRunner, TenantDb } from "@cosmicdrift/kumiko-framework/db";
|
|
3
|
+
import type { Registry, UserDataDeleteHook, UserDataExportHook } from "@cosmicdrift/kumiko-framework/engine";
|
|
2
4
|
export declare const noteEntryExportHook: UserDataExportHook;
|
|
5
|
+
export declare function eraseNoteBodiesReachingSubject(args: {
|
|
6
|
+
readonly db: DbRunner | TenantDb;
|
|
7
|
+
readonly registry: Registry;
|
|
8
|
+
readonly subject: SubjectId;
|
|
9
|
+
readonly erasedBy: string;
|
|
10
|
+
readonly requestId: string;
|
|
11
|
+
}): Promise<void>;
|
|
3
12
|
export declare const noteEntryDeleteHook: UserDataDeleteHook;
|
|
4
13
|
export declare const noteMentionExportHook: UserDataExportHook;
|
|
5
14
|
export declare const noteMentionDeleteHook: UserDataDeleteHook;
|