litellm/tests/proxy_behavior/management
devin-ai-integration[bot] 77eccaca78
feat(proxy): server-side Team Usage export beyond the top-N key cap (#42996)
* feat(proxy): add uncapped server-side team usage export route

GET /team/daily/activity/export answers the same scoping as
/team/daily/activity/aggregated with one unbounded rollup query, so keys
past USAGE_TOP_API_KEYS_LIMIT are included. Supports daily,
daily_with_keys, daily_with_users and daily_with_models export types as
CSV (default) or JSON. The PTU flat-cost sentinel stays in the plain
daily rollup and is excluded from the keyed and per-model exports

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* feat(ui): export team usage server-side when the key list was truncated

When the aggregated spend response reports api_key truncation, EntityUsage
passes a serverExport into the export modal that downloads CSV or JSON
from GET /team/daily/activity/export instead of building the file from
the truncated on-screen data. apiClient gains a responseType option so
the download can arrive as a Blob, and truncation no longer blocks the
export button

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* test(proxy): cover team usage export types, sentinel handling and scope

Unit tests pin the uncapped key rollup past USAGE_TOP_API_KEYS_LIMIT,
PTU sentinel inclusion in the daily rollup and exclusion elsewhere, the
per-user fold, and the CSV column layout. Integration tests exercise the
route against a live proxy, including member scope denial

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* refactor(proxy): tidy team usage export route

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(proxy): use membership test for export type branch (PLR1714)

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* style(ui): format exportBlockedReason test with prettier

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(proxy): satisfy type-discipline gate in team usage export

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(proxy): pass export rows as a sequence to the response model

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* test(proxy-behavior): cover team usage export in the daily activity scope matrix

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* feat(proxy): carry PTU flat cost and escape formulas in team usage export

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(ui): keep the truncation export block on surfaces without a server export

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* chore(ui): drop redundant comments in team export call and modal test

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* test(integration): audit cells for team usage export

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* test(integration): tighten team usage export audit cells

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(proxy): type the export params tuple and fold user keys in one pass

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* style(ui): bring entity usage export helpers under eslint budgets

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* style(ui): prettier-format UsagePageView after merge

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: yassin <yassin@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-24 15:40:36 -05:00
..
__init__.py
actors.py test(proxy): behavior-pinning matrix for team management endpoints (#28441) 2026-05-21 16:57:25 -07:00
conftest.py feat(proxy)!: refuse to start with an unset, empty, or publicly known master key 2026-09-19 13:44:00 -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
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
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
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
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 test(proxy): behavior-pinning matrix for tier-2/3 key + team management endpoints (#28620) 2026-05-22 11:24:41 -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 feat(proxy): server-side Team Usage export beyond the top-N key cap (#42996) 2026-09-24 15:40:36 -05:00
test_team_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_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 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_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 fix(proxy): reset a stuck team member's budget (#37971) 2026-08-25 09:50:09 -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 feat(proxy): let team admins edit tpm_limit when a proxy admin enables it 2026-09-16 15:38:30 -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