From 9c90f0a477eef3488fcbdd0febc99739d26e4463 Mon Sep 17 00:00:00 2001 From: Sienna Meridian Satterwhite Date: Thu, 26 Mar 2026 17:05:30 +0000 Subject: [PATCH] feat(wfe-core): add when condition field to WorkflowStep --- wfe-core/src/models/workflow_definition.rs | 5 +++++ wfe-core/src/models/workflow_instance.rs | 1 + 2 files changed, 6 insertions(+) diff --git a/wfe-core/src/models/workflow_definition.rs b/wfe-core/src/models/workflow_definition.rs index 1ff89ca..0c98db2 100644 --- a/wfe-core/src/models/workflow_definition.rs +++ b/wfe-core/src/models/workflow_definition.rs @@ -2,6 +2,7 @@ use std::time::Duration; use serde::{Deserialize, Serialize}; +use super::condition::StepCondition; use super::error_behavior::ErrorBehavior; /// A compiled workflow definition ready for execution. @@ -46,6 +47,9 @@ pub struct WorkflowStep { /// Serializable configuration for primitive steps (e.g. event_name, duration). #[serde(default, skip_serializing_if = "Option::is_none")] pub step_config: Option, + /// Optional condition that must evaluate to true for this step to execute. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub when: Option, } impl WorkflowStep { @@ -62,6 +66,7 @@ impl WorkflowStep { do_compensate: false, saga: false, step_config: None, + when: None, } } } diff --git a/wfe-core/src/models/workflow_instance.rs b/wfe-core/src/models/workflow_instance.rs index 9fac9f4..0bc1882 100644 --- a/wfe-core/src/models/workflow_instance.rs +++ b/wfe-core/src/models/workflow_instance.rs @@ -45,6 +45,7 @@ impl WorkflowInstance { matches!( p.status, PointerStatus::Complete + | PointerStatus::Skipped | PointerStatus::Compensated | PointerStatus::Cancelled | PointerStatus::Failed