wakflo_core/
workflow_instance.rs

1use crate::connector::JobInstanceState;
2use crate::workflow::Workflow;
3use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5use wakflo_common::{JobMetadata, JobProcessStatus, SystemActivityLog};
6
7/// # WorkflowInstance
8///
9/// A running instance of a schema entity
10#[derive(PartialEq, Eq, Serialize, Deserialize, Clone, Debug)]
11pub struct WorkflowInstance {
12    /// Unique identifier of a schema
13    pub id: String,
14
15    /// Workflow that owns this schema
16    pub workflow_id: String,
17
18    /// Workflow that owns this schema
19    pub workflow: Option<Workflow>,
20
21    pub state: JobInstanceState,
22
23    /// Actual state of the schema [JobProcessStatus]
24    pub status: JobProcessStatus,
25
26    pub team_id: String,
27
28    /// Execution result
29    pub input: HashMap<String, serde_json::Value>,
30
31    pub errors: Vec<SystemActivityLog>,
32
33    pub output: HashMap<String, serde_json::Value>,
34
35    /// [JobMetadata] data for job
36    pub metadata: JobMetadata,
37
38    /// [OwnerMetadata] owner data for entity
39    pub created_by: Option<String>,
40
41    /// [OwnerMetadata] owner data for entity
42    pub updated_by: Option<String>,
43
44    /// Date the entity was created
45    pub created_at: chrono::DateTime<chrono::FixedOffset>,
46
47    /// Date the entity was updated
48    pub updated_at: chrono::DateTime<chrono::FixedOffset>,
49}