@@ -2,6 +2,14 @@ import { randomUUID } from "crypto";
2
2
import { env as stdEnv } from "std-env" ;
3
3
import { z } from "zod" ;
4
4
5
+ const BoolEnv = z . preprocess ( ( val ) => {
6
+ if ( typeof val !== "string" ) {
7
+ return val ;
8
+ }
9
+
10
+ return [ "true" , "1" ] . includes ( val . toLowerCase ( ) . trim ( ) ) ;
11
+ } , z . boolean ( ) ) ;
12
+
5
13
const Env = z . object ( {
6
14
// This will come from `spec.nodeName` in k8s
7
15
TRIGGER_WORKER_INSTANCE_NAME : z . string ( ) . default ( randomUUID ( ) ) ,
@@ -12,7 +20,7 @@ const Env = z.object({
12
20
MANAGED_WORKER_SECRET : z . string ( ) ,
13
21
14
22
// Workload API settings (coordinator mode) - the workload API is what the run controller connects to
15
- TRIGGER_WORKLOAD_API_ENABLED : z . coerce . boolean ( ) . default ( true ) ,
23
+ TRIGGER_WORKLOAD_API_ENABLED : BoolEnv . default ( " true" ) ,
16
24
TRIGGER_WORKLOAD_API_PROTOCOL : z
17
25
. string ( )
18
26
. transform ( ( s ) => z . enum ( [ "http" , "https" ] ) . parse ( s . toLowerCase ( ) ) )
@@ -22,7 +30,7 @@ const Env = z.object({
22
30
TRIGGER_WORKLOAD_API_PORT_EXTERNAL : z . coerce . number ( ) . default ( 8020 ) , // This is the exposed port passed to the run controller
23
31
24
32
// Dequeue settings (provider mode)
25
- TRIGGER_DEQUEUE_ENABLED : z . coerce . boolean ( ) . default ( true ) ,
33
+ TRIGGER_DEQUEUE_ENABLED : BoolEnv . default ( " true" ) ,
26
34
TRIGGER_DEQUEUE_INTERVAL_MS : z . coerce . number ( ) . int ( ) . default ( 1000 ) ,
27
35
28
36
// Optional services
0 commit comments