* refactor(teams.tsx): refactor to display all teams, across all orgs
removes org switcher from navbar, simplifies viewing/creating teams on UI
* fix(key_list.tsx): show user keys across all orgs
make it easy to see flat list of keys across orgs on key table
* style(all_keys_table.tsx): cleanup keys table
* fix(user_dashboard.tsx): remove overflow-hidden in dashboard component
* fix(teams.tsx): move org id placement in create team flow
* fix(teams.tsx): support model selection on create team based on selected org
* feat(view_key_table.tsx): move to using a filter component on keys page
allows filtering keys by org and team
* fix(filter.tsx): handle reset filter
* fix: fix linting error
* (Feat) - return `x-litellm-attempted-fallbacks` in responses from litellm proxy (#8558)
* add_fallback_headers_to_response
* test x-litellm-attempted-fallbacks
* unit test attempted fallbacks
* fix add_fallback_headers_to_response
* docs document response headers
* fix file name
* test fix use mock endpoints for e2e files and ft tests
* Revert "test fix use mock endpoints for e2e files and ft tests"
This reverts commit c921d8dd81.
* cleanup_azure_files
* Add remaining org CRUD endpoints + support deleting orgs on UI (#8561)
* feat(organization_endpoints.py): expose new `/organization/delete` endpoint. Cascade org deletion to member, teams and keys
Ensures any org deletion is handled correctly
* test(test_organizations.py): add simple test to ensure org deletion works
* feat(organization_endpoints.py): expose /organization/update endpoint, and define response models for org delete + update
* fix(organizations.tsx): support org delete on UI + move org/delete endpoint to use DELETE
* feat(organization_endpoints.py): support `/organization/member_update` endpoint
Allow admin to update member's role within org
* feat(organization_endpoints.py): support deleting member from org
* test(test_organizations.py): add e2e test to ensure org member flow works
* fix(organization_endpoints.py): fix code qa check
* fix(schema.prisma): don't introduce ondelete:cascade - breaking change
* docs(organization_endpoints.py): document missing params
* refactor(organization_view.tsx): initial commit creating a generic update member component shared between org and team member classes
* feat(organization_view.tsx): support updating org member role on UI
* feat(organization_view.tsx): allow proxy admin to delete members from org
* Enable update/delete org members on UI (#8560)
* feat(organization_endpoints.py): expose new `/organization/delete` endpoint. Cascade org deletion to member, teams and keys
Ensures any org deletion is handled correctly
* test(test_organizations.py): add simple test to ensure org deletion works
* feat(organization_endpoints.py): expose /organization/update endpoint, and define response models for org delete + update
* fix(organizations.tsx): support org delete on UI + move org/delete endpoint to use DELETE
* feat(organization_endpoints.py): support `/organization/member_update` endpoint
Allow admin to update member's role within org
* feat(organization_endpoints.py): support deleting member from org
* test(test_organizations.py): add e2e test to ensure org member flow works
* fix(organization_endpoints.py): fix code qa check
* fix(schema.prisma): don't introduce ondelete:cascade - breaking change
* docs(organization_endpoints.py): document missing params
* (Bug Fix) - Add Regenerate Key on Virtual Keys Tab (#8567)
* add regenerate key to ui
* ui fix key info
* (Bug Fix + Better Observability) - BudgetResetJob: (#8562)
* use class ResetBudgetJob
* refactor reset budget job
* update reset_budget job
* refactor reset budget job
* fix LiteLLM_UserTable
* refactor reset budget job
* add telemetry for reset budget job
* dd - log service success/failure on DD
* add detailed reset budget reset info on DD
* initialize_scheduled_background_jobs
* refactor reset budget job
* trigger service failure hook when fails to reset a budget for team, key, user
* fix resetBudgetJob
* unit testing for ResetBudgetJob
* test_duration_in_seconds_basic
* testing for triggering service logging
* fix logs on test teams fail
* remove unused imports
* fix import duration in s
* duration_in_seconds
* (Patch/bug fix) - UI, filter out litellm ui session tokens on Virtual Keys Page (#8568)
* fix key list endpoint
* _get_condition_to_filter_out_ui_session_tokens
* duration_in_seconds
* test_list_key_helper_team_filtering
* bump: version 1.61.4 → 1.61.5
* ui fix tsx linting
* ui new build
* test_list_key_helper_team_filtering
* ui new build
* test_openai_fine_tuning
* test_openai_fine_tuning
---------
Co-authored-by: Ishaan Jaff <ishaanjaffer0324@gmail.com>
* new key table
* clean up
* fix view all team keys
* fixed create key button
* show all keys
* ui select team flow
* pagination on keys
* fix aligning of team and pagination
* show key hash
* allow clicking into key
* click into a key
* add current status
* fix key alias edit
* delete key
* fix(create_key_button.tsx): allow user to select team when creating key
* working edit key
* feat(create_key_button.tsx): switch available models based on selected team
enables user to create a key for a specific team
* fix(create_key_button.tsx): improve type safety of component
* fix(create_key_button.tsx): style cleanup
* pass team all the way thru
* refactor getTeamModels
* fix(columns.tsx): make cost easier to see
* ui fix edit key ui
* cleanup
* fix linting error
* fix filter
* fix linting
* ui fix all keys
* fix linting
* fix linting
* fix org id
* fix linting
* fix linting
* fix linting
* fix linting
* fix linting
* fix linting
---------
Co-authored-by: Krrish Dholakia <krrishdholakia@gmail.com>
* fix(key_management_endpoints.py): fix `/key/list` to include `return_full_object` as a top-level query param
Allows user to specify they want the keys as a list of objects
* refactor(key_list.tsx): initial refactor of key table in user dashboard
offloads key filtering logic to backend api
prevents common error of user not being able to see their keys
* fix(key_management_endpoints.py): allow internal user to query `/key/list` to see their keys
* fix(key_management_endpoints.py): add validation checks and filtering to `/key/list` endpoint
allow internal user to see their keys. not anybody else's
* fix(view_key_table.tsx): fix issue where internal user could not see default team keys
* fix: fix linting error
* fix: fix linting error
* fix: fix linting error
* fix: fix linting error
* fix: fix linting error
* fix: fix linting error
* fix: fix linting error
* feat(team_endpoints.py): support returning teams filtered by organization_id
allows user to just get teams they belong to, within the org
Enables org admin to see filtered list of teams on UI
* fix(teams.tsx): simple filter for team on ui - just filter team based on selected org id
* feat(ui/organizations): show 'default org' in switcher, filter teams based on selected org
* feat(user_dashboard.tsx): update team in switcher when org changes
* feat(schema.prisma): add new 'organization_id' value to key table
allow org admin to directly issue keys to a user within their org
* fix(view_key_table.tsx): fix regression where admin couldn't see keys
caused by bad console log statement
* fix(team_endpoints.py): handle default org value in /team/list
* fix(key_management_endpoints.py): allow proxy admin to create keys for team they're not in
* fix(team_endpoints.py): fix team endpoint to handle org id not being passed in
* build(config.yml): investigate what pkg is installing posthog in ci/cd
* ci(config.yml): uninstall posthog
prevent it from being added in ci/cd
* ci: auto-install ci
* [Bug] UI: Newly created key does not display on the View Key Page (#8039)
- Fixed issue where all keys appeared blank for admin users.
- Implemented filtering of data via team settings to ensure all keys are displayed correctly.
* Fix:
- Updated the validator to allow model editing when `keyTeam.team_alias === "Default Team"`.
- Ensured other teams still follow the original validation rules.
Co-authored-by: Taha Ali <123803932+tahaali-dev@users.noreply.github.com>
* fix message.error
* fix add return_wildcard_routes
* ui edit modelAvailableCall
* fetchAvailableModelsForTeamOrKey
* ui set all models for a team
* ui define common helpers
* edit create key button
* fix viewing model display names
* fix editing team models
* update gitignore
* add jest testing for ui
* Revert "add jest testing for ui"
This reverts commit 98f9a3ebfd.
* fix(ui/): revert user team key view
* fix(view_key_table.tsx): fix default team view - show all personal keys
* fix(navbar.tsx): fix custom logo
Fixes https://github.com/BerriAI/litellm/issues/7895
---------
Co-authored-by: Ishaan Jaff <ishaanjaffer0324@gmail.com>
* test(test_basic_python_version.py): assert all optional dependencies are marked as extras on poetry
Fixes https://github.com/BerriAI/litellm/issues/7677
* docs(secret.md): clarify 'read_and_write' secret manager usage on aws
* docs(secret.md): fix doc
* build(ui/teams.tsx): add edit/delete button for updating user / team membership on ui
allows updating user role to admin on ui
* build(ui/teams.tsx): display edit member component on ui, when edit button on member clicked
* feat(team_endpoints.py): support updating team member role to admin via api endpoints
allows team member to become admin post-add
* build(ui/user_dashboard.tsx): if team admin - show all team keys
Fixes https://github.com/BerriAI/litellm/issues/7650
* test(config.yml): add tomli to ci/cd
* test: don't call python_basic_testing in local testing (covered by python 3.13 testing)