Set runner secret

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
This commit is contained in:
Lee Smet
2025-09-04 14:05:03 +02:00
parent c4971aa794
commit de6c799635
6 changed files with 46 additions and 13 deletions

View File

@@ -18,6 +18,8 @@ pub struct Runner {
pub script_type: ScriptType,
/// If this is true, the runner also listens on a local redis queue
pub local: bool,
/// Optional secret used for authenticated supervisor calls (if required)
pub secret: Option<String>,
pub created_at: Timestamp,
pub updated_at: Timestamp,
}

View File

@@ -140,11 +140,12 @@ async fn deliver_one(
// Keep clones for poller usage
let dest_for_poller = dest.clone();
let topic_for_poller = cfg.topic.clone();
let secret_for_poller = runner.secret.clone();
let client = SupervisorClient::new_with_client(
mycelium.clone(),
dest.clone(),
cfg.topic.clone(),
None, // secret
runner.secret.clone(),
);
// Build supervisor method and params from Message
@@ -234,7 +235,7 @@ async fn deliver_one(
client.clone(),
sup_dest.clone(),
sup_topic.clone(),
None,
secret_for_poller.clone(),
);
match sup.job_status_sync(job_id.to_string(), 10).await {
Ok(remote_status) => {
@@ -256,7 +257,7 @@ async fn deliver_one(
client.clone(),
sup_dest.clone(),
sup_topic.clone(),
None,
secret_for_poller.clone(),
);
match sup
.job_result_sync(

View File

@@ -150,6 +150,8 @@ pub struct RunnerCreate {
/// The script type this runner executes (used for routing)
pub script_type: ScriptType,
pub local: bool,
/// Optional secret used for authenticated supervisor calls (if required)
pub secret: Option<String>,
}
impl RunnerCreate {
pub fn into_domain(self) -> Runner {
@@ -162,6 +164,7 @@ impl RunnerCreate {
topic,
script_type,
local,
secret,
} = self;
Runner {
@@ -171,6 +174,7 @@ impl RunnerCreate {
topic,
script_type,
local,
secret,
created_at: ts,
updated_at: ts,
}