Commit graph

91 commits

Author SHA1 Message Date
yuneng-jiang
cb18af542e
Merge pull request #17498 from BerriAI/litellm_customer_usage_backend
[Feature] Customer (end user) Usage
2025-12-05 15:31:08 -08:00
Ishaan Jaff
8f592088ed
[Feat] Agent Access Control - Enforce Allowed agents by key, team + add agent access groups on backend (#17502)
* init schema.prisma

* init LiteLLM_ObjectPermissionTable with agents and agent_access_groups

* TestAgentRequestHandler

* refatctor agent list

* add AgentRequestHandler

* fix agent access controls by key/team

* feat - new migration for LiteLLM_AgentsTable

* fix add LiteLLM_ObjectPermissionBase with agent and agent groups

* add agent routes to llm api routes

* add agent routes as llm route
2025-12-04 16:31:00 -08:00
yuneng-jiang
1834377950 Adding migration 2025-12-04 12:57:06 -08:00
yuneng-jiang
562afb208d v0 customer usage, pending tests + extras version bump 2025-12-04 12:30:08 -08:00
yuneng-jiang
e629a6b703 Merge remote-tracking branch 'origin' into litellm_org_usage 2025-11-24 21:14:05 -08:00
yuya_matsuba
262fb742d2
Fix: Distinguish permission errors from idempotent errors in Prisma migrations (#17064)
* fix: distinguish permission errors from idempotent errors in Prisma migrations

* style: apply Black formatting and fix line length issues
2025-11-24 20:41:44 -08:00
yuneng-jiang
dd72ff3abf Add organization_id to spend logs table 2025-11-22 12:54:49 -08:00
yuneng-jiang
6029a24baa Merge remote-tracking branch 'origin' into litellm_org_usage 2025-11-20 20:19:16 -08:00
Ishaan Jaff
c7cf18cf67
[Feat] Prompt Management - Allow storing prompt version in DB (#16848)
* test_dotprompt_auto_detection_with_model_only

* fix _auto_detect_prompt_management_logger

* test_dotprompt_with_prompt_version

* add v1, v2 tests

* add _compile_prompt_helper

* fix _compile_prompt_helper

* test_dotprompt_with_prompt_version

* test_dotprompt_with_prompt_version, test_get_prompt_with_version

* add version in schema

* feat add _get_prompt_spec_for_db_prompt

* add _get_prompt_spec_for_db_prompt

* feat add _get_prompt_spec_for_db_prompt

* update prompt table

* add version in prompt DB

* test_get_prompt_spec_for_db_prompt_with_versions
2025-11-19 13:19:56 -08:00
Krish Dholakia
39917f2ff7
Agents - AI Hub, make agents discoverable on model hub page for internal discovery (#16678)
* feat: initial commit adding agent hub to ui

* feat: add viewable agent hub

* feat: working support for making both config + db agents public via new 'public_agent_groups' list

* fix: agents.py

fix types

* feat: working PATCH endpoint for UI changes

* feat: add new agents panel with working crud

* refactor: refactor to show created_at on be/fe

* style: align new page with the agents table

* style: more style alignment logic

* feat: return if agent is public or not in /v1/agents

* feat: initial commit adding ui flow for making agents discoverable

* feat: new batch make public endpoint

* feat(public_model_hub.tsx): show public agents on public model hub table page

* fix(public_model_hub.tsx): add code examples for using the agent in a2a

* fix: fix indicating if agent has already been made public

* docs: document expected spec for agents is A2A

* docs: add agent hub docs

* docs: document making agents discoverable

* docs: add demo video to docs

* fix: fix ui linting errors

* fix: update tests
2025-11-15 18:25:16 -08:00
yuneng-jiang
f36cbccd56 Merge remote-tracking branch 'origin' into litellm_org_usage 2025-11-15 16:28:12 -08:00
Krrish Dholakia
54e7792933 fix: remove dailytag request id migration from agents_table.sql 2025-11-14 18:24:01 -08:00
Krish Dholakia
8097fafc05
Agents - support agent registration + discovery (A2A spec) (#16615)
* fix: initial commit adding types

* refactor: refactor to include agent registry

* feat(agents/): endpoints.py

working endpoint for agent discovery

* feat(agent_endpoints/endpoints.py): add permission management logic to agents endpoint

* feat: public endpoint for showing publicly discoverable agents

* feat: make /public/agent_hub discoverable

* feat(agent_endpoints/endpoints.py): working create agent endpoint

adds dynamic agent registration to the proxy

* feat: working crud endpoints

* feat: working multi-instance create/delete agents

* feat(migration.sql): add migration for agents table
2025-11-14 18:23:30 -08:00
yuneng-jiang
ae4dfb53dd Add migration 2025-11-14 18:06:49 -08:00
yuneng-jiang
63dcd00b8b Merge remote-tracking branch 'origin/main' into litellm_org_usage 2025-11-14 18:05:50 -08:00
Ishaan Jaffer
87b7780182 fix LiteLLM_DailyTagSpend add request_id 2025-11-14 17:35:54 -08:00
yuneng-jiang
94da5c076c Add Daily Org Spend Table, read path, and write path 2025-11-12 18:22:26 -08:00
yuneng-jiang
67478a9074
[Fix] Litellm tags usage add request_id (#16111)
* Add request_id into tag spend

* Linting
2025-11-11 18:53:48 -08:00
YutaSaito
6eb74bd62a
Feat/persist mcp credentials in db (#16308)
* feat: persist mcp credentials in db

* feat: remove Auth Value field from MCP Tool Testing Playground

* fix: test
2025-11-07 19:22:49 -08:00
YutaSaito
8e27b6c0b4
[MCP] configure static mcp header (#16179)
* feat: configure extra mcp headers in ui

* doc: static header

* build: add new migration file

* chore: add missing image file

* fix: test
2025-11-03 21:06:36 -08:00
Krrish Dholakia
6637beb247 fix: minor fixes + dep updates 2025-11-01 13:45:42 -07:00
Krrish Dholakia
0ae74aca88 build: add new migration file 2025-11-01 12:37:40 -07:00
Ishaan Jaffer
98af05fb43 add LiteLLM_SSOConfig 2025-10-31 18:15:37 -07:00
Ishaan Jaff
c59a0c9681
[Feat] UI - Allow setting cache settings on UI (#16143)
* add LiteLLM_CacheConfig

* add CacheSettingsField

* add UI cache saver

* feat add cache_settings_router

* fix schema

* fix ssl_check_hostname

* refactor into utils

* add groups for field names

* add test_connection in base cache

* add test_connection inredis and redis cluster

* feat _decrypt_db_variables

* add cache settings endpoints

* test_test_cache_connection_calls_cache_test_connection_with_params

* fix: add switch_on_llm_response_caching

* feat use CacheSettingsManager

* feat use CacheSettingsManager

* TestCacheSettingsManager

* fix update_config

* Cache Field test
2025-10-31 17:43:59 -07:00
yuneng-jiang
720ba865fb
[Infra] Litellm Backend SSO Changes (#16029)
* SSO Backend changes

* Encrypt and Decrypt, load into os env

* Linting and addressing comments
2025-10-30 14:32:08 -07:00
Ishaan Jaff
d8ea1665c7
[Feat] - [Backend] Search APIs - Allow storing configured Search APIs in DB (#15862)
* add LiteLLM_SearchToolsTable

* init SearchToolRegistry

* fix add SearchToolRegistry

* fix add SearchToolRegistry

* fix handling search tool management

* fix search imports

* fix registry

* init search tools in memory

* fix init tools in mem

* fix TypedDict def

* add new SCHEMA

* bump proxy extras

* add LiteLLM_SearchToolsTable_search_tool_name_key

* bump extras with migration

* fix working CRUD Ops

* fix: _init_search_tools_in_db
2025-10-23 17:57:49 -07:00
Krish Dholakia
ff930dc6df
Merge branch 'main' into litellm_dev_10_10_2025_p2 2025-10-11 13:03:16 -07:00
Ishaan Jaffer
63d34cfe8f DB - add LiteLLM_TagTable 2025-10-11 08:43:34 -07:00
Ishaan Jaff
527c8f59fa
[Feat] Tag Management - Add support for setting tag based budgets (#15433)
* feat: add LiteLLM_TagTable

* fix: use new table for tag management

* fix - allow setting budgets for tags

* working tag creation

* fix schema.prisma

* add tag info

* ui fixes

* ui fix tag info

* TAG_CACHE_IN_MEMORY_TTL_SECONDS

* add Litellm_EntityType

* fix get_aggregated_db_spend_update_transactions

* fix: _update_entity_spend_in_db

* fix _tag_max_budget_check

* add tag budget check

* add tag_list_transactions

* test_get_tag_objects_batch

* test_update_tag_db_without_prisma_client

* fix get_tags_from_request_body

* get_tags_from_request_body

* fix get_tags_from_request_body

* fix spend tracking utils

* get_tags_from_request_body

* test_get_tags_from_request_body_with_metadata_tags

* feat: add _update_tag_cache spend tracking

* fix _PROXY_track_cost_callback

* test_tag_cache_update_multiple_tags

* fix tag info

* docs fix

* docs tag budgets

* doc fix

* docs fix

* fix tag budget

* docs tag budgets

* docs fix

* ruff fix
2025-10-10 19:24:50 -07:00
Krrish Dholakia
43826e3cdd fix(litellm-proxy-extras/utils.py): run resolve_all_migrations after running prisma migrate deploy
catch any drift between prisma schema and db

Fixes reoccuring issues for users where db columns are missing
2025-10-10 15:55:21 -07:00
VEQK (Ville Kolehmainen)
2e01fa4f51 Remove hardcoded schema 2025-10-09 10:03:19 +03:00
Ishaan Jaff
930f88078e
[MCP Gateway] Backend - Allow storing allowed tools by team/key (#15243)
* add mcp_tool_permissions column to LiteLLM_ObjectPermissionTable

* add mcp_tool_permissions

* add LiteLLM_ObjectPermissionTable

* test key/team mgmt

* fix code QA check

* fix check_tool_permission_for_key_team

* test_key_tool_permission_allows_permitted_tool

* test_list_tools_filters_by_key_team_permissions

* fix _get_tools_from_mcp_servers

* fix logger.debug

* fix check_tool_permission_for_key_team

* fix: filter_tools_by_key_team_permissions

* fix _get_team_object_permission

* fix _set_object_permission

* fix handle_update_object_permission_common

* fix add allowed tools to keys

* test add key/team level tool permissions for MCPs
2025-10-06 18:49:32 -07:00
Ishaan Jaffer
e9e91a4b28 fix remove dup migration 2025-10-04 16:13:33 -07:00
Krish Dholakia
a9037ab61f
Merge branch 'main' into litellm_dev_10_03_2025_p1 2025-10-04 15:23:31 -07:00
Ishaan Jaffer
51457541b0 fix add allowed tools 2025-10-04 12:37:12 -07:00
Ishaan Jaffer
6c79e12367 fix schema 2025-10-04 12:26:36 -07:00
Krrish Dholakia
f5cda40bc6 feat: prisma migration 2025-10-04 08:53:08 -07:00
Krrish Dholakia
39cac8e58a build(ui/): show updated schema.prisma 2025-10-03 19:07:50 -07:00
Krrish Dholakia
742038bb5e build: deploy/
push new prisma migration
2025-10-03 16:52:03 -07:00
Ishaan Jaffer
ffd6411b9c add new migration 2025-09-26 19:47:48 -07:00
Ishaan Jaff
628cd13755
[Feat] UI - Allow scheduling key rotations when creating virtual keys (#14960)
* fix design of key reset interval

* fix: LiteLLM_VerificationToken

* fix key manager

* add key_rotation_at

* ui fix

* fix ui view

* set key_rotation_at  on creation

* add key_rotation_at

* fix info

* fix: _set_key_rotation_fields

* fix KeyRotationManager

* fix key edit view

* test_update_key_fn_auto_rotate_enable

* fix KeyRotationManager
2025-09-26 16:24:40 -07:00
Ishaan Jaff
ea8d0bb7d5 fix: re-add scheduled rotations 2025-09-26 11:40:46 -07:00
Ishaan Jaffer
b1e56c55ad merge 2025-09-24 22:11:37 -07:00
Ishaan Jaff
ded823a3a3
[Feat] Initial support for scheduled key rotations (#14877)
* add KeyRotationSettings

* add KeyRotationManager

* add key rotation manager

* add KeyRotationManager

* fix _initialize_spend_tracking_background_jobs

* fix add_key_rotation_fields

* fixes

* new fields in schema

* update schema

* fix fixes for init key rotation manager

* fixes for init key rotation manager

* fix KeyRotationManager

* tests for key rotation

* fix key_rotation_settings

* fix KeyRotationManager

* fix LITELLM_KEY_ROTATION_CHECK_INTERVAL_SECONDS

* fix fixes for init key rotation manager

* ruff check fix

* fix LITELLM_KEY_ROTATION_CHECK_INTERVAL_SECONDS

* fix _initialize_spend_tracking_background_jobs

* docs fix

* docs auto rotate

* schema fix

* bump proxy extras

* fix config.yml
2025-09-24 21:37:56 -07:00
Yuta Saito
654f1d3290 fix: stop including spec_version in MCP server registration inserts 2025-09-19 07:06:15 +09:00
Krrish Dholakia
6b2039f4d7 fix(utils.py): add helpful log message, directing to use of LITELLM_MIGRATION_DIR 2025-08-21 16:41:21 -07:00
Krish Dholakia
f00e891004
LiteLLM SDK <-> Proxy: support user param + Prisma - remove use_prisma_migrate flag - redundant as this is now default (#13555)
* fix(litellm_proxy/chat/transformation.py): support 'user' and all other openai chat completion params

Fixes issue where 'user' was not being sent in request to litellm proxy via sdk

* fix(prisma_migration.py): remove 'use_prisma_migrate' flag, is now default

* docs: cleanup docs

* fix(proxy_cli.py): remove --use_prisma_migrate flag

* refactor: remove references to use_prisma_migrate env var

This is now the default flow for db migrations
2025-08-12 22:03:39 -07:00
Jugal D. Bhatt
c3cc10387e
added new migration files (#13345) 2025-08-06 13:12:39 -07:00
Krish Dholakia
3119064e94
Prompt Management - add prompts on UI (#13240)
* 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
2025-08-02 22:33:37 -07:00
Jugal D. Bhatt
fa7e203953
fix migrations (#13157) 2025-07-30 15:56:45 -07:00