This commit is contained in:
Diwakar Ray Yadav 2026-08-27 19:14:58 -05:00 • committed by GitHub
commit 5d6fa45eea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 30 additions and 6 deletions

View file

@ -5855,12 +5855,14 @@ class ProxyConfig:
model.model_info["db_model"] = True
model.model_info["blocked"] = bool(getattr(model, "blocked", False))
if premium_user is True:
# seeing "created_at", "updated_at", "created_by", "updated_by" is a LiteLLM Enterprise Feature
model.model_info["created_at"] = getattr(model, "created_at", None)
model.model_info["updated_at"] = getattr(model, "updated_at", None)
model.model_info["created_by"] = getattr(model, "created_by", None)
model.model_info["updated_by"] = getattr(model, "updated_by", None)
# Hydrate system-managed metadata unconditionally: /model/info endpoints
# are admin-scoped, so the caller already has access to this data.
# Config-file models have no row attributes -> nothing is injected.
if isinstance(model.model_info, dict):
for field_name in ("created_at", "updated_at", "created_by", "updated_by"):
field_value = getattr(model, field_name, None)
if field_value is not None:
model.model_info[field_name] = field_value
if model.model_info is not None and isinstance(model.model_info, dict):
if "id" not in model.model_info:

View file

@ -1998,6 +1998,28 @@ def test_ProxyConfig_get_model_info_with_id_missing_model_id_raises(monkeypatch)
pc.get_model_info_with_id(model=bad)
def test_ProxyConfig_get_model_info_with_id_hydrates_metadata_without_premium(monkeypatch):
"""DB-row created_at/created_by/updated_at/updated_by are served to non-premium
users: /model/info is admin-scoped, so the caller already has access."""
monkeypatch.setattr("litellm.proxy.proxy_server.premium_user", False)
from datetime import datetime, timezone
pc = ProxyConfig()
now = datetime.now(timezone.utc)
model = SimpleNamespace(
model_id="m-2",
model_info={"id": "m-2"},
blocked=False,
created_at=now,
updated_at=now,
created_by="user-1",
updated_by="user-1",
)
out = pc.get_model_info_with_id(model=model, db_model=True)
assert str(out.created_at) == str(now)
assert out.created_by == "user-1"
# ---------------------------------------------------------------------------
# ProxyConfig._delete_deployment
# ---------------------------------------------------------------------------