Skip to content

Releases: cs3org/reva

v3.6.3

07 Apr 07:58

Choose a tag to compare

Changelog for reva 3.6.3 (2026-04-07)

The following sections list the changes in reva 3.6.3 relevant to
reva users. The changes are ordered by importance.

Summary

  • Fix #5570: Remove broken EOS token cache

Details

  • Bugfix #5570: Remove broken EOS token cache

    There was a bug in the EOS token cache that caused infinite loops. The token cache has been
    completely removed, since we will be moving away from EOS tokens soon anyway.

    #5570

v3.5.1-eos53revad

07 Apr 12:19

Choose a tag to compare

Changelog for reva 3.5.1 (2026-02-12)

The following sections list the changes in reva 3.5.1 relevant to
reva users. The changes are ordered by importance.

Summary

  • Fix #5482: Return 403 instead of 500 on no permissions
  • Fix #5473: Do not require db_engine to be set
  • Fix #5496: GetNsMatch in eosfs should return a cleaned path
  • Fix #5490: Do not do getQuota as project owner for ownerless projects
  • Fix #5492: Set proper service account context for project GetQuota
  • Fix #5491: Do not clean namespace path
  • Enh #5466: Clean up DAV PUT
  • Enh #5470: Add indexes to share db for fields that may be queried
  • Enh #5452: OCM Embedded shares
  • Enh #5471: Extend integration tests using Reva CLI
  • Enh #5476: OCM: support access_types and drop datatx protocol
  • Enh #5489: Add processing endpoint for an embedded share
  • Enh #5484: Remove share first from EOS, then db
  • Enh #5462: Integration tests using Reva CLI

Details

  • Bugfix #5482: Return 403 instead of 500 on no permissions

    #5482

  • Bugfix #5473: Do not require db_engine to be set

    #5473

  • Bugfix #5496: GetNsMatch in eosfs should return a cleaned path

    #5496

  • Bugfix #5490: Do not do getQuota as project owner for ownerless projects

    #5490

  • Bugfix #5492: Set proper service account context for project GetQuota

    #5492

  • Bugfix #5491: Do not clean namespace path

    There was a bug in Reva that caused the namespace path to be cleaned. This is wrong: this path
    should end in a / so that EOS trashbin paths do not match for projects (e.g.
    /eos/project-i00 should not be prefixed by /eos/project/).

    This bug caused deleted entries to still show up in the favorites list

    #5491

  • Enhancement #5466: Clean up DAV PUT

    • Fixed a "bug" where a variable was overwritten (though this had no impact) * Cleaned up a method
    • Removed unused function

    #5466

  • Enhancement #5470: Add indexes to share db for fields that may be queried

    In a previous change, some indexes for fields that are queried had been replaced by a composite
    index, which cannot be used for certain queries that we do. So, this PR brings back the
    non-composite indexes.

    #5470

  • Enhancement #5452: OCM Embedded shares

    This PR introduces OCM embedded shares

    • Adds functionality to store embedded shares (where the shared data is embedded in the OCM
      share payload) * Adds filters to ListReceivedOCMShares call and adapts to the new fields
      SharedResourceType and RecipientType * Adds an endpoint to list embedded shares (using
      the previously mentioned filters)

    #5452

  • Enhancement #5471: Extend integration tests using Reva CLI

    This PR extends the Reva CLI test suite by including tests for recycle bin, versions and grant
    operations

    #5471

  • Enhancement #5476: OCM: support access_types and drop datatx protocol

    This PR adapts the OCM implementation to v1.3. No new capabilities have been added yet.

    #5476

  • Enhancement #5489: Add processing endpoint for an embedded share

    • For now this only changes the state to accepted (or pending if you want to "unprocess" the
      share) - Eventually we want the downloaded content to arrive in the target folder, the target is
      just logged for now.

    #5489

  • Enhancement #5484: Remove share first from EOS, then db

    When removing shares, remove permissions from storage before going to db, so that there can be
    no lingering permissions on EOS

    #5484

  • Enhancement #5462: Integration tests using Reva CLI

    This PR introduces a proof-of-concept for integration tests based on the reva CLI. The goal is
    to extend these tests, so that they can be used by EOS to check if their changes break our
    workflow.

    #5462

v3.6.2

29 Mar 18:04

Choose a tag to compare

Changelog for reva 3.6.2 (2026-03-29)

The following sections list the changes in reva 3.6.2 relevant to
reva users. The changes are ordered by importance.

