MCPcopy Index your code
hub / github.com/FlowiseAI/Flowise / decryptCredentialData

Function decryptCredentialData

packages/components/src/utils.ts:605–643  ·  view source on GitHub ↗
(encryptedData: string)

Source from the content-addressed store, hash-verified

603 * @returns {Promise<ICommonObject>}
604 */
605export const decryptCredentialData = async (encryptedData: string): Promise<ICommonObject> => {
606 let decryptedDataStr: string
607
608 if (USE_AWS_SECRETS_MANAGER && secretsManagerClient) {
609 try {
610 if (encryptedData.startsWith('FlowiseCredential_')) {
611 const command = new GetSecretValueCommand({ SecretId: encryptedData })
612 const response = await secretsManagerClient.send(command)
613
614 if (response.SecretString) {
615 const secretObj = JSON.parse(response.SecretString)
616 decryptedDataStr = JSON.stringify(secretObj)
617 } else {
618 throw new Error('Failed to retrieve secret value.')
619 }
620 } else {
621 const encryptKey = await getEncryptionKey()
622 const decryptedData = AES.decrypt(encryptedData, encryptKey)
623 decryptedDataStr = decryptedData.toString(enc.Utf8)
624 }
625 } catch (error) {
626 console.error(error)
627 throw new Error('Failed to decrypt credential data.')
628 }
629 } else {
630 // Fallback to existing code
631 const encryptKey = await getEncryptionKey()
632 const decryptedData = AES.decrypt(encryptedData, encryptKey)
633 decryptedDataStr = decryptedData.toString(enc.Utf8)
634 }
635
636 if (!decryptedDataStr) return {}
637 try {
638 return JSON.parse(decryptedDataStr)
639 } catch (e) {
640 console.error(e)
641 throw new Error('Credentials could not be decrypted.')
642 }
643}
644
645/**
646 * Get credential data

Callers 2

getToolsMethod · 0.90
getCredentialDataFunction · 0.70

Calls 3

stringifyMethod · 0.80
getEncryptionKeyFunction · 0.70
parseMethod · 0.65

Tested by

no test coverage detected