Commit graph

42355 commits

Author SHA1 Message Date
Shivam Rawat
d3f81fa799
Merge branch 'litellm_internal_staging' into litellm_metrics_auth 2026-04-17 16:53:21 -07:00
shivam
49ddb0e5ba
style: apply Black formatting to Prometheus integration modules
Reformat prometheus logger, types, and metrics auth middleware so lint CI (black --check) passes.

Made-with: Cursor
2026-04-17 16:43:02 -07:00
shivam
733ccd6e09
fixed linting 2026-04-17 16:36:34 -07:00
ishaan-berri
1c128a86b8
Merge pull request #25256 from BerriAI/litellm_ishaan_april6
Some checks are pending
Unit Tests: Proxy DB Operations / proxy-db (auth-checks, tests/proxy_unit_tests/test_auth_checks.py tests/proxy_unit_tests/test_user_api_key_auth.py, 20, 8) (push) Waiting to run
Unit Tests: Proxy DB Operations / proxy-db (key-generation, tests/proxy_unit_tests/test_key_generate_prisma.py, 30, 0) (push) Waiting to run
Unit Tests: Proxy DB Operations / proxy-db (remaining, tests/proxy_unit_tests --ignore=tests/proxy_unit_tests/test_key_generate_prisma.py --ignore=tests/proxy_unit_tests/test_auth_checks.py --ignore=tests/proxy_unit_tests/test_user_api_key_auth.py, 30, 8) (push) Waiting to run
Unit Tests: Security / security (push) Waiting to run
Litellm ishaan april6
2026-04-17 16:26:45 -07:00
Ishaan Jaffer
e6a20af646
fix(proxy-extras): skip post-deploy sanity check when no migrations pending
When prisma migrate deploy reports 'No pending migrations to apply' the DB
already matches schema — running _resolve_all_migrations (migrate diff +
prisma db execute) adds 25+ seconds unnecessarily, causing the proxy to
miss the 90-second startup timeout in test_litellm_proxy_server_config_no_general_settings.
2026-04-17 15:59:41 -07:00
Ishaan Jaffer
e073feec0a
fix(ui): rename claude-code-plugins to skills in page_metadata.ts
page_utils.test.ts enforces that every menuGroups entry has a matching
description and vice versa. The left nav uses 'skills' but page_metadata.ts
still had 'claude-code-plugins', causing two test failures.
2026-04-17 15:49:24 -07:00
Ishaan Jaffer
33175a8ee7
fix(proxy-extras): fall back to prisma db execute when migrate diff fails on pooler URL
When DIRECT_URL is not set and DATABASE_URL is a Neon pooler URL, prisma migrate diff
fails (pooler doesn't support extended query protocol for schema introspection). Previously
_resolve_all_migrations returned early without applying any migrations, leaving the
budget_limits column missing and causing test_auth_callback_new_user to fail.

Now falls back to running each migration SQL file via prisma db execute --file, which
works with pooler URLs and is safe to re-run due to IF NOT EXISTS guards.
2026-04-17 15:38:48 -07:00
Ishaan Jaffer
70456fb8bb
fix(ui): update add_plugin_form tests to match rewritten smart URL form 2026-04-17 15:17:21 -07:00
Ishaan Jaffer
33a2cee4af
fix(proxy-extras): use DIRECT_URL for prisma migrate diff, tempfile for diff dir 2026-04-17 15:17:15 -07:00
Yuneng Jiang
ee2cf0e6e8
fix: address three CI failures from recent security PR merges
- url_utils.py: narrow sockaddr[0] from str|int to str via a helper with a
  fail-closed isinstance check. Fixes the two mypy errors introduced by
  the SSRF hardening without masking unexpected stdlib behavior.

- key_management_endpoints.py: restore the documented team member_permissions
  path for /key/update. The cross-key admin check added to close the
  cross-org rewrite attack was over-broad: it rejected non-admin team
  members even when can_team_member_execute_key_management_endpoint had
  already validated their team membership and /key/update grant. Now skip
  the admin check when the key has a team_id and the change is non-budget
  (membership + permission already enforced above). Budget/spend changes
  still require team/org admin. The cross-org attack remains blocked:
  an outside org admin fails the earlier team membership check.

- test_logging_redaction_e2e_test.py: rename and rewrite two parametrized
  tests to assert that request-body turn_off_message_logging has no effect.
  Reflects the intentional removal of turn_off_message_logging from
  _supported_callback_params so the caller cannot override admin logging
  policy via the request body.

- test_key_management_endpoints.py: add two tests covering the restored
  team member permission path — one positive (non-budget update succeeds
  for a team member with /key/update grant), one negative (max_budget
  change still rejected without admin role).
2026-04-17 15:11:45 -07:00
Ishaan Jaffer
7c47bbd226
fix(migration): run schema sanity check after P3009/P3018 idempotent migration recovery 2026-04-17 15:01:10 -07:00
yuneng-jiang
6a9f8f7772
Merge pull request #25972 from BerriAI/litellm_yj_apr16
[Infra] Merge dev branch
2026-04-17 14:58:52 -07:00
Ishaan Jaffer
9281147a1a
fix(schema): add budget_limits Json? to LiteLLM_TeamTable and LiteLLM_VerificationToken 2026-04-17 14:47:18 -07:00
Ishaan Jaffer
b91a6f52b7
fix(schema): add budget_limits Json? to LiteLLM_TeamTable and LiteLLM_VerificationToken 2026-04-17 14:47:12 -07:00
Ishaan Jaffer
7239ed60e9
fix(schema): add budget_limits Json? to LiteLLM_TeamTable and LiteLLM_VerificationToken 2026-04-17 14:47:05 -07:00
Ishaan Jaffer
7b3480a94a
fix(team_delete): exclude budget_limits and default_team_member_models from deleted team record 2026-04-17 14:42:09 -07:00
Ishaan Jaffer
574633fcf1
fix(key_delete): exclude budget_limits from deleted verification token record 2026-04-17 14:21:39 -07:00
Ishaan Jaffer
6636329f69
fix(proxy): revert budget exceeded error code from 429 to 400 2026-04-17 14:02:04 -07:00
Ishaan Jaffer
b4df07a244
style(prometheus): apply Black formatting to types/integrations/prometheus.py 2026-04-17 13:49:27 -07:00
Ishaan Jaffer
2808cb908c
style(prometheus): apply Black formatting to prometheus.py 2026-04-17 13:49:24 -07:00
Ishaan Jaffer
7867497751
style(github_copilot): revert authenticator.py to origin/main formatting 2026-04-17 13:45:50 -07:00
Ishaan Jaffer
9de041f8ee
style(prometheus): sync types/integrations/prometheus.py formatting with origin/main 2026-04-17 13:45:22 -07:00
Ishaan Jaffer
2395a2db4d
style(prometheus): sync prometheus.py formatting with origin/main 2026-04-17 13:45:19 -07:00
Ishaan Jaffer
b7aa045de1
style(github_copilot): shorten __init__ docstring to avoid Black edge case 2026-04-17 13:33:14 -07:00
Yuneng Jiang
1e25a00e5d
[Docs] BYOK tutorial: document the UI-only configuration path 2026-04-17 13:32:17 -07:00
Yuneng Jiang
7eae18d158
[Feature] UI - Settings: toggle row for forward_llm_provider_auth_headers 2026-04-17 13:32:17 -07:00
Yuneng Jiang
9a8aa4fae4
[Feature] UI - Models: add api_base field for Anthropic provider form 2026-04-17 13:32:17 -07:00
Yuneng Jiang
ad48af69aa
[Feature] UI - Models: allow empty api_key for Anthropic provider (BYOK) 2026-04-17 13:32:17 -07:00
Yuneng Jiang
d0f1706479
[Test] pre-call utils: regression coverage for BYOK x-api-key forwarding 2026-04-17 13:32:17 -07:00
Yuneng Jiang
66167f532e
[Feature] UI - Settings: add forward_llm_provider_auth_headers toggle 2026-04-17 13:32:17 -07:00
shivam
7020b0a64b
fix(proxy): replay ASGI receive after metrics auth to avoid /metrics hang 2026-04-17 13:32:05 -07:00
ishaan-berri
6ed292956e
Merge pull request #25934 from BerriAI/litellm_prometheus_improvements
[WIP][Perf] Litellm prometheus improvements
2026-04-17 13:28:12 -07:00
Ishaan Jaffer
3aa63d524e
style(github_copilot): simplify _get_github_headers return type annotation 2026-04-17 13:27:47 -07:00
Ishaan Jaffer
d369f0a1c1
docs(user_management): add budget_limits param to user_update docstring 2026-04-17 13:13:03 -07:00
Ishaan Jaffer
77767f5787
docs(org_management): add allowed_models param to new_organization docstring 2026-04-17 13:06:34 -07:00
Krrish Dholakia
dd76cc5d9d
docs: add "Copy Page as Markdown" + llms.txt to docs site (#25975)
* docs: add copy-page-as-markdown button + llms.txt generation

Adds the signalwire llms-txt Docusaurus plugin + theme so every
docs page gets:
- A "Copy Page" dropdown in the breadcrumbs (Copy, View Markdown,
  Ask ChatGPT, Ask Claude) — defaults from the theme hook, no
  extra config required.
- A raw `.md` companion at `<page>.md` for LLM consumption.
- Site-wide `/llms.txt` index and `/llms-full.txt` corpus.

The signalwire plugin README documents a `copyPageButton` option
that the v1.2.2 Joi schema actually rejects; the theme's defaults
cover the same feature set, so only `content.enableMarkdownFiles`
and `enableLlmsFullTxt` are set. Theme is pinned to `1.0.0-alpha.9`
because the floating version resolves to a broken canary whose
`main` points at a missing file.

Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>

* docs: pin exact versions for signalwire llms-txt deps

Drop the caret ranges on the two packages added in the prior
commit so the docs site pulls byte-identical npm tarballs on
every install. Matches the existing convention in this
package.json (everything else is already exact) and protects
against supply-chain substitution if a malicious patch version
is published under the same minor.

Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>

* docs: upgrade signalwire llms-txt plugin to v2 alpha + enable copy button

The stable v1.2.2 plugin we first pinned does not call setGlobalData
during contentLoaded, so the theme's CopyPageContent component always
returned null (its `!siteConfig` bailout). The theme v1.0.0-alpha.9
is built against the v2-alpha plugin API, which is the version that
actually wires the copy-content JSON and plugin config into the theme
via setGlobalData.

Pins plugin to 2.0.0-alpha.7 (exact, no caret) and switches the
config to the v2 schema:
- top-level `markdown` + `llmsTxt` replace the v1 `content` block
- new `ui.copyPageContent` (off by default in v2) enables the button
  with view-markdown + ChatGPT + Claude actions.

Verified end-to-end: production build serves the dropdown with
"Copy Raw Markdown", "View Markdown", "Reference in ChatGPT", and
"Reference in Claude" on /docs/routing (button mounts at ~x=960 in
the breadcrumbs row).

Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: yuneng-jiang <yuneng@berri.ai>
Co-authored-by: Claude Opus 4 (1M context) <noreply@anthropic.com>
2026-04-17 13:03:12 -07:00
Ishaan Jaffer
e8461b5b97
style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
Ishaan Jaffer
ab44df202b
docs(team_management): add budget_limits and default_team_member_models to update_team docstring 2026-04-17 13:02:39 -07:00
Ishaan Jaffer
375cfb7f95
chore: update uv.lock after merging main 2026-04-17 12:56:23 -07:00
Ishaan Jaffer
2893301a0e
docs(team_management): add budget_limits and default_team_member_models params to new_team docstring 2026-04-17 12:55:33 -07:00
Ishaan Jaffer
09e0137bb2
docs(user_management): add budget_limits param to new_user docstring 2026-04-17 12:51:53 -07:00
harish-berri
8e77f9ee94 resolving code comments to move helper logic to ``prometheus_helper.py`` 2026-04-17 19:50:02 +00:00
Ishaan Jaffer
4423d09845
fix(ui): add missing Accordion imports to TeamInfo.tsx 2026-04-17 12:47:27 -07:00
Ishaan Jaffer
b2aa186d56
docs(key_management): add budget_limits param to update_key_fn docstring 2026-04-17 12:47:26 -07:00
Ishaan Jaffer
665306b4f0
fix(ui): fix TypeScript error - publicPage === true in narrowed false context 2026-04-17 12:41:33 -07:00
Ishaan Jaffer
a508a9665a
docs(key_management): add budget_limits param to generate_key_fn docstring 2026-04-17 12:41:30 -07:00
Ishaan Jaffer
f31d4faa87
Merge origin/main into litellm_ishaan_april6 2026-04-17 12:36:51 -07:00
ishaan-berri
bd5f560f56
Merge pull request #25930 from BerriAI/litellm_xai_grok-4.20-0309-reasoning
Add support for grok-4.20-0309-reasoning model
2026-04-17 12:30:32 -07:00
yuneng-jiang
7c66edbf4a
Merge pull request #25906 from stuxf/fix/ssrf-url-validation
fix(proxy): add URL validation for user-supplied URLs
2026-04-17 12:19:03 -07:00
yuneng-jiang
32714a4dc2
Merge pull request #25905 from stuxf/fix/metadata-security-controls
fix(proxy): read guardrail config from admin metadata, fix tag routing consistency
2026-04-17 12:16:28 -07:00