diff --git a/ui/litellm-dashboard/src/components/settings.tsx b/ui/litellm-dashboard/src/components/settings.tsx index 5f712b1d444..badea63416e 100644 --- a/ui/litellm-dashboard/src/components/settings.tsx +++ b/ui/litellm-dashboard/src/components/settings.tsx @@ -188,6 +188,43 @@ const Settings: React.FC = ({ console.log("Selected values:", values); }; + const handleSaveEmailSettings = () => { + if (!accessToken) { + return; + } + + + let updatedVariables: Record = {}; + + alerts + .filter((alert) => alert.name === "email") + .forEach((alert) => { + Object.entries(alert.variables ?? {}).forEach(([key, value]) => { + const inputElement = document.querySelector(`input[name="${key}"]`) as HTMLInputElement; + if (inputElement && inputElement.value) { + updatedVariables[key] = inputElement?.value; + } + }); + }); + + console.log("updatedVariables", updatedVariables); + //filter out null / undefined values for updatedVariables + + const payload = { + general_settings: { + alerting: ["email"], + }, + environment_variables: updatedVariables, + }; + try { + setCallbacksCall(accessToken, payload); + } catch (error) { + message.error("Failed to update alerts: " + error, 20); + } + + message.success("Email settings updated successfully"); + } + const handleSaveAlerts = () => { if (!accessToken) { return; @@ -369,7 +406,8 @@ const Settings: React.FC = ({ Logging Callbacks Alerting Types - Alerting Settings + Alerting Settings + Email Alerts @@ -526,6 +564,51 @@ const Settings: React.FC = ({ premiumUser={premiumUser} /> + + + {/* + Email Alerts are sent to when
+ - A key is created for a specific user_id
+ - A key belonging to a user crosses its budget +
*/} + Setup +
+ {alerts + .filter((alert) => alert.name == "email") + .map((alert, index) => ( + +
    + {Object.entries(alert.variables ?? {}) + + .map(([key, value]) => ( +
  • + {key} + +
  • + ))} +
+
+ ))} + +
+ + + + +
+