Skip to content

Commit b0b3f1c

Browse files
authored
Merge pull request #2728 from wireapp/release_2022-09-27_13_14
Release 2022-09-27 - (expected chart version 4.24.0)
2 parents 3d8fb69 + d31ab52 commit b0b3f1c

File tree

359 files changed

+8568
-6464
lines changed

Some content is hidden

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

359 files changed

+8568
-6464
lines changed

.github/pull_request_template.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
## Checklist
22

33
- [ ] Add a new entry in an appropriate subdirectory of `changelog.d`
4-
- [ ] Read and follow the
5-
[PR guidelines](https://github.com/wireapp/wire-server/blob/develop/docs/developer/pr-guidelines.md)
4+
- [ ] Read and follow the [PR guidelines](https://docs.wire.com/developer/developer/pr-guidelines.html)

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,3 +116,6 @@ result-*
116116

117117
# emacs misc
118118
.dir-locals.el
119+
120+
/integration-ca-key.pem
121+
/integration-ca.pem

.hlint.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,13 @@
88
# Left for the programmer to decide. See discussion at https://github.com/wireapp/wire-server/pull/2382#discussion_r871194424
99
- ignore: { name: Avoid lambda }
1010
- ignore: { name: Avoid lambda using `infix` }
11-
11+
- ignore: { name: Eta reduce }
1212
- ignore: { name: Use section }
13+
- ignore: { name: Use underscore }
14+
1315
# custom rules:
1416
- hint: { lhs: (() <$), rhs: void }
1517
- hint: { lhs: return, rhs: pure }
18+
## We want the latter to properly handle signals.
19+
- error: { name: Use shutdown, lhs: runSettings, rhs: runSettingsWithShutdown }
20+
- ignore: { name: Use shutdown, within: [Network.Wai.Utilities.Server, Federator.Response] }

CHANGELOG.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,116 @@
1+
# [2022-09-27] (Chart Release 4.24.0)
2+
3+
## Release notes
4+
5+
6+
* For users of the (currently alpha) coturn Helm chart, **manual action is
7+
required** when upgrading to this version. The labels applied to the Kubernetes
8+
manifests in this chart have changed, in order to match the conventions used
9+
in the wire-server charts. However, this may mean that upgrading with Helm can
10+
fail, due to changes to the `StatefulSet` included in this chart -- in this
11+
case, the `StatefulSet` must be deleted before the chart is upgraded. (#2677)
12+
13+
* wire-server helm charts: Adjust default CPU/Memory resources: Remove CPU limits to avoid CPU throttling; adjust request CPU and memory based on observed values. Overall this decreases the amount of CPU/memory that the wire-server chart needs to install/schedule pods. (#2675)
14+
15+
* Upgrade team-settings version to 4.12.1-v0.31.5-0-0167ea4 (#2180)
16+
17+
* Upgrade webapp version to 2022-09-20-production.0-v0.31.2-0-7f74074 (#2302)
18+
19+
20+
## API changes
21+
22+
23+
* Add new endpoint `/mls/commit-bundles` for submitting MLS `CommitBundle`s. A `CommitBundle` is a triple consisting of a commit message, an optional welcome message and a public group state. (#2688)
24+
25+
* MLS: Store and expose group info via `GET /conversations/:domain/:id/groupinfo` (#2721)
26+
27+
* Add /mls/public-keys to nginz chart (#2676)
28+
29+
* Users being kicked out results in member-leave events originating from the user who caused the change in the conversation (#2724)
30+
31+
* Leaving an MLS conversation is now possible using the regular endpoint `DELETE /conversations/{cnv_domain}/{cnv}/members/{usr_domain}/{usr}`. When a user leaves, the backend sends external remove proposals for all their clients in the corresponding MLS group. (#2667)
32+
33+
* Validate remotely claimed key packages (#2692)
34+
35+
36+
## Features
37+
38+
39+
* The coturn chart now has support for exposing its metric endpoint with a
40+
ServiceMonitor, which can be ingested by third-party metrics collection tools. (#2677)
41+
42+
* Deleting clients creates MLS remove proposals (#2674)
43+
44+
* External remove proposals are now sent to a group when a user is deleted (#2650)
45+
46+
* Allow non-admins to commit add proposals in MLS conversations (#2691)
47+
48+
* Optionally add invitation urls to the body of `/teams/{tid}/invitations`. This allows further processing; e.g. to send those links with custom emails or distribute them as QR codes. See [docs](https://docs.wire.com/developer/reference/config-options.html#expose-invitation-urls-to-team-admin) for details and privacy implications. (#2684)
49+
50+
51+
## Bug fixes and other updates
52+
53+
54+
* SCIM user deletion suffered from a couple of race conditions. The user in now first deleted in spar, because this process depends on data from brig. Then, the user is deleted in brig. If any error occurs, the SCIM deletion request can be made again. This change depends on brig being completely deployed before using the SCIM deletion endpoint in brig. In the unlikely event of using SCIM deletion during the deployment, these requests can be retried (in case of error). (#2637)
55+
56+
* The 2nd factor password challenge team feature is disabled for SSO users (#2693)
57+
58+
* Less surprising handling of SIGINT, SIGTERM for proxy, stern. Increase grace period for shutdown from 5s to 30s for all services. (#2715)
59+
60+
61+
## Documentation
62+
63+
64+
* Drop Client model (unused) from old swagger.
65+
Add a description and example data for mls_public_keys field in new swagger. (#2657)
66+
67+
* Document user deactivation (aka suspension) with SCIM. (#2720)
68+
69+
* Monitoring page showed wrong wrong configuration charts. Updated prometheus-operator to kube-prometheus-stack chart in the documentation. (#2708)
70+
71+
72+
## Internal changes
73+
74+
75+
* Make client deletion asynchronous (#2669)
76+
77+
* Allow external add proposals without previously uploading key packages. (#2661)
78+
79+
* Allow legalhold tokens access to `/converations/<uuid>` endpoint (#2682, #2726)
80+
81+
* Move Brig.Sem.* modules to Brig.Effects (consistency) (#2672)
82+
83+
* The labels applied to resources in the coturn chart have been changed to
84+
reflect the conventions in the wire-server charts. (#2677)
85+
86+
* Drop the `managed` column from `team_conv` table in Galley (#2127)
87+
88+
* Fix link in PR template (#2673)
89+
90+
* In Gundeck's 'notifications' cassandra table, switch to [TWCS](https://cassandra.apache.org/doc/latest/cassandra/operating/compaction/twcs.html) compaction strategy, which should be more efficient for this workload, and possibly bring performance benefits to latencies.
91+
It may be beneficial to run a manual compaction before rolling out this
92+
change (but things should also work without this manual operation).
93+
In case you have time, run the following from a cassandra machine before deploying this update: `nodetool compact gundeck notifications`. (#2615)
94+
95+
* Add regular expression support to libzauth ACL language (#2714)
96+
97+
* Make test API calls point to the most recent version by default (#2695)
98+
99+
* Clients and key package refs in an MLS conversation are now stored in their own table. (#2667)
100+
101+
* Refactor MLS test framework (#2678)
102+
103+
* Update mls-test-cli to version 0.5 (#2685)
104+
105+
* Added rusty-jwt-tools to docker images (#2686)
106+
107+
* The account API is now migrated to servant. (#2699, #2700, #2701, #2702, #2703, #2704, #2705, #2707)
108+
109+
* Update nginz and cannon ACLs to match api-versioned paths (#2725)
110+
111+
* For wire-server cloud, on kubernetes 1.21+, favour topology-aware routing, which reduces unnecessary inter-availability-zone traffic, reducing latency and cloud provider cross-AZ traffic costs. (#2723)
112+
113+
1114
# [2022-09-01] (Chart Release 4.23.0)
2115

3116
## Release notes

Makefile

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,31 @@ cabal-fmt:
117117
ghcid:
118118
ghcid -l=hlint --command "cabal repl $(target)"
119119

120+
.PHONY: hlint-check-all
121+
hlint-check-all:
122+
./tools/hlint.sh -f all -m check
123+
124+
.PHONY: hlint-check-pr
125+
hlint-check-pr:
126+
./tools/hlint.sh -f pr -m check
127+
128+
.PHONY: hlint-inplace-pr
129+
hlint-inplace-pr:
130+
./tools/hlint.sh -f pr -m inplace
131+
132+
133+
.PHONY: hlint-inplace-all
134+
hlint-inplace-all:
135+
./tools/hlint.sh -f all -m inplace
136+
137+
.PHONY: hlint-check
138+
hlint-check:
139+
./tools/hlint.sh -f changeset -m check
140+
141+
.PHONY: hlint-inplace
142+
hlint-inplace:
143+
./tools/hlint.sh -f changeset -m inplace
144+
120145
# reset db using cabal
121146
.PHONY: db-reset-package
122147
db-reset-package: c

build/ubuntu/Dockerfile.builder

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,22 @@ RUN cd /tmp && \
1010

1111
RUN cd /tmp/mls-test-cli && RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target x86_64-unknown-linux-gnu
1212

13+
FROM rust:1.63 as rusty-jwt-tools-builder
14+
15+
# compile rusty-jwt-tools
16+
RUN cd /tmp && \
17+
git clone https://github.com/wireapp/rusty-jwt-tools && \
18+
cd rusty-jwt-tools && \
19+
git checkout 6370cd556f03f6834d0b8043615ffaf0044ef1fa && \
20+
git rev-parse HEAD
21+
22+
RUN cd /tmp/rusty-jwt-tools && cargo build --release --target x86_64-unknown-linux-gnu
23+
1324
FROM ${prebuilder}
1425

1526
COPY --from=mls-test-cli-builder /tmp/mls-test-cli/target/x86_64-unknown-linux-gnu/release/mls-test-cli /usr/bin/mls-test-cli
27+
COPY --from=rusty-jwt-tools-builder /tmp/rusty-jwt-tools/target/x86_64-unknown-linux-gnu/release/librusty_jwt_tools.so /usr/lib
28+
COPY --from=rusty-jwt-tools-builder /tmp/rusty-jwt-tools/target/x86_64-unknown-linux-gnu/release/librusty_jwt_tools_ffi.so /usr/lib
1629

1730
WORKDIR /
1831

build/ubuntu/Dockerfile.deps

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,25 @@ RUN cd /tmp && \
2020

2121
RUN cd /tmp/mls-test-cli && RUSTFLAGS='-C target-feature=+crt-static' cargo build --release --target x86_64-unknown-linux-gnu
2222

23+
FROM rust:1.63 as rusty-jwt-tools-builder
24+
25+
# compile rusty-jwt-tools
26+
RUN cd /tmp && \
27+
git clone https://github.com/wireapp/rusty-jwt-tools && \
28+
cd rusty-jwt-tools && \
29+
git checkout 6370cd556f03f6834d0b8043615ffaf0044ef1fa && \
30+
git rev-parse HEAD
31+
32+
RUN cd /tmp/rusty-jwt-tools && cargo build --release --target x86_64-unknown-linux-gnu
33+
34+
2335
# Minimal dependencies for ubuntu-compiled, dynamically linked wire-server Haskell services
2436
FROM ubuntu:20.04
2537

2638
COPY --from=cryptobox-builder /tmp/cryptobox-c/target/release/libcryptobox.so /usr/lib
2739
COPY --from=mls-test-cli-builder /tmp/mls-test-cli/target/x86_64-unknown-linux-gnu/release/mls-test-cli /usr/bin/mls-test-cli
40+
COPY --from=rusty-jwt-tools-builder /tmp/rusty-jwt-tools/target/x86_64-unknown-linux-gnu/release/librusty_jwt_tools.so /usr/lib
41+
COPY --from=rusty-jwt-tools-builder /tmp/rusty-jwt-tools/target/x86_64-unknown-linux-gnu/release/librusty_jwt_tools_ffi.so /usr/lib
2842

2943
RUN export DEBIAN_FRONTEND=noninteractive && \
3044
apt-get update && \

cabal.project

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,12 @@ source-repository-package
157157
location: https://gitlab.com/twittner/wai-routing
158158
tag: 7e996a93fec5901767f845a50316b3c18e51a61d
159159

160+
source-repository-package
161+
type: git
162+
location: https://github.com/wireapp/tasty.git
163+
tag: 394943c7672e5ad269e5587528b7678caf3b0720
164+
subdir: hunit
165+
160166
allow-older: *
161167
allow-newer: *
162168

cassandra-schema.cql

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ CREATE TABLE galley_test.meta (
3838
CREATE TABLE galley_test.team_conv (
3939
team uuid,
4040
conv uuid,
41-
managed boolean,
4241
PRIMARY KEY (team, conv)
4342
) WITH CLUSTERING ORDER BY (conv ASC)
4443
AND bloom_filter_fp_chance = 0.1
@@ -129,6 +128,7 @@ CREATE TABLE galley_test.team_features (
129128
app_lock_status int,
130129
conference_calling int,
131130
digital_signatures int,
131+
expose_invitation_urls_to_team_admin int,
132132
file_sharing int,
133133
file_sharing_lock_status int,
134134
guest_links_lock_status int,
@@ -169,7 +169,6 @@ CREATE TABLE galley_test.member (
169169
conversation_role text,
170170
hidden boolean,
171171
hidden_ref text,
172-
mls_clients set<text>,
173172
otr_archived boolean,
174173
otr_archived_ref text,
175174
otr_muted boolean,
@@ -263,7 +262,6 @@ CREATE TABLE galley_test.member_remote_user (
263262
user_remote_domain text,
264263
user_remote_id uuid,
265264
conversation_role text,
266-
mls_clients set<text>,
267265
PRIMARY KEY (conv, user_remote_domain, user_remote_id)
268266
) WITH CLUSTERING ORDER BY (user_remote_domain ASC, user_remote_id ASC)
269267
AND bloom_filter_fp_chance = 0.1
@@ -366,15 +364,18 @@ CREATE TABLE galley_test.group_id_conv_id (
366364
AND read_repair_chance = 0.0
367365
AND speculative_retry = '99PERCENTILE';
368366

369-
CREATE TABLE galley_test.user (
370-
user uuid,
367+
CREATE TABLE galley_test.member_client (
371368
conv uuid,
372-
PRIMARY KEY (user, conv)
373-
) WITH CLUSTERING ORDER BY (conv ASC)
374-
AND bloom_filter_fp_chance = 0.1
369+
user_domain text,
370+
user uuid,
371+
client text,
372+
key_package_ref blob,
373+
PRIMARY KEY (conv, user_domain, user, client)
374+
) WITH CLUSTERING ORDER BY (user_domain ASC, user ASC, client ASC)
375+
AND bloom_filter_fp_chance = 0.01
375376
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
376377
AND comment = ''
377-
AND compaction = {'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'}
378+
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
378379
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
379380
AND crc_check_chance = 1.0
380381
AND dclocal_read_repair_chance = 0.1
@@ -460,6 +461,7 @@ CREATE TABLE galley_test.conversation (
460461
message_timer bigint,
461462
name text,
462463
protocol int,
464+
public_group_state blob,
463465
receipt_mode int,
464466
team uuid,
465467
type int
@@ -566,6 +568,26 @@ CREATE TABLE galley_test.mls_proposal_refs (
566568
AND read_repair_chance = 0.0
567569
AND speculative_retry = '99PERCENTILE';
568570

571+
CREATE TABLE galley_test.user (
572+
user uuid,
573+
conv uuid,
574+
PRIMARY KEY (user, conv)
575+
) WITH CLUSTERING ORDER BY (conv ASC)
576+
AND bloom_filter_fp_chance = 0.1
577+
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
578+
AND comment = ''
579+
AND compaction = {'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'}
580+
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
581+
AND crc_check_chance = 1.0
582+
AND dclocal_read_repair_chance = 0.1
583+
AND default_time_to_live = 0
584+
AND gc_grace_seconds = 864000
585+
AND max_index_interval = 2048
586+
AND memtable_flush_period_in_ms = 0
587+
AND min_index_interval = 128
588+
AND read_repair_chance = 0.0
589+
AND speculative_retry = '99PERCENTILE';
590+
569591
CREATE KEYSPACE gundeck_test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true;
570592

571593
CREATE TABLE gundeck_test.push (
@@ -602,7 +624,7 @@ CREATE TABLE gundeck_test.notifications (
602624
AND bloom_filter_fp_chance = 0.1
603625
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
604626
AND comment = ''
605-
AND compaction = {'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy', 'tombstone_threshold': '0.1'}
627+
AND compaction = {'class': 'org.apache.cassandra.db.compaction.TimeWindowCompactionStrategy', 'compaction_window_size': '1', 'compaction_window_unit': 'DAYS', 'max_threshold': '32', 'min_threshold': '4'}
606628
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
607629
AND crc_check_chance = 1.0
608630
AND dclocal_read_repair_chance = 0.1

charts/backoffice/templates/service.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ metadata:
77
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
88
release: {{ .Release.Name }}
99
heritage: {{ .Release.Service }}
10+
annotations:
11+
service.kubernetes.io/topology-aware-hints: auto
1012
spec:
1113
type: ClusterIP
1214
ports:

0 commit comments

Comments
 (0)