feat: add secretKeyRef support for package registry and storage credentials (#8275)
* feat: add secretKeyRef support for package registry and storage credentials Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: update ee-repo-ref for test coverage commit Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: update ee-repo-ref to 716b350bce1730b302c66ea69df618fa40f2f16b This commit updates the EE repository reference after PR #443 was merged in windmill-ee-private. Previous ee-repo-ref: d8498f003af407853eb1e98673d86d1816dbfeae New ee-repo-ref: 716b350bce1730b302c66ea69df618fa40f2f16b Automated by sync-ee-ref workflow. * fix: box::pin database executor futures to prevent stack overflow The if-else chain for database languages (postgresql, mysql, bigquery, snowflake, mssql, oracledb, duckdb, graphql, nativets) was awaiting futures directly on the stack. With all features enabled, the combined async state machine became too large for the default thread stack size, causing stack overflow in test_workflow_as_code. The match block for main languages already used Box::pin; this applies the same pattern to the database language branches. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
This commit is contained in:
@@ -1 +1 @@
|
||||
f9549c813b3dba5324ea9d1edacc8756a6d699bf
|
||||
716b350bce1730b302c66ea69df618fa40f2f16b
|
||||
|
||||
@@ -265,25 +265,25 @@ pub struct GlobalSettings {
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub instance_python_version: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub pip_index_url: Option<String>,
|
||||
pub pip_index_url: Option<StringOrSecretRef>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub pip_extra_index_url: Option<String>,
|
||||
pub pip_extra_index_url: Option<StringOrSecretRef>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub npm_config_registry: Option<String>,
|
||||
pub npm_config_registry: Option<StringOrSecretRef>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub bunfig_install_scopes: Option<String>,
|
||||
pub bunfig_install_scopes: Option<StringOrSecretRef>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub npmrc: Option<String>,
|
||||
pub npmrc: Option<StringOrSecretRef>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub nuget_config: Option<String>,
|
||||
pub nuget_config: Option<StringOrSecretRef>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub maven_repos: Option<String>,
|
||||
pub maven_repos: Option<StringOrSecretRef>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub ruby_repos: Option<String>,
|
||||
pub ruby_repos: Option<StringOrSecretRef>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub powershell_repo_url: Option<String>,
|
||||
pub powershell_repo_url: Option<StringOrSecretRef>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub powershell_repo_pat: Option<String>,
|
||||
pub powershell_repo_pat: Option<StringOrSecretRef>,
|
||||
|
||||
// Array settings
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
|
||||
@@ -3899,7 +3899,7 @@ pub async fn run_language_executor(
|
||||
run_inline: bool,
|
||||
) -> error::Result<Box<RawValue>> {
|
||||
if language == Some(ScriptLang::Postgresql) {
|
||||
return do_postgresql(
|
||||
return Box::pin(do_postgresql(
|
||||
job,
|
||||
&client,
|
||||
&code,
|
||||
@@ -3911,7 +3911,7 @@ pub async fn run_language_executor(
|
||||
occupancy_metrics,
|
||||
parent_runnable_path,
|
||||
run_inline,
|
||||
)
|
||||
))
|
||||
.await;
|
||||
} else if language == Some(ScriptLang::Mysql) {
|
||||
#[cfg(not(feature = "mysql"))]
|
||||
@@ -3926,7 +3926,7 @@ pub async fn run_language_executor(
|
||||
"Inline execution is not yet supported for this language".to_string(),
|
||||
));
|
||||
}
|
||||
return do_mysql(
|
||||
return Box::pin(do_mysql(
|
||||
job,
|
||||
&client,
|
||||
&code,
|
||||
@@ -3937,7 +3937,7 @@ pub async fn run_language_executor(
|
||||
column_order,
|
||||
occupancy_metrics,
|
||||
parent_runnable_path,
|
||||
)
|
||||
))
|
||||
.await;
|
||||
}
|
||||
} else if language == Some(ScriptLang::Bigquery) {
|
||||
@@ -3963,7 +3963,7 @@ pub async fn run_language_executor(
|
||||
"Inline execution is not yet supported for this language".to_string(),
|
||||
));
|
||||
}
|
||||
return do_bigquery(
|
||||
return Box::pin(do_bigquery(
|
||||
job,
|
||||
&client,
|
||||
&code,
|
||||
@@ -3974,7 +3974,7 @@ pub async fn run_language_executor(
|
||||
column_order,
|
||||
occupancy_metrics,
|
||||
parent_runnable_path,
|
||||
)
|
||||
))
|
||||
.await;
|
||||
}
|
||||
} else if language == Some(ScriptLang::Snowflake) {
|
||||
@@ -3992,7 +3992,7 @@ pub async fn run_language_executor(
|
||||
"Inline execution is not yet supported for this language".to_string(),
|
||||
));
|
||||
}
|
||||
return do_snowflake(
|
||||
return Box::pin(do_snowflake(
|
||||
job,
|
||||
&client,
|
||||
&code,
|
||||
@@ -4003,7 +4003,7 @@ pub async fn run_language_executor(
|
||||
column_order,
|
||||
occupancy_metrics,
|
||||
parent_runnable_path,
|
||||
)
|
||||
))
|
||||
.await;
|
||||
}
|
||||
} else if language == Some(ScriptLang::Mssql) {
|
||||
@@ -4029,7 +4029,7 @@ pub async fn run_language_executor(
|
||||
"Inline execution is not yet supported for this language".to_string(),
|
||||
));
|
||||
}
|
||||
return do_mssql(
|
||||
return Box::pin(do_mssql(
|
||||
job,
|
||||
&client,
|
||||
&code,
|
||||
@@ -4040,7 +4040,7 @@ pub async fn run_language_executor(
|
||||
occupancy_metrics,
|
||||
job_dir,
|
||||
parent_runnable_path,
|
||||
)
|
||||
))
|
||||
.await;
|
||||
}
|
||||
} else if language == Some(ScriptLang::OracleDB) {
|
||||
@@ -4066,7 +4066,7 @@ pub async fn run_language_executor(
|
||||
"Inline execution is not yet supported for this language".to_string(),
|
||||
));
|
||||
}
|
||||
return do_oracledb(
|
||||
return Box::pin(do_oracledb(
|
||||
job,
|
||||
&client,
|
||||
&code,
|
||||
@@ -4077,7 +4077,7 @@ pub async fn run_language_executor(
|
||||
column_order,
|
||||
occupancy_metrics,
|
||||
parent_runnable_path,
|
||||
)
|
||||
))
|
||||
.await;
|
||||
}
|
||||
} else if language == Some(ScriptLang::DuckDb) {
|
||||
@@ -4091,7 +4091,7 @@ pub async fn run_language_executor(
|
||||
|
||||
#[cfg(feature = "duckdb")]
|
||||
{
|
||||
return do_duckdb(
|
||||
return Box::pin(do_duckdb(
|
||||
job,
|
||||
&client,
|
||||
&code,
|
||||
@@ -4103,7 +4103,7 @@ pub async fn run_language_executor(
|
||||
occupancy_metrics,
|
||||
parent_runnable_path,
|
||||
run_inline,
|
||||
)
|
||||
))
|
||||
.await;
|
||||
}
|
||||
} else if language == Some(ScriptLang::Graphql) {
|
||||
@@ -4112,7 +4112,7 @@ pub async fn run_language_executor(
|
||||
"Inline execution is not yet supported for this language".to_string(),
|
||||
));
|
||||
}
|
||||
return do_graphql(
|
||||
return Box::pin(do_graphql(
|
||||
job,
|
||||
&client,
|
||||
&code,
|
||||
@@ -4121,7 +4121,7 @@ pub async fn run_language_executor(
|
||||
canceled_by,
|
||||
worker_name,
|
||||
occupancy_metrics,
|
||||
)
|
||||
))
|
||||
.await;
|
||||
} else if language == Some(ScriptLang::Nativets) {
|
||||
if run_inline {
|
||||
@@ -4148,7 +4148,7 @@ pub async fn run_language_executor(
|
||||
.collect::<Vec<String>>()
|
||||
.join("\n"));
|
||||
|
||||
let result = do_nativets(
|
||||
let result = Box::pin(do_nativets(
|
||||
job,
|
||||
&client,
|
||||
env_code,
|
||||
@@ -4159,7 +4159,7 @@ pub async fn run_language_executor(
|
||||
worker_name,
|
||||
occupancy_metrics,
|
||||
has_stream,
|
||||
)
|
||||
))
|
||||
.await?;
|
||||
return Ok(result);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user