@cosmicdrift/kumiko-server-runtime 0.354.1 → 0.356.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/compose-features.js +14 -1
- package/dist/run-prod-app.js +2 -1
- package/package.json +6 -6
- package/src/changes.json +5 -0
package/dist/compose-features.js
CHANGED
|
@@ -15,9 +15,13 @@
|
|
|
15
15
|
import { createAuthEmailPasswordFeature, createAuthSelfRegistrationToggleFeature, } from "@cosmicdrift/kumiko-bundled-features/auth-email-password";
|
|
16
16
|
import { AUTH_MFA_FEATURE, mfaStatusCheckerFromFeature, } from "@cosmicdrift/kumiko-bundled-features/auth-mfa";
|
|
17
17
|
import { createConfigFeature } from "@cosmicdrift/kumiko-bundled-features/config";
|
|
18
|
+
import { createFilesTenantDataFeature } from "@cosmicdrift/kumiko-bundled-features/files-tenant-data";
|
|
18
19
|
import { collectAssignableAppRoles, createTenantFeature, } from "@cosmicdrift/kumiko-bundled-features/tenant";
|
|
20
|
+
import { TENANT_LIFECYCLE_FEATURE } from "@cosmicdrift/kumiko-bundled-features/tenant-lifecycle";
|
|
19
21
|
import { createUserFeature } from "@cosmicdrift/kumiko-bundled-features/user";
|
|
20
22
|
import { dedupeFeatures } from "@cosmicdrift/kumiko-framework/engine";
|
|
23
|
+
const FILES_FEATURE = "files";
|
|
24
|
+
const FILES_TENANT_DATA_FEATURE = "files-tenant-data";
|
|
21
25
|
export function composeFeatures(appFeatures, options) {
|
|
22
26
|
// ponytail: includeBundled:false skips the auth-mfa auto-wiring below —
|
|
23
27
|
// an app composing its own foundation and mounting auth-mfa itself is
|
|
@@ -76,7 +80,16 @@ export function composeFeatures(appFeatures, options) {
|
|
|
76
80
|
}
|
|
77
81
|
filteredApp.push(f);
|
|
78
82
|
}
|
|
79
|
-
|
|
83
|
+
const names = new Set(filteredApp.map((f) => f.name));
|
|
84
|
+
// Without it, tenant destroy leaves fileRef rows and stored binaries behind.
|
|
85
|
+
const needsFilesTenantData = names.has(FILES_FEATURE) &&
|
|
86
|
+
names.has(TENANT_LIFECYCLE_FEATURE) &&
|
|
87
|
+
!names.has(FILES_TENANT_DATA_FEATURE);
|
|
88
|
+
return [
|
|
89
|
+
...bundled,
|
|
90
|
+
...filteredApp,
|
|
91
|
+
...(needsFilesTenantData ? [createFilesTenantDataFeature()] : []),
|
|
92
|
+
];
|
|
80
93
|
}
|
|
81
94
|
// The magic-link mail fields shared by all five flows. Conditional spreads omit
|
|
82
95
|
// undefined keys (exactOptionalPropertyTypes) and avoid the property-write that
|
package/dist/run-prod-app.js
CHANGED
|
@@ -58,7 +58,7 @@ import { renderDryRun } from "@cosmicdrift/kumiko-framework/env/dry-run";
|
|
|
58
58
|
import { createEsOperationsTable, createSeedMigrationContext, runPendingSeedMigrations, } from "@cosmicdrift/kumiko-framework/es-ops";
|
|
59
59
|
import { assertSeedModeNotInProduction } from "@cosmicdrift/kumiko-framework/event-store";
|
|
60
60
|
import { assertKumikoSchemaCurrent, SchemaDriftError, } from "@cosmicdrift/kumiko-framework/migrations";
|
|
61
|
-
import { createDispatcher, createEntityCache, createEventDedup, createIdempotencyGuard, } from "@cosmicdrift/kumiko-framework/pipeline";
|
|
61
|
+
import { createDispatcher, createEntityCache, createEventDedup, createIdempotencyGuard, flushEscapeHatchAudits, } from "@cosmicdrift/kumiko-framework/pipeline";
|
|
62
62
|
import { createRedisCacheSyncBus, redisClientOptionsFromEnv, } from "@cosmicdrift/kumiko-framework/redis";
|
|
63
63
|
import { warnIfNonUtcServerTimeZone } from "@cosmicdrift/kumiko-framework/time";
|
|
64
64
|
import { Redis } from "ioredis";
|
|
@@ -776,6 +776,7 @@ export async function runProdApp(options) {
|
|
|
776
776
|
stop: async () => {
|
|
777
777
|
await entrypoint.stop();
|
|
778
778
|
handle.server?.stop();
|
|
779
|
+
await flushEscapeHatchAudits();
|
|
779
780
|
await closeDb();
|
|
780
781
|
redis.disconnect();
|
|
781
782
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cosmicdrift/kumiko-server-runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.356.0",
|
|
4
4
|
"description": "Production server-boot runtime for Kumiko apps: connections, schema-drift-gate, seeds, lifecycle, graceful shutdown. Symmetric to kumiko-dev-server's runDevApp, without dev/scaffold/codegen tooling.",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
|
|
@@ -84,11 +84,11 @@
|
|
|
84
84
|
}
|
|
85
85
|
},
|
|
86
86
|
"dependencies": {
|
|
87
|
-
"@cosmicdrift/kumiko-bundled-features": "0.
|
|
88
|
-
"@cosmicdrift/kumiko-framework": "0.
|
|
89
|
-
"@cosmicdrift/kumiko-headless": "0.
|
|
90
|
-
"@cosmicdrift/kumiko-renderer-web": "0.
|
|
91
|
-
"@cosmicdrift/kumiko-types": "0.
|
|
87
|
+
"@cosmicdrift/kumiko-bundled-features": "0.356.0",
|
|
88
|
+
"@cosmicdrift/kumiko-framework": "0.356.0",
|
|
89
|
+
"@cosmicdrift/kumiko-headless": "0.356.0",
|
|
90
|
+
"@cosmicdrift/kumiko-renderer-web": "0.356.0",
|
|
91
|
+
"@cosmicdrift/kumiko-types": "0.356.0",
|
|
92
92
|
"bun-types": "^1.3.13",
|
|
93
93
|
"ioredis": "^5.10.1",
|
|
94
94
|
"temporal-polyfill": "^0.3.2"
|