mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-26 01:12:21 +00:00
* 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> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| actors.py | ||
| conftest.py | ||
| test_credential_migration_endpoint.py | ||
| test_f7_coverage_closeout.py | ||
| test_f7_key_coverage_push.py | ||
| test_key_aliases.py | ||
| test_key_block_unblock.py | ||
| test_key_budget_limits.py | ||
| test_key_bulk_update.py | ||
| test_key_delete.py | ||
| test_key_generate.py | ||
| test_key_health.py | ||
| test_key_info.py | ||
| test_key_info_v2.py | ||
| test_key_list.py | ||
| test_key_regenerate.py | ||
| test_key_reset_spend.py | ||
| test_key_service_account_generate.py | ||
| test_key_team_change.py | ||
| test_key_update.py | ||
| test_no_management_imports.py | ||
| test_route_coverage.py | ||
| test_scratch_teardown.py | ||
| test_smoke.py | ||
| test_team_available.py | ||
| test_team_block_unblock.py | ||
| test_team_budget_limits.py | ||
| test_team_bulk_member_add.py | ||
| test_team_bulk_member_delete.py | ||
| test_team_daily_activity.py | ||
| test_team_delete.py | ||
| test_team_filter_ui.py | ||
| test_team_info.py | ||
| test_team_key_bulk_update.py | ||
| test_team_list.py | ||
| test_team_list_v2.py | ||
| test_team_member_add.py | ||
| test_team_member_delete.py | ||
| test_team_member_info_validation.py | ||
| test_team_member_me.py | ||
| test_team_member_reset_budget.py | ||
| test_team_member_reset_spend.py | ||
| test_team_member_update.py | ||
| test_team_metadata_schema.py | ||
| test_team_model.py | ||
| test_team_new.py | ||
| test_team_permissions.py | ||
| test_team_permissions_bulk_update.py | ||
| test_team_spend_by_user.py | ||
| test_team_update.py | ||
| test_users_bulk_delete.py | ||
| test_world_seed.py | ||