litellm-enterprise 0.1.17__tar.gz → 0.1.19__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/PKG-INFO +1 -1
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/integrations/prometheus.py +63 -7
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/auth/route_checks.py +0 -1
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/pyproject.toml +2 -2
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/LICENSE.md +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/README.md +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/__init__.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/callback_controls.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/example_logging_api.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/generic_api_callback.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/llama_guard.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/llm_guard.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/pagerduty/pagerduty.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secret_detection.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/__init__.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/adafruit.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/adobe.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/age_secret_key.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/airtable_api_key.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/algolia_api_key.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/alibaba.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/asana.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/atlassian_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/authress_access_key.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/beamer_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/bitbucket.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/bittrex.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/clojars_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/codecov_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/coinbase_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/confluent.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/contentful_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/databricks_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/datadog_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/defined_networking_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/digitalocean.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/discord.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/doppler_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/droneci_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/dropbox.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/duffel_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/dynatrace_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/easypost.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/etsy_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/facebook_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/fastly_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/finicity.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/finnhub_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/flickr_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/flutterwave.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/frameio_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/freshbooks_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/gcp_api_key.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/github_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/gitlab.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/gitter_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/gocardless_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/grafana.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/hashicorp_tf_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/heroku_api_key.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/hubspot_api_key.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/huggingface.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/intercom_api_key.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/jfrog.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/jwt.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/kraken_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/kucoin.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/launchdarkly_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/linear.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/linkedin.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/lob.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/mailgun.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/mapbox_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/mattermost_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/messagebird.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/microsoft_teams_webhook.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/netlify_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/new_relic.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/nytimes_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/okta_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/openai_api_key.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/planetscale.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/postman_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/prefect_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/pulumi_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/pypi_upload_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/rapidapi_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/readme_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/rubygems_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/scalingo_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sendbird.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sendgrid_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sendinblue_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sentry_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/shippo_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/shopify.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/slack.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/snyk_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/squarespace_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sumologic.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/telegram_bot_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/travisci_access_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/twitch_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/twitter.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/typeform_api_token.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/vault.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/yandex.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/secrets_plugins/zendesk_secret_key.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/send_emails/base_email.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/send_emails/endpoints.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/send_emails/resend_email.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/send_emails/smtp_email.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/enterprise_callbacks/session_handler.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/integrations/custom_guardrail.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/litellm_core_utils/litellm_logging.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/audit_logging_endpoints.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/auth/__init__.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/auth/custom_sso_handler.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/auth/user_api_key_auth.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/common_utils/check_batch_cost.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/enterprise_routes.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/guardrails/endpoints.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/hooks/managed_files.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/management_endpoints/__init__.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/management_endpoints/internal_user_endpoints.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/management_endpoints/key_management_endpoints.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/proxy_server.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/readme.md +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/utils.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/vector_stores/endpoints.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/types/enterprise_callbacks/send_emails.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/types/proxy/audit_logging_endpoints.py +0 -0
- {litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/types/proxy/proxy_server.py +0 -0
|
@@ -2293,10 +2293,60 @@ def get_custom_labels_from_metadata(metadata: dict) -> Dict[str, str]:
|
|
|
2293
2293
|
return result
|
|
2294
2294
|
|
|
2295
2295
|
|
|
2296
|
+
def _tag_matches_wildcard_configured_pattern(tags: List[str], configured_tag: str) -> bool:
|
|
2297
|
+
"""
|
|
2298
|
+
Check if any of the request tags matches a wildcard configured pattern
|
|
2299
|
+
|
|
2300
|
+
Args:
|
|
2301
|
+
tags: List[str] - The request tags
|
|
2302
|
+
configured_tag: str - The configured tag
|
|
2303
|
+
|
|
2304
|
+
Returns:
|
|
2305
|
+
bool - True if any of the request tags matches the configured tag, False otherwise
|
|
2306
|
+
|
|
2307
|
+
e.g.
|
|
2308
|
+
tags = ["User-Agent: curl/7.68.0", "User-Agent: python-requests/2.28.1", "prod"]
|
|
2309
|
+
configured_tag = "User-Agent: curl/*"
|
|
2310
|
+
_tag_matches_wildcard_configured_pattern(tags=tags, configured_tag=configured_tag) # True
|
|
2311
|
+
|
|
2312
|
+
configured_tag = "User-Agent: python-requests/*"
|
|
2313
|
+
_tag_matches_wildcard_configured_pattern(tags=tags, configured_tag=configured_tag) # True
|
|
2314
|
+
|
|
2315
|
+
configured_tag = "gm"
|
|
2316
|
+
_tag_matches_wildcard_configured_pattern(tags=tags, configured_tag=configured_tag) # False
|
|
2317
|
+
"""
|
|
2318
|
+
import re
|
|
2319
|
+
|
|
2320
|
+
from litellm.router_utils.pattern_match_deployments import PatternMatchRouter
|
|
2321
|
+
pattern_router = PatternMatchRouter()
|
|
2322
|
+
regex_pattern = pattern_router._pattern_to_regex(configured_tag)
|
|
2323
|
+
return any(re.match(pattern=regex_pattern, string=tag) for tag in tags)
|
|
2324
|
+
|
|
2325
|
+
|
|
2296
2326
|
def get_custom_labels_from_tags(tags: List[str]) -> Dict[str, str]:
|
|
2297
2327
|
"""
|
|
2298
|
-
Get custom labels from tags based on admin configuration
|
|
2328
|
+
Get custom labels from tags based on admin configuration.
|
|
2329
|
+
|
|
2330
|
+
Supports both exact matches and wildcard patterns:
|
|
2331
|
+
- Exact match: "prod" matches "prod" exactly
|
|
2332
|
+
- Wildcard pattern: "User-Agent: curl/*" matches "User-Agent: curl/7.68.0"
|
|
2333
|
+
|
|
2334
|
+
Reuses PatternMatchRouter for wildcard pattern matching.
|
|
2335
|
+
|
|
2336
|
+
Returns dict of label_name: "true" if the tag matches the configured tag, "false" otherwise
|
|
2337
|
+
|
|
2338
|
+
{
|
|
2339
|
+
"tag_User-Agent_curl": "true",
|
|
2340
|
+
"tag_User-Agent_python_requests": "false",
|
|
2341
|
+
"tag_Environment_prod": "true",
|
|
2342
|
+
"tag_Environment_dev": "false",
|
|
2343
|
+
"tag_Service_api_gateway_v2": "true",
|
|
2344
|
+
"tag_Service_web_app_v1": "false",
|
|
2345
|
+
}
|
|
2299
2346
|
"""
|
|
2347
|
+
import re
|
|
2348
|
+
|
|
2349
|
+
from litellm.router_utils.pattern_match_deployments import PatternMatchRouter
|
|
2300
2350
|
from litellm.types.integrations.prometheus import _sanitize_prometheus_label_name
|
|
2301
2351
|
|
|
2302
2352
|
configured_tags = litellm.custom_prometheus_tags
|
|
@@ -2304,16 +2354,22 @@ def get_custom_labels_from_tags(tags: List[str]) -> Dict[str, str]:
|
|
|
2304
2354
|
return {}
|
|
2305
2355
|
|
|
2306
2356
|
result: Dict[str, str] = {}
|
|
2357
|
+
pattern_router = PatternMatchRouter()
|
|
2307
2358
|
|
|
2308
|
-
# Map each configured tag to its presence in the request tags
|
|
2309
2359
|
for configured_tag in configured_tags:
|
|
2310
|
-
# Create a safe prometheus label name
|
|
2311
2360
|
label_name = _sanitize_prometheus_label_name(f"tag_{configured_tag}")
|
|
2312
|
-
|
|
2313
|
-
# Check
|
|
2361
|
+
|
|
2362
|
+
# Check for exact match first (backwards compatibility)
|
|
2314
2363
|
if configured_tag in tags:
|
|
2315
2364
|
result[label_name] = "true"
|
|
2316
|
-
|
|
2317
|
-
|
|
2365
|
+
continue
|
|
2366
|
+
|
|
2367
|
+
# Use PatternMatchRouter for wildcard pattern matching
|
|
2368
|
+
if "*" in configured_tag and _tag_matches_wildcard_configured_pattern(tags=tags, configured_tag=configured_tag):
|
|
2369
|
+
result[label_name] = "true"
|
|
2370
|
+
continue
|
|
2371
|
+
|
|
2372
|
+
# No match found
|
|
2373
|
+
result[label_name] = "false"
|
|
2318
2374
|
|
|
2319
2375
|
return result
|
|
@@ -20,7 +20,6 @@ class EnterpriseRouteChecks:
|
|
|
20
20
|
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
|
21
21
|
detail=f"🚨🚨🚨 DISABLING LLM API ENDPOINTS is an Enterprise feature\n🚨 {CommonProxyErrors.not_premium_user.value}",
|
|
22
22
|
)
|
|
23
|
-
return False
|
|
24
23
|
|
|
25
24
|
return get_secret_bool("DISABLE_LLM_API_ENDPOINTS") is True
|
|
26
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "litellm-enterprise"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.19"
|
|
4
4
|
description = "Package for LiteLLM Enterprise features"
|
|
5
5
|
authors = ["BerriAI"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -22,7 +22,7 @@ requires = ["poetry-core"]
|
|
|
22
22
|
build-backend = "poetry.core.masonry.api"
|
|
23
23
|
|
|
24
24
|
[tool.commitizen]
|
|
25
|
-
version = "0.1.
|
|
25
|
+
version = "0.1.19"
|
|
26
26
|
version_files = [
|
|
27
27
|
"pyproject.toml:version",
|
|
28
28
|
"../requirements.txt:litellm-enterprise==",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/auth/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{litellm_enterprise-0.1.17 → litellm_enterprise-0.1.19}/litellm_enterprise/proxy/proxy_server.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|