Adopt shared lib-util-net ProxyConfig for egress proxy handling - #7587
Merged
Merged
Conversation
✅ Deploy Preview for nextflow-docs canceled.
|
This was referenced Sep 6, 2026
Merged
…ling Replace Nextflow's hand-rolled proxy resolution with the shared io.seqera.util.net.ProxyConfig (lib-util-net 0.2.0). The launcher's per-protocol env scanning, system-property installation, default Authenticator and Basic-over-CONNECT tunnelling collapse to ProxyConfig.setupFromEnvironment(); nextflow.util.ProxyConfig becomes a thin holder whose proxyConfig() returns the resolved config directly. With lib-httpx 2.7.0 dropping HxProxyConfig in favour of the same ProxyConfig, HxClient.withProxyConfig() and TowerXAuth now consume it directly - so the URI parsing, no-proxy matching and authenticator semantics live in one place, shared with Wave. The nf-tower TowerXAuth/DataLinks tests seed the config via ProxyConfig.setConfig(fromUri(...)). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Paolo Di Tommaso <paolo.ditommaso@gmail.com>
pditommaso
force-pushed
the
claude/adopt-lib-util-net-proxyconfig
branch
from
September 6, 2026 20:12
9a1e7fa to
f9c576d
Compare
bentsherman
approved these changes
Sep 8, 2026
bentsherman
left a comment
Member
There was a problem hiding this comment.
Makes sense. I did a similar thing when working on CLI v2 since I needed this logic in both CLI launchers. I called it ProxyHelper instead of ProxyConfig, which would remove the name conflict with libseqera, but either name is fine with me
Member
Author
|
Great 👍 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces Nextflow's hand-rolled egress-proxy resolution with the shared
io.seqera.util.net.ProxyConfigfromio.seqera:lib-util-net:0.2.0, so the URI/env parsing, no-proxy matching and proxy authenticator live in one place shared with Wave and lib-httpx (rather than being duplicated innextflow.util.ProxyConfig,HxProxyConfig, and elsewhere).Net +54 / −521 lines.
Changes
nextflow.util.ProxyConfig— now a thin holder. The launcher's per-protocol env scanning, system-property installation (<proto>.proxyHost/.proxyPort,http.nonProxyHosts), defaultAuthenticatorand Basic-over-CONNECTtunnelling all collapse toProxyConfig.setupFromEnvironment(System.getenv());proxyConfig()returns the resolved config directly. The hand-rolledparse/decodeUserInfo/authenticator/registry are removed.nextflow.cli.Launcher— the sixsetProxy(...)+setNoProxy(...)calls become a singleProxyConfig.setupFromEnvironment(env);setProxy/setNoProxy/enableBasicProxyTunnelingdeleted (their behaviour + tests moved down to lib-util-net).HxClientconsumers (TowerXAuthand the 8withProxyConfig(...)call sites) — unchanged in shape; they now flow anio.seqera.util.net.ProxyConfigsince lib-httpx 2.7.0 dropsHxProxyConfigin favour of it.io.seqera:lib-httpxto 2.7.0 and addsio.seqera:lib-util-net:0.2.0.Behaviour
Proxy env-var handling is unchanged for
HTTP_PROXY/HTTPS_PROXY/FTP_PROXY/NO_PROXY(+ lower-case andALL_PROXY). Two intentional refinements now shared across products: the default proxy port follows the proxy scheme (http→80,https→443) consistently, andNO_PROXY→http.nonProxyHostskeeps the JDK loopback defaults and uses the JDK wildcard grammar.Related
🤖 Generated with Claude Code