From 1e269318456c1bd623efb05a6e6bdc91285e0280 Mon Sep 17 00:00:00 2001 From: Matous Jobanek Date: Wed, 11 Feb 2026 16:14:08 +0100 Subject: [PATCH 1/2] fix Developer Sandbox telemetry Assisted-by: Cursor --- frontend/@types/console/index.d.ts | 2 ++ .../src/api/segment-analytics.ts | 4 +++- .../src/hooks/__tests__/useTelemetry.spec.ts | 10 +++++----- .../packages/console-shared/src/hooks/useTelemetry.ts | 5 +---- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/frontend/@types/console/index.d.ts b/frontend/@types/console/index.d.ts index 6e157fdf33e..63f8e7b151e 100644 --- a/frontend/@types/console/index.d.ts +++ b/frontend/@types/console/index.d.ts @@ -59,7 +59,9 @@ declare interface Window { // One of the following should be always available on prod env. SEGMENT_API_KEY: string; SEGMENT_PUBLIC_API_KEY: string; + // DevSandbox-specific configuration DEVSANDBOX_SEGMENT_API_KEY: string; + DEVSANDBOX: 'true' | 'false'; // Optional override for analytics.min.js script URL SEGMENT_JS_URL: string; // Additional telemetry options passed to Console frontend diff --git a/frontend/packages/console-dynamic-plugin-sdk/src/api/segment-analytics.ts b/frontend/packages/console-dynamic-plugin-sdk/src/api/segment-analytics.ts index 49298112c2d..179e38f676f 100644 --- a/frontend/packages/console-dynamic-plugin-sdk/src/api/segment-analytics.ts +++ b/frontend/packages/console-dynamic-plugin-sdk/src/api/segment-analytics.ts @@ -1,10 +1,12 @@ import { GetSegmentAnalytics } from '../extensions/console-types'; // Segment API key. Must be present for telemetry to be enabled. +// When running in DevSandbox mode, prefer the DevSandbox-specific key. const TELEMETRY_API_KEY = + (window.SERVER_FLAGS.telemetry?.DEVSANDBOX === 'true' && + window.SERVER_FLAGS.telemetry?.DEVSANDBOX_SEGMENT_API_KEY) || window.SERVER_FLAGS.telemetry?.SEGMENT_API_KEY || window.SERVER_FLAGS.telemetry?.SEGMENT_PUBLIC_API_KEY || - window.SERVER_FLAGS.telemetry?.DEVSANDBOX_SEGMENT_API_KEY || ''; // Segment "apiHost" parameter, should be like "api.segment.io/v1" diff --git a/frontend/packages/console-shared/src/hooks/__tests__/useTelemetry.spec.ts b/frontend/packages/console-shared/src/hooks/__tests__/useTelemetry.spec.ts index d8916b714dc..8a5e20cef2d 100644 --- a/frontend/packages/console-shared/src/hooks/__tests__/useTelemetry.spec.ts +++ b/frontend/packages/console-shared/src/hooks/__tests__/useTelemetry.spec.ts @@ -105,7 +105,7 @@ describe('getClusterProperties', () => { expect(getClusterProperties().clusterType).toBe('TEST'); }); - it('returns DEVSANDBOX when CLUSTER_TYPE is "OSD" but and DEVSANDBOX is "true"', () => { + it('returns DEVSANDBOX when DEVSANDBOX is "true" regardless of CLUSTER_TYPE', () => { window.SERVER_FLAGS = { ...originServerFlags, telemetry: { CLUSTER_TYPE: 'OSD', DEVSANDBOX: 'true' }, @@ -113,15 +113,15 @@ describe('getClusterProperties', () => { expect(getClusterProperties().clusterType).toBe('DEVSANDBOX'); }); - it('returns the clusterType that it is configured if CLUSTER_TYPE is not OSD (in the future) but DEVSANDBOX is still "true"', () => { + it('returns DEVSANDBOX when DEVSANDBOX is "true" even if CLUSTER_TYPE is a different value', () => { window.SERVER_FLAGS = { ...originServerFlags, telemetry: { CLUSTER_TYPE: 'a_FUTURE_DEVSANDBOX_KEY', DEVSANDBOX: 'true' }, }; - expect(getClusterProperties().clusterType).toBe('a_FUTURE_DEVSANDBOX_KEY'); + expect(getClusterProperties().clusterType).toBe('DEVSANDBOX'); }); - it('returns the clusterType that it is configured if CLUSTER_TYPE is OSD but DEVSANDBOX is not exactly "true"', () => { + it('returns the configured clusterType when DEVSANDBOX is not exactly "true"', () => { window.SERVER_FLAGS = { ...originServerFlags, telemetry: { CLUSTER_TYPE: 'OSD', DEVSANDBOX: 'false' }, @@ -207,7 +207,7 @@ describe('useTelemetry', () => { }); }); - it('calls the listener with clusterType DEVSANDBOX when CLUSTER_TYPE is OSD and DEVSANDBOX is "true"', () => { + it('calls the listener with clusterType DEVSANDBOX when DEVSANDBOX is "true"', () => { window.SERVER_FLAGS = { ...originServerFlags, consoleVersion: 'x.y.z', diff --git a/frontend/packages/console-shared/src/hooks/useTelemetry.ts b/frontend/packages/console-shared/src/hooks/useTelemetry.ts index dcd70902066..959427fd77b 100644 --- a/frontend/packages/console-shared/src/hooks/useTelemetry.ts +++ b/frontend/packages/console-shared/src/hooks/useTelemetry.ts @@ -40,10 +40,7 @@ export const getClusterProperties = () => { const clusterProperties: ClusterProperties = {}; clusterProperties.clusterId = window.SERVER_FLAGS.telemetry?.CLUSTER_ID; clusterProperties.clusterType = window.SERVER_FLAGS.telemetry?.CLUSTER_TYPE; - if ( - window.SERVER_FLAGS.telemetry?.CLUSTER_TYPE === 'OSD' && - window.SERVER_FLAGS.telemetry?.DEVSANDBOX === 'true' - ) { + if (window.SERVER_FLAGS.telemetry?.DEVSANDBOX === 'true') { clusterProperties.clusterType = 'DEVSANDBOX'; } // Prefer to report the OCP version (releaseVersion) if available. From 25f426cfbf19592d800cd5e72063e2864561b890 Mon Sep 17 00:00:00 2001 From: Matous Jobanek Date: Thu, 12 Feb 2026 07:02:04 +0100 Subject: [PATCH 2/2] use ROSA instead of OSD --- .../src/hooks/__tests__/useTelemetry.spec.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/packages/console-shared/src/hooks/__tests__/useTelemetry.spec.ts b/frontend/packages/console-shared/src/hooks/__tests__/useTelemetry.spec.ts index 8a5e20cef2d..f0c0e1c614f 100644 --- a/frontend/packages/console-shared/src/hooks/__tests__/useTelemetry.spec.ts +++ b/frontend/packages/console-shared/src/hooks/__tests__/useTelemetry.spec.ts @@ -108,7 +108,7 @@ describe('getClusterProperties', () => { it('returns DEVSANDBOX when DEVSANDBOX is "true" regardless of CLUSTER_TYPE', () => { window.SERVER_FLAGS = { ...originServerFlags, - telemetry: { CLUSTER_TYPE: 'OSD', DEVSANDBOX: 'true' }, + telemetry: { CLUSTER_TYPE: 'ROSA', DEVSANDBOX: 'true' }, }; expect(getClusterProperties().clusterType).toBe('DEVSANDBOX'); }); @@ -124,9 +124,9 @@ describe('getClusterProperties', () => { it('returns the configured clusterType when DEVSANDBOX is not exactly "true"', () => { window.SERVER_FLAGS = { ...originServerFlags, - telemetry: { CLUSTER_TYPE: 'OSD', DEVSANDBOX: 'false' }, + telemetry: { CLUSTER_TYPE: 'ROSA', DEVSANDBOX: 'false' }, }; - expect(getClusterProperties().clusterType).toBe('OSD'); + expect(getClusterProperties().clusterType).toBe('ROSA'); }); }); @@ -212,7 +212,7 @@ describe('useTelemetry', () => { ...originServerFlags, consoleVersion: 'x.y.z', telemetry: { - CLUSTER_TYPE: 'OSD', + CLUSTER_TYPE: 'ROSA', DEVSANDBOX: 'true', STATE: CLUSTER_TELEMETRY_ANALYTICS.ENFORCE, },