fix(proxy_server.py): don't change old /key/info endpoint

This commit is contained in:
Krrish Dholakia 2024-02-10 17:31:23 -08:00
parent f4dc643b1c
commit 7e2e545bed

View file

@ -2963,6 +2963,8 @@ async def info_key_fn_v2(
): ):
""" """
Retrieve information about a list of keys. Retrieve information about a list of keys.
**New endpoint**. Currently admin only.
Parameters: Parameters:
keys: Optional[list] = body parameter representing the key(s) in the request keys: Optional[list] = body parameter representing the key(s) in the request
user_api_key_dict: UserAPIKeyAuth = Dependency representing the user's API key user_api_key_dict: UserAPIKeyAuth = Dependency representing the user's API key
@ -3031,23 +3033,16 @@ async def info_key_fn(
""" """
Retrieve information about a key. Retrieve information about a key.
Parameters: Parameters:
key: Optional[str | list] = Query parameter representing the key(s) in the request key: Optional[str] = Query parameter representing the key in the request
user_api_key_dict: UserAPIKeyAuth = Dependency representing the user's API key user_api_key_dict: UserAPIKeyAuth = Dependency representing the user's API key
Returns: Returns:
Dict containing the key and its associated information Dict containing the key and its associated information
Example Curl: Example Curl:
**1 key**
``` ```
curl -X GET "http://0.0.0.0:8000/key/info?key=sk-02Wr4IAlN3NvPXvL5JVvDA" \ curl -X GET "http://0.0.0.0:8000/key/info?key=sk-02Wr4IAlN3NvPXvL5JVvDA" \
-H "Authorization: Bearer sk-1234" -H "Authorization: Bearer sk-1234"
``` ```
**multiple keys**
```
curl -X GET "http://0.0.0.0:8000/key/info" \
-H "Authorization: Bearer sk-1234" \
-d {"keys": ["sk-1", "sk-2", "sk-3"]}
```
Example Curl - if no key is passed, it will use the Key Passed in Authorization Header Example Curl - if no key is passed, it will use the Key Passed in Authorization Header
``` ```
@ -3061,11 +3056,16 @@ async def info_key_fn(
raise Exception( raise Exception(
f"Database not connected. Connect a database to your proxy - https://docs.litellm.ai/docs/simple_proxy#managing-auth---virtual-keys" f"Database not connected. Connect a database to your proxy - https://docs.litellm.ai/docs/simple_proxy#managing-auth---virtual-keys"
) )
if key is None: if key == None:
key_info = await prisma_client.get_data(token=user_api_key_dict.api_key) key = user_api_key_dict.api_key
if key is not None: # single key
key_info = await prisma_client.get_data(token=key) key_info = await prisma_client.get_data(token=key)
## REMOVE HASHED TOKEN INFO BEFORE RETURNING ##
try:
key_info = key_info.model_dump() # noqa
except:
# if using pydantic v1
key_info = key_info.dict()
key_info.pop("token")
return {"key": key, "info": key_info} return {"key": key, "info": key_info}
except Exception as e: except Exception as e:
if isinstance(e, HTTPException): if isinstance(e, HTTPException):