@norskvideo/ctl-product-template-schema 0.1.7 → 0.1.9

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 +15 -6
  2. package/index.js +13 -9
  3. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -23,8 +23,11 @@ export declare const ProductTemplateAdvancedSchema: z.ZodObject<{
23
23
  shmSize: z.ZodOptional<z.ZodObject<{
24
24
  default: z.ZodOptional<z.ZodString>;
25
25
  }, z.core.$strip>>;
26
- shmGroup: z.ZodOptional<z.ZodObject<{
27
- default: z.ZodOptional<z.ZodString>;
26
+ sharedMemory: z.ZodOptional<z.ZodObject<{
27
+ default: z.ZodOptional<z.ZodArray<z.ZodString>>;
28
+ }, z.core.$strip>>;
29
+ openFileLimit: z.ZodOptional<z.ZodObject<{
30
+ default: z.ZodOptional<z.ZodNumber>;
28
31
  }, z.core.$strip>>;
29
32
  }, z.core.$strip>;
30
33
  export declare const ProductTemplateAllocatedPortSchema: z.ZodObject<{
@@ -90,8 +93,11 @@ export declare const ProductTemplateManifestSchema: z.ZodObject<{
90
93
  shmSize: z.ZodOptional<z.ZodObject<{
91
94
  default: z.ZodOptional<z.ZodString>;
92
95
  }, z.core.$strip>>;
93
- shmGroup: z.ZodOptional<z.ZodObject<{
94
- default: z.ZodOptional<z.ZodString>;
96
+ sharedMemory: z.ZodOptional<z.ZodObject<{
97
+ default: z.ZodOptional<z.ZodArray<z.ZodString>>;
98
+ }, z.core.$strip>>;
99
+ openFileLimit: z.ZodOptional<z.ZodObject<{
100
+ default: z.ZodOptional<z.ZodNumber>;
95
101
  }, z.core.$strip>>;
96
102
  }, z.core.$strip>>;
97
103
  allocatedPorts: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -202,8 +208,11 @@ export declare const ProductTemplateMaterialsSchema: z.ZodObject<{
202
208
  shmSize: z.ZodOptional<z.ZodObject<{
203
209
  default: z.ZodOptional<z.ZodString>;
204
210
  }, z.core.$strip>>;
205
- shmGroup: z.ZodOptional<z.ZodObject<{
206
- default: z.ZodOptional<z.ZodString>;
211
+ sharedMemory: z.ZodOptional<z.ZodObject<{
212
+ default: z.ZodOptional<z.ZodArray<z.ZodString>>;
213
+ }, z.core.$strip>>;
214
+ openFileLimit: z.ZodOptional<z.ZodObject<{
215
+ default: z.ZodOptional<z.ZodNumber>;
207
216
  }, z.core.$strip>>;
208
217
  }, z.core.$strip>>;
209
218
  allocatedPorts: z.ZodOptional<z.ZodArray<z.ZodObject<{
package/index.js CHANGED
@@ -78,16 +78,20 @@ export const ProductTemplateAdvancedSchema = z
78
78
  // exclusive and a second instance needs a different one. Hard pinning is
79
79
  // a future product-template-pins concern, not this knob.
80
80
  hostPorts: z.object({ default: z.array(z.string()).optional() }).optional(),
81
- // Shared memory. `shmSize` sizes media's private /dev/shm — or, under a
82
- // group, the shared IPC namespace every member of that group joins.
83
- // `shmGroup` opts the instance out of privacy altogether and into a named
84
- // namespace shared with every other member on the host — what a zero-copy
85
- // cross-instance transport (MXL) needs, and meaningless without one. A
86
- // product that requires the shared namespace supplies the group name as its
87
- // `default`, so an operator gets it without knowing the transport's
88
- // mechanics.
81
+ // Shared memory: `shmSize` sizes media's private /dev/shm — always private
82
+ // to the instance (ADR-0011). Cross-instance sharing is `sharedMemory`:
83
+ // operator-created host tmpfs paths bind-mounted into media (e.g. an MXL
84
+ // domain). A product built around a domain suggests the conventional path
85
+ // as its `default`; the operator still owns creating the mount, and can
86
+ // override or decline at launch.
89
87
  shmSize: z.object({ default: z.string().optional() }).optional(),
90
- shmGroup: z.object({ default: z.string().optional() }).optional(),
88
+ sharedMemory: z.object({ default: z.array(z.string()).optional() }).optional(),
89
+ // Open file descriptors per container. The runner already states a ceiling
90
+ // for every instance (unset, containers inherit the host daemon's limit,
91
+ // which is how a media graph at ~1000 handles dies of EMFILE on some hosts
92
+ // and not others) — so this is how a product that needs a HIGHER one says
93
+ // so, not how it gets a ceiling at all. Instance-wide, not per-service.
94
+ openFileLimit: z.object({ default: z.number().int().min(1024).max(1048576).optional() }).optional(),
91
95
  })
92
96
  .meta({ id: "ProductTemplateAdvanced", outputId: "ProductTemplateAdvanced" });
93
97
  // 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.7",
3
+ "version": "0.1.9",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {