diff --git a/packages/insomnia/src/konnect/__tests__/transform.test.ts b/packages/insomnia/src/konnect/__tests__/transform.test.ts index c02188755e..5369494d1d 100644 --- a/packages/insomnia/src/konnect/__tests__/transform.test.ts +++ b/packages/insomnia/src/konnect/__tests__/transform.test.ts @@ -34,6 +34,14 @@ describe('extractRegionFromEndpoint', () => { expect(extractRegionFromEndpoint('https://def456.in.cp0.konghq.com')).toBe('in'); }); + it('extracts "eu" from a EU control plane endpoint with bare "cp" subdomain', () => { + expect(extractRegionFromEndpoint('https://xyz789.eu.cp.konghq.com')).toBe('eu'); + }); + + it('extracts "us" from a US control plane endpoint with bare "cp" subdomain', () => { + expect(extractRegionFromEndpoint('https://abc123.us.cp.konghq.com')).toBe('us'); + }); + it('defaults to "us" for a malformed URL', () => { expect(extractRegionFromEndpoint('not-a-url')).toBe('us'); }); diff --git a/packages/insomnia/src/konnect/transform.ts b/packages/insomnia/src/konnect/transform.ts index b842935401..ed07ae3124 100644 --- a/packages/insomnia/src/konnect/transform.ts +++ b/packages/insomnia/src/konnect/transform.ts @@ -57,15 +57,17 @@ export function sanitizeRoute(route: KonnectRoute): KonnectRoute { /** * Derives the Konnect region string from a control plane endpoint URL. * e.g. "https://abc123.us.cp0.konghq.com" → "us" + * e.g. "https://abc123.eu.cp.konghq.com" → "eu" + * e.g. "https://abc123.sg.cp.konghq.com" → "sg" * Falls back to "us" for unrecognised or malformed values. */ export function extractRegionFromEndpoint(endpoint: string): string { try { const hostname = new URL(endpoint).hostname; const parts = hostname.split('.'); - // Pattern: ..cp0.konghq.com + // Pattern: ..cp[N].konghq.com (e.g. cp0, cp, cp1) if (parts.length >= 4 && parts[parts.length - 2] === 'konghq' && parts[parts.length - 1] === 'com') { - if (parts[parts.length - 3] === 'cp0') { + if (/^cp\d*$/.test(parts[parts.length - 3])) { return parts[parts.length - 4]; } console.warn(`[konnect] Unexpected endpoint hostname format, defaulting region to "us": ${hostname}`);