@norskvideo/ctl-product-template-schema 0.1.6 → 0.1.8

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.
Files changed (3) hide show
  1. package/index.d.ts +9 -0
  2. package/index.js +13 -5
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -26,6 +26,9 @@ export declare const ProductTemplateAdvancedSchema: z.ZodObject<{
26
26
  shmGroup: z.ZodOptional<z.ZodObject<{
27
27
  default: z.ZodOptional<z.ZodString>;
28
28
  }, z.core.$strip>>;
29
+ openFileLimit: z.ZodOptional<z.ZodObject<{
30
+ default: z.ZodOptional<z.ZodNumber>;
31
+ }, z.core.$strip>>;
29
32
  }, z.core.$strip>;
30
33
  export declare const ProductTemplateAllocatedPortSchema: z.ZodObject<{
31
34
  param: z.ZodString;
@@ -93,6 +96,9 @@ export declare const ProductTemplateManifestSchema: z.ZodObject<{
93
96
  shmGroup: z.ZodOptional<z.ZodObject<{
94
97
  default: z.ZodOptional<z.ZodString>;
95
98
  }, z.core.$strip>>;
99
+ openFileLimit: z.ZodOptional<z.ZodObject<{
100
+ default: z.ZodOptional<z.ZodNumber>;
101
+ }, z.core.$strip>>;
96
102
  }, z.core.$strip>>;
97
103
  allocatedPorts: z.ZodOptional<z.ZodArray<z.ZodObject<{
98
104
  param: z.ZodString;
@@ -205,6 +211,9 @@ export declare const ProductTemplateMaterialsSchema: z.ZodObject<{
205
211
  shmGroup: z.ZodOptional<z.ZodObject<{
206
212
  default: z.ZodOptional<z.ZodString>;
207
213
  }, z.core.$strip>>;
214
+ openFileLimit: z.ZodOptional<z.ZodObject<{
215
+ default: z.ZodOptional<z.ZodNumber>;
216
+ }, z.core.$strip>>;
208
217
  }, z.core.$strip>>;
209
218
  allocatedPorts: z.ZodOptional<z.ZodArray<z.ZodObject<{
210
219
  param: z.ZodString;
package/index.js CHANGED
@@ -53,11 +53,13 @@ const ProductTemplateProxySchema = z.object({
53
53
  }),
54
54
  });
55
55
  // product-template-schema cannot import @norsk-ctl/shared (dependency direction), so
56
- // this is a literal copy of the runner's network-mode enum. The runner's
57
- // OpenAPI ProductTemplateAdvanced shape is generated from this zod (see
58
- // backend/scripts/gen-product-template-oas.ts), so the two can't drift but the
59
- // runner's own ProductNetworkMode launch enum is still hand-authored; extend
60
- // both if a new mode ever lands.
56
+ // this is a literal copy of the runner's network-mode enum and the runner
57
+ // spells the same values inline at several contract sites besides. Extend every
58
+ // copy if a new mode ever lands: a value only a product template knows is a
59
+ // default the launch API rejects, and one only the runner knows is a mode no
60
+ // product template may declare. The copies are pinned to each other by
61
+ // packages/norsk-ctl/shared/src/spec/network-mode.guard.test.ts, which sweeps
62
+ // the built OpenAPI document and names each site to update.
61
63
  export const PRODUCT_TEMPLATE_ADVANCED_NETWORK_MODES = ["docker", "hybrid"];
62
64
  // Per-key opt-in map of settings-backed runner knobs the operator may
63
65
  // override per instance. Key presence puts the knob on the launch form;
@@ -86,6 +88,12 @@ export const ProductTemplateAdvancedSchema = z
86
88
  // mechanics.
87
89
  shmSize: z.object({ default: z.string().optional() }).optional(),
88
90
  shmGroup: z.object({ default: z.string().optional() }).optional(),
91
+ // Open file descriptors per container. The runner already states a ceiling
92
+ // for every instance (unset, containers inherit the host daemon's limit,
93
+ // which is how a media graph at ~1000 handles dies of EMFILE on some hosts
94
+ // and not others) — so this is how a product that needs a HIGHER one says
95
+ // so, not how it gets a ceiling at all. Instance-wide, not per-service.
96
+ openFileLimit: z.object({ default: z.number().int().min(1024).max(1048576).optional() }).optional(),
89
97
  })
90
98
  .meta({ id: "ProductTemplateAdvanced", outputId: "ProductTemplateAdvanced" });
91
99
  // A host-port binding whose value rides a product-template parameter, opted in per
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norskvideo/ctl-product-template-schema",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {