From bc84b381547aa24a76b1d392f6169d1e63eb32fb Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Fri, 24 Nov 2023 15:24:50 -0800 Subject: [PATCH] feat(proxy_server.py): new /key/info endpoint to access key information (master key only) --- litellm/proxy/proxy_server.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 033b657be3..0a9b8d4d15 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -162,8 +162,8 @@ async def user_api_key_auth(request: Request, api_key: str = fastapi.Security(ap "api_key": master_key } - if (route == "/key/generate" or route == "/key/delete") and not is_master_key_valid: - raise Exception(f"If master key is set, only master key can be used to generate new keys") + if (route == "/key/generate" or route == "/key/delete" or route == "/key/info") and not is_master_key_valid: + raise Exception(f"If master key is set, only master key can be used to generate, delete or get info for new keys") if prisma_client: ## check for cache hit (In-Memory Cache) @@ -786,6 +786,24 @@ async def delete_key_fn(request: Request): detail={"error": str(e)}, ) +@router.get("/key/info", dependencies=[Depends(user_api_key_auth)]) +async def info_key_fn(key: str = fastapi.Query(..., description="Key in the request parameters")): + global prisma_client + try: + key_info = await prisma_client.litellm_verificationtoken.find_unique( + where={ + "token": key + } + ) + + return {"key": key, "info": key_info} + except Exception as e: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail={"error": str(e)}, + ) + + @router.get("/test") async def test_endpoint(request: Request): return {"route": request.url.path}