resolved greptile comments

This commit is contained in:
shivam 2026-02-12 18:06:33 -08:00
parent a8da002953
commit cfbf089204
4 changed files with 56 additions and 23 deletions

View file

@ -1,5 +1,6 @@
import asyncio
import copy
import logging
import time
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
@ -916,13 +917,14 @@ async def add_litellm_data_to_request( # noqa: PLR0915
cache_dict = parse_cache_control(cache_control_header)
data["ttl"] = cache_dict.get("s-maxage")
verbose_proxy_logger.debug(
"receiving data: %s",
{
k: (_mask_secret_fields_for_logging(v) if k == "secret_fields" else v)
for k, v in data.items()
},
)
if verbose_proxy_logger.isEnabledFor(logging.DEBUG):
verbose_proxy_logger.debug(
"receiving data: %s",
{
k: (_mask_secret_fields_for_logging(v) if k == "secret_fields" else v)
for k, v in data.items()
},
)
# Parse metadata if it's a string (e.g., from multipart/form-data)
if "metadata" in data and data["metadata"] is not None:
@ -1149,13 +1151,14 @@ async def add_litellm_data_to_request( # noqa: PLR0915
user_api_key_dict=user_api_key_dict,
)
verbose_proxy_logger.debug(
"[PROXY] returned data from litellm_pre_call_utils: %s",
{
k: (_mask_secret_fields_for_logging(v) if k == "secret_fields" else v)
for k, v in data.items()
},
)
if verbose_proxy_logger.isEnabledFor(logging.DEBUG):
verbose_proxy_logger.debug(
"[PROXY] returned data from litellm_pre_call_utils: %s",
{
k: (_mask_secret_fields_for_logging(v) if k == "secret_fields" else v)
for k, v in data.items()
},
)
## ENFORCED PARAMS CHECK
# loop through each enforced param

View file

@ -9842,17 +9842,25 @@ async def async_queue_request(
data["proxy_server_request"] = {
"url": str(request.url),
"method": request.method,
"headers": clean_headers(request.headers),
"headers": clean_headers(
request.headers,
litellm_key_header_name=(
general_settings.get("litellm_key_header_name")
if general_settings is not None
else None
),
),
"body": copy.copy(data), # use copy instead of deepcopy
}
verbose_proxy_logger.debug(
"receiving data: %s",
{
k: (_mask_secret_fields_for_logging(v) if k == "secret_fields" else v)
for k, v in data.items()
},
)
if verbose_proxy_logger.isEnabledFor(logging.DEBUG):
verbose_proxy_logger.debug(
"receiving data: %s",
{
k: (_mask_secret_fields_for_logging(v) if k == "secret_fields" else v)
for k, v in data.items()
},
)
data["model"] = (
general_settings.get("completion_model", None) # server default
or user_model # model name passed via cli args

View file

@ -7268,7 +7268,7 @@ def get_valid_models(
_SENSITIVE_HEADER_KEYS = frozenset(
{"authorization", "x-api-key", "api-key", "x-litellm-api-key"}
{"authorization", "x-api-key", "api-key", "x-litellm-api-key", "x-goog-api-key", "ocp-apim-subscription-key"}
)

View file

@ -71,6 +71,28 @@ class TestMaskSecretFieldsForLogging:
result = _mask_secret_fields_for_logging(secret_fields)
assert "****" in result["raw_headers"]["API-Key"]
def test_should_mask_google_ai_studio_key_header(self):
secret_fields = {
"raw_headers": {
"x-goog-api-key": "AIzaSyB-some-long-google-api-key-1234567890",
"host": "localhost:4000",
}
}
result = _mask_secret_fields_for_logging(secret_fields)
assert "****" in result["raw_headers"]["x-goog-api-key"]
assert result["raw_headers"]["host"] == "localhost:4000"
def test_should_mask_azure_apim_subscription_key_header(self):
secret_fields = {
"raw_headers": {
"Ocp-Apim-Subscription-Key": "abcdef1234567890abcdef1234567890",
"host": "localhost:4000",
}
}
result = _mask_secret_fields_for_logging(secret_fields)
assert "****" in result["raw_headers"]["Ocp-Apim-Subscription-Key"]
assert result["raw_headers"]["host"] == "localhost:4000"
def test_should_mask_short_auth_values(self):
secret_fields = {
"raw_headers": {