Skip to content

build(deps): upgrade reqwest to 0.13 - #2004

Draft
irvingouj@Devolutions (irvingoujAtDevolution) wants to merge 2 commits into
masterfrom
chore/reqwest-0.13
Draft

irvingouj@Devolutions (irvingoujAtDevolution) wants to merge 2 commits into
masterfrom
chore/reqwest-0.13

Conversation

@irvingoujAtDevolution

@irvingoujAtDevolution irvingouj@Devolutions (irvingoujAtDevolution) commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Moves the workspace to reqwest 0.13. Needed so the upcoming AI crate (rig) can use Gateway's own proxy-aware client.

Behaviour stays the same:

  • TLS: rustls with native roots via http_client_proxy::with_native_roots, ring as provider (installed in each binary's main), no OpenSSL / aws-lc
  • a native store with zero valid roots fails client creation with the same error as 0.12
  • proxy: env vars (HTTP_PROXY etc.) are honoured like before; the agent also reads the Windows/macOS system proxy, same as before, because ironrdp-tokio 0.10 still enables reqwest 0.12's system-proxy and hyper-util is shared

reqwest 0.12 is still pulled in by ironrdp-tokio 0.10 (agent only, FIXME in its Cargo.toml).

Tested: workspace clippy clean, http-client-proxy 20/20, agent + gateway test suites green, agent tunnel enrollment test.

First of a stack for AI-generated session logs.

🤖 Generated with Claude Code

Moves http-client-proxy, devolutions-gateway, devolutions-agent and the
testsuite to reqwest 0.13, keeping TLS and proxy behavior unchanged.

- TLS stays rustls with ring and no OpenSSL. reqwest 0.13 dropped
  rustls-tls-native-roots, so clients now use rustls-no-provider and
  http_client_proxy::with_native_roots, which trusts exactly the native
  root certificates, like before, instead of rustls-platform-verifier.
- Proxy behavior is unchanged: system-proxy stays disabled and the
  Off/System/Manual handling in http-client-proxy is the same.

Checked with cargo +nightly fmt, cargo clippy --workspace --tests
-D warnings, and cargo test --workspace.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Let maintainers know that an action is required on their side

  • Add the label release-required Please cut a new release (Devolutions Gateway, Devolutions Agent, Jetsocat, PowerShell module) when you request a maintainer to cut a new release (Devolutions Gateway, Devolutions Agent, Jetsocat, PowerShell module)

  • Add the label release-blocker Follow-up is required before cutting a new release if a follow-up is required before cutting a new release

  • Add the label publish-required Please publish libraries (`Devolutions.Gateway.Utils`, OpenAPI clients, etc) when you request a maintainer to publish libraries (Devolutions.Gateway.Utils, OpenAPI clients, etc.)

  • Add the label publish-blocker Follow-up is required before publishing libraries if a follow-up is required before publishing libraries

…ve provider install to main

Follow-up to the reqwest 0.13 upgrade.

- with_native_roots now returns an error when the native store has
  certificates but none of them is valid. The message and source match
  what reqwest 0.12 returned from ClientBuilder::build ("builder error:
  zero valid certificates found in native root store"). An empty store
  is still not an error.
- with_native_roots no longer installs the ring provider. The agent now
  installs it at the top of main, like the gateway already does, and the
  function docs state the precondition.
- build_client_with_proxy and get_or_create_cached_client return
  anyhow::Result, and UpdaterError::FileDownload carries anyhow::Error.
- Added a FIXME about ironrdp-tokio 0.10 still pulling reqwest 0.12 into
  the agent, and comments on why invalid certificates are filtered and
  why the forwarding client panics like reqwest 0.12's Client::new.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant