fix(proxy): add default=None to LiteLLM_TeamMembership.litellm_budget_table (#29684)

In Pydantic v2, Optional[T] without a default is a required field. Any
row with budget_id=null triggered a validation error and returned 401.

Co-authored-by: Florent Chenebault <florent.chenebault@lifen.fr>
This commit is contained in:
Mateo Wang 2026-06-04 12:13:11 -07:00 committed by GitHub
parent f9142d7961
commit 9344f205a8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -47,6 +47,24 @@ def test_audit_log_masking():
assert json_before_value["key"] == "sk-1*****7890"
def test_team_membership_null_budget_table():
"""
Regression test for: LiteLLM_TeamMembership.litellm_budget_table missing = None.
In Pydantic v2, Optional[T] without a default is required; rows with budget_id=null
raised a validation error and returned 401.
Related: https://github.com/BerriAI/litellm/issues/28689
"""
from litellm.proxy._types import LiteLLM_TeamMembership
membership = LiteLLM_TeamMembership(user_id="u1", team_id="t1")
assert membership.litellm_budget_table is None
membership_explicit = LiteLLM_TeamMembership(
user_id="u1", team_id="t1", litellm_budget_table=None
)
assert membership_explicit.litellm_budget_table is None
def test_internal_jobs_user_has_proxy_admin_role():
"""
Test that the internal jobs system user has PROXY_ADMIN role.