From fa714b61be559eef317f0bea20f1bd8f2ce97557 Mon Sep 17 00:00:00 2001 From: Shelby <13246465+shelby-moore@users.noreply.github.com> Date: Tue, 16 Jun 2026 10:17:20 -0700 Subject: [PATCH] fix: region extract from konnect control plane endpoint (#10093) (cherry picked from commit 0cc0295207ac861e07609714f97fe06cff64c790) --- packages/insomnia/src/konnect/__tests__/transform.test.ts | 8 ++++++++ packages/insomnia/src/konnect/transform.ts | 6 ++++-- 2 files changed, 12 insertions(+), 2 deletions(-) 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}`);