Uploaded image for project: 'Nuxeo Drive '
  1. Nuxeo Drive
  2. NXDRIVE-2229

[Direct Transfer] Use a proper NXQL query to fetch server folders

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.2.0
    • Fix Version/s: 5.2.3
    • Component/s: Direct Transfer

      Description

      Situation

      When browsing server folders to choose the destination where to upload files, we are currently using the Python client to fetch all children of a given folder. Then, we filter out non-folderish documents.

      This is a problem for several reasons:

      1. Fetching all documents, including non-folderish ones (that are not interesting for our use case) is a loss of resources. This implies more work from the server and more memory usage on the client side for nothing.
      2. While fetching all those documents, we are using the permissions enricher, which adds more work to do on the server side. This can be very problematic on huge trees.
      3. Finally, another downside is the number of retrieved children: 1,000 maximum for the request. So if the remote folder contains 1,000 non-folderish documents and 2 folderish ones, they will unlikely be selectable because not retrieved by the original request. This can be mitiged by doing more requests, but let's see if this is needed later.

      Fix

      We should use a simple, yet efficient, NXQL query to fetch only folderish documents that the current user can actually browse and write into. Those are 2 distincts information and both are needed to be sure one can browse an unwritale folder until a writable sub-folder.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 30 minutes
                  30m

                    PagerDuty