* fix(create_key_button.tsx): add prompts on UI
* feat(key_management_endpoints.py): support adding prompt to key via `/key/update`
* fix(key_info_view.tsx): show existing prompts on key in key_info_view.tsx
* fix(key_edit_view.tsx): UX - disable premium feature for non-premium users
prevent accidental clicking
* fix(create_key_button.tsx): disable premium features behind flag, prevent errors
* feat(prompts.tsx): add new ui component to view created prompts
enables viewing prompts created on config
* feat(prompt_info.tsx): add component for viewing the prompt information
* feat(prompt_endpoints.py): support converting dotprompt to json structure + accept json structure in promptmanager
allows prompt manager to work with api endpoints
* test(test_prompt_manager.py): add unit tests for json data input
* feat(dotprompt/__init__.py): add prompt data to dotpromptmanager
* fix(prompt_endpoints.py): working crud endpoints for prompt management
* feat(prompts/): support `prompt_file` for dotprompt
allows to precisely point to the prompt file a prompt should use
* feat(proxy/utils.py): resolve prompt id correctly
resolves user sent prompt id with internal prompt id
* feat(schema.prisma): initial pr with db schema for prompt management table
allows post endpoints to work with backend
* feat(prompt_endpoints.py): use db in patch_prompt endpoint
* feat(prompt_endpoints.py): use db for update_prompt endpoint
* feat(prompt_endpoints.py): use db on prompt delete endpoint
* build(schema.prisma): add prompt tale to schema.prisma in litellm-proxy-extras
* build(migration.sql): add new sql migration file
* fix(init_prompts.py): fix init
* feat(prompt_info_view.tsx): show the raw prompt template on ui
allows developer to know the prompt template they'll be calling
* feat(add_prompt_form.tsx): working ui add prompt flow
allows user to add prompts to litellm via ui
* build(ui/): styling fixes
* build(ui/): prompts.tsx
styling improvements
* fix(add_prompt_form.tsx): styling improvements
* build(prompts.tsx): styling improvements
* build(ui/): styling improvements
* build(ui/): fix ui error
* fix: fix ruff check
* docs: document new api params
* test: update tests
* added mcp tools on internal user and divide it by teams
* add support for server api call
* Added frontend for test key
* added tools used output
* fix ui for servers
* All servers to personal
* change columns format
* revert ui logic
* Added vertical align
* fix mapped tests
* fix lint
* fix lint
* remove extra file
* fix ui test
* comments fixes
* change query type
* change query type
* mcp acces group init
* add ability to change server display on ui through access groups
* Mcp access group names UI (#12486)
* Added ui changes to reflect mcp_access_groups
* fix edit mcp page
* change to string array (#12491)
* change to string array
* Remove print
* add ability to change server display on ui through access groups
* Litellm mcp access groups accesses (#12498)
* added mcp access groups for keys and teams
* added access groups above servers
* fixed ruff
* fixed mypy
* revert couple changes
* fix(common_daily_activity.py): initial commit with working mock BE endpoint for mcp usage
* feat(ui/): show mcp server activity on UI
allows admin to know which mcp's are being used
* feat(common_daily_activity.py): return activity by key
* feat(ui/): show top api keys for a given model / mcp server
allow user to know which key is driving spend
* fix(common_daily_activity.py): use known mcp server names
* feat(server.py): log the namespaced tool name (includes server prefix)
allow accurate cost tracking
* feat(db_spend_update_writer.py): log by mcp_namespaced_tool_name
store aggregate daily activity by mcp_namespaced_tool_name
Enables cost / usage tracking by mcp tool name
* fix(server.py): add key/user metadata to mcp calls
* refactor(common_daily_activity.py): update to return mcp activity in API
* fix(common_daily_activity.py): handle empty key
* fix(common_daily_activity.py): track when api key is empty
* test(test_spend_management_endpoints.py): update tests
* fix: fix ui linting error
* fix: fix linting errors
* test: add missing key
* build(schema.prisma): add mcp tool tracking
* fix(migration.sql): add schema migration file
* feat(server.py): add request logging for mcp calls
enables storing the mcp calls
* fix(new_usage.tsx): fix linting errors
* fix: fix code qa errors
* fix(activity_metrics.tsx): fix ui linting errors post-merge
* fix(types/utils.py): fix linting error
* fix(server.py): always have name
* Fixes issue with team_endpoints on member budget update
* refactored location of budget membership fix
* added test for _upsert_budget_membership func
* fix: init commit for object permissions
* fix: init commit for object permissions
* fix: add vector_store_id to permissions
* fix vector store selector
* feat:add vector store permission mgmt
* feat: ui add allowed vector stores dropdown
* feat: add new vector store object permissions
* testing: key mgmt
* fix: stor vector store permissions on team
* ui select vector store for teams
* ui add vector store settings for orgs
* feat: allow setting org vector store permissions
* test: adding team permissions for vector stores
* fix: cleanup print statement
* feat(managed_files.py): add auth check on managed files
Implemented for file retrieve + delete calls
* feat(files_endpoints.py): support returning files by model name
enables managed file support
* feat(managed_files/): filter list of files by the ones created by user
prevents user from seeing another file
* test: update test
* fix(files_endpoints.py): list_files - always default to provider based routing
* build: add new table to prisma schema
* [FIX] Update token fields in schema.prisma to use BigInt for improved handling of large values across LiteLLM models.
* [FIX] revert SpendLogs back to Int
* MCP Server DB Schema (#10634)
* feat: initial mcp db schema
* user -> team table for mcp_servers
* remove mcp_servers from team and verificationtoken tables
---------
Co-authored-by: wagnerjt <wagnerjt@github.com>
* add mcp table
* Team and Key Object Permission table for MCP Servers (#10643)
* feat: initial mcp db schema
* user -> team table for mcp_servers
* remove mcp_servers from team and verificationtoken tables
* adding ObjectPermissionTable relationship for mcpservers
* fix: object_permission_id and added relationship to User and Organization tables
---------
Co-authored-by: wagnerjt <wagnerjt@github.com>
* migration file - add_mcp_key_team_permission_mgmt
---------
Co-authored-by: Tyler Wagner <wagnerjt@users.noreply.github.com>
Co-authored-by: wagnerjt <wagnerjt@github.com>
* 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
* 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: 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
* 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(schema.prisma): initial commit adding aggregate table for team spend
allows team spend to be visible at 1m+ logs
* feat(db_spend_update_writer.py): support logging aggregate team spend
allows usage dashboard to work at 1m+ logs
* feat(litellm-proxy-extras/): add new migration file
* fix(db_spend_update_writer.py): fix return type
* build: bump requirements
* fix: fix ruff error
* fix(openai.py): ensure openai file object shows up on logs
* fix(managed_files.py): return unified file id as b64 str
allows retrieve file id to work as expected
* fix(managed_files.py): apply decoded file id transformation
* fix: add unit test for file id + decode logic
* fix: initial commit for litellm_proxy support with CRUD Endpoints
* fix(managed_files.py): support retrieve file operation
* fix(managed_files.py): support for DELETE endpoint for files
* fix(managed_files.py): retrieve file content support
supports retrieve file content api from openai
* fix: fix linting error
* test: update tests
* fix: fix linting error
* feat(managed_files.py): support reading / writing files in DB
* feat(managed_files.py): support deleting file from DB on delete
* test: update testing
* fix(spend_tracking_utils.py): ensure each file create request is logged correctly
* fix(managed_files.py): fix storing / returning managed file object from cache
* fix(files/main.py): pass litellm params to azure route
* test: fix test
* build: add new prisma migration
* build: bump requirements
* test: add more testing
* refactor: cleanup post merge w/ main
* fix: fix code qa errors
* 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
* 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
* fix(proxy/_types.py): return created_by and updated_by on /key/list
enables better trail of who made a key
* fix(all_keys_table.tsx): add created by to key table
allows easier tracking of who generated the key
* fix(key_management_endpoints.py): track 'created_by' and 'updated_by' fields
enable easier tracking of who created proxy keys
* 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
* feat: initial commit for new 'organizations' tab on ui
* build(ui/): create generic card for rendering complete org data table
can be reused in teams as well
simplifies things
* build(ui/): display created orgs on ui
* build(ui/): support adding orgs via UI
* build(ui/): add org in selection dropdown
* build(organizations.tsx): allow assigning org admins
* build(ui/): show org members on ui
* build(ui/): cleanup + show actual models on org dropdown
* build(ui/): explain user roles within organization
* track LiteLLM_OrganizationMembership
* add add_internal_user_to_organization
* add org membership to schema
* read organization membership when reading user info in auth checks
* add check for valid organization_id
* add test for test_create_new_user_in_organization
* test test_create_new_user_in_organization
* add new ADMIN role
* add test for org admins creating teams
* add test for test_org_admin_create_user_permissions
* test_org_admin_create_user_team_wrong_org_permissions
* test_org_admin_create_user_team_wrong_org_permissions
* fix organization_role_based_access_check
* fix getting user members
* fix TeamBase
* fix types used for use role
* fix type checks
* sync prisma schema
* docs - organization admins
* fix use organization_endpoints for /organization management
* add types for org member endpoints
* fix role name for org admin
* add type for member add response
* add organization/member_add
* add error handling for adding members to an org
* add nice doc string for oranization/member_add
* fix test_create_new_user_in_organization
* linting fix
* use simple route changes
* fix types
* add organization member roles
* add org admin auth checks
* add auth checks for orgs
* test for creating teams as org admin
* simplify org id usage
* fix typo
* test test_org_admin_create_user_team_wrong_org_permissions
* fix type check issue
* code quality fix
* fix schema.prisma
* store sso provider in user metadata
* store user metadata
* store user auth_provider in user metadata
* add "metadata" for LiteLLM_UserTable
* fix sso test