litellm/tests/proxy_behavior/management
ryan-crabbe-berri 632b69b5c8
refactor(proxy): answer every team access check with TeamAccess.allows (#43364)
* refactor(proxy): route every team-admin decision through auth/team_access.py

Move the six team-admin helpers out of common_utils, team_endpoints and
key_management_endpoints into litellm/proxy/auth/team_access.py under public
names, and point every management route and helper at them. The key routes
keep checking team admin before org admin, so a team admin whose user row is
gone still passes as before. Status codes and bodies are unchanged, which the
223-case team-admin matrix confirms at the merge base and at the tip

common_utils keeps `_is_user_team_admin` as an alias because the published
litellm-enterprise 0.1.71 wheel still imports it from there

* refactor(proxy): answer every team access check with TeamAccess.allows

Replace the six helpers in auth/team_access.py with one resolver in
litellm/proxy/management/teams/access.py. Each route passes the roles it
accepts (TEAM_OR_ORG_ADMIN or TEAM_ADMIN_ONLY), and /team/update and
/team/info rank roles through strongest_role so org admin still outranks
team admin there

The org lookup moves behind an OrgRoles protocol, implemented by
PrismaOrgRoles in management/users/service.py, and get_team_access in
management/teams/dependencies.py is the only place that reads proxy_server
globals. _check_key_admin_access keeps its name and body from main

Routes that checked org admin first now read the roster first, so a team
admin whose org lookup errors now passes on /team/delete, /team/block,
/team/unblock, member reset_spend and reset_budget, and the team callback
routes. No allowed caller is denied
2026-09-30 15:27:33 -07:00
..
__init__.py feat(tests): behavior-pinning harness + Key Tier-1 matrix (#28321) 2026-05-20 19:27:44 -07:00
actors.py test(proxy): behavior-pinning matrix for team management endpoints (#28441) 2026-05-21 16:57:25 -07:00
conftest.py test(proxy_behavior): scope the management proxy fixture to its package so its spend monitor cannot race the spend tests (#43302) 2026-09-26 03:12:13 -07:00
test_credential_migration_endpoint.py feat(proxy): add AES-256-GCM at-rest credential encryption with versioned format and re-encryption migration (#31215) 2026-06-29 20:14:22 +02:00
test_f7_coverage_closeout.py test(proxy): phase-4 payload behavior pinning for tier-2/3 key + team management endpoints (#28681) 2026-05-23 12:16:29 -07:00
test_f7_key_coverage_push.py test(proxy): phase-4 payload behavior pinning for tier-2/3 key + team management endpoints (#28681) 2026-05-23 12:16:29 -07:00
test_key_aliases.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_block_unblock.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_budget_limits.py test(proxy): phase-4 payload behavior pinning for tier-2/3 key + team management endpoints (#28681) 2026-05-23 12:16:29 -07:00
test_key_bulk_update.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_delete.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_generate.py feat(tests): behavior-pinning harness + Key Tier-1 matrix (#28321) 2026-05-20 19:27:44 -07:00
test_key_health.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_info.py feat(tests): behavior-pinning harness + Key Tier-1 matrix (#28321) 2026-05-20 19:27:44 -07:00
test_key_info_v2.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_list.py chore: litellm oss staging (#30745) 2026-06-18 13:55:35 -07:00
test_key_regenerate.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_reset_spend.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_service_account_generate.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_key_team_change.py test(proxy): phase-4 payload behavior pinning for tier-2/3 key + team management endpoints (#28681) 2026-05-23 12:16:29 -07:00
test_key_update.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_no_management_imports.py feat(tests): behavior-pinning harness + Key Tier-1 matrix (#28321) 2026-05-20 19:27:44 -07:00
test_route_coverage.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_scratch_teardown.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_smoke.py feat(tests): behavior-pinning harness + Key Tier-1 matrix (#28321) 2026-05-20 19:27:44 -07:00
test_team_available.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_block_unblock.py refactor(proxy): answer every team access check with TeamAccess.allows (#43364) 2026-09-30 15:27:33 -07:00
test_team_budget_limits.py fix(proxy): enforce org budget ceilings on /team/update 2026-09-16 15:38:30 -07:00
test_team_bulk_member_add.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_bulk_member_delete.py fix(proxy): match an id-only bulk member delete against a legacy email-only roster entry 2026-09-14 23:51:15 +00:00
test_team_daily_activity.py revert: "feat(usage): search team keys beyond the top-N in the Team usage view (#42857)" (#43377) 2026-09-28 21:47:46 +00:00
test_team_delete.py refactor(proxy): answer every team access check with TeamAccess.allows (#43364) 2026-09-30 15:27:33 -07:00
test_team_filter_ui.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_info.py refactor(proxy): answer every team access check with TeamAccess.allows (#43364) 2026-09-30 15:27:33 -07:00
test_team_key_bulk_update.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_list.py test(proxy): behavior-pinning matrix for team management endpoints (#28441) 2026-05-21 16:57:25 -07:00
test_team_list_v2.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_member_add.py test(proxy): separate the member_add permission gate from the provisioning gate 2026-08-01 14:39:47 -07:00
test_team_member_delete.py test(proxy): behavior-pinning matrix for team management endpoints (#28441) 2026-05-21 16:57:25 -07:00
test_team_member_info_validation.py test(proxy): separate the member_add permission gate from the provisioning gate 2026-08-01 14:39:47 -07:00
test_team_member_me.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_member_reset_budget.py test(team): drop docstrings that restate the budget source and reset assertions 2026-09-19 01:00:31 +00:00
test_team_member_reset_spend.py refactor(proxy): answer every team access check with TeamAccess.allows (#43364) 2026-09-30 15:27:33 -07:00
test_team_member_update.py test(proxy): behavior-pinning matrix for team management endpoints (#28441) 2026-05-21 16:57:25 -07:00
test_team_metadata_schema.py test: repair three failing suites on litellm_internal_staging 2026-08-04 16:07:02 -07:00
test_team_model.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_new.py feat(teams): apply default organization to new teams from default team settings (#35540) 2026-08-03 12:57:12 -07:00
test_team_permissions.py test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -07:00
test_team_permissions_bulk_update.py test(proxy): phase-4 payload behavior pinning for tier-2/3 key + team management endpoints (#28681) 2026-05-23 12:16:29 -07:00
test_team_spend_by_user.py feat(team): report per-user spend within a team for JWT traffic (#39771) 2026-09-04 12:00:47 -07:00
test_team_update.py refactor(proxy): answer every team access check with TeamAccess.allows (#43364) 2026-09-30 15:27:33 -07:00
test_users_bulk_delete.py feat(proxy): move bulk user delete and team member delete under /management/v1 2026-09-14 22:31:07 +00:00
test_world_seed.py feat(tests): behavior-pinning harness + Key Tier-1 matrix (#28321) 2026-05-20 19:27:44 -07:00