litellm/tests/unit/integrations
yucheng-berri 788868a52f
fix(security)!: build proxy-only failure logs from an allowlist and drop caller guardrail info (#48599)
* fix(proxy): build proxy-only failure logs from an allowlist and ignore request-time GCS credentials

* fix(proxy): drop caller metadata from proxy-only failure logs

metadata and litellm_metadata leave the proxy-only failure-log allowlist, so a rejected request can no longer point its failure log at its own Langsmith or Langfuse host through nested metadata.

* fix(proxy): keep allowlisted metadata in proxy-only failure logs

* test(proxy): isolate proxy-only failure log metadata tests

* fix(logging): ignore non-list request tags when building the logging payload

A guardrail-rejected request with metadata tags set to a non-list value crashed
the standard logging payload, so its spend row lost model attribution.

* fix(proxy): keep router attribution and drop unauthenticated tags in proxy-only failure logs

A request rejected before routing now logs the configured deployment and model group even when its metadata or litellm_metadata carries its own values. Requests rejected at auth no longer write caller tags into failure logs and tag spend.

* fix(proxy): always strip client guardrail info and mirror failure attribution into litellm_metadata

allow_client_pricing_override no longer keeps a caller-supplied standard_logging_guardrail_information on the chat or pass-through paths, since its guardrail_cost is billed. Proxy-only failure logs now also carry key and team attribution in litellm_metadata.

* refactor(proxy): keep the proxy-only failure-log fixes inside the type gates

Types the picked helpers so basedpyright and the type-discipline gate stay at main's counts. No runtime change.

* fix(proxy): keep the WS frame guardrail-info strip and string interaction tags as sent

The guardrail-info key left the pricing strip list, so the Responses WS frame guard now drops it by name. get_request_tags no longer raises on string tags, so background interaction polling checks for them before keeping them as sent.

---------

Co-authored-by: mateo-berri <277851410+mateo-berri@users.noreply.github.com>
2026-10-27 12:40:59 -07:00
..
arize
azure_storage
bitbucket
clickhouse
cloudzero
code_interpreter_interception
compression_interception
datadog
dotprompt refactor(typing): clear 1181 basedpyright Any errors across 431 files (#47789) 2026-10-24 11:31:09 -07:00
focus
gcs_bucket fix(security)!: build proxy-only failure logs from an allowlist and drop caller guardrail info (#48599) 2026-10-27 12:40:59 -07:00
gcs_pubsub fix(proxy): attribute retry attempt spend rows to their deployment and keep them out of daily request counts (#47658) 2026-10-20 23:33:01 +00:00
generic_api
gitlab
helicone
langfuse
levo
litellm_agent
mavvrik_focus
newrelic refactor(typing): clear 1181 basedpyright Any errors across 431 files (#47789) 2026-10-24 11:31:09 -07:00
open_telemetry
opik
otel fix(langfuse_otel)!: derive trace-level name, input, output and tags on traces litellm starts (#42705) 2026-10-27 10:34:55 -07:00
pointfive
SlackAlerting
ternary
vantage
vector_store_integrations
websearch_interception refactor(anthropic): rename llms/anthropic/pass_through to llms/anthropic/messages (#48510) 2026-10-27 10:08:25 -07:00
zerobus
__init__.py
conftest.py
rubrik_test_helpers.py
test_adaptive_concurrency.py
test_agentops.py
test_anthropic_cache_control_hook.py
test_argilla.py
test_athina.py
test_azure_sentinel.py
test_braintrust_logging.py
test_braintrust_span_name.py
test_custom_callback_input.py
test_custom_guardrail.py
test_custom_guardrail_recursion.py
test_custom_logger.py
test_custom_prompt_management.py
test_deepeval.py
test_galileo.py
test_guardrail_logging_sync.py
test_helicone.py
test_humanloop.py
test_langfuse.py
test_langfuse_otel.py fix(langfuse_otel)!: derive trace-level name, input, output and tags on traces litellm starts (#42705) 2026-10-27 10:34:55 -07:00
test_langsmith.py
test_langsmith_init.py
test_lunary.py
test_mlflow.py
test_openmeter.py
test_opentelemetry.py fix(ci): unblock dependency security checks (#48055) 2026-10-23 14:05:46 -07:00
test_opentelemetry_dynamic_imports.py
test_opentelemetry_request_spans.py
test_opik_utils.py
test_otel_guardrail_violation_spans.py
test_otel_team_attributes_matrix.py
test_posthog.py
test_prometheus_api_promql_escape.py
test_prometheus_budget_metric_guard.py
test_prometheus_budget_metrics_db_lookups.py
test_prometheus_budget_metrics_timeout.py
test_prometheus_cache_metrics.py
test_prometheus_caller_identity.py
test_prometheus_carried_budget_state.py
test_prometheus_client_ip_user_agent.py
test_prometheus_custom_metadata_label_counts.py
test_prometheus_deployment_state_proxy_rejects.py
test_prometheus_end_user_cardinality.py
test_prometheus_input_sequence_length_label.py
test_prometheus_invalid_key_filtering.py fix(prometheus): count provider-side 401s in LLM failure and deployment metrics (#46668) 2026-10-26 17:57:06 -07:00
test_prometheus_labels.py
test_prometheus_mcp_tool_metrics.py
test_prometheus_media_generation_metrics.py
test_prometheus_metric_name_consistency.py
test_prometheus_metrics_endpoint.py
test_prometheus_missing_metrics.py
test_prometheus_none_metadata.py
test_prometheus_overhead_with_guardrails.py
test_prometheus_queue_guardrail_metrics.py
test_prometheus_rate_limit_labels.py
test_prometheus_remaining_tokens_router_fallback.py
test_prometheus_requested_model_cardinality.py
test_prometheus_series_cardinality.py
test_prometheus_service_tier_label.py
test_prometheus_services.py
test_prometheus_spend_capture_rate.py
test_prometheus_spend_logs_metadata.py
test_prometheus_stream_label.py
test_prometheus_token_detail_metrics.py
test_prometheus_user_team_metrics.py
test_prometheus_zero_cost_metric.py
test_prompt_manager_ssti.py
test_responses_background_cost.py
test_rubrik.py
test_s3.py
test_s3_v2.py
test_shadow_eval_logger.py
test_sqs.py
test_wandb.py
test_weave_otel.py