fillCoderDesktopTelemetry fills out the provided event based on a Coder Desktop telemetry header on the request, if present.
(r *http.Request, event *telemetry.UserTailnetConnection, logger slog.Logger)
| 2351 | // fillCoderDesktopTelemetry fills out the provided event based on a Coder Desktop telemetry header on the request, if |
| 2352 | // present. |
| 2353 | func fillCoderDesktopTelemetry(r *http.Request, event *telemetry.UserTailnetConnection, logger slog.Logger) { |
| 2354 | // Parse desktop telemetry from header if it exists |
| 2355 | desktopTelemetryHeader := r.Header.Get(codersdk.CoderDesktopTelemetryHeader) |
| 2356 | if desktopTelemetryHeader != "" { |
| 2357 | var telemetryData codersdk.CoderDesktopTelemetry |
| 2358 | if err := telemetryData.FromHeader(desktopTelemetryHeader); err == nil { |
| 2359 | // Only set fields if they aren't empty |
| 2360 | if telemetryData.DeviceID != "" { |
| 2361 | event.DeviceID = &telemetryData.DeviceID |
| 2362 | } |
| 2363 | if telemetryData.DeviceOS != "" { |
| 2364 | event.DeviceOS = &telemetryData.DeviceOS |
| 2365 | } |
| 2366 | if telemetryData.CoderDesktopVersion != "" { |
| 2367 | event.CoderDesktopVersion = &telemetryData.CoderDesktopVersion |
| 2368 | } |
| 2369 | logger.Debug(r.Context(), "received desktop telemetry", |
| 2370 | slog.F("device_id", telemetryData.DeviceID), |
| 2371 | slog.F("device_os", telemetryData.DeviceOS), |
| 2372 | slog.F("desktop_version", telemetryData.CoderDesktopVersion)) |
| 2373 | } else { |
| 2374 | logger.Warn(r.Context(), "failed to parse desktop telemetry header", slog.Error(err)) |
| 2375 | } |
| 2376 | } |
| 2377 | } |
| 2378 | |
| 2379 | // createExternalAuthResponse creates an ExternalAuthResponse based on the |
| 2380 | // provider type. This is to support legacy `/workspaceagents/me/gitauth` |
no test coverage detected