diff --git a/packages/nodes-base/credentials/BitwardenApi.credentials.ts b/packages/nodes-base/credentials/BitwardenApi.credentials.ts index f63e00230d..f511f10789 100644 --- a/packages/nodes-base/credentials/BitwardenApi.credentials.ts +++ b/packages/nodes-base/credentials/BitwardenApi.credentials.ts @@ -51,5 +51,26 @@ export class BitwardenApi implements ICredentialType { }, }, }, + { + displayName: 'Region', + name: 'region', + type: 'options', + default: 'bitwarden.com', + options: [ + { + name: 'United States', + value: 'bitwarden.com', + }, + { + name: 'European Union', + value: 'bitwarden.eu', + }, + ], + displayOptions: { + show: { + environment: ['cloudHosted'], + }, + }, + }, ]; } diff --git a/packages/nodes-base/nodes/Bitwarden/GenericFunctions.ts b/packages/nodes-base/nodes/Bitwarden/GenericFunctions.ts index 0bb12eac99..f6c5ebc1d9 100644 --- a/packages/nodes-base/nodes/Bitwarden/GenericFunctions.ts +++ b/packages/nodes-base/nodes/Bitwarden/GenericFunctions.ts @@ -13,10 +13,10 @@ import { NodeApiError } from 'n8n-workflow'; * Return the access token URL based on the user's environment. */ async function getTokenUrl(this: IExecuteFunctions | ILoadOptionsFunctions) { - const { environment, domain } = await this.getCredentials('bitwardenApi'); + const { environment, domain, region } = await this.getCredentials('bitwardenApi'); return environment === 'cloudHosted' - ? 'https://identity.bitwarden.com/connect/token' + ? `https://identity.${region}/connect/token` : `${domain}/identity/connect/token`; } @@ -24,9 +24,9 @@ async function getTokenUrl(this: IExecuteFunctions | ILoadOptionsFunctions) { * Return the base API URL based on the user's environment. */ async function getBaseUrl(this: IExecuteFunctions | ILoadOptionsFunctions) { - const { environment, domain } = await this.getCredentials('bitwardenApi'); + const { environment, domain, region } = await this.getCredentials('bitwardenApi'); - return environment === 'cloudHosted' ? 'https://api.bitwarden.com' : `${domain}/api`; + return environment === 'cloudHosted' ? `https://api.${region}` : `${domain}/api`; } /**