From c13ab85b1c343f6dfeee6c1862460fdaca2a3542 Mon Sep 17 00:00:00 2001 From: Christopher Kolstad Date: Fri, 13 Jun 2025 14:44:21 +0200 Subject: [PATCH] feat: report hostedBy and licenseType (#10141) Added two new fields to FeatureInfo (what gets reported as telemetry) reporting license type and hostedBy. Will be overriden in Enterprise. --- .../instance-stats/instance-stats-service.ts | 14 ++++++++++++++ src/lib/services/version-service.test.ts | 2 ++ src/lib/services/version-service.ts | 2 ++ 3 files changed, 18 insertions(+) diff --git a/src/lib/features/instance-stats/instance-stats-service.ts b/src/lib/features/instance-stats/instance-stats-service.ts index 7b1338d752..7632381300 100644 --- a/src/lib/features/instance-stats/instance-stats-service.ts +++ b/src/lib/features/instance-stats/instance-stats-service.ts @@ -433,6 +433,8 @@ export class InstanceStatsService { userActive, productionChanges, postgresVersion, + licenseType, + hostedBy, ] = await Promise.all([ this.getToggleCount(), this.getRegisteredUsers(), @@ -454,6 +456,8 @@ export class InstanceStatsService { this.getActiveUsers(), this.getProductionChanges(), this.postgresVersion(), + this.getLicenseType(), + this.getHostedBy(), ]); const versionInfo = await this.versionService.getVersionInfo(); @@ -487,10 +491,20 @@ export class InstanceStatsService { productionChanges60: productionChanges.last60, productionChanges90: productionChanges.last90, postgresVersion, + licenseType, + hostedBy, }; return featureInfo; } + getHostedBy(): string { + return 'self-hosted'; + } + + getLicenseType(): string { + return 'oss'; + } + featuresExported(): Promise { return this.memorize('searchEventsCountFeaturesExported', () => this.eventStore.searchEventsCount([ diff --git a/src/lib/services/version-service.test.ts b/src/lib/services/version-service.test.ts index b0f8f55ad0..f492b162bd 100644 --- a/src/lib/services/version-service.test.ts +++ b/src/lib/services/version-service.test.ts @@ -41,6 +41,8 @@ const fakeTelemetryData = { productionChanges60: 0, productionChanges90: 0, postgresVersion: '17.1 (Debian 17.1-1.pgdg120+1)', + licenseType: 'test', + hostedBy: 'self-hosted', }; test('yields current versions', async () => { diff --git a/src/lib/services/version-service.ts b/src/lib/services/version-service.ts index 18e9400293..8c665e994a 100644 --- a/src/lib/services/version-service.ts +++ b/src/lib/services/version-service.ts @@ -50,6 +50,8 @@ export interface IFeatureUsageInfo { productionChanges60: number; productionChanges90: number; postgresVersion: string; + licenseType: string; + hostedBy: string; } export default class VersionService {