From 5ed4bee1b367927b4af2eba640218677b415e233 Mon Sep 17 00:00:00 2001 From: Amit Joshi Date: Wed, 15 Apr 2026 17:38:01 +0530 Subject: [PATCH] Fix missing telemetry context fields for web extension events PR #1490 removed tenantId, websiteId, dataSource, and schema from the WEB_EXTENSION_INIT_QUERY_PARAMETERS telemetry event but oneDSLogger still reads them to populate global context. This caused these fields to be empty for all web extension events. Restore them sourced from WebExtensionContext which is already populated by initializeWebsiteDetails(). Co-Authored-By: Claude Opus 4.6 (1M context) --- .../client/telemetry/webExtensionTelemetry.ts | 4 ++++ .../integration/webExtensionTelemetry.test.ts | 17 ++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/web/client/telemetry/webExtensionTelemetry.ts b/src/web/client/telemetry/webExtensionTelemetry.ts index e5e0dc41d..8e6162453 100644 --- a/src/web/client/telemetry/webExtensionTelemetry.ts +++ b/src/web/client/telemetry/webExtensionTelemetry.ts @@ -9,6 +9,7 @@ import { webExtensionTelemetryEventNames } from "../../../common/OneDSLoggerTele import { IPortalWebExtensionInitQueryParametersTelemetryData, IWebExtensionAPITelemetryData, IWebExtensionExceptionTelemetryData, IWebExtensionInitPathTelemetryData, IWebExtensionPerfTelemetryData } from "../../../common/OneDSLoggerTelemetry/web/client/webExtensionTelemetryInterface"; import { getEnvironmentIdFromUrl, isNullOrUndefined } from '../utilities/commonUtil'; import { oneDSLoggerWrapper } from "../../../common/OneDSLoggerTelemetry/oneDSLoggerWrapper"; +import WebExtensionContext from "../WebExtensionContext"; export class WebExtensionTelemetry { @@ -33,7 +34,10 @@ export class WebExtensionTelemetry { eventName: webExtensionTelemetryEventNames.WEB_EXTENSION_INIT_QUERY_PARAMETERS, properties: { orgId: queryParamsMap.get(queryParameters.ORG_ID), + tenantId: WebExtensionContext.tenantId, + websiteId: WebExtensionContext.websiteId, portalId: queryParamsMap.get(queryParameters.PORTAL_ID), + schema: WebExtensionContext.schema, referrerSessionId: queryParamsMap.get(queryParameters.REFERRER_SESSION_ID), referrer: queryParamsMap.get(queryParameters.REFERRER), geo: queryParamsMap.get(queryParameters.GEO), diff --git a/src/web/client/test/integration/webExtensionTelemetry.test.ts b/src/web/client/test/integration/webExtensionTelemetry.test.ts index d1b44ee78..c3d3fba5a 100644 --- a/src/web/client/test/integration/webExtensionTelemetry.test.ts +++ b/src/web/client/test/integration/webExtensionTelemetry.test.ts @@ -4,13 +4,14 @@ */ import sinon, { stub, assert } from "sinon"; -import { queryParameters } from "../../common/constants"; +import { portalSchemaVersion, queryParameters } from "../../common/constants"; import { sanitizeURL } from "../../utilities/urlBuilderUtil"; import { webExtensionTelemetryEventNames } from "../../../../common/OneDSLoggerTelemetry/web/client/webExtensionTelemetryEvents"; import { WebExtensionTelemetry } from "../../telemetry/webExtensionTelemetry"; import * as commonUtil from "../../utilities/commonUtil"; import { expect } from "chai"; import { oneDSLoggerWrapper } from "../../../../common/OneDSLoggerTelemetry/oneDSLoggerWrapper"; +import WebExtensionContext from "../../WebExtensionContext"; describe("webExtensionTelemetry", () => { let traceInfoStub: sinon.SinonStub; @@ -86,6 +87,10 @@ describe("webExtensionTelemetry", () => { it("sendExtensionInitQueryParametersTelemetry_whenQueryParamHaveAllTheKey_shouldCallSendTelemetryEventWithValidData", () => { //Act + WebExtensionContext.tenantId = "a1103406-182b-4498-80f0-e1a5d92e9f82"; + WebExtensionContext.websiteId = "783ee9d0-4199-4e5a-aece-ea87b9d83f77"; + WebExtensionContext.schema = portalSchemaVersion.V2; + const queryParamsMap = new Map([ [queryParameters.ORG_ID, "e5dce21c-f85f-4849-b699-920c0fad5fbf"], [queryParameters.PORTAL_ID, "36429b2e-8b29-4020-8493-bd5e277444d8"], @@ -106,7 +111,10 @@ describe("webExtensionTelemetry", () => { const properties = { orgId: queryParamsMap.get(queryParameters.ORG_ID), + tenantId: "a1103406-182b-4498-80f0-e1a5d92e9f82", + websiteId: "783ee9d0-4199-4e5a-aece-ea87b9d83f77", portalId: queryParamsMap.get(queryParameters.PORTAL_ID), + schema: portalSchemaVersion.V2, referrerSessionId: queryParamsMap.get( queryParameters.REFERRER_SESSION_ID ), @@ -139,11 +147,18 @@ describe("webExtensionTelemetry", () => { it("sendExtensionInitQueryParametersTelemetry_whenQueryParamsMapIsEmpty_shouldNotThrowException", () => { //Act + WebExtensionContext.tenantId = ""; + WebExtensionContext.websiteId = ""; + WebExtensionContext.schema = undefined; + const queryParamsMap = new Map([]); const properties = { orgId: queryParamsMap.get(queryParameters.ORG_ID), + tenantId: "", + websiteId: "", portalId: queryParamsMap.get(queryParameters.PORTAL_ID), + schema: undefined, referrerSessionId: queryParamsMap.get( queryParameters.REFERRER_SESSION_ID ),