litellm/tests/test_litellm/integrations
Ryan Crabbe 3d72e2a6f3
fix(guardrails): address PR #25575 review feedback + sync kill switch with opt-out list
Renames the new per-guardrail opt-out field from `disabled_global_guardrails`
to `opted_out_global_guardrails` to eliminate the one-character collision with
the legacy `disable_global_guardrails` boolean kill switch. Adds a type guard
on the new gate so a misnamed bool can't crash the guardrail check. Filters
duplicates out of the team-edit guardrail display for legacy teams that have a
global name persisted in `metadata.guardrails` from before this PR. Drops the
unused `isGuardrailsLoading` and `guardrailsError` destructures left in
AddModelForm after the hook refactor.

Adds Python tests for the new gate behavior (root, litellm_metadata, metadata,
non-matching name, empty list, malformed bool value, opt-in coexistence) and
extends useGuardrails.test.ts to exercise the global / optional partition
logic that the rebuilt hook performs in its `select` transform.

Wires the legacy kill switch and the new opt-out list together in the team
edit form so they can never fall out of sync:

- Toggling the kill switch reactively updates the Guardrails Select via
  `onValuesChange` — switch on strips all globals from the selection, switch
  off re-adds them. Existing opt-in extras are preserved either way.
- When the switch is on, global options in the Select are individually
  disabled (greyed out) so the user can still manage opt-in guardrails but
  cannot accidentally re-enable a global the kill switch is bypassing.
- The save handler writes both fields together: `disable_global_guardrails`
  reflects the switch, and `opted_out_global_guardrails` is set to either
  every global (when the switch is on) or the user's explicit opt-outs.
- `effectiveGuardrails` for the form's initialValues honors the kill switch
  on legacy teams so the form opens in a state that matches what the runtime
  gate is actually doing — fixes the visual lie where chips appeared active
  while the switch was bypassing them.

The backend gate already reads the list as the primary path with the bool
as a fallback, so untouched legacy teams keep working until they get edited,
at which point they migrate naturally.
2026-04-11 17:48:16 -07:00
..
arize fix(arize-phoenix): enable nested traces coexistence with otel callback 2026-02-26 04:59:17 -05:00
azure_storage
bitbucket
cloudzero
datadog Ishaan - March 18th changes (#24056) 2026-03-19 10:20:35 -07:00
dotprompt
focus [Fix] Use cached async HTTP client in Vantage destination 2026-03-14 12:23:40 -07:00
gcs_bucket
gcs_pubsub
gitlab
langfuse fix: prevent sys.modules["langfuse"] import failures in langfuse unit tests 2026-02-18 08:22:23 -03:00
levo
litellm_agent Agent Builder - support new experimental agent builder, to ensure agents pass compliance checks (#21817) 2026-02-21 15:32:47 -08:00
open_telemetry/data
SlackAlerting feat: add optional digest mode for Slack alert types (#21683) 2026-02-21 15:19:17 -08:00
websearch_interception Litellm fix update bedrock models (#24947) 2026-04-01 19:22:54 -07:00
test_agentops.py
test_anthropic_cache_control_hook.py Merge branch 'main' into litellm_oss_staging_03_04_2026 2026-03-11 18:31:20 +05:30
test_athina.py
test_azure_sentinel.py
test_braintrust_logging.py
test_braintrust_span_name.py
test_custom_guardrail_recursion.py fix: recursive pydantic issue (#19531) 2026-01-22 19:56:41 -08:00
test_custom_guardrail.py fix(guardrails): address PR #25575 review feedback + sync kill switch with opt-out list 2026-04-11 17:48:16 -07:00
test_custom_prompt_management.py
test_deepeval.py
test_langfuse_otel.py fix: prevent sys.modules["langfuse"] import failures in langfuse unit tests 2026-02-18 08:22:23 -03:00
test_langfuse.py Align Langfuse trace_id fallback with DB session_id for failed requests 2026-03-02 20:55:31 +05:30
test_langsmith_init.py Merge branch 'main' into litellm_oss_staging_03_17_2026 2026-03-20 08:42:41 +05:30
test_mlflow.py
test_openmeter.py
test_opentelemetry_dynamic_imports.py
test_opentelemetry.py Code review 2026-03-18 16:25:42 -05:00
test_prometheus_cache_metrics.py
test_prometheus_client_ip_user_agent.py Litellm oss staging 04 02 2026 p1 (#25055) 2026-04-08 21:37:10 -07:00
test_prometheus_invalid_key_filtering.py
test_prometheus_labels.py fix(prometheus): sanitize label values to prevent metric scrape failures (#20600) 2026-02-09 15:48:59 -08:00
test_prometheus_metric_name_consistency.py
test_prometheus_missing_metrics.py add callbacks and labels to prometheus (#19708) 2026-01-25 23:03:23 -08:00
test_prometheus_none_metadata.py fix: guard against None metadata in prometheus metrics (#21489) 2026-02-18 12:40:45 -08:00
test_prometheus_queue_guardrail_metrics.py
test_prometheus_services.py fix(proxy): resolve high CPU when router_settings in DB by avoiding REGISTRY.collect() in PrometheusServicesLogger (#20087) 2026-01-30 14:01:45 -08:00
test_prometheus_spend_logs_metadata.py test(prometheus): add tests for spend_logs_metadata in custom labels 2026-03-23 11:02:21 -07:00
test_prometheus_stream_label.py feat(prometheus): add opt-in stream label to litellm_proxy_total_requests_metric (#22023) 2026-02-24 11:51:42 -08:00
test_prometheus_user_team_metrics.py Litellm oss staging 04 02 2026 p1 (#25055) 2026-04-08 21:37:10 -07:00
test_responses_background_cost.py fix(test): update test_responses_background_cost assertions for pagination and stale cleanup 2026-03-13 16:18:15 -07:00
test_s3_v2.py Merge pull request #21157 from Point72/ephrimstanley/s3-logger-skip-missing-standard-logging-object 2026-02-16 18:29:59 +05:30
test_weave_otel.py