- Support https/http proxies via HTTP_PROXY/HTTPS_PROXY/NO_PROXY in fetch() (behind NODE_USE_ENV_PROXY) - [x] Initial support https://github.com/nodejs/node/pull/57165 - [ ] align with curl: do not tunnel for http proxy https://github.com/nodejs/undici/issues/4083 - [x] align with curl: support keep-alive https://github.com/nodejs/undici/issues/4086 - Support https/http proxies via HTTP_PROXY/HTTPS_PROXY/NO_PROXY in http(s) builtins (behind NODE_USE_ENV_PROXY) - [x] Initial support for http(s).request and agent: https://github.com/nodejs/node/pull/58980 - [x] Check that it allows other popular user-land agents (for proxy or not) to operate with/without NODE_USE_ENV_PROXY ([investigation](https://gist.github.com/Aditi-1400/09a915398a90e23691784b6810263781)) - [x] Check that it works transparently with popular npm packages that uses http/https.request ([investigation](https://gist.github.com/Aditi-1400/09a915398a90e23691784b6810263781)) - Investigate enabling NODE_USE_ENV_PROXY by default - [ ] In fetch() (less risky since fetch is patched less in the wild) - [ ] In http(s) builtins (might be too risky, need to investigate) - [ ] Share code between the fetch and the http(s) builtin implementation (e.g. env var parsing & matching) - [x] Add a CLI flag that allows enabling proxies: https://github.com/nodejs/node/issues/59100 - [ ] Bug fixes: https://github.com/nodejs/node/issues/62054 Some nice to haves (depend on whether there are volunteers that want to pick them up): - Socks 5 proxy support - [ ] Socks5 proxy support in undici: https://github.com/nodejs/undici/issues/2224 - [ ] Socks5 proxy support in http/https builtins - HTTP2 support? https://github.com/nodejs/node/issues/57872#issuecomment-3209437143 - Support it properly in the http2.connect - Until then, make sure fetch() doesn't advertise h2 when proxy is enabled? Old issues: https://github.com/nodejs/node/issues/8381 https://github.com/nodejs/node/issues/15620
--use-env-proxytoNODE_OPTIONS#59100--use-env-proxybreaks WebSocket (ws library) long connections via http.request() interception #62054Some nice to haves (depend on whether there are volunteers that want to pick them up):
Old issues: #8381 #15620