From 457be49d4e390857fa560a450e02c0175738df60 Mon Sep 17 00:00:00 2001 From: ao-anam Date: Fri, 23 May 2025 13:40:12 +0100 Subject: [PATCH] fix: pass client metadata to server --- src/lib/ClientError.ts | 2 ++ src/lib/constants.ts | 7 +++++++ src/modules/CoreApiRestClient.ts | 13 ++++++++++--- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/lib/ClientError.ts b/src/lib/ClientError.ts index a1ba222..39e5fac 100644 --- a/src/lib/ClientError.ts +++ b/src/lib/ClientError.ts @@ -1,3 +1,4 @@ +import { CLIENT_METADATA } from './constants'; export enum ErrorCode { CLIENT_ERROR_CODE_USAGE_LIMIT_REACHED = 'CLIENT_ERROR_CODE_USAGE_LIMIT_REACHED', CLIENT_ERROR_CODE_VALIDATION_ERROR = 'CLIENT_ERROR_CODE_VALIDATION_ERROR', @@ -72,6 +73,7 @@ export class ClientError extends Error { sendErrorMetric('client_error', code, { details, statusCode, + ...CLIENT_METADATA, }); } } diff --git a/src/lib/constants.ts b/src/lib/constants.ts index a3a2c2d..4e55a23 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -1,3 +1,5 @@ +import { version } from '../../package.json'; + // Core API export const DEFAULT_HEADERS = { 'Content-Type': 'application/json', @@ -14,3 +16,8 @@ export const CONNECTION_CLOSED_CODE_SIGNALLING_CLIENT_CONNECTION_FAILURE = 'CONNECTION_CLOSED_CODE_SIGNALLING_CLIENT_CONNECTION_FAILURE'; export const CONNECTION_CLOSED_CODE_WEBRTC_FAILURE = 'CONNECTION_CLOSED_CODE_WEBRTC_FAILURE'; + +export const CLIENT_METADATA = { + client: 'js-sdk', + version, +}; diff --git a/src/modules/CoreApiRestClient.ts b/src/modules/CoreApiRestClient.ts index 9e7fa0d..33844f8 100644 --- a/src/modules/CoreApiRestClient.ts +++ b/src/modules/CoreApiRestClient.ts @@ -1,5 +1,9 @@ import { ClientError, ErrorCode } from '../lib/ClientError'; -import { DEFAULT_API_BASE_URL, DEFAULT_API_VERSION } from '../lib/constants'; +import { + CLIENT_METADATA, + DEFAULT_API_BASE_URL, + DEFAULT_API_VERSION, +} from '../lib/constants'; import { CoreApiRestClientOptions, PersonaConfig, @@ -40,7 +44,6 @@ export class CoreApiRestClient { 400, ); } - // TODO: why do we need to get the unsafe session token here? this.sessionToken = await this.unsafe_getSessionToken(personaConfig); } @@ -51,7 +54,11 @@ export class CoreApiRestClient { 'Content-Type': 'application/json', Authorization: `Bearer ${this.sessionToken}`, }, - body: JSON.stringify({ personaConfig, sessionOptions }), + body: JSON.stringify({ + personaConfig, + sessionOptions, + clientMetadata: CLIENT_METADATA, + }), }); const data = await response.json();