From 63ae07ef36d8ed5c2e2d0cd65415a395e911a467 Mon Sep 17 00:00:00 2001 From: Tymoteusz Czech <2625371+Tymek@users.noreply.github.com> Date: Mon, 27 Jan 2025 14:24:57 +0100 Subject: [PATCH] feat: identificaiton headers --- UnleashClient/__init__.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/UnleashClient/__init__.py b/UnleashClient/__init__.py index 2cb7dc6..2481251 100644 --- a/UnleashClient/__init__.py +++ b/UnleashClient/__init__.py @@ -21,6 +21,8 @@ METRIC_LAST_SENT_TIME, REQUEST_RETRIES, REQUEST_TIMEOUT, + SDK_NAME, + SDK_VERSION, ) from UnleashClient.events import UnleashEvent, UnleashEventType from UnleashClient.loader import load_features @@ -108,6 +110,7 @@ def __init__( self.unleash_app_name = app_name self.unleash_environment = environment self.unleash_instance_id = instance_id + self.unleash_connection_id = str(uuid.uuid4()) self.unleash_refresh_interval = refresh_interval self.unleash_request_timeout = request_timeout self.unleash_request_retries = request_retries @@ -211,12 +214,19 @@ def initialize_client(self, fetch_toggles: bool = True) -> None: if not self.is_initialized: # pylint: disable=no-else-raise try: + headers = { # SDK identification headers + **self.unleash_custom_headers, + "x-unleash-connection-id": self.unleash_connection_id, + "x-unleash-appname": self.unleash_app_name, + "x-unleash-sdk": f"{SDK_NAME}:{SDK_VERSION}", + } + # Setup metrics_args = { "url": self.unleash_url, "app_name": self.unleash_app_name, "instance_id": self.unleash_instance_id, - "custom_headers": self.unleash_custom_headers, + "custom_headers": headers, "custom_options": self.unleash_custom_options, "request_timeout": self.unleash_request_timeout, "engine": self.engine, @@ -229,7 +239,7 @@ def initialize_client(self, fetch_toggles: bool = True) -> None: self.unleash_app_name, self.unleash_instance_id, self.unleash_metrics_interval, - self.unleash_custom_headers, + headers, self.unleash_custom_options, self.strategy_mapping, self.unleash_request_timeout, @@ -240,7 +250,7 @@ def initialize_client(self, fetch_toggles: bool = True) -> None: "url": self.unleash_url, "app_name": self.unleash_app_name, "instance_id": self.unleash_instance_id, - "custom_headers": self.unleash_custom_headers, + "custom_headers": headers, "custom_options": self.unleash_custom_options, "cache": self.cache, "engine": self.engine,