MCPcopy
hub / github.com/simstudioai/sim / loadDeployedWorkflowState

Function loadDeployedWorkflowState

apps/sim/lib/workflows/persistence/utils.ts:126–190  ·  view source on GitHub ↗
(
  workflowId: string,
  providedWorkspaceId?: string
)

Source from the content-addressed store, hash-verified

124}
125
126export async function loadDeployedWorkflowState(
127 workflowId: string,
128 providedWorkspaceId?: string
129): Promise<DeployedWorkflowData> {
130 try {
131 const [active] = await db
132 .select({
133 id: workflowDeploymentVersion.id,
134 state: workflowDeploymentVersion.state,
135 createdAt: workflowDeploymentVersion.createdAt,
136 })
137 .from(workflowDeploymentVersion)
138 .where(
139 and(
140 eq(workflowDeploymentVersion.workflowId, workflowId),
141 eq(workflowDeploymentVersion.isActive, true)
142 )
143 )
144 .orderBy(desc(workflowDeploymentVersion.createdAt))
145 .limit(1)
146
147 if (!active?.state) {
148 throw new Error(`Workflow ${workflowId} has no active deployment`)
149 }
150
151 const cached = deployedStateCache.get(active.id)
152 if (cached) {
153 return structuredClone(cached)
154 }
155
156 const state = active.state as WorkflowState & { variables?: Record<string, unknown> }
157
158 let resolvedWorkspaceId = providedWorkspaceId
159 if (!resolvedWorkspaceId) {
160 const workflowContext = await getActiveWorkflowContext(workflowId)
161 resolvedWorkspaceId = workflowContext?.workspaceId
162 }
163
164 if (!resolvedWorkspaceId) {
165 throw new Error(`Workflow ${workflowId} has no workspace`)
166 }
167
168 const { blocks: migratedBlocks } = await applyBlockMigrations(
169 state.blocks || {},
170 resolvedWorkspaceId
171 )
172
173 const deployedState: DeployedWorkflowData = {
174 blocks: migratedBlocks,
175 edges: state.edges || [],
176 loops: state.loops || {},
177 parallels: state.parallels || {},
178 variables: state.variables || {},
179 isFromNormalizedTables: false,
180 deploymentVersionId: active.id,
181 }
182
183 deployedStateCache.set(active.id, deployedState)

Callers 14

loadWorkflowStateFunction · 0.90
readDeployedStateFunction · 0.90
syncMcpToolsForWorkflowFunction · 0.90
route.tsFile · 0.90
handleExecutePostFunction · 0.90
runWorkflowExecutionFunction · 0.90

Calls 5

getActiveWorkflowContextFunction · 0.90
errorMethod · 0.80
getMethod · 0.65
setMethod · 0.65
eqFunction · 0.50

Tested by

no test coverage detected