mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-10 03:28:53 +00:00
address greptile review feedback (greploop iteration 2)
- Handle ValueError on team-link failure as 400 (orphaned server fix) - Wrap delete's remove_from_team in try/except (prevent 500 after successful delete) - Revert DELETE status code to 202 (backwards-compatible) - Add extra_permissions to TeamMemberUpdateResponse Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
edd41cf88d
commit
5acb52b40a
3 changed files with 21 additions and 6 deletions
|
|
@ -3769,6 +3769,7 @@ class TeamMemberUpdateRequest(TeamMemberDeleteRequest):
|
|||
class TeamMemberUpdateResponse(MemberUpdateResponse):
|
||||
team_id: str
|
||||
max_budget_in_team: Optional[float] = None
|
||||
extra_permissions: Optional[List[str]] = None
|
||||
tpm_limit: Optional[int] = None
|
||||
rpm_limit: Optional[int] = None
|
||||
|
||||
|
|
|
|||
|
|
@ -1294,9 +1294,16 @@ if MCP_AVAILABLE:
|
|||
|
||||
# Auto-assign server to team's ObjectPermissionTable if team-scoped
|
||||
if team_id and new_mcp_server.server_id:
|
||||
await add_mcp_server_to_team(
|
||||
prisma_client, team_id, new_mcp_server.server_id
|
||||
)
|
||||
try:
|
||||
await add_mcp_server_to_team(
|
||||
prisma_client, team_id, new_mcp_server.server_id
|
||||
)
|
||||
except ValueError as e:
|
||||
# Team not found — surface as 400 so caller knows
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail={"error": str(e)},
|
||||
)
|
||||
|
||||
return _redact_mcp_credentials(new_mcp_server)
|
||||
|
||||
|
|
@ -1489,7 +1496,7 @@ if MCP_AVAILABLE:
|
|||
description="Allows deleting mcp servers in the db",
|
||||
dependencies=[Depends(user_api_key_auth)],
|
||||
response_class=JSONResponse,
|
||||
status_code=status.HTTP_204_NO_CONTENT,
|
||||
status_code=status.HTTP_202_ACCEPTED,
|
||||
)
|
||||
@management_endpoint_wrapper
|
||||
async def remove_mcp_server(
|
||||
|
|
@ -1572,13 +1579,19 @@ if MCP_AVAILABLE:
|
|||
|
||||
# Remove server from team's ObjectPermissionTable
|
||||
if team_id:
|
||||
await remove_mcp_server_from_team(prisma_client, team_id, server_id)
|
||||
try:
|
||||
await remove_mcp_server_from_team(prisma_client, team_id, server_id)
|
||||
except Exception as e:
|
||||
verbose_proxy_logger.warning(
|
||||
f"Failed to remove server {server_id} from team {team_id} permissions: {e}. "
|
||||
"Server was deleted but team's ObjectPermissionTable may contain a stale entry."
|
||||
)
|
||||
|
||||
# TODO: Enterprise: Finish audit log trail
|
||||
if litellm.store_audit_logs:
|
||||
pass
|
||||
|
||||
return Response(status_code=status.HTTP_204_NO_CONTENT)
|
||||
return Response(status_code=status.HTTP_202_ACCEPTED)
|
||||
|
||||
@router.post(
|
||||
"/server/{server_id}/user-credential",
|
||||
|
|
|
|||
|
|
@ -2487,6 +2487,7 @@ async def team_member_update(
|
|||
user_id=received_user_id,
|
||||
user_email=data.user_email,
|
||||
max_budget_in_team=data.max_budget_in_team,
|
||||
extra_permissions=data.extra_permissions,
|
||||
tpm_limit=data.tpm_limit,
|
||||
rpm_limit=data.rpm_limit,
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue