The following sections list the changes in reva 1.14.0 relevant to reva users. The changes are ordered by importance.
On /app/open and return base64-encoded fileids on /app/new
We’ve removed excess info from the http list app providers endpoint. The app provider section
contained all mime types supported by a certain app provider, which led to a very big JSON
payload and since they are not used they have been removed again. Mime types not on the mime type
configuration list always had
application/octet-stream as a file extension and
APPLICATION/OCTET-STREAM file as name and description. Now these information are just
https://github.com/cs3org/reva/pull/2149 https://github.com/owncloud/ocis/pull/2603 https://github.com/cs3org/reva/pull/2138
We fixed that app providers will be set as default app while registering if configured. Also we changed the behaviour that listing supported mimetypes only displays allowed / configured mimetypes.
We’ve fixed the gateway behavior, that when multiple app providers are present, it always returned that we have duplicate names for app providers. This was due the call to GetAllProviders() without any subsequent filtering by name. Now this filter mechanism is in place and the duplicate app providers error will only appear if a real duplicate is found.
We’ve fixed the configuration for the TUS capabilities, which will now take the given configuration instead of always using hardcoded defaults.
Chi routes based on the URL.RawPath, which is not updated by the shiftPath based routing used in reva. By setting the RawPath to an empty string chi will fall pack to URL.Path, allowing it to match percent encoded path segments, e.g. when trying to match emails or multibyte characters.
We fixed registering mimetypes in the mime package when starting multiple storage providers in the same process.
When the gateway declines a share we can ignore a non existing reference.
This change fixes the opening of filetypes that are only supported to be viewed and not to be edited by some WOPI compliant office suites.
We’ve fixed the error return behaviour in the gateway which would return GRPC error codes from the auth middleware. Now it returns REVA errors which other parts of REVA are also able to understand.
For the mime types configuration for the AppRegistry.
This change fixes the convertion between the eosclient.FileInfo to ResourceInfo, in which the field ArbitraryMetadata was missing. Moreover, to be consistent with SetArbitraryMetadata() EOS implementation, all the “user.” prefix are stripped out from the xattrs.
We’ve fixed the behavior webdav uploads when the token expired before the final stat. Previously clients would receive a http 500 error which is wrong, because the file was successfully uploaded and only the stat couldn’t be performed. Now we return a http 200 ok and the clients will fetch the file info in a separate propfind request.
Also we introduced the upload expires header on the webdav/TUS and datagateway endpoints, to signal clients how long an upload can be performed.
This PR updates reva to reflect the share manager CS3 API changes.
In the decomposedfs we return now the space name in the response which is stored in the extended attributes.
For each mime type
Now for each mime type, when asking for the list of mime types, the default AppProvider, set both using the config and the SetDefaultProviderForMimeType method, is always in the top of the list of AppProviders. The config for the Providers and Mime Types for the AppRegistry changed, using a list instead of a map. In fact the list of mime types returned by ListSupportedMimeTypes is now ordered according the config.
Mime types and their friendly names are now handled in the /app/list HTTP endpoint, and an additional /app/new endpoint is made available to create new files for apps.
The archiver and app provider has been added to the ocs capabilities.
We added the maximum files count and maximum archive size of the archiver to the capabilities endpoint. Clients can use this to generate warnings before the actual archive creation fails.
Before the archiver only supported resources provided by a path. Now also the resources ID are
supported in order to specify the content of the archive to download. The parameters accepted
by the archiver are two: an optional list of
path (containing the paths of the resources) and
an optional list of
id (containing the resources IDs of the resources).
Newly created spaces were missing the Root reference and the storage id in the space id.
The Shared-with-me UI view. Also they work regardless whether they are accepted or not, therefore there’s no point to expose them.
The LDAP client connections were hardcoded to ignore certificate validation errors. Now verification is enabled by default and a new config parameter ‘insecure’ is introduced to override that default. It is also possible to add trusted Certificates by using the new ‘cacert’ config paramter.
Added redirectors for ownCloud 10 URLs. This allows users to continue to use their bookmarks from ownCloud 10 in ocis.
We changed the publicshare and resourceinfo scopes to contain only necessary values. This reduces the size of the resulting token and also limits the amount of data which can be leaked.
Added filter-files to the dav REPORT API. This enables the listing of favorites.
Share manager that uses Nextcloud as a backend
Adds more unit tests for the Nextcloud storage provider.
Adds more unit tests for the Nextcloud auth manager and the Nextcloud user manager
When listing folders the SQL query now uses an existing index on the filecache table.
Added a filter to the OCS API to filter the received shares by type.
In the decomposedfs we now use the space type from the request when creating a new space.
We fixed running the tests locally and align it with the drone setup.
AppProvider supported mime types are now overridden in its configuration. A friendly name, a description, an extension, an icon and a default app, can be configured in the AppRegistry for each mime type.
Unique and consistent over time user identifier. The Reva token used so far is not consistent (it’s per session) and also too long.