litellm-enterprise 0.1.30__tar.gz → 0.1.31__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.30 → litellm_enterprise-0.1.31}/PKG-INFO +1 -1
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/send_emails/base_email.py +19 -2
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/pyproject.toml +2 -2
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/LICENSE.md +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/README.md +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/__init__.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/callback_controls.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/example_logging_api.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/llama_guard.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/llm_guard.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/pagerduty/pagerduty.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secret_detection.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/__init__.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/adafruit.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/adobe.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/age_secret_key.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/airtable_api_key.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/algolia_api_key.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/alibaba.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/asana.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/atlassian_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/authress_access_key.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/beamer_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/bitbucket.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/bittrex.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/clojars_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/codecov_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/coinbase_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/confluent.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/contentful_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/databricks_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/datadog_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/defined_networking_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/digitalocean.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/discord.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/doppler_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/droneci_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/dropbox.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/duffel_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/dynatrace_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/easypost.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/etsy_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/facebook_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/fastly_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/finicity.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/finnhub_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/flickr_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/flutterwave.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/frameio_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/freshbooks_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/gcp_api_key.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/github_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/gitlab.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/gitter_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/gocardless_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/grafana.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/hashicorp_tf_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/heroku_api_key.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/hubspot_api_key.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/huggingface.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/intercom_api_key.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/jfrog.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/jwt.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/kraken_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/kucoin.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/launchdarkly_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/linear.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/linkedin.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/lob.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/mailgun.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/mapbox_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/mattermost_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/messagebird.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/microsoft_teams_webhook.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/netlify_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/new_relic.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/nytimes_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/okta_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/openai_api_key.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/planetscale.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/postman_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/prefect_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/pulumi_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/pypi_upload_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/rapidapi_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/readme_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/rubygems_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/scalingo_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sendbird.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sendgrid_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sendinblue_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sentry_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/shippo_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/shopify.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/slack.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/snyk_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/squarespace_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/sumologic.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/telegram_bot_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/travisci_access_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/twitch_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/twitter.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/typeform_api_token.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/vault.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/yandex.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/secrets_plugins/zendesk_secret_key.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/send_emails/endpoints.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/send_emails/resend_email.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/send_emails/sendgrid_email.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/enterprise_callbacks/send_emails/smtp_email.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/integrations/custom_guardrail.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/litellm_core_utils/litellm_logging.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/__init__.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/audit_logging_endpoints.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/auth/__init__.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/auth/custom_sso_handler.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/auth/route_checks.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/auth/user_api_key_auth.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/common_utils/__init__.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/common_utils/check_batch_cost.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/common_utils/check_responses_cost.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/enterprise_routes.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/hooks/managed_files.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/management_endpoints/__init__.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/management_endpoints/internal_user_endpoints.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/management_endpoints/key_management_endpoints.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/proxy_server.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/readme.md +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/utils.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/vector_stores/endpoints.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/types/enterprise_callbacks/send_emails.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/types/proxy/audit_logging_endpoints.py +0 -0
- {litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/types/proxy/proxy_server.py +0 -0
|
@@ -245,15 +245,25 @@ class BaseEmailLogger(CustomLogger):
|
|
|
245
245
|
)
|
|
246
246
|
return
|
|
247
247
|
|
|
248
|
+
# Validate that we have at least one valid email address
|
|
249
|
+
first_recipient_email = recipient_emails[0]
|
|
250
|
+
if not first_recipient_email or not first_recipient_email.strip():
|
|
251
|
+
verbose_proxy_logger.warning(
|
|
252
|
+
f"Invalid recipient email found for team soft budget alert. event={event.model_dump(exclude_none=True)}"
|
|
253
|
+
)
|
|
254
|
+
return
|
|
255
|
+
|
|
248
256
|
verbose_proxy_logger.debug(
|
|
249
257
|
f"send_team_soft_budget_alert_email_event: {json.dumps(event.model_dump(exclude_none=True), indent=4, default=str)}"
|
|
250
258
|
)
|
|
251
259
|
|
|
252
260
|
# Get email params using the first recipient email (for template formatting)
|
|
261
|
+
# For team alerts with alert_emails, we don't need user_id lookup since we already have email addresses
|
|
262
|
+
# Pass user_id=None to prevent _get_email_params from trying to look up email from a potentially None user_id
|
|
253
263
|
email_params = await self._get_email_params(
|
|
254
264
|
email_event=EmailEvent.soft_budget_crossed,
|
|
255
|
-
user_id=
|
|
256
|
-
user_email=
|
|
265
|
+
user_id=None, # Team alerts don't require user_id when alert_emails are provided
|
|
266
|
+
user_email=first_recipient_email,
|
|
257
267
|
event_message=event.event_message,
|
|
258
268
|
)
|
|
259
269
|
|
|
@@ -361,6 +371,13 @@ class BaseEmailLogger(CustomLogger):
|
|
|
361
371
|
if user_info.event_group == Litellm_EntityType.TEAM:
|
|
362
372
|
if user_info.soft_budget is None:
|
|
363
373
|
return
|
|
374
|
+
# For team soft budget alerts, require alert_emails to be configured
|
|
375
|
+
# Team soft budget alerts are sent via metadata.soft_budget_alerting_emails
|
|
376
|
+
if user_info.alert_emails is None or len(user_info.alert_emails) == 0:
|
|
377
|
+
verbose_proxy_logger.debug(
|
|
378
|
+
"Skipping team soft budget email alert: no alert_emails configured",
|
|
379
|
+
)
|
|
380
|
+
return
|
|
364
381
|
else:
|
|
365
382
|
# For non-team alerts, require either max_budget or soft_budget
|
|
366
383
|
if user_info.max_budget is None and user_info.soft_budget is None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "litellm-enterprise"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.31"
|
|
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.31"
|
|
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
|
{litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/litellm_enterprise/proxy/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/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
|
|
File without changes
|
|
File without changes
|
{litellm_enterprise-0.1.30 → litellm_enterprise-0.1.31}/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
|