Commit graph

4874 commits

Author SHA1 Message Date
Krish Dholakia
7273bb442a
UI - allow reassigning team to other org (#10527)
* 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
2025-05-03 08:44:43 -07:00
Ishaan Jaff
988e20aa36
[QA] Bedrock Vector Stores Integration - Allow using with registry + in OpenAI API spec with tools (#10516)
* 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
2025-05-03 08:30:38 -07:00
Krish Dholakia
b412d70232
UI - fix adding vertex models with reusable credentials + fix pagination on keys table + fix showing org budgets on table (#10528)
* 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>
2025-05-03 08:16:53 -07:00
Ishaan Jaff
e013d7e529
[Feat] Show Vector Store / KB Request on LiteLLM Logs Page (#10514)
* 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
2025-05-02 16:14:09 -07:00
Krrish Dholakia
c884c9f296 build: update litellm version 2025-05-02 10:07:53 -07:00
Krish Dholakia
c0a464e4eb
fix(all_keys_table.tsx): fix filtering on key alias across multiple p… (#10455)
* 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
2025-04-30 22:21:41 -07:00
Ishaan Jaff
be885e4a17
[Feat] Vector Stores/KnowledgeBases - Allow defining Vector Store Configs (#10448)
* 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
2025-04-30 21:49:59 -07:00
Ishaan Jaff
7c679abe85
ui - add nvidia triton models (#10456) 2025-04-30 21:42:15 -07:00
Ishaan Jaff
fcaac91724 ui new build 2025-04-26 18:25:50 -07:00
Krish Dholakia
2ab00bd12c
Litellm UI improvements 04 26 2025 p1 (#10346)
* 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
2025-04-26 18:24:49 -07:00
Ishaan Jaff
d6103c3962 ui fix linting 2025-04-26 17:44:09 -07:00
Ishaan Jaff
c2480db73d
[Bug Fix] UI QA - Fix wildcard model test connection not working (#10347)
* fix setFieldsValue for wildcard

* fix async_completion_with_fallbacks

* fix ahealth_check_wildcard_models
2025-04-26 17:42:06 -07:00
Ishaan Jaff
f30479557e fix remove Column Selector, it seems to not be working 2025-04-26 16:36:14 -07:00
Ishaan Jaff
f2c9406980
fix /sso/callback (#10345) 2025-04-26 16:27:40 -07:00
Ishaan Jaff
9ab9744fac
ui - fix infinite scroll on test key page (#10343) 2025-04-26 16:18:54 -07:00
Ishaan Jaff
58878aa0bb
[UI] Fixes for sessions on UI - ensure errors have a session and use 1 session for test key (#10342)
* ui fix use same trace id on test key page

* _get_session_id_for_spend_log

* fix linting
2025-04-26 16:02:58 -07:00
Ishaan Jaff
93759b4cc7 ui new build 2025-04-26 08:28:49 -07:00
Christian Owusu
350bae9be0
Internal Users: Refresh user list on create (#10296)
* Clean up

* Refactor

* Internal Users: Refresh user list on create
2025-04-26 08:01:24 -07:00
Ishaan Jaff
8d73259561 ui session management - link to docs 2025-04-26 07:55:28 -07:00
Nandini Bagga
ab9705781f
create key table render fix (#10224)
Co-authored-by: Krish Dholakia <krrishdholakia@gmail.com>
2025-04-26 07:51:56 -07:00
Ishaan Jaff
331e784db4
[Feat] Responses API - Add session management support for non-openai models (#10321)
* 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
2025-04-25 23:24:24 -07:00
Krish Dholakia
c66c821f96
UI (Keys Page) - Support cross filtering, filter by user id, filter by key hash (#10322)
* feat(filter.tsx): initial commit making filter component more generic - same style as user table filters

* refactor(all_keys_table.tsx): refactor to simplify update logic

* fix: partially revert changes - reduce scope of pr

* fix(filter_logic.tsx): fix filter update logic

* fix(all_keys_table.tsx): fix filtering + search logic

* refactor: cleanup unused params

* Revert "fix(all_keys_table.tsx): fix filtering + search logic"

This reverts commit 5fbc331970.

* feat(filter_logic.tsx): allow filter by user id

* fix(key_management_endpoints.py): support filtering `/key/list` by  key hash

Enables lookup by key hash on ui

* fix(key_list.tsx): fix update

* fix(key_management.py): fix linting error

* test: update testing

* fix(prometheus.py): fix key hash

* style(all_keys_table.tsx): style improvements

* test: fix test
2025-04-25 21:30:56 -07:00
Krish Dholakia
fee3dc970c
UI (Teams Page) - Support filtering by team id + team name (#10324)
* 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
2025-04-25 18:19:29 -07:00
Krish Dholakia
1cd6e78ccb
UI - Add team based filtering to models page (#10325)
* feat(model_dashboard.tsx): make it easier to see all models for a specific team

* fix(model_dashboard.tsx): fix filtering to work for team deselect
2025-04-25 17:39:17 -07:00
Marc Abramowitz
56d00c43f7
Keys page: Use keys rather than logs terminology (#10253) 2025-04-24 14:25:59 -07:00
Christian Owusu
b82af5b826
Fix UI Flicker in Dashboard (#10261) 2025-04-23 23:27:44 -07:00
Krrish Dholakia
05d617bea0 build(ui/): new ui build 2025-04-23 22:09:14 -07:00
Krish Dholakia
ab68af4ff5
Litellm multi admin fixes (#10259)
* 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.
2025-04-23 22:02:02 -07:00
Krish Dholakia
be4152c8d5
UI - fix edit azure public model name + fix editing model name post create
* 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
2025-04-23 21:56:56 -07:00
Christian Owusu
a260afb74d
Reset key alias value when resetting filters (#10099) 2025-04-23 21:04:40 -07:00
Krrish Dholakia
1014529ed6 build(ui/): update ui build 2025-04-23 16:55:35 -07:00
Krish Dholakia
edd15b0905
fix(user_dashboard.tsx): add token expiry logic to user dashboard (#10250)
* 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
2025-04-23 16:51:27 -07:00
Christian Owusu
47420d8d68
Require auth for all dashboard pages (#10229)
* Require authentication for all Dashboard pages

* Add test

* Add test
2025-04-23 07:08:25 -07:00
Krish Dholakia
f670ebeb2f
Users page - new user info pane (#10213)
* 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
2025-04-22 21:55:47 -07:00
Krish Dholakia
5f98d4d7de
UI - Users page - Enable global sorting (allows finding users with highest spend) (#10211)
* 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
2025-04-22 19:59:53 -07:00
Krish Dholakia
66680c421d
Add global filtering to Users tab (#10195)
* 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
2025-04-22 13:59:43 -07:00
Krrish Dholakia
4a50cf10fb build: update ui build 2025-04-21 16:26:36 -07:00
Krish Dholakia
89131d8ed3
Remove user_id from url (#10192)
* 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
2025-04-21 16:22:57 -07:00
Krrish Dholakia
a34778dda6 build(ui/): update ui build
supports new non-user id in url flow
2025-04-21 16:22:28 -07:00
Ishaan Jaff
431b230f07
[UI] Bug Fix, team model selector (#10171)
* fix tooltip

* bug fix fix team model selector
2025-04-19 16:31:38 -07:00
Ishaan Jaff
c80e984d7e ui new build 2025-04-19 14:19:33 -07:00
Ishaan Jaff
0717369ae6
[Feat] Expose Responses API on LiteLLM UI Test Key Page (#10166)
* add /responses API on UI

* add makeOpenAIResponsesRequest

* add makeOpenAIResponsesRequest

* fix add responses API on UI

* fix endpoint selector

* responses API render chunks on litellm chat ui

* fixes to streaming iterator

* fix render responses completed events

* fixes for MockResponsesAPIStreamingIterator

* transform_responses_api_request_to_chat_completion_request

* fix for responses API

* test_basic_openai_responses_api_streaming

* fix base responses api tests
2025-04-19 13:18:54 -07:00
Krish Dholakia
ef6ac42658
Litellm dev 04 18 2025 p2 (#10157)
* 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
2025-04-19 07:32:23 -07:00
Marc Abramowitz
3c71a81100
Remove unnecessary package*.json files (#10075) 2025-04-17 20:03:56 -07:00
Marc Abramowitz
409dde22f6
UI: Make columns resizable/hideable in Models table (#10119)
* 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
2025-04-17 18:12:20 -07:00
Krrish Dholakia
78c6d73dea build: new ui build 2025-04-16 22:11:53 -07:00
Ishaan Jaff
0ced13aec8
Virtual Keys: Filter by key alias (#10035) (#10085)
Co-authored-by: Christian Owusu <36159205+crisshaker@users.noreply.github.com>
2025-04-16 19:46:05 -07:00
Ishaan Jaff
12ccb954a6 ui new build 2025-04-16 19:23:04 -07:00
Ishaan Jaff
6220f3e7b8
[Feat SSO] Add LiteLLM SCIM Integration for Team and User management (#10072)
* fix NewUser response type

* add scim router

* add v0 scim v2 endpoints

* working scim transformation

* use 1 file for types

* fix scim firstname and givenName storage

* working SCIMErrorResponse

* working team / group provisioning on SCIM

* add SCIMPatchOp

* move scim folder

* fix import scim_router

* fix dont auto create scim keys

* add auth on all scim endpoints

* add is_virtual_key_allowed_to_call_route

* fix allowed routes

* fix for key management

* fix allowed routes check

* clean up error message

* fix code check

* fix for route checks

* ui SCIM support

* add UI tab for SCIM

* fixes SCIM

* fixes for SCIM settings on ui

* scim settings

* clean up scim view

* add migration for allowed_routes in keys table

* refactor scim transform

* fix SCIM linting error

* fix code quality check

* fix ui linting

* test_scim_transformations.py
2025-04-16 19:21:47 -07:00
Krish Dholakia
7ca553b235
Add team based usage dashboard at 1m+ spend logs (+ new /team/daily/activity API) (#10081)
* 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
2025-04-16 18:10:14 -07:00