Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
3045e28
Merge pull request #4025 from wireapp/master
battermann Apr 29, 2024
c950a3a
Refactor ciphersuite handling for 1-1 convs (#4009)
pcapriotti Apr 29, 2024
aef2f57
[chore] don't use treeefmt for hlint, readd the remove hlint rules (#…
MangoIV Apr 29, 2024
f0a91f1
Fix openssl example in docs (#4026)
pcapriotti Apr 29, 2024
4c82fd6
Finish galley servantification (#4018)
pcapriotti Apr 30, 2024
8cde3af
Use makefile targets again (#4029)
MangoIV Apr 30, 2024
68a6e98
inbucket: allow configuration of issuer (#4031)
smatting Apr 30, 2024
523702a
Remove inbucket Helm chart (#4032)
smatting Apr 30, 2024
083263f
Introduce user subsystem (#3977)
akshaymankar May 2, 2024
6b34087
Servantify stern (#4030)
fisx May 2, 2024
ee762a0
WPB-8988 Upgrade `rusty-jwt-tools` to support `ecdsa_secp256r1_sha256…
battermann May 2, 2024
69411da
WPB-8702 Retrieve in database users that can only login with Phone Nu…
battermann May 3, 2024
40445b5
Generalise catchErrors middleware (#4037)
pcapriotti May 6, 2024
9a2fb45
Update mls-test-cli to version 0.12 (#4039)
pcapriotti May 8, 2024
7d5b70c
[feat] update the nginz nginx module to support nginx 1.26 (#4042)
MangoIV May 8, 2024
4f4891f
gundeck: Fix parsing errors for SNS ARN for VOIP Tokens (#4040)
akshaymankar May 8, 2024
44a66c5
[WPB-8628] Clean up syntax of test cases that occur in BSI audit. (#4…
fisx May 10, 2024
0265f34
Add assertions to MLS one-to-one test (#4047)
pcapriotti May 13, 2024
142299c
gundeck: Delete all APNS_VOIP and APNS_VOIP_SANDBOX push tokens (#4044)
akshaymankar May 13, 2024
f37c437
Fix hardcoded use of ciphersuite 1 when switching to mixed protocol (…
pcapriotti May 15, 2024
003c9d0
updated mlse2eid config and nwe api version
battermann May 17, 2024
8e5588d
db migration
battermann May 17, 2024
325832d
clean up
battermann May 17, 2024
37ee52d
impl db layer
battermann May 17, 2024
e35b0b5
Revert "impl db layer"
battermann May 17, 2024
695d769
Revert "clean up"
battermann May 17, 2024
691c3e7
Revert "db migration"
battermann May 17, 2024
34205d3
Revert "updated mlse2eid config and nwe api version"
battermann May 17, 2024
b0aedec
use JWK instead of bare keys as MLS removal keys (#3548)
stefanwire May 17, 2024
2da8379
[fix] elasticsearch reset on local db-reset (#4052)
battermann May 21, 2024
a145bc1
Add changelog for Release 2024-05-21
zebot May 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .hlint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
- ignore: { name: Use section }
- ignore: { name: "Use :" }
- ignore: { name: Use underscore }
- ignore: { name: Use error }

# custom rules:
- hint: { lhs: (() <$), rhs: void }
Expand Down
44 changes: 44 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,47 @@
# [2024-05-21] (Chart Release 5.3.0)

## API changes


* /mls/keys use JWK instead of bare keys as MLS removal keys (#3548)

* The `cipher_suite` field is not present anymore in objects corresponding to newly created conversations (#4009)


## Features


* Upgrade `rusty-jwt-tools` to support `ecdsa_secp256r1_sha256` (#4035)

* gundeck: Delete all APNS_VOIP and APNS_VOIP_SANDBOX push tokens (#4044)


## Bug fixes and other updates


* gundeck: Fix parsing errors for SNS ARN for VOIP Tokens (#4040)

* Fix hardcoded ciphersuite when switching to mixed (#4048)


## Internal changes


* Add tool to determine number of phone-only users (#4024)

* Log federator request ID on exceptions (#4037)

* Update mls-test-cli to version 0.12 (#4039)

* Remove inbucket helm chart. (#4032)

* Finish servantifying galley and remove wai-routing dependency (#4018)

* New subsystem for user management. (#3977)

* Clean up syntax of test cases that occur in BSI audit. (#4041)


# [2024-04-26] (Chart Release 4.43.0)

## Bug fixes and other updates
Expand Down
52 changes: 38 additions & 14 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ fake-aws fake-aws-s3 fake-aws-sqs aws-ingress fluent-bit kibana backoffice \
calling-test demo-smtp elasticsearch-curator elasticsearch-external \
elasticsearch-ephemeral minio-external cassandra-external \
nginx-ingress-controller ingress-nginx-controller nginx-ingress-services reaper restund coturn \
inbucket k8ssandra-test-cluster postgresql ldap-scim-bridge smallstep-accomp
k8ssandra-test-cluster postgresql ldap-scim-bridge smallstep-accomp
KIND_CLUSTER_NAME := wire-server
HELM_PARALLELISM ?= 1 # 1 for sequential tests; 6 for all-parallel tests

Expand Down Expand Up @@ -129,8 +129,9 @@ devtest:
.PHONY: sanitize-pr
sanitize-pr:
./hack/bin/generate-local-nix-packages.sh
make formatf
make hlint-inplace-pr
make format
make hlint-check-pr # sometimes inplace has been observed not to do its job very well.
make git-add-cassandra-schema
@git diff-files --quiet -- || ( echo "There are unstaged changes, please take a look, consider committing them, and try again."; exit 1 )
@git diff-index --quiet --cached HEAD -- || ( echo "There are staged changes, please take a look, consider committing them, and try again."; exit 1 )
Expand All @@ -154,16 +155,28 @@ ghcid:

# Used by CI
.PHONY: lint-all
lint-all: treefmt-check check-local-nix-derivations
lint-all: formatc hlint-check-all check-local-nix-derivations treefmt-check

.PHONY: hlint-check-all
hlint-check-all:
./tools/hlint.sh -f all -m check

.PHONY: hlint-inplace-all
hlint-inplace-all:
./tools/hlint.sh -f all -m inplace

.PHONY: hlint-check-pr
hlint-check-pr:
./tools/hlint.sh -f pr -m check

.PHONY: hlint-inplace-pr
hlint-inplace-pr:
./tools/hlint.sh -f pr -m inplace

.PHONY: hlint-check
hlint-check:
./tools/hlint.sh -f changeset -m check

.PHONY: hlint-inplace
hlint-inplace:
./tools/hlint.sh -f changeset -m inplace
Expand All @@ -179,27 +192,35 @@ check-local-nix-derivations: regen-local-nix-derivations
services: init install
$(MAKE) -C services/nginz

# formats everything according to treefmt rules
# this may take a while (5 minutes) on first run but should be instant on
# any subsequent run except after you have changed files.
# formats all Haskell files (which don't contain CPP)
.PHONY: format
format:
treefmt
./tools/ormolu.sh

# formats all Haskell files changed in this PR, even if local changes are not committed to git
.PHONY: formatf
formatf:
./tools/ormolu.sh -f pr

# checks the format
# formats all Haskell files even if local changes are not committed to git
.PHONY: formatf-all
formatf-all:
./tools/ormolu.sh -f all

# checks that all Haskell files are formatted; fail if a `make format` run is needed.
.PHONY: formatc
formatc:
treefmt-check
formatc:
./tools/ormolu.sh -c

# For any Haskell or Rust file, update or add a license header if necessary.
# Headers should be added according to Ormolu's formatting rules, but please check just in case.
.PHONY: add-license
add-license:
# Check headroom is installed.
# Check headroom is installed. If not, please run 'stack install headroom'
command -v headroom
headroom run
@echo ""
@echo "you might want to run 'make format' now to make sure ormolu is happy"
@echo "you might want to run 'make formatf' now to make sure ormolu is happy"

.PHONY: treefmt
treefmt:
Expand Down Expand Up @@ -276,13 +297,16 @@ db-reset: c
./dist/brig-index reset \
--elasticsearch-index-prefix directory \
--elasticsearch-server https://localhost:9200 \
--elasticsearch-ca-cert ./services/brig/test/resources/elasticsearch-ca.pem \
--elasticsearch-credentials ./services/brig/test/resources/elasticsearch-credentials.yaml > /dev/null
./dist/brig-index reset \
--elasticsearch-index-prefix directory2 \
--elasticsearch-server https://localhost:9200 \
--elasticsearch-ca-cert ./services/brig/test/resources/elasticsearch-ca.pem \
--elasticsearch-credentials ./services/brig/test/resources/elasticsearch-credentials.yaml > /dev/null
./integration/scripts/integration-dynamic-backends-brig-index.sh \
--elasticsearch-server https://localhost:9200 \
--elasticsearch-ca-cert ./services/brig/test/resources/elasticsearch-ca.pem \
--elasticsearch-credentials ./services/brig/test/resources/elasticsearch-credentials.yaml > /dev/null


Expand Down Expand Up @@ -544,8 +568,8 @@ helm-template-%: clean-charts charts-integration
./hack/bin/helm-template.sh $(*)

# Ask the security team for the `DEPENDENCY_TRACK_API_KEY` (if you need it)
# changing the directory is necessary because of some quirkiness of how
# runhaskell / ghci behaves (it doesn't find modules that aren't in the same
# changing the directory is necessary because of some quirkiness of how
# runhaskell / ghci behaves (it doesn't find modules that aren't in the same
# directory as the script that is being executed)
.PHONY: upload-bombon
upload-bombon:
Expand Down
5 changes: 4 additions & 1 deletion cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ packages:
, tools/db/inconsistencies/
, tools/db/migrate-sso-feature-flag/
, tools/db/move-team/
, tools/db/phone-users/
, tools/db/repair-handles/
, tools/db/repair-brig-clients-table/
, tools/db/service-backfill/
Expand Down Expand Up @@ -127,6 +128,8 @@ package proxy
ghc-options: -Werror
package mlsstats
ghc-options: -Werror
package phone-users
ghc-options: -Werror
package rabbitmq-consumer
ghc-options: -Werror
package repair-handles
Expand Down Expand Up @@ -179,6 +182,6 @@ package fedcalls
-- - these packages have bounds that are justified with their current
-- dependency set, however, we have updated their dependencies, such
-- that they work with newer base and ghc (api) versions
allow-newer:
allow-newer:
, proto-lens-protoc:base
, proto-lens-protoc:ghc
52 changes: 37 additions & 15 deletions cassandra-schema.cql
Original file line number Diff line number Diff line change
Expand Up @@ -1720,19 +1720,17 @@ CREATE TABLE galley_test.mls_proposal_refs (
AND speculative_retry = '99PERCENTILE';
CREATE KEYSPACE gundeck_test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true;

CREATE TABLE gundeck_test.push (
ptoken text,
app text,
transport int,
client text,
connection blob,
usr uuid,
PRIMARY KEY (ptoken, app, transport)
) WITH CLUSTERING ORDER BY (app ASC, transport ASC)
AND bloom_filter_fp_chance = 0.1
CREATE TABLE gundeck_test.data_migration (
id int,
version int,
date timestamp,
descr text,
PRIMARY KEY (id, version)
) WITH CLUSTERING ORDER BY (version ASC)
AND bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'}
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
Expand Down Expand Up @@ -1790,10 +1788,16 @@ CREATE TABLE gundeck_test.meta (
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';

CREATE TABLE gundeck_test.notification_payload (
id uuid PRIMARY KEY,
payload blob
) WITH bloom_filter_fp_chance = 0.1
CREATE TABLE gundeck_test.push (
ptoken text,
app text,
transport int,
client text,
connection blob,
usr uuid,
PRIMARY KEY (ptoken, app, transport)
) WITH CLUSTERING ORDER BY (app ASC, transport ASC)
AND bloom_filter_fp_chance = 0.1
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'}
Expand Down Expand Up @@ -1832,6 +1836,24 @@ CREATE TABLE gundeck_test.user_push (
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';

CREATE TABLE gundeck_test.notification_payload (
id uuid PRIMARY KEY,
payload blob
) WITH bloom_filter_fp_chance = 0.1
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';
CREATE KEYSPACE spar_test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true;

CREATE TABLE spar_test.bind_cookie (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ spec:
metadata:
name: "{{.Release.Name}}"
labels:
app: galley-migrate-data
app: galley-migrate-data
heritage: {{.Release.Service | quote }}
release: {{.Release.Name | quote }}
Expand Down
59 changes: 59 additions & 0 deletions charts/cassandra-migrations/templates/gundeck-migrate-data.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# This jobs runs migrations on the gundeck DB using the gundeck-migrate-data tool.
# The source for the tool can be found at services/gundeck in the wire-server
# repository.
{{- if .Values.enableGundeckMigrations }}
apiVersion: batch/v1
kind: Job
metadata:
name: gundeck-migrate-data
labels:
app: "cassandra-migrations"
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook-weight": "10"
"helm.sh/hook-delete-policy": "before-hook-creation"
spec:
template:
metadata:
name: "{{.Release.Name}}"
labels:
app: gundeck-migrate-data
heritage: {{.Release.Service | quote }}
release: {{.Release.Name | quote }}
chart: "{{.Chart.Name}}-{{.Chart.Version}}"
spec:
restartPolicy: OnFailure
containers:
- name: gundeck-migrate-data
image: "{{ .Values.images.gundeckMigrateData }}:{{ .Values.images.tag }}"
imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }}
{{- if eq (include "includeSecurityContext" .) "true" }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 12 }}
{{- end }}
args:
- --cassandra-host
- "{{ template "cassandraGundeckHost" . }}"
- --cassandra-port
- "9042"
- --cassandra-keyspace
- gundeck
{{- if eq (include "useTlsGundeck" .) "true" }}
- --tls-ca-certificate-file
- /certs/gundeck/{{- (include "tlsSecretRefGundeck" . | fromYaml).key }}
{{- end }}
{{- if eq (include "useTlsGundeck" .) "true" }}
volumeMounts:
- name: gundeck-cassandra-cert
mountPath: "/certs/gundeck"
{{- end }}
{{- if eq (include "useTlsGundeck" .) "true" }}
volumes:
- name: gundeck-cassandra-cert
secret:
secretName: {{ (include "tlsSecretRefGundeck" . | fromYaml).name }}
{{- end }}
{{- end }}
1 change: 1 addition & 0 deletions charts/cassandra-migrations/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ images:
galley: quay.io/wire/galley-schema
spar: quay.io/wire/spar-schema
galleyMigrateData: quay.io/wire/galley-migrate-data
gundeckMigrateData: quay.io/wire/gundeck-migrate-data
sparMigrateData: quay.io/wire/spar-migrate-data

# Setting cassandra host name and replication is mandatory to specify.
Expand Down
10 changes: 0 additions & 10 deletions charts/inbucket/Chart.yaml

This file was deleted.

10 changes: 0 additions & 10 deletions charts/inbucket/README.md

This file was deleted.

4 changes: 0 additions & 4 deletions charts/inbucket/requirements.yaml

This file was deleted.

Loading