Skip to content

Releases: Devolutions/devolutions-gateway

v2024.3.3

02 Oct 12:52
Compare
Choose a tag to compare

Features

Bug Fixes

  • pwsh: trace more info when importing Certificate from PFX (#992) (5de155738a)

  • dgw: set dwShareMode for recording files on Windows (#1007) (4df3c854ca)

    On Windows, the default default share_mode set when opening a new file
    is FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE.

    We now override the share_mode and set it to FILE_SHARE_READ.

    This makes the recording process more robust by ensuring no other
    process can write or delete the files while the Devolutions Gateway
    is actively writing it.

  • jetsocat,dgw: add backpressure in JMUX proxy (41ea3ee3f0)

    The memory consumption of the JMUX proxy was unbounded because we used
    an unbounded mpsc channel for message passing.

    Here is a jetsocat-bench.nu run against master:

  • player: start recording when tab is open (#1024) (6506b08ee2) (RDMW-16402)

v2024.3.2

20 Aug 13:36
4696787
Compare
Choose a tag to compare

Features

Improvements

  • dgw: log KDC domain when throwing the error (#963) (873217c804)

    We now print the name of the requested domain when the requested
    domain didn't match the authorized (expected) domain.

  • dgw: accept subject name even if it does not match the hostname (1f40b45bae)

    Configurations where the certificate subject name does not match the
    hostname are now accepted.
    Instead, a few warning and debug log records are added to help
    discover configuration issues in case of problem.
    The problem with the strict approach we had previously is that we
    may reject valid configurations where the hostname was actually
    matched by one of the subject alternative names in the certificate.

Performance

Build

  • dgw: update cryptography dependencies (787027cbf9)

    We keep using ring as our crypto provider for now.

v2024.3.1

01 Aug 15:09
0c3c8d7
Compare
Choose a tag to compare

Features

  • dgw: dynamically load XMF native lib on startup (#939) (86dee2631a)

    The DGATEWAY_LIB_XMF_PATH environment variable can be used optionally to specify the path to
    the XMF native library.

  • dgw: remux webm files when video recording ends (#943) (cc787ef691)

Bug Fixes

  • dgw: fix recording player parsing problem (#937) (cdf08a3e2c) (DPS-11197)

    • Remove usage of btoa, it fails on different charset.

    • Add 1 millisecond if the time of previous event is the same at the next event.
      Otherwise, the player will throw an error.

  • webapp: fix RDP connection form - set pre connection blob as not required (#950) (c684994fce)

  • webapp: add tooltip ellipsis for long netscan service names (#946) (5e4b3080d6) (DGW-204)

  • dgw: [breaking] jet_rec claim is now a string (#957) (59bb0af249)

    Possible values are:

    • none: No policy to enforce (recording is optional)

    • stream: An external application (e.g.: RDM) must push the
      recording stream via a separate websocket connection

    • proxy: Session must be recorded directly at Devolutions Gateway
      level (not implemented yet)

    Note: Up until now, Devolutions Gateway was rejecting sessions when this claim was found because it couldn’t upheld
    the policy. It’s effectively not breaking anything which wasn’t already broken previously.

2024.3.0

24 Jul 07:06
84efdb6
Compare
Choose a tag to compare

Features

  • agent: Devolutions Gateway service updater (#889) (92f86bf51b)

  • dgw: add API to trigger Devolutions Gateway update (#890) (799e518c15)

  • dgw: support .cast terminal recording files (#900) (d1f7559a3e)

    The .cast extension is used for "asciicast" files, i.e.: asciinema cast files.
    This is a widely used terminal playback format.

Bug Fixes

  • dgw: preserve DGW access URI base in recording player (#899) (92f87c8cea)

    This is notably important for DVLS side by side setups.

  • dgw: fix cast file not working in recording player page (#904) (c6985152a2)

  • dgw: enforce recording policy (#906) (13ed397eee) (DGW-86)

    When recording flag is set and recording stream is closed, the associated
    session is killed within 10 seconds.

  • dgw: support for jet_rec claim in JMUX tokens (#909) (8b0c3eb80b)

  • dgw: recording player now scales with the size of the window (#922) (4cb95a5e0c) (DGW-198)

v2024.2.3

18 Jun 19:39
10dcae3
Compare
Choose a tag to compare

Bug Fixes

Continuous Integration

v2024.2.2

18 Jun 13:10
b8b8367
Compare
Choose a tag to compare

Features

Bug Fixes

  • dgw: IP restrictions fallback for ngrok TCP listeners (#881) (c2635ec6dc) (DGW-193)

    Now properly fallbacks to disabling IP restriction rules for TCP
    listeners as well.

  • dgw: rework network interface DTO definition (#871) (bc2cb96f9d) (DGW-133)

v2024.2.1

22 May 13:50
fa3e90d
Compare
Choose a tag to compare

Bug Fixes

v2024.2.0

21 May 17:24
65e938a
Compare
Choose a tag to compare

Features

  • webapp: allow ssh client to use encrypted ssh keys (#856) (6424c40ecb)

Improvements

Bug Fixes

  • webapp: new version button is available even when a more recent version is used (#846) (2b92c9ab3b) (DGW-182)

  • webapp: fix misaligned "Fill form" buttons when the hostname is too long (#844) (1b8a6ebe9c) (DGW-180)

  • webapp: fix force rescan button (#847) (a08dd3159e) (DGW-185)

  • webapp: add tooltip to menu warning icon when session is closed (#852) (b4ed845695) (DGW-145)

  • webapp: prevent suspicious "e" console logs (#851) (cbf9bd360e) (DGW-164)

    Downgrade the Primeng package as the log was introduced in version 16.5.0.

  • webapp: connect session button stays grayed out intermittently (#855) (3fdce898e5) (DGW-183)

  • dgw: write new JRL into a temporary file, and swap on success (#857) (d91f1cfb6a) (DGW-104)

    It’s preferable to proceed like this to avoid losing current JRL file
    if the file is truncated without being rewritten successfully immediately.

  • pwsh: fix reading .pem files from PowerShell runspace (#859) (98437f6f4e)

  • webapp: format the error backtrace to show line breaks (#860) (7e50a04dbd) (DGW-169)

  • webapp: menu icon does not update on error for RDP, ARD, VNC (#861) (235e3a72f5) (DGW-168)

  • webapp: tooltip for the selected protocol is always set to RDP (#862) (717d53e149) (DGW-187)

  • dgw: prevent error traces caused by browser behavior (#864) (25b86ea1b3) (DGW-128)

    Since those are not actual errors, this was creating noise in the logs.

Performance

  • dgw: keep HTTP connections open for 10 minutes (#863) (245e2cfb26)

    Most browsers will keep HTTP connections open to increase throughput
    when performing subsequent transactions.
    For simplicity, we don’t distinguish between idle and non-idle
    connections.

Build

v2024.1.6

06 May 15:35
44033df
Compare
Choose a tag to compare

Features

  • webapp: add ssh key authentication (#796) (a884cbb8ff)

  • dgw: add /jet/jrec/play endpoint (#806) (3e7aa30da7) (DGW-111)

  • webapp: network scanning (#826) (1e4a18a23c) (DGW-119)

  • dgw: return disk space available for recordings (#827) (c0776d43de) (DGW-100)

    The total and available space used for storing recordings is now
    returned inside the heartbeat response.

    If the system does not support this operation, the fields are
    excluded from the response.

  • dgw: add /jet/jrec/delete/<ID> endpoint (#834) (0965f4e2a7) (DGW-96)

    This new endpoint is used for deleting recordings and allow the
    service provider (e.g.: DVLS) to delete them according to its
    policy.

  • dgw: add recording_storage_is_writeable in heartbeat (#835) (a209dc6933) (DGW-175)

  • dgw: WebM player for remote desktop recordings (#832) (58362b9c4a) (DGW-110)

    Adds a video and xterm player at the GET /jet/jrec/play endpoint which
    supports multiple videos and builds the page dynamically based on the
    type of recording.

Improvements

Bug Fixes

  • dgw: error code on service startup failure (#816) (66e7ce2599) (DGW-174)

    Instead of panicking when failing to start the service, we instead
    attempt to log the error to the log file and return an error code.

  • webapp: login screen not shown when opening /jet/webapp/client/ (#839) (b58b03832f) (DGW-176)

  • installer: [breaking] install Gateway service as NetworkService (#838) (1c8a7d2e0a)

Performance

  • dgw: use a buffer of 1k bytes for ARD VNC sessions (#809) (5697097561) (DGW-138)

    Apple ARD uses the so-called MVS video codec.
    It is a tricky codec: Apple didn't implement proper congestion control, so it's basically just TCP controlling the flow (not by much).
    Our MVS implementation for the web client is obviously not as fast as the native one, and can’t keep up when there are too much data in transit.
    To reduce the amount of data in transit, we reduced the size of the copy buffer when using web socket forwarding endpoint and if the application protocol of the session is set to ARD.

Build

Continuous Integration

v2024.1.5

04 Apr 15:46
7338c5f
Compare
Choose a tag to compare

Bug Fixes

  • installer: prevent possible prompt for firewall access in Windows installer (f9760f2a1b)

Continuous Integration