@getstrata/core 2.2.32 → 2.2.33
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 +4 -0
- package/dist/entries/audit/exportAuditLogs.js +14 -0
- package/dist/entries/auth/basicAuthGuard.js +14 -0
- package/dist/entries/auth/scimAuthMiddleware.js +2330 -194
- package/dist/entries/jobs/exportAuditLogsJob.js +14 -0
- package/dist/entries/queue/queueMetrics.js +14 -0
- package/dist/entries/tenant/databaseTenantContext.js +14 -0
- package/dist/entries/tenant/tenantDatabaseScope.js +14 -0
- package/dist/index.js +1977 -1982
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# @getstrata/core changelog
|
|
2
2
|
|
|
3
|
+
## 2.2.33
|
|
4
|
+
|
|
5
|
+
Fix shared tenant lookups in generated SQLite column-tenancy apps through typed repositories. Generated SCIM rejects unsupported status/profile mutations before writing and runs mutations in explicit transactions, including immediate observer rollback. Add actual SQLite and restricted Postgres HTTP regressions; full account deactivation remains unsupported and explicit.
|
|
6
|
+
|
|
3
7
|
## 2.2.32
|
|
4
8
|
|
|
5
9
|
Generated JSON and HTML email verification now atomically consumes the one-time link with the account update and immediate observers, including SQLite/non-RLS apps. Failed verification remains retryable. Adds actual signed HTTP rollback, purpose/expiry/admission, concurrency and replay regressions while preserving existing response contracts.
|
|
@@ -306,6 +306,20 @@ async function dispatchQueuedModelEvents(queued) {
|
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
308
|
}
|
|
309
|
+
async function dispatchModelEvent(event, payload) {
|
|
310
|
+
await eventBus.dispatchTransactional(event, payload);
|
|
311
|
+
const state = deferredModelEvents.getStore();
|
|
312
|
+
const frame = state?.frames[state.frames.length - 1];
|
|
313
|
+
if (frame) {
|
|
314
|
+
frame.push({
|
|
315
|
+
event,
|
|
316
|
+
payload,
|
|
317
|
+
tenant: currentTenant()
|
|
318
|
+
});
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
await eventBus.dispatch(event, payload);
|
|
322
|
+
}
|
|
309
323
|
async function runWithDeferredModelEvents(callback) {
|
|
310
324
|
const existing = deferredModelEvents.getStore();
|
|
311
325
|
if (existing) {
|
|
@@ -363,6 +363,20 @@ async function dispatchQueuedModelEvents(queued) {
|
|
|
363
363
|
}
|
|
364
364
|
}
|
|
365
365
|
}
|
|
366
|
+
async function dispatchModelEvent(event, payload) {
|
|
367
|
+
await eventBus.dispatchTransactional(event, payload);
|
|
368
|
+
const state = deferredModelEvents.getStore();
|
|
369
|
+
const frame = state?.frames[state.frames.length - 1];
|
|
370
|
+
if (frame) {
|
|
371
|
+
frame.push({
|
|
372
|
+
event,
|
|
373
|
+
payload,
|
|
374
|
+
tenant: currentTenant()
|
|
375
|
+
});
|
|
376
|
+
return;
|
|
377
|
+
}
|
|
378
|
+
await eventBus.dispatch(event, payload);
|
|
379
|
+
}
|
|
366
380
|
async function runWithDeferredModelEvents(callback) {
|
|
367
381
|
const existing = deferredModelEvents.getStore();
|
|
368
382
|
if (existing) {
|