Merge pull request #4916 from BerriAI/litellm_fix_ui_login

Feat UI - allow using custom header for litellm api key
This commit is contained in:
Ishaan Jaff 2024-07-29 17:08:53 -07:00 committed by GitHub
commit 1a34756159
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 109 additions and 78 deletions

View file

@ -1314,8 +1314,9 @@ def get_api_key_from_custom_header(
# use this as the virtual key passed to litellm proxy
custom_litellm_key_header_name = custom_litellm_key_header_name.lower()
verbose_proxy_logger.debug(
"searching for custom_litellm_key_header_name= %s",
"searching for custom_litellm_key_header_name= %s, in headers=%s",
custom_litellm_key_header_name,
request.headers,
)
custom_api_key = request.headers.get(custom_litellm_key_header_name)
if custom_api_key:

View file

@ -7774,7 +7774,7 @@ async def fallback_login(request: Request):
"/login", include_in_schema=False
) # hidden since this is a helper for UI sso login
async def login(request: Request):
global premium_user
global premium_user, general_settings
try:
import multipart
except ImportError:
@ -7876,6 +7876,9 @@ async def login(request: Request):
"user_role": user_role, # this is the path without sso - we can assume only admins will use this
"login_method": "username_password",
"premium_user": premium_user,
"auth_header_name": general_settings.get(
"litellm_key_header_name", "Authorization"
),
},
master_key,
algorithm="HS256",
@ -7940,6 +7943,9 @@ async def login(request: Request):
"user_role": user_role,
"login_method": "username_password",
"premium_user": premium_user,
"auth_header_name": general_settings.get(
"litellm_key_header_name", "Authorization"
),
},
master_key,
algorithm="HS256",
@ -7988,7 +7994,7 @@ async def onboarding(invite_link: str):
- Get user from db
- Pass in user_email if set
"""
global prisma_client, master_key
global prisma_client, master_key, general_settings
if master_key is None:
raise ProxyException(
message="Master Key not set for Proxy. Please set Master Key to use Admin UI. Set `LITELLM_MASTER_KEY` in .env or set general_settings:master_key in config.yaml. https://docs.litellm.ai/docs/proxy/virtual_keys. If set, use `--detailed_debug` to debug issue.",
@ -8075,6 +8081,9 @@ async def onboarding(invite_link: str):
"user_role": user_obj.user_role,
"login_method": "username_password",
"premium_user": premium_user,
"auth_header_name": general_settings.get(
"litellm_key_header_name", "Authorization"
),
},
master_key,
algorithm="HS256",
@ -8492,6 +8501,9 @@ async def auth_callback(request: Request):
"user_role": user_role,
"login_method": "sso",
"premium_user": premium_user,
"auth_header_name": general_settings.get(
"litellm_key_header_name", "Authorization"
),
},
master_key,
algorithm="HS256",

View file

@ -18,6 +18,7 @@ import Usage from "../components/usage";
import CacheDashboard from "@/components/cache_dashboard";
import { jwtDecode } from "jwt-decode";
import { Typography } from "antd";
import { setGlobalLitellmHeaderName } from "../components/networking"
function getCookie(name: string) {
console.log("COOKIES", document.cookie)
@ -123,6 +124,11 @@ const CreateKeyPage = () => {
if (decoded.premium_user) {
setPremiumUser(decoded.premium_user);
}
if (decoded.auth_header_name) {
setGlobalLitellmHeaderName(decoded.auth_header_name);
}
}
}
}, [token]);

View file

@ -36,6 +36,17 @@ const handleError = async (errorData: string) => {
}
};
// Global variable for the header name
let globalLitellmHeaderName: string | null = null;
// Function to set the global header name
export function setGlobalLitellmHeaderName(headerName: string | null) {
console.log(`setGlobalLitellmHeaderName: ${headerName}`);
globalLitellmHeaderName = headerName;
}
export const modelCostMap = async (
accessToken: string,
) => {
@ -45,7 +56,7 @@ export const modelCostMap = async (
url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
}
@ -68,7 +79,7 @@ export const modelCreateCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -107,7 +118,7 @@ export const modelSettingsCall = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -138,7 +149,7 @@ export const modelDeleteCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -180,7 +191,7 @@ export const budgetDeleteCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -215,7 +226,7 @@ export const budgetCreateCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -251,7 +262,7 @@ export const invitationCreateCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -290,7 +301,7 @@ export const invitationClaimCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -328,7 +339,7 @@ export const alertingSettingsCall = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -385,7 +396,7 @@ export const keyCreateCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -447,7 +458,7 @@ export const userCreateCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -481,7 +492,7 @@ export const keyDeleteCall = async (accessToken: String, user_key: String) => {
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -513,7 +524,7 @@ export const teamDeleteCall = async (accessToken: String, teamID: String) => {
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -566,7 +577,7 @@ export const userInfoCall = async (
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -601,7 +612,7 @@ export const teamInfoCall = async (
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -633,7 +644,7 @@ export const getTotalSpendCall = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -698,7 +709,7 @@ export const claimOnboardingToken = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -740,7 +751,7 @@ export const modelInfoCall = async (
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -788,7 +799,7 @@ export const modelHubCall = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -819,7 +830,7 @@ export const getAllowedIPs = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -848,7 +859,7 @@ export const addAllowedIP = async (accessToken: String, ip: String) => {
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ ip: ip }),
@ -878,7 +889,7 @@ export const deleteAllowedIP = async (accessToken: String, ip: String) => {
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ ip: ip }),
@ -920,7 +931,7 @@ export const modelMetricsCall = async (
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -959,7 +970,7 @@ export const streamingModelMetricsCall = async (
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1004,7 +1015,7 @@ export const modelMetricsSlowResponsesCall = async (
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1048,7 +1059,7 @@ export const modelExceptionsCall = async (
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1076,6 +1087,7 @@ export const modelAvailableCall = async (
/**
* Get all the models user has access to
*/
console.log("in /models calls, globalLitellmHeaderName", globalLitellmHeaderName)
try {
let url = proxyBaseUrl ? `${proxyBaseUrl}/models` : `/models`;
@ -1083,7 +1095,7 @@ export const modelAvailableCall = async (
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1113,7 +1125,7 @@ export const keySpendLogsCall = async (accessToken: String, token: String) => {
const response = await fetch(`${url}?api_key=${token}`, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1141,7 +1153,7 @@ export const teamSpendLogsCall = async (accessToken: String) => {
const response = await fetch(`${url}`, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1184,7 +1196,7 @@ export const tagsSpendLogsCall = async (
const response = await fetch(`${url}`, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1212,7 +1224,7 @@ export const allTagNamesCall = async (accessToken: String) => {
const response = await fetch(`${url}`, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1240,7 +1252,7 @@ export const allEndUsersCall = async (accessToken: String) => {
const response = await fetch(`${url}`, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1278,7 +1290,7 @@ export const userSpendLogsCall = async (
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1308,7 +1320,7 @@ export const adminSpendLogsCall = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1338,7 +1350,7 @@ export const adminTopKeysCall = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1386,14 +1398,14 @@ export const adminTopEndUsersCall = async (
const requestOptions: {
method: string;
headers: {
Authorization: string;
[globalLitellmHeaderName]: string;
"Content-Type": string;
};
body?: string; // The body is optional and might not be present
} = {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
};
@ -1439,12 +1451,12 @@ export const adminspendByProvider = async (
const requestOptions: {
method: string;
headers: {
Authorization: string;
[globalLitellmHeaderName]: string;
};
} = {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
},
};
@ -1482,12 +1494,12 @@ export const adminGlobalActivity = async (
const requestOptions: {
method: string;
headers: {
Authorization: string;
[globalLitellmHeaderName]: string;
};
} = {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
},
};
@ -1523,12 +1535,12 @@ export const adminGlobalCacheActivity = async (
const requestOptions: {
method: string;
headers: {
Authorization: string;
[globalLitellmHeaderName]: string;
};
} = {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
},
};
@ -1564,12 +1576,12 @@ export const adminGlobalActivityPerModel = async (
const requestOptions: {
method: string;
headers: {
Authorization: string;
[globalLitellmHeaderName]: string;
};
} = {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
},
};
@ -1610,12 +1622,12 @@ export const adminGlobalActivityExceptions = async (
const requestOptions: {
method: string;
headers: {
Authorization: string;
[globalLitellmHeaderName]: string;
};
} = {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
},
};
@ -1656,12 +1668,12 @@ export const adminGlobalActivityExceptionsPerDeployment = async (
const requestOptions: {
method: string;
headers: {
Authorization: string;
[globalLitellmHeaderName]: string;
};
} = {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
},
};
@ -1690,7 +1702,7 @@ export const adminTopModelsCall = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1717,7 +1729,7 @@ export const keyInfoCall = async (accessToken: String, keys: String[]) => {
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -1747,7 +1759,7 @@ export const spendUsersCall = async (accessToken: String, userID: String) => {
const response = await fetch(`${url}?user_id=${userID}`, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1779,7 +1791,7 @@ export const userRequestModelCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -1814,7 +1826,7 @@ export const userGetRequesedtModelsCall = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1854,7 +1866,7 @@ export const userGetAllUsersCall = async (
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1883,7 +1895,7 @@ export const getPossibleUserRoles = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -1912,7 +1924,7 @@ export const teamCreateCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -1948,7 +1960,7 @@ export const keyUpdateCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -1983,7 +1995,7 @@ export const teamUpdateCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -2018,7 +2030,7 @@ export const modelUpdateCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -2062,7 +2074,7 @@ export const teamMemberAddCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -2105,7 +2117,7 @@ export const userUpdateUserCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: response_body,
@ -2143,7 +2155,7 @@ export const PredictedSpendLogsCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -2179,7 +2191,7 @@ export const slackBudgetAlertsHealthCheck = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -2218,7 +2230,7 @@ export const serviceHealthCheck = async (
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -2253,7 +2265,7 @@ export const getBudgetList = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -2286,7 +2298,7 @@ export const getBudgetSettings = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -2324,7 +2336,7 @@ export const getCallbacksCall = async (
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -2355,7 +2367,7 @@ export const getGeneralSettingsCall = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -2389,7 +2401,7 @@ export const getConfigFieldSetting = async (
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -2427,7 +2439,7 @@ export const updateConfigFieldSetting = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify(formData),
@ -2467,7 +2479,7 @@ export const deleteConfigFieldSetting = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify(formData),
@ -2502,7 +2514,7 @@ export const setCallbacksCall = async (
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
@ -2537,7 +2549,7 @@ export const healthCheckCall = async (accessToken: String) => {
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});
@ -2573,7 +2585,7 @@ export const getProxyBaseUrlAndLogoutUrl = async (
const response = await fetch(url, {
method: "GET",
headers: {
Authorization: `Bearer ${accessToken}`,
[globalLitellmHeaderName]: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
});