Correct service token telemetry depending on creating entity

This commit is contained in:
Tuan Dang
2023-04-13 22:30:42 +03:00
parent 83ddba29e2
commit 806448a7f9
2 changed files with 10 additions and 6 deletions

View File

@@ -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' });

View File

@@ -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 === '') {