Repository: owncloud/ocis
Pull request #3797 (2022-05-13 14:56:08)

Bump web to v5.5.0-rc.6
## Description
Minor update, should fix some obvious UI bugs


Patch:
diff --git a/.drone.env b/.drone.env
index 587e59196d4..cc5e7a3dff9 100644
--- a/.drone.env
+++ b/.drone.env
@@ -3,5 +3,5 @@ CORE_COMMITID=da94f5f803eeab02db1baf59a8a3f019b95344cb
 CORE_BRANCH=master
 
 # The test runner source for UI tests
-WEB_COMMITID=5e0bcc7027a0f426e27340242afa9e29a4f7f235
+WEB_COMMITID=22cf41cad85b8377de42f44025b09b6c37ce4bc7
 WEB_BRANCH=master
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 88d376df3fa..4e6b2bb40e3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,7 +6,6 @@ The following sections list the changes for unreleased.
 
 ## Summary
 
-* Bugfix - Fix Thumbnails for IDs without a trailing path: [#3791](https://github.com/owncloud/ocis/pull/3791)
 * Change - The `glauth` and `accounts` services are removed: [#3685](https://github.com/owncloud/ocis/pull/3685)
 * Enhancement - Add descriptions for graph-explorer config: [#3759](https://github.com/owncloud/ocis/pull/3759)
 * Enhancement - Add description tags to the thumbnails config structs: [#3752](https://github.com/owncloud/ocis/pull/3752)
@@ -15,12 +14,6 @@ The following sections list the changes for unreleased.
 
 ## Details
 
-* Bugfix - Fix Thumbnails for IDs without a trailing path: [#3791](https://github.com/owncloud/ocis/pull/3791)
-
-   The routes in the chi router were not matching thumbnail requests without a trailing path.
-
-   https://github.com/owncloud/ocis/pull/3791
-
 * Change - The `glauth` and `accounts` services are removed: [#3685](https://github.com/owncloud/ocis/pull/3685)
 
    After switching the default configuration to libregraph/idm we could remove the glauth and
diff --git a/changelog/2.0.0_2022-05-10/update-web-5.5.0.md b/changelog/2.0.0_2022-05-10/update-web-5.5.0.md
index 20766576ee9..1eb9259f91c 100644
--- a/changelog/2.0.0_2022-05-10/update-web-5.5.0.md
+++ b/changelog/2.0.0_2022-05-10/update-web-5.5.0.md
@@ -1,12 +1,13 @@
-Enhancement: Update ownCloud Web to v5.5.0-rc.5
+Enhancement: Update ownCloud Web to v5.5.0-rc.6
 
 Tags: web
 
-We updated ownCloud Web to v5.5.0-rc.5. Please refer to the changelog (linked) for details on the web release.
+We updated ownCloud Web to v5.5.0-rc.6. Please refer to the changelog (linked) for details on the web release.
 
 https://github.com/owncloud/web/pull/6854
 https://github.com/owncloud/ocis/pull/3664
 https://github.com/owncloud/ocis/pull/3680
 https://github.com/owncloud/ocis/pull/3727
 https://github.com/owncloud/ocis/pull/3747
-https://github.com/owncloud/web/releases/tag/v5.5.0-rc.5
+https://github.com/owncloud/ocis/pull/3797
+https://github.com/owncloud/web/releases/tag/v5.5.0-rc.6
diff --git a/changelog/unreleased/share-jail-fixes.md b/changelog/unreleased/share-jail-fixes.md
deleted file mode 100644
index 6feeae42e38..00000000000
--- a/changelog/unreleased/share-jail-fixes.md
+++ /dev/null
@@ -1,5 +0,0 @@
-Bugfix: Fix Thumbnails for IDs without a trailing path
-
-The routes in the chi router were not matching thumbnail requests without a trailing path.
-
-https://github.com/owncloud/ocis/pull/3791
diff --git a/docs/ocis/release_notes.md b/docs/ocis/release_notes.md
index 3de7e407323..e14a4b9783f 100644
--- a/docs/ocis/release_notes.md
+++ b/docs/ocis/release_notes.md
@@ -7,4 +7,955 @@ geekdocEditPath: edit/master/docs/ocis
 geekdocFilePath: release_notes.md
 ---
 
-The Infinite Scale Release Notes have been moved and are published with the [ownCloud Documentation](https://doc.owncloud.com/docs/next/ocis_release_notes.html).
+## ownCloud Infinite Scale 2.0.0
+
+Version 2.0.0 is a milestone in the development of Infinite Scale as it now comes with all features that have been planned for the upcoming general availability version. Before general availability, there are going to be a number of beta releases as the last development phase before Infinite Scale will be available and recommended for production use. 
+
+You can read more about the Infinite Scale beta phase on https://owncloud.com:
+
+- [Welcome to the Infinite Scale Beta](https://owncloud.com/news/infinite-scale-beta-available/)
+- [Infinite Scale Beta Page](https://owncloud.com/infinite-scale-beta)
+- [Infinite Scale Beta is coming](https://owncloud.com/news/infinite-scale-beta/)
+
+The first beta release of Infinite Scale 2.0.0 (beta1) introduces the 'File Search' feature and completely replaces the integrated user management with a lightweight LDAP server that is shipped out-of-the-box (LibreIDM). ownCloud Web introduces a new, feature-rich upload manager based on uppy.io and comes with a couple of design and usability round-offs.
+
+The most prominent changes in **ownCloud Infinite Scale 2.0.0 beta1** and ownCloud Web 5.5.0 comprise:
+
+* All 'Breaking changes' of Infinite Scale 1.20.0 Technology Preview have been fixed. Especially the [WOPI Server extension](https://github.com/cs3org/wopiserver) is compatible with Infinite Scale 2.0.0 again.
+* The 'File Search' feature to find files and folders based on their name is now available in the backend and in ownCloud Web. [ocis#3635](https://github.com/owncloud/ocis/pull/3635) [web#6841](https://github.com/owncloud/web/pull/6841)
+* ownCloud Web introduces a new upload manager based on Uppy (https://uppy.io). Uppy provides a well-designed upload manager overlay, integrates seamlessly with the TUS protocol for upload chunking and provides the ability to cancel, pause and resume uploads. [web#6202](https://github.com/owncloud/web/pull/6202)
+* The existing integrated user management has been replaced by LibreIDM which is a lightweight LDAP server being developed by ownCloud and the LibreGraph community (https://github.com/libregraph/idm). LibreIDM comes with a MS Graph-based API and integrates a user interface for user & group management in ownCloud Web. [ocis#3331](https://github.com/owncloud/ocis/pull/3331) [web#6673](https://github.com/owncloud/web/issues/6673)
+* For security reasons, Infinite Scale will not start anymore without specifying certain secrets. A new command `ocis init` has been added to automatically prepare a new Infinite Scale installation by generating secure default secrets. [ocis#3551](https://github.com/owncloud/ocis/pull/3551)
+* The 'Shares' folder has been moved into a dedicated entry point. It is now available in the left sidebar as 'Shares' and will gather all incoming and outgoing shares of the user. With this, the transition to a clear separation of personal, shared and project files is complete. [web#6448](https://github.com/owncloud/web/issues/6448)
+* Spaces cover images will now be rendered with an appropriate aspect ratio (16:9). [web#6829](https://github.com/owncloud/web/pull/6829)
+* When un-sharing a file/folder, a confirmation dialog will now appear [web#6795](https://github.com/owncloud/web/pull/6795)
+* It is now possible to show/hide file extensions in ownCloud Web using the file list settings. [web#6793](https://github.com/owncloud/web/pull/6793)
+* Infinite Scale now provides dedicated quick links that can be created using the quick action in the file list. Once created, the quick link will stay until it's removed and will be copied when the quick action is used. [web#6820](https://github.com/owncloud/web/pull/6820)
+* It is now possible to create links with the 'Editor' role for single files. [web#6787](https://github.com/owncloud/web/pull/6787)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v2.0.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v5.5.0) for further details on what has changed.
+
+### Known issues
+
+This section will be updated if known issues are discovered.
+
+* Copy & Move in ownCloud Web does not work outside of personal spaces https://github.com/owncloud/web/issues/6892
+* Single file user shares have no download action and thumbnail creation does not work for the recipient
+* Received shares cannot be renamed https://github.com/owncloud/ocis/issues/3721
+* The personal user quota is currently hardcoded https://github.com/owncloud/ocis/issues/3748
+
+## ownCloud Infinite Scale 1.20.0 Technology Preview
+
+Version 1.20.0 brings major improvements, new features and bug fixes to the platform. Infinite Scale now provides complete Auditing capabilities and the basic 'Spaces' feature has reached initial feature completeness. Furthermore, ownCloud Web introduces a number of smaller features as well as more design and usability improvements.
+
+The most prominent changes in ownCloud Infinite Scale 1.20.0 and ownCloud Web 5.4.0 comprise:
+
+* The implementation of the basic 'Auditing' feature is now complete. [ocis#3467](https://github.com/owncloud/ocis/pull/3467)
+* The implementation of the basic 'Spaces' feature is now complete. [web#6693](https://github.com/owncloud/web/pull/6693) [web#6659](https://github.com/owncloud/web/pull/6659) [web#6639](https://github.com/owncloud/web/pull/6639) [web#6633](https://github.com/owncloud/web/pull/6633) [web#6662](https://github.com/owncloud/web/pull/6662) [web#6642](https://github.com/owncloud/web/pull/6642)
+* All Space members can now list all links and shares. [ocis#3370](https://github.com/owncloud/ocis/issues/3370)
+* The LDAP configuration settings have been simplified and unified across services. [#3476](https://github.com/owncloud/ocis/pull/3476)
+* All sharing options (users & links) are now united in one panel in ownCloud Web. [web#6701](https://github.com/owncloud/web/pull/6701)
+* The "Media Viewer" in ownCloud Web has been renamed to "Preview". [web#6514](https://github.com/owncloud/web/pull/6514)
+* ownCloud Web now has support for audio playback in "Preview" (e.g., MP3, WAV, FLAC, OGG). [web#6514](https://github.com/owncloud/web/pull/6514)
+* The feedback link in ownCloud Web is now customizable. See https://owncloud.dev/clients/web/getting-started/#options for more information. [web#6702](https://github.com/owncloud/web/issues/6702)
+* ownCloud Web now supports full screen mode for external apps like web office. [web#6688](https://github.com/owncloud/web/pull/6688)
+* ownCloud Web introduces an integrated PDF viewer that user native browser capabilities. [web#6654](https://github.com/owncloud/web/pull/6654)
+* The Text Editor in ownCloud Web has received a couple of improvements. [web#6667](https://github.com/owncloud/web/pull/6667)
+* The "Shared with me" and "Shared with others" pages in ownCloud Web have received a couple of improvements. [web#5976](https://github.com/owncloud/web/issues/5976) [web#6140](https://github.com/owncloud/web/issues/6140)
+* The configuration file directory is now configurable. [ocis#3440](https://github.com/owncloud/ocis/pull/3440)
+* Infinite Scale will not create demo users by default anymore. [ocis#3474](https://github.com/owncloud/ocis/pull/3474)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.20.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v5.4.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+Due to some breaking changes, the [WOPI Server extension](https://github.com/cs3org/wopiserver) that is required for online office integrations (Collabora Online, ONLYOFFICE, Microsoft Office Online) is not compatible with the 1.20.0 release. This issue is under investigation and will be fixed with the next releases.
+{{< /hint >}}
+
+{{< hint warning >}}
+The archive download for multiple files and whole folders is currently disabled for public links. This issue is under investigation and will be fixed with the next releases.
+{{< /hint >}}
+
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.19.1 Technology Preview
+
+Version 1.19.1 is a bugfix release which fixes a regression in version 1.19.0.
+
+* Bugfix - Return correct special item urls: [#3419](https://github.com/owncloud/ocis/pull/3419)
+
+## ownCloud Infinite Scale 1.19.0 Technology Preview
+
+Version 1.19.0 brings major improvements, new features and bug fixes to the platform. Infinite Scale now has a full audit log and the 'Spaces' feature has made a lot of progress towards its initial feature completeness. Sharing inside of spaces was added as well as a spaces aware trashbin. Furthermore, ownCloud Web comes with many design and usability improvements that round off the recent redesign initiative.
+
+The most prominent changes in ownCloud Infinite Scale 1.19.0 and ownCloud Web 5.3.0 comprise:
+
+* Bugfix - Thumbnails only for accepted shares: [#5310](https://github.com/owncloud/web/issues/5310)
+* Bugfix - Show no auth popup on password protected public links in ownCloud 10: [#6530](https://github.com/owncloud/web/pull/6530)
+* Bugfix - Prevent cross-site scripting attack while displaying space description: [#6523](https://github.com/owncloud/web/pull/6523)
+* Bugfix - Replace public mountpoint fileid with grant fileid in ocdav: [cs3org/reva#2646](https://github.com/cs3org/reva/pull/2646)
+* Change - Switch NATS backend: [cs3org/reva#2574](https://github.com/cs3org/reva/pull/2574)
+* Change - Allow LDAP groups to have no gidNumber: [cs3org/reva#2667](https://github.com/cs3org/reva/pull/2667)
+* Change - Improve quota handling: [cs3org/reva#3233](https://github.com/cs3org/reva/pull/3233)
+* Change - Use the cs3 share api to manage spaces: [cs3org/reva#2600](https://github.com/cs3org/reva/pull/2600)
+* Change - Drop json config file support: [#3366](https://github.com/owncloud/ocis/pull/3366)
+* Change - Settings service now stores its data via metadata service: [#3232](https://github.com/owncloud/ocis/pull/3232)
+* Enhancement - Contextmenu background hover: [#6553](https://github.com/owncloud/web/pull/6553)
+* Enhancement - Design improvements: [#6492](https://github.com/owncloud/web/issues/6492)
+* Enhancement - Improve resource loading within spaces: [#6601](https://github.com/owncloud/web/pull/6601)
+* Enhancement - Internet Explorer deprecation warning banner: [#6629](https://github.com/owncloud/web/pull/6629)
+* Enhancement - Load space images as preview: [#6529](https://github.com/owncloud/web/pull/6529)
+* Enhancement - Resolve private links into folders instead of parent: [#5533](https://github.com/owncloud/web/issues/5533)
+* Enhancement - Share inheritance indicators: [#6613](https://github.com/owncloud/web/pull/6613)
+* Enhancement - Shares overview: [#6440](https://github.com/owncloud/web/issues/6440)
+* Enhancement - Side bar nav tags: [#6540](https://github.com/owncloud/web/pull/6540)
+* Enhancement - Show space members in share panel for files inside a space: [#6554](https://github.com/owncloud/web/pull/6554)
+* Enhancement - Allow updating space quota: [#6477](https://github.com/owncloud/web/pull/6477)
+* Enhancement - Implement edit quota action in spaces overview: [#6598](https://github.com/owncloud/web/pull/6598)
+* Enhancement - Implement people sharing for spaces: [#6455](https://github.com/owncloud/web/pull/6455)
+* Enhancement - Implement the spaces permission concept: [#6531](https://github.com/owncloud/web/pull/6531)
+* Enhancement - Implement people sharing for resources within a space: [#6577](https://github.com/owncloud/web/pull/6577)
+* Enhancement - Trash bin: [#6566](https://github.com/owncloud/web/pull/6566)
+* Enhancement - Trash bin breadcrumbs: [#6609](https://github.com/owncloud/web/pull/6609)
+* Enhancement - Audit logger will now log file events: [#3332](https://github.com/owncloud/ocis/pull/3332)
+* Enhancement - Add password reset link to login page: [#3329](https://github.com/owncloud/ocis/pull/3329)
+* Enhancement - Log sharing events in audit service: [#3301](https://github.com/owncloud/ocis/pull/3301)
+* Enhancement - Add space aliases: [#3283](https://github.com/owncloud/ocis/pull/3283)
+* Enhancement - Include etags in drives listing: [#3267](https://github.com/owncloud/ocis/pull/3267)
+* Enhancement - Improve thumbnails API: [#3272](https://github.com/owncloud/ocis/pull/3272)
+* Enhancement - Add new public share manager: [cs3org/reva#2644](https://github.com/cs3org/reva/pull/2644)
+* Enhancement - Add new share manager: [cs3org/reva#2626](https://github.com/cs3org/reva/pull/2626)
+* Enhancement - Add etags to virtual spaces: [cs3org/reva#2624](https://github.com/cs3org/reva/pull/2624)
+* Enhancement - File Events [cs3org/reva#2639](https://github.com/cs3org/reva/pull/2639)
+* Enhancement - Add events for sharing action  [cs3org/reva#2627](https://github.com/cs3org/reva/pull/2627)
+* Enhancement - Add space aliases: [cs3org/reva#2623](https://github.com/cs3org/reva/pull/2623)
+* Enhancement - Add space specific events [cs3org/reva#2647](https://github.com/cs3org/reva/pull/2647)
+* Enhancement - Add the spaceid to propfind responses [cs3org/reva#3345](https://github.com/cs3org/reva/pull/3345)
+* Enhancement - Add etag to spaces response  [cs3org/reva#2616](https://github.com/cs3org/reva/pull/2616)
+* Enhancement - Add spaces aware trash-bin API [cs3org/reva#2628](https://github.com/cs3org/reva/pull/2628)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.19.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v5.3.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+Due to some breaking changes, the [WOPI Server extension](https://github.com/cs3org/wopiserver) that is required for online office integrations (Collabora Online, ONLYOFFICE, Microsoft Office Online) is not compatible with the 1.19.0 release. This issue is under investigation and will be fixed with the next releases.
+{{< /hint >}}
+
+{{< hint warning >}}
+The archive download for multiple files and whole folders is currently disabled for public links. This issue is under investigation and will be fixed with the next releases.
+{{< /hint >}}
+
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.18.0 Technology Preview
+
+Version 1.18.0 brings major improvements, new features and bug fixes to the platform. Infinite Scale can now send user notifications via email and the 'Spaces' feature has made a lot of progress towards its initial feature completeness. Furthermore, ownCloud Web comes with many design and usability improvements that round off the recent redesign initiative.
+
+The most prominent changes in ownCloud Infinite Scale 1.18.0 and ownCloud Web 5.2.0 comprise:
+
+- Infinite Scale introduces a notification service to provide user notifications. Currently it can send email notifications for the event of creating a share with another user. The template used for the notification is basic and will be improved with the next versions. See the [developer documentation](https://owncloud.dev/extensions/notifications/configuration/) on how to configure notification settings. [ocis#3217](https://github.com/owncloud/ocis/pull/3217)
+- Spaces now have a right sidebar for Space properties like quota, actions and more. [web#6437](https://github.com/owncloud/web/pull/6437)
+- Space descriptions and images can now be updated. [web#6410](https://github.com/owncloud/web/pull/6410)
+- The readme for Spaces can now be modified via a lightweight modal editor. [web#6509](https://github.com/owncloud/web/pull/6509)
+- Spaces now support thumbnail previews. [ocis#3219](https://github.com/owncloud/ocis/pull/3219)
+- The design of the breadcrumb in ownCloud Web has been improved. [web#6218](https://github.com/owncloud/web/issues/6218)
+- The "+ New" button in ownCloud Web has been split into "+ New" and "Upload". The design and context menu have been improved. [web#6279](https://github.com/owncloud/web/issues/6279)
+- The file list in ownCloud Web has received a number of visual and usability improvements. [web#6207](https://github.com/owncloud/web/issues/6207)
+- The endpoint to list Spaces now supports sorting by name and last modification time. [ocis#3201](https://github.com/owncloud/ocis/pull/3201)
+- The Search feature in ownCloud Web has been fixed and improved, e.g., the context menu works again properly (only available on ownCloud 10 currently). [web#6445](https://github.com/owncloud/web/pull/6445) [web#6496](https://github.com/owncloud/web/issues/6496)
+- Creating a new file now refreshes the file list in ownCloud Web. [web#5530](https://github.com/owncloud/web/issues/5530)
+- Further improvements have been made to comply with the URL scheme defined in https://owncloud.dev/ocis/adr/0011-global-url-format/#mixed-global-urls. [web#6363](https://github.com/owncloud/web/pull/6363) [ocis#3109](https://github.com/owncloud/ocis/pull/3109)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.18.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v5.2.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+Due to some breaking changes, the [WOPI Server extension](https://github.com/cs3org/wopiserver) that is required for online office integrations (Collabora Online, ONLYOFFICE, Microsoft Office Online) is not compatible with the 1.18.0 release. This issue is under investigation and will be fixed with the next releases.
+{{< /hint >}}
+
+{{< hint warning >}}
+The archive download for multiple files and whole folders is currently disabled for public links. This issue is under investigation and will be fixed with the next releases.
+{{< /hint >}}
+
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.17.0 Technology Preview
+
+Version 1.17.0 brings major changes, new features and improvements. The Infinite Scale backend introduces an event system as an important platform component and adds support for file locking. ownCloud Web 5.0.0 comes with a full rework of the design and user experience and introduces initial support for the 'Spaces' feature. Additionally ownCloud Web now supports Collabora Online with the ownCloud 10 backend.
+
+The most prominent changes in ownCloud Infinite Scale 1.17.0 and ownCloud Web 5.0.0 comprise:
+
+- Infinite Scale now comes with the foundations of an event system based on [NATS](https://nats.io). The events system allows the oCIS services to communicate between each other based on events and will be the key component for features like notifications, auditing and other event-driven extensions/mechanisms. [cs3org/reva#2522](https://github.com/cs3org/reva/pull/2522)
+- ownCloud Web has been completely reworked in terms of design and user experience (main layout, app switcher, navigation sidebar, icons, user menu, etc.). [web#6102](https://github.com/owncloud/web/issues/6102) [web#6036](https://github.com/owncloud/web/issues/6036) [web#6272](https://github.com/owncloud/web/pull/6272)
+- Initial support for the 'Spaces' feature in Infinite Scale and ownCloud Web has been added. [web#6254](https://github.com/owncloud/web/pull/6254) [web#6199](https://github.com/owncloud/web/pull/6199) [web#6262](https://github.com/owncloud/web/pull/6262) [ocis#2931](https://github.com/owncloud/ocis/pull/2931) [ocis#3095](https://github.com/owncloud/ocis/pull/3095)
+- Infinite Scale now supports file locking on CS3 and WebDAV levels to prevent concurrent/conflicting edits in shared areas. ownCloud Web will soon follow-up with the respective actions and indicators. [cs3org/reva#2460](https://github.com/cs3org/reva/pull/2460)
+- Spaces can now be disabled, restored and permanently deleted. [ocis#3092](https://github.com/owncloud/ocis/pull/3092)
+- ownCloud Web now provides a light and dark mode with an interactive switcher. [web#6242](https://github.com/owncloud/web/issues/6242)
+- ownCloud Web now provides skeleton loading bars in the file list. [web#6204](https://github.com/owncloud/web/pull/6204)
+- ownCloud Web now provides an ID- and path-based URL scheme according to https://owncloud.dev/ocis/adr/0011-global-url-format/#mixed-global-urls. [web#6137](https://github.com/owncloud/web/pull/6137)
+- ownCloud Web now supports Collabora Online with the ownCloud 10 backend. More information on configuration can be found in the [documentation](https://owncloud.dev/clients/web/deployments/oc10-app/#collabora-online).
+- ownCloud Web now respects share expiration date enforcement and defaults with the ownCloud 10 backend. [web#6176](https://github.com/owncloud/web/pull/6176)
+- The People sharing dialog in ownCloud Web has received a couple of improvements. [web#6039](https://github.com/owncloud/web/pull/6039)
+- ownCloud Web now persists sorting preferences. [web#5930](https://github.com/owncloud/web/issues/5930)
+- ownCloud Web will now sort properly, even on paginated views. [web#5687](https://github.com/owncloud/web/issues/5687)
+- The right-click menu works again in public links. [web#6123](https://github.com/owncloud/web/issues/6123)
+- GraphAPI endpoints for Spaces and user/group management are now available. [ocis#2858](https://github.com/owncloud/ocis/pull/2858) [ocis#2947](https://github.com/owncloud/ocis/pull/2947) [ocis#2946](https://github.com/owncloud/ocis/pull/2946) [ocis#2978](https://github.com/owncloud/ocis/pull/2978) [ocis#2979](https://github.com/owncloud/ocis/pull/2979)
+- Public links with passwords now work properly. [ocis#2831](https://github.com/owncloud/ocis/pull/2831)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.17.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v5.0.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+Due to some breaking changes, the [WOPI Server extension](https://github.com/cs3org/wopiserver) that is required for online office integrations (Collabora Online, ONLYOFFICE, Microsoft Office Online) is not compatible with the 1.17.0 release. This issue is under investigation and will be fixed with the next releases.
+{{< /hint >}}
+
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.16.0 Technology Preview
+
+Version 1.16.0 brings bug fixes, new features and progress for ongoing feature implementations like 'Spaces' and application integrations. ownCloud Web comes with a couple of usability improvements (e.g., breadcrumb context menu, right-click menu for multi-select). Infinite Scale has got a revamped config handling that makes deployments easier and more flexible. Additionally, it enables easy and fast collaboration via public links.
+
+The most prominent changes in ownCloud Infinite Scale 1.16.0 and ownCloud Web 4.6.0 comprise:
+
+- ownCloud Web now provides a context menu in the navigation breadcrumb that allows users to conduct actions for the parent folder (e.g., sharing). [web#6044](https://github.com/owncloud/web/pull/6044)
+- It is now possible to edit files with integrated applications in public links. [cs3org/reva#2310](https://github.com/cs3org/reva/pull/2310)
+- Infinite Scale now provides the API endpoints to manage Spaces (e.g., add/remove users, manage their roles). [ocis#2740](https://github.com/owncloud/ocis/issues/2740) [cs3org/reva#2250](https://github.com/cs3org/reva/pull/2250)
+- The config handling in Infinite Scale has received a huge rework to better enable different deployment and configuration models (environment variables, single config file, service-specific config files). More information can be found in the [documentation](https://owncloud.dev/ocis/config/). [#2708](https://github.com/owncloud/ocis/pull/2708)
+- The right-click context menu in ownCloud Web now works when multiple files have been selected. [web#5973](https://github.com/owncloud/web/pull/5973)
+- ownCloud Web now shows accessibility-optimized tooltips with absolute dates on relative dates. [web#6037](https://github.com/owncloud/web/pull/6037)
+- Pagination in folders with many files now works properly again. [#6056](https://github.com/owncloud/web/pull/6056)
+- The s3ng metadata storage backend works again. [#2807](https://github.com/owncloud/ocis/pull/2807)
+- Improvements have been added to support more identity providers (e.g., Authelia). [cs3org/reva#2314](https://github.com/cs3org/reva/pull/2314)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.16.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v4.6.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.15.0 Technology Preview
+
+Version 1.15.0 brings improvements for the app provider (external application integrations) and more progress on the 'Spaces' feature. Public links now support multi-file and folder downloads as well as all other external application integrations. ownCloud Web 4.5.0 furthermore comes with improvements for use with the ownCloud Classic backend.
+
+The most prominent changes in ownCloud Infinite Scale 1.15.0 and ownCloud Web 4.5.0 comprise:
+
+- Multi-file and folder downloads as well as other external application (Collabora Online, ONLYOFFICE, CodiMD, etc.) integrations now work in public links. [web#5924](https://github.com/owncloud/web/pull/5924)
+- New files (created/uploaded and file versions) will now be highlighted in ownCloud Web. [web#6020](https://github.com/owncloud/web/pull/6020)
+- When using ownCloud Web with the ownCloud Classic backend, Web will now automatically display app entries in the app switcher based on the entries in the app switcher of the Classic UI (e.g., Activity, Market) so that users can easily find and use the apps. [web#5996](https://github.com/owncloud/web/pull/5996)
+- The width of the right sidebar in the Files app of ownCloud Web has been reduced to make it better usable on medium-sized screens. [web#5983](https://github.com/owncloud/web/pull/5983)
+- ownCloud Web has received performance and other improvements for external application integrations. [web#5952](https://github.com/owncloud/web/pull/5952)
+- Spaces: A new API endpoint has been introduced that allows listing all Spaces in an installation. [ocis#2692](https://github.com/owncloud/ocis/pull/2692)
+- Spaces: A permission has been added to control which users can list all Spaces. [cs3org/reva#2207](https://github.com/cs3org/reva/pull/2207)
+- The app provider (for external application integrations) has received improvements for announcing and prioritizing applications as well as for error handling. [cs3org/reva#2230](https://github.com/cs3org/reva/pull/2230) [cs3org/reva#2263](https://github.com/cs3org/reva/pull/2263) [cs3org/reva#2258](https://github.com/cs3org/reva/pull/2258)
+- The configuration defaults have been revisited and improved towards better security. [ocis#2700](https://github.com/owncloud/ocis/issues/2700)
+- IPv6 support for Infinite Scale has been added. [ocis#2698](https://github.com/owncloud/ocis/pull/2698)
+- A capability for the 'Resharing' feature will now be correctly announced. [ocis#2690](https://github.com/owncloud/ocis/pull/2690)
+- Restoring a file version now works properly. [cs3org/reva#2270](https://github.com/cs3org/reva/pull/2270)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.15.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v4.5.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.14.0 Technology Preview
+
+Version 1.14.0 brings more progress on the backend for the 'Spaces' and 'Quota' features. ownCloud Web 4.4.0 has received performance and usability improvements.
+
+The most prominent changes in ownCloud Infinite Scale 1.14.0 and ownCloud Web 4.4.0 comprise:
+
+- The media viewer in ownCloud Web is now accessible and themeable. [web#5900](https://github.com/owncloud/web/pull/5900)
+- The share expiration date setting has been moved to a dropdown menu to better fit the interface. [web#5806](https://github.com/owncloud/web/pull/5806)
+- The performance of ownCloud Web has been improved by removing unnecessary requests and redirects. [web#5910](https://github.com/owncloud/web/pull/5910) [web#5893](https://github.com/owncloud/web/pull/5893) [web#5917](https://github.com/owncloud/web/pull/5917)
+- It is now possible for the sysadmin to set a default quota for new Spaces. This way, users with the respective permission can create new Spaces but administrators still keep a leverage on storage usage. [ocis#2619](https://github.com/owncloud/ocis/pull/2619)
+- The permission to change Space quota is now enforced. [ocis#2650](https://github.com/owncloud/ocis/pull/2650)
+- The maximum chunk size for upload file chunking has been set to 100 MB which will make chunking apply more frequently resulting in more stable uploads. [ocis#2584](https://github.com/owncloud/ocis/pull/2584)
+- It is now possible to set a default storage path for Infinite Scale. [ocis#2590](https://github.com/owncloud/ocis/pull/2590)
+- Infinite Scale services now by default only listen on localhost to prevent accidental exposure. [ocis#2612](https://github.com/owncloud/ocis/pull/2612)
+- A capability for the user settings endpoint has been added to improve request handling in Web between when used with ownCloud Classic and Infinite Scale, respectively. [ocis#2655](https://github.com/owncloud/ocis/pull/2655)
+- Requests in public links are now authenticated properly paving the way for Office capabilities in public links. [ocis#2536](https://github.com/owncloud/ocis/pull/2536)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.14.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v4.4.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.13.0 Technology Preview
+
+Version 1.13.0 brings progress on the backend for the 'Spaces' feature. ownCloud Web and Infinite Scale now provide ZIP/TAR download for multiple files/folders and can integrate external file viewer/editor applications (e.g., Collabora Online, ONLYOFFICE, CodiMD, Microsoft Office Online).
+
+The most prominent changes in ownCloud Infinite Scale 1.13.0 and ownCloud Web 4.3.0 comprise:
+
+- Infinite Scale and Web now allow downloading multiple files or folders as archives [ocis#2509](https://github.com/owncloud/ocis/pull/2509) [cs3org/reva#2088](https://github.com/cs3org/reva/pull/2088)
+- Infinite Scale and Web can now integrate external applications like file viewers/editors via the [cs3org/wopiserver](https://github.com/cs3org/wopiserver) (e.g., Collabora Online, ONLYOFFICE, CodiMD, Microsoft Office Online). [web#5805](https://github.com/owncloud/web/pull/5805)
+- The 'Shared with me' page in ownCloud Web now clearly separates pending, declined and accepted shares. Pending shares are always displayed prominently so that users are aware and can react accordingly. [web#5814](https://github.com/owncloud/web/pull/5814)
+- Legacy URLs (e.g., from the address bar, public links) from ownCloud Classic are now properly resolved after migrating to Infinite Scale and Web [cs3org/reva#1089](https://github.com/cs3org/reva/pull/1989)
+- A capability for the Favorites feature has been added [ocis#2599](https://github.com/owncloud/ocis/pull/2599)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.13.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v4.3.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.12.0 Technology Preview
+
+Version 1.12.0 is a maintenance release with the foundations for the 'Spaces' feature and for viewer/editor application integrations. The Infinite Scale backend has been further hardened by fixing known issues, improving error handling and stabilizing existing features. Apart from bugfixing, ownCloud Web 4.2.0 has received a number of usability and design improvements for sharing and the file list.
+
+The most prominent changes in ownCloud Infinite Scale 1.12.0 and ownCloud Web 4.2.0 comprise:
+
+- The Infinite Scale backend now supports the first parts of the 'Spaces' feature
+  - Creating a new Space is now possible via Graph API [#2471](https://github.com/owncloud/ocis/pull/2471)
+  - A new sharing role, `Manager`, has been introduced for Spaces [cs3org/reva#2065](https://github.com/cs3org/reva/pull/2065)
+  - A capability for Spaces has been added [cs3org/reva#2015](https://github.com/cs3org/reva/pull/2015)
+- Infinite Scale now provides an app provider and an app registry as a foundation for integrations with viewer/editor applications. [#2204](https://github.com/owncloud/ocis/pull/2204)
+- ownCloud Web now has a re-designed sharing role selection. [#5632](https://github.com/owncloud/web/pull/5632)
+- ownCloud Web now shows people in sharing as a collapsed list of avatars to save space. This can be expanded to show more details and the full list. [#5758](https://github.com/owncloud/web/pull/5758)
+- ownCloud Web now shows sharing information in file/folder details. [#5735](https://github.com/owncloud/web/issues/5735)
+- The file size calculation in ownCloud Web has been changed from base-2 (e.g., KB / Kibibyte) to base-10 (e.g., kB / Kilobyte) to match better with user expectations. [#5739](https://github.com/owncloud/web/pull/5739)
+- The URL encoding/decoding in ownCloud Web has been improved. [#5714](https://github.com/owncloud/web/issues/5714)
+- ownCloud Web now provides a robots.txt file. [#5762](https://github.com/owncloud/web/pull/5762)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.12.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v4.2.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.11.0 Technology Preview
+
+Version 1.11.0 brings new features, usability improvements and bug fixes. ownCloud Web 4.1.0 now supports drag & drop and allows users to do actions (e.g., sharing) for the folder they are currently in.
+
+The most prominent changes in ownCloud Infinite Scale 1.11.0 and ownCloud Web 4.1.0 comprise:
+
+- ownCloud Web now supports drag & drop to move files/folders. [#5592](https://github.com/owncloud/web/issues/5592)
+- The right sidebar in ownCloud Web can now be collapsed and expanded. This change also allows to open the sidebar without selecting a file/folder which will select the current folder and enable the user to do actions (e.g., sharing) for it. [#5165](https://github.com/owncloud/web/issues/5165)
+- The right sidebar in ownCloud Web now presents details for multiple selected files/folders. [#5164](https://github.com/owncloud/web/issues/5164)
+- The owncloud/ocis Docker image now uses a non-root user for improved security. This is a breaking change for existing Docker deployments. The permission on the files and folders in persistent volumes need to be changed to the UID and GID used for oCIS (default 1000:1000 if not changed by the user). [#2380](https://github.com/owncloud/ocis/pull/2380)
+- Infinite Scale now supports request tracing through the whole stack to facilitate debugging. [#1984](https://github.com/cs3org/reva/pull/1984)
+- Infinite Scale now provides a WebDAV endpoint for the new Spaces feature [#1803](https://github.com/cs3org/reva/pull/1803)
+- The Infinite Scale backend has been further hardened by fixing known issues, improving error handling and stabilizing existing features.
+- All test scenarios for file-related operations now pass in Infinite Scale (e.g., file operations, trash bin).
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.11.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v4.1.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.10.0 Technology Preview
+
+Version 1.10.0 brings new features, usability improvements and bug fixes. ownCloud Web 4.0.0 now supports ONLYOFFICE document editors and can search/filter files and folders. Furthermore it brings a new context menu for file actions that can be accessed via right click and comes with a big bunch of other notable improvements and fixes.
+
+The most prominent changes in ownCloud Infinite Scale 1.10.0 and ownCloud Web 4.0.0 comprise:
+
+- ownCloud Web now supports ONLYOFFICE document editors when used with ownCloud Classic Server. See the [documentation](https://owncloud.dev/clients/web/deployments/oc10-app/#onlyoffice) for more information on requirements and configuration.
+- ownCloud Web now supports global search and filtering for the current folder via the search bar. Both will work when ownCloud Web is used with ownCloud Classic. The Infinite Scale capabilities are currently limited to filtering the current folder. [#5415](https://github.com/owncloud/web/pull/5415)
+- A context menu for a file/folder which contains related actions has been introduced to ownCloud Web (in addition to the actions in the right sidebar). [#5160](https://github.com/owncloud/web/issues/5160)
+- The context menu for a file/folder in ownCloud Web can be opened via right click and using the "..." menu. [#5102](https://github.com/owncloud/web/issues/5102)
+- As a first step of a larger redesign of the sharing dialog in ownCloud Web, the autocomplete and share recipient selection have been redesigned. [#5554](https://github.com/owncloud/web/pull/5554)
+- The right sidebar navigation in ownCloud Web has been redesigned. Moving away from structuring all functionality on a single view using accordions, each section now has their own, dedicated view. [#5549](https://github.com/owncloud/web/pull/5549)
+- The maximum number of sharing autocomplete suggestions in ownCloud Web can now be configured. See [the documentation](https://owncloud.dev/clients/web/getting-started/#options) for more information. [#5506](https://github.com/owncloud/web/pull/5506)
+- ownCloud Web works now with ownCloud Classic when OpenID Connect authentication is used. [#5536](https://github.com/owncloud/web/pull/5536)
+- ownCloud Web now respects the server-side capability for user avatars. [#5178](https://github.com/owncloud/web/pull/5178)
+- The login page has been optimized in regards of accessibility. [#5376](https://github.com/owncloud/web/issues/5376)
+- The Infinite Scale backend is being further hardened by fixing known issues, improving error handling and stabilizing existing features.
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.10.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v4.0.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.9.0 Technology Preview
+
+Version 1.9.0 is a feature and maintenance release. More features have been added and the platform was matured further. ownCloud Web 3.4.1 brings usability improvements and new features. The right sidebar now shows details about the selected resource and offers previews for images. View options for the file list and a feedback button have been added.
+
+The most prominent changes in ownCloud Infinite Scale 1.9.0 and ownCloud Web 3.4.1 comprise:
+
+- The right sidebar in ownCloud Web now shows details about the selected file/folder (e.g., size, owner, sharing status, modification time). [#5161](https://github.com/owncloud/web/issues/5161)
+- The right sidebar in ownCloud Web now shows previews for images. [#5501](https://github.com/owncloud/web/pull/5501)
+- View options for the file list have been introduced in ownCloud Web. Currently this allows to change the number of files/folders per page and to show/hide hidden files. [#5408]https://github.com/owncloud/web/pull/5408 [#5470](https://github.com/owncloud/web/pull/5470)
+- A feedback button has been added to the top bar. It guides the user to an ownCloud Web feedback survey. If undesired, this feature [can be disabled in the ownCloud Web configuration](https://owncloud.dev/clients/web/getting-started/#options). [#5468](https://github.com/owncloud/web/pull/5468)
+- Received shares can now be accepted/declined as batches in the "Shared with me" view. [#5374](https://github.com/owncloud/web/pull/5374)
+- The oCIS backend now supports to enable extensions by name. [#2229](https://github.com/owncloud/ocis/pull/2229)
+- Storage drivers can be set to read only. [#2230](https://github.com/owncloud/ocis/pull/2230)
+- Micro service init has been improved for faster startup. [#1705](https://github.com/owncloud/ocis/pull/1705)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.9.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v3.4.1) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.8.0 Technology Preview
+
+Version 1.8.0 is a maintenance and bug fix release. ownCloud Web 3.3.0 has received further performance and major accessibility improvements.
+
+The most prominent changes in ownCloud Infinite Scale 1.8.0 and ownCloud Web 3.3.0 comprise:
+
+- ownCloud Web is now fully translatable on Transifex [#5042](https://github.com/owncloud/web/pull/5042)
+- ownCloud Web now supports keyboard navigation [#4937](https://github.com/owncloud/web/pull/4937) [#5013](https://github.com/owncloud/web/pull/5013) [#5027](https://github.com/owncloud/web/pull/5027) [#5147](https://github.com/owncloud/web/pull/5147)
+- ownCloud Web now supports screenreaders [#5182](https://github.com/owncloud/web/pull/5182) [#5166](https://github.com/owncloud/web/pull/5166) [#5058](https://github.com/owncloud/web/pull/5058) [#5046](https://github.com/owncloud/web/pull/5046) [#5010](https://github.com/owncloud/web/pull/5010)
+- ownCloud Web has received many performance improvements (image cache, fixes to avoid duplicate resource loading, asynchronous image loading) [#5194](https://github.com/owncloud/web/pull/5194)
+- The file lists in ownCloud Web are now paginated to control loading times [#5224](https://github.com/owncloud/web/pull/5224) [#5309](https://github.com/owncloud/web/pull/5309)
+- ownCloud Web now supports TypeScript [#5194](https://github.com/owncloud/web/pull/5194)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.8.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v3.3.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.7.0 Technology Preview
+
+Version 1.7.0 is a maintenance and bug fix release. ownCloud Web 3.2.0 has received further performance improvements and minor usability tweaks.
+
+The most prominent changes in ownCloud Infinite Scale 1.7.0 and ownCloud Web 3.2.0 comprise:
+
+- The S3 storage driver can now be used for testing using the configuration values in the [documentation](https://owncloud.dev/extensions/storage/configuration/#s3ng-driver) [#1886](https://github.com/owncloud/ocis/pull/1886)
+- A confirmation dialog for public link deletion has been added [#5125](https://github.com/owncloud/web/pull/5125)
+- To improve performance, the file types which are being rendered as previews can now be specified using an [allow list in config.json](https://owncloud.dev/clients/web/getting-started/#options) [#5159](https://github.com/owncloud/web/pull/5159)
+- A warning has been added when a user tries to leave the page while an operation is in progress (e.g., an upload) [#2590](https://github.com/owncloud/web/issues/2590)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.7.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v3.2.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.6.0 Technology Preview
+
+To get the full potential out of the microservice architecture, version 1.6.0 introduces a dynamic service registry to ownCloud Infinite Scale. The dynamic service registry facilitates the configuration and contributes to the scalability of the platform. ownCloud Web 3.1.0 has received further improvements for accessibility like keyboard navigation and it comes with performance improvements by loading certain elements asynchronously.
+
+The most prominent changes in ownCloud Infinite Scale 1.6.0 and ownCloud Web 3.1.0 comprise:
+
+- Introducing a dynamic service registry: The dynamic service registry takes care of dynamically assigning network addresses between the oCIS services and enables the services to find and work with each other automatically. It replaces the previous hardcoded service configuration which simplifies the initial setup and makes distributed, scale-out environments a lot easier to handle. [#1509](https://github.com/cs3org/reva/pull/1509)
+- User avatars are now fetched asynchronously, enabling a non-blocking loading of the file list and improving user experience [#1295](https://github.com/owncloud/owncloud-design-system/pull/1295)
+- Further accessibility and keyboard navigation improvements have been added [#1979](https://github.com/owncloud/ocis/pull/1979) [#1991](https://github.com/owncloud/ocis/pull/1991) [#4942](https://github.com/owncloud/web/pull/4942) [#4965](https://github.com/owncloud/web/pull/4965) [#4991](https://github.com/owncloud/web/pull/4991)
+- The OCS user deprovisioning endpoint has been added, enabling a full user deprovisioning including storage. [#1962](https://github.com/owncloud/ocis/pull/1962)
+- Text files (.txt) now have previews (thumbnails) [#1988](https://github.com/owncloud/ocis/pull/1988)
+- The translations in the Settings and Accounts extensions have been improved [#2003](https://github.com/owncloud/ocis/pull/2003)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.6.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v3.1.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+#### Changed oCIS JSON share driver storage format
+
+Related: [#1655](https://github.com/cs3org/reva/pull/1655)
+
+The storage format of the oCIS JSON share driver has changed. You will be affected if you plan to update from a previous version of oCIS to oCIS 1.6.0, you have shared files or folders with users or groups and you are using the oCIS JSON share driver, which is currently the default share driver.
+
+Implications:
+- manual action required
+
+Our recommended update strategy to oCIS 1.6.0 is:
+1. let users note all their shares with users and groups they set up in oCIS
+1. stop oCIS
+1. move / delete the JSON share driver storage file `/var/tmp/ocis/storage/shares.json`
+1. update to oCIS 1.6.0
+1. let users recreate their shares
+
+#### Fixed / changed oCIS metadata storage driver filesystem path
+Related: [#1956](https://github.com/owncloud/ocis/pull/1956)
+
+The filesystem path of the oCIS metadata storage driver has changed (been fixed). You will be affected if you plan to update from a previous version of oCIS to oCIS 1.6.0 and are using the oCIS storage driver for metadata storage.
+
+Implications:
+- manual action required
+
+Our recommended update strategy to oCIS 1.6.0 is:
+1. let users backup all their data stored in oCIS
+1. stop oCIS
+1. prune all oCIS data in `/var/tmp/ocis`
+1. update to oCIS 1.6.0
+1. recreate user accounts (can be skipped if an external IDP is used)
+1. let users upload all their data again
+1. let users recreate their shares
+
+If you want to use oCIS 1.6.0 without following our recommended update strategy, you can also keep the pre 1.6.0 behaviour by setting this environment variable:
+`export STORAGE_SYSTEM_ROOT=/var/tmp/ocis/storage/users`
+This may lead to faulty behaviour since both the metadata and user storage driver will be storing their data in the same filesystem path.
+
+## ownCloud Infinite Scale 1.5.0 Technology Preview
+
+Version 1.5.0 is a maintenance release for the Infinite Scale backend with a number of bug fixes and smaller improvements. For ownCloud Web it brings further accessibility improvements and a whole bunch of new features. The web interface can now be branded and there is a new, dedicated view in the left sidebar to list all link shares of a user.
+
+The most prominent changes in ownCloud Infinite Scale 1.5.0 and ownCloud Web 3.0.0 comprise:
+
+- Config file based theming for ownCloud Web (see https://owncloud.dev/clients/web/theming/ for more information) [#4822](https://github.com/owncloud/web/pull/4822)
+- A dedicated view for "Shared by link" has been added [#4881](https://github.com/owncloud/web/pull/4881)
+- The file list table has been replaced and is now more performant and accessible [#4627](https://github.com/owncloud/web/pull/4627)
+- Many further accessibility improvements have been added, e.g., around the app switcher, sidebar, sharing list and focus management
+- User storage quotas will now be enforced [#1557](https://github.com/cs3org/reva/pull/1557)
+- The "owncloud" storage driver now supports file integrity checking with checksums [#1629](https://github.com/cs3org/reva/pull/1629)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.5.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v3.0.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.4.0 Technology Preview
+
+Version 1.4.0 brings new features, bug fixes and further improvements. The accessibility of ownCloud Web has greatly improved, paving the way for WCAG 2.1 compliance. The Infinite Scale platform has received major improvements regarding memory consumption. The user storage quota feature has been implemented and folder sizes are now properly calculated. It is now possible to write log messages to log files and to specify configuration values using a config file.
+
+The most prominent changes in ownCloud Infinite Scale 1.4.0 and ownCloud Web 2.1.0 comprise:
+
+- ownCloud Web is now able to use pre-signed url downloads for password protected shares [#38376](https://github.com/owncloud/core/pull/38376)
+- Reduced the memory consumption of the runtime drastically (by a factor of 24) [#1762](https://github.com/owncloud/ocis/pull/1762)
+- Initial quota support to impose storage space restrictions for users (query / set) [#1405](https://github.com/cs3org/reva/pull/1405)
+- Folder sizes are now calculated correctly (tree size accounting) [#1405](https://github.com/cs3org/reva/pull/1405)
+- Added the possibility to write the log to a file with the option to write separated log files by service [#1816](https://github.com/owncloud/ocis/pull/1816)
+- Added the possibility to specify configuration values for the entire platform in a single config file [#1762](https://github.com/owncloud/ocis/pull/1762)
+- Added GIF and JPEG file types for thumbnail generation (allows to display thumbnails and use the media viewer for GIF/JPEG images) [#1791](https://github.com/owncloud/ocis/pull/1791)
+- Fixes for the trash bin feature [#1552](https://github.com/cs3org/reva/pull/1552)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.4.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v2.1.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+#### Changed oCIS storage driver file layout
+
+Related: [#1452](https://github.com/cs3org/reva/pull/1452)
+
+Despite a breaking change in the oCIS storage driver file layout, data is not automatically migrated. You will be affected if you plan to update from a previous version of oCIS to oCIS 1.4.0 and are using the oCIS storage driver, which is currently the default storage driver.
+
+Implications:
+- manual action required
+
+Our recommended update strategy to oCIS 1.4.0 is:
+1. let users backup all their data stored in oCIS
+1. stop oCIS
+1. prune all oCIS data in `/var/tmp/ocis`
+1. update to oCIS 1.4.0
+1. recreate user accounts (can be skipped if an external IDP is used)
+1. let users upload all their data again
+1. let users recreate their shares
+
+If you already updated to oCIS 1.4.0 without our recommended update strategy you will see no data in oCIS anymore, even after a downgrade to your previous version of oCIS. But be assured that your data is still there.
+
+You have to follow these steps to be able to access your data again in oCIS:
+1. stop oCIS
+1. navigate to `/var/tmp/ocis/storage/users/nodes/root/`
+1. in this directory you will find directories with UUID as names. These are the home folders of the oCIS users. Find the ones with content your oCIS users uploaded to oCIS.
+1. create an temporary directory e.g. `/tmp/dereferenced-ocis-storage`
+1. copy the data from oCIS to the temporary directory while dereferencing symlinks. On Linux you can do this by running `cp --recursive --dereference /var/tmp/ocis/storage/users/nodes/root/ /tmp/dereferenced-ocis-storage`
+1. you now have a backup of all users data in `/tmp/dereferenced-ocis-storage` and can follow our recommended update strategy above
+
+
+## ownCloud Infinite Scale 1.3.0 Technology Preview
+Version 1.3.0 is a regular maintenance and bugfix release. It provides the latest improvements to users and administrators.
+
+### Changes in Reva
+
+[Reva](https://github.com/cs3org/Reva) is one of the fundamental components of oCIS. It has these significant changes:
+
+- Align href URL encoding with oc10 [#1425](https://github.com/cs3org/Reva/pull/1425)
+- Fix public link webdav permissions [#1461](https://github.com/cs3org/Reva/pull/1461)
+- Purge non-empty dirs from trash-bin [#1429](https://github.com/cs3org/Reva/pull/1429)
+- Checksum support [#1400](https://github.com/cs3org/Reva/pull/1400)
+- Set quota when creating home directory in EOS [#1477](https://github.com/cs3org/Reva/pull/1477)
+- Add functionality to share resources with groups [#1453](https://github.com/cs3org/Reva/pull/1453)
+- Add s3ng storage driver, storing blobs in a s3-compatible blobstore [#1428](https://github.com/cs3org/Reva/pull/1428)
+
+### Changes in oCIS
+
+These are the major changes in oCIS:
+
+- Update ownCloud Web to v2.0.2: [#1776](https://github.com/owncloud/ocis/pull/1776)
+- Enhancement - Update go-micro to v3.5.1-0.20210217182006-0f0ace1a44a9: [#1670](https://github.com/owncloud/ocis/pull/1670)
+- Enhancement - Update reva to v1.6.1-0.20210223065028-53f39499762e: [#1683](https://github.com/owncloud/ocis/pull/1683)
+- Enhancement - Add initial nats and kubernetes registry support: [#1697](https://github.com/owncloud/ocis/pull/1697)
+
+More details about this release can be found in the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.3.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v2.0.2).
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+## ownCloud Infinite Scale 1.2.0 Technology Preview
+Version 1.2.0 brings more functionality and stability to ownCloud Infinite Scale. ownCloud Web now loads a lot faster and is prepared for the introduction of accessibility features. An initial implementation for S3 storage support is available and file integrity checking has been introduced.
+
+The most prominent changes in ownCloud Infinite Scale 1.2.0 and ownCloud Web 2.0.0 comprise:
+
+- The initial loading time for ownCloud Web has been reduced by handling dependencies more efficiently (the bundle size of ownCloud Web has been drastically reduced) [#4584](https://github.com/owncloud/web/pull/4584)
+- Preparations for accessibility features have been implemented to work towards WCAG 2.1 compliance [#4594](https://github.com/owncloud/web/pull/4594)
+- Initial S3 storage support is available [#1429](https://github.com/cs3org/reva/issues/1429)
+- File integrity checking has been introduced: When uploading files, Infinite Scale now makes sure that the file integrity is protected between server and clients by comparing checksums [#1400](https://github.com/cs3org/reva/issues/1400)
+- Public link passwords are now stored as hashes to improve security [#1462](https://github.com/cs3org/reva/issues/1462)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.2.0) and [ownCloud Web changelog](https://github.com/owncloud/web/releases/tag/v2.0.0) for further details on what has changed.
+
+### Breaking changes
+{{< hint warning >}}
+We are currently in a Tech Preview state and breaking changes may occur at any time. For more information see our [release roadmap]({{< ref "./release_roadmap" >}})
+{{< /hint >}}
+
+#### Fix IDP service user
+Related: [#1390](https://github.com/owncloud/ocis/pull/1390), [#1569](https://github.com/owncloud/ocis/issues/1569)
+
+After upgrading oCIS from a previous version to oCIS 1.2.0 you will not be able to login in ownCloud Web
+
+Implications:
+- manual action required
+
+Migration steps:
+- Stop oCIS
+- Open following file `/var/tmp/ocis/storage/metadata/nodes/root/accounts/820ba2a1-3f54-4538-80a4-2d73007e30bf`
+- Change password to `$2y$12$ywfGLDPsSlBTVZU0g.2GZOPO8Wap3rVOpm8e3192VlytNdGWH7x72`
+- Change onPremisesSamAccountName to `idp`
+- Change preferredName to `idp`
+- Save the changed file
+- Start oCIS
+- You now are able to lock back in again.
+
+Please have a look at [how to secure an oCIS instance]({{< ref "./deployment#secure-an-ocis-instance" >}}) since you seem to run it with default secrets.
+
+#### Reset shares
+Related: [#1626](https://github.com/owncloud/ocis/pull/1626)
+
+After upgrading oCIS from a previous version to oCIS 1.2.0 you will will not be able to use previous shares or create new shares.
+
+Implications:
+- manual action required
+- loss of shares (manual resharing is needed, files will not be lost)
+
+Migration steps:
+- Stop oCIS
+- Delete following file `/var/tmp/ocis/storage/shares.json`
+- Start oCIS
+- Recreate shares manually
+
+## ownCloud Infinite Scale 1.1.0 Technology Preview
+
+Version 1.1.0 is a hardening and patch release. It ships with the latest version of ownCloud Web and brings a couple of minor improvements. The minor version increase is needed due to non-backwards compatible changes in configuration. The documentation has been updated to reflect the changes. Please note that this version is still a Technology Preview and not suited for production use.
+
+The most prominent changes in ownCloud Infinite Scale 1.1.0 and ownCloud Web 1.0.1 comprise:
+
+- Performance and stability improvements for installations with multiple concurrent users
+- Simplified configuration by introducing the new environment variable OCIS_URL
+- Beta release of [ownCloud performance scripts](https://github.com/owncloud/cdperf)
+- Update ownCloud web to [v1.0.1](https://github.com/owncloud/web/releases/tag/v1.0.1)
+- Update reva to [v1.5.1](https://github.com/cs3org/reva/releases/tag/v1.5.1)
+
+You can also read the full [ownCloud Infinite Scale changelog](https://github.com/owncloud/ocis/releases/tag/v1.1.0) for further details on what has changed.
+
+## ownCloud Infinite Scale 1.0.0 Technology Preview
+
+We are pleased to announce the availability of ownCloud Infinite Scale 1.0.0 Technology Preview which is released as the first public version of the new Infinite Scale platform.
+
+### Microservice architecture
+
+ownCloud Infinite Scale is following the microservices architectural pattern. It is implemented as a set of microservices which are independent of each other. They are coupled with well-defined APIs. This architecture fosters a lot of benefits that we were aiming for with the new design for oCIS:
+
+- Every service is independent, comparably small and brings it's own webserver, backend/APIs and frontend components
+- Each service runs as a separate service on the system, increasing security and stability
+- Scalability:  High performance demands can be fulfilled by scaling and distributing of services
+- Testability: Each service can be tested on its own due to well-defined APIs and functionality
+- Protocol-driven development using protobuf
+- High-performance communication between services through gRPC
+- Multi-platform support powered by Golang - only minimal dependency on platform packages
+- Cloud-native deployment, update, monitoring, logging, tracing and orchestration strategies
+
+### Key figures
+
+- The all-new ownCloud Web frontend is shipped as part of the platform
+- OpenID Connect is the future-proof technology choice for authentication
+- An Identity Provider is bundled to ease deployment and operations. It can be replaced with an external OpenID IdP, if desired
+- Automatically built and fully maintained Docker containers are available
+- Flexible configuration through environment variables, config files or command-line flags
+- Database-less architecture - metadata and data are kept together in the storage as a single source of truth
+- Native storage capabilities are used where like native versioning and trashbin
+- Public APIs like WebDAV and OCS have been kept compatible with ownCloud 10
+- A secure and flexible framework to create extensions
+
+#### Supported platforms
+
+- Linux-amd64
+- Darwin-amd64
+- Experimental: Windows, ARM (e.g., Raspberry Pi, Termux on Android)
+
+#### Client support
+
+All official ownCloud Clients support the Infinite Scale server with the following versions:
+- Desktop >= 2.7
+- Android >= 2.15
+- iOS >= 1.2
+
+### Architecture components
+
+ownCloud Infinite Scale is built as a modular framework in which components can be scaled individually. It consists of
+
+- a user management service
+- a settings service
+- a frontend service
+- a storage backend service
+- a built-in IdP
+- an application gateway/proxy
+
+These components can be deployed in a multi-tier deployment architecture. See the [documentation]({{< ref "./" >}}) for an overview of the services.
+
+### Operation modes
+
+#### Standalone mode (with oCIS storage driver)
+
+In standalone mode oCIS uses its built-in orchestrator to start all necessary services. This allows you to run oCIS on a single node without any outside dependencies like docker-compose, kubernetes or even a webserver. It will start an OpenID IdP and create a self-signed certificate. You can start right away by navigating to <https://localhost:9200>.
+
+#### Single services scaleout
+
+oCIS allows you to scale individual services using well-known orchestration frameworks like docker-compose, dockerSwarm and kubernetes.
+
+#### Bridge mode with ownCloud 10 backend
+
+For the product transition phase, ownCloud Infinite Scale comes with an operation mode ("bridge mode") that allows a hybrid deployment, between both server generations to operate the new web frontend with ownCloud 10 and Infinite Scale in parallel. This setup allows the ownCloud Web frontend to operate with both server generations and provides the foundation to migrate users gradually to the new backend.
+
+**Requirements for the bridge mode**
+- ownCloud Server >= 10.6
+- [Open ID Connect](https://marketplace.owncloud.com/apps/openidconnect) is used for user authentication
+- The [Graph API](https://marketplace.owncloud.com/apps/graphapi) app is installed on ownCloud Server
+- The latest client versions are rolled-out to users (required for OpenID Connect support). See the [documentation](https://doc.owncloud.com/server/admin_manual/configuration/user/oidc/#owncloud-desktop-and-mobile-clients) for more information.
+
+See the [documentation]({{< ref "./deployment/bridge" >}}) on how to deploy Infinite Scale in bridge mode.
+
+{{< hint "warning" >}}
+**Technology Preview**
+
+ownCloud Infinite Scale is currently in Technology Preview. The bridge mode should only be used in non-production environments.
+{{< /hint >}}
+
+### What to expect?
+
+This is the first promoted public release of ownCloud Infinite Scale, released as "Technical Preview". Infinite Scale is not yet ready for production installations. Technical audiences will be able to get a good understanding of the potential of ownCloud's new platform.
+
+Version 1.0.0 comes with the base functionality for sync and share with a much higher performance-, stability- and security-level compared to all available platforms. Based on ten years of experience in enterprise sync and share and a long standing collaboration with the biggest global science organizations this new platform will exceed what content collaboration is today.
+
+### How to get started?
+
+One of the most important objectives for oCIS was to ease the setup of a working instance dramatically. Since oCIS is built with Google's powerful Go language it supports the single-file-deployment: Installing oCIS 1.0.0 is as easy as downloading a single file, applying execution permission to it and get started. No more fiddling around with complicated LAMP stacks.
+
+#### Deployment Options
+
+Given the architecture of oCIS, there are various deployment options based on the users requirements. In our experience setting up the LAMP stack for ownCloud 10 was difficult for many users. Therefore a big emphasis was put on easy yet functional deployment strategies.
+
+{{< tabs "deployments" >}}
+{{< tab "Single binary" >}}
+#### Delivery as single binary
+
+The single binary is the best option to test the new ownCloud Infinite Scale 1.0.0 Technical Preview release on a local machine. Follow these instructions to get the platform running in the most simple way:
+
+1. Download the binary
+
+    **Linux**
+    `curl https://download.owncloud.com/ocis/ocis/1.0.0/ocis-1.0.0-linux-amd64 -o ocis`
+
+    **MacOS**
+    `curl https://download.owncloud.com/ocis/ocis/1.0.0/ocis-1.0.0-darwin-amd64 -o ocis`
+
+2. Make it executable
+
+    `chmod +x ocis`
+
+3. Run it
+
+    `./ocis server`
+
+4. Navigate to <https://localhost:9200> and log in to ownCloud Web (admin:admin)
+
+Production environments will need a more sophisticated setup, see <{{< ref "./deployment" >}}> for more information.
+
+{{< /tab >}}
+{{< tab "Docker" >}}
+#### Containerized Setup
+
+For more sophisticated setups we recommend using one of our docker setup examples. See the [documentation](<{{< ref "./deployment/ocis_traefik" >}}>) for a setup with [Traefik](https://traefik.io/traefik/) as a reverse proxy which also includes automated SSL certificate provisioning using Letsencrypt tools.
+
+{{< /tab >}}
+{{< /tabs >}}
+
+### ownCloud Web Features
+{{< tabs "web-features" >}}
+{{< tab "Framework" >}}
+#### Framework
+- User avatars (compatible with oC 10 API)
+- Alerts for information/errors
+- Notifications (bell icon, compatible with oC 10 API)
+- Extension points
+- Available extensions
+  - Media Viewer (images and videos)
+  - Draw.io
+
+{{< /tab >}}
+{{< tab "Files" >}}
+#### Files
+- Listing and browsing the hierarchy
+- Sorting by columns (name/size/updated)
+- Breadcrumb
+- Thumbnail previews for images (compatible with oC 10 API and Thumbnails service API)
+- Upload (file/folder), using the TUS protocol for reliable uploads
+- Download (file)
+- Rename
+- Copy
+- Move
+- Delete
+- Indicators for resources shared with people (including subfiles and subfolders)
+- Indicators for resources shared by link (including subfiles and subfolders)
+- Quick actions
+  - Add people
+  - Create public link on-the-fly and copy it to the clipboard
+- Favorites (view + add/remove)
+- Shared with me (view)
+- Shared with others (view)
+- Deleted files
+- Versions (list/restore/download/delete)
+- File/folder search
+
+{{< /tab >}}
+{{< tab "Sharing" >}}
+#### Sharing with People (user/group shares)
+- Adding people to a resource
+  - Adding multiple people at once (users and groups)
+  - Autocomplete search to find users
+  - Roles: Viewer / Editor (folder) / Advanced permissions (granular permissions)
+  - Expiration date
+- Listing people who have access to a resource
+  - People can be listed when a resource is directly shared and when it's indirectly shared via a parent folder
+  - When listing people of an indirectly shared resource, there is a "via" indicator that guides to the directly shared parent
+  - Every person can recognize the owner of a resource
+  - Every person can recognize their role
+  - The owner of a resource can recognize persons that added other people (reshare indicator)
+  - Editing persons
+  - Removing persons
+
+{{< /tab >}}
+{{< tab "Links" >}}
+#### Sharing with Links
+- Private links (copy)
+- Public links
+  - Adding public links on single files and folders
+    - Roles: Viewer / Editor (folder) / Contributor (folder) / Uploader (folder)
+    - Password-protection
+    - Expiration date
+  - Listing public links
+    - Public links can be listed when a resource is directly shared and when it's indirectly shared via a parent folder
+    - When listing public links of an indirectly shared resource, there is a "via" indicator that guides to the directly shared parent
+    - Copying existing public links
+    - Editing existing public links
+    - Removing existing public links
+  - Viewing public links
+
+{{< /tab >}}
+{{< tab "User Profile" >}}
+#### User Profile
+- Display basic profile information (user name, display name, e-mail, group memberships)
+- "Edit" button guides to ownCloud 10 user settings (when used with oC 10)
+
+{{< /tab >}}
+{{< tab "User Settings" >}}
+
+##### Basic user settings
+- Language of the web interface
+
+{{< /tab >}}
+{{< /tabs >}}
+
+### oCIS Backend Features
+
+{{< tabs "backend-features" >}}
+{{< tab "Storage" >}}
+
+#### Storage
+
+The default oCIS storage driver deconstructs a filesystem to be able to efficiently look up files by fileid as well as path. It stores all folders and files by a uuid and persists share and other metadata using extended attributes. This allows using the linux VFS cache using stat syscalls instead of a database or key/value store. The driver implements trash, versions and sharing. It not only serves as the current default storage driver, but also as a blueprint for future storage driver implementations.
+
+{{< /tab >}}
+{{< tab "IDM" >}}
+#### User and group management
+- Functionality available via API and frontend ("Accounts" extension)
+- User listing (API/FE)
+- User creation (API/FE)
+- User deletion (API/FE)
+- User activation/blocking (API/FE)
+- Role assignment for users (API/FE)
+- User editing (API)
+- Multi-select in the frontend (delete & block/activate)
+- Group creation (API)
+- Add/remove users to/from groups (API)
+- Group deletion (API)
+- Create/read/update/delete users and groups (CLI)
+
+{{< /tab >}}
+{{< tab "Settings" >}}
+
+##### Settings
+
+The settings service provides APIs for other services for registering a set of settings as `Bundle`. It also provides a pluggable extension for ownCloud Web which provides dynamically built web forms, so that users can customize their own settings. Some well known settings are directly used by ownCloud Web for adapted user experience, e.g. the UI language. Services can query the users' chosen settings for customized backend and frontend operations as needed.
+
+##### Roles & Permissions System
+
+Infinite Scale follows a role-based access control model. Based on permissions for actions which are provided by the system and by extensions, roles can be composed. Ultimately, these roles can be assigned to users to define what users are permitted to do. This model allows a segregation of duties for administration and allows granular control of how different types of users (e.g., Guests) can use the platform.
+
+- Currently available permissions: Manage accounts (gives access to the internal user management), manage roles (allows assigning roles to users)
+- The current roles are exemplary default roles which are used for demonstration purposes
+  - "Admin": Has the permissions to "manage accounts" and to "manage roles"
+  - "User": Does not have any dedicated permission
+  - "Guest": Does not have any dedicated permission
+- Currently a user can only have one role
+- Users with the role "Admin" can assign/unassign roles to/from other users (as part of the permission to "manage roles")
+
+{{< /tab >}}
+{{< tab "APIs" >}}
+#### APIs
+
+- WebDAV
+- OCS
+
+{{< /tab >}}
+{{< /tabs >}}
+
+### Known issues
+
+- There are feature differences depending on the operation mode, e.g., no user management with ownCloud Web and oC 10 backend
+- Public links do not yet respect the given role (a recipient has full permissions no matter which role has been set)
+- Resharing does not yet work as expected
+  - Share recipients can create public links with higher permissions than they originally had
+  - Share recipients can add other people but they will not be able to access the data
+- Sharing indicators in the file list will only be shown after opening the right sidebar for a resource
+- Users can't change their password yet
+- Folder sizes will not be calculated
+- Cleanups are not yet available (e.g., shares of a deleted user will not be removed)
+- Sharing from the desktop client does not work yet
+- There are no notifications yet
+- There can be issues with access tokens not being refreshed correctly, leading to interruptions, e.g., during uploads
+- Deleting non-empty folders from the trash bin does not work
+- Emptying the whole trash bin does not work
+
+For feedback and bug reports, please use the [public issue tracker](https://github.com/owncloud/ocis/issues).
diff --git a/extensions/audit/pkg/config/config.go b/extensions/audit/pkg/config/config.go
index a0f3033f847..cdb71c79438 100644
--- a/extensions/audit/pkg/config/config.go
+++ b/extensions/audit/pkg/config/config.go
@@ -23,15 +23,15 @@ type Config struct {
 
 // Events combines the configuration options for the event bus.
 type Events struct {
-	Endpoint      string `yaml:"endpoint" env:"AUDIT_EVENTS_ENDPOINT" desc:"The address of the streaming service."`
-	Cluster       string `yaml:"cluster" env:"AUDIT_EVENTS_CLUSTER" desc:"The clusterID of the streaming service. Mandatory when using nats."`
-	ConsumerGroup string `yaml:"group" env:"AUDIT_EVENTS_GROUP" desc:"The consumergroup of the service. One group will only get one copy of an event."`
+	Endpoint      string `yaml:"endpoint" env:"AUDIT_EVENTS_ENDPOINT" desc:"the address of the streaming service"`
+	Cluster       string `yaml:"cluster" env:"AUDIT_EVENTS_CLUSTER" desc:"the clusterID of the streaming service. Mandatory when using nats"`
+	ConsumerGroup string `yaml:"group" env:"AUDIT_EVENTS_GROUP" desc:"the customergroup of the service. One group will only get one copy of an event"`
 }
 
 // Auditlog holds audit log information
 type Auditlog struct {
-	LogToConsole bool   `yaml:"log_to_console" env:"AUDIT_LOG_TO_CONSOLE" desc:"Logs to Stdout if true."`
-	LogToFile    bool   `yaml:"log_to_file" env:"AUDIT_LOG_TO_FILE" desc:"Logs to file if true."`
-	FilePath     string `yaml:"filepath" env:"AUDIT_FILEPATH" desc:"Filepath to the logfile. Mandatory if LogToFile is true."`
-	Format       string `yaml:"format" env:"AUDIT_FORMAT" desc:"Log format. using json is advised."`
+	LogToConsole bool   `yaml:"log_to_console" env:"AUDIT_LOG_TO_CONSOLE" desc:"logs to Stdout if true"`
+	LogToFile    bool   `yaml:"log_to_file" env:"AUDIT_LOG_TO_FILE" desc:"logs to file if true"`
+	FilePath     string `yaml:"filepath" env:"AUDIT_FILEPATH" desc:"filepath to the logfile. Mandatory if LogToFile is true"`
+	Format       string `yaml:"format" env:"AUDIT_FORMAT" desc:"log format. using json is advised"`
 }
diff --git a/extensions/auth-basic/pkg/config/config.go b/extensions/auth-basic/pkg/config/config.go
index b63d30f3216..521394f9963 100644
--- a/extensions/auth-basic/pkg/config/config.go
+++ b/extensions/auth-basic/pkg/config/config.go
@@ -109,8 +109,8 @@ type OwnCloudSQLProvider struct {
 	DBHost           string `yaml:"db_host" env:"AUTH_BASIC_OWNCLOUDSQL_DB_HOST" desc:"Hostname of the database server."`
 	DBPort           int    `yaml:"db_port" env:"AUTH_BASIC_OWNCLOUDSQL_DB_PORT" desc:"Network port to use for the database connection."`
 	DBName           string `yaml:"db_name" env:"AUTH_BASIC_OWNCLOUDSQL_DB_NAME" desc:"Name of the owncloud database."`
-	IDP              string `yaml:"idp" env:"AUTH_BASIC_OWNCLOUDSQL_IDP" desc:"The identity provider value to set in the userids of the CS3 user objects for users returned by this user provider."`
+	IDP              string `yaml:"idp" env:"AUTH_BASIC_OWNCLOUDSQL_IDP" desc:"The identity provider value to set in the userids of the CS3 user objects for users returned by this user provider.`
 	Nobody           int64  `yaml:"nobody" env:"AUTH_BASIC_OWNCLOUDSQL_NOBODY"` // TODO what is this?
 	JoinUsername     bool   `yaml:"join_username" env:"AUTH_BASIC_OWNCLOUDSQL_JOIN_USERNAME" desc:"Join the user properties table to read usernames"`
-	JoinOwnCloudUUID bool   `yaml:"join_owncloud_uuid" env:"AUTH_BASIC_OWNCLOUDSQL_JOIN_OWNCLOUD_UUID" desc:"Join the user properties table to read user ids (boolean)."`
+	JoinOwnCloudUUID bool   `yaml:"join_owncloud_uuid" env:"AUTH_BASIC_OWNCLOUDSQL_JOIN_OWNCLOUD_UUID" desc="Join the user properties table to read user ids (boolean)."`
 }
diff --git a/extensions/groups/pkg/config/config.go b/extensions/groups/pkg/config/config.go
index 64873bc109b..04e326536f1 100644
--- a/extensions/groups/pkg/config/config.go
+++ b/extensions/groups/pkg/config/config.go
@@ -92,7 +92,7 @@ type LDAPUserSchema struct {
 }
 
 type LDAPGroupSchema struct {
-	ID              string `yaml:"id" env:"LDAP_GROUP_SCHEMA_ID;GROUPS_LDAP_GROUP_SCHEMA_ID" desc:"LDAP Attribute to use as the unique id for groups. This should be a stable globally unique id (e.g. a UUID)."`
+	ID              string `yaml:"id" env:"LDAP_GROUP_SCHEMA_ID;GROUPS_LDAP_GROUP_SCHEMA_ID" desc:"LDAP Attribute to use as the unique id for groups. This should be a stable globally unique id (e.g. a UUID).`
 	IDIsOctetString bool   `yaml:"id_is_octet_string" env:"LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING;GROUPS_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING" desc:"Set this to true if the defined 'id' attribute for groups is of the 'OCTETSTRING' syntax. This is e.g. required when using the 'objectGUID' attribute of Active Directory for the group ids."`
 	Mail            string `yaml:"mail" env:"LDAP_GROUP_SCHEMA_MAIL;GROUPS_LDAP_GROUP_SCHEMA_MAIL" desc:"LDAP Attribute to use for the email address of groups (can be empty)."`
 	DisplayName     string `yaml:"display_name" env:"LDAP_GROUP_SCHEMA_DISPLAYNAME;GROUPS_LDAP_GROUP_SCHEMA_DISPLAYNAME" desc:"LDAP Attribute to use for the displayname of groups (often the same as groupname attribute)"`
@@ -109,7 +109,7 @@ type OwnCloudSQLDriver struct {
 	IDP                string `yaml:"idp" env:"GROUPS_OWNCLOUDSQL_IDP" desc:"The identity provider value to set in the userids of the CS3 user objects for users returned by this user provider."`
 	Nobody             int64  `yaml:"nobody" env:"GROUPS_OWNCLOUDSQL_NOBODY"` // TODO what is this?
 	JoinUsername       bool   `yaml:"join_username" env:"GROUPS_OWNCLOUDSQL_JOIN_USERNAME" desc:"Join the user properties table to read usernames (boolean)"`
-	JoinOwnCloudUUID   bool   `yaml:"join_owncloud_uuid" env:"GROUPS_OWNCLOUDSQL_JOIN_OWNCLOUD_UUID" desc:"Join the user properties table to read user ids (boolean)."`
+	JoinOwnCloudUUID   bool   `yaml:"join_owncloud_uuid" env:"GROUPS_OWNCLOUDSQL_JOIN_OWNCLOUD_UUID" desc="Join the user properties table to read user ids (boolean)."`
 	EnableMedialSearch bool   `yaml:"enable_medial_search" env:"GROUPS_OWNCLOUDSQL_ENABLE_MEDIAL_SEARCH" desc:"Allow 'medial search' when searching for users instead of just doing a prefix search. (Allows finding 'Alice' when searching for 'lic'.)"`
 }
 
diff --git a/extensions/search/pkg/search/index/index.go b/extensions/search/pkg/search/index/index.go
index 07797f7d4e8..bc06ba4665c 100644
--- a/extensions/search/pkg/search/index/index.go
+++ b/extensions/search/pkg/search/index/index.go
@@ -165,16 +165,15 @@ func (i *Index) Purge(id *sprovider.ResourceId) error {
 }
 
 // Move update the path of an entry and all its children
-func (i *Index) Move(id *sprovider.ResourceId, fullPath string) error {
-	bleveId := idToBleveId(id)
-	doc, err := i.getEntity(bleveId)
+func (i *Index) Move(ri *sprovider.ResourceInfo, fullPath string) error {
+	doc, err := i.getEntity(idToBleveId(ri.Id))
 	if err != nil {
 		return err
 	}
 	oldName := doc.Path
 	newName := utils.MakeRelativePath(fullPath)
 
-	doc, err = i.updateEntity(bleveId, func(doc *indexDocument) {
+	doc, err = i.updateEntity(idToBleveId(ri.Id), func(doc *indexDocument) {
 		doc.Path = newName
 		doc.Name = path.Base(newName)
 	})
@@ -212,7 +211,7 @@ func (i *Index) Search(ctx context.Context, req *searchsvc.SearchIndexRequest) (
 	deletedQuery := bleve.NewBoolFieldQuery(false)
 	deletedQuery.SetField("Deleted")
 	query := bleve.NewConjunctionQuery(
-		bleve.NewQueryStringQuery(req.Query),
+		bleve.NewQueryStringQuery("Name:"+strings.ToLower(req.Query)),
 		deletedQuery, // Skip documents that have been marked as deleted
 		bleve.NewQueryStringQuery("RootID:"+req.Ref.ResourceId.StorageId+"!"+req.Ref.ResourceId.OpaqueId), // Limit search to the space
 		bleve.NewQueryStringQuery("Path:"+utils.MakeRelativePath(path.Join(req.Ref.Path, "/"))+"*"),       // Limit search to this directory in the space
diff --git a/extensions/search/pkg/search/mocks/IndexClient.go b/extensions/search/pkg/search/mocks/IndexClient.go
index d2286517a43..f43f9f3a986 100644
--- a/extensions/search/pkg/search/mocks/IndexClient.go
+++ b/extensions/search/pkg/search/mocks/IndexClient.go
@@ -30,13 +30,13 @@ func (_m *IndexClient) Add(ref *providerv1beta1.Reference, ri *providerv1beta1.R
 	return r0
 }
 
-// Delete provides a mock function with given fields: id
-func (_m *IndexClient) Delete(id *providerv1beta1.ResourceId) error {
-	ret := _m.Called(id)
+// Delete provides a mock function with given fields: ri
+func (_m *IndexClient) Delete(ri *providerv1beta1.ResourceId) error {
+	ret := _m.Called(ri)
 
 	var r0 error
 	if rf, ok := ret.Get(0).(func(*providerv1beta1.ResourceId) error); ok {
-		r0 = rf(id)
+		r0 = rf(ri)
 	} else {
 		r0 = ret.Error(0)
 	}
@@ -65,13 +65,13 @@ func (_m *IndexClient) DocCount() (uint64, error) {
 	return r0, r1
 }
 
-// Move provides a mock function with given fields: id, fullPath
-func (_m *IndexClient) Move(id *providerv1beta1.ResourceId, fullPath string) error {
-	ret := _m.Called(id, fullPath)
+// Move provides a mock function with given fields: ri, path
+func (_m *IndexClient) Move(ri *providerv1beta1.ResourceInfo, path string) error {
+	ret := _m.Called(ri, path)
 
 	var r0 error
-	if rf, ok := ret.Get(0).(func(*providerv1beta1.ResourceId, string) error); ok {
-		r0 = rf(id, fullPath)
+	if rf, ok := ret.Get(0).(func(*providerv1beta1.ResourceInfo, string) error); ok {
+		r0 = rf(ri, path)
 	} else {
 		r0 = ret.Error(0)
 	}
@@ -79,13 +79,13 @@ func (_m *IndexClient) Move(id *providerv1beta1.ResourceId, fullPath string) err
 	return r0
 }
 
-// Purge provides a mock function with given fields: id
-func (_m *IndexClient) Purge(id *providerv1beta1.ResourceId) error {
-	ret := _m.Called(id)
+// Purge provides a mock function with given fields: ri
+func (_m *IndexClient) Purge(ri *providerv1beta1.ResourceId) error {
+	ret := _m.Called(ri)
 
 	var r0 error
 	if rf, ok := ret.Get(0).(func(*providerv1beta1.ResourceId) error); ok {
-		r0 = rf(id)
+		r0 = rf(ri)
 	} else {
 		r0 = ret.Error(0)
 	}
@@ -93,13 +93,13 @@ func (_m *IndexClient) Purge(id *providerv1beta1.ResourceId) error {
 	return r0
 }
 
-// Restore provides a mock function with given fields: id
-func (_m *IndexClient) Restore(id *providerv1beta1.ResourceId) error {
-	ret := _m.Called(id)
+// Restore provides a mock function with given fields: ri
+func (_m *IndexClient) Restore(ri *providerv1beta1.ResourceId) error {
+	ret := _m.Called(ri)
 
 	var r0 error
 	if rf, ok := ret.Get(0).(func(*providerv1beta1.ResourceId) error); ok {
-		r0 = rf(id)
+		r0 = rf(ri)
 	} else {
 		r0 = ret.Error(0)
 	}
diff --git a/extensions/search/pkg/search/provider/events.go b/extensions/search/pkg/search/provider/events.go
index 641c3010a99..d243c523778 100644
--- a/extensions/search/pkg/search/provider/events.go
+++ b/extensions/search/pkg/search/provider/events.go
@@ -58,11 +58,11 @@ func (p *Provider) handleEvent(ev interface{}) {
 
 		statRes, err := p.statResource(ref, owner)
 		if err != nil {
-			p.logger.Error().Err(err).Msg("failed to stat the moved resource")
+			p.logger.Error().Err(err).Msg("failed to stat the changed resource")
 			return
 		}
 		if statRes.Status.Code != rpc.Code_CODE_OK {
-			p.logger.Error().Interface("statRes", statRes).Msg("failed to stat the moved resource")
+			p.logger.Error().Interface("statRes", statRes).Msg("failed to stat the changed resource")
 			return
 		}
 
@@ -76,9 +76,9 @@ func (p *Provider) handleEvent(ev interface{}) {
 			return
 		}
 
-		err = p.indexClient.Move(statRes.Info.Id, gpRes.Path)
+		err = p.indexClient.Move(statRes.Info, gpRes.Path)
 		if err != nil {
-			p.logger.Error().Err(err).Msg("failed to move the changed resource in the index")
+			p.logger.Error().Err(err).Msg("failed to restore the changed resource in the index")
 		}
 		return
 	case events.ContainerCreated:
@@ -126,6 +126,7 @@ func (p *Provider) statResource(ref *provider.Reference, owner *user.User) (*pro
 		return nil, err
 	}
 
+	// Stat changed resource resource
 	return p.gwClient.Stat(ownerCtx, &provider.StatRequest{Ref: ref})
 }
 
@@ -135,6 +136,7 @@ func (p *Provider) getPath(id *provider.ResourceId, owner *user.User) (*provider
 		return nil, err
 	}
 
+	// Stat changed resource resource
 	return p.gwClient.GetPath(ownerCtx, &provider.GetPathRequest{ResourceId: id})
 }
 
diff --git a/extensions/search/pkg/search/provider/searchprovider.go b/extensions/search/pkg/search/provider/searchprovider.go
index 067d9665eba..94040563548 100644
--- a/extensions/search/pkg/search/provider/searchprovider.go
+++ b/extensions/search/pkg/search/provider/searchprovider.go
@@ -125,7 +125,7 @@ func (p *Provider) Search(ctx context.Context, req *searchsvc.SearchRequest) (*s
 
 		_, rootStorageID := storagespace.SplitStorageID(space.Root.StorageId)
 		res, err := p.indexClient.Search(ctx, &searchsvc.SearchIndexRequest{
-			Query: formatQuery(req.Query),
+			Query: req.Query,
 			Ref: &searchmsg.Reference{
 				ResourceId: &searchmsg.ResourceID{
 					StorageId: space.Root.StorageId,
@@ -217,18 +217,3 @@ func (p *Provider) logDocCount() {
 	}
 	p.logger.Debug().Interface("count", c).Msg("new document count")
 }
-
-func formatQuery(q string) string {
-	query := q
-	fields := []string{"RootID", "Path", "ID", "Name", "Size", "Mtime", "MimeType", "Type"}
-	for _, field := range fields {
-		query = strings.ReplaceAll(query, strings.ToLower(field)+":", field+":")
-	}
-
-	if strings.Contains(query, ":") {
-		return query // Sophisticated field based search
-	}
-
-	// this is a basic filename search
-	return "Name:*" + strings.ReplaceAll(strings.ToLower(query), " ", `\ `) + "*"
-}
diff --git a/extensions/search/pkg/search/search.go b/extensions/search/pkg/search/search.go
index 0a8bedd2662..12df203422e 100644
--- a/extensions/search/pkg/search/search.go
+++ b/extensions/search/pkg/search/search.go
@@ -38,9 +38,9 @@ type ProviderClient interface {
 type IndexClient interface {
 	Search(ctx context.Context, req *searchsvc.SearchIndexRequest) (*searchsvc.SearchIndexResponse, error)
 	Add(ref *providerv1beta1.Reference, ri *providerv1beta1.ResourceInfo) error
-	Move(id *providerv1beta1.ResourceId, fullPath string) error
-	Delete(id *providerv1beta1.ResourceId) error
-	Restore(id *providerv1beta1.ResourceId) error
-	Purge(id *providerv1beta1.ResourceId) error
+	Move(ri *providerv1beta1.ResourceInfo, path string) error
+	Delete(ri *providerv1beta1.ResourceId) error
+	Restore(ri *providerv1beta1.ResourceId) error
+	Purge(ri *providerv1beta1.ResourceId) error
 	DocCount() (uint64, error)
 }
diff --git a/extensions/storage-shares/pkg/config/config.go b/extensions/storage-shares/pkg/config/config.go
index b0416316c2a..cb3258648d3 100644
--- a/extensions/storage-shares/pkg/config/config.go
+++ b/extensions/storage-shares/pkg/config/config.go
@@ -20,7 +20,6 @@ type Config struct {
 
 	SkipUserGroupsInToken bool `yaml:"skip_user_groups_in_token" env:"STORAGE_SHARES_SKIP_USER_GROUPS_IN_TOKEN"`
 
-	MountID                string `yaml:"mount_id" env:"STORAGE_SHARES_MOUNT_ID"`
 	ReadOnly               bool   `yaml:"readonly" env:"STORAGE_SHARES_READ_ONLY"`
 	SharesProviderEndpoint string `yaml:"user_share_provider_endpoint" env:"STORAGE_SHARES_USER_SHARE_PROVIDER_ENDPOINT"`
 
diff --git a/extensions/storage-shares/pkg/config/defaults/defaultconfig.go b/extensions/storage-shares/pkg/config/defaults/defaultconfig.go
index 9569e344010..f9842e791dd 100644
--- a/extensions/storage-shares/pkg/config/defaults/defaultconfig.go
+++ b/extensions/storage-shares/pkg/config/defaults/defaultconfig.go
@@ -30,7 +30,6 @@ func DefaultConfig() *config.Config {
 		Reva: &config.Reva{
 			Address: "127.0.0.1:9142",
 		},
-		MountID:                "7639e57c-4433-4a12-8201-722fd0009154",
 		ReadOnly:               false,
 		SharesProviderEndpoint: "localhost:9150",
 	}
diff --git a/extensions/storage-shares/pkg/revaconfig/config.go b/extensions/storage-shares/pkg/revaconfig/config.go
index c0155462217..4e69088fec1 100644
--- a/extensions/storage-shares/pkg/revaconfig/config.go
+++ b/extensions/storage-shares/pkg/revaconfig/config.go
@@ -24,7 +24,6 @@ func StorageSharesConfigFromStruct(cfg *config.Config) map[string]interface{} {
 			"services": map[string]interface{}{
 				"sharesstorageprovider": map[string]interface{}{
 					"usershareprovidersvc": cfg.SharesProviderEndpoint,
-					"mount_id":             cfg.MountID,
 				},
 			},
 		},
diff --git a/extensions/users/pkg/config/config.go b/extensions/users/pkg/config/config.go
index 584f27d4ef6..b91d5ca9d76 100644
--- a/extensions/users/pkg/config/config.go
+++ b/extensions/users/pkg/config/config.go
@@ -110,10 +110,10 @@ type OwnCloudSQLDriver struct {
 	DBHost             string `yaml:"db_host" env:"USERS_OWNCLOUDSQL_DB_HOST" desc:"Hostname of the database server."`
 	DBPort             int    `yaml:"db_port" env:"USERS_OWNCLOUDSQL_DB_PORT" desc:"Network port to use for the database connection."`
 	DBName             string `yaml:"db_name" env:"USERS_OWNCLOUDSQL_DB_NAME" desc:"Name of the owncloud database."`
-	IDP                string `yaml:"idp" env:"USERS_OWNCLOUDSQL_IDP" desc:"The identity provider value to set in the userids of the CS3 user objects for users returned by this user provider."`
+	IDP                string `yaml:"idp" env:"USERS_OWNCLOUDSQL_IDP" desc:"The identity provider value to set in the userids of the CS3 user objects for users returned by this user provider.`
 	Nobody             int64  `yaml:"nobody" env:"USERS_OWNCLOUDSQL_NOBODY"` // TODO what is this?
 	JoinUsername       bool   `yaml:"join_username" env:"USERS_OWNCLOUDSQL_JOIN_USERNAME" desc:"Join the user properties table to read usernames"`
-	JoinOwnCloudUUID   bool   `yaml:"join_owncloud_uuid" env:"USERS_OWNCLOUDSQL_JOIN_OWNCLOUD_UUID" desc:"Join the user properties table to read user ids (boolean)."`
+	JoinOwnCloudUUID   bool   `yaml:"join_owncloud_uuid" env:"USERS_OWNCLOUDSQL_JOIN_OWNCLOUD_UUID" desc="Join the user properties table to read user ids (boolean)."`
 	EnableMedialSearch bool   `yaml:"enable_medial_search" env:"USERS_OWNCLOUDSQL_ENABLE_MEDIAL_SEARCH" desc:"Allow 'medial search' when searching for users instead of just doing a prefix search. (Allows finding 'Alice' when searching for 'lic'.)"`
 }
 type RESTProvider struct {
diff --git a/extensions/web/Makefile b/extensions/web/Makefile
index 2dfbf0ea8c6..8682c057f2a 100644
--- a/extensions/web/Makefile
+++ b/extensions/web/Makefile
@@ -1,6 +1,6 @@
 SHELL := bash
 NAME := web
-WEB_ASSETS_VERSION = v5.5.0-rc.5
+WEB_ASSETS_VERSION = v5.5.0-rc.6
 
 include ../../.make/recursion.mk
 
diff --git a/extensions/webdav/pkg/dav/requests/thumbnail.go b/extensions/webdav/pkg/dav/requests/thumbnail.go
index 134034cd3af..c34da246661 100644
--- a/extensions/webdav/pkg/dav/requests/thumbnail.go
+++ b/extensions/webdav/pkg/dav/requests/thumbnail.go
@@ -1,6 +1,7 @@
 package requests
 
 import (
+	"errors"
 	"fmt"
 	"net/http"
 	"net/url"
@@ -42,6 +43,9 @@ func ParseThumbnailRequest(r *http.Request) (*ThumbnailRequest, error) {
 	ctx := r.Context()
 
 	fp := ctx.Value(constants.ContextKeyPath).(string)
+	if fp == "" {
+		return nil, errors.New("invalid file path")
+	}
 
 	id := ""
 	v := ctx.Value(constants.ContextKeyID)
diff --git a/extensions/webdav/pkg/service/v0/search.go b/extensions/webdav/pkg/service/v0/search.go
index 817f401a140..e90382984fa 100644
--- a/extensions/webdav/pkg/service/v0/search.go
+++ b/extensions/webdav/pkg/service/v0/search.go
@@ -9,7 +9,6 @@ import (
 	"strconv"
 	"time"
 
-	provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
 	revactx "github.com/cs3org/reva/v2/pkg/ctx"
 	"github.com/owncloud/ocis/v2/extensions/webdav/pkg/net"
 	"github.com/owncloud/ocis/v2/extensions/webdav/pkg/prop"
@@ -44,7 +43,7 @@ func (g Webdav) Search(w http.ResponseWriter, r *http.Request) {
 	ctx := revactx.ContextSetToken(r.Context(), t)
 	ctx = metadata.Set(ctx, revactx.TokenHeader, t)
 	rsp, err := g.searchClient.Search(ctx, &searchsvc.SearchRequest{
-		Query: rep.SearchFiles.Search.Pattern,
+		Query: "*" + rep.SearchFiles.Search.Pattern + "*",
 	})
 	if err != nil {
 		e := merrors.Parse(err.Error())
@@ -129,15 +128,9 @@ func matchToPropResponse(ctx context.Context, match *searchmsg.Match) (*propfind
 	propstatOK.Prop = append(propstatOK.Prop, prop.Escaped("d:getcontenttype", match.Entity.MimeType))
 
 	size := strconv.FormatUint(match.Entity.Size, 10)
-	if match.Entity.Type == uint64(provider.ResourceType_RESOURCE_TYPE_CONTAINER) {
-		propstatOK.Prop = append(propstatOK.Prop, prop.Raw("d:resourcetype", "<d:collection/>"))
-		propstatOK.Prop = append(propstatOK.Prop, prop.Escaped("oc:size", size))
-	} else {
-		propstatOK.Prop = append(propstatOK.Prop,
-			prop.Escaped("d:resourcetype", ""),
-			prop.Escaped("d:getcontentlength", size),
-		)
-	}
+	propstatOK.Prop = append(propstatOK.Prop, prop.Escaped("oc:size", size))
+	propstatOK.Prop = append(propstatOK.Prop, prop.Escaped("d:getcontentlength", size))
+
 	// TODO find name for score property
 	score := strconv.FormatFloat(float64(match.Score), 'f', -1, 64)
 	propstatOK.Prop = append(propstatOK.Prop, prop.Escaped("oc:score", score))
diff --git a/extensions/webdav/pkg/service/v0/service.go b/extensions/webdav/pkg/service/v0/service.go
index a914169d93e..0b2bd0bb931 100644
--- a/extensions/webdav/pkg/service/v0/service.go
+++ b/extensions/webdav/pkg/service/v0/service.go
@@ -79,14 +79,10 @@ func NewService(opts ...Option) (Service, error) {
 		r.Group(func(r chi.Router) {
 			r.Use(svc.DavUserContext())
 
-			r.Get("/remote.php/dav/spaces/{id}", svc.SpacesThumbnail)
 			r.Get("/remote.php/dav/spaces/{id}/*", svc.SpacesThumbnail)
-			r.Get("/dav/spaces/{id}", svc.SpacesThumbnail)
 			r.Get("/dav/spaces/{id}/*", svc.SpacesThumbnail)
 
-			r.Get("/remote.php/dav/files/{id}", svc.Thumbnail)
 			r.Get("/remote.php/dav/files/{id}/*", svc.Thumbnail)
-			r.Get("/dav/files/{id}", svc.Thumbnail)
 			r.Get("/dav/files/{id}/*", svc.Thumbnail)
 		})
 
@@ -155,12 +151,11 @@ func (g Webdav) DavUserContext() func(next http.Handler) http.Handler {
 			}
 
 			if id != "" {
-				filePath = strings.TrimPrefix(filePath, path.Join("/remote.php/dav/spaces", id))
-				filePath = strings.TrimPrefix(filePath, path.Join("/dav/spaces", id))
+				filePath = strings.TrimPrefix(filePath, path.Join("/remote.php/dav/spaces", id)+"/")
+				filePath = strings.TrimPrefix(filePath, path.Join("/dav/spaces", id)+"/")
 
-				filePath = strings.TrimPrefix(filePath, path.Join("/remote.php/dav/files", id))
-				filePath = strings.TrimPrefix(filePath, path.Join("/dav/files", id))
-				filePath = strings.TrimPrefix(filePath, "/")
+				filePath = strings.TrimPrefix(filePath, path.Join("/remote.php/dav/files", id)+"/")
+				filePath = strings.TrimPrefix(filePath, path.Join("/dav/files", id)+"/")
 			}
 
 			ctx = context.WithValue(ctx, constants.ContextKeyPath, filePath)
diff --git a/go.mod b/go.mod
index bfcf4811abf..e435a5c7db9 100644
--- a/go.mod
+++ b/go.mod
@@ -8,7 +8,7 @@ require (
 	github.com/ReneKroon/ttlcache/v2 v2.11.0
 	github.com/blevesearch/bleve/v2 v2.3.2
 	github.com/blevesearch/bleve_index_api v1.0.1
-	github.com/coreos/go-oidc/v3 v3.2.0
+	github.com/coreos/go-oidc/v3 v3.1.0
 	github.com/cs3org/go-cs3apis v0.0.0-20220412090512-93c5918b4bde
 	github.com/cs3org/reva/v2 v2.3.2-0.20220511140414-9205e8486b72
 	github.com/disintegration/imaging v1.6.2
diff --git a/go.sum b/go.sum
index 94597b17de9..9945cd3941a 100644
--- a/go.sum
+++ b/go.sum
@@ -267,8 +267,8 @@ github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc
 github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
 github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk=
 github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
-github.com/coreos/go-oidc/v3 v3.2.0 h1:2eR2MGR7thBXSQ2YbODlF0fcmgtliLCfr9iX6RW11fc=
-github.com/coreos/go-oidc/v3 v3.2.0/go.mod h1:rEJ/idjfUyfkBit1eI1fvyr+64/g9dcKpAm8MJMesvo=
+github.com/coreos/go-oidc/v3 v3.1.0 h1:6avEvcdvTa1qYsOZ6I5PRkSYHzpTNWgKYmaJfaYbrRw=
+github.com/coreos/go-oidc/v3 v3.1.0/go.mod h1:rEJ/idjfUyfkBit1eI1fvyr+64/g9dcKpAm8MJMesvo=
 github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
 github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
 github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=


Test patch:
diff --git a/extensions/search/pkg/search/index/index_test.go b/extensions/search/pkg/search/index/index_test.go
index 582df6f4f67..7c46c64b227 100644
--- a/extensions/search/pkg/search/index/index_test.go
+++ b/extensions/search/pkg/search/index/index_test.go
@@ -24,9 +24,25 @@ var _ = Describe("Index", func() {
 			StorageId: "storageid",
 			OpaqueId:  "rootopaqueid",
 		}
-		filename  string
-		ref       *sprovider.Reference
-		ri        *sprovider.ResourceInfo
+		ref = &sprovider.Reference{
+			ResourceId: rootId,
+			Path:       "./foo.pdf",
+		}
+		ri = &sprovider.ResourceInfo{
+			Id: &sprovider.ResourceId{
+				StorageId: "storageid",
+				OpaqueId:  "opaqueid",
+			},
+			ParentId: &sprovider.ResourceId{
+				StorageId: "storageid",
+				OpaqueId:  "someopaqueid",
+			},
+			Path:     "Foo.pdf",
+			Size:     12345,
+			Type:     sprovider.ResourceType_RESOURCE_TYPE_FILE,
+			MimeType: "application/pdf",
+			Mtime:    &typesv1beta1.Timestamp{Seconds: 4000},
+		}
 		parentRef = &sprovider.Reference{
 			ResourceId: rootId,
 			Path:       "./my/sudbir",
@@ -60,7 +76,7 @@ var _ = Describe("Index", func() {
 			Mtime: &typesv1beta1.Timestamp{Seconds: 4000},
 		}
 
-		assertDocCount = func(rootId *sprovider.ResourceId, query string, expectedCount int) []*searchmsg.Match {
+		assertDocCount = func(rootId *sprovider.ResourceId, query string, expectedCount int) {
 			res, err := i.Search(ctx, &searchsvc.SearchIndexRequest{
 				Query: query,
 				Ref: &searchmsg.Reference{
@@ -71,14 +87,11 @@ var _ = Describe("Index", func() {
 				},
 			})
 			ExpectWithOffset(1, err).ToNot(HaveOccurred())
-			ExpectWithOffset(1, len(res.Matches)).To(Equal(expectedCount), "query returned unexpected number of results: "+query)
-			return res.Matches
+			ExpectWithOffset(1, len(res.Matches)).To(Equal(expectedCount))
 		}
 	)
 
 	BeforeEach(func() {
-		filename = "Foo.pdf"
-
 		mapping, err := index.BuildMapping()
 		Expect(err).ToNot(HaveOccurred())
 
@@ -89,28 +102,6 @@ var _ = Describe("Index", func() {
 		Expect(err).ToNot(HaveOccurred())
 	})
 
-	JustBeforeEach(func() {
-		ref = &sprovider.Reference{
-			ResourceId: rootId,
-			Path:       "./" + filename,
-		}
-		ri = &sprovider.ResourceInfo{
-			Id: &sprovider.ResourceId{
-				StorageId: "storageid",
-				OpaqueId:  "opaqueid",
-			},
-			ParentId: &sprovider.ResourceId{
-				StorageId: "storageid",
-				OpaqueId:  "someopaqueid",
-			},
-			Path:     filename,
-			Size:     12345,
-			Type:     sprovider.ResourceType_RESOURCE_TYPE_FILE,
-			MimeType: "application/pdf",
-			Mtime:    &typesv1beta1.Timestamp{Seconds: 4000},
-		}
-	})
-
 	Describe("New", func() {
 		It("returns a new index instance", func() {
 			i, err := index.New(bleveIndex)
@@ -128,139 +119,163 @@ var _ = Describe("Index", func() {
 	})
 
 	Describe("Search", func() {
-		Context("by other fields than filename", func() {
-			JustBeforeEach(func() {
+		Context("with a file in the root of the space", func() {
+			BeforeEach(func() {
 				err := i.Add(ref, ri)
 				Expect(err).ToNot(HaveOccurred())
 			})
 
-			It("finds files by size", func() {
-				assertDocCount(ref.ResourceId, `Size:12345`, 1)
-				assertDocCount(ref.ResourceId, `Size:>1000`, 1)
-				assertDocCount(ref.ResourceId, `Size:<100000`, 1)
-
-				assertDocCount(ref.ResourceId, `Size:12344`, 0)
-				assertDocCount(ref.ResourceId, `Size:<1000`, 0)
-				assertDocCount(ref.ResourceId, `Size:>100000`, 0)
+			It("scopes the search to the specified space", func() {
+				res, err := i.Search(ctx, &searchsvc.SearchIndexRequest{
+					Ref: &searchmsg.Reference{
+						ResourceId: &searchmsg.ResourceID{
+							StorageId: "differentstorageid",
+							OpaqueId:  "differentopaqueid",
+						},
+					},
+					Query: "foo.pdf",
+				})
+				Expect(err).ToNot(HaveOccurred())
+				Expect(res).ToNot(BeNil())
+				Expect(len(res.Matches)).To(Equal(0))
 			})
-		})
 
-		Context("by filename", func() {
-			It("finds files with spaces in the filename", func() {
-				ri.Path = "Foo oo.pdf"
-				ref.Path = "./" + ri.Path
-				err := i.Add(ref, ri)
+			It("limits the search to the relevant fields", func() {
+				res, err := i.Search(ctx, &searchsvc.SearchIndexRequest{
+					Ref: &searchmsg.Reference{
+						ResourceId: &searchmsg.ResourceID{
+							StorageId: ref.ResourceId.StorageId,
+							OpaqueId:  ref.ResourceId.OpaqueId,
+						},
+					},
+					Query: "*" + ref.ResourceId.OpaqueId + "*",
+				})
 				Expect(err).ToNot(HaveOccurred())
-
-				assertDocCount(ref.ResourceId, `Name:foo\ o*`, 1)
+				Expect(res).ToNot(BeNil())
+				Expect(len(res.Matches)).To(Equal(0))
 			})
 
-			It("finds files by digits in the filename", func() {
-				ri.Path = "12345.pdf"
-				ref.Path = "./" + ri.Path
-				err := i.Add(ref, ri)
+			It("returns all desired fields", func() {
+				res, err := i.Search(ctx, &searchsvc.SearchIndexRequest{
+					Ref: &searchmsg.Reference{
+						ResourceId: &searchmsg.ResourceID{
+							StorageId: ref.ResourceId.StorageId,
+							OpaqueId:  ref.ResourceId.OpaqueId,
+						},
+					},
+					Query: "foo.pdf",
+				})
 				Expect(err).ToNot(HaveOccurred())
-
-				assertDocCount(ref.ResourceId, `Name:1234*`, 1)
+				Expect(res).ToNot(BeNil())
+				Expect(len(res.Matches)).To(Equal(1))
+				match := res.Matches[0]
+				Expect(match.Entity.Ref.ResourceId.OpaqueId).To(Equal(ref.ResourceId.OpaqueId))
+				Expect(match.Entity.Ref.Path).To(Equal(ref.Path))
+				Expect(match.Entity.Id.OpaqueId).To(Equal(ri.Id.OpaqueId))
+				Expect(match.Entity.Name).To(Equal(ri.Path))
+				Expect(match.Entity.Size).To(Equal(ri.Size))
+				Expect(match.Entity.Type).To(Equal(uint64(ri.Type)))
+				Expect(match.Entity.MimeType).To(Equal(ri.MimeType))
+				Expect(match.Entity.Deleted).To(BeFalse())
+				Expect(uint64(match.Entity.LastModifiedTime.AsTime().Unix())).To(Equal(ri.Mtime.Seconds))
 			})
 
-			Context("with a file in the root of the space", func() {
-				JustBeforeEach(func() {
-					err := i.Add(ref, ri)
+			It("finds files by name, prefix or substring match", func() {
+				queries := []string{"foo.pdf", "foo*", "*oo.p*"}
+				for _, query := range queries {
+					res, err := i.Search(ctx, &searchsvc.SearchIndexRequest{
+						Ref: &searchmsg.Reference{
+							ResourceId: &searchmsg.ResourceID{
+								StorageId: ref.ResourceId.StorageId,
+								OpaqueId:  ref.ResourceId.OpaqueId,
+							},
+						},
+						Query: query,
+					})
 					Expect(err).ToNot(HaveOccurred())
-				})
-
-				It("scopes the search to the specified space", func() {
-					resourceId := &sprovider.ResourceId{
-						StorageId: "differentstorageid",
-						OpaqueId:  "differentopaqueid",
-					}
-					assertDocCount(resourceId, `Name:foo.pdf`, 0)
-				})
-
-				It("limits the search to the specified fields", func() {
-					assertDocCount(ref.ResourceId, "Name:*"+ref.ResourceId.OpaqueId+"*", 0)
-				})
+					Expect(res).ToNot(BeNil())
+					Expect(len(res.Matches)).To(Equal(1), "query returned no result: "+query)
+					Expect(res.Matches[0].Entity.Ref.ResourceId.OpaqueId).To(Equal(ref.ResourceId.OpaqueId))
+					Expect(res.Matches[0].Entity.Ref.Path).To(Equal(ref.Path))
+					Expect(res.Matches[0].Entity.Id.OpaqueId).To(Equal(ri.Id.OpaqueId))
+					Expect(res.Matches[0].Entity.Name).To(Equal(ri.Path))
+					Expect(res.Matches[0].Entity.Size).To(Equal(ri.Size))
+				}
+			})
 
-				It("returns all desired fields", func() {
-					matches := assertDocCount(ref.ResourceId, "Name:foo.pdf", 1)
-					match := matches[0]
-					Expect(match.Entity.Ref.ResourceId.OpaqueId).To(Equal(ref.ResourceId.OpaqueId))
-					Expect(match.Entity.Ref.Path).To(Equal(ref.Path))
-					Expect(match.Entity.Id.OpaqueId).To(Equal(ri.Id.OpaqueId))
-					Expect(match.Entity.Name).To(Equal(ri.Path))
-					Expect(match.Entity.Size).To(Equal(ri.Size))
-					Expect(match.Entity.Type).To(Equal(uint64(ri.Type)))
-					Expect(match.Entity.MimeType).To(Equal(ri.MimeType))
-					Expect(match.Entity.Deleted).To(BeFalse())
-					Expect(uint64(match.Entity.LastModifiedTime.AsTime().Unix())).To(Equal(ri.Mtime.Seconds))
+			It("is case-insensitive", func() {
+				res, err := i.Search(ctx, &searchsvc.SearchIndexRequest{
+					Ref: &searchmsg.Reference{
+						ResourceId: &searchmsg.ResourceID{
+							StorageId: ref.ResourceId.StorageId,
+							OpaqueId:  ref.ResourceId.OpaqueId,
+						},
+					},
+					Query: "Foo*",
 				})
+				Expect(err).ToNot(HaveOccurred())
+				Expect(res).ToNot(BeNil())
+				Expect(len(res.Matches)).To(Equal(1))
+			})
 
-				It("finds files by name, prefix or substring match", func() {
-					queries := []string{"foo.pdf", "foo*", "*oo.p*"}
-					for _, query := range queries {
-						matches := assertDocCount(ref.ResourceId, query, 1)
-						Expect(matches[0].Entity.Ref.ResourceId.OpaqueId).To(Equal(ref.ResourceId.OpaqueId))
-						Expect(matches[0].Entity.Ref.Path).To(Equal(ref.Path))
-						Expect(matches[0].Entity.Id.OpaqueId).To(Equal(ri.Id.OpaqueId))
-						Expect(matches[0].Entity.Name).To(Equal(ri.Path))
-						Expect(matches[0].Entity.Size).To(Equal(ri.Size))
+			Context("and an additional file in a subdirectory", func() {
+				var (
+					nestedRef *sprovider.Reference
+					nestedRI  *sprovider.ResourceInfo
+				)
+
+				BeforeEach(func() {
+					nestedRef = &sprovider.Reference{
+						ResourceId: &sprovider.ResourceId{
+							StorageId: "storageid",
+							OpaqueId:  "rootopaqueid",
+						},
+						Path: "./nested/nestedpdf.pdf",
 					}
+					nestedRI = &sprovider.ResourceInfo{
+						Id: &sprovider.ResourceId{
+							StorageId: "storageid",
+							OpaqueId:  "nestedopaqueid",
+						},
+						Path: "nestedpdf.pdf",
+						Size: 12345,
+					}
+					err := i.Add(nestedRef, nestedRI)
+					Expect(err).ToNot(HaveOccurred())
 				})
 
-				It("uses a lower-case index", func() {
-					assertDocCount(ref.ResourceId, "Name:foo*", 1)
-					assertDocCount(ref.ResourceId, "Name:Foo*", 0)
-				})
-
-				Context("and an additional file in a subdirectory", func() {
-					var (
-						nestedRef *sprovider.Reference
-						nestedRI  *sprovider.ResourceInfo
-					)
-
-					BeforeEach(func() {
-						nestedRef = &sprovider.Reference{
-							ResourceId: &sprovider.ResourceId{
-								StorageId: "storageid",
-								OpaqueId:  "rootopaqueid",
-							},
-							Path: "./nested/nestedpdf.pdf",
-						}
-						nestedRI = &sprovider.ResourceInfo{
-							Id: &sprovider.ResourceId{
-								StorageId: "storageid",
-								OpaqueId:  "nestedopaqueid",
-							},
-							Path: "nestedpdf.pdf",
-							Size: 12345,
-						}
-						err := i.Add(nestedRef, nestedRI)
-						Expect(err).ToNot(HaveOccurred())
-					})
-
-					It("finds files living deeper in the tree by filename, prefix or substring match", func() {
-						queries := []string{"nestedpdf.pdf", "nested*", "*tedpdf.*"}
-						for _, query := range queries {
-							assertDocCount(ref.ResourceId, query, 1)
-						}
-					})
-
-					It("does not find the higher levels when limiting the searched directory", func() {
+				It("finds files living deeper in the tree by filename, prefix or substring match", func() {
+					queries := []string{"nestedpdf.pdf", "nested*", "*tedpdf.*"}
+					for _, query := range queries {
 						res, err := i.Search(ctx, &searchsvc.SearchIndexRequest{
 							Ref: &searchmsg.Reference{
 								ResourceId: &searchmsg.ResourceID{
 									StorageId: ref.ResourceId.StorageId,
 									OpaqueId:  ref.ResourceId.OpaqueId,
 								},
-								Path: "./nested/",
 							},
-							Query: "Name:foo.pdf",
+							Query: query,
 						})
 						Expect(err).ToNot(HaveOccurred())
 						Expect(res).ToNot(BeNil())
-						Expect(len(res.Matches)).To(Equal(0))
+						Expect(len(res.Matches)).To(Equal(1), "query returned no result: "+query)
+					}
+				})
+
+				It("does not find the higher levels when limiting the searched directory", func() {
+					res, err := i.Search(ctx, &searchsvc.SearchIndexRequest{
+						Ref: &searchmsg.Reference{
+							ResourceId: &searchmsg.ResourceID{
+								StorageId: ref.ResourceId.StorageId,
+								OpaqueId:  ref.ResourceId.OpaqueId,
+							},
+							Path: "./nested/",
+						},
+						Query: "foo.pdf",
 					})
+					Expect(err).ToNot(HaveOccurred())
+					Expect(res).ToNot(BeNil())
+					Expect(len(res.Matches)).To(Equal(0))
 				})
 			})
 		})
@@ -351,13 +366,23 @@ var _ = Describe("Index", func() {
 			Expect(err).ToNot(HaveOccurred())
 
 			parentRi.Path = "newname"
-			err = i.Move(parentRi.Id, "./somewhere/else/newname")
+			err = i.Move(parentRi, "./somewhere/else/newname")
 			Expect(err).ToNot(HaveOccurred())
 
 			assertDocCount(rootId, "subdir", 0)
 
-			matches := assertDocCount(rootId, "Name:child.pdf", 1)
-			Expect(matches[0].Entity.Ref.Path).To(Equal("./somewhere/else/newname/child.pdf"))
+			res, err := i.Search(ctx, &searchsvc.SearchIndexRequest{
+				Query: "child.pdf",
+				Ref: &searchmsg.Reference{
+					ResourceId: &searchmsg.ResourceID{
+						StorageId: rootId.StorageId,
+						OpaqueId:  rootId.OpaqueId,
+					},
+				},
+			})
+			Expect(err).ToNot(HaveOccurred())
+			Expect(len(res.Matches)).To(Equal(1))
+			Expect(res.Matches[0].Entity.Ref.Path).To(Equal("./somewhere/else/newname/child.pdf"))
 		})
 	})
 })
diff --git a/extensions/search/pkg/search/provider/events_test.go b/extensions/search/pkg/search/provider/events_test.go
index a36b36aef99..9de17c5df34 100644
--- a/extensions/search/pkg/search/provider/events_test.go
+++ b/extensions/search/pkg/search/provider/events_test.go
@@ -156,8 +156,8 @@ var _ = Describe("Searchprovider", func() {
 				Status: status.NewOK(ctx),
 				Path:   "./new/path.pdf",
 			}, nil)
-			indexClient.On("Move", mock.MatchedBy(func(id *sprovider.ResourceId) bool {
-				return id.OpaqueId == ri.Id.OpaqueId
+			indexClient.On("Move", mock.MatchedBy(func(riToIndex *sprovider.ResourceInfo) bool {
+				return riToIndex.Id.OpaqueId == ri.Id.OpaqueId
 			}), "./new/path.pdf").Return(nil).Run(func(args mock.Arguments) {
 				called = true
 			})
diff --git a/extensions/search/pkg/search/provider/searchprovider_test.go b/extensions/search/pkg/search/provider/searchprovider_test.go
index 5f727827350..37f59ff1cdb 100644
--- a/extensions/search/pkg/search/provider/searchprovider_test.go
+++ b/extensions/search/pkg/search/provider/searchprovider_test.go
@@ -146,50 +146,6 @@ var _ = Describe("Searchprovider", func() {
 				}, nil)
 			})
 
-			It("lowercases the filename", func() {
-				p.Search(ctx, &searchsvc.SearchRequest{
-					Query: "Foo.pdf",
-				})
-				indexClient.AssertCalled(GinkgoT(), "Search", mock.Anything, mock.MatchedBy(func(req *searchsvc.SearchIndexRequest) bool {
-					return req.Query == "Name:*foo.pdf*"
-				}))
-			})
-
-			It("does not mess with field-based searches", func() {
-				p.Search(ctx, &searchsvc.SearchRequest{
-					Query: "Size:<10",
-				})
-				indexClient.AssertCalled(GinkgoT(), "Search", mock.Anything, mock.MatchedBy(func(req *searchsvc.SearchIndexRequest) bool {
-					return req.Query == "Size:<10"
-				}))
-			})
-
-			It("uppercases field names", func() {
-				tests := []struct {
-					Original string
-					Expected string
-				}{
-					{Original: "size:<100", Expected: "Size:<100"},
-				}
-				for _, test := range tests {
-					p.Search(ctx, &searchsvc.SearchRequest{
-						Query: test.Original,
-					})
-					indexClient.AssertCalled(GinkgoT(), "Search", mock.Anything, mock.MatchedBy(func(req *searchsvc.SearchIndexRequest) bool {
-						return req.Query == test.Expected
-					}))
-				}
-			})
-
-			It("escapes special characters", func() {
-				p.Search(ctx, &searchsvc.SearchRequest{
-					Query: "Foo oo.pdf",
-				})
-				indexClient.AssertCalled(GinkgoT(), "Search", mock.Anything, mock.MatchedBy(func(req *searchsvc.SearchIndexRequest) bool {
-					return req.Query == `Name:*foo\ oo.pdf*`
-				}))
-			})
-
 			It("searches the personal user space", func() {
 				res, err := p.Search(ctx, &searchsvc.SearchRequest{
 					Query: "foo",
@@ -204,7 +160,7 @@ var _ = Describe("Searchprovider", func() {
 				Expect(match.Entity.Ref.Path).To(Equal("./path/to/Foo.pdf"))
 
 				indexClient.AssertCalled(GinkgoT(), "Search", mock.Anything, mock.MatchedBy(func(req *searchsvc.SearchIndexRequest) bool {
-					return req.Query == "Name:*foo*" && req.Ref.ResourceId.OpaqueId == personalSpace.Root.OpaqueId && req.Ref.Path == ""
+					return req.Query == "foo" && req.Ref.ResourceId.OpaqueId == personalSpace.Root.OpaqueId && req.Ref.Path == ""
 				}))
 			})
 		})
@@ -269,7 +225,7 @@ var _ = Describe("Searchprovider", func() {
 				}, nil)
 
 				res, err := p.Search(ctx, &searchsvc.SearchRequest{
-					Query: "Foo",
+					Query: "foo",
 				})
 				Expect(err).ToNot(HaveOccurred())
 				Expect(res).ToNot(BeNil())
@@ -281,7 +237,7 @@ var _ = Describe("Searchprovider", func() {
 				Expect(match.Entity.Ref.Path).To(Equal("./to/Shared.pdf"))
 
 				indexClient.AssertCalled(GinkgoT(), "Search", mock.Anything, mock.MatchedBy(func(req *searchsvc.SearchIndexRequest) bool {
-					return req.Query == "Name:*foo*" && req.Ref.ResourceId.StorageId == grantSpace.Root.StorageId && req.Ref.Path == "./grant/path"
+					return req.Query == "foo" && req.Ref.ResourceId.StorageId == grantSpace.Root.StorageId && req.Ref.Path == "./grant/path"
 				}))
 			})