@opengeni/config 0.9.3 → 0.10.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": "0.9.3",
3
+ "version": "0.10.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": {
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@opengeni/codex": "^0.2.9",
37
- "@opengeni/contracts": "^0.30.0",
37
+ "@opengeni/contracts": "^0.31.0",
38
38
  "zod": "^4.2.1"
39
39
  },
40
40
  "engines": {
package/src/index.ts CHANGED
@@ -480,6 +480,15 @@ const SettingsSchema = z.object({
480
480
  dockerWorkspaceBaseDir: z.string().min(1).optional(),
481
481
  modalAppName: z.string().default("opengeni-sandbox"),
482
482
  modalImageRef: z.string().optional(),
483
+ // Provider-native immutable Modal image ID for the exact logical
484
+ // `modalImageRef`. When set, the runtime uses ModalImageSelector.fromId and
485
+ // never asks Modal to parse or import the registry ref. The logical ref is
486
+ // still persisted on the sandbox lease for provenance and conflict fencing;
487
+ // the Modal session envelope persists the actual image ID.
488
+ modalImageId: z
489
+ .string()
490
+ .regex(/^im-[A-Za-z0-9]{22}$/)
491
+ .optional(),
483
492
  // Name of a Modal Secret (containing REGISTRY_USERNAME + REGISTRY_PASSWORD) used
484
493
  // to authenticate the pull of `modalImageRef` from a PRIVATE registry. When UNSET
485
494
  // (the default), the sandbox image is pulled UNAUTHENTICATED — i.e. it must be a
@@ -1691,6 +1700,7 @@ export function getSettings(): Settings {
1691
1700
  dockerWorkspaceBaseDir: optional("OPENGENI_DOCKER_WORKSPACE_BASE_DIR"),
1692
1701
  modalAppName: optional("OPENGENI_MODAL_APP_NAME"),
1693
1702
  modalImageRef: optional("OPENGENI_MODAL_IMAGE_REF"),
1703
+ modalImageId: optional("OPENGENI_MODAL_IMAGE_ID"),
1694
1704
  modalImageRegistrySecret: optional("OPENGENI_MODAL_IMAGE_REGISTRY_SECRET"),
1695
1705
  modalTimeoutSeconds: optional("OPENGENI_MODAL_TIMEOUT_SECONDS"),
1696
1706
  modalTokenId: optional("OPENGENI_MODAL_TOKEN_ID"),