Skip to content

Commit 732dd4e

Browse files
authored
Merge pull request #4616 from wireapp/release_2025-06-16_14_24
Release 2025-06-16 - (expected chart version 5.17.0)
2 parents c2efcf5 + 800b23e commit 732dd4e

File tree

142 files changed

+3254
-846
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

142 files changed

+3254
-846
lines changed

.envrc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ nix_files=$(find . -name '*.nix' | grep -v '^./dist-newstyle')
99
for nix_file in $nix_files; do
1010
watch_file "$nix_file"
1111
done
12-
store_paths=$(echo "$nix_files" | xargs nix-store --add ./nix)
12+
watch_file ./services/nginz/third_party/nginx-zauth-module/*
13+
watch_file ./libs/libzauth/**/*
14+
store_paths=$(echo "$nix_files" ./services/nginz/third_party/nginx-zauth-module/ ./libs/libzauth/ | xargs nix-store --add ./nix)
1315
layout_dir=$(direnv_layout_dir)
1416
env_dir=./.env
1517

CHANGELOG.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,63 @@
1+
# [2025-06-16] (Chart Release 5.17.0)
2+
3+
## Release notes
4+
5+
6+
* Behavior of email validation in the context of SCIM user provisioning has changed: if your users receive a validation email on address change, you need to do nothing. If they don't, the behavior changes: before this release, the email address was only used as SCIM external_id, not to send emails to the user, because there was no validation step. With this release, the default behavior is that SCIM has the authority to auto-validate email addresses, and no further user action is needed.
7+
8+
Consider changing the `validateSAMLEmails` feature flag value for some teams, or the default for your instance accordingly.
9+
10+
The old behavior for `validateSAMLEmails == disabled` (no validation email, but also no valid email address) is not supported any more. We suggest you use something as `external_id` that is not an email address if you want that. (#4612)
11+
12+
13+
## API changes
14+
15+
16+
* Add a new endpoint `/mls/reset-conversation` which can be used to restore an MLS group that ended up in an invalid state for any reason. After resetting, the conversation has the same users, but the corresponding MLS group gets a new group ID and resets to epoch 0 with no clients.
17+
18+
Users on backends that don't support reset are kicked out of the conversation upon reset, and no such user can join afterwards.
19+
20+
A new event type `conversation.mls-reset` has been added, and is sent to all members of a conversation when it is reset. (#4558)
21+
22+
23+
## Features
24+
25+
26+
* Auto activate SAML emails if validateSAMLEmails feature is disabled (#4612)
27+
28+
* Add update, delete, add/remove users to UserGroups. (#4600, #4604, #4605)
29+
30+
* Send notifications on user group updates (#4600)
31+
32+
* Team admin can add user to a channel (#4574)
33+
34+
* Allow team admin to change the name of a channel (#4584)
35+
36+
* Endpoint to get the current server time (#4606)
37+
38+
* Add support for AWS Signature V4 authentication header to ZAuth (#4593)
39+
40+
41+
## Bug fixes and other updates
42+
43+
44+
* Do not allow ephemeral users to search for contacts (#4609)
45+
46+
47+
## Internal changes
48+
49+
50+
* Send cells notification when cells feature is updated (#4614)
51+
52+
* Send message count to websocket on connect (#4608)
53+
54+
* Add `proxy_connect_timeout` to nginz's configuration. Otherwise, not answering
55+
services (e.g. due to network issues) can delay requests/response for a very
56+
long time. (#4610)
57+
58+
* nginz: Set `Z-Timestamp` header when proxying requests (#4593, #4611)
59+
60+
161
# [2025-05-30] (Chart Release 5.16.0)
262

363
## Release notes
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
a (whitelist (regex "/await"))
1+
a (whitelist (regex "/await")
2+
(regex "(/v[0-9]+)?/events"))

charts/nginz/templates/conf/_nginx.conf.tpl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@ http {
3131
keepalive_timeout 75;
3232
send_timeout 60;
3333
34+
# Without this timeout, requests/responses can be delayed for a very long
35+
# time in case the proxied service does not answer (e.g. due to network
36+
# issues.) When this timeout is reached nginz answers with HTTP 504 ("gateway
37+
# timeout.")
38+
proxy_connect_timeout 5;
39+
3440
ignore_invalid_headers off;
3541
3642
types_hash_max_size 2048;
@@ -329,6 +335,7 @@ http {
329335
proxy_set_header Z-Provider $zauth_provider;
330336
proxy_set_header Z-Bot $zauth_bot;
331337
proxy_set_header Z-Conversation $zauth_conversation;
338+
proxy_set_header Z-Timestamp $zauth_timestamp;
332339
proxy_set_header Request-Id $request_id;
333340
proxy_set_header Z-Host $host;
334341

charts/nginz/values.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,9 @@ nginx_conf:
685685
- all
686686
max_body_size: 70m
687687
body_buffer_size: 256k
688+
- path: /mls/reset-conversation
689+
envs:
690+
- all
688691
- path: /mls/public-keys
689692
envs:
690693
- all

deploy/dockerephemeral/federation-v2.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,4 +280,4 @@ services:
280280
- /coredns-config/Corefile
281281
networks:
282282
coredns:
283-
ipv4_address: 172.20.1.4
283+
ipv4_address: 172.20.1.5

deploy/dockerephemeral/federation-v2/federator.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,5 @@ optSettings:
2525
clientCertificate: "/etc/wire/federator/conf/integration-leaf.pem"
2626
clientPrivateKey: "/etc/wire/federator/conf/integration-leaf-key.pem"
2727
tcpConnectionTimeout: 5000000
28-
dnsHost: 172.20.1.4
28+
dnsHost: 172.20.1.5
2929
dnsPort: 53

integration/default.nix

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
, transformers
8282
, transformers-base
8383
, unix
84+
, unix-time
8485
, unliftio
8586
, uuid
8687
, vector
@@ -183,6 +184,7 @@ mkDerivation {
183184
transformers
184185
transformers-base
185186
unix
187+
unix-time
186188
unliftio
187189
uuid
188190
vector

integration/integration.cabal

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,9 +168,11 @@ library
168168
Test.MLS.Message
169169
Test.MLS.Notifications
170170
Test.MLS.One2One
171+
Test.MLS.Reset
171172
Test.MLS.Services
172173
Test.MLS.SubConversation
173174
Test.MLS.Unreachable
175+
Test.NginxZAuthModule
174176
Test.Notifications
175177
Test.OAuth
176178
Test.PasswordReset
@@ -292,6 +294,7 @@ library
292294
, transformers
293295
, transformers-base
294296
, unix
297+
, unix-time
295298
, unliftio
296299
, uuid
297300
, vector

integration/test/API/Galley.hs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -823,3 +823,9 @@ getSelfMember user conv = do
823823
(domain, cnv) <- objQid conv
824824
req <- baseRequest user Galley Versioned (joinHttpPath ["conversations", domain, cnv, "self"])
825825
submit "GET" req
826+
827+
resetConversation :: (MakesValue user) => user -> String -> Word64 -> App Response
828+
resetConversation user groupId epoch = do
829+
req <- baseRequest user Galley Versioned (joinHttpPath ["mls", "reset-conversation"])
830+
let payload = object ["group_id" .= groupId, "epoch" .= epoch]
831+
submit "POST" $ req & addJSON payload

0 commit comments

Comments
 (0)