Skip to content

v1.5.0

Compare
Choose a tag to compare
@SamuAlfageme SamuAlfageme released this 14 Jan 11:56
· 1337 commits to master since this release

Changelog for reva 1.5.0 (2021-01-12)

The following sections list the changes in reva 1.5.0 relevant to
reva users. The changes are ordered by importance.

Summary

  • Fix #1385: Run changelog check only if there are changes in the code
  • Fix #1333: Delete sdk unit tests
  • Fix #1342: Dav endpoint routing to home storage when request is remote.php/dav/files
  • Fix #1338: Fix fd leaks
  • Fix #1343: Fix ocis move
  • Fix #551: Fix purging deleted files with the ocis storage
  • Fix #863: Fix dav api for trashbin
  • Fix #204: Fix the ocs share with me response
  • Fix #1351: Fix xattr.Remove error check for macOS
  • Fix #1320: Do not panic on remote.php/dav/files/
  • Fix #1379: Make Jaeger agent usable
  • Fix #1331: Fix capabilities response for multiple client versions
  • Fix #1281: When sharing via ocs look up user by username
  • Fix #1334: Handle removal of public shares by token or ID
  • Chg #990: Replace the user uuid with the username in ocs share responses
  • Enh #1350: Add auth protocol based on user agent
  • Enh #1362: Mark 'store-dev-release' CI step as failed on 4XX/5XX errors
  • Enh #1364: Remove expired Link on Get
  • Enh #1340: Add cache to store UID to UserID mapping in EOS
  • Enh #1154: Add support for the protobuf interface to eos metadata
  • Enh #1154: Merge-rebase from master 10/11/2020
  • Enh #1359: Add cache for calculated etags for home and shares directory
  • Enh #1321: Add support for multiple data transfer protocols
  • Enh #1324: Log expected errors with debug level
  • Enh #1351: Map errtypes to status
  • Enh #1347: Support property to enable health checking on a service
  • Enh #1332: Add import support to Mentix
  • Enh #1371: Use self-hosted Drone CI
  • Enh #1354: Map bad request and unimplement to http status codes
  • Enh #929: Include share types in ocs propfind responses
  • Enh #1328: Add CLI commands for public shares
  • Enh #1388: Support range header in GET requests
  • Enh #1361: Remove expired Link on Access
  • Enh #1386: Docker image for cs3org/revad:VERSION-eos
  • Enh #1368: Calculate and expose actual file permission set

