v1.0.0
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. -
Bugfix #1006: Check if SMTP credentials are nil
Check if SMTP credentials are nil before passing them to the SMTPClient, causing it to crash.
-
Change #965: Remove protocol from partner domains to match gocdb config
Minor changes for OCM cross-partner testing.
-
Enhancement #986: Added signing key capability
The ocs capabilities can now hold the boolean flag to indicate url signing endpoint and
middleware are available -
Enhancement #922: Add tutorial for deploying WOPI and Reva locally
Add a new tutorial on how to run Reva and Wopiserver together locally
-
Enhancement #979: Skip changelog enforcement for bot PRs
Skip changelog enforcement for bot PRs.
-
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. -
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. -
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. -
Enhancement #914: Make httpclient configurable
- Introduce Options for the httpclient (#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. -
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. -
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. -
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. -
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. -
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 currentuserfilter
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
andloginfilter
will be
derived from theuserfilter
by replacing%s
with{{query}}
and{{login}}
respectively. Theuserfilter
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 toobjectguid
or evensamaccountname
but you will run
into trouble when user names change. You have been warned. -
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
. -
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
go-ldap/ldap#129 (comment) -
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.