diff --git a/litellm/proxy/management_endpoints/key_management_endpoints.py b/litellm/proxy/management_endpoints/key_management_endpoints.py index 4d44006369b..092df92caf1 100644 --- a/litellm/proxy/management_endpoints/key_management_endpoints.py +++ b/litellm/proxy/management_endpoints/key_management_endpoints.py @@ -4991,7 +4991,7 @@ async def test_key_logging( ) -_KEY_ALIAS_PATTERN = re.compile(r"^[a-zA-Z0-9][a-zA-Z0-9_\-/\.]{0,253}[a-zA-Z0-9]$") +_KEY_ALIAS_PATTERN = re.compile(r"^[a-zA-Z0-9][a-zA-Z0-9_\-/\.@]{0,253}[a-zA-Z0-9]$") def _validate_key_alias_format(key_alias: Optional[str]) -> None: @@ -5009,7 +5009,7 @@ def _validate_key_alias_format(key_alias: Optional[str]) -> None: if not _KEY_ALIAS_PATTERN.match(key_alias): raise ProxyException( - message="Invalid key_alias format. Must be 2-255 characters, start/end with alphanumeric, and only contain a-zA-Z0-9_-/.", + message="Invalid key_alias format. Must be 2-255 characters, start/end with alphanumeric, and only contain a-zA-Z0-9_-/.@.", type=ProxyErrorTypes.bad_request_error, param="key_alias", code=400, diff --git a/tests/test_litellm/proxy/management_endpoints/test_key_management_endpoints.py b/tests/test_litellm/proxy/management_endpoints/test_key_management_endpoints.py index 11c80351839..a573a24e35c 100644 --- a/tests/test_litellm/proxy/management_endpoints/test_key_management_endpoints.py +++ b/tests/test_litellm/proxy/management_endpoints/test_key_management_endpoints.py @@ -6432,6 +6432,8 @@ class TestValidateKeyAliasFormat: _validate_key_alias_format("valid/alias") _validate_key_alias_format("a" * 255) _validate_key_alias_format("my-key-123") + _validate_key_alias_format("user/user@example.com") + _validate_key_alias_format("team/user@example.com") def test_validate_key_alias_format_invalid(self): from litellm.proxy.management_endpoints.key_management_endpoints import _validate_key_alias_format @@ -6444,7 +6446,7 @@ class TestValidateKeyAliasFormat: "!", # special char "-start", # non-alphanumeric start "end-", # non-alphanumeric end - "invalid@char", # invalid char + "invalid#char", # invalid char "a" * 256, # too long " leading", "trailing ",