litellm/tests/logging_callback_tests
Cesar Garcia d693596e87
feat(langfuse): Add support for custom masking function (#17826)
* feat(langfuse): Add support for custom masking function

Allow users to pass a custom masking function via metadata to selectively
redact sensitive data (credit cards, emails, PII) before sending to Langfuse.

Usage:
```python
def mask_pii(data):
    if isinstance(data, str):
        data = re.sub(r'\b\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}\b', '[CARD]', data)
    return data

litellm.completion(
    model="gpt-4",
    messages=[...],
    metadata={"langfuse_masking_function": mask_pii}
)
```

* fix(langfuse): Isolate masking function from other logging integrations

Extract langfuse_masking_function from metadata early in the flow and store
it in a dedicated key (_langfuse_masking_function) that only the Langfuse
logger knows to look for. This prevents the callable from leaking to other
logging integrations (Datadog, S3, etc.) which would serialize it as
"<function at 0x...>".

Changes:
- scrub_sensitive_keys_in_metadata() now extracts and stores the function
- Langfuse logger looks in the dedicated key first, falls back to metadata
- Added tests to verify isolation works correctly
2025-12-11 15:36:54 -08:00
..
gcs_pub_sub_body
langfuse_expected_request_body
base_test.py
conftest.py
create_mock_standard_logging_payload.py
gettysburg.wav
log.txt
test_alerting.py
test_amazing_s3_logs.py
test_assemble_streaming_responses.py
test_azure_blob_storage.py
test_bedrock_knowledgebase_hook.py
test_built_in_tools_cost_tracking.py
test_custom_callback_router.py
test_datadog_llm_obs.py
test_datadog.py
test_gcs_pub_sub.py
test_generic_api_callback.py
test_humanloop_unit_tests.py
test_langfuse_e2e_test.py
test_langfuse_unit_tests.py feat(langfuse): Add support for custom masking function (#17826) 2025-12-11 15:36:54 -08:00
test_langsmith_unit_test.py
test_log_db_redis_services.py
test_logging_redaction_e2e_test.py
test_moderations_api_logging.py
test_opentelemetry_unit_tests.py
test_otel_logging.py
test_pagerduty_alerting.py
test_posthog.py
test_spend_logs.py
test_sqs_logger.py
test_standard_logging_payload.py
test_token_counting.py
test_unit_test_litellm_logging.py
test_unit_tests_init_callbacks.py test_init_custom_logger_compatible_class_as_callback 2025-12-06 16:21:50 -08:00
test_view_request_resp_logs.py