From e35e0766219127656ba54d1ce34ca7fb35a21ae8 Mon Sep 17 00:00:00 2001 From: Evandro Myller Date: Tue, 14 Apr 2026 19:34:42 -0300 Subject: [PATCH 1/2] Send SDK name and version to the Flagsmith API on every request Co-Authored-By: Claude Opus 4.6 (1M context) --- FlagsmithClient/Classes/Internal/Router.swift | 6 ++++++ FlagsmithClient/Classes/Internal/SSEManager.swift | 1 + FlagsmithClient/Tests/RouterTests.swift | 3 +++ 3 files changed, 10 insertions(+) diff --git a/FlagsmithClient/Classes/Internal/Router.swift b/FlagsmithClient/Classes/Internal/Router.swift index 3fd7c85..bbdbcb8 100644 --- a/FlagsmithClient/Classes/Internal/Router.swift +++ b/FlagsmithClient/Classes/Internal/Router.swift @@ -11,6 +11,11 @@ import Foundation #endif enum Router: Sendable { + // x-release-please-start-version + private static let sdkVersion = "3.9.0" + // x-release-please-end + static let userAgent = "flagsmith-swift-ios-sdk/\(sdkVersion)" + private enum HTTPMethod: String { case get = "GET" case post = "POST" @@ -102,6 +107,7 @@ enum Router: Sendable { } request.addValue(apiKey, forHTTPHeaderField: "X-Environment-Key") request.addValue("application/json", forHTTPHeaderField: "Content-Type") + request.addValue(Router.userAgent, forHTTPHeaderField: "User-Agent") return request } diff --git a/FlagsmithClient/Classes/Internal/SSEManager.swift b/FlagsmithClient/Classes/Internal/SSEManager.swift index b760aad..1af0b1d 100644 --- a/FlagsmithClient/Classes/Internal/SSEManager.swift +++ b/FlagsmithClient/Classes/Internal/SSEManager.swift @@ -157,6 +157,7 @@ final class SSEManager: NSObject, URLSessionDataDelegate, @unchecked Sendable { request.setValue("text/event-stream, application/json; charset=utf-8", forHTTPHeaderField: "Accept") request.setValue("no-cache", forHTTPHeaderField: "Cache-Control") request.setValue("keep-alive", forHTTPHeaderField: "Connection") + request.setValue(Router.userAgent, forHTTPHeaderField: "User-Agent") completionHandler = completion dataTask = session.dataTask(with: request) diff --git a/FlagsmithClient/Tests/RouterTests.swift b/FlagsmithClient/Tests/RouterTests.swift index 5b34ec5..b4211e8 100644 --- a/FlagsmithClient/Tests/RouterTests.swift +++ b/FlagsmithClient/Tests/RouterTests.swift @@ -20,6 +20,9 @@ final class RouterTests: FlagsmithClientTestCase { XCTAssertEqual(request.url?.absoluteString, "https://edge.api.flagsmith.com/api/v1/flags/") XCTAssertTrue(request.allHTTPHeaderFields?.contains(where: { $0.key == "X-Environment-Key" }) ?? false) XCTAssertNil(request.httpBody) + // x-release-please-start-version + XCTAssertEqual(request.allHTTPHeaderFields?["User-Agent"], "flagsmith-swift-ios-sdk/3.9.0") + // x-release-please-end } func testGetIdentityRequest() throws { From 6654ed1292f45447495adcee592ac34263cbf0d3 Mon Sep 17 00:00:00 2001 From: Evandro Myller Date: Tue, 14 Apr 2026 19:34:45 -0300 Subject: [PATCH 2/2] Keep the reported SDK version current after each release Co-Authored-By: Claude Opus 4.6 (1M context) --- release-please-config.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/release-please-config.json b/release-please-config.json index c015c5a..6ce0bae 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -10,7 +10,9 @@ "prerelease": false, "include-component-in-tag": false, "extra-files": [ - "FlagsmithClient.podspec" + "FlagsmithClient.podspec", + "FlagsmithClient/Classes/Internal/Router.swift", + "FlagsmithClient/Tests/RouterTests.swift" ] } },