From c2c023e3994f755033819c9ea3a4683730a5136e Mon Sep 17 00:00:00 2001 From: Adam Horodyski Date: Thu, 8 Jan 2026 12:50:38 +0100 Subject: [PATCH 1/5] add session url getters --- src/libs/Fullstory/index.native.ts | 4 ++++ src/libs/Fullstory/index.ts | 7 +++++++ src/libs/Fullstory/types.ts | 5 +++++ 3 files changed, 16 insertions(+) diff --git a/src/libs/Fullstory/index.native.ts b/src/libs/Fullstory/index.native.ts index 04f99dedf1e3..e69058b65359 100644 --- a/src/libs/Fullstory/index.native.ts +++ b/src/libs/Fullstory/index.native.ts @@ -52,6 +52,10 @@ const FS: Fullstory = { getSessionId: () => { return FullStory.getCurrentSession(); }, + + getSessionURL: () => { + return FullStory.getCurrentSessionURL(); + }, }; export default FS; diff --git a/src/libs/Fullstory/index.ts b/src/libs/Fullstory/index.ts index 43273a942dbc..61328939c81a 100644 --- a/src/libs/Fullstory/index.ts +++ b/src/libs/Fullstory/index.ts @@ -94,6 +94,13 @@ const FS: Fullstory = { } return FullStory('getSessionAsync', {format: 'id'}); }, + + getSessionURL: async () => { + if (!isInitialized()) { + return; + } + return FullStory('getSessionAsync', {format: 'url'}); + }, }; export default FS; diff --git a/src/libs/Fullstory/types.ts b/src/libs/Fullstory/types.ts index 536d92588d00..798828629956 100644 --- a/src/libs/Fullstory/types.ts +++ b/src/libs/Fullstory/types.ts @@ -78,6 +78,11 @@ type Fullstory = { * Returns the current FullStory session ID. */ getSessionId: () => Promise; + + /** + * Returns the current FullStory session URL. + */ + getSessionURL: () => Promise; }; /** From c1be190ee1786e94603f268227d073e0c7bb79a1 Mon Sep 17 00:00:00 2001 From: Adam Horodyski Date: Thu, 8 Jan 2026 12:51:13 +0100 Subject: [PATCH 2/5] add current session url to sentry ctx --- src/Expensify.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Expensify.tsx b/src/Expensify.tsx index da34c896c8a5..fca69f13842c 100644 --- a/src/Expensify.tsx +++ b/src/Expensify.tsx @@ -233,11 +233,11 @@ function Expensify() { useEffect(() => { // Initialize Fullstory lib FS.init(userMetadata); - FS.getSessionId().then((sessionId) => { - if (!sessionId) { + FS.getSessionURL().then((url) => { + if (!url) { return; } - Sentry.setContext(CONST.TELEMETRY.CONTEXT_FULLSTORY, {sessionId}); + Sentry.setContext(CONST.TELEMETRY.CONTEXT_FULLSTORY, {url}); }); }, [userMetadata]); From 533e3ed5af1066c18d77871501f0ff44ddeeaec8 Mon Sep 17 00:00:00 2001 From: Adam Horodyski Date: Fri, 9 Jan 2026 16:02:19 +0100 Subject: [PATCH 3/5] allow sentry and fs --- src/libs/Fullstory/common.ts | 8 ++++---- src/libs/telemetry/middlewares/emailDomainFilter.ts | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/libs/Fullstory/common.ts b/src/libs/Fullstory/common.ts index 461d49897ab2..4cad38148f17 100644 --- a/src/libs/Fullstory/common.ts +++ b/src/libs/Fullstory/common.ts @@ -65,10 +65,10 @@ const getChatFSClass: GetChatFSClass = (report) => { }; const shouldInitializeFullstory: ShouldInitialize = (userMetadata, envName) => { - const isTestEmail = userMetadata.email !== undefined && userMetadata.email.startsWith('fullstory') && userMetadata.email.endsWith(CONST.EMAIL.QA_DOMAIN); - if ((CONST.ENVIRONMENT.PRODUCTION !== envName && !isTestEmail) || Str.extractEmailDomain(userMetadata.email ?? '') === CONST.EXPENSIFY_PARTNER_NAME) { - return false; - } + // const isTestEmail = userMetadata.email !== undefined && userMetadata.email.startsWith('fullstory') && userMetadata.email.endsWith(CONST.EMAIL.QA_DOMAIN); + // if ((CONST.ENVIRONMENT.PRODUCTION !== envName && !isTestEmail) || Str.extractEmailDomain(userMetadata.email ?? '') === CONST.EXPENSIFY_PARTNER_NAME) { + // return false; + // } return true; }; diff --git a/src/libs/telemetry/middlewares/emailDomainFilter.ts b/src/libs/telemetry/middlewares/emailDomainFilter.ts index 3550698beb43..58e483f307af 100644 --- a/src/libs/telemetry/middlewares/emailDomainFilter.ts +++ b/src/libs/telemetry/middlewares/emailDomainFilter.ts @@ -6,9 +6,9 @@ const emailDomainFilter: TelemetryBeforeSend = (event: TransactionEvent): Transa const email = event.user?.email; const lowerEmail = typeof email === 'string' ? email.toLowerCase() : ''; - if (lowerEmail !== 'applausetester@applause.expensifail.com' && (lowerEmail.endsWith(CONST.EMAIL.QA_DOMAIN) || lowerEmail.endsWith('applauseauto.com'))) { - return null; - } + // if (lowerEmail !== 'applausetester@applause.expensifail.com' && (lowerEmail.endsWith(CONST.EMAIL.QA_DOMAIN) || lowerEmail.endsWith('applauseauto.com'))) { + // return null; + // } return event; }; From 48d1ea6a5fdc67f7d492e8e26e080591ecf9e08d Mon Sep 17 00:00:00 2001 From: Adam Horodyski Date: Fri, 9 Jan 2026 19:36:06 +0100 Subject: [PATCH 4/5] Revert "allow sentry and fs" This reverts commit 533e3ed5af1066c18d77871501f0ff44ddeeaec8. --- src/libs/Fullstory/common.ts | 8 ++++---- src/libs/telemetry/middlewares/emailDomainFilter.ts | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/libs/Fullstory/common.ts b/src/libs/Fullstory/common.ts index 4cad38148f17..461d49897ab2 100644 --- a/src/libs/Fullstory/common.ts +++ b/src/libs/Fullstory/common.ts @@ -65,10 +65,10 @@ const getChatFSClass: GetChatFSClass = (report) => { }; const shouldInitializeFullstory: ShouldInitialize = (userMetadata, envName) => { - // const isTestEmail = userMetadata.email !== undefined && userMetadata.email.startsWith('fullstory') && userMetadata.email.endsWith(CONST.EMAIL.QA_DOMAIN); - // if ((CONST.ENVIRONMENT.PRODUCTION !== envName && !isTestEmail) || Str.extractEmailDomain(userMetadata.email ?? '') === CONST.EXPENSIFY_PARTNER_NAME) { - // return false; - // } + const isTestEmail = userMetadata.email !== undefined && userMetadata.email.startsWith('fullstory') && userMetadata.email.endsWith(CONST.EMAIL.QA_DOMAIN); + if ((CONST.ENVIRONMENT.PRODUCTION !== envName && !isTestEmail) || Str.extractEmailDomain(userMetadata.email ?? '') === CONST.EXPENSIFY_PARTNER_NAME) { + return false; + } return true; }; diff --git a/src/libs/telemetry/middlewares/emailDomainFilter.ts b/src/libs/telemetry/middlewares/emailDomainFilter.ts index 58e483f307af..3550698beb43 100644 --- a/src/libs/telemetry/middlewares/emailDomainFilter.ts +++ b/src/libs/telemetry/middlewares/emailDomainFilter.ts @@ -6,9 +6,9 @@ const emailDomainFilter: TelemetryBeforeSend = (event: TransactionEvent): Transa const email = event.user?.email; const lowerEmail = typeof email === 'string' ? email.toLowerCase() : ''; - // if (lowerEmail !== 'applausetester@applause.expensifail.com' && (lowerEmail.endsWith(CONST.EMAIL.QA_DOMAIN) || lowerEmail.endsWith('applauseauto.com'))) { - // return null; - // } + if (lowerEmail !== 'applausetester@applause.expensifail.com' && (lowerEmail.endsWith(CONST.EMAIL.QA_DOMAIN) || lowerEmail.endsWith('applauseauto.com'))) { + return null; + } return event; }; From d688db3c123067ca7afbc1273792b37ce275718e Mon Sep 17 00:00:00 2001 From: Adam Horodyski Date: Fri, 9 Jan 2026 21:47:12 +0100 Subject: [PATCH 5/5] fix jest mocks for fs --- jest/setupMockFullstoryLib.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/jest/setupMockFullstoryLib.ts b/jest/setupMockFullstoryLib.ts index 51a5f85b3af5..bed82a6a6be4 100644 --- a/jest/setupMockFullstoryLib.ts +++ b/jest/setupMockFullstoryLib.ts @@ -24,6 +24,7 @@ export default function mockFSLibrary() { consentAndIdentify: jest.fn(), anonymize: jest.fn(), getSessionId: jest.fn().mockResolvedValue(undefined), + getSessionURL: jest.fn().mockResolvedValue(undefined), }; }); }