From c1be1bfa6c3debcafdcf66f6612ed579b574a623 Mon Sep 17 00:00:00 2001 From: Nikhil Sinha Date: Thu, 9 Jul 2026 09:40:49 +0700 Subject: [PATCH] fix: middleware for multi-tenant - add `x-p-tenant` header only for multi-tenant deployment - extract tenant id from `x-p-tenant` (if api key user sends) or `intra-cluster-tenant` (prism forwards to queriers) - tenant id to default for single tenant deployment --- src/handlers/http/middleware.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/handlers/http/middleware.rs b/src/handlers/http/middleware.rs index 6dbb93f25..5d99a0d6a 100644 --- a/src/handlers/http/middleware.rs +++ b/src/handlers/http/middleware.rs @@ -159,7 +159,9 @@ where let tenant_id = req .headers() .get(TENANT_ID) + .or_else(|| req.headers().get("intra-cluster-tenant")) .and_then(|v| v.to_str().ok()) + .filter(|tenant| !tenant.eq(&DEFAULT_TENANT)) .map(String::from); // an optional error to track the presence of CORRECT tenant header in case of ingestion @@ -186,10 +188,12 @@ where permissions, &user.tenant, ); - req.headers_mut().insert( - HeaderName::from_static(TENANT_ID), - HeaderValue::from_str(tenant).unwrap(), - ); + if PARSEABLE.options.is_multi_tenant() { + req.headers_mut().insert( + HeaderName::from_static(TENANT_ID), + HeaderValue::from_str(tenant).unwrap(), + ); + } req.extensions_mut().insert(session_key); Some(session_id) } @@ -311,7 +315,7 @@ fn find_api_key_user(api_key_value: &str, tenant_id: &Option) -> Option< let tenant = if PARSEABLE.options.is_multi_tenant() { tenant_id.as_deref()? } else { - tenant_id.as_deref().unwrap_or(DEFAULT_TENANT) + DEFAULT_TENANT }; let users_guard = users();