diff --git a/api/server/services/GraphApiService.js b/api/server/services/GraphApiService.js index 6b8369d74b..7f6f9ca8ed 100644 --- a/api/server/services/GraphApiService.js +++ b/api/server/services/GraphApiService.js @@ -7,6 +7,7 @@ const { getOpenIdConfig } = require('~/strategies/openidStrategy'); const getLogStores = require('~/cache/getLogStores'); const nodeFetch = require('node-fetch'); const { HttpsProxyAgent } = require('https-proxy-agent'); +const { ProxyAgent } = require('undici'); /** * @import { TPrincipalSearchResult, TGraphPerson, TGraphUser, TGraphGroup, TGraphPeopleResponse, TGraphUsersResponse, TGraphGroupsResponse } from 'librechat-data-provider' @@ -40,10 +41,16 @@ const createGraphClient = async (accessToken, sub) => { const openidConfig = getOpenIdConfig(); const exchangedToken = await exchangeTokenForGraphAccess(openidConfig, accessToken, sub); + const fetchOptions = {}; + // Add proxy support if configured + if (process.env.PROXY) { + fetchOptions.dispatcher = new ProxyAgent(process.env.PROXY); + } const graphClient = Client.init({ authProvider: (done) => { done(null, exchangedToken); }, + fetchOptions, }); return graphClient;