|
2 | 2 |
|
3 | 3 | This document provides a list of notable changes introduced in Devolutions Gateway service, installer and Jetsocat. |
4 | 4 |
|
| 5 | +## 2025.3.4 (2026-02-04) |
| 6 | + |
| 7 | +### Security |
| 8 | + |
| 9 | +- _dgw_: redact passwords in preflight API debug logs ([#1613](https://github.com/Devolutions/devolutions-gateway/issues/1613)) ([cc09f344c1](https://github.com/Devolutions/devolutions-gateway/commit/cc09f344c175ec2dca37c1045d51ca454ca911f4)) ([DGW-324](https://devolutions.atlassian.net/browse/DGW-324)) |
| 10 | + |
| 11 | + Passwords in provision-credentials preflight requests are now redacted |
| 12 | + when logged at DEBUG level, preventing credential leakage in logs. The |
| 13 | + redaction applies to all password fields recursively, replacing them |
| 14 | + with "***REDACTED***" while preserving other request details for |
| 15 | + debugging. |
| 16 | + |
| 17 | +### Features |
| 18 | + |
| 19 | +- _agent_: add debug updater overrides ([#1610](https://github.com/Devolutions/devolutions-gateway/issues/1610)) ([8703bc430e](https://github.com/Devolutions/devolutions-gateway/commit/8703bc430ec3f2108d482ffb3b7271a9e3ef604a)) |
| 20 | + |
| 21 | + Adds debug configuration switches for the updater so developers can test |
| 22 | + local productinfo and packages: |
| 23 | + - Supports overriding productinfo URL (including file://) and validates |
| 24 | + CDN URLs by default. |
| 25 | + - Allows opt-in unsafe URLs for local testing and optional skipping of |
| 26 | + hash/MSI signature validation. |
| 27 | + - Productinfo loader and package downloader now handle file:// sources |
| 28 | + |
| 29 | +- _installer_: allow untrusted certificates for key downloads ([#1635](https://github.com/Devolutions/devolutions-gateway/issues/1635)) ([0a04f823c6](https://github.com/Devolutions/devolutions-gateway/commit/0a04f823c608f7c099489ed8896c15fb04d38074)) |
| 30 | + |
| 31 | + Using the installer, the user has the option to download the provisioner |
| 32 | + public key direct from a DVLS instance. However, if the DVLS certificate |
| 33 | + was not trusted this would fail with a nondescript error message |
| 34 | + ("failed to send request"). |
| 35 | + |
| 36 | + Now, the user will be prompted to accept an untrusted certificate. |
| 37 | + Certificate exceptions are serialized in a semi-colon delimited text |
| 38 | + string in the form: |
| 39 | + |
| 40 | +- _webapp_: update SSH package with deprecated algorithm and keyboard interactive auth support ([#1642](https://github.com/Devolutions/devolutions-gateway/issues/1642)) ([9f0666cd7c](https://github.com/Devolutions/devolutions-gateway/commit/9f0666cd7ccf57582a197c84c5545071976d2b18)) ([DGW-327](https://devolutions.atlassian.net/browse/DGW-327)) |
| 41 | + |
| 42 | + Update @devolutions/web-ssh-gui from 0.4.0 to 0.6.2 with the following |
| 43 | + improvements: |
| 44 | + |
| 45 | + - Add Keyboard_Interactive authentication mode for SSH connections |
| 46 | + - Support for deprecated SSH algorithms (for legacy server |
| 47 | + compatibility) |
| 48 | + - Fix deadlock between terminal visibility and host key verification |
| 49 | + - Library now emits connected status when WebSocket connects, allowing |
| 50 | + users to see and respond to host key verification prompts |
| 51 | + |
| 52 | +- _dgw_: add support for credential injection for RDCleanPath ([#1614](https://github.com/Devolutions/devolutions-gateway/issues/1614)) ([a881961328](https://github.com/Devolutions/devolutions-gateway/commit/a88196132846c0cd0c0a2ee403576c9d3327f2f9)) |
| 53 | + |
| 54 | + This allows web clients to benefit from the proxy-based credential injection features. |
| 55 | + |
| 56 | +- _agent_: RDM messages and pipe passthrough logic ([#1538](https://github.com/Devolutions/devolutions-gateway/issues/1538)) ([198fce96ba](https://github.com/Devolutions/devolutions-gateway/commit/198fce96ba58be49680a055617a573c45932df2b)) ([PI-651](https://devolutions.atlassian.net/browse/PI-651)) |
| 57 | + |
| 58 | + Adds RDM (Remote Desktop Manager) message handling capabilities to |
| 59 | + devolutions-session, enabling bidirectional communication between the |
| 60 | + agent and RDM through the NOW protocol over the named pipe. |
| 61 | + |
| 62 | +- _webapp_: upgrade to Angular 20 and PrimeNG 20 ([#1652](https://github.com/Devolutions/devolutions-gateway/issues/1652)) ([607ef38127](https://github.com/Devolutions/devolutions-gateway/commit/607ef3812720edc29724479e9db6ef4773887d5c)) |
| 63 | + |
| 64 | + Upgrades the standalone webapp to Angular 20 and PrimeNG 20. This keeps the |
| 65 | + frontend on current, supported framework versions and enables continued UI |
| 66 | + improvements with the latest PrimeNG components. |
| 67 | + |
| 68 | +- _dgw,agent_: add HTTP/SOCKS proxy configuration support ([#1639](https://github.com/Devolutions/devolutions-gateway/issues/1639)) ([57ade80d14](https://github.com/Devolutions/devolutions-gateway/commit/57ade80d146e96eebd73eeec1b72fb7cbc4928b3)) ([DGW-328](https://devolutions.atlassian.net/browse/DGW-328)) |
| 69 | + |
| 70 | + Adds configurable HTTP/HTTPS/SOCKS4/SOCKS5 proxy support for outbound |
| 71 | + requests in both Gateway and Agent. Proxy settings can be configured |
| 72 | + manually or auto-detected from environment variables (HTTP_PROXY, |
| 73 | + HTTPS_PROXY, NO_PROXY) or system settings (per-user and machine-wide |
| 74 | + settings with WinHTTP fallback on Windows, `/etc/sysconfig/proxy` on |
| 75 | + RHEL/SUSE systems, SCDynamicStoreCopyProxies() on macOS). |
| 76 | + |
| 77 | + This replaces reqwest's system-proxy feature with the proxy_cfg crate |
| 78 | + for better system integration and per-URL proxy selection, improving |
| 79 | + support for PAC files and complex enterprise proxy environments. |
| 80 | + |
| 81 | +- _agent_: add window recording support via now proto dvc ([#1583](https://github.com/Devolutions/devolutions-gateway/issues/1583)) ([4e183f0121](https://github.com/Devolutions/devolutions-gateway/commit/4e183f01210f3ba4b2b9f871e4e6351b355aaafb)) ([ARC-353](https://devolutions.atlassian.net/browse/ARC-353)) |
| 82 | + |
| 83 | + Adds window recording support to the Devolutions Agent. The |
| 84 | + implementation uses Windows event hooks to receive foreground window |
| 85 | + change notifications and optional polling to detect title changes within |
| 86 | + the same window. |
| 87 | + |
| 88 | +### Bug Fixes |
| 89 | + |
| 90 | +- _agent_: improve error reporting when checking for updates ([#1602](https://github.com/Devolutions/devolutions-gateway/issues/1602)) ([f11b4567bf](https://github.com/Devolutions/devolutions-gateway/commit/f11b4567bfd3b88c3460fbbd5aeffc889608652b)) |
| 91 | + |
| 92 | +- _dgw_: improve system store certificate resolver error logging ([#1619](https://github.com/Devolutions/devolutions-gateway/issues/1619)) ([819de83454](https://github.com/Devolutions/devolutions-gateway/commit/819de83454673b09c98af7ac826999397dd9a077)) ([DGW-320](https://devolutions.atlassian.net/browse/DGW-320)) |
| 93 | + |
| 94 | + The system store certificate resolver now accumulates and displays |
| 95 | + detailed key acquisition errors at the default log level when no |
| 96 | + suitable certificate is found. Previously, these errors (such as "keyset |
| 97 | + does not exist" / error code 0x80090016) were only visible at DEBUG |
| 98 | + level, making it difficult to diagnose issues like missing private key |
| 99 | + permissions for the NETWORK SERVICE user. |
| 100 | + |
| 101 | + The error message now includes specific failure details for each |
| 102 | + certificate attempt, including both key acquisition and signing key |
| 103 | + creation failures. |
| 104 | + |
| 105 | +- _installer_: allow certificate passwords to contain single quotes ([9a9f31ad71](https://github.com/Devolutions/devolutions-gateway/commit/9a9f31ad71d1f0c9d6e879dc159b969e33aa1978)) |
| 106 | + |
| 107 | +- _dgw_: downgrade benign client disconnects from ERROR to DEBUG ([#1620](https://github.com/Devolutions/devolutions-gateway/issues/1620)) ([592da4dbbc](https://github.com/Devolutions/devolutions-gateway/commit/592da4dbbcbfd413e4b7ca4f82a04dc6001aeee5)) ([DGW-319](https://devolutions.atlassian.net/browse/DGW-319)) |
| 108 | + |
| 109 | + Reduces log noise by treating common socket disconnections (BrokenPipe, |
| 110 | + ConnectionReset, UnexpectedEof) as benign events during HTTP/HTTPS |
| 111 | + serving and TLS handshake. These disconnects typically occur from health |
| 112 | + checks, port scanners, aborted browser requests, or early connection |
| 113 | + termination, and do not indicate server faults. |
| 114 | + |
| 115 | + ERROR logs now only appear for genuine server issues, making it easier |
| 116 | + to identify actionable problems in production deployments. |
| 117 | + |
| 118 | +- _dgw_: self-signed TLS certificate generation of the Docker image build ([#1650](https://github.com/Devolutions/devolutions-gateway/issues/1650)) ([53b1c1801a](https://github.com/Devolutions/devolutions-gateway/commit/53b1c1801a5f33fd81b16a6e2f4a44c4c55b9d44)) |
| 119 | + |
| 120 | + Fixes this error: |
| 121 | + ``` |
| 122 | + Get-Content: Cannot find path '/tmp/gateway-{hostname}.pem' because it does not exist. |
| 123 | + Exception: Empty certificate chain! |
| 124 | + ``` |
| 125 | + Hit when generating the self-signed TLS certificate generation in the Docker entrypoint. |
| 126 | + |
| 127 | +- _dgw_: honor TCP_PORT in Linux container entrypoint ([#1667](https://github.com/Devolutions/devolutions-gateway/issues/1667)) ([4fa5ae984a](https://github.com/Devolutions/devolutions-gateway/commit/4fa5ae984a1e6402912bdecf4ac7556719bc77e3)) |
| 128 | + |
| 129 | + Fixes an issue where the TCP_PORT environment variable was ignored by |
| 130 | + the Linux Docker entrypoint. |
| 131 | + Even when TCP_PORT was set, the gateway continued to use the default TCP |
| 132 | + port. |
| 133 | + This change ensures the gateway now correctly applies the configured |
| 134 | + TCP_PORT value at startup. |
| 135 | + |
| 136 | +- _agent_: add RDM multi-instance support for Jump messages ([#1669](https://github.com/Devolutions/devolutions-gateway/issues/1669)) ([3c97b11ac6](https://github.com/Devolutions/devolutions-gateway/commit/3c97b11ac6b60f746a49bba20f274b993409961f)) ([RDMW-21183](https://devolutions.atlassian.net/browse/RDMW-21183)) |
| 137 | + |
| 138 | + Add RDM multi-instance support for Jump messages (separate named pipe |
| 139 | + for each RDM instance in session) |
| 140 | + |
| 141 | +### Build |
| 142 | + |
| 143 | +- _dgw_: add ARM64 Docker image support ([#1607](https://github.com/Devolutions/devolutions-gateway/issues/1607)) ([b2f5172d0b](https://github.com/Devolutions/devolutions-gateway/commit/b2f5172d0b110ac980a681a7bb99d342f929059a)) ([DGW-325](https://devolutions.atlassian.net/browse/DGW-325)) |
| 144 | + |
| 145 | + Adds native ARM64 Docker images for Devolutions Gateway, enabling |
| 146 | + deployment on ARM-based devices like Raspberry Pi and AWS Graviton |
| 147 | + instances with full native performance. Multi-arch manifests |
| 148 | + automatically select the correct image for the user's platform. |
| 149 | + |
5 | 150 | ## 2025.3.3 (2025-12-02) |
6 | 151 |
|
7 | 152 | ### Features |
|
0 commit comments