feat: add forward_client_headers_to_llm_api to ConfigGeneralSettings

This commit is contained in:
shin-bot-litellm 2026-02-21 10:17:50 -08:00
parent afdf70be73
commit eb7c298eb4

View file

@ -1077,7 +1077,6 @@ class NewMCPServerRequest(LiteLLMPydanticObjectBase):
auth_type: Optional[MCPAuthType] = None
credentials: Optional[MCPCredentials] = None
url: Optional[str] = None
spec_path: Optional[str] = None
mcp_info: Optional[MCPInfo] = None
mcp_access_groups: List[str] = Field(default_factory=list)
allowed_tools: Optional[List[str]] = None
@ -1104,8 +1103,8 @@ class NewMCPServerRequest(LiteLLMPydanticObjectBase):
if not values.get("args"):
raise ValueError("args is required for stdio transport")
elif transport in [MCPTransport.http, MCPTransport.sse]:
if not values.get("url") and not values.get("spec_path"):
raise ValueError("url or spec_path is required for HTTP/SSE transport")
if not values.get("url"):
raise ValueError("url is required for HTTP/SSE transport")
return values
@model_validator(mode="before")
@ -1140,7 +1139,6 @@ class UpdateMCPServerRequest(LiteLLMPydanticObjectBase):
auth_type: Optional[MCPAuthType] = None
credentials: Optional[MCPCredentials] = None
url: Optional[str] = None
spec_path: Optional[str] = None
mcp_info: Optional[MCPInfo] = None
mcp_access_groups: List[str] = Field(default_factory=list)
allowed_tools: Optional[List[str]] = None
@ -1167,8 +1165,8 @@ class UpdateMCPServerRequest(LiteLLMPydanticObjectBase):
if not values.get("args"):
raise ValueError("args is required for stdio transport")
elif transport in [MCPTransport.http, MCPTransport.sse]:
if not values.get("url") and not values.get("spec_path"):
raise ValueError("url or spec_path is required for HTTP/SSE transport")
if not values.get("url"):
raise ValueError("url is required for HTTP/SSE transport")
return values
@ -1180,7 +1178,6 @@ class LiteLLM_MCPServerTable(LiteLLMPydanticObjectBase):
alias: Optional[str] = None
description: Optional[str] = None
url: Optional[str] = None
spec_path: Optional[str] = None
transport: MCPTransportType
auth_type: Optional[MCPAuthType] = None
credentials: Optional[MCPCredentials] = None
@ -2149,6 +2146,10 @@ class ConfigGeneralSettings(LiteLLMPydanticObjectBase):
None,
description="If True, models and config are stored in and loaded from the database. Default is False.",
)
forward_client_headers_to_llm_api: Optional[bool] = Field(
None,
description="If True, forwards client headers (e.g. Authorization) to the LLM API. Required for Claude Code with Max subscription.",
)
class ConfigYAML(LiteLLMPydanticObjectBase):
@ -2209,7 +2210,6 @@ class LiteLLM_VerificationToken(LiteLLMPydanticObjectBase):
created_by: Optional[str] = None
updated_at: Optional[datetime] = None
updated_by: Optional[str] = None
last_active: Optional[datetime] = None
object_permission_id: Optional[str] = None
object_permission: Optional[LiteLLM_ObjectPermissionTable] = None
access_group_ids: Optional[List[str]] = None
@ -2437,19 +2437,9 @@ class LiteLLM_OrganizationMembershipTable(LiteLLMPydanticObjectBase):
Any
] = None # You might want to replace 'Any' with a more specific type if available
litellm_budget_table: Optional[LiteLLM_BudgetTable] = None
user_email: Optional[str] = None
model_config = ConfigDict(protected_namespaces=())
@model_validator(mode="after")
def populate_user_email(self) -> "LiteLLM_OrganizationMembershipTable":
if self.user_email is None and self.user is not None:
if isinstance(self.user, dict):
self.user_email = self.user.get("user_email")
else:
self.user_email = getattr(self.user, "user_email", None)
return self
class LiteLLM_OrganizationTableUpdate(LiteLLM_BudgetTable):
"""Represents user-controllable params for a LiteLLM_OrganizationTable record"""
@ -3054,8 +3044,6 @@ class SpendLogsMetadata(TypedDict):
str
] # S3/GCS object key for cold storage retrieval
litellm_overhead_time_ms: Optional[float] # LiteLLM overhead time in milliseconds
attempted_retries: Optional[int] # Number of retries attempted (0 = first attempt succeeded)
max_retries: Optional[int] # Max retries configured for this request
cost_breakdown: Optional[
CostBreakdown
] # Detailed cost breakdown (input_cost, output_cost, margin, discount, etc.)
@ -3668,7 +3656,6 @@ class LitellmMetadataFromRequestHeaders(TypedDict, total=False):
spend_logs_metadata: Optional[dict]
agent_id: Optional[str]
trace_id: Optional[str]
session_id: Optional[str]
class JWTKeyItem(TypedDict, total=False):