From 5525dd4f20cf758188becf93fc5c821e8375a2e4 Mon Sep 17 00:00:00 2001 From: yuneng-jiang Date: Fri, 13 Feb 2026 21:50:16 -0800 Subject: [PATCH] access groups pt 2 --- litellm/proxy/auth/user_api_key_auth.py | 33 ++++++++++++------- .../key_management_endpoints.py | 2 ++ ui/litellm-dashboard/package.json | 2 +- .../AccessGroups/AccessGroupsPage.tsx | 15 +++++---- ui/litellm-dashboard/tsconfig.json | 2 +- 5 files changed, 34 insertions(+), 20 deletions(-) diff --git a/litellm/proxy/auth/user_api_key_auth.py b/litellm/proxy/auth/user_api_key_auth.py index f643f7205b..92f1b2e9c4 100644 --- a/litellm/proxy/auth/user_api_key_auth.py +++ b/litellm/proxy/auth/user_api_key_auth.py @@ -1187,18 +1187,27 @@ async def _user_api_key_auth_builder( # noqa: PLR0915 # Check 6: Additional Common Checks across jwt + key auth if valid_token.team_id is not None: - _team_obj: Optional[LiteLLM_TeamTable] = LiteLLM_TeamTable( - team_id=valid_token.team_id, - max_budget=valid_token.team_max_budget, - soft_budget=valid_token.team_soft_budget, - spend=valid_token.team_spend, - tpm_limit=valid_token.team_tpm_limit, - rpm_limit=valid_token.team_rpm_limit, - blocked=valid_token.team_blocked, - models=valid_token.team_models, - metadata=valid_token.team_metadata, - object_permission_id=valid_token.team_object_permission_id, - ) + try: + _team_obj = await get_team_object( + team_id=valid_token.team_id, + prisma_client=prisma_client, + user_api_key_cache=user_api_key_cache, + parent_otel_span=parent_otel_span, + proxy_logging_obj=proxy_logging_obj, + ) + except HTTPException: + _team_obj = LiteLLM_TeamTable( + team_id=valid_token.team_id, + max_budget=valid_token.team_max_budget, + soft_budget=valid_token.team_soft_budget, + spend=valid_token.team_spend, + tpm_limit=valid_token.team_tpm_limit, + rpm_limit=valid_token.team_rpm_limit, + blocked=valid_token.team_blocked, + models=valid_token.team_models, + metadata=valid_token.team_metadata, + object_permission_id=valid_token.team_object_permission_id, + ) else: _team_obj = None diff --git a/litellm/proxy/management_endpoints/key_management_endpoints.py b/litellm/proxy/management_endpoints/key_management_endpoints.py index 78cd7dcbf8..5566d839b6 100644 --- a/litellm/proxy/management_endpoints/key_management_endpoints.py +++ b/litellm/proxy/management_endpoints/key_management_endpoints.py @@ -2477,6 +2477,7 @@ async def generate_key_helper_fn( # noqa: PLR0915 auto_rotate: Optional[bool] = None, rotation_interval: Optional[str] = None, router_settings: Optional[dict] = None, + access_group_ids: Optional[list] = None, ): from litellm.proxy.proxy_server import premium_user, prisma_client @@ -2593,6 +2594,7 @@ async def generate_key_helper_fn( # noqa: PLR0915 "allowed_routes": allowed_routes or [], "object_permission_id": object_permission_id, "router_settings": router_settings_json, + "access_group_ids": access_group_ids or [], } # Add rotation fields if auto_rotate is enabled diff --git a/ui/litellm-dashboard/package.json b/ui/litellm-dashboard/package.json index 164368eb6b..42b90d2733 100644 --- a/ui/litellm-dashboard/package.json +++ b/ui/litellm-dashboard/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "dev": "next dev", + "dev": "next dev --webpack", "build": "next build", "start": "next start", "lint": "next lint", diff --git a/ui/litellm-dashboard/src/components/AccessGroups/AccessGroupsPage.tsx b/ui/litellm-dashboard/src/components/AccessGroups/AccessGroupsPage.tsx index 22f093b6fa..50bc2ddc40 100644 --- a/ui/litellm-dashboard/src/components/AccessGroups/AccessGroupsPage.tsx +++ b/ui/litellm-dashboard/src/components/AccessGroups/AccessGroupsPage.tsx @@ -199,29 +199,32 @@ export function AccessGroupsPage() { enableSorting: false, cell: ({ row }) => { const record = row.original; + const modelIds = record.modelIds ?? []; + const mcpServerIds = record.mcpServerIds ?? []; + const agentIds = record.agentIds ?? []; return ( - + - {record.modelIds.length} + {modelIds.length} - + - {record.mcpServerIds.length} + {mcpServerIds.length} - + - {record.agentIds.length} + {agentIds.length} diff --git a/ui/litellm-dashboard/tsconfig.json b/ui/litellm-dashboard/tsconfig.json index 5b0352feb9..d24bdd340f 100644 --- a/ui/litellm-dashboard/tsconfig.json +++ b/ui/litellm-dashboard/tsconfig.json @@ -14,7 +14,7 @@ "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, - "jsx": "preserve", + "jsx": "react-jsx", "incremental": true, "plugins": [ {