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

Function cleanupUndeployedSideEffects

apps/sim/lib/workflows/deployment-outbox.ts:239–280  ·  view source on GitHub ↗
(rawPayload: unknown)

Source from the content-addressed store, hash-verified

237}
238
239const cleanupUndeployedSideEffects = async (rawPayload: unknown): Promise<void> => {
240 const payload = parseCleanupUndeployedSideEffectsPayload(rawPayload)
241 const requestId = payload.requestId ?? generateRequestId()
242 const [workflowRecord] = await db
243 .select()
244 .from(workflowTable)
245 .where(eq(workflowTable.id, payload.workflowId))
246 .limit(1)
247
248 if (!workflowRecord) return
249 const workflowData = workflowRecord as Record<string, unknown>
250
251 for (const deploymentVersionId of payload.deploymentVersionIds) {
252 const [versionRow] = await db
253 .select({ isActive: workflowDeploymentVersion.isActive })
254 .from(workflowDeploymentVersion)
255 .where(
256 and(
257 eq(workflowDeploymentVersion.workflowId, payload.workflowId),
258 eq(workflowDeploymentVersion.id, deploymentVersionId)
259 )
260 )
261 .limit(1)
262
263 if (!versionRow || versionRow.isActive) continue
264 await cleanupDeploymentVersionIfInactive({
265 workflowId: payload.workflowId,
266 workflow: workflowData,
267 userId: payload.userId,
268 requestId,
269 deploymentVersionId,
270 })
271 }
272
273 await cleanupNullVersionWebhooksIfStillUndeployed({
274 workflowId: payload.workflowId,
275 workflow: workflowData,
276 requestId,
277 })
278
279 await removeMcpToolsIfStillUndeployed(payload.workflowId, requestId)
280}
281
282/**
283 * Run inactive-version cleanup synchronously as part of the active-version sync, right

Callers

nothing calls this directly

Tested by

no test coverage detected