The following sections list the changes in reva 1.8.0 relevant to reva users. The changes are ordered by importance.
Before this fix the
Content-Type header was guessed by
called to early. Now the
Content-Type is set correctly and to the same values as in ownCloud 10
The json backend now allows a grantee to fetch a share by id.
When moving a file or folder (includes renaming) the filepath in the cache didn’t get updated
which caused subsequent requests to
getpath to fail.
Fixed stat requests and propfind responses for publicly shared files.
The CS3 APIs specify a way to restore a recycle item to a different location than the original by
restore_path field in the
RestoreRecycleItemRequest. This field had not
been considered until now.
It is not intended to statically link the generated binaries for local development workflows. This resulted on segmentation faults and compiller warnings.
This PR adds the CLI commands
token-remove to manage
tokens with limited scope on behalf of registered users.
This PR adds the functionality to generate authentication tokens with limited scope on behalf of registered users. These can be used in third party apps or in case primary user credentials cannot be submitted to other parties.
transfer-create creates a share of type transfer.
Previously we were using errors.New and fmt.Errorf to create errors. Now we use the errors defined in the errtypes package.
This provides a new
open-in-app command for the CLI and the implementation on the
appprovider gateway service for the new API, including the option to specify the appplication
to use, thus overriding the preconfigured one.
Protobuf oneof fields cannot be properly handled by the native json marshaller, and the protojson package can only handle proto messages. Previously, we were using a workaround of storing these oneof fields separately, which made the code inelegant. Now we marshal these messages as strings before marshalling them via the native json package.
Based on feedback in the new ownCloud web frontend we want to omit trying to render user avatars images / profile pictures based on the backend capabilities. Now the OCS communicates a corresponding value.
To make reliability calculations possible, a new exporter has been added to Mentix that reads scheduled downtimes from the GOCDB and exposes it through Prometheus metrics.
Move away from hardcoding service IP addresses and rely upon name resolution instead. It delegates the address lookup to a static in-memory service registry, which can be re-implemented in multiple forms.
In OCS, once we retrieve the shares from the shareprovider service, we stat each of those separately to obtain the required info, which introduces a lot of latency. This PR introduces a resoource info cache in OCS, which would prevent this latency.
Recently, a TTL cache was added to OCS to store statted resource infos. This PR adds an interface to define warmup strategies and also adds a cbox specific strategy which starts a goroutine to initialize the cache with all the valid shares present in the system.
This PR adds a storage driver which connects to a oc10 storage backend (storage + database). This allows for running oc10 and ocis with the same backend in parallel.
Previously, all images were based on golang:1.16 which is built from Debian. Using ‘scratch’ as base, reduces the size of the artifacts well as the attack surface for all the images, plus copying the binary from the build step ensures that only the strictly required software is present on the final image. For the revad images tagged ‘-eos’, eos-slim is used instead. It is still large but it updates the environment as well as the EOS version.
Primarily, this PR is meant to introduce the concept of scopes into our tokens. At the moment, it addresses those cases where we impersonate other users without allowing the full scope of what the actual user has access to.
A short explanation for how it works for public shares: - We get the public share using the token provided by the client. - In the public share, we know the resource ID, so we can add this to the allowed scope, but not the path. - However, later OCDav tries to access by path as well. Now this is not allowed at the moment. However, from the allowed scope, we have the resource ID and we’re allowed to stat that. We stat the resource ID, get the path and if the path matches the one passed by OCDav, we allow the request to go through.
When showing the list of shares to the end-user, the list was not sorted alphabetically. This PR sorts the list of users and groups.
This PR adds a warning while an user is building the source code, if he is using a go version not recommended.
checksum to the header
Tus-Extension and added the
After accepting or rejecting a share the API includes the updated share in the response.