Summary

  • Fix #5551: Hide orphaned shares
  • Enh #5549: Add administrative function to list all projects
  • Enh #5546: Ignore files not found in archiver
  • Enh #5538: Cleanup config
  • Enh #5557: Add quota cache

Details

  • Bugfix #5551: Hide orphaned shares

    #5551

  • Enhancement #5549: Add administrative function to list all projects

    Added ListAllProjects function to the SQL projects manager. The function supports optional
    filtering by status and owner.

    #5549

  • Enhancement #5546: Ignore files not found in archiver

    #5546

  • Enhancement #5538: Cleanup config

    #5538

  • Enhancement #5557: Add quota cache

    Since EOS at the moment takes a long time to respond to GetQuota requests, we have implemented
    a cache for the quota results. The cache is warmed up on init, where the cache is populated from a
    single GetQuota call that obtains all user quotas.

    #5557

v3.6.1

10 Mar 08:57

Choose a tag to compare

Changelog for reva 3.6.1 (2026-03-10)

The following sections list the changes in reva 3.6.1 relevant to
reva users. The changes are ordered by importance.

Summary

  • Fix #5521: Fix issue where permissions is on subdir
  • Fix #5524: Fix inverted logic in pathToSpaceID
  • Fix #5520: Fix issues with sharing for the cephmount driver
  • Enh #5519: Support additional gids in cephmount fs driver
  • Enh #5525: Support getting quota from path ancestors
  • Enh #5529: Improves the GetQuota call
  • Enh #5527: Make ceph version with local plugins
  • Enh #5523: Add status field to projects table
  • Enh #5518: Clean up how space IDs are calculated

Details

  • Bugfix #5521: Fix issue where permissions is on subdir

    • This PR fixes a bug where the permissions are on a subdirectory and the admin mount fails.

    #5521

  • Bugfix #5524: Fix inverted logic in pathToSpaceID

    Fixed a bug where the condition for falling back to the mount_path when no proper space depth was
    set was inverted.

    #5524

  • Bugfix #5520: Fix issues with sharing for the cephmount driver

    This PR includes two fixes * ListVersions now returns an empty list. * The root directory is
    appended to the CephVolumePath.

    #5520

  • Enhancement #5519: Support additional gids in cephmount fs driver

    When accessing the underlying Ceph mount, the linux thread only contained the uid/gid of the
    user. Now it also contaisn the additional gids of the user, which allows to access files that are
    only accessible by group permissions.

    #5519

  • Enhancement #5525: Support getting quota from path ancestors

    The previous code supported to obtained quota only from the path itself, but in some cases, the
    path may not contain the quota information, but its ancestor may contain the quota
    information.

    #5525

  • Enhancement #5529: Improves the GetQuota call

    The ceph.dir.rbytes exists at every level and should be checked at the level where the quota is
    found

    #5529

  • Enhancement #5527: Make ceph version with local plugins

    Add the option to build the ceph version of reva with local plugins

    #5527

  • Enhancement #5523: Add status field to projects table

    A new status field has been added to the projects table with possible values: creating, active,
    and archived. The default value is 'active'. ListStorageSpaces now accepts a status
    parameter to filter projects by their status. A new method UpdateProjectStatus allows
    changing the status of a project.

    #5523

  • Enhancement #5518: Clean up how space IDs are calculated

    Instead of having hardcoded paths, this is now configurable through a space_depth
    parameter in the storage provider

    #5518

v3.6.0

20 Feb 13:36

Choose a tag to compare

Changelog for reva 3.6.0 (2026-02-20)

The following sections list the changes in reva 3.6.0 relevant to
reva users. The changes are ordered by importance.

Summary

  • Fix #5451: Handle special characters in file names correctly
  • Fix #5511: Quota should be retrieved in monitoring key=value format
  • Enh #5481: Add support for reva-cli tests on EOS
  • Enh #5475: Support project-trashbins in EOS
  • Enh #5472: Use uid instead of username of eos remote-user
  • Enh #5474: Update EOS gRPC bindings
  • Enh #5513: Refactor EOS driver / FS for Reva
  • Enh #5503: Cephmount add root dir config option

