diff --git a/server/channels/app/platform/service.go b/server/channels/app/platform/service.go index 11fbfd2cac..b488c56297 100644 --- a/server/channels/app/platform/service.go +++ b/server/channels/app/platform/service.go @@ -381,6 +381,13 @@ func (ps *PlatformService) ShutdownConfig() error { func (ps *PlatformService) SetTelemetryId(id string) { ps.telemetryId = id + + ps.PostTelemetryIdHook() +} + +// PostTelemetryIdHook triggers necessary events to propagate telemtery ID +func (ps *PlatformService) PostTelemetryIdHook() { + ps.regenerateClientConfig() } func (ps *PlatformService) SetLogger(logger *mlog.Logger) { diff --git a/server/channels/app/platform/service_test.go b/server/channels/app/platform/service_test.go index 1110e9584b..0abdd08b4f 100644 --- a/server/channels/app/platform/service_test.go +++ b/server/channels/app/platform/service_test.go @@ -168,3 +168,19 @@ func TestShutdown(t *testing.T) { require.Zero(t, atomic.LoadInt32(&th.Service.goroutineCount)) }) } + +func TestSetTelemetryId(t *testing.T) { + t.Run("ensure client config is regenerated after setting the telemetry id", func(t *testing.T) { + th := Setup(t) + defer th.TearDown() + + clientConfig := th.Service.LimitedClientConfig() + require.Empty(t, clientConfig["DiagnosticId"]) + + id := model.NewId() + th.Service.SetTelemetryId(id) + + clientConfig = th.Service.LimitedClientConfig() + require.Equal(t, clientConfig["DiagnosticId"], id) + }) +} diff --git a/server/platform/services/telemetry/telemetry.go b/server/platform/services/telemetry/telemetry.go index a2618c3043..ccbed22744 100644 --- a/server/platform/services/telemetry/telemetry.go +++ b/server/platform/services/telemetry/telemetry.go @@ -146,7 +146,7 @@ func (ts *TelemetryService) ensureTelemetryID() error { var err error for i := 0; i < DBAccessAttempts; i++ { - ts.log.Info("Ensuring the telemetry ID", mlog.String("id", id)) + ts.log.Info("Ensuring the telemetry ID..") systemID := &model.System{Name: model.SystemTelemetryId, Value: id} systemID, err = ts.dbStore.System().InsertIfExists(systemID) if err != nil { @@ -156,6 +156,7 @@ func (ts *TelemetryService) ensureTelemetryID() error { } ts.TelemetryID = systemID.Value + ts.log.Info("telemetry ID is set", mlog.String("id", ts.TelemetryID)) return nil }