Releases: cs3org/reva
v2.16.3
Changelog for reva 2.16.3 (2023-11-30)
The following sections list the changes in reva 2.16.3 relevant to
reva users. The changes are ordered by importance.
Summary
- Enh #4377: Handle trashbin file listings concurrently
Details
- Enhancement #4377: Handle trashbin file listings concurrently
We now use a concurrent walker to list files in the trashbin. This improves performance when
listing files in the trashbin.
v1.27.0
Changelog for reva 1.27.0 (2023-10-19)
The following sections list the changes in reva 1.27.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #4196: Access public links to projects as owner
- Enh #4266: Improve authentication routing logic
- Enh #4212: CERNBox cleanup
- Enh #4199: Dynamic storage provider
- Enh #4264: Implement eos-compliant app locks
- Enh #4200: Multiple fixes for Ceph driver
- Enh #4185: Refurbish the grpc and https plugins for eos
- Enh #4166: Add better observability with metrics and traces
- Enh #4195: Support incoming OCM 1.0 shares
- Enh #4189: Support full URL endpoints in ocm-provider
- Enh #4186: Fixes in the reference configuration for ScienceMesh
- Enh #4191: Add metrics service to ScienceMesh example config
Details
-
Bugfix #4196: Access public links to projects as owner
-
Enhancement #4266: Improve authentication routing logic
Provides a safer approach to route requests, both in HTTP and gRPC land when authentication is
needed. -
Enhancement #4212: CERNBox cleanup
Remove from the codebase all the cernbox specific code
-
Enhancement #4199: Dynamic storage provider
Add a new storage provider that can globally route to other providers. This provider uses a
routing table in the database containingpath
-mountid
pairs, and a mappingmountid
-
address
in the config. It also support rewriting paths for resolution (to enable more
complex cases). -
Enhancement #4264: Implement eos-compliant app locks
The eosfs package now uses the app locks provided by eos
-
Enhancement #4200: Multiple fixes for Ceph driver
- Avoid usage/creation of user homes when they are disabled in the config * Simplify the regular
uploads (not chunked) * Avoid creation of shadow folders at the root if they are already there *
Clean up the chunked upload * Fix panic on shutdown
- Avoid usage/creation of user homes when they are disabled in the config * Simplify the regular
-
Enhancement #4185: Refurbish the grpc and https plugins for eos
This enhancement refurbishes the grpc and https plugins for eos
-
Enhancement #4166: Add better observability with metrics and traces
Adds prometheus collectors that can be registered dynamically and also refactors the http and
grpc clients and servers to propage trace info. -
Enhancement #4195: Support incoming OCM 1.0 shares
OCM 1.0 payloads are now supported as incoming shares, and converted to the OCM 1.1 format for
persistency and further processing. Outgoing shares are still only OCM 1.1. -
Enhancement #4189: Support full URL endpoints in ocm-provider
This patch enables a reva server to properly show any configured endpoint route in all relevant
properties exposed by /ocm-provider. This allows reverse proxy configurations of the form
https://server/route to be supported for the OCM discovery mechanism. -
Enhancement #4186: Fixes in the reference configuration for ScienceMesh
Following the successful onboarding of CESNET, this PR brings some improvements and fixes to
the reference configuration, as well as some adaptation to the itegration tests. -
Enhancement #4191: Add metrics service to ScienceMesh example config
Adds the metrics http service configuration to the example config file of a ScienceMesh site.
Having this service configured is a prerequisite for successfull Prometheus-based
ScienceMesh sites metrics scraping.
v2.16.2
Changelog for reva 2.16.2 (2023-10-17)
The following sections list the changes in reva 2.16.2 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #4251: GetUserByClaim not working with MSAD for claim "userid"
Details
- Bugfix #4251: GetUserByClaim not working with MSAD for claim "userid"
We fixed GetUserByClaim to correctly deal with binary encoded userid as e.g. used for Active
Directory.
v2.16.1
Changelog for reva 2.16.1 (2023-09-25)
The following sections list the changes in reva 2.16.1 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #4214: Make appctx package compatible with go v1.21
- Fix #4214: Always pass adjusted default nats options
Details
- Bugfix #4214: Make appctx package compatible with go v1.21
Backported fix from edge. See https://tip.golang.org/doc/go1.21#reflect
- Bugfix #4214: Always pass adjusted default nats options
The nats-js store will now automatically reconnect.
v1.26.0
Changelog for reva 1.26.0 (2023-09-08)
The following sections list the changes in reva 1.26.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #4165: Use default user tmp folder in config tests
- Fix #4113: Fix plugin's registration when reva is built with version 1.21
- Fix #4171: Fix accessing an OCM-shared resource containing spaces
- Fix #4172: Hardcode access methods for outgoing OCM shares from OC/NC
- Fix #4125: Enable projects for lightweight accounts
- Enh #4121: Expire cached users and groups entries
- Enh #4162: Disable sharing on a storage provider
- Enh #4163: Disable trashbin on a storage provider
- Enh #4164: Disable versions on a storage provider
- Enh #4084: Implementation of an app provider for Overleaf
- Enh #4114: List all the registered plugins
- Enh #4115: All required features and fixes for the OC/NC ScienceMesh apps
Details
-
Bugfix #4165: Use default user tmp folder in config tests
-
Bugfix #4113: Fix plugin's registration when reva is built with version 1.21
With go 1.21 the logic for package initialization has changed, and the plugins were failing in
the registration. Now the registration of the plugins is deferred in the main. -
Bugfix #4171: Fix accessing an OCM-shared resource containing spaces
Fixes the access of a resource OCM-shared containing spaces, that previously was failing with
aNotFound
error. -
Bugfix #4172: Hardcode access methods for outgoing OCM shares from OC/NC
This is a workaround until sciencemesh/nc-sciencemesh#45 is properly implemented
-
Bugfix #4125: Enable projects for lightweight accounts
Enable CERNBox projects to be listed by a lightweight account
-
Enhancement #4121: Expire cached users and groups entries
Entries in the rest user and group drivers do not expire. This means that old users/groups that
have been deleted are still in cache. Now an expiration offetch interval + 1
hours has been
set. -
Enhancement #4162: Disable sharing on a storage provider
Added a GRPC interceptor that disable sharing permissions on a storage provider.
-
Enhancement #4163: Disable trashbin on a storage provider
Added a GRPC interceptor that disable the trashbin on a storage provider.
-
Enhancement #4164: Disable versions on a storage provider
Added a GRPC interceptor that disable the versions on a storage provider.
-
Enhancement #4084: Implementation of an app provider for Overleaf
This PR adds an app provider for Overleaf as a standalone http service.
The app provider currently consists of support for the export to Overleaf feature, which when
called returns a URL to Overleaf that prompts Overleaf to download the appropriate resource
making use of the Archiver service, and upload the files to a user's Overleaf account. -
Enhancement #4114: List all the registered plugins
-
Enhancement #4115: All required features and fixes for the OC/NC ScienceMesh apps
This PR includes all necessary code in Reva to interface with the ScienceMesh apps in OC and NC
v2.16.0
Changelog for reva 2.16.0 (2023-08-21)
The following sections list the changes in reva 2.16.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #4051: Set treesize when creating a storage space
- Fix #4093: Fix the error handling
- Fix #4111: Return already exists error when child already exists
- Fix #4086: Fix ocs status code for not enough permission response
- Fix #4101: Make the jsoncs3 share manager indexes more robust
- Fix #4099: Fix logging upload errors
- Fix #4078: Fix the default document language for OnlyOffice
- Fix #4082: Fix propfind permissions
- Fix #4100: S3ng include md5 checksum on put
- Fix #4096: Fix the user shares list
- Fix #4076: Fix WebDAV permissions for space managers
- Fix #4117: Fix jsoncs3 atomic persistence
- Fix #4081: Propagate sizeDiff
- Fix #4091: Register WebDAV HTTP methods with chi
- Fix #4107: Return lock when requested
- Fix #4075: Revert 4065 - bypass proxy on upload
- Enh #4089: Async propagation (experimental)
- Enh #4074: Allow configuring the max size of grpc messages
- Enh #4083: Allow for rolling back migrations
- Enh #4014: En-/Disable DEPTH:inifinity in PROPFIND
- Enh #4072: Allow to specify a shutdown timeout
- Enh #4103: Add .oform mimetype
- Enh #4098: Allow naming nats connections
- Enh #4085: Add registry refresh
- Enh #4097: Remove app ticker logs
- Enh #4090: Add Capability for sse
- Enh #4110: Tracing events propgation
Details
- Bugfix #4051: Set treesize when creating a storage space
We now explicitly set the treesize metadata to zero when creating a new storage space. This
prevents empty treesize values for spaces with out any data.
- Bugfix #4093: Fix the error handling
Fix the error handling and prevent the nil pointer error
- Bugfix #4111: Return already exists error when child already exists
Prevents two concurrent requests from creating the same file
- Bugfix #4086: Fix ocs status code for not enough permission response
Request to re-share a resource or update a share by a user who does not have enough permission on
the resource returned a 404 status code. This is fixed and a 403 status code is returned instead.
- Bugfix #4101: Make the jsoncs3 share manager indexes more robust
We fixed a problem where the jsoncs3 share manager indexes could get out of sync.
- Bugfix #4099: Fix logging upload errors
We fixed a problem where problems with uploading blobs to the blobstore weren't logged.
- Bugfix #4078: Fix the default document language for OnlyOffice
Fix the default document language for OnlyOffice
https://github.com/owncloud/enterprise/issues/5807
#4078
- Bugfix #4082: Fix propfind permissions
Propfinds permissions field would always contain the permissions of the requested resource,
even for its children This is fixed.
- Bugfix #4100: S3ng include md5 checksum on put
We've fixed the S3 put operation of the S3ng storage to include a md5 checksum.
This md5 checksum is needed when a bucket has a retention period configured (see
https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html).
- Bugfix #4096: Fix the user shares list
Filter out a share if ShareWith is not found because the user or group already deleted
- Bugfix #4076: Fix WebDAV permissions for space managers
Sub shares of a space were shown as incoming shares for space manager incorrectly.
- Bugfix #4117: Fix jsoncs3 atomic persistence
The jsoncs3 share manager now uses etags instead of mtimes to determine when metadata needs to
be updated. As a precondtition we had to change decomposedfs as well: to consistently
calculate the etag for the file content we now store the mtime in the metadata and use the
metadata lock for atomicity.
- Bugfix #4081: Propagate sizeDiff
When postprocessing failed the sizeDiff would not be propagated correctly. This is fixed
- Bugfix #4091: Register WebDAV HTTP methods with chi
We now correctly register the WebDAV methods with chi during init.
- Bugfix #4107: Return lock when requested
We did not explictly return the lock when it was requested. This lead to the lock only being
included when no other metadata was requested. We fixed it by explictly returning the lock when
requested.
- Bugfix #4075: Revert 4065 - bypass proxy on upload
We have reverted PR #4065 to bypass proxy on upload, because it caused issues with oCis.
- Enhancement #4089: Async propagation (experimental)
Decomposedfs can now be configured to propagate treetime/treesize changes asynchronously.
- Enhancement #4074: Allow configuring the max size of grpc messages
We added a possibility to make the max size of grpc messsages configurable. It is only
configurable via envvar OCIS_GRPC_MAX_RECEIVED_MESSAGE_SIZE
. It is recommended to use
this envvar only temporarily.
- Enhancement #4083: Allow for rolling back migrations
The decomposedfs now supports rolling back migrations (starting with 0004). It also got a
Migrations() method which returns the list of migrations incl. their states.
- Enhancement #4014: En-/Disable DEPTH:inifinity in PROPFIND
We have added the ability to en-/disable DEPTH:infinitiy in PROPFIND requests for spaces
- Enhancement #4072: Allow to specify a shutdown timeout
When setting graceful_shutdown_timeout
revad will try to shutdown in a graceful manner
when receiving an INT or TERM signal (similar to how it already behaves on SIGQUIT). This allows
ongoing operations to complete before exiting.
If the shutdown didn't finish before graceful_shutdown_timeout
seconds the process will
exit with an error code (1).
- Enhancement #4103: Add .oform mimetype
We switched to a local list of mimetypes and added support for the .oform file extension.
- Enhancement #4098: Allow naming nats connections
Bump go-micro and use new Name
option to pass a connection name
- Enhancement #4085: Add registry refresh
We have added registry auto-refresh and made it configurable
owncloud/ocis#6793
owncloud/ocis#3832
#4085
owncloud/ocis#6910
- Enhancement #4097: Remove app ticker logs
#4097
Logs
would
show
regardless
of
log
level
as
there
is
no
configuration
done
beforehand.
We
remove
the
logs
for
now.
- Enhancement #4090: Add Capability for sse
Add a capability for server sent events
- Enhancement #4110: Tracing events propgation
Tracing information will now be propagated via events
v1.25.0
Changelog for reva 1.25.0 (2023-08-14)
The following sections list the changes in reva 1.25.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #4032: Temporarily exclude ceph-iscsi when building revad-ceph image
- Fix #3883: Fix group request to Grappa
- Fix #3946: Filter OCM shares by path
- Fix #4016: Fix panic when closing notification service
- Fix #4061: Fixes on notifications
- Fix #3962: OCM-related compatibility fixes
- Fix #3972: Fix for #3971
- Fix #3882: Remove transfer on cancel should also remove transfer job
- Chg #4041: Clean up notifications error checking code, fix sql creation script
- Chg #3581: Remove meshdirectory http service
- Enh #4044: Added an /app/notify endpoint for logging/tracking apps
- Enh #3915: Storage drivers setup for datatx
- Enh #3891: Provide data transfer size with datatx share
- Enh #3905: Remove redundant config for invite_link_template
- Enh #4031: Dump reva config on SIGUSR1
- Enh #3954: Extend EOS metadata
- Enh #3958: Make
/sciencemesh/find-accepted-users
response - Enh #3908: Removed support for forcelock
- Enh #4011: Improve logging of HTTP requests
- Enh #3407: Add init time logging to all services
- Enh #4030: Support multiple token strategies in auth middleware
- Enh #4015: New configuration
- Enh #3825: Notifications framework
- Enh #3969: Conditional notifications initialization
- Enh #4077: Handle target in OpenInApp response
- Enh #4073: Plugins
- Enh #3937: Manage OCM shares
- Enh #4035: Enforce/validate configuration of services
Details
-
Bugfix #4032: Temporarily exclude ceph-iscsi when building revad-ceph image
Due to
Package ceph-iscsi-3.6-1.el8.noarch.rpm is not signed
error when building the
revad-ceph docker image, the packageceph-iscsi
has been excluded from the dnf update. It
will be included again once the pkg will be signed again. -
Bugfix #3883: Fix group request to Grappa
The
url.JoinPath
call was returning an url-encoded string, turning?
into%3
. This
caused the request to return 404. -
Bugfix #3946: Filter OCM shares by path
Fixes the bug of duplicated OCM shares returned in the share with others response.
-
Bugfix #4016: Fix panic when closing notification service
If the connection to the nats server was not yet estabished, the service on close was panicking.
This has been now fixed. -
Bugfix #4061: Fixes on notifications
This is to align the code to the latest schema for notifications
-
Bugfix #3962: OCM-related compatibility fixes
Following analysis of OC and NC code to access a remote share, we must expose paths and not full
URIs on the /ocm-provider endpoint. Also we fix a lookup issue with apps over OCM and update
examples. -
Fixed panic described in #3971
-
Bugfix #3882: Remove transfer on cancel should also remove transfer job
-
Change #4041: Clean up notifications error checking code, fix sql creation script
-
Change #3581: Remove meshdirectory http service
As of meshdirectory-web version 2.0.0, it is now implemented and deployed as a completely
separate app, independent from Reva. We removed any deprecated meshdirectory-related code
from Reva. -
Enhancement #4044: Added an /app/notify endpoint for logging/tracking apps
The new endpoint serves to probe the health state of apps such as Microsoft Office Online, and it
is expected to be called by the frontend upon successful loading of the document by the
underlying app -
Enhancement #3915: Storage drivers setup for datatx
-
Enhancement #3891: Provide data transfer size with datatx share
-
Enhancement #3905: Remove redundant config for invite_link_template
This is to drop invite_link_template from the OCM-related config. Now the provider_domain
and mesh_directory_url config options are both mandatory in the sciencemesh http service,
and the link is directly built out of the context. -
Enhancement #4031: Dump reva config on SIGUSR1
Add an option to the runtime to dump the configuration on a file (default to
/tmp/reva-dump.toml
and configurable) when the process receives a SIGUSR1 signal.
Eventual errors are logged in the log. -
Enhancement #3954: Extend EOS metadata
This PR extend the EOS metadata with atime and ctime fields. This change is backwards
compatible. -
Enhancement #3958: Make
/sciencemesh/find-accepted-users
responseConsistent with delete user parameters
-
Enhancement #3908: Removed support for forcelock
This workaround is not needed any longer, see also the wopiserver.
-
Enhancement #4011: Improve logging of HTTP requests
Added request and response headers and removed redundant URL from the "http" messages
-
Enhancement #3407: Add init time logging to all services
-
Enhancement #4030: Support multiple token strategies in auth middleware
Different HTTP services can in general support different token strategies for validating the
reva token. In this context, without updating every single client a mono process deployment
will never work. Now the HTTP auth middleware accepts in its configuration a token strategy
chain, allowing to provide the reva token in multiple places (bearer auth, header). -
Enhancement #4015: New configuration
Allow multiple driverts of the same service to be in the same toml config. Add a
vars
section to
contain common parameters addressable using templates in the configuration of the different
drivers. Support templating to reference values of other parameters in the configuration.
Assign random ports to services where the address is not specified. -
Enhancement #3825: Notifications framework
Adds a notifications framework to Reva.
The new notifications service communicates with the rest of reva using NATS. It provides
helper functions to register new notifications and to send them.Notification templates are provided in the configuration files for each service, and they are
registered into the notifications service on initialization. -
Enhancement #3969: Conditional notifications initialization
Notification helpers in services will not try to initalize if there is no specific
configuration. -
Enhancement #4077: Handle target in OpenInApp response
This PR adds the OpenInApp.target and AppProviderInfo.action properties to the respective
responses (/app/open and /app/list), to support different app integrations. In addition,
the archiver was extended to use the name of the file/folder as opposed to "download", and to
include a query parameter to override the archive type, as it will be used in an upcoming app. -
Enhancement #4073: Plugins
Adds a plugin system for allowing the creation of external plugins for different plugable
components in reva, for example grpc drivers, http services and middlewares. -
Enhancement #3937: Manage OCM shares
Implements the following item regarding OCM: - update of OCM shares in both grpc and ocs layer,
allowing an user to update permissions and expiration of the share - deletion of OCM shares in
both grpc and ocs layer - accept/reject of received OCM shares - remove accepted remote users -
Enhancement #4035: Enforce/validate configuration of services
Every driver can now specify some validation rules on the configuration. If the validation
rules are not respected, reva will bail out on startup with a clear error.
v2.15.0
Changelog for reva 2.15.0 (2023-07-17)
The following sections list the changes in reva 2.15.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #4004: Add path to public link POST
- Fix #3993: Add token to LinkAccessedEvent
- Fix #4007: Close archive writer properly
- Fix #3982: Fixed couple of smaller space lookup issues
- Fix #3963: Treesize interger overflows
- Fix #3943: When removing metadata always use correct database and table
- Fix #4003: Don't connect ldap on startup
- Fix #3978: Decomposedfs no longer os.Stats when reading node metadata
- Fix #3959: Drop unnecessary stat
- Fix #4032: Temporarily exclude ceph-iscsi when building revad-ceph image
- Fix #4042: Fix writing 0 byte msgpack metadata
- Fix #3948: Handle the bad request status
- Fix #3970: Fix enforce-password issue
- Fix #4057: Properly handle not-found errors when getting a public share
- Fix #4048: Fix messagepack propagation
- Fix #4056: Fix destroys data destination when moving issue
- Fix #4012: Fix mtime if 0 size file uploaded
- Fix #3955: Fix panic
- Fix #3977: Prevent direct access to trash items
- Fix #3933: Concurrently invalidate mtime cache in jsoncs3 share manager
- Fix #3985: Reduce jsoncs3 lock congestion
- Fix #3960: Add trace span details
- Fix #3951: Link context in metadata client
- Fix #4010: Omit spaceroot when archiving
- Fix #3950: Use plain otel tracing in metadata client
- Fix #3975: Decomposedfs now resolves the parent without an os.Stat
- Fix #4047: Publish events synchrously
- Fix #4039: Restart Postprocessing
- Chg #3947: Bump golangci-lint to 1.51.2
- Chg #3945: Revert golangci-lint back to 1.50.1
- Enh #4060: We added a go-micro based app-provider registry
- Enh #4013: Add new WebDAV permissions
- Enh #3966: Add space metadata to ocs shares list
- Enh #3987: Cache space indexes
- Enh #3953: Client selector pool
- Enh #3973: More logging for metadata propagation
- Enh #4059: Improve space index performance
- Enh #3994: Load matching spaces concurrently
- Enh #4049: Do not invalidate filemetadata cache early
- Enh #4040: Allow to use external trace provider in micro service
- Enh #4019: Allow to use external trace provider
- Enh #4045: Log error message in grpc interceptor
- Enh #3989: Parallelization of jsoncs3 operations
- Enh #3941: Adding tracing for jsoncs3
- Enh #3965: ResumePostprocessing Event
- Enh #3809: Trace decomposedfs syscalls
- Enh #4067: Trace upload progress
- Enh #3887: Trace requests through datagateway
- Enh #3981: We have updated the UserFeatureChangedEvent to reflect value changes
- Enh #4052: Update go-ldap to v3.4.5
- Enh #4065: Upload directly to dataprovider
- Enh #4046: Use correct tracer name
- Enh #3986: Allow disabling wopi chat
Details
- Bugfix #4004: Add path to public link POST
When POSTing a public link, the response would not contain the complete path to the resource.
This is fixed now.
- Bugfix #3993: Add token to LinkAccessedEvent
We added the link token to the LinkAccessedEvent
- Bugfix #4007: Close archive writer properly
When running into max size error (or random other error) the archiver would not close the
writer. Only it success case it would. This resulted in broken archives on the client. We now
defer
the writer close.
- Bugfix #3982: Fixed couple of smaller space lookup issues
- Bugfix #3963: Treesize interger overflows
Reading the treesize was parsing the string value as a signed integer while setting the
treesize used unsigned integers this could cause failures (out of range errors) when reading
very large treesizes.
- Bugfix #3943: When removing metadata always use correct database and table
- Bugfix #4003: Don't connect ldap on startup
This leads to misleading error messages. Instead connect on first request.
- Bugfix #3978: Decomposedfs no longer os.Stats when reading node metadata
- Bugfix #3959: Drop unnecessary stat
- Bugfix #4032: Temporarily exclude ceph-iscsi when building revad-ceph image
Due to Package ceph-iscsi-3.6-1.el8.noarch.rpm is not signed
error when building the
revad-ceph docker image, the package ceph-iscsi
has been excluded from the dnf update. It
will be included again once the pkg will be signed again.
- Bugfix #4042: Fix writing 0 byte msgpack metadata
File metadata is now written atomically to be more resilient during timeouts
- Bugfix #3948: Handle the bad request status
Handle the bad request status for the CreateStorageSpace function
- Bugfix #3970: Fix enforce-password issue
Fix updating public share without password when enforce-password is enabled
- Bugfix #4057: Properly handle not-found errors when getting a public share
We fixed a problem where not-found errors caused a hard error instead of a proper RPC error
state.
- Bugfix #4048: Fix messagepack propagation
We cannot read from the lockfile. The data is in the metadata file.
- Bugfix #4056: Fix destroys data destination when moving issue
Fix moving a file and providing the fileID of the destination destroys data
- Bugfix #4012: Fix mtime if 0 size file uploaded
Fix mtime if 0 size file uploaded
- Bugfix #3955: Fix panic
- Bugfix #3977: Prevent direct access to trash items
Decomposedfs now prevents direct access to trash items
- Bugfix #3933: Concurrently invalidate mtime cache in jsoncs3 share manager
- Bugfix #3985: Reduce jsoncs3 lock congestion
We changed the locking strategy in the jsoncs3 share manager to cause less lock congestion
increasing the performance in certain scenarios.
- Bugfix #3960: Add trace span details
- Bugfix #3951: Link context in metadata client
We now disconnect the existing outgoing grpc metadata when making calls in the metadata
client. To keep track of related spans we link the two contexts.
- Bugfix #4010: Omit spaceroot when archiving
When archiving a space there was an empty folder named .
added. This was because of the
spaceroot which was wrongly interpreted. We now omit the space root when creating an archive.
- Bugfix #3950: Use plain otel tracing in metadata client
In some cases there was no tracer provider in the context. Since the otel tracing has settled we
will fix problems by moving to the recommended best practices. A good starting point is
https://lightstep.com/blog/opentelemetry-go-all-you-need-to-know
- Bugfix #3975: Decomposedfs now resolves the parent without an os.Stat
- Bugfix #4047: Publish events synchrously
Async publishing can lead to loss of events under some circumstances
- Bugfix #4039: Restart Postprocessing
Resend the BytesReady
event if instructed.
- Change #3947: Bump golangci-lint to 1.51.2
The 1.50.1 release had memory issues with go1.20
- Change #3945: Revert golangci-lint back to 1.50.1
- Enhancement #4060: We added a go-micro based app-provider registry
We added a dynamic go-micro based app-provider registry with a dynamic TTL
- Enhancement #4013: Add new WebDAV permissions
We added the permission "PurgeRecycle" to the WebDAV permissions list. I is represented by the
capital letter P
.
- Enhancement #3966: Add space metadata to ocs shares list
We needed to add the space ID and the space alias of the original space to the share metadata when
we are listing shares. This is needed to directly navigate to the originating space location.
- Enhancement #3987: Cache space indexes
Decomposedfs now caches the different space indexes in memory which greatly improves the
performance of ListStorageSpaces on slow storages.
- Enhancement #3953: Client selector pool
Add the ability to use iterable client pools for the grpc service communication, the
underlying grpc client and connection is fetched randomly from the available services.
v2.14.0
Changelog for reva 2.14.0 (2023-06-05)
The following sections list the changes in reva 2.14.0 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #3919: We added missing timestamps to events
- Fix #3911: Clean IDCache properly
- Fix #3896: Do not lose old revisions when overwriting a file during copy
- Fix #3918: Dont enumerate users
- Fix #3902: Do not try to use the cache for empty node
- Fix #3877: Empty exact list while searching for a sharee
- Fix #3906: Fix preflight requests
- Fix #3934: Fix the space editor permissions
- Fix #3899: Harden uploads
- Fix #3917: Prevent last space manager from leaving
- Fix #3866: Fix public link lookup performance
- Fix #3904: Improve performance of directory listings
- Enh #3893: Cleanup Space Delete permissions
- Enh #3894: Fix err when the user share the locked file
- Enh #3913: Introduce FullTextSearch Capability
- Enh #3898: Add Graph User capabilities
- Enh #3496: Add otlp tracing exporter
- Enh #3922: Rename permissions
Details
- Bugfix #3919: We added missing timestamps to events
We added missing timestamps to events
- Bugfix #3911: Clean IDCache properly
Decomposedfs' subpackage tree
uses an idCache to avoid reading too often from disc. In case
of a move
or delete
this cache was properly cleaned, but when renaming a file (= move with
same parent) the cache wasn't cleaned. This lead to strange behaviour when uploading files
with the same name and renaming them
- Bugfix #3896: Do not lose old revisions when overwriting a file during copy
We no longer delete-and-upload targets of copy operations but rather add a new version with the
source content.
This makes "overwrite when copying" behave the same as "overwrite when uploading".
Overwriting when moving a file still deletes the old file (moves it into the trash) and replaces
the whole file including the revisions of the source file.
- Bugfix #3918: Dont enumerate users
Fixes a user enumeration via DELETE share endpoint
- Bugfix #3902: Do not try to use the cache for empty node
We fixed a problem where nodes that did not have an ID set were still trying to use the cache for
their metadata resulting in clashing cache keys.
- Bugfix #3877: Empty exact list while searching for a sharee
We fixed a bug in the sharing api, it always returns an empty exact list while searching for a
sharee
- Bugfix #3906: Fix preflight requests
The datagateway now correctly overwrites the preconfigured CORS related headers with the
headers returned by a dataprovider.
- Bugfix #3934: Fix the space editor permissions
We fixed the permissions of a space editor which accidentally granted the permission to purge
the trash bin.
- Bugfix #3899: Harden uploads
Uploads now check response headers for a file id and omit a subsequent stat request which might
land on a storage provider that does not yet see the new file due to latency, eg. when NFS caches
direntries.
- Bugfix #3917: Prevent last space manager from leaving
It should not be possible for the last remaining space manager to change his role or get changed
by others.
- Bugfix #3866: Fix public link lookup performance
Fix inefficient path based space lookup for public links
- Bugfix #3904: Improve performance of directory listings
We improved the performance of directory listing by rendering the propfind XML concurrently.
- Enhancement #3893: Cleanup Space Delete permissions
Space Delete and Disable permissions ("Drive.ReadWriteEnabled", "delete-all-spaces",
"delete-all-home-spaces") were overlapping and not clear differentiatable. The new logic
is as follows: - "Drive.ReadWriteEnabled" allows enabling or disabling a project space -
"delete-all-home-spaces" allows deleting personal spaces of users - "delete-all-spaces"
allows deleting a project space - Space Mangers can still disable/enable a drive
- Enhancement #3894: Fix err when the user share the locked file
Fix unexpected behavior when the user try to share the locked file
- Enhancement #3913: Introduce FullTextSearch Capability
Add a capability that shows if fulltextsearch is supported by the server
- Enhancement #3898: Add Graph User capabilities
Add capabilities to show if user can be created or deleted and if they can change their password
on self service
- Enhancement #3496: Add otlp tracing exporter
We can now use tracing_exporter=otlp
to send traces using the otlp exporter.
- Enhancement #3922: Rename permissions
Rename permissions to be consistent and future proof
v2.13.3
Changelog for reva 2.13.3 (2023-05-17)
The following sections list the changes in reva 2.13.3 relevant to
reva users. The changes are ordered by importance.
Summary
- Fix #3890: Bring back public link sharing of project space roots
- Fix #3888: We fixed a bug that unnecessarily fetched all members of a group
- Fix #3886: Decomposedfs no longer deadlocks when cache is disabled
- Fix #3892: Fix public links
- Fix #3876: Remove go-micro/store/redis specific workaround
- Fix #3889: Update space root mtime when changing space metadata
- Fix #3836: Fix spaceID in the decomposedFS
- Fix #3867: Restore last version after positive result
- Fix #3849: Prevent sharing space roots and personal spaces
- Enh #3865: Remove unneccessary code from gateway
- Enh #3895: Add missing expiry date to shares
Details
- Bugfix #3890: Bring back public link sharing of project space roots
We reenabled sharing of project space roots
- Bugfix #3888: We fixed a bug that unnecessarily fetched all members of a group
Adding or removing groups to spaces is now done without retrieving all group members
- Bugfix #3886: Decomposedfs no longer deadlocks when cache is disabled
We now pass a Reader for the locked file to lower level functions so metadata can be read without
aquiring a new file lock.
- Bugfix #3892: Fix public links
Public links would not work when not send on the root level. Reason was wrong path matching. Also
fixes a critical bug that was unfound before
- Bugfix #3876: Remove go-micro/store/redis specific workaround
We submitted an upstream fix for an issue in the go-micro/store redis plugin. Which allowed us
to remove a redis specific workaround from the reva storage cache implementation.
- Bugfix #3889: Update space root mtime when changing space metadata
We fixed a problem where space mtimes were not updated when their metadata changed, resulting
in changes not being picked up by other services like search.
- Bugfix #3836: Fix spaceID in the decomposedFS
We returned the wrong spaceID within storageSpaceFromNode
. This was fixed and the
storageprovider ID handling refactored.
- Bugfix #3867: Restore last version after positive result
We fixed a bug in the copy routine that prevented restoring of a previous version after
post-processing (e.g. virus scanning)
https://github.com/owncloud/enterprise/issues/5709
#3867
- Bugfix #3849: Prevent sharing space roots and personal spaces
We fixed a problem where sharing space roots or adding members to a personal space was possible.
- Enhancement #3865: Remove unneccessary code from gateway
Delete unused removeReference code from gateway
- Enhancement #3895: Add missing expiry date to shares
We have added expiry dates to the shares