Details

  • Bugfix #5451: Handle special characters in file names correctly

    • Fixed PROPFIND response when listing a folder named with special charactrers

    #5451

  • Bugfix #5511: Quota should be retrieved in monitoring key=value format

    The quota command now uses the -m flag to retrieve quota information in monitoring key=value
    format, ensuring consistent and parseable output.

    #5511

  • Enhancement #5481: Add support for reva-cli tests on EOS

    #5481

  • Enhancement #5475: Support project-trashbins in EOS

    #5475

  • Enhancement #5472: Use uid instead of username of eos remote-user

    This brings back the functionality to download versions of files in a project space

    #5472

  • Enhancement #5474: Update EOS gRPC bindings

    This supports the new trashbin, based on a "recycle id" for projects

    #5474

  • Enhancement #5513: Refactor EOS driver / FS for Reva

    This also includes writing a README for the driver

    #5513

  • Enhancement #5503: Cephmount add root dir config option

    • The root_dir config option is there to append a path on the current path that should be
      mounted by reva

    #5503

v3.5.1-1

19 Feb 09:48

Choose a tag to compare

Changelog for reva 3.5.1 (2026-02-12)

The following sections list the changes in reva 3.5.1 relevant to
reva users. The changes are ordered by importance.

Summary

  • Fix #5482: Return 403 instead of 500 on no permissions
  • Fix #5473: Do not require db_engine to be set
  • Fix #5496: GetNsMatch in eosfs should return a cleaned path
  • Fix #5490: Do not do getQuota as project owner for ownerless projects
  • Fix #5492: Set proper service account context for project GetQuota
  • Fix #5491: Do not clean namespace path
  • Enh #5466: Clean up DAV PUT
  • Enh #5470: Add indexes to share db for fields that may be queried
  • Enh #5452: OCM Embedded shares
  • Enh #5471: Extend integration tests using Reva CLI
  • Enh #5476: OCM: support access_types and drop datatx protocol
  • Enh #5489: Add processing endpoint for an embedded share
  • Enh #5484: Remove share first from EOS, then db
  • Enh #5462: Integration tests using Reva CLI

Details

  • Bugfix #5482: Return 403 instead of 500 on no permissions

    #5482

  • Bugfix #5473: Do not require db_engine to be set

    #5473

  • Bugfix #5496: GetNsMatch in eosfs should return a cleaned path

    #5496

  • Bugfix #5490: Do not do getQuota as project owner for ownerless projects

    #5490

  • Bugfix #5492: Set proper service account context for project GetQuota

    #5492

  • Bugfix #5491: Do not clean namespace path

    There was a bug in Reva that caused the namespace path to be cleaned. This is wrong: this path
    should end in a / so that EOS trashbin paths do not match for projects (e.g.
    /eos/project-i00 should not be prefixed by /eos/project/).

    This bug caused deleted entries to still show up in the favorites list

    #5491

  • Enhancement #5466: Clean up DAV PUT

    • Fixed a "bug" where a variable was overwritten (though this had no impact) * Cleaned up a method
    • Removed unused function

    #5466

  • Enhancement #5470: Add indexes to share db for fields that may be queried

    In a previous change, some indexes for fields that are queried had been replaced by a composite
    index, which cannot be used for certain queries that we do. So, this PR brings back the
    non-composite indexes.

    #5470

  • Enhancement #5452: OCM Embedded shares

    This PR introduces OCM embedded shares

    • Adds functionality to store embedded shares (where the shared data is embedded in the OCM
      share payload) * Adds filters to ListReceivedOCMShares call and adapts to the new fields
      SharedResourceType and RecipientType * Adds an endpoint to list embedded shares (using
      the previously mentioned filters)

    #5452

  • Enhancement #5471: Extend integration tests using Reva CLI

    This PR extends the Reva CLI test suite by including tests for recycle bin, versions and grant
    operations

    #5471

  • Enhancement #5476: OCM: support access_types and drop datatx protocol

    This PR adapts the OCM implementation to v1.3. No new capabilities have been added yet.

    #5476

  • Enhancement #5489: Add processing endpoint for an embedded share

    • For now this only changes the state to accepted (or pending if you want to "unprocess" the
      share) - Eventually we want the downloaded content to arrive in the target folder, the target is
      just logged for now.

    #5489

  • Enhancement #5484: Remove share first from EOS, then db

    When removing shares, remove permissions from storage before going to db, so that there can be
    no lingering permissions on EOS

    #5484

  • Enhancement #5462: Integration tests using Reva CLI

    This PR introduces a proof-of-concept for integration tests based on the reva CLI. The goal is
    to extend these tests, so that they can be used by EOS to check if their changes break our
    workflow.

    #5462

