@cosmicdrift/kumiko-server-runtime 0.365.1 → 0.366.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.
@@ -1,5 +1,6 @@
1
1
  import type { DbConnection } from "@cosmicdrift/kumiko-framework/db";
2
2
  import type { Registry, WriteResult } from "@cosmicdrift/kumiko-framework/engine";
3
+ import type { MetricsHandle } from "@cosmicdrift/kumiko-framework/observability";
3
4
  import type { Redis } from "ioredis";
4
5
  export type { SystemDispatchArgs } from "@cosmicdrift/kumiko-framework/api";
5
6
  export { makeDispatchSystemQuery, makeDispatchSystemWrite, } from "@cosmicdrift/kumiko-framework/api";
@@ -15,6 +16,8 @@ export type SystemWireDeps = {
15
16
  /** Feature-registry — e.g. for plugin-lookups via
16
17
  * `registry.getExtensionUsages("subscriptionProvider")`. */
17
18
  readonly registry: Registry;
19
+ /** Same contract as `ctx.metricsFor`: unregistered metric names no-op. */
20
+ readonly metricsFor: (featureName: string) => MetricsHandle;
18
21
  /** Writes through the /api/*-command-dispatcher (same idempotency/job
19
22
  * hooks) as an auto-constructed SystemAdmin of the target tenant,
20
23
  * WITHOUT the route's own access-check. Privilege-scope: SystemAdmin is
@@ -8,7 +8,7 @@ import { type AllInOneEntrypoint, type ApiEntrypoint } from "@cosmicdrift/kumiko
8
8
  import { type ComposedEnvSchema, KumikoBootError } from "@cosmicdrift/kumiko-framework/env";
9
9
  import type { ErrorDocsConfig } from "@cosmicdrift/kumiko-framework/errors";
10
10
  import type { JobRunnerOptions } from "@cosmicdrift/kumiko-framework/jobs";
11
- import type { ObservabilityOptions, ObservabilityProvider } from "@cosmicdrift/kumiko-framework/observability";
11
+ import { type ObservabilityOptions, type ObservabilityProvider } from "@cosmicdrift/kumiko-framework/observability";
12
12
  import type { MasterKeyProvider } from "@cosmicdrift/kumiko-framework/secrets";
13
13
  import type { PageHeadMeta, PageHeadResolver, PageHeadSystemQuery } from "@cosmicdrift/kumiko-headless/apex";
14
14
  import { Redis } from "ioredis";
@@ -58,6 +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 { createMetricsForFactory, } from "@cosmicdrift/kumiko-framework/observability";
61
62
  import { createDispatcher, createEntityCache, createEventDedup, createIdempotencyGuard, flushEscapeHatchAudits, } from "@cosmicdrift/kumiko-framework/pipeline";
62
63
  import { createRedisCacheSyncBus, redisClientOptionsFromEnv, } from "@cosmicdrift/kumiko-framework/redis";
63
64
  import { warnIfNonUtcServerTimeZone } from "@cosmicdrift/kumiko-framework/time";
@@ -685,6 +686,7 @@ export async function runProdApp(options) {
685
686
  db,
686
687
  redis,
687
688
  registry,
689
+ metricsFor: createMetricsForFactory(entrypoint.observability.meter),
688
690
  dispatchSystemWrite: makeDispatchSystemWrite(entrypoint.dispatcher),
689
691
  });
690
692
  }
@@ -4,7 +4,7 @@ import type { DbConnection } from "@cosmicdrift/kumiko-framework/db";
4
4
  import type { EffectiveFeaturesResolver, FeatureDefinition, Registry, ValidateBootOptions } from "@cosmicdrift/kumiko-framework/engine";
5
5
  import type { WorkerEntrypoint } from "@cosmicdrift/kumiko-framework/entrypoint";
6
6
  import type { JobRunnerOptions } from "@cosmicdrift/kumiko-framework/jobs";
7
- import type { ObservabilityOptions, ObservabilityProvider } from "@cosmicdrift/kumiko-framework/observability";
7
+ import { type ObservabilityOptions, type ObservabilityProvider } from "@cosmicdrift/kumiko-framework/observability";
8
8
  import type { MasterKeyProvider, SecretsContext } from "@cosmicdrift/kumiko-framework/secrets";
9
9
  import type { Redis } from "ioredis";
10
10
  import { type WorkerMetricsOptions, type WorkerMetricsServer } from "./boot/worker-metrics-server.js";
@@ -15,6 +15,7 @@
15
15
  // Container/Coolify sets the same env vars as runProdApp:
16
16
  // DATABASE_URL, REDIS_URL, JWT_SECRET — PORT is not needed.
17
17
  import { assertSeedModeNotInProduction } from "@cosmicdrift/kumiko-framework/event-store";
18
+ import { createMetricsForFactory, } from "@cosmicdrift/kumiko-framework/observability";
18
19
  import { startPiiEventBackfillOnBoot } from "./boot/pii-event-backfill-on-boot.js";
19
20
  import { recordAppStartedOnBoot } from "./boot/record-app-started-on-boot.js";
20
21
  import { bootWorkerProcess, resolveWorkerEnvSource } from "./boot/worker-boot-core.js";
@@ -70,6 +71,7 @@ export async function runWorkerApp(options) {
70
71
  db,
71
72
  redis,
72
73
  registry,
74
+ metricsFor: createMetricsForFactory(entrypoint.observability.meter),
73
75
  dispatchSystemWrite: makeDispatchSystemWrite(entrypoint.dispatcher),
74
76
  lifecycle: entrypoint.lifecycle,
75
77
  ...(boot.secrets && { secrets: boot.secrets }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmicdrift/kumiko-server-runtime",
3
- "version": "0.365.1",
3
+ "version": "0.366.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,12 +84,12 @@
84
84
  }
85
85
  },
86
86
  "dependencies": {
87
- "@cosmicdrift/kumiko-bundled-features": "0.365.1",
88
- "@cosmicdrift/kumiko-framework": "0.365.1",
89
- "@cosmicdrift/kumiko-headless": "0.365.1",
90
- "@cosmicdrift/kumiko-renderer-mail-html": "0.365.1",
91
- "@cosmicdrift/kumiko-renderer-web": "0.365.1",
92
- "@cosmicdrift/kumiko-types": "0.365.1",
87
+ "@cosmicdrift/kumiko-bundled-features": "0.366.0",
88
+ "@cosmicdrift/kumiko-framework": "0.366.0",
89
+ "@cosmicdrift/kumiko-headless": "0.366.0",
90
+ "@cosmicdrift/kumiko-renderer-mail-html": "0.366.0",
91
+ "@cosmicdrift/kumiko-renderer-web": "0.366.0",
92
+ "@cosmicdrift/kumiko-types": "0.366.0",
93
93
  "bun-types": "^1.3.13",
94
94
  "ioredis": "^5.10.1",
95
95
  "temporal-polyfill": "^0.3.2"