Releases: cs3org/reva
v2.1.0
Changelog for reva 2.1.0 (2022-03-29)
The following sections list the changes in reva 2.1.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #2636: Delay reconnect log for events
- Fix #2645: Avoid warning about missing .flock files
- Fix #2625: Fix locking on publik links and the decomposed filesystem
- Fix #2643: Emit linkaccessfailed event when share is nil
- Fix #2646: Replace public mountpoint fileid with grant fileid in ocdav
- Fix #2612: Adjust the scope handling to support the spaces architecture
- Fix #2621: Send events only if response code is
OK
- Chg #2574: Switch NATS backend
- Chg #2667: Allow LDAP groups to have no gidNumber
- Chg #3233: Improve quota handling
- Chg #2600: Use the cs3 share api to manage spaces
- Enh #2644: Add new public share manager
- Enh #2626: Add new share manager
- Enh #2624: Add etags to virtual spaces
- Enh #2639: File Events
- Enh #2627: Add events for sharing action
- Enh #2664: Add grantID to mountpoint
- Enh #2622: Allow listing shares in spaces via the OCS API
- Enh #2623: Add space aliases
- Enh #2647: Add space specific events
- Enh #3345: Add the spaceid to propfind responses
- Enh #2616: Add etag to spaces response
- Enh #2628: Add spaces aware trash-bin API
Details
-
Bugfix #2636: Delay reconnect log for events
Print reconnect information log only when reconnect time is bigger than a second
-
Bugfix #2645: Avoid warning about missing .flock files
These flock files appear randomly because of file locking. We can savely ignore them.
-
Bugfix #2625: Fix locking on publik links and the decomposed filesystem
We've fixed the behavior of locking on the decomposed filesystem, so that now app based locks
can be modified user independently (needed for WOPI integration). Also we added a check, if a
lock is already expired and if so, we lazily delete the lock. The InitiateUploadRequest now
adds the Lock to the upload metadata so that an upload to an locked file is possible.We'v added the locking api requests to the public link scope checks, so that locking also can be
used on public links (needed for WOPI integration). -
Bugfix #2643: Emit linkaccessfailed event when share is nil
The code no longer panics when a link access failed event has no share.
-
Bugfix #2646: Replace public mountpoint fileid with grant fileid in ocdav
We now show the same resoucre id for resources when accessing them via a public links as when
using a logged in user. This allows the web ui to start a WOPI session with the correct resource
id. -
Bugfix #2612: Adjust the scope handling to support the spaces architecture
The scope authentication interceptors weren't updated to the spaces architecture and
couldn't authenticate some requests. -
Bugfix #2621: Send events only if response code is
OK
Before events middleware was sending events also when the resulting status code was not
OK
.
This is clearly a bug. -
Change #2574: Switch NATS backend
We've switched the NATS backend from Streaming to JetStream, since NATS Streaming is
depreciated. -
Change #2667: Allow LDAP groups to have no gidNumber
Similar to the user-provider allow a group to have no gidNumber. Assign a default in that case.
-
Change #3233: Improve quota handling
GetQuota now returns 0 when no quota was set instead of the disk size. Also added a new return
value for the remaining space which will either be quota - used bytes or if no quota was set the
free disk size. -
Change #2600: Use the cs3 share api to manage spaces
We now use the cs3 share Api to manage the space roles. We do not send the request to the share
manager, the permissions are stored in the storage provider -
Enhancement #2644: Add new public share manager
We added a new public share manager which uses the new metadata storage backend for persisting
the public share information. -
Enhancement #2626: Add new share manager
We added a new share manager which uses the new metadata storage backend for persisting the
share information. -
Enhancement #2624: Add etags to virtual spaces
The shares storage provider didn't include the etag in virtual spaces like the shares jail or
mountpoints. -
Enhancement #2639: File Events
Adds file based events. See
pkg/events/files.go
for full list -
Enhancement #2627: Add events for sharing action
Includes lifecycle events for shares and public links doesn't include federated sharing
events for now see full list of events inpkg/events/types.go
-
Enhancement #2664: Add grantID to mountpoint
We distinguish between the mountpoint of a share and the grant where the original file is
located on the storage. -
Enhancement #2622: Allow listing shares in spaces via the OCS API
Added a
space_ref
parameter to the list shares endpoints so that one can list shares inside of
spaces. -
Enhancement #2623: Add space aliases
Space aliases can be used to resolve spaceIDs in a client.
-
Enhancement #2647: Add space specific events
See
pkg/events/spaces.go
for full list -
Enhancement #3345: Add the spaceid to propfind responses
Added the spaceid to propfind responses so that clients have the necessary data to send
subsequent requests. -
Enhancement #2616: Add etag to spaces response
Added the spaces etag to the response when listing spaces.
-
Enhancement #2628: Add spaces aware trash-bin API
Added the webdav trash-bin endpoint for spaces.
v2.0.0
Changelog for reva 2.0.0 (2022-03-03)
The following sections list the changes in reva 2.0.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #2457: Do not swallow error
- Fix #2422: Handle non existing spaces correctly
- Fix #2327: Enable changelog on edge branch
- Fix #2370: Fixes for apps in public shares, project spaces for EOS driver
- Fix #2464: Pass spacegrants when adding member to space
- Fix #2430: Fix aggregated child folder id
- Fix #2348: Make archiver handle spaces protocol
- Fix #2452: Fix create space error message
- Fix #2445: Don't handle ids containing "/" in decomposedfs
- Fix #2285: Accept new userid idp format
- Fix #2503: Remove the protection from /v?.php/config endpoints
- Fix #2462: Public shares path needs to be set
- Fix #2427: Fix registry caching
- Fix #2298: Remove share refs from trashbin
- Fix #2433: Fix shares provider filter
- Fix #2351: Fix Statcache removing
- Fix #2374: Fix webdav copy of zero byte files
- Fix #2336: Handle sending all permissions when creating public links
- Fix #2440: Add ArbitraryMetadataKeys to statcache key
- Fix #2582: Keep lock structs in a local map protected by a mutex
- Fix #2372: Make owncloudsql work with the spaces registry
- Fix #2416: The registry now returns complete space structs
- Fix #3066: Fix propfind listing for files
- Fix #2428: Remove unused home provider from config
- Fix #2334: Revert fix decomposedfs upload
- Fix #2415: Services should never return transport level errors
- Fix #2419: List project spaces for share recipients
- Fix #2501: Fix spaces stat
- Fix #2432: Use space reference when listing containers
- Fix #2572: Wait for nats server on middleware start
- Fix #2454: Fix webdav paths in PROPFINDS
- Chg #2329: Activate the statcache
- Chg #2596: Remove hash from public link urls
- Chg #2495: Remove the ownCloud storage driver
- Chg #2527: Store space attributes in decomposedFS
- Chg #2581: Update hard-coded status values
- Chg #2524: Use description during space creation
- Chg #2554: Shard nodes per space in decomposedfs
- Chg #2576: Harden xattrs errors
- Chg #2436: Replace template in GroupFilter for UserProvider with a simple string
- Chg #2429: Make archiver id based
- Chg #2340: Allow multiple space configurations per provider
- Chg #2396: The ocdav handler is now spaces aware
- Chg #2349: Require
ListRecycle
when listing trashbin - Chg #2353: Reduce log output
- Chg #2542: Do not encode webDAV ids to base64
- Chg #2519: Remove the auto creation of the .space folder
- Chg #2394: Remove logic from gateway
- Chg #2023: Add a sharestorageprovider
- Chg #2234: Add a spaces registry
- Chg #2339: Fix static registry regressions
- Chg #2370: Fix static registry regressions
- Chg #2354: Return not found when updating non existent space
- Chg #2589: Remove deprecated linter modules
- Chg #2016: Move wrapping and unwrapping of paths to the storage gateway
- Enh #2591: Set up App Locks with basic locks
- Enh #1209: Reva CephFS module v0.2.1
- Enh #2511: Error handling cleanup in decomposed FS
- Enh #2516: Cleaned up some code
- Enh #2512: Consolidate xattr setter and getter
- Enh #2341: Use CS3 permissions API
- Enh #2343: Allow multiple space type fileters on decomposedfs
- Enh #2460: Add locking support to decomposedfs
- Enh #2540: Refactored the xattrs package in the decomposedfs
- Enh #2463: Do not log whole nodes
- Enh #2350: Add file locking methods to the storage and filesystem interfaces
- Enh #2379: Add new file url of the app provider to the ocs capabilities
- Enh #2369: Implement TouchFile from the CS3apis
- Enh #2385: Allow to create new files with the app provider on public links
- Enh #2397: Product field in OCS version
- Enh #2393: Update tus/tusd to version 1.8.0
- Enh #2522: Introduce events
- Enh #2528: Use an exclcusive write lock when writing multiple attributes
- Enh #2595: Add integration test for the groupprovider
- Enh #2439: Ignore handled errors when creating spaces
- Enh #2500: Invalidate listproviders cache
- Enh #2345: Don't assume that the LDAP groupid in reva matches the name
- Enh #2525: Allow using AD UUID as userId values
- Enh #2584: Allow running userprovider integration tests for the LDAP driver
- Enh #2585: Add metadata storage layer and indexer
- Enh #2163: Nextcloud-based share manager for pkg/ocm/share
- Enh #2278: OIDC driver changes for lightweight users
- Enh #2315: Add new attributes to public link propfinds
- Enh #2431: Delete shares when purging spaces
- Enh #2434: Refactor ocdav into smaller chunks
- Enh #2524: Add checks when removing space members
- Enh #2457: Restore spaces that were previously deleted
- Enh #2498: Include grants in list storage spaces response
- Enh #2344: Allow listing all storage spaces
- Enh #2547: Add an if-match check to the storage provider
- Enh #2486: Update cs3apis to include lock api changes
- Enh #2526: Upgrade ginkgo to v2
Details
-
Bugfix #2457: Do not swallow error
Decomposedfs not longer swallows errors when creating a node fails.
-
Bugfix #2422: Handle non existing spaces correctly
When looking up a space by id we returned the wrong status code.
-
Bugfix #2327: Enable changelog on edge branch
We added a
branch
flag to thetools/check-changelog/main.go
to fix changelog checks on
the edge branch. -
Bugfix #2370: Fixes for apps in public shares, project spaces for EOS driver
-
Bugfix #2464: Pass spacegrants when adding member to space
When creating a space grant there should not be created a new space. Unfortunately SpaceGrant
didn't work when adding members to a space. Now a value is placed in the ctx of the
storageprovider on which decomposedfs reacts -
Bugfix #2430: Fix aggregated child folder id
Propfind now returns the correct id and correctly aggregates the mtime and etag.
-
Bugfix #2348: Make archiver handle spaces protocol
The archiver can now handle the spaces protocol
-
Bugfix #2452: Fix create space error message
Create space no longer errors with list spaces error messages.
-
Bugfix #2445: Don't handle ids containing "/" in decomposedfs
The storageprovider previously checked all ids without checking their validity this lead to
flaky test because it shouldn't check ids that are used from the public storage provider -
Bugfix #2285: Accept new userid idp format
The format for userid idp changed and
this broke the ocmd
tutorial
This PR makes the provider authorizer interceptor accept both the old and the new string
format. -
Bugfix #2503: Remove the protection from /v?.php/config endpoints
We've removed the protection from the "/v1.php/config" and "/v2.php/config" endpoints to be
API compatible with ownCloud 10. -
Bugfix #2462: Public shares path needs to be set
We need to set the relative path to the space root for public link shares to identify them in the
shares list. -
Bugfix #2427: Fix registry caching
We now cache space lookups per user.
-
Bugfix #2298: Remove share refs from trashbin
-
Bugfix #2433: Fix shares provider filter
The shares storage provider now correctly filters space types
-
Bugfix #2351: Fix Statcache removing
Removing from statcache didn't work correctly with different setups. Unified and fixed
-
Bugfix #2374: Fix webdav copy of zero byte files
We've fixed the webdav copy action of zero byte files, which was not performed because the
webdav api assumed, that zero byte uploads are created when initiating the upload, which was
recently removed from all storage drivers. Therefore the webdav api also uploads zero byte
files after initiating the upload. -
Bugfix #2336: Handle sending all permissions when creating public links
For backwards compatability we now reduce permissions to readonly when a create public link
carries all permissions. -
Bugfix #2440: Add ArbitraryMetadataKeys to statcache key
Otherwise stating with and without them would return the same result (because it is cached)
-
Bugfix #2582: Keep lock structs in a local map protected by a mutex
Make sure that only one go routine or process can get the lock.
-
Bugfix #2372: Make owncloudsql work with the spaces registry
Owncloudsql now works properly with the spaces registry.
-
Bugfix #2416: The registry now returns complete space structs
We now return the complete space info, including name, path, owner, etc. instead of only path
and id. -
Bugfix #3066: Fix propfind li...
v1.18.0
Changelog for reva 1.18.0 (2022-02-11)
The following sections list the changes in reva 1.18.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #2370: Fixes for apps in public shares, project spaces for EOS driver
- Fix #2374: Fix webdav copy of zero byte files
- Fix #2478: Use ocs permission objects in the reva GRPC client
- Fix #2368: Return wrapped paths for recycled items in storage provider
- Chg #2354: Return not found when updating non existent space
- Enh #1209: Reva CephFS module v0.2.1
- Enh #2341: Use CS3 permissions API
- Enh #2350: Add file locking methods to the storage and filesystem interfaces
- Enh #2379: Add new file url of the app provider to the ocs capabilities
- Enh #2369: Implement TouchFile from the CS3apis
- Enh #2385: Allow to create new files with the app provider on public links
- Enh #2397: Product field in OCS version
- Enh #2393: Update tus/tusd to version 1.8.0
- Enh #2205: Modify group and user managers to skip fetching specified metadata
- Enh #2232: Make ocs resource info cache interoperable across drivers
- Enh #2233: Populate owner data in the ocs and ocdav services
- Enh #2278: OIDC driver changes for lightweight users
Details
-
Bugfix #2370: Fixes for apps in public shares, project spaces for EOS driver
-
Bugfix #2374: Fix webdav copy of zero byte files
We've fixed the webdav copy action of zero byte files, which was not performed because the
webdav api assumed, that zero byte uploads are created when initiating the upload, which was
recently removed from all storage drivers. Therefore the webdav api also uploads zero byte
files after initiating the upload. -
Bugfix #2478: Use ocs permission objects in the reva GRPC client
There was a bug introduced by differing CS3APIs permission definitions for the same role
across services. This is a first step in making all services use consistent definitions. -
Bugfix #2368: Return wrapped paths for recycled items in storage provider
-
Change #2354: Return not found when updating non existent space
If a spaceid of a space which is updated doesn't exist, handle it as a not found error.
-
Enhancement #1209: Reva CephFS module v0.2.1
-
Enhancement #2341: Use CS3 permissions API
Added calls to the CS3 permissions API to the decomposedfs in order to check the user
permissions. -
Enhancement #2350: Add file locking methods to the storage and filesystem interfaces
We've added the file locking methods from the CS3apis to the storage and filesystem
interfaces. As of now they are dummy implementations and will only return "unimplemented"
errors. -
Enhancement #2379: Add new file url of the app provider to the ocs capabilities
We've added the new file capability of the app provider to the ocs capabilities, so that clients
can discover this url analogous to the app list and file open urls. -
Enhancement #2369: Implement TouchFile from the CS3apis
We've updated the CS3apis and implemented the TouchFile method.
-
Enhancement #2385: Allow to create new files with the app provider on public links
We've added the option to create files with the app provider on public links.
-
Enhancement #2397: Product field in OCS version
We've added a new field to the OCS Version, which is supposed to announce the product name. The
web ui as a client will make use of it to make the backend product and version available (e.g. for
easier bug reports). -
Enhancement #2393: Update tus/tusd to version 1.8.0
We've update tus/tusd to version 1.8.0.
-
Enhancement #2205: Modify group and user managers to skip fetching specified metadata
-
Enhancement #2232: Make ocs resource info cache interoperable across drivers
-
Enhancement #2233: Populate owner data in the ocs and ocdav services
-
Enhancement #2278: OIDC driver changes for lightweight users
v1.17.0
Changelog for reva 1.17.0 (2021-12-09)
The following sections list the changes in reva 1.17.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #2305: Make sure /app/new takes
target
as absolute path - Fix #2303: Fix content disposition header for public links files
- Fix #2316: Fix the share types in propfinds
- Fix #2803: Fix app provider for editor public links
- Fix #2298: Remove share refs from trashbin
- Fix #2309: Remove early finish for zero byte file uploads
- Fix #1941: Fix TUS uploads with transfer token only
- Chg #2210: Fix app provider new file creation and improved error codes
- Enh #2217: OIDC auth driver for ESCAPE IAM
- Enh #2256: Return user type in the response of the ocs GET user call
- Enh #2315: Add new attributes to public link propfinds
- Enh #2740: Implement space membership endpoints
- Enh #2252: Add the xattr sys.acl to SysACL (eosgrpc)
- Enh #2314: OIDC: fallback if IDP doesn't provide "preferred_username" claim
Details
-
Bugfix #2305: Make sure /app/new takes
target
as absolute pathA mini-PR to make the
target
parameter absolute (by prepending/
if missing). -
Bugfix #2303: Fix content disposition header for public links files
-
Bugfix #2316: Fix the share types in propfinds
The share types for public links were not correctly added to propfinds.
-
Bugfix #2803: Fix app provider for editor public links
Fixed opening the app provider in public links with the editor permission. The app provider
failed to open the file in read write mode. -
Bugfix #2298: Remove share refs from trashbin
-
Bugfix #2309: Remove early finish for zero byte file uploads
We've fixed the upload of zero byte files by removing the early upload finishing mechanism.
-
Bugfix #1941: Fix TUS uploads with transfer token only
TUS uploads had been stopped when the user JWT token expired, even if only the transfer token
should be validated. Now uploads will continue as intended. -
Change #2210: Fix app provider new file creation and improved error codes
We've fixed the behavior for the app provider when creating new files. Previously the app
provider would overwrite already existing files when creating a new file, this is now handled
and prevented. The new file endpoint accepted a path to a file, but this does not work for spaces.
Therefore we now use the resource id of the folder where the file should be created and a filename
to create the new file. Also the app provider returns more useful error codes in a lot of cases. -
Enhancement #2217: OIDC auth driver for ESCAPE IAM
This enhancement allows for oidc token authentication via the ESCAPE IAM service.
Authentication relies on mappings of ESCAPE IAM groups to REVA users. For a valid token, if at
the most one group from the groups claim is mapped to one REVA user, authentication can take
place. -
Enhancement #2256: Return user type in the response of the ocs GET user call
-
Enhancement #2315: Add new attributes to public link propfinds
Added a new property "oc:signature-auth" to public link propfinds. This is a necessary change
to be able to support archive downloads in password protected public links. -
Enhancement #2740: Implement space membership endpoints
Implemented endpoints to add and remove members to spaces.
-
Enhancement #2252: Add the xattr sys.acl to SysACL (eosgrpc)
-
Enhancement #2314: OIDC: fallback if IDP doesn't provide "preferred_username" claim
Some IDPs don't support the "preferred_username" claim. Fallback to the "email" claim in that
case.
v1.16.0
Changelog for reva 1.16.0 (2021-11-19)
The following sections list the changes in reva 1.16.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #2245: Don't announce search-files capability
- Fix #2247: Merge user ACLs from EOS to sys ACLs
- Fix #2279: Return the inode of the version folder for files when listing in EOS
- Fix #2294: Fix HTTP return code when path is invalid
- Fix #2231: Fix share permission on a single file in sql share driver (cbox pkg)
- Fix #2230: Fix open by default app and expose default app
- Fix #2265: Fix nil pointer exception when resolving members of a group (rest driver)
- Fix #1214: Fix restoring versions
- Fix #2254: Fix spaces propfind
- Fix #2260: Fix unset quota xattr on darwin
- Fix #5776: Enforce permissions in public share apps
- Fix #2767: Fix status code for WebDAV mkcol requests where an ancestor is missing
- Fix #2287: Add public link access via mount-ID:token/relative-path to the scope
- Fix #2244: Fix the permissions response for shared files in the cbox sql driver
- Enh #2219: Add virtual view tests
- Enh #2230: Add priority to app providers
- Enh #2258: Improved error messages from the AppProviders
- Enh #2119: Add authprovider owncloudsql
- Enh #2211: Enhance the cbox share sql driver to store accepted group shares
- Enh #2212: Filter root path according to the agent that makes the request
- Enh #2237: Skip get user call in eosfs in case previous ones also failed
- Enh #2266: Callback for the EOS UID cache to retry fetch for failed keys
- Enh #2215: Aggregrate resource info properties for virtual views
- Enh #2271: Revamp the favorite manager and add the cbox sql driver
- Enh #2248: Cache whether a user home was created or not
- Enh #2282: Return a proper NOT_FOUND error when a user or group is not found
- Enh #2268: Add the reverseproxy http service
- Enh #2207: Enable users to list all spaces
- Enh #2286: Add trace ID to middleware loggers
- Enh #2251: Mentix service inference
- Enh #2218: Allow filtering of mime types supported by app providers
- Enh #2213: Add public link share type to propfind response
- Enh #2253: Support the file editor role for public links
- Enh #2208: Reduce redundant stat calls when statting by resource ID
- Enh #2235: Specify a list of allowed folders/files to be archived
- Enh #2267: Restrict the paths where share creation is allowed
- Enh #2252: Add the xattr sys.acl to SysACL (eosgrpc)
- Enh #2239: Update toml configs
Details
-
Bugfix #2245: Don't announce search-files capability
The
dav.reports
capability contained asearch-files
report which is currently not
implemented. We removed it from the defaults. -
Bugfix #2247: Merge user ACLs from EOS to sys ACLs
-
Bugfix #2279: Return the inode of the version folder for files when listing in EOS
-
Bugfix #2294: Fix HTTP return code when path is invalid
Before when a path was invalid, the archiver returned a 500 error code. Now this is fixed and
returns a 404 code. -
Bugfix #2231: Fix share permission on a single file in sql share driver (cbox pkg)
-
Bugfix #2230: Fix open by default app and expose default app
We've fixed the open by default app name behaviour which previously only worked, if the default
app was configured by the provider address. We also now expose the default app on the
/app/list
endpoint to clients. -
Bugfix #2265: Fix nil pointer exception when resolving members of a group (rest driver)
-
Bugfix #1214: Fix restoring versions
Restoring a version would not remove that version from the version list. Now the behavior is
compatible to ownCloud 10. -
Bugfix #2254: Fix spaces propfind
Fixed the deep listing of spaces.
-
Bugfix #2260: Fix unset quota xattr on darwin
Unset quota attributes were creating errors in the logfile on darwin.
-
Bugfix #5776: Enforce permissions in public share apps
A receiver of a read-only public share could still edit files via apps like Collabora. These
changes enforce the share permissions in apps used on publicly shared resources.owncloud/web#5776
owncloud/ocis#2479
https://github.com/cs3org/reva/pull/22142214 -
Bugfix #2767: Fix status code for WebDAV mkcol requests where an ancestor is missing
We've fixed the status code to 409 according to the WebDAV standard for MKCOL requests where an
ancestor is missing. Previously these requests would fail with an different error code (eg.
500) because of storage driver limitations (eg. oCIS FS cannot handle recursive creation of
directories). -
Bugfix #2287: Add public link access via mount-ID:token/relative-path to the scope
-
Bugfix #2244: Fix the permissions response for shared files in the cbox sql driver
-
Enhancement #2219: Add virtual view tests
-
Enhancement #2230: Add priority to app providers
Before the order of the list returned by the method FindProviders of app providers depended
from the order in which the app provider registered themselves. Now, it is possible to specify a
priority for each app provider, and even if an app provider re-register itself (for example
after a restart), the order is kept. -
Enhancement #2258: Improved error messages from the AppProviders
Some rather cryptic messages are now hidden to users, and some others are made more
user-friendly. Support for multiple locales is still missing and out of scope for now. -
Enhancement #2119: Add authprovider owncloudsql
We added an authprovider that can be configured to authenticate against an owncloud classic
mysql database. It verifies the password from the oc_users table. -
Enhancement #2211: Enhance the cbox share sql driver to store accepted group shares
-
Enhancement #2212: Filter root path according to the agent that makes the request
-
Enhancement #2237: Skip get user call in eosfs in case previous ones also failed
-
Enhancement #2266: Callback for the EOS UID cache to retry fetch for failed keys
-
Enhancement #2215: Aggregrate resource info properties for virtual views
-
Enhancement #2271: Revamp the favorite manager and add the cbox sql driver
-
Enhancement #2248: Cache whether a user home was created or not
Previously, on every call, we used to stat the user home to make sure that it existed. Now we cache
it for a given amount of time so as to avoid repeated calls. -
Enhancement #2282: Return a proper NOT_FOUND error when a user or group is not found
-
Enhancement #2268: Add the reverseproxy http service
This PR adds an HTTP service which does the job of authenticating incoming requests via the reva
middleware before forwarding them to the respective backends. This is useful for extensions
which do not have the auth mechanisms. -
Enhancement #2207: Enable users to list all spaces
Added a permission check if the user has the
list-all-spaces
permission. This enables users
to list all spaces, even those which they are not members of. -
Enhancement #2286: Add trace ID to middleware loggers
-
Enhancement #2251: Mentix service inference
Previously, 4 different services per site had to be created in the GOCDB. This PR removes this
redundancy by infering all endpoints from a single service entity, making site
administration a lot easier. -
Enhancement #2218: Allow filtering of mime types supported by app providers
-
Enhancement #2213: Add public link share type to propfind response
Added share type for public links to propfind responses.
-
Enhancement #2253: Support the file editor role for public links
-
Enhancement #2208: Reduce redundant stat calls when statting by resource ID
-
Enhancement #2235: Specify a list of allowed folders/files to be archived
Adds a configuration to the archiver service in order to specify a list of folders (as regex)
that can be archived. -
Enhancement #2267: Restrict the paths where share creation is allowed
This PR limits share creation to certain specified paths. These can be useful when users have
access to global spac...
v1.15.0
Changelog for reva 1.15.0 (2021-10-26)
The following sections list the changes in reva 1.15.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #2168: Override provider if was previously registered
- Fix #2173: Fix archiver max size reached error
- Fix #2167: Handle nil quota in decomposedfs
- Fix #2153: Restrict EOS project spaces sharing permissions to admins and writers
- Fix #2179: Fix the returned permissions for webdav uploads
- Fix #2177: Retrieve the full path of a share when setting as
- Chg #2479: Make apps able to work with public shares
- Enh #2203: Add alerting webhook to SiteAcc service
- Enh #2190: Update CODEOWNERS
- Enh #2174: Inherit ACLs for files from parent directories
- Enh #2152: Add a reference parameter to the getQuota request
- Enh #2171: Add optional claim parameter to machine auth
- Enh #2163: Nextcloud-based share manager for pkg/ocm/share
- Enh #2135: Nextcloud test improvements
- Enh #2180: Remove OCDAV options namespace parameter
- Enh #2117: Add ocs cache warmup strategy for first request from the user
- Enh #2170: Handle propfind requests for existing files
- Enh #2165: Allow access to recycle bin for arbitrary paths outside homes
- Enh #2193: Filter root paths according to user agent
- Enh #2162: Implement the UpdateStorageSpace method
- Enh #2189: Add user setting capability
Details
-
Bugfix #2168: Override provider if was previously registered
Previously if an AppProvider registered himself two times, for example after a failure, the
mime types supported by the provider contained multiple times the same provider. Now this has
been fixed, overriding the previous one. -
Bugfix #2173: Fix archiver max size reached error
Previously in the total size count of the files being archived, the folders were taken into
account, and this could cause a false max size reached error because the size of a directory is
recursive-computed, causing the archive to be truncated. Now in the size count, the
directories are skipped. -
Bugfix #2167: Handle nil quota in decomposedfs
Do not nil pointer derefenrence when sending nil quota to decomposedfs
-
Bugfix #2153: Restrict EOS project spaces sharing permissions to admins and writers
-
Bugfix #2179: Fix the returned permissions for webdav uploads
We've fixed the returned permissions for webdav uploads. It did not consider shares and public
links for the permission calculation, but does so now. -
Bugfix #2177: Retrieve the full path of a share when setting as
Accepted or on shared by me
-
Change #2479: Make apps able to work with public shares
Public share receivers were not possible to use apps in public shares because the apps couldn't
load the files in the public shares. This has now been made possible by changing the scope checks
for public shares. -
Enhancement #2203: Add alerting webhook to SiteAcc service
To integrate email alerting with the monitoring pipeline, a Prometheus webhook has been added
to the SiteAcc service. Furthermore account settings have been extended/modified
accordingly. -
Enhancement #2190: Update CODEOWNERS
-
Enhancement #2174: Inherit ACLs for files from parent directories
-
Enhancement #2152: Add a reference parameter to the getQuota request
Implementation of cs3org/cs3apis#147
Make the cs3apis accept a Reference in the getQuota Request to limit the call to a specific
storage space. -
Enhancement #2171: Add optional claim parameter to machine auth
-
Enhancement #2163: Nextcloud-based share manager for pkg/ocm/share
Note that pkg/ocm/share is very similar to pkg/share, but it deals with cs3/sharing/ocm
whereas pkg/share deals with cs3/sharing/collaboration -
Enhancement #2135: Nextcloud test improvements
-
Enhancement #2180: Remove OCDAV options namespace parameter
We dropped the namespace parameter, as it is not used in the options handler.
-
Enhancement #2117: Add ocs cache warmup strategy for first request from the user
-
Enhancement #2170: Handle propfind requests for existing files
-
Enhancement #2165: Allow access to recycle bin for arbitrary paths outside homes
-
Enhancement #2193: Filter root paths according to user agent
Adds a new rule setting in the storage registry ("allowed_user_agents"), that allows a user to
specify which storage provider shows according to the user agent that made the request. -
Enhancement #2162: Implement the UpdateStorageSpace method
Added the UpdateStorageSpace method to the decomposedfs.
-
Enhancement #2189: Add user setting capability
We've added a capability to communicate the existance of a user settings service to clients.
v1.14.0
Changelog for reva 1.14.0 (2021-10-12)
The following sections list the changes in reva 1.14.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #2103: AppProvider: propagate back errors reported by WOPI
- Fix #2149: Remove excess info from the http list app providers endpoint
- Fix #2114: Add as default app while registering and skip unset mimetypes
- Fix #2095: Fix app open when multiple app providers are present
- Fix #2135: Make TUS capabilities configurable
- Fix #2076: Fix chi routing
- Fix #2077: Fix concurrent registration of mimetypes
- Fix #2154: Return OK when trying to delete a non existing reference
- Fix #2078: Fix nil pointer exception in stat
- Fix #2073: Fix opening a readonly filetype with WOPI
- Fix #2140: Map GRPC error codes to REVA errors
- Fix #2147: Follow up of #2138: this is the new expected format
- Fix #2116: Differentiate share types when retrieving received shares in sql driver
- Fix #2074: Fix Stat() for EOS storage provider
- Fix #2151: Fix return code for webdav uploads when the token expired
- Chg #2121: Sharemanager API change
- Enh #2090: Return space name during list storage spaces
- Enh #2138: Default AppProvider on top of the providers list
- Enh #2137: Revamp app registry and add parameter to control file creation
- Enh #145: UI improvements for the AppProviders
- Enh #2088: Add archiver and app provider to ocs capabilities
- Enh #2537: Add maximum files and size to archiver capabilities
- Enh #2100: Add support for resource id to the archiver
- Enh #2158: Augment the Id of new spaces
- Enh #2085: Make encoding user groups in access tokens configurable
- Enh #146: Filter the denial shares (permission = 0) out of
- Enh #2141: Use golang v1.17
- Enh #2053: Safer defaults for TLS verification on LDAP connections
- Enh #2115: Reduce code duplication in LDAP related drivers
- Enh #1989: Add redirects from OC10 URL formats
- Enh #2479: Limit publicshare and resourceinfo scope content
- Enh #2071: Implement listing favorites via the dav report API
- Enh #2091: Nextcloud share managers
- Enh #2070: More unit tests for the Nextcloud storage provider
- Enh #2087: More unit tests for the Nextcloud auth and user managers
- Enh #2075: Make owncloudsql leverage existing filecache index
- Enh #2050: Add a share types filter to the OCS API
- Enh #2134: Use space Type from request
- Enh #2132: Align local tests with drone setup
- Enh #2095: Whitelisting for apps
- Enh #2155: Pass an extra query parameter to WOPI /openinapp with a
Details
-
Bugfix #2103: AppProvider: propagate back errors reported by WOPI
On /app/open and return base64-encoded fileids on /app/new
-
Bugfix #2149: Remove excess info from the http list app providers endpoint
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 hadapplication/octet-stream
as a file extension and
APPLICATION/OCTET-STREAM file
as name and description. Now these information are just
omitted. -
Bugfix #2114: Add as default app while registering and skip unset mimetypes
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. -
Bugfix #2095: Fix app open when multiple app providers are present
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. -
Bugfix #2135: Make TUS capabilities configurable
We've fixed the configuration for the TUS capabilities, which will now take the given
configuration instead of always using hardcoded defaults. -
Bugfix #2076: Fix chi routing
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. -
Bugfix #2077: Fix concurrent registration of mimetypes
We fixed registering mimetypes in the mime package when starting multiple storage providers
in the same process. -
Bugfix #2154: Return OK when trying to delete a non existing reference
When the gateway declines a share we can ignore a non existing reference.
-
Bugfix #2078: Fix nil pointer exception in stat
-
Bugfix #2073: Fix opening a readonly filetype with WOPI
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. -
Bugfix #2140: Map GRPC error codes to REVA errors
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. -
Bugfix #2147: Follow up of #2138: this is the new expected format
For the mime types configuration for the AppRegistry.
-
Bugfix #2116: Differentiate share types when retrieving received shares in sql driver
-
Bugfix #2074: Fix Stat() for EOS storage provider
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. -
Bugfix #2151: Fix return code for webdav uploads when the token expired
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. -
Change #2121: Sharemanager API change
This PR updates reva to reflect the share manager CS3 API changes.
-
Enhancement #2090: Return space name during list storage spaces
In the decomposedfs we return now the space name in the response which is stored in the extended
attributes. -
Enhancement #2138: Default AppProvider on top of the providers list
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. -
Enhancement #2137: Revamp app registry and add parameter to control file creation
-
Enhancement #145: UI improvements for the AppProviders
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. -
Enhancement #2088: Add archiver and app provider to ocs capabilities
The archiver and app provider has been added to the ocs capabilities.
-
Enhancement #2537: Add maximum files and size to archiver 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. -
Enhancement #2100: Add support for resource id to the archiver
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 ofpath
(containing the paths of the resources) and
an optional list ofid
(containing the resources IDs of the resources).
v1.13.0
Changelog for reva 1.13.0 (2021-09-14)
The following sections list the changes in reva 1.13.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #2024: Fixes for http appprovider endpoints
- Fix #2054: Fix the response after deleting a share
- Fix #2026: Fix moving of a shared file
- Fix #2047: Do not truncate logs on restart
- Fix #1605: Allow to expose full paths in OCS API
- Fix #2033: Fix the storage id of shares
- Fix #2059: Remove "Got registration for user manager" print statements
- Fix #2051: Remove malformed parameters from WOPI discovery URLs
- Fix #2055: Fix uploads of empty files
- Fix #1991: Remove share references when declining shares
- Fix #2030: Fix superfluous WriteHeader on file upload
- Enh #2034: Fail initialization of a WOPI AppProvider if
- Enh #1968: Use a URL object in OpenInAppResponse
- Enh #1698: Implement folder download as archive
- Enh #2042: Escape ldap filters
- Enh #2028: Machine auth provider
- Enh #2043: Nextcloud user backend
- Enh #2006: Move ocs API to go-chi/chi based URL routing
- Enh #1994: Add owncloudsql driver for the userprovider
- Enh #1971: Add documentation for runtime-plugins
- Enh #2044: Add utility methods for creating share filters
- Enh #2065: New sharing role Manager
- Enh #2015: Add spaces to the list of capabilities
- Enh #2041: Create operations for Spaces
- Enh #2029: Tracing agent configuration
Details
-
Bugfix #2024: Fixes for http appprovider endpoints
-
Bugfix #2054: Fix the response after deleting a share
Added the deleted share to the response after deleting it.
-
Bugfix #2026: Fix moving of a shared file
As the share receiver, moving a shared file to another share was not possible.
-
Bugfix #2047: Do not truncate logs on restart
This change fixes the way log files were opened. Before they were truncated and now the log file
will be open in append mode and created it if it does not exist. -
Bugfix #1605: Allow to expose full paths in OCS API
Before this fix a share file_target was always harcoded to use a base path. This fix provides the
possiblity to expose full paths in the OCIS API and asymptotically in OCIS web. -
Bugfix #2033: Fix the storage id of shares
The storageid in the share object contained an incorrect value.
-
Bugfix #2059: Remove "Got registration for user manager" print statements
Removed the "Got registration for user manager" print statements which spams the log output
without respecting any log level. -
Bugfix #2051: Remove malformed parameters from WOPI discovery URLs
This change fixes the parsing of WOPI discovery URLs for MSOffice /hosting/discovery
endpoint. This endpoint is known to contain malformed query paramters and therefore this fix
removes them. -
Bugfix #2055: Fix uploads of empty files
This change fixes upload of empty files. Previously this was broken and only worked for the
owncloud filesystem as it bypasses the semantics of the InitiateFileUpload call to touch a
local file. -
Bugfix #1991: Remove share references when declining shares
Implemented the removal of share references when a share gets declined. Now when a user
declines a share it will no longer be listed in theirShares
directory. -
Bugfix #2030: Fix superfluous WriteHeader on file upload
Removes superfluous Writeheader on file upload and therefore removes the error message
"http: superfluous response.WriteHeader call from
github.com/cs3org/reva/internal/http/interceptors/log.(*responseLogger).WriteHeader
(log.go:154)" -
Enhancement #2034: Fail initialization of a WOPI AppProvider if
The underlying app is not WOPI-compliant nor it is supported by the WOPI bridge extensions
-
Enhancement #1968: Use a URL object in OpenInAppResponse
-
Enhancement #1698: Implement folder download as archive
Adds a new http service which will create an archive (platform dependent, zip in windows and tar
in linux) given a list of file. -
Enhancement #2042: Escape ldap filters
Added ldap filter escaping to increase the security of reva.
-
Enhancement #2028: Machine auth provider
Adds a new authentication method used to impersonate users, using a shared secret, called
api-key. -
Enhancement #2043: Nextcloud user backend
Adds Nextcloud as a user backend (Nextcloud drivers for 'auth' and 'user'). Also adds back the
Nextcloud storage integration tests. -
Enhancement #2006: Move ocs API to go-chi/chi based URL routing
-
Enhancement #1994: Add owncloudsql driver for the userprovider
We added a new backend for the userprovider that is backed by an owncloud 10 database. By default
theuser_id
column is used as the reva user username and reva user opaque id. When setting
join_username=true
the reva user username is joined from theoc_preferences
table
(appid='core' AND configkey='username'
) instead. When setting
join_ownclouduuid=true
the reva user opaqueid is joined from theoc_preferences
table
(appid='core' AND configkey='ownclouduuid'
) instead. This allows more flexible
migration strategies. It also supports aenable_medial_search
config option when
searching users that will enclose the query with%
. -
Enhancement #1971: Add documentation for runtime-plugins
-
Enhancement #2044: Add utility methods for creating share filters
Updated the CS3 API to include the new share grantee filter and added utility methods for
creating share filters. This will help making the code more concise. -
Enhancement #2065: New sharing role Manager
The new Manager role is equivalent to a Co-Owner with the difference that a Manager can create
grants on the root of the Space. This means inviting a user to a space will not require an action
from them, as the Manager assigns the grants. -
Enhancement #2015: Add spaces to the list of capabilities
In order for clients to be aware of the new spaces feature we need to enable the
spaces
flag on
the capabilities' endpoint. -
Enhancement #2041: Create operations for Spaces
DecomposedFS is aware now of the concept of Spaces, and supports for creating them.
-
Enhancement #2029: Tracing agent configuration
Earlier we could only use the collector URL directly, but since an agent can be deployed as a
sidecar process it makes much more sense to use it instead of the collector directly.
v1.12.0
Changelog for reva 1.12.0 (2021-08-24)
The following sections list the changes in reva 1.12.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #1819: Disable notifications
- Fix #2000: Fix dependency on tests
- Fix #1957: Fix etag propagation on deletes
- Fix #1960: Return the updated share after updating
- Fix #1993: Fix owncloudsql GetMD
- Fix #1954: Fix response format of the sharees API
- Fix #1965: Fix the file target of user and group shares
- Fix #1956: Fix trashbin listing with depth 0
- Fix #1987: Fix windows build
- Fix #1990: Increase oc10 compatibility of owncloudsql
- Fix #1978: Owner type is optional
- Fix #1980: Propagate the etag after restoring a file version
- Fix #1985: Add quota stubs
- Fix #1992: Check if symlink exists instead of spamming the console
- Fix #1913: Logic to restore files to readonly nodes
- Chg #1982: Move user context methods into a separate
userctx
package - Enh #1946: Add share manager that connects to oc10 databases
- Enh #1983: Add Codacy unit test coverage
- Enh #1803: Introduce new webdav spaces endpoint
- Enh #1998: Initial version of the Nextcloud storage driver
- Enh #1984: Replace OpenCensus with OpenTelemetry
- Enh #1861: Add support for runtime plugins
- Enh #2008: Site account extensions
Details
-
Bugfix #1819: Disable notifications
The presence of the key
notifications
in the capabilities' response would cause clients to
attempt to poll the notifications endpoint, which is not yet supported. To prevent the
unnecessary bandwidth we are disabling this altogether. -
Bugfix #2000: Fix dependency on tests
The Nextcloud storage driver depended on a mock http client from the tests/ folder This broke
the Docker build The dependency was removed A check was added to test the Docker build on each PR -
Bugfix #1957: Fix etag propagation on deletes
When deleting a file the etag propagation would skip the parent of the deleted file.
-
Bugfix #1960: Return the updated share after updating
When updating the state of a share in the in-memory share manager the old share state was
returned instead of the updated state. -
Bugfix #1993: Fix owncloudsql GetMD
The GetMD call internally was not prefixing the path when looking up resources by id.
-
Bugfix #1954: Fix response format of the sharees API
The sharees API wasn't returning the users and groups arrays correctly.
-
Bugfix #1965: Fix the file target of user and group shares
In some cases the file target of user and group shares was not properly prefixed.
-
Bugfix #1956: Fix trashbin listing with depth 0
The trashbin API handled requests with depth 0 the same as request with a depth of 1.
-
Bugfix #1987: Fix windows build
Add the necessary
golang.org/x/sys/windows
package import toowncloud
and
owncloudsql
storage drivers. -
Bugfix #1990: Increase oc10 compatibility of owncloudsql
We added a few changes to the owncloudsql storage driver to behave more like oc10.
-
Bugfix #1978: Owner type is optional
When reading the user from the extended attributes the user type might not be set, in this case we
now return a user with an invalid type, which correctly reflects the state on disk. -
Bugfix #1980: Propagate the etag after restoring a file version
The decomposedfs didn't propagate after restoring a file version.
-
Bugfix #1985: Add quota stubs
The
owncloud
andowncloudsql
drivers now read the available quota from disk to no longer
always return 0, which causes the web UI to disable uploads. -
Bugfix #1992: Check if symlink exists instead of spamming the console
The logs have been spammed with messages like
could not create symlink for ...
when using the
decomposedfs, eg. with the oCIS storage. We now check if the link exists before trying to create
it. -
Bugfix #1913: Logic to restore files to readonly nodes
This impacts solely the DecomposedFS. Prior to these changes there was no validation when a
user tried to restore a file from the trashbin to a share location (i.e any folder under
/Shares
).With this patch if the user restoring the resource has write permissions on the share, restore
is possible. -
Change #1982: Move user context methods into a separate
userctx
package -
Enhancement #1946: Add share manager that connects to oc10 databases
-
Enhancement #1983: Add Codacy unit test coverage
This PR adds unit test coverage upload to Codacy.
-
Enhancement #1803: Introduce new webdav spaces endpoint
Clients can now use a new webdav endpoint
/dav/spaces/<storagespaceid>/relative/path/to/file
to directly access storage
spaces.The
<storagespaceid>
can be retrieved using the ListStorageSpaces CS3 api call. -
Enhancement #1998: Initial version of the Nextcloud storage driver
This is not usable yet in isolation, but it's a first component of
https://github.com/pondersource/sciencemesh-nextcloud -
Enhancement #1984: Replace OpenCensus with OpenTelemetry
OpenTelemetry](https://opentelemetry.io/docs/concepts/what-is-opentelemetry/) is
an open standard a
sandbox CNCF project and it was formed through a merger of the OpenTracing and OpenCensus.OpenCensus and OpenTracing have merged to form OpenTelemetry, which serves as the next major
version of OpenCensus and OpenTracing. OpenTelemetry will offer backwards compatibility
with existing OpenCensus integrations, and we will continue to make security patches to
existing OpenCensus libraries for two years.There is a lot of outdated documentation as a result of this merger, and we will be better off
adopting the latest standard and libraries. -
Enhancement #1861: Add support for runtime plugins
This PR introduces a new plugin package, that allows loading external plugins into Reva at
runtime. The hashicorp go-plugin framework was used to facilitate the plugin loading and
communication. -
Enhancement #2008: Site account extensions
This PR heavily extends the site accounts service: * Extended the accounts information (not
just email and name) * Accounts now have a password * Users can now "log in" to their accounts and
edit it * Ability to grant access to the GOCDBFurthermore, these accounts can now be used to authenticate for logging in to our customized
GOCDB. More use cases for these accounts are also planned.
v1.11.0
Changelog for reva 1.11.0 (2021-08-03)
The following sections list the changes in reva 1.11.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #1899: Fix chunked uploads for new versions
- Fix #1906: Fix copy over existing resource
- Fix #1891: Delete Shared Resources as Receiver
- Fix #1907: Error when creating folder with existing name
- Fix #1937: Do not overwrite more specific matches when finding storage providers
- Fix #1939: Fix the share jail permissions in the decomposedfs
- Fix #1932: Numerous fixes to the owncloudsql storage driver
- Fix #1912: Fix response when listing versions of another user
- Fix #1910: Get user groups recursively in the cbox rest user driver
- Fix #1904: Set Content-Length to 0 when swallowing body in the datagateway
- Fix #1911: Fix version order in propfind responses
- Fix #1926: Trash Bin in oCIS Storage Operations
- Fix #1901: Fix response code when folder doesnt exist on upload
- Enh #1785: Extend app registry with AddProvider method and mimetype filters
- Enh #1938: Add methods to get and put context values
- Enh #1798: Add support for a deny-all permission on references
- Enh #1916: Generate updated protobuf bindings for EOS GRPC
- Enh #1887: Add "a" and "l" filter for grappa queries
- Enh #1919: Run gofmt before building
- Enh #1927: Implement RollbackToVersion for eosgrpc (needs a newer EOS MGM)
- Enh #1944: Implement listing supported mime types in app registry
- Enh #1870: Be defensive about wrongly quoted etags
- Enh #1940: Reduce memory usage when uploading with S3ng storage
- Enh #1888: Refactoring of the webdav code
- Enh #1900: Check for illegal names while uploading or moving files
- Enh #1925: Refactor listing and statting across providers for virtual views
Details
-
Bugfix #1899: Fix chunked uploads for new versions
Chunked uploads didn't create a new version, when the file to upload already existed.
-
Bugfix #1906: Fix copy over existing resource
When the target of a copy already exists, the existing resource will be moved to the trashbin
before executing the copy. -
Bugfix #1891: Delete Shared Resources as Receiver
It is now possible to delete a shared resource as a receiver and not having the data ending up in
the receiver's trash bin, causing a possible leak. -
Bugfix #1907: Error when creating folder with existing name
When a user tried to create a folder with the name of an existing file or folder the service didn't
return a response body containing the error. -
Bugfix #1937: Do not overwrite more specific matches when finding storage providers
Depending on the order of rules in the registry it could happend that more specific matches
(e.g. /home/Shares) were overwritten by more general ones (e.g. /home). This PR makes sure
that the registry always returns the most specific match. -
Bugfix #1939: Fix the share jail permissions in the decomposedfs
The share jail should be not writable
-
Bugfix #1932: Numerous fixes to the owncloudsql storage driver
The owncloudsql storage driver received numerous bugfixes and cleanups.
-
Bugfix #1912: Fix response when listing versions of another user
The OCS API returned the wrong response when a user tried to list the versions of another user's
file. -
Bugfix #1910: Get user groups recursively in the cbox rest user driver
-
Bugfix #1904: Set Content-Length to 0 when swallowing body in the datagateway
When swallowing the body the Content-Lenght needs to be set to 0 to prevent proxies from reading
the body. -
Bugfix #1911: Fix version order in propfind responses
The order of the file versions in propfind responses was incorrect.
-
Bugfix #1926: Trash Bin in oCIS Storage Operations
Support for restoring a target folder nested deep inside the trash bin in oCIS storage. The use
case is:MOVE -H 'Destination: https://localhost:9200/remote.php/dav/files/einstein/destination' ``` The previous command creates the `destination` folder and moves the contents of `/trash-bin/einstein/f1/f2` onto it. Retro-compatibility in the response code with ownCloud 10. Restoring a collection to a non-existent nested target is not supported and MUST return `409`. The use case is: ```console curl 'https://localhost:9200/remote.php/dav/trash-bin/einstein/f1/f2' -X MOVE -H 'Destination: https://localhost:9200/remote.php/dav/files/einstein/this/does/not/exist' ``` The previous command used to return `404` instead of the expected `409` by the clients. https://github.com/cs3org/reva/pull/1926
-
Bugfix #1901: Fix response code when folder doesnt exist on upload
When a new file was uploaded to a non existent folder the response code was incorrect.
-
Enhancement #1785: Extend app registry with AddProvider method and mimetype filters
-
Enhancement #1938: Add methods to get and put context values
Added
GetKeyValues
andPutKeyValues
methods to fetch/put values from/to context. -
Enhancement #1798: Add support for a deny-all permission on references
And implement it on the EOS storage
-
Enhancement #1916: Generate updated protobuf bindings for EOS GRPC
-
Enhancement #1887: Add "a" and "l" filter for grappa queries
This PR adds the namespace filters "a" and "l" for grappa queries. With no filter will look into
primary and e-groups, with "a" will look into primary/secondary/service/e-groups and with
"l" will look into lightweight accounts. -
Enhancement #1919: Run gofmt before building
-
Enhancement #1927: Implement RollbackToVersion for eosgrpc (needs a newer EOS MGM)
-
Enhancement #1944: Implement listing supported mime types in app registry
-
Enhancement #1870: Be defensive about wrongly quoted etags
When ocdav renders etags it will now try to correct them to the definition as quoted strings
which do not contain"
. This prevents double or triple quoted etags on the webdav api. -
Enhancement #1940: Reduce memory usage when uploading with S3ng storage
The memory usage could be high when uploading files using the S3ng storage. By providing the
actual file size when triggeringPutObject
, the overall memory usage is reduced. -
Enhancement #1888: Refactoring of the webdav code
Refactored the webdav code to make it reusable.
-
Enhancement #1900: Check for illegal names while uploading or moving files
The code was not checking for invalid file names during uploads and moves.
-
Enhancement #1925: Refactor listing and statting across providers for virtual views