* feat(team_info.tsx): allow user to reassign team to another org
* style(team_info.tsx): fix org id styling
* feat(team_endpoints.py): add validation check before migrating team to another org
ensure model access, budgets and membership is respected
* fix(team_endpoints.py): update model migration validation to check if org has 'all-proxy-models' access
* fix(organization_view.tsx): show teams belonging to org
* feat(team_endpoints.py): handle wildcard model check on org migration
* fix(team_endpoints.py): nest router check
* test: update testing - use model with higher quota
* build: update poetry lock
* refactor KB implementation to use central registry
* allow passing tools when making KB calls
* test fixes
* linting fix
* fix kb tests
* QA for KB stored in DB
* fix, use litellm_credential_name when adding KB on litellm UI
* QA list endpoint vector stores
* allow using UI creds with KBs
* feat(provider_specific_fields.tsx): Use correct form instance
Fixes https://github.com/BerriAI/litellm/issues/10115
* Fix broken pagination by correctly passing page and pageSize to keyListCall (#10498)
* [Organization] Include litellm_budget_table in /organization/list response (#10488)
* join litellm_budget_table in /organization/list endpoint
* update test
---------
Co-authored-by: tanjiro <56165694+NANDINI-star@users.noreply.github.com>
* ensure vector store results are logged in SLP
* fix tests
* fix tests with vector_store_request_metadata
* fix linting
* track duration of vector store, only log content when user opts into it
* working vector store viewer
* fix custom llm provider - Vector Store Requests
* fix vector store viewer
* fix logging redacted vector searches
* testing for storing KB queries in DB
* fix(all_keys_table.tsx): fix filtering on key alias across multiple pages
* fix(key_management_endpoints.py): enable global sorting on `/key/list`
* feat(all_keys_table.tsx): support sorting on keys table
* feat(all_keys_table.tsx): enable global sorting
* ci(config.yml): add requests mock
* init vector store configs
* working kb init
* add vector store endpoints
* use litellm_credential_name
* working CRUD vector stores litellm
* working creds with vector DB
* ui cleanup
* clean up vector store id
* fix delete button
* refactored vector store component
* working selector for KBs
* ui vector stores
* add vector store tool calls usage on chat ui
* fixes for vector stores litellm
* test fix
* docs Knowledge Bases
* fixes for vector stores litellm
* fix linting
* add managed vectorstores
* fix orjson ci/cd test
* fix linting
* add types.tsx file
* fix(provider_info_helpers.tsx): fix together ai provider name
* fix(user_edit_view.tsx): all admin to edit user's personal models
* fix(model_dashboard.tsx): fix model filtering by team id check
* fix(proxy_server.py): support returning available models for a user on `/model_group/info`
Fixes issue where personal key with 'all team models' would see all proxy models (not just the ones user can call)
* test(test_models.py): add unit test for model group info check on personal key
* add session id in spendLogs
* fix log proxy server request as independant field
* use trace id for SpendLogs
* add _ENTERPRISE_ResponsesSessionHandler
* use _ENTERPRISE_ResponsesSessionHandler
* working session_ids
* working session management
* working session_ids
* test_async_gcs_pub_sub_v1
* test_spend_logs_payload_e2e
* working session_ids
* test_get_standard_logging_payload_trace_id
* test_get_standard_logging_payload_trace_id
* test_gcs_pub_sub.py
* fix all linting errors
* test_spend_logs_payload_with_prompts_enabled
* _ENTERPRISE_ResponsesSessionHandler
* _ENTERPRISE_ResponsesSessionHandler
* expose session id on ui
* get spend logs by session
* add sessionSpendLogsCall
* add session handling
* session logs
* ui session details
* fix on rowExpandDetails
* ui working sessions
* feat(team_endpoints.py): support new `/v2/team/list` endpoint - paginated + partial filtering support
Allows UI to support partial filtering on team tab
* feat(teams/): working team filtering based on partial alias
allows easier search on team alias on UI
* fix(teams.tsx): clarify team id needs to be specified (partial match not supported here)
working team id lookup on litellm UI
* fix(proxy/_types.py): allow `/v2/team/list` to be called for internal user
allows filtering
* fix(team_endpoints.py): fix returning non-admin only teams they're a member of
* fix(team_endpoints.py): fix check
* fix(create_user_button.tsx): do not set 'no-default-models' when user is a proxy admin
* fix(user_info_view.tsx): show all user personal models
* feat(user_info_view.tsx): allow giving users more personal models
* feat(user_edit_view.tsx): allow proxy admin to edit user role, available models, etc.
* test(test_router.py): add unit test confirming fallbacks with tag based routing works as expected
* test: update testing
* test: update test to not use gemini-pro
google removed it
* fix(conditional_public_model_name.tsx): edit azure public model name
Fixes https://github.com/BerriAI/litellm/issues/10093
* fix(model_info_view.tsx): migrate to patch model updates
Enables changing model name easily
* fix(user_dashboard.tsx): add token expiry logic to user dashboard
if token expired redirect to `/sso/key/generate` for login
* fix(user_dashboard.tsx): check key health on login - if invalid -> redirect to login
handles invalid / expired key scenario
* fix(user_dashboard.tsx): fix linting error
* fix(page.tsx): fix invitation link flow
* feat(user_info_view.tsx): be able to click in and see all teams user is part of
makes it easy to see which teams a user belongs to
* test(ui/): add unit testing for user info view
* fix(user_info_view.tsx): fix linting errors
* fix(login.ts): fix login
* fix: fix linting error
* fix(view_users.tsx): add time tracking logic to debounce search - prevent new queries from being overwritten by previous ones
* fix(internal_user_endpoints.py): add sort functionality to user list endpoint
* feat(internal_user_endpoints.py): support sort by on `/user/list`
* fix(view_users.tsx): enable global sorting
allows finding user with highest spend
* feat(view_users.tsx): support filtering by sso user id
* test(search_users.spec.ts): add tests to ensure filtering works
* test: add more unit testing
* style(internal_user_endpoints.py): add response model to `/user/list` endpoint
make sure we maintain consistent response spec
* fix(key_management_endpoints.py): return 'created_at' and 'updated_at' on `/key/generate`
Show 'created_at' on UI when key created
* test(test_keys.py): add e2e test to ensure created at is always returned
* fix(view_users.tsx): support global search by user email
allows easier search
* test(search_users.spec.ts): add e2e test ensure user search works on admin ui
* fix(view_users.tsx): support filtering user by role and user id
More powerful filtering on internal users table
* fix(view_users.tsx): allow filtering users by team
* style(view_users.tsx): cleanup ui to show filters in consistent style
* refactor(view_users.tsx): cleanup to just use 1 variable for the data
* fix(view_users.tsx): cleanup use effect hooks
* fix(internal_user_endpoints.py): fix check to pass testing
* test: update tests
* test: update tests
* Revert "test: update tests"
This reverts commit 6553eeb232.
* fix(view_userts.tsx): add back in 'previous' and 'next' tabs for pagination
* fix(user_dashboard.tsx): initial commit using user id from jwt instead of url
* fix(proxy_server.py): remove user id from url
fixes security issue around sharing url's
* fix(user_dashboard.tsx): handle user id being null
* 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
* Make columns resizable in Models table
* Make edit and delete buttons sticky on right side
* Add Columns dropdown to control which columns are shown
* Remove unnecessary dependencies
* Fix title of visibility checkboxes for Input Cost and Output Cost
* Make the Columns dropdown close if the user clicks anywhere outside of it
* 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