v1.0.0

Changelog for Reva v1.0.0 (2020-07-28)

Changelog for reva 1.0.0 (2020-07-28)

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

Summary

  • Fix #941: Fix initialization of json share manager
  • Fix #1006: Check if SMTP credentials are nil
  • Chg #965: Remove protocol from partner domains to match gocdb config
  • Enh #986: Added signing key capability
  • Enh #922: Add tutorial for deploying WOPI and Reva locally
  • Enh #979: Skip changelog enforcement for bot PRs
  • Enh #965: Enforce adding changelog in make and CI
  • Enh #1016: Do not enforce changelog on release
  • Enh #969: Allow requests to hosts with unverified certificates
  • Enh #914: Make httpclient configurable
  • Enh #972: Added a site locations exporter to Mentix
  • Enh #1000: Forward share invites to the provider selected in meshdirectory
  • Enh #1002: Pass the link to the meshdirectory service in token mail
  • Enh #1008: Use proper logging for ldap auth requests
  • Enh #970: Add required headers to SMTP client to prevent being tagged as spam
  • Enh #996: Split LDAP user filters
  • Enh #1007: Update go-tus version
  • Enh #1004: Update github.com/go-ldap/ldap to v3
  • Enh #974: Add functionality to create webdav references for OCM shares

Details

  • Bugfix #941: Fix initialization of json share manager

When an empty shares.json file existed the json share manager would fail while trying to unmarshal the empty file.

https://github.com/cs3org/reva/issues/941 https://github.com/cs3org/reva/pull/940

  • Bugfix #1006: Check if SMTP credentials are nil

Check if SMTP credentials are nil before passing them to the SMTPClient, causing it to crash.

https://github.com/cs3org/reva/pull/1006

  • Change #965: Remove protocol from partner domains to match gocdb config

Minor changes for OCM cross-partner testing.

https://github.com/cs3org/reva/pull/965

  • Enhancement #986: Added signing key capability

The ocs capabilities can now hold the boolean flag to indicate url signing endpoint and middleware are available

https://github.com/cs3org/reva/pull/986

  • Enhancement #922: Add tutorial for deploying WOPI and Reva locally

Add a new tutorial on how to run Reva and Wopiserver together locally

https://github.com/cs3org/reva/pull/922

  • Enhancement #979: Skip changelog enforcement for bot PRs

Skip changelog enforcement for bot PRs.

https://github.com/cs3org/reva/pull/979

  • Enhancement #965: Enforce adding changelog in make and CI

When adding a feature or fixing a bug, a changelog needs to be specified, failing which the build wouldn’t pass.

https://github.com/cs3org/reva/pull/965

  • Enhancement #1016: Do not enforce changelog on release

While releasing a new version of Reva, make release was failing because it was enforcing a changelog entry.

https://github.com/cs3org/reva/pull/1016

  • Enhancement #969: Allow requests to hosts with unverified certificates

Allow OCM to send requests to other mesh providers with the option of skipping certificate verification.

https://github.com/cs3org/reva/pull/969

  • Enhancement #914: Make httpclient configurable

    • Introduce Options for the httpclient (#914)

https://github.com/cs3org/reva/pull/914

  • Enhancement #972: Added a site locations exporter to Mentix

Mentix now offers an endpoint that exposes location information of all sites in the mesh. This can be used in Grafana’s world map view to show the exact location of every site.

https://github.com/cs3org/reva/pull/972

  • Enhancement #1000: Forward share invites to the provider selected in meshdirectory

Added a share invite forward OCM endpoint to the provider links (generated when a user picks a target provider in the meshdirectory service web interface), together with an invitation token and originating provider domain passed to the service via query params.

https://github.com/sciencemesh/sciencemesh/issues/139 https://github.com/cs3org/reva/pull/1000

  • Enhancement #1002: Pass the link to the meshdirectory service in token mail

Currently, we just forward the token and the original user’s domain when forwarding an OCM invite token and expect the user to frame the forward invite URL. This PR instead passes the link to the meshdirectory service, from where the user can pick the provider they want to accept the invite with.

https://github.com/sciencemesh/sciencemesh/issues/139 https://github.com/cs3org/reva/pull/1002

  • Enhancement #1008: Use proper logging for ldap auth requests

Instead of logging to stdout we now log using debug level logging or error level logging in case the configured system user cannot bind to LDAP.

https://github.com/cs3org/reva/pull/1008

  • Enhancement #970: Add required headers to SMTP client to prevent being tagged as spam

Mails being sent through the client, specially through unauthenticated SMTP were being tagged as spam due to missing headers.

https://github.com/cs3org/reva/pull/970

  • Enhancement #996: Split LDAP user filters

The current LDAP user and auth filters only allow a single %s to be replaced with the relevant string. The current userfilter is used to lookup a single user, search for share recipients and for login. To make each use case more flexible we split this in three and introduced templates.

For the userfilter we moved to filter templates that can use the CS3 user id properties {{.OpaqueId}} and {{.Idp}}: ``` userfilter = “(&(objectclass=posixAccount)(|(ownclouduuid={{.OpaqueId}})(cn={{.OpaqueId}})))”


   We introduced a new `findfilter` that is used when searching for users. Use it like this: ```
   findfilter =
   "(&(objectclass=posixAccount)(|(cn={{query}}*)(displayname={{query}}*)(mail={{query}}*)))"

Furthermore, we also introduced a dedicated login filter for the LDAP auth manager: loginfilter = "(&(objectclass=posixAccount)(|(cn={{login}})(mail={{login}})))"

These filter changes are backward compatible: findfilter and loginfilter will be derived from the userfilter by replacing %s with {{query}} and {{login}} respectively. The userfilter replaces %s with {{.OpaqueId}}

Finally, we changed the default attribute for the immutable uid of a user to ms-DS-ConsistencyGuid. See https://docs.microsoft.com/en-us/azure/active-directory/hybrid/plan-connect-design-concepts for the background. You can fall back to objectguid or even samaccountname but you will run into trouble when user names change. You have been warned.

https://github.com/cs3org/reva/pull/996

  • Enhancement #1007: Update go-tus version

The lib now uses go mod which should help golang to sort out dependencies when running go mod tidy.

https://github.com/cs3org/reva/pull/1007

  • Enhancement #1004: Update github.com/go-ldap/ldap to v3

In the current version of the ldap lib attribute comparisons are case sensitive. With v3 GetEqualFoldAttributeValue is introduced, which allows a case insensitive comparison. Which AFAICT is what the spec says: see https://github.com/go-ldap/ldap/issues/129#issuecomment-333744641

https://github.com/cs3org/reva/pull/1004

  • Enhancement #974: Add functionality to create webdav references for OCM shares

Webdav references will now be created in users’ shares directory with the target set to the original resource’s location in their mesh provider.

https://github.com/cs3org/reva/pull/974