@opengeni/config 3.3.0 → 3.4.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeni/config",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "description": "Opengeni runtime configuration: settings resolution, deployment knobs, and config validation shared across the server packages.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -33,9 +33,9 @@
33
33
  "prepublishOnly": "bash ../../scripts/prepublish-guard"
34
34
  },
35
35
  "dependencies": {
36
- "@opengeni/codex": "3.3.0",
37
- "@opengeni/contracts": "3.3.0",
38
- "@opengeni/xai-subscription": "3.3.0",
36
+ "@opengeni/codex": "3.4.0",
37
+ "@opengeni/contracts": "3.4.0",
38
+ "@opengeni/xai-subscription": "3.4.0",
39
39
  "zod": "^4.2.1"
40
40
  },
41
41
  "engines": {
package/src/index.ts CHANGED
@@ -307,6 +307,11 @@ const SettingsSchema = z.object({
307
307
  // reuses the application handle. Keep the historical default for existing
308
308
  // deployments and let operators budget this per process with replica counts.
309
309
  apiDatabasePoolMax: z.coerce.number().int().positive().default(32),
310
+ // Named prepared statements for the application database pools. Unset → on
311
+ // for direct connections and off when the URL targets port 6432 (PgBouncer's
312
+ // port, including Azure Flexible Server's built-in pooler). Set false for any
313
+ // other transaction-pooling proxy; set true to force them on.
314
+ databasePreparedStatements: EnvBoolean.optional(),
310
315
  // Step I (§7.8 runtime half). Dedicated Postgres schema for the EMBEDDED
311
316
  // topology. Default "" → standalone: no search_path scoping, server default
312
317
  // (`public`). When set (e.g. "opengeni"), the db handle + the managed-auth
@@ -1848,6 +1853,8 @@ const SettingsSchema = z.object({
1848
1853
  stripePublishableKey: z.string().optional(),
1849
1854
  stripeWebhookSecret: z.string().optional(),
1850
1855
  stripeCreditsProductId: z.string().optional(),
1856
+ // Enables subscription service paths only; top-up billing remains independent.
1857
+ subscriptionPlansEnabled: EnvBoolean.default(false),
1851
1858
  mcpServers: z
1852
1859
  .array(
1853
1860
  z.object({
@@ -1889,6 +1896,7 @@ const ArtifactServiceSettingsSchema = SettingsSchema.pick({
1889
1896
  deploymentRevision: true,
1890
1897
  dbSchema: true,
1891
1898
  rlsStrategy: true,
1899
+ databasePreparedStatements: true,
1892
1900
  observabilityStructuredLogs: true,
1893
1901
  observabilityMetricsEnabled: true,
1894
1902
  observabilityOtlpEndpoint: true,
@@ -1936,6 +1944,7 @@ function artifactServiceEnvironment(source: NodeJS.ProcessEnv) {
1936
1944
  optional("GITHUB_SHA"),
1937
1945
  dbSchema: optional("OPENGENI_DB_SCHEMA"),
1938
1946
  rlsStrategy: optional("OPENGENI_RLS_STRATEGY"),
1947
+ databasePreparedStatements: optional("OPENGENI_DATABASE_PREPARED_STATEMENTS"),
1939
1948
  observabilityStructuredLogs: optional("OPENGENI_OBSERVABILITY_STRUCTURED_LOGS"),
1940
1949
  observabilityMetricsEnabled: optional("OPENGENI_OBSERVABILITY_METRICS_ENABLED"),
1941
1950
  observabilityOtlpEndpoint:
@@ -4643,6 +4652,7 @@ export function getSettings(source: NodeJS.ProcessEnv = process.env): Settings {
4643
4652
  serverVersion: optional("OPENGENI_SERVER_VERSION"),
4644
4653
  databaseUrl: optional("OPENGENI_DATABASE_URL"),
4645
4654
  apiDatabasePoolMax: optional("OPENGENI_API_DATABASE_POOL_MAX"),
4655
+ databasePreparedStatements: optional("OPENGENI_DATABASE_PREPARED_STATEMENTS"),
4646
4656
  dbSchema: optional("OPENGENI_DB_SCHEMA"),
4647
4657
  rlsStrategy: optional("OPENGENI_RLS_STRATEGY"),
4648
4658
  runtimeDatabaseRole: optional("OPENGENI_RUNTIME_DATABASE_ROLE"),
@@ -5273,6 +5283,7 @@ export function getSettings(source: NodeJS.ProcessEnv = process.env): Settings {
5273
5283
  stripePublishableKey: optional("OPENGENI_STRIPE_PUBLISHABLE_KEY"),
5274
5284
  stripeWebhookSecret: optional("OPENGENI_STRIPE_WEBHOOK_SECRET"),
5275
5285
  stripeCreditsProductId: optional("OPENGENI_STRIPE_CREDITS_PRODUCT_ID"),
5286
+ subscriptionPlansEnabled: optional("OPENGENI_SUBSCRIPTION_PLANS_ENABLED"),
5276
5287
  mcpServers: parseMcpServers(optional("OPENGENI_MCP_SERVERS")),
5277
5288
  };
5278
5289
  const parsed = SettingsSchema.parse(raw);