Details

  • Bugfix #1385: Run changelog check only if there are changes in the code

    #1385

  • Bugfix #1333: Delete sdk unit tests

    These depend on a remote server running reva and thus fail in case of version mismatches.

    #1333

  • Bugfix #1342: Dav endpoint routing to home storage when request is remote.php/dav/files

    There was a regression in which we were not routing correctly to the right storage depending on
    the url.

    #1342

  • Bugfix #1338: Fix fd leaks

    There were some left over open file descriptors on simple.go.

    #1338

  • Bugfix #1343: Fix ocis move

    Use the old node id to build the target path for xattr updates.

    owncloud/ocis#975
    #1343

  • Bugfix #551: Fix purging deleted files with the ocis storage

    The ocis storage could load the owner information of a deleted file. This caused the storage to
    not be able to purge deleted files.

    owncloud/ocis#551

  • Bugfix #863: Fix dav api for trashbin

    The api was comparing the requested username to the userid.

    owncloud/ocis#863

  • Bugfix #204: Fix the ocs share with me response

    The path of the files shared with me was incorrect.

    owncloud/product#204
    #1346

  • Bugfix #1351: Fix xattr.Remove error check for macOS

    Previously, we checked the xattr.Remove error only for linux systems. Now macOS is checked
    also

    #1351

  • Bugfix #1320: Do not panic on remote.php/dav/files/

    Currently requests to /remote.php/dav/files/ result in panics since we cannot longer strip
    the user + destination from the url. This fixes the server response code and adds an error body to
    the response.

    #1320

  • Bugfix #1379: Make Jaeger agent usable

    Previously, you could not use tracing with jaeger agent because the tracing connector is
    always used instead of the tracing endpoint.

    This PR removes the defaults for collector and tracing endpoint.

    #1379

  • Bugfix #1331: Fix capabilities response for multiple client versions

    #1331

  • Bugfix #1281: When sharing via ocs look up user by username

    The ocs api returns usernames when listing share recipients, so the lookup when creating the
    share needs to search the usernames and not the userid.

    #1281

  • Bugfix #1334: Handle removal of public shares by token or ID

    Previously different drivers handled removing public shares using different means, either
    the token or the ID. Now, both the drivers support both these methods.

    #1334

  • Change #990: Replace the user uuid with the username in ocs share responses

    The ocs api should not send the users uuid. Replaced the uuid with the username.

    owncloud/ocis#990
    #1375

  • Enhancement #1350: Add auth protocol based on user agent

    Previously, all available credential challenges are given to the client, for example, basic
    auth, bearer token, etc ... Different clients have different priorities to use one method or
    another, and before it was not possible to force a client to use one method without having a side
    effect on other clients.

    This PR adds the functionality to target a specific auth protocol based on the user agent HTTP
    header.

    #1350

  • Enhancement #1362: Mark 'store-dev-release' CI step as failed on 4XX/5XX errors

    Prevent the errors while storing new 'daily' releases from going unnoticed on the CI.

    #1362

  • Enhancement #1364: Remove expired Link on Get

    There is the scenario in which a public link has expired but ListPublicLink has not run,
    accessing a technically expired public share is still possible.

    #1364

  • Enhancement #1340: Add cache to store UID to UserID mapping in EOS

    Previously, we used to send an RPC to the user provider service for every lookup of user IDs from
    the UID stored in EOS. This PR adds an in-memory lock-protected cache to store this mapping.

    #1340

  • Enhancement #1154: Add support for the protobuf interface to eos metadata

    #1154

  • Enhancement #1154: Merge-rebase from master 10/11/2020

    #1154

  • Enhancement #1359: Add cache for calculated etags for home and shares directory

    Since we store the references in the shares directory instead of actual resources, we need to
    calculate the etag on every list/stat call. This is rather expensive so adding a cache would
    help to a great extent with regard to the performance.

    #1359

  • Enhancement #1321: Add support for multiple data transfer protocols

    Previously, we had to configure which data transfer protocol to use in the dataprovider
    service. A previous PR added the functionality to redirect requests to different handlers
    based on the request method but that would lead to conflicts if multiple protocols don't
    support mutually exclusive sets of requests. This PR adds the functionality to have multiple
    such handlers simultaneously and the client can choose which protocol to use.

    #1321
    #1285

  • Enhancement #1324: Log expected errors with debug level

    While trying to download a non existing file and reading a non existing attribute are
    technically an error they are to be expected and nothing an admin can or even should act upon.

    #1324

  • Enhancement #1351: Map errtypes to status

    When mapping errtypes to grpc statuses we now also map bad request and not implemented /
    unsupported cases in the gateway storageprovider.

    #1351

  • Enhancement #1347: Support property to enable health checking on a service

    This update introduces a new service property called ENABLE_HEALTH_CHECKS that must be
    explicitly set to true if a service should be checked for its health status. This allows us to
    only enable these checks for partner sites only, skipping vendor sites.

    #1347

  • Enhancement #1332: Add import support to Mentix

    This update adds import support to Mentix, transforming it into a Mesh Entity Exchanger.
    To properly support vendor site management, a new connector that works on a local file has been
    added as well.

    #1332

  • Enhancement #1371: Use self-hosted Drone CI

    Previously, we used the drone cloud to run the CI for the project. Due to unexpected and sudden
    stop of the service for the cs3org we decided to self-host it.

    #1371

  • Enhancement #1354: Map bad request and unimplement to http status codes

    We now return a 400 bad request when a grpc call fails with an invalid argument status and a 501 not
    implemented when it fails with an unimplemented status. This prevents 500 errors when a user
    tries to add resources to the Share folder or a storage does not implement an action.

    #1354

  • Enhancement #929: Include share types in ocs propfind responses

    Added the share types to the ocs propfind response when a resource has been shared.

    owncloud/ocis#929
    #1329

  • Enhancement #1328: Add CLI commands for public shares

    #1328

  • Enhancement #1388: Support range header in GET requests

    To allow resuming a download we now support GET requests with a range header.

    https://github.com/owncloud/ocis-reva/issues/12
    #1388

  • Enhancement #1361: Remove expired Link on Access

    Since there is no background jobs scheduled to wipe out expired resources, for the time being
    public links are going to be removed on a "on demand" basis, meaning whenever there is an API call
    that access the list of shares for a given resource, we will check whether the share is expired
    and delete it if so.

    #1361

  • Enhancement #1386: Docker image for cs3org/revad:VERSION-eos

    Based on eos:c8_4.8.15 (Centos8, version 4.8.15). To be used when the Reva daemon needs IPC
    with xrootd/eos via stdin/out.

    #1386
    #1389

  • Enhancement #1368: Calculate and expose actual file permission set

    Instead of hardcoding the permissions set for every file and folder to ListContainer:true,
    CreateContainer:true and always reporting the hardcoded string WCKDNVR for the WebDAV
    permissions we now aggregate the actual cs3 resource permission set in the storage drivers and
    correctly map them to ocs permissions and webdav permissions using a common role struct that
    encapsulates the mapping logic.

    owncloud/ocis#552
    owncloud/ocis#762
    owncloud/ocis#763
    owncloud/ocis#893
    owncloud/ocis#1126
    https://github.com/owncloud/ocis-reva/issues/47
    https://github.com/owncloud/ocis-reva/issues/315
    https://github.com/owncloud/ocis-reva/issues/316
    owncloud/product#270
    #1368