From 47967b99e916780e5977d56a1cf6cdbcfa874e98 Mon Sep 17 00:00:00 2001 From: Hassieb Pakzad <68423100+hassiebp@users.noreply.github.com> Date: Thu, 16 Oct 2025 17:49:56 +0200 Subject: [PATCH 1/5] fix(client): HTTP headers concatenated by dashes instead of snakecase --- langfuse/_client/span_processor.py | 4 ++-- langfuse/_utils/request.py | 4 ++-- tests/test_additional_headers_simple.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/langfuse/_client/span_processor.py b/langfuse/_client/span_processor.py index baa72360c..4bc73bb27 100644 --- a/langfuse/_client/span_processor.py +++ b/langfuse/_client/span_processor.py @@ -83,8 +83,8 @@ def __init__( # Prepare default headers default_headers = { "Authorization": basic_auth_header, - "x_langfuse_sdk_name": "python", - "x_langfuse_sdk_version": langfuse_version, + "x-langfuse-sdk-name": "python", + "x-langfuse-sdk-version": langfuse_version, "x_langfuse_public_key": public_key, } diff --git a/langfuse/_utils/request.py b/langfuse/_utils/request.py index b106cee2f..43c1ca7e6 100644 --- a/langfuse/_utils/request.py +++ b/langfuse/_utils/request.py @@ -41,8 +41,8 @@ def generate_headers(self) -> dict: f"{self._public_key}:{self._secret_key}".encode("utf-8") ).decode("ascii"), "Content-Type": "application/json", - "x_langfuse_sdk_name": "python", - "x_langfuse_sdk_version": self._version, + "x-langfuse-sdk-name": "python", + "x-langfuse-sdk-version": self._version, "x_langfuse_public_key": self._public_key, } diff --git a/tests/test_additional_headers_simple.py b/tests/test_additional_headers_simple.py index 4298a3ba5..716425450 100644 --- a/tests/test_additional_headers_simple.py +++ b/tests/test_additional_headers_simple.py @@ -156,7 +156,7 @@ def test_span_processor_has_additional_headers_in_otel_exporter(self): # Verify default headers are still present assert "Authorization" in exporter._headers - assert "x_langfuse_sdk_name" in exporter._headers + assert "x-langfuse-sdk-name" in exporter._headers assert "x_langfuse_public_key" in exporter._headers # Check that our override worked @@ -179,5 +179,5 @@ def test_span_processor_none_additional_headers_works(self): # Verify default headers are present assert "Authorization" in exporter._headers - assert "x_langfuse_sdk_name" in exporter._headers + assert "x-langfuse-sdk-name" in exporter._headers assert "x_langfuse_public_key" in exporter._headers From 7d1f0f67740ce172b88dab5b08e484303f06b6e3 Mon Sep 17 00:00:00 2001 From: Hassieb Pakzad <68423100+hassiebp@users.noreply.github.com> Date: Thu, 16 Oct 2025 18:52:57 +0200 Subject: [PATCH 2/5] Update langfuse/_client/span_processor.py Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- langfuse/_client/span_processor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langfuse/_client/span_processor.py b/langfuse/_client/span_processor.py index 4bc73bb27..369d5ff9e 100644 --- a/langfuse/_client/span_processor.py +++ b/langfuse/_client/span_processor.py @@ -85,7 +85,7 @@ def __init__( "Authorization": basic_auth_header, "x-langfuse-sdk-name": "python", "x-langfuse-sdk-version": langfuse_version, - "x_langfuse_public_key": public_key, + "x-langfuse-public-key": public_key, } # Merge additional headers if provided From 7218b379db304778a3de8a4c9f025a4632a114b3 Mon Sep 17 00:00:00 2001 From: Hassieb Pakzad <68423100+hassiebp@users.noreply.github.com> Date: Thu, 16 Oct 2025 18:53:20 +0200 Subject: [PATCH 3/5] Update tests/test_additional_headers_simple.py Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- tests/test_additional_headers_simple.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_additional_headers_simple.py b/tests/test_additional_headers_simple.py index 716425450..62908c31f 100644 --- a/tests/test_additional_headers_simple.py +++ b/tests/test_additional_headers_simple.py @@ -157,7 +157,7 @@ def test_span_processor_has_additional_headers_in_otel_exporter(self): # Verify default headers are still present assert "Authorization" in exporter._headers assert "x-langfuse-sdk-name" in exporter._headers - assert "x_langfuse_public_key" in exporter._headers + assert "x-langfuse-public-key" in exporter._headers # Check that our override worked assert exporter._headers["X-Override-Default"] == "override-value" From 3e387fb8f1ef61430ad666bcd92fa3486ef9a0c9 Mon Sep 17 00:00:00 2001 From: Hassieb Pakzad <68423100+hassiebp@users.noreply.github.com> Date: Thu, 16 Oct 2025 18:53:39 +0200 Subject: [PATCH 4/5] Update langfuse/_utils/request.py Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- langfuse/_utils/request.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langfuse/_utils/request.py b/langfuse/_utils/request.py index 43c1ca7e6..182fe3ffe 100644 --- a/langfuse/_utils/request.py +++ b/langfuse/_utils/request.py @@ -43,7 +43,7 @@ def generate_headers(self) -> dict: "Content-Type": "application/json", "x-langfuse-sdk-name": "python", "x-langfuse-sdk-version": self._version, - "x_langfuse_public_key": self._public_key, + "x-langfuse-public-key": self._public_key, } def batch_post(self, **kwargs: Any) -> httpx.Response: From 4b627c57ae8e67e2128200fb027351da81bf55ee Mon Sep 17 00:00:00 2001 From: Hassieb Pakzad <68423100+hassiebp@users.noreply.github.com> Date: Thu, 16 Oct 2025 18:53:50 +0200 Subject: [PATCH 5/5] Update tests/test_additional_headers_simple.py Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- tests/test_additional_headers_simple.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_additional_headers_simple.py b/tests/test_additional_headers_simple.py index 62908c31f..8a1d07134 100644 --- a/tests/test_additional_headers_simple.py +++ b/tests/test_additional_headers_simple.py @@ -180,4 +180,4 @@ def test_span_processor_none_additional_headers_works(self): # Verify default headers are present assert "Authorization" in exporter._headers assert "x-langfuse-sdk-name" in exporter._headers - assert "x_langfuse_public_key" in exporter._headers + assert "x-langfuse-public-key" in exporter._headers