feat(proxy): add outbound HTTP proxy support for OAuth + provider requests
- Patch Node fetch via undici ProxyAgent when HTTP_PROXY/HTTPS_PROXY/ALL_PROXY is set - Ensure proxy patch is loaded for both chat pipeline and OAuth token exchange - Add Dashboard Settings → Network to edit outbound proxy and apply immediately - Persist outbound proxy settings in local db and initialize on server startup - Move proxy helpers to src/lib/network/ for better structure - Rename src/proxy.js → src/dashboardGuard.js to avoid naming confusion - Re-apply proxy env after DB import - Fix: close old dispatcher on proxy URL change to prevent connection pool leak - Fix: idempotency guard to avoid patching globalThis.fetch multiple times Made-with: Cursor
This commit is contained in:
1 parent
833069caac
commit
5a015e5b4d
14 files changed
+450
-29
No files matched your search
@@ -0,0 +1,22 @@
|
||||
import { getSettings } from "@/lib/localDb";
|
||||
import { applyOutboundProxyEnv } from "@/lib/network/outboundProxy";
|
||||
|
||||
let initialized = false;
|
||||
|
||||
export async function ensureOutboundProxyInitialized() {
|
||||
if (initialized) return true;
|
||||
|
||||
try {
|
||||
const settings = await getSettings();
|
||||
applyOutboundProxyEnv(settings);
|
||||
initialized = true;
|
||||
} catch (error) {
|
||||
console.error("[ServerInit] Error initializing outbound proxy:", error);
|
||||
}
|
||||
|
||||
return initialized;
|
||||
}
|
||||
|
||||
ensureOutboundProxyInitialized().catch(console.log);
|
||||
|
||||
export default ensureOutboundProxyInitialized;
|
||||
Reference in new issue
Block a user