From 806448a7f95fc17ba49e2b3dff5fb05554062ff2 Mon Sep 17 00:00:00 2001 From: Tuan Dang Date: Thu, 13 Apr 2023 22:30:42 +0300 Subject: [PATCH] Correct service token telemetry depending on creating entity --- backend/src/helpers/auth.ts | 2 +- backend/src/services/TelemetryService.ts | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/backend/src/helpers/auth.ts b/backend/src/helpers/auth.ts index b9c4e8232..9cbe82e34 100644 --- a/backend/src/helpers/auth.ts +++ b/backend/src/helpers/auth.ts @@ -157,7 +157,7 @@ const getAuthSTDPayload = async ({ }, { new: true }) - .select('+encryptedKey +iv +tag').populate('user'); + .select('+encryptedKey +iv +tag').populate('user serviceAccount'); if (!serviceTokenData) throw ServiceTokenDataNotFoundError({ message: 'Failed to find service token data' }); diff --git a/backend/src/services/TelemetryService.ts b/backend/src/services/TelemetryService.ts index 0566439b4..248ad3633 100644 --- a/backend/src/services/TelemetryService.ts +++ b/backend/src/services/TelemetryService.ts @@ -8,7 +8,9 @@ import { } from '../config'; import { IUser, + User, IServiceAccount, + ServiceAccount, IServiceTokenData } from '../models'; import { @@ -56,7 +58,7 @@ class Telemetry { }: { user?: IUser; serviceAccount?: IServiceAccount; - serviceTokenData?: IServiceTokenData; + serviceTokenData?: any; // TODO: fix (it's ServiceTokenData with user populated) }) => { let distinctId = ''; @@ -65,11 +67,13 @@ class Telemetry { } if (serviceAccount) { - distinctId = `sa.${serviceAccount._id}`; + distinctId = `sa.${serviceAccount._id.toString()}`; } - - if (serviceTokenData) { - distinctId = `st.${serviceTokenData._id}`; + + if (serviceTokenData?.user && serviceTokenData?.user instanceof User) { + distinctId = serviceTokenData.user.email; + } else if (serviceTokenData?.serviceAccount && serviceTokenData?.serviceAccount instanceof ServiceAccount) { + distinctId = `sa.${serviceTokenData.serviceAccount._id.toString()}`; } if (distinctId === '') {