* fix(common_daily_activity.py): support empty entity id field
allows returning empty response when user is not admin and does not belong to any team
* test(test_common_daily_activity.py): add unit testing
* fix(proxy/_types.py): allow internal user to call api playground
* fix(new_usage.tsx): cleanup tag based usage - only show for proxy admin
not clear what tags internal user should be allowed to see
* fix(team_endpoints.py): allow internal user view spend for teams they belong to
* fix(team_endpoints.py): return team alias on `/team/daily/activity` API
allows displaying team alias on ui
* fix: fix linting error
* fix(entity_usage.tsx): allow viewing top keys by team
* fix(entity_usage.tsx): show alias, if available in breakdown
allows entity alias to be easily displayed
* Show usage by key (on all up, team, and tag usage dashboards) (#10152)
* fix(entity_usage.tsx): allow user to select team in team usage tab
* fix(new_usage.tsx): load all tags for filtering
* fix(tag_management_endpoints.py): return dynamic tags from db on `/tag/list`
* fix(litellm_pre_call_utils.py): support x-litellm-tags even if tag based routing not enabled
* fix(new_usage.tsx): show breakdown of usage by api key on dashboard
helpful when looking at spend by team
* fix(networking.tsx): exclude litellm-dashboard team id's from calls
adds noisy ui tokens to key activity
* fix(new_usage.tsx): allow user to see activity by key on main tab
* feat(internal_user_endpoints.py): refactor to use common_daily_activity function
reuses same logic across teams/keys/tags
Allows returning team_alias in api_keys consistently
* fix(leftnav.tsx): swap old usage with new usage tab
* fix(entity_usage.tsx): show breakdown of teams in daily spend chart
* style(new_usage.tsx): show global usage tab if user is admin / has admin view
* fix(new_usage.tsx): add disclaimer for new usage dashboard
* fix(new_usage.tsx): fix linting error
* Allow filtering usage dashboard by team + tag (#10150)
* fix(entity_usage.tsx): allow user to select team in team usage tab
* fix(new_usage.tsx): load all tags for filtering
* fix(tag_management_endpoints.py): return dynamic tags from db on `/tag/list`
* fix(litellm_pre_call_utils.py): support x-litellm-tags even if tag based routing not enabled
* fix: fix linting error
* feat(ui/): add team based usage to dashboard
allows admin to see spend across teams + within teams at 1m+ spend logs
* fix(entity_usage.tsx): add activity page to entity usage
* style(entity_usage.tsx): place filter above tab switcher
* feat: initial commit adding daily tag spend table to db
* feat(db_spend_update_writer.py): correctly log tag spend transactions
* build(schema.prisma): add new tag table to root
* build: add new migration file
* feat(common_daily_activity.py): add `/tag/daily/activity` API endpoint
allows viewing daily spend by tag
* feat(tag_management_endpoints.py): support comma separated list of tags + tag breakdown metric
allows querying multiple tags + knowing what tags are driving spend
* feat(entity_usage.tsx): initial commit adding tag based usage to litellm dashboard
brings back tag based usage tracking to UI at 1m+ spend logs
* feat(entity_usage.tsx): add top api key view to ui
* feat(entity_usage.tsx): add tag table to ui
* feat(entity_usage.tsx): allow filtering by tag
* refactor(entity_usage.tsx): reorder components
* build(ui/): fix linting error
* fix: fix ruff checks
* fix(schema.prisma): drop uniqueness requirement on tag
allows dailytagspend to have multiple rows with the same tag
* build(schema.prisma): drop uniqueness requirement on tag in dailytagspend
allows tag agg. view to work on multiple rows with same tag
* build(schema.prisma): drop tag uniqueness requirement
* fix typo on UI
* fix for edit user tab
* fix for user spend
* add /team/permissions_list to management routes
* fix auth check for team member permissions
* fix team endpoints test
* fix(model_info_view.tsx): cleanup text
* fix(key_management_endpoints.py): fix filtering litellm-dashboard keys for internal users
* fix(proxy_track_cost_callback.py): prevent flooding spend logs with admin endpoint errors
* test: add unit testing for logic
* test(test_auth_exception_handler.py): add more unit testing
* fix(router.py): correctly handle retrieving model info on get_model_group_info
fixes issue where model hub was showing None prices
* fix: fix linting errors
* only load member permissions for non-admins
* run member permission checks on update + regenerate endpoints
* run check for /key/generate
* working test_default_member_permissions
* passing test with permissions on update delete endpoints
* test_create_permissions
* _team_key_generation_check
* fix TeamBase
* fix team endpoints
* fix api docs check
* add team_member_permissions
* add GetTeamMemberPermissionsRequest types
* crud endpoint for team member permissions
* test team member permissions CRUD
* fix GetTeamMemberPermissionsRequest
* endpoint for updating default team settings on ui
* add GET default team settings endpoint
* ui expose default team settings on UI
* update to use DefaultTeamSSOParams
* DefaultTeamSSOParams
* fix DefaultTeamSSOParams
* docs team management
* test_update_default_team_settings
* fix(cost_calculator.py): handle custom pricing at deployment level for router
* test: add unit tests
* fix(router.py): show custom pricing on UI
check correct model str
* fix: fix linting error
* docs(custom_pricing.md): clarify custom pricing for proxy
Fixes https://github.com/BerriAI/litellm/issues/8573#issuecomment-2790420740
* test: update code qa test
* fix: cleanup traceback
* fix: handle litellm param custom pricing
* test: update test
* fix(cost_calculator.py): add router model id to list of potential model names
* fix(cost_calculator.py): fix router model id check
* fix: router.py - maintain older model registry approach
* fix: fix ruff check
* fix(router.py): router get deployment info
add custom values to mapped dict
* test: update test
* fix(utils.py): update only if value is non-null
* test: add unit test
* rendering tags on UI
* use /models for building tags
* CRUD endpoints for Tag management
* fix tag management
* working api for LIST tags
* working tag management
* refactor UI components
* fixes ui tag management
* clean up ui tag management
* fix tag management ui
* fix show allowed llms
* e2e tag controls
* stash change for rendering tags on UI
* ui working tag selector on Test Key page
* fixes for tag management
* clean up tag info
* fix code quality
* test for tag management
* ui clarify what tag routing is
* fix(model_management_endpoints.py): fix allowing team admins to update their models
* test(test_models.py): add e2e test to for team model flow
ensure team admin can always add / edit / delete team models
* feat(internal_user_endpoints.py): allow non-admin to view their own usage via `/user/daily/activity` route
* fix(leftnav.tsx): allow users to view their own usage via new_usage.tsx
allows internal users to see their usage via new api
Handles 1m+ spend logs scenario
* fix(leftnav.tsx): allow all users to see new usage tab
* fix(new_usage.tsx): enable smooth scrolling - remove double scroll bars
enables easier viewing of overflowing content
* fix(new_usage.tsx): fix ordering of daily spend
ensure always from earliest to latest date
* feat(internal_user_endpoints.py): return key alias on `/user/daily/activity`
Enables easier consumption on UI
* fix(new_usage.tsx): show key alias on usage tab
* feat(activity_metric.tsx): new activity panel - showing spend per model per day
allows debugging if models are not being tracked
* fix(top_key_view.tsx): use consistent param for selecting key
* feat(internal_user_endpoints.py): return 'total_tokens' in `/user/daily/analytics`
* test(test_internal_user_endpoints.py): add unit test to assert spend metrics and dailyspend metadata always report the same fields
* build(schema.prisma): record success + failure calls to daily user table
allows understanding why model requests might exceed provider requests (e.g. user hit rate limit error)
* fix(internal_user_endpoints.py): report success / failure requests in API
* fix(proxy/utils.py): default to success
status can be missing or none at times for successful requests
* feat(new_usage.tsx): show success/failure calls on UI
* style(new_usage.tsx): ui cleanup
* fix: fix linting error
* fix: fix linting error
* feat(litellm-proxy-extras/): add new migration files
* fix(internal_user_endpoints.py): cleanup unused variables on beta endpoint
no team/org split on daily user endpoint
* build(model_prices_and_context_window.json): gemini-2.0-flash supports audio input
* feat(gemini/transformation.py): support passing audio input to gemini
* test: fix test
* fix(gemini/transformation.py): support audio input as a url
enables passing google cloud bucket urls
* fix(gemini/transformation.py): support explicitly passing format of file
* fix(gemini/transformation.py): expand support for inferred file types from url
* fix(sagemaker/completion/transformation.py): fix special token error when counting sagemaker tokens
* test: fix import
* build(pyproject.toml): add new dev dependencies - for type checking
* build: reformat files to fit black
* ci: reformat to fit black
* ci(test-litellm.yml): make tests run clear
* build(pyproject.toml): add ruff
* fix: fix ruff checks
* build(mypy/): fix mypy linting errors
* fix(hashicorp_secret_manager.py): fix passing cert for tls auth
* build(mypy/): resolve all mypy errors
* test: update test
* fix: fix black formatting
* build(pre-commit-config.yaml): use poetry run black
* fix(proxy_server.py): fix linting error
* fix: fix ruff safe representation error
* feat(spend_management_endpoints.py): expose new endpoint for querying user's usage at 1m+ spend logs
Allows user to view their spend at 1m+ spend logs
* build(schema.prisma): add api_requests to dailyuserspend table
* build(migration.sql): add migration file for new column to daily user spend table
* build(prisma_client.py): add logic for copying over migration folder, if deploy/migrations present in expected location
enables easier testing of prisma migration flow
* build(ui/): initial commit successfully using the dailyuserspend table on the UI
* refactor(internal_user_endpoints.py): refactor `/user/daily/activity` to give breakdowns by provider/model/key
* feat: feature parity (cost page) with existing 'usage' page
* build(ui/): add activity tab to new_usage.tsx
gets to feature parity on 'All Up' page of 'usage.tsx'
* fix(proxy/utils.py): count number of api requests in daily user spend table
allows us to see activity by model on new usage tab
* style(new_usage.tsx): fix y-axis to be in ascending order of date
* fix: fix linting errors
* fix: fix ruff check errors
* build: new ui build
* build: new ui build
* fix(proxy_server.py): only show user models their key can access on `/models`
* fix(model_management_endpoints.py): ensure team admin can add models
* test: update unit testing to reflect changes
* fix(model_dashboard.tsx): fix sizing on models page
* build: fix ui
* feat(view_logs.tsx): show model id + api base in request logs
easier debugging
* fix(index.tsx): fix length of api base
easier viewing
* refactor(leftnav.tsx): show models tab to team admin
* feat(model_dashboard.tsx): add explainer for what the 'models' page is for team admin
helps them understand how they can use it
* feat(model_management_endpoints.py): restrict model add by team to just team admin
allow team admin to add models via non-team keys (e.g. ui token)
* test(test_add_update_models.py): update unit testing for new behaviour
* fix(model_dashboard.tsx): show user the models
* feat(proxy_server.py): add new query param 'user_models_only' to `/v2/model/info`
Allows user to retrieve just the models they've added
Used in UI to show internal users just the models they've added
* feat(model_dashboard.tsx): allow team admins to view their own models
* fix: allow ui user to fetch model cost map
* feat(add_model_tab.tsx): require team admins to specify team when onboarding models
* fix(_types.py): add `/v1/model/info` to info route
`/model/info` was already there
* fix(model_info_view.tsx): allow user to edit a model they created
* fix(model_management_endpoints.py): allow team admin to update team model
* feat(model_managament_endpoints.py): allow team admin to delete team models
* fix(model_management_endpoints.py): don't require team id to be set when adding a model
* fix(proxy_server.py): fix linting error
* fix: fix ui linting error
* fix(model_management_endpoints.py): ensure consistent auth checks on all model calls
* test: remove old test - function no longer exists in same form
* test: add updated mock testing