mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-27 11:43:54 +00:00
add helper to check route_in_additonal_public_routes
This commit is contained in:
parent
9acab3dac5
commit
7ea4c7b328
2 changed files with 46 additions and 2 deletions
42
litellm/proxy/auth/auth_utils.py
Normal file
42
litellm/proxy/auth/auth_utils.py
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
from litellm._logging import verbose_proxy_logger
|
||||||
|
from litellm.proxy._types import LiteLLMRoutes
|
||||||
|
from litellm.proxy.proxy_server import general_settings, premium_user
|
||||||
|
|
||||||
|
|
||||||
|
def route_in_additonal_public_routes(current_route: str):
|
||||||
|
"""
|
||||||
|
Helper to check if the user defined public_routes on config.yaml
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
- current_route: str - the route the user is trying to call
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
- bool - True if the route is defined in public_routes
|
||||||
|
- bool - False if the route is not defined in public_routes
|
||||||
|
|
||||||
|
|
||||||
|
In order to use this the litellm config.yaml should have the following in general_settings:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
general_settings:
|
||||||
|
master_key: sk-1234
|
||||||
|
public_routes: ["LiteLLMRoutes.public_routes", "/spend/calculate"]
|
||||||
|
```
|
||||||
|
"""
|
||||||
|
|
||||||
|
# check if user is premium_user - if not do nothing
|
||||||
|
try:
|
||||||
|
if premium_user is not True:
|
||||||
|
return False
|
||||||
|
# check if this is defined on the config
|
||||||
|
if general_settings is None:
|
||||||
|
return False
|
||||||
|
|
||||||
|
routes_defined = general_settings.get("public_routes", [])
|
||||||
|
if current_route in routes_defined:
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
except Exception as e:
|
||||||
|
verbose_proxy_logger.error(f"route_in_additonal_public_routes: {str(e)}")
|
||||||
|
return False
|
|
@ -56,6 +56,7 @@ from litellm.proxy.auth.auth_checks import (
|
||||||
get_user_object,
|
get_user_object,
|
||||||
log_to_opentelemetry,
|
log_to_opentelemetry,
|
||||||
)
|
)
|
||||||
|
from litellm.proxy.auth.auth_utils import route_in_additonal_public_routes
|
||||||
from litellm.proxy.common_utils.http_parsing_utils import _read_request_body
|
from litellm.proxy.common_utils.http_parsing_utils import _read_request_body
|
||||||
from litellm.proxy.utils import _to_ns
|
from litellm.proxy.utils import _to_ns
|
||||||
|
|
||||||
|
@ -137,8 +138,9 @@ async def user_api_key_auth(
|
||||||
"""
|
"""
|
||||||
route: str = request.url.path
|
route: str = request.url.path
|
||||||
|
|
||||||
if route in LiteLLMRoutes.public_routes.value or route in general_settings.get(
|
if (
|
||||||
"public_routes", []
|
route in LiteLLMRoutes.public_routes.value
|
||||||
|
or route_in_additonal_public_routes(current_route=route)
|
||||||
):
|
):
|
||||||
# check if public endpoint
|
# check if public endpoint
|
||||||
return UserAPIKeyAuth(user_role=LitellmUserRoles.INTERNAL_USER_VIEW_ONLY)
|
return UserAPIKeyAuth(user_role=LitellmUserRoles.INTERNAL_USER_VIEW_ONLY)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue