* added status filtering on logs
* added model filter
* fix linter
* fix model filtering
* modified status filter to use status column from LiteLLM_SpendLogs
* remove json import
* fix(model_management_endpoints.py): allow team admin to update model via `/model/{model_id}/update` route
Fixes ui regression where team admin could not modify their own models
* fix(provider_specific_fields.tsx): style fix
* fix(table.tsx): allow expanding multiple rows
* fix(organization_endpoints.py): more robust check if user can give org model access
handle when user has models=["all-proxy-models"]
* fix(organization_endpoints.py): enable proxy admin with 'all-proxy-model' access to create new org with specific models
Fixes LIT-135
* fix: fix linting error
* fix: fix ui linting error
* fix(index.tsx): fix linting errors
* 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