MCPcopy Index your code
hub / github.com/simstudioai/sim / deleteExecutionFiles

Function deleteExecutionFiles

apps/sim/background/cleanup-logs.ts:50–84  ·  view source on GitHub ↗
(files: unknown, stats: FileDeleteStats)

Source from the content-addressed store, hash-verified

48const LARGE_VALUE_TOMBSTONE_RETENTION_HOURS = 30 * 24
49
50async function deleteExecutionFiles(files: unknown, stats: FileDeleteStats): Promise<void> {
51 if (!isUsingCloudStorage() || !files || !Array.isArray(files)) return
52
53 const keys = Array.from(
54 new Set(files.filter((f) => f && typeof f === 'object' && f.key).map((f) => f.key as string))
55 )
56 stats.filesTotal += keys.length
57 if (keys.length === 0) return
58
59 let result: Awaited<ReturnType<typeof StorageService.deleteFiles>>
60 try {
61 result = await StorageService.deleteFiles(keys, 'execution')
62 } catch (error) {
63 stats.filesDeleteFailed += keys.length
64 logger.error('Failed to bulk delete execution files:', { error })
65 return
66 }
67
68 const failedKeys = new Set(result.failed.map(({ key }) => key))
69 stats.filesDeleted += result.deleted
70 stats.filesDeleteFailed += result.failed.length
71
72 for (const { key, error } of result.failed) {
73 logger.error(`Failed to delete file ${key}:`, { error })
74 }
75 for (const key of keys) {
76 if (failedKeys.has(key)) continue
77 try {
78 await deleteFileMetadata(key)
79 } catch (metadataError) {
80 stats.filesDeleteFailed++
81 logger.error(`Failed to delete file metadata ${key}:`, { metadataError })
82 }
83 }
84}
85
86interface LargeValueCleanupStats {
87 largeValuesTotal: number

Callers 1

Calls 3

isUsingCloudStorageFunction · 0.90
deleteFileMetadataFunction · 0.90
errorMethod · 0.80

Tested by

no test coverage detected