MCPcopy
hub / github.com/FlowiseAI/Flowise / decryptCredentialData

Function decryptCredentialData

packages/server/src/utils/index.ts:1609–1655  ·  view source on GitHub ↗
(
    encryptedData: string,
    componentCredentialName?: string,
    componentCredentials?: IComponentCredentials
)

Source from the content-addressed store, hash-verified

1607 * @returns {Promise<ICredentialDataDecrypted>}
1608 */
1609export const decryptCredentialData = async (
1610 encryptedData: string,
1611 componentCredentialName?: string,
1612 componentCredentials?: IComponentCredentials
1613): Promise<ICredentialDataDecrypted> => {
1614 let decryptedDataStr: string
1615
1616 if (USE_AWS_SECRETS_MANAGER && secretsManagerClient) {
1617 try {
1618 if (encryptedData.startsWith('FlowiseCredential_')) {
1619 const command = new GetSecretValueCommand({ SecretId: encryptedData })
1620 const response = await secretsManagerClient.send(command)
1621
1622 if (response.SecretString) {
1623 const secretObj = JSON.parse(response.SecretString)
1624 decryptedDataStr = JSON.stringify(secretObj)
1625 } else {
1626 throw new Error('Failed to retrieve secret value.')
1627 }
1628 } else {
1629 const encryptKey = await getEncryptionKey()
1630 const decryptedData = AES.decrypt(encryptedData, encryptKey)
1631 decryptedDataStr = decryptedData.toString(enc.Utf8)
1632 }
1633 } catch (error) {
1634 console.error(error)
1635 throw new Error('Failed to decrypt credential data.')
1636 }
1637 } else {
1638 // Fallback to existing code
1639 const encryptKey = await getEncryptionKey()
1640 const decryptedData = AES.decrypt(encryptedData, encryptKey)
1641 decryptedDataStr = decryptedData.toString(enc.Utf8)
1642 }
1643
1644 if (!decryptedDataStr) return {}
1645 try {
1646 if (componentCredentialName && componentCredentials) {
1647 const plainDataObj = JSON.parse(decryptedDataStr)
1648 return redactCredentialWithPasswordType(componentCredentialName, plainDataObj, componentCredentials)
1649 }
1650 return JSON.parse(decryptedDataStr)
1651 } catch (e) {
1652 console.error(e)
1653 return {}
1654 }
1655}
1656
1657/**
1658 * Generate an encryption key

Callers 15

index.tsFile · 0.90
getCredentialByIdFunction · 0.90
updateCredentialFunction · 0.90
revealCredentialByIdFunction · 0.90
getWebhookSecretFunction · 0.90
getAllOpenaiAssistantsFunction · 0.90
getSingleOpenaiAssistantFunction · 0.90
uploadFilesToAssistantFunction · 0.90
getAssistantVectorStoreFunction · 0.90
listAssistantVectorStoreFunction · 0.90

Calls 4

stringifyMethod · 0.80
getEncryptionKeyFunction · 0.70
parseMethod · 0.65

Tested by

no test coverage detected