Client Applications

4.4.2

Updated: April 3, 2024

Welcome to the Release Notes for Nuxeo Drive 4.4.2

Status: Release
Changelog

Important Changes

Direct Transfer

The Direct Transfer feature has been disabled by default for the moment. It can be re-enabled by configuration. It is currently being reworked to be more configurable so as to better match our users' use cases.

 More on JIRA ticket NXDRIVE-2082

Improvements

Behaviors and Features Flags

We want to give even more control on features/behaviors to enable or not inside Nuxeo Drive. And so we introduced two new parameters that will easily allow one to control the application behavior or features.

Feature enablement will typically allow you to enable Direct Edit while disabling synchronization. Or Direct Edit and Direct Transfer, and not synchronization. Or only synchronization. It is configurable both globally for all users and locally for a specific group of users.

Features

Using configuration files, you can now turn on/off features inside the application, such as the auto-update, Direct Edit, Direct Transfer and S3 Direct Uploads.

Here is a sample for the local configuration file:

[DEFAULT]
env = myFeatures

[myFeatures]
feature.auto-update     = true
feature.direct-edit     = true
feature.direct-transfer = true
feature.s3              = true

And here is how to set those values for every user connected to a server, via the JSON file stored server side and used by Nuxeo Drive:

{
    "feature": {
        "auto-update"     : true,
        "direct-edit"     : true,
        "direct-transfer" : true,
        "s3"              : true
    }
}

Behaviors

The IT team can tweak behaviors as well. A behavior is a server-side action that can be turned on/off using the server configuration. For now, the only possibility is to deny server deletions completely.

Here is how to set those values for every user connected to a server, via the server configuration:

{
    "behavior": {
        "server-deletion": true
    }
}

 More on JIRA ticket NXDRIVE-2070 and technical specifications document

Direct Edit

Direct Edit can now handle any custom blob metadata; there are no more limitations on the xpath.

Those are all valid (given "s" for string and "n" for number):

  • s:s (file:content, foo:bar, note:note)
  • s:s/n (files:files/0, foo:bar/0)
  • s:s/n/s (files:files/0/file)
  • s:s/n/n/n/n/s/n/s:s... (foo:baz/0/0/0/0/file/0/real:file...)

Notes handling is stricter, only note:note is taken into account, nothing changed.

 More on JIRA ticket NXDRIVE-2027

Server Configuration

As the server configuration endpoint can be used to enabled/disable features and tweak parameters impacting all users, it was natural to first wait for it before starting features.

Here is the flow when starting the application:

  1. Launch engines (an engine is an account).
  2. Fetch the server configuration endpoint.
  3. Update options, merge with one from the local configuration file.
  4. Start (or deny) all features.

 More on JIRA ticket NXDRIVE-2091

Delay Option

The remote watcher uses the 'delay' option (in seconds) between 2 calls to the NuxeoDrive.GetChangeSummary operation. That value can be tweaked from different locations:

  • from the CLI using the --delay argument
  • from the local config file
  • from the server config

The last possibility was not working: if one set the 'delay' option to another value different from the default, the option will effectively be updated but not used by the remote watcher.

A fix has been merged to use the new value as soon as available, making the remote watcher adapting its calls in realtime.

 More on JIRA ticket NXDRIVE-2118

Auto-Update

Updates are now unlocked on the centralized channel when auto-update is disabled.

Auto-updates are now allowed/forced when those parameters are met:

  • the update_check_delay option is set to 0;
  • the channel option is set to "centralized";
  • the client_version option is set.

This is required for IT teams wanting to control which version of the application to deploy.

 More on JIRA ticket NXDRIVE-2047

Local Configuration

When an option was set from both the local configuration file and from the server configuration endpoint, and if the local value was the default value of that option, then there's no impact. This is unfortunate as one could not force the value of an option if it was modified from the server configuration endpoint.

As of now, any option set locally, using the default value or not, has the precedence over the options set by the server.

 More on JIRA ticket NXDRIVE-1980

Systray Menu

We have improved the systray menu with new icons and tooltips when hovering over the icons.

Icons Systray Menu
Icons Systray Menu

 More on JIRA ticket NXDRIVE-1255

Disk Free Space

There's now a free disk space bar displayed at different places.

Free Disk Space
Free Disk Space

 More on JIRA ticket NXDRIVE-2042

Notarizing macOS Software

Since February 2020, Apple enforced its security policy for distributed applications.
Every application must be "notarized", this is now done for Nuxeo Drive.

Another big step is the full support for Catalina and Mojave.

 More on JIRA ticket NXDRIVE-2041

Translations

Incomplete and/or obsolete translations have been cleaned up, and the hard-coded "Nuxeo Drive" has been removed to ease up future branding.

 More on JIRA tickets NXDRIVE-1996 and NXDRIVE-1893.

QA/CI

In the global scope of moving out from the legacy QA and having quick PR statuses, we moved quality checks and unit tests to GitHub Actions.

Results are more than satisfying because we now have PR statuses in less than 2 minutes, covering all quality checks (translations, code style, spelling, dead code, lint and type annotations) and unit tests on GNU/Linux, macOS and Windows.

 More on JIRA ticket NXDRIVE-2064

Fixes

Conflict Management

Conflicts are now even more precisely managed.

The old bug was:

  • A file is in conflict (edited locally and remotely).
  • That file has been renamed remotely, changing its file name locally.
  • When resolving the conflict: the user chose to use its local version of the file.

The fix provides this expected behavior:

  • The remote file is replaced with the local one.
  • the remote file keeps its metadata.

 More on JIRA ticket NXDRIVE-382

Synchronization

When the local folder where data is synchronized was on a different partition than the standard C:, there were different errors (in the synchronization process and Direct Edit), this is fixed now.

 More on JIRA ticket NXDRIVE-1966 and NXDRIVE-1969.

The synchronization on Windows has been fixed when one creates a new folder and then renames it very quickly.

 More on JIRA ticket NXDRIVE-1847

Some non-folderish documents can have zero digest.
This is sometimes the case with special documents using the LiveConnect addon. It may also happen in very rare cases when a server contribution may be broken.
In such scenario, Nuxeo Drive cannot synchronize the file as it has no control over the file integrity.
Such documents are now ignored instead of generating errors.

 More on JIRA ticket NXDRIVE-1973

An issue has been fixed about invalid TransferStatus value, it was introduced in the version 4.2.0, it may have broke retro-compatibility between versions 4.1.4 and 4.2.0 in certain conditions. We apologize for the inconvenience.

 More on JIRA ticket NXDRIVE-1901

Direct Transfer

When performing Direct Transfer of a folder to a target remote folder, the content of the folder was transferred directly to the remote folder. Now a remote subfolder is created when uploading a folder.

 More on JIRA ticket NXDRIVE-1958

Direct Transfer now handles username containing non-letter characters.

 More on JIRA ticket NXDRIVE-1983

Memory

We take some precious time to improve the memory usage of the application. The result is quite enjoying as the application is now slightly faster and consume less RAM & CPU. This is laptop battery savor!

We also identified a memory leak in one the third-party module we are using for metrics, this had caused severe memory errors for some people and we are sorry for the inconvenience.

 More on JIRA tickets NXDRIVE-1982.

Hi-DPI

The application is now fully High-DPI aware.

 More on JIRA ticket NXDRIVE-1900