The following sections list the changes in reva 1.5.0 relevant to reva users. The changes are ordered by importance.
These depend on a remote server running reva and thus fail in case of version mismatches.
There was a regression in which we were not routing correctly to the right storage depending on the url.
There were some left over open file descriptors on simple.go.
Use the old node id to build the target path for xattr updates.
The ocis storage could load the owner information of a deleted file. This caused the storage to not be able to purge deleted files.
The api was comparing the requested username to the userid.
The path of the files shared with me was incorrect.
Previously, we checked the xattr.Remove error only for linux systems. Now macOS is checked also
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.
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.
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.
Previously different drivers handled removing public shares using different means, either the token or the ID. Now, both the drivers support both these methods.
The ocs api should not send the users uuid. Replaced the uuid with the username.
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.
Prevent the errors while storing new ‘daily’ releases from going unnoticed on the CI.
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.
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.
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.
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.
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.
When mapping errtypes to grpc statuses we now also map bad request and not implemented / unsupported cases in the gateway storageprovider.
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.
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.
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.
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.
Added the share types to the ocs propfind response when a resource has been shared.
To allow resuming a download we now support GET requests with a range header.
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.
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.
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.
https://github.com/owncloud/ocis/issues/552 https://github.com/owncloud/ocis/issues/762 https://github.com/owncloud/ocis/issues/763 https://github.com/owncloud/ocis/issues/893 https://github.com/owncloud/ocis/issues/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 https://github.com/owncloud/product/issues/270 https://github.com/cs3org/reva/pull/1368