Refactor tag management for premium users

Refactor tag handling for key management to ensure only premium users can add tags. Adjust logic to manage tags in metadata appropriately.
This commit is contained in:
Yash Rathod 2026-10-28 13:47:01 +05:30 • committed by GitHub
parent f1795e6d44
commit 2292b6530c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1667,16 +1667,23 @@ async def _common_key_generation_helper(
if "tags" in data_json:
from litellm.proxy.proxy_server import premium_user
if premium_user is not True and data_json["tags"] is not None:
raise ValueError(f"Only premium users can add tags to keys. {CommonProxyErrors.not_premium_user.value}")
tags = data_json.get("tags")
if premium_user is not True and isinstance(tags, list) and len(tags) > 0:
raise ValueError(
f"Only premium users can add tags to keys. {CommonProxyErrors.not_premium_user.value}"
)
_metadata: Final = data_json.get("metadata")
if not _metadata:
data_json["metadata"] = {"tags": data_json["tags"]}
if tags is None:
if isinstance(_metadata, dict):
_metadata.pop("tags", None)
data_json.pop("tags", None)
else:
data_json["metadata"]["tags"] = data_json["tags"]
data_json.pop("tags")
if not _metadata:
data_json["metadata"] = {"tags": tags}
else:
data_json["metadata"]["tags"] = tags
data_json.pop("tags")
# Validate MCP servers in object_permission are within team scope
_is_proxy_admin_caller: Final = user_api_key_dict.user_role == LitellmUserRoles.PROXY_ADMIN.value