v3.5.1

12 Feb 14:18

Choose a tag to compare

Changelog for reva 3.5.1 (2026-02-12)

The following sections list the changes in reva 3.5.1 relevant to
reva users. The changes are ordered by importance.

Summary

  • Fix #5482: Return 403 instead of 500 on no permissions
  • Fix #5473: Do not require db_engine to be set
  • Fix #5496: GetNsMatch in eosfs should return a cleaned path
  • Fix #5490: Do not do getQuota as project owner for ownerless projects
  • Fix #5492: Set proper service account context for project GetQuota
  • Fix #5491: Do not clean namespace path
  • Enh #5466: Clean up DAV PUT
  • Enh #5470: Add indexes to share db for fields that may be queried
  • Enh #5452: OCM Embedded shares
  • Enh #5471: Extend integration tests using Reva CLI
  • Enh #5476: OCM: support access_types and drop datatx protocol
  • Enh #5489: Add processing endpoint for an embedded share
  • Enh #5484: Remove share first from EOS, then db
  • Enh #5462: Integration tests using Reva CLI

Details

  • Bugfix #5482: Return 403 instead of 500 on no permissions

    #5482

  • Bugfix #5473: Do not require db_engine to be set

    #5473

  • Bugfix #5496: GetNsMatch in eosfs should return a cleaned path

    #5496

  • Bugfix #5490: Do not do getQuota as project owner for ownerless projects

    #5490

  • Bugfix #5492: Set proper service account context for project GetQuota

    #5492

  • Bugfix #5491: Do not clean namespace path

    There was a bug in Reva that caused the namespace path to be cleaned. This is wrong: this path
    should end in a / so that EOS trashbin paths do not match for projects (e.g.
    /eos/project-i00 should not be prefixed by /eos/project/).

    This bug caused deleted entries to still show up in the favorites list

    #5491

  • Enhancement #5466: Clean up DAV PUT

    • Fixed a "bug" where a variable was overwritten (though this had no impact) * Cleaned up a method
    • Removed unused function

    #5466

  • Enhancement #5470: Add indexes to share db for fields that may be queried

    In a previous change, some indexes for fields that are queried had been replaced by a composite
    index, which cannot be used for certain queries that we do. So, this PR brings back the
    non-composite indexes.

    #5470

  • Enhancement #5452: OCM Embedded shares

    This PR introduces OCM embedded shares

    • Adds functionality to store embedded shares (where the shared data is embedded in the OCM
      share payload) * Adds filters to ListReceivedOCMShares call and adapts to the new fields
      SharedResourceType and RecipientType * Adds an endpoint to list embedded shares (using
      the previously mentioned filters)

    #5452

  • Enhancement #5471: Extend integration tests using Reva CLI

    This PR extends the Reva CLI test suite by including tests for recycle bin, versions and grant
    operations

    #5471

  • Enhancement #5476: OCM: support access_types and drop datatx protocol

    This PR adapts the OCM implementation to v1.3. No new capabilities have been added yet.

    #5476

  • Enhancement #5489: Add processing endpoint for an embedded share

    • For now this only changes the state to accepted (or pending if you want to "unprocess" the
      share) - Eventually we want the downloaded content to arrive in the target folder, the target is
      just logged for now.

    #5489

  • Enhancement #5484: Remove share first from EOS, then db

    When removing shares, remove permissions from storage before going to db, so that there can be
    no lingering permissions on EOS

    #5484

  • Enhancement #5462: Integration tests using Reva CLI

    This PR introduces a proof-of-concept for integration tests based on the reva CLI. The goal is
    to extend these tests, so that they can be used by EOS to check if their changes break our
    workflow.

    #5462

v3.5.0

02 Feb 10:02
b8d622d

Choose a tag to compare

Changelog for reva 3.5.0 (2026-01-09)

The following sections list the changes in reva 3.5.0 relevant to
reva users. The changes are ordered by importance.

Summary

  • Fix #5449: Fix database sharedconfig parsing
  • Fix #5464: Make MOVE work in public link
  • Fix #5446: Make notify_uploads_extra_recipients work in libregraph
  • Fix #5463: Fix permission editing for public links
  • Fix #5404: Fix localhome virtual namespace path handling for spaces
  • Enh #5429: Cephmount: supports setting posix acls
  • Enh #5433: Make chunking_parallel_upload_disabled configurable
  • Enh #5450: Clean up ListWithRegex log
  • Enh #5447: Make notification trigger always use items
  • Enh #5445: Support funcs in templates
  • Enh #5402: Refactoring of the GORM model for shares
  • Enh #5428: Refactor permissions

