Merge branch 'main' into fix/stripe-issues

This commit is contained in:
Ong Chung Yau 2025-07-10 16:13:11 +08:00 committed by GitHub
commit da8623d8aa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 37 additions and 15 deletions

View File

@ -111,7 +111,13 @@ export class MCPToolkit extends BaseToolkit {
argsSchema: createSchemaModel(tool.inputSchema)
})
})
return Promise.all(toolsPromises)
const res = await Promise.allSettled(toolsPromises)
const errors = res.filter((r) => r.status === 'rejected')
if (errors.length !== 0) {
console.error('MCP Tools falied to be resolved', errors)
}
const successes = res.filter((r) => r.status === 'fulfilled').map((r) => r.value)
return successes
}
}

View File

@ -39,7 +39,7 @@ const importData = async (req: Request, res: Response, next: NextFunction) => {
}
await exportImportService.importData(importData, orgId, workspaceId, subscriptionId)
return res.json({ message: 'success' })
return res.status(StatusCodes.OK).json({ message: 'success' })
} catch (error) {
next(error)
}

View File

@ -1,5 +1,5 @@
import { StatusCodes } from 'http-status-codes'
import { In, QueryRunner } from 'typeorm'
import { EntityManager, In, QueryRunner } from 'typeorm'
import { v4 as uuidv4 } from 'uuid'
import { Assistant } from '../../database/entities/Assistant'
import { ChatFlow } from '../../database/entities/ChatFlow'
@ -255,11 +255,15 @@ async function replaceDuplicateIdsForChatMessage(
where: { id: In(ids) }
})
if (records.length < 0) return originalData
for (let record of records) {
const oldId = record.id
const newId = uuidv4()
originalData = JSON.parse(JSON.stringify(originalData).replaceAll(oldId, newId))
}
// replace duplicate ids found in db to new id
const dbExistingIds = new Set(records.map((record) => record.id))
originalData.ChatMessage = originalData.ChatMessage.map((item) => {
if (dbExistingIds.has(item.id)) {
return { ...item, id: uuidv4() }
}
return item
})
return originalData
} catch (error) {
throw new InternalFlowiseError(
@ -459,11 +463,15 @@ async function replaceDuplicateIdsForDocumentStoreFileChunk(
where: { id: In(ids) }
})
if (records.length < 0) return originalData
for (let record of records) {
const oldId = record.id
const newId = uuidv4()
originalData = JSON.parse(JSON.stringify(originalData).replaceAll(oldId, newId))
}
// replace duplicate ids found in db to new id
const dbExistingIds = new Set(records.map((record) => record.id))
originalData.DocumentStoreFileChunk = originalData.DocumentStoreFileChunk.map((item) => {
if (dbExistingIds.has(item.id)) {
return { ...item, id: uuidv4() }
}
return item
})
return originalData
} catch (error) {
throw new InternalFlowiseError(
@ -550,6 +558,13 @@ function insertWorkspaceId(importedData: any, activeWorkspaceId?: string) {
return importedData
}
async function saveBatch(manager: EntityManager, entity: any, items: any[], batchSize = 900) {
for (let i = 0; i < items.length; i += batchSize) {
const batch = items.slice(i, i + batchSize)
await manager.save(entity, batch)
}
}
const importData = async (importData: ExportData, orgId: string, activeWorkspaceId: string, subscriptionId: string) => {
// Initialize missing properties with empty arrays to avoid "undefined" errors
importData.AgentFlow = importData.AgentFlow || []
@ -705,13 +720,13 @@ const importData = async (importData: ExportData, orgId: string, activeWorkspace
if (importData.AssistantOpenAI.length > 0) await queryRunner.manager.save(Assistant, importData.AssistantOpenAI)
if (importData.AssistantAzure.length > 0) await queryRunner.manager.save(Assistant, importData.AssistantAzure)
if (importData.ChatFlow.length > 0) await queryRunner.manager.save(ChatFlow, importData.ChatFlow)
if (importData.ChatMessage.length > 0) await queryRunner.manager.save(ChatMessage, importData.ChatMessage)
if (importData.ChatMessage.length > 0) await saveBatch(queryRunner.manager, ChatMessage, importData.ChatMessage)
if (importData.ChatMessageFeedback.length > 0)
await queryRunner.manager.save(ChatMessageFeedback, importData.ChatMessageFeedback)
if (importData.CustomTemplate.length > 0) await queryRunner.manager.save(CustomTemplate, importData.CustomTemplate)
if (importData.DocumentStore.length > 0) await queryRunner.manager.save(DocumentStore, importData.DocumentStore)
if (importData.DocumentStoreFileChunk.length > 0)
await queryRunner.manager.save(DocumentStoreFileChunk, importData.DocumentStoreFileChunk)
await saveBatch(queryRunner.manager, DocumentStoreFileChunk, importData.DocumentStoreFileChunk)
if (importData.Tool.length > 0) await queryRunner.manager.save(Tool, importData.Tool)
if (importData.Execution.length > 0) await queryRunner.manager.save(Execution, importData.Execution)
if (importData.Variable.length > 0) await queryRunner.manager.save(Variable, importData.Variable)

View File

@ -1882,6 +1882,7 @@ const ChatMessage = ({ open, chatflowid, isAgentCanvas, isDialog, previews, setP
removeDuplicateURL={removeDuplicateURL}
isValidURL={isValidURL}
onURLClick={onURLClick}
getLabel={getLabel}
/>
))}
</div>