diff --git a/packages/cli/src/credentials/oauth2Credential.api.ts b/packages/cli/src/credentials/oauth2Credential.api.ts index e3fb2c0d2..e3767a233 100644 --- a/packages/cli/src/credentials/oauth2Credential.api.ts +++ b/packages/cli/src/credentials/oauth2Credential.api.ts @@ -78,12 +78,14 @@ oauth2CredentialController.get( throw new ResponseHelper.InternalServerError((error as Error).message); } + const credentialType = (credential as unknown as ICredentialsEncrypted).type; + const mode: WorkflowExecuteMode = 'internal'; const timezone = config.getEnv('generic.timezone'); const credentialsHelper = new CredentialsHelper(encryptionKey); const decryptedDataOriginal = await credentialsHelper.getDecrypted( credential as INodeCredentialsDetails, - (credential as unknown as ICredentialsEncrypted).type, + credentialType, mode, timezone, true, @@ -91,13 +93,17 @@ oauth2CredentialController.get( // At some point in the past we saved hidden scopes to credentials (but shouldn't) // Delete scope before applying defaults to make sure new scopes are present on reconnect - if (decryptedDataOriginal?.scope) { + if ( + decryptedDataOriginal?.scope && + credentialType.includes('OAuth2') && + !['oAuth2Api'].includes(credentialType) + ) { delete decryptedDataOriginal.scope; } const oauthCredentials = credentialsHelper.applyDefaultsAndOverwrites( decryptedDataOriginal, - (credential as unknown as ICredentialsEncrypted).type, + credentialType, mode, timezone, ); @@ -128,7 +134,7 @@ oauth2CredentialController.get( // Encrypt the data const credentials = new Credentials( credential as INodeCredentialsDetails, - (credential as unknown as ICredentialsEncrypted).type, + credentialType, (credential as unknown as ICredentialsEncrypted).nodesAccess, ); decryptedDataOriginal.csrfSecret = csrfSecret;