Details

  • Bugfix #5449: Fix database sharedconfig parsing

    #5449

  • Bugfix #5464: Make MOVE work in public link

    #5464

  • Bugfix #5446: Make notify_uploads_extra_recipients work in libregraph

    #5446

  • Bugfix #5463: Fix permission editing for public links

    A bug was introduced during the refactoring of the permission system
    (#5428). This has now been fixed.

    #5463

  • Bugfix #5404: Fix localhome virtual namespace path handling for spaces

    Added optional VirtualHomeTemplate config to localfs driver, enabling localhome to
    correctly handle paths when exposing user homes through a virtual namespace (e.g.,
    /home/) while storing files in a flat per-user layout on disk.

    The wrap() function uses a clean switch statement with named predicates to handle five path
    transformation patterns:

    • Exact match: /home/einstein -> / - Full path: /home/einstein/file -> /file - Parent path:
      /home -> / (when virtual home is /home/einstein) - Gateway-stripped parent: /home/file ->
      /file (gateway omits username) - Gateway-stripped username: /einstein/file -> /file
      (WebDAV "home" alias)

    The last two cases handle gateway routing edge cases where prefixes are stripped differently
    depending on whether the WebDAV layer uses space IDs or the "home" alias for URL construction.

    The normalize() function adds the virtual home prefix only to the Path field of ResourceInfo
    (e.g., /file -> /home/einstein/file), enabling PathToSpaceID() to derive the correct space
    identifier. The OpaqueId field remains storage-relative (e.g., fileid-einstein%2Ffile)
    to ensure resource IDs can be properly decoded.

    The localhome wrapper now correctly passes VirtualHomeTemplate through to localfs.

    When VirtualHomeTemplate is empty (default), behavior is unchanged, ensuring backward
    compatibility with EOS and existing deployments.

    #5404

  • Enhancement #5429: Cephmount: supports setting posix acls

    #5429

  • Enhancement #5433: Make chunking_parallel_upload_disabled configurable

    #5433

  • Enhancement #5450: Clean up ListWithRegex log

    #5450

  • Enhancement #5447: Make notification trigger always use items

    #5447

  • Enhancement #5445: Support funcs in templates

    #5445

  • Enhancement #5402: Refactoring of the GORM model for shares

    With this PR we introduce new constraints and rename some fields for better consistency:

    • Types used by OCM structures only are prefixed with Ocm, and AccessMethod and Protocol
      were consolidated into OcmProtocol * ItemType is used in OCM shares as well * The
      (FileIdPrefix, ItemSource) tuple is now (Instance, Inode) in OcmShare, and it was
      removed from OcmReceivedShare as unused * Unique index constraints have been created for
      regular Shares and for OcmShares on (instance, inode, shareWith, deletedAt) * The
      unique indexes have been renamed with a u_ prefix for consistency: this affected
      u_shareid_user, u_link_token. The i_share_with was dropped as redundant. * Alias
      and Hidden were added in OcmReceivedShare

    #5402

  • Enhancement #5428: Refactor permissions

    Permissions are now, at least partially, handled and exposed within a single package (which
    was important for cernboxcop), with conversions between the different types of permissions

    #5428

v3.4.2

17 Dec 14:54

Choose a tag to compare

Changelog for reva 3.4.2 (2025-12-17)

The following sections list the changes in reva 3.4.2 relevant to
reva users. The changes are ordered by importance.

Summary

  • Fix #5444: Allow lightweight accounts to use external apps
  • Enh #5442: Refactor emailhandler

Details

  • Bugfix #5444: Allow lightweight accounts to use external apps

    For that, we need to explicitly allow all relevant storage provider requests when checking the
    lw scope.

    #5444

  • Enhancement #5442: Refactor emailhandler

    The email handler now supports reading CID files and embedding them.

    #5442

v3.4.1

16 Dec 18:01

Choose a tag to compare

Changelog for reva 3.4.1 (2025-12-16)

The following sections list the changes in reva 3.4.1 relevant to
reva users. The changes are ordered by importance.

Summary

  • Fix #5443: Make PROPFIND on files proper

Details

  • Bugfix #5443: Make PROPFIND on files proper

    #5443