@@ -26,8 +26,10 @@ def build_config(
2626 retry : Optional [int ] = None ,
2727 step_timeout : Optional [int ] = None ,
2828 log_level : Optional [str ] = None ,
29+ api_enabled : Optional [bool ] = None ,
2930 api_port : Optional [int ] = None ,
3031 api_host : Optional [str ] = None ,
32+ api_key_header : Optional [str ] = None ,
3133) -> AppConfig :
3234 """Construct AppConfig from CLI parameters and environment variables.
3335
@@ -69,11 +71,16 @@ def _int_or(value, fallback: int) -> int:
6971 step_timeout if step_timeout is not None else env .get ("STEP_TIMEOUT" ), 0
7072 ),
7173 log_level = (log_level or env .get ("LOG_LEVEL" ) or "INFO" ),
72- # pipeline params removed from AppConfig; they must be specified in YAML
74+ api_enabled = (
75+ api_enabled
76+ if api_enabled is not None
77+ else env .get ("API_ENABLED" , "true" ).lower () not in ("0" , "false" )
78+ ),
7379 api_host = (api_host or env .get ("API_HOST" ) or "0.0.0.0" ),
7480 api_port = _int_or (
7581 api_port if api_port is not None else env .get ("API_PORT" ), 8080
7682 ),
83+ api_key_header = (api_key_header or env .get ("API_KEY_HEADER" ) or "X-API-Key" ),
7784 )
7885 # log when using bundled example pipeline (no CLI arg and no PIPELINE_FILE env)
7986 if not pipeline_path and not env .get ("PIPELINE_FILE" ):
@@ -111,6 +118,7 @@ def main(
111118 retry = retry ,
112119 step_timeout = step_timeout ,
113120 log_level = log_level ,
121+ api_enabled = api_enabled ,
114122 api_port = api_port ,
115123 api_host = api_host ,
116124 )
@@ -121,7 +129,7 @@ def main(
121129
122130 # render pipeline (params must be defined within the YAML file itself)
123131 try :
124- raw = render_pipeline (config .pipeline_file )
132+ raw = render_pipeline (config .pipeline_file , params = config . pipeline_params )
125133 except Exception :
126134 logger .exception ("Failed to load/render pipeline file %s" , config .pipeline_file )
127135 raise SystemExit (2 )
@@ -148,9 +156,6 @@ def main(
148156 print (render_tree_ascii (sp = sp , color = True ))
149157 return
150158
151- # Decide mode based on environment: API vs CLI
152- api_enabled = os .getenv ("API_ENABLED" , "true" ).lower () not in ("0" , "false" )
153-
154159 # Determine if pipeline has a schedule (new 'schedule')
155160 schedule_expr = getattr (pipeline .metadata , "schedule" , None )
156161 # Respect RUN_ONCE env var if set and CLI flag not given
@@ -171,7 +176,7 @@ def main(
171176 logger .exception ("Failed to run pipeline once" )
172177 raise SystemExit (3 )
173178
174- if api_enabled :
179+ if config . api_enabled :
175180 # start server which will look at pipeline.metadata.schedule to decide scheduling
176181 try :
177182 server .main (
0 commit comments