Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 2025-02-07 - (expected chart version 5.11.0) #4445

Merged
merged 50 commits into from
Feb 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
ed23e18
Merge pull request #4394 from wireapp/master
fisx Dec 30, 2024
ffbb784
federator: Close sockets on SIGINT/SIGTERM (#4398)
akshaymankar Jan 7, 2025
1e0175f
integration/testChannelKilled: Wait for connection to disappear befor…
akshaymankar Jan 7, 2025
5da2473
fix bug: consent request not correctly forwarded to galeb (#4376)
smatting Jan 7, 2025
657a46a
integration: Bring back port checking for dynamic backends (#4401)
akshaymankar Jan 7, 2025
5c8273f
integration: Print more information when a dynamic backend fails to s…
akshaymankar Jan 8, 2025
da19064
integration/testChannelKilled: Kill previous connections to RabbitMQ …
akshaymankar Jan 8, 2025
413d9d0
charts: Use bitnami helm repo from github (#4405)
akshaymankar Jan 8, 2025
c7bb078
WPB-15030 Delete deprecated and unqualified endpoints from V8 (#4407)
battermann Jan 10, 2025
768bc78
integration: deflake testTransientEventsDoNotTriggerDeadLetters (#4406)
akshaymankar Jan 13, 2025
d227425
cannon: Create queue before responding to the websocket (#4404)
akshaymankar Jan 14, 2025
55dd92c
TLS support for cannon and background-worker (#4410)
stefanwire Jan 14, 2025
b9959a6
charts/background-worker: Explicitly remove serviceAccount (#4411)
akshaymankar Jan 15, 2025
8b85c47
Stabilize index migration tests (#4413)
supersven Jan 17, 2025
ca0688b
/i/index/refresh : Refresh additional index on same ElasticSearch (#4…
supersven Jan 21, 2025
0b236a6
WPB-14307 internal spar endpoint to get the team's identity providers…
battermann Jan 21, 2025
64d4f04
[WPB-14310] adjust existing onboarding flow to new domain registratio…
fisx Jan 22, 2025
bc2c43c
[WPB-14307] domain verification (enterprise feature) (#4389)
supersven Jan 23, 2025
81ae37e
Fix nits of #4389 (#4420)
pcapriotti Jan 24, 2025
690b894
Fix 503 on registration with disabled enterprise service (#4421)
pcapriotti Jan 24, 2025
460de54
fix add bots to conversations (#4424)
stefanwire Jan 27, 2025
ca61c00
fix to use the correct path for bots to conversations (#4425)
mastaab Jan 28, 2025
3bfc2a7
WPB-15723 Fix Bot ACL config (#4426)
battermann Jan 28, 2025
bc8fb05
Merge 5.10.0 from master
fisx Jan 28, 2025
f0116ff
WPB-15551 Domain Registration Team Feature (#4429)
battermann Jan 29, 2025
527e56d
Make wire-server-enterprise point to main history (#4430)
pcapriotti Jan 30, 2025
4b077af
MLS: send ext commit before sending ext proposals (#4412)
stefanwire Jan 30, 2025
5483a77
WPB-14307 Update Authentication Flow (#4422)
battermann Jan 30, 2025
39541ef
Refactor EnterpriseLoginSubsystem
akshaymankar Jan 22, 2025
aea7ed0
Refactor `GuardEmailDomainRegistrationRegister`.
fisx Jan 29, 2025
84d9bbe
Refactor minibackend: hierarchical interpreters
fisx Jan 30, 2025
46f2dc6
Refactor minibackend: hierarchical interpreters: extract state effs.
fisx Jan 30, 2025
3d1bf0e
Refactor minibackend: hierarchical interpreters: extract input effs.
fisx Jan 30, 2025
0ea45e1
Fixup
fisx Jan 30, 2025
edff6cc
Fixup
fisx Jan 30, 2025
c3645a0
WPB-14307 Fix nginx configs (#4434)
battermann Jan 30, 2025
19e7b46
Fixup...
fisx Jan 31, 2025
4936823
Fixup...
fisx Jan 31, 2025
89c3e10
WPB-15551 Domain Registration Team Feature Integration (#4433)
battermann Jan 31, 2025
489653a
hi ci
fisx Jan 31, 2025
fbeecb8
Fixup (also sorry ci :-)
fisx Jan 31, 2025
7d439e6
Better use of EnterpriseLoginSubsystem interface.
fisx Jan 31, 2025
6faf9d0
Revert "Better use of EnterpriseLoginSubsystem interface."
fisx Jan 31, 2025
500bfac
Merge pull request #4418 from wireapp/WPB-14310-refactor-get-domain-reg
fisx Feb 1, 2025
18b76d8
Save group info within commit lock (#4436)
pcapriotti Feb 3, 2025
b3b37a9
Fix 503 on team invitation with wire-server-enterprise disabled (#4439)
pcapriotti Feb 3, 2025
b0934a3
WPB-15801 GET and DELETE Registered Domains (#4438)
battermann Feb 3, 2025
d8c8665
WPB-15933 Special case of getDomainRegistrationPublic (#4441)
pcapriotti Feb 3, 2025
413a66f
Test single consumer behaviour of notifications (#4443)
pcapriotti Feb 5, 2025
56cf903
Add changelog for Release 2025-02-07
zebot Feb 7, 2025
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: 0 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,3 @@
[submodule "services/wire-server-enterprise"]
path = services/wire-server-enterprise
url = https://github.com/wireapp/wire-server-enterprise
branch = main
67 changes: 67 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,70 @@
# [2025-02-07] (Chart Release 5.11.0)

## API changes


* New endpoints for domain registration and verification (#4389, #4422, #4433, #4434, #4438)
- POST /domain-verification/:domain/team
- POST /domain-verification/:domain/backend
- POST /domain-verification/:domain/challenges
- POST /domain-verification/:domain/challenges/:challengeId
- POST /domain-verification/:domain/authorize-team
- POST /get-domain-registration
- GET /teams/:tid/registered-domains
- DELETE /teams/:tid/registered-domains/:domain

* Deprecated API endpoints were removed from API version V8. (#4407)

* Add a flag to the response body of `POST /get-domain-registration` to indicate
whether `domain_redirect` is set to `none` due to the existence of a registered
account. This makes it possible for clients to let a user log in with an
existing cloud account even if a redirection to an on-prem backend is set up
for their domain. (#4441)


## Features


* Team feature config for domain registration (#4429)


## Bug fixes and other updates


* Fix 503 on user registration when the enterprise service is disabled (#4421)

* Fix 503 on team invitation when wire-server-enterprise is disabled (#4439)

* Fix bug in nginz: `/consent/<foo>` requests not correctly forwarded to `galeb`. (#4376)

* MLS: when recreating external (backend) proposals, these are now propagated to
the clients only after the corresponding external commit has been forwarded to
the clients. (#4412)

* MLS group info is now saved with the commit lock held. This prevents a bug where group info on a later commit was overwritten by an earlier group info, leading to out-of-sync MLS state between backends and clients. (#4436)


## Internal changes


* Internal spar endpoint to retrieve the team's identity providers (#4417)

* Adjust existing onboarding flow to new domain registration constraints.

Endpoints:

- POST /teams/{id}/invitations
- POST /register (#4409)

* federator: Install signal handlers for SIGINT and SIGTERM, close sockets when receiving these signals (#4398)

* /i/index/refresh now uses the correct URL for additional indices. Thus, the
refreshed indices can reside on different ElasticSearch instances. This
endpoint is exclusively called from tests. (#4413)

* Test single consumer behaviour of notifications (#4443)


# [2025-01-28] (Chart Release 5.10.0)

## Release notes
Expand Down
50 changes: 47 additions & 3 deletions cassandra-schema.cql
Original file line number Diff line number Diff line change
Expand Up @@ -355,9 +355,11 @@ CREATE TABLE brig_test.oauth_user_refresh_token (
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';

CREATE TABLE brig_test.users_pending_activation (
user uuid PRIMARY KEY,
expires_at timestamp
CREATE TABLE brig_test.domain_registration_challenge (
id uuid PRIMARY KEY,
challenge_token_hash blob,
dns_verification_token ascii,
domain text
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
Expand Down Expand Up @@ -556,10 +558,12 @@ CREATE TABLE brig_test.federation_remote_teams (

CREATE TABLE brig_test.domain_registration (
domain text PRIMARY KEY,
authorized_team uuid,
backend_url blob,
dns_verification_token ascii,
domain_redirect int,
idp_id uuid,
ownership_token_hash blob,
team uuid,
team_invite int
) WITH bloom_filter_fp_chance = 0.01
Expand Down Expand Up @@ -889,6 +893,24 @@ CREATE TABLE brig_test.connection_remote (
AND speculative_retry = '99PERCENTILE';
CREATE INDEX connection_remote_right_domain_idx ON brig_test.connection_remote (right_domain);

CREATE TABLE brig_test.users_pending_activation (
user uuid PRIMARY KEY,
expires_at timestamp
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
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
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 TABLE brig_test.connection (
left uuid,
right uuid,
Expand Down Expand Up @@ -1023,6 +1045,26 @@ CREATE TABLE brig_test.service_prefix (
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';

CREATE TABLE brig_test.domain_registration_by_team (
team uuid,
domain text,
PRIMARY KEY (team, domain)
) WITH CLUSTERING ORDER BY (domain 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.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
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 galley_test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true;

CREATE TYPE galley_test.permissions (
Expand Down Expand Up @@ -1153,6 +1195,8 @@ CREATE TABLE galley_test.team_features (
conference_calling_one_to_one int,
conference_calling_status int,
digital_signatures int,
domain_registration_lock_status int,
domain_registration_status int,
enforce_file_download_location text,
enforce_file_download_location_lock_status int,
enforce_file_download_location_status int,
Expand Down
21 changes: 14 additions & 7 deletions changelog.d/mk-changelog.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,27 +21,34 @@ for d in "$DIR"/*; do
# shellcheck disable=SC1003
sed '$ a\' "$d/.title"
echo ""
# shellcheck disable=SC2094
for f in "${entries[@]}"; do
pr=$(getPRNumber "$f")
# shellcheck disable=SC1003
sed -r '
< "$f" sed -r '
# create a bullet point on the first line
1 { s/^/\* /; }

# indent subsequent lines
1 !{ s/^/ /; }

# replace ## with PR number throughout
s/##/'"$pr"'/g

# add PR number at the end (unless already present)
$ { /^.*\((#.*)\)$/ ! { s/$/ ('"$pr"')/; } }

s/##/'"$pr"'/g' |
(
if grep -q -r '\(#[^)]\)' "$f"; then
cat
else
sed -r '
# add PR number at the end (unless already present)
$ { /^.*\((#.*)\)$/ ! { s/$/ ('"$pr"')/; } }
'
fi
) | sed -r '
# remove trailing whitespace
s/\s+$//

# make sure there is a trailing newline
$ a\' "$f"
$ a\'
done
echo ""
done
16 changes: 16 additions & 0 deletions charts/background-worker/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,19 @@
{{- define "includeSecurityContext" -}}
{{- (semverCompare ">= 1.24-0" (include "kubeVersion" .)) -}}
{{- end -}}

{{- define "useCassandraTLS" -}}
{{ or (hasKey .cassandra "tlsCa") (hasKey .cassandra "tlsCaSecretRef") }}
{{- end -}}

{{/* Return a Dict of TLS CA secret name and key
This is used to switch between provided secret (e.g. by cert-manager) and
created one (in case the CA is provided as PEM string.)
*/}}
{{- define "tlsSecretRef" -}}
{{- if .cassandra.tlsCaSecretRef -}}
{{ .cassandra.tlsCaSecretRef | toYaml }}
{{- else }}
{{- dict "name" "background-worker-cassandra" "key" "ca.pem" | toYaml -}}
{{- end -}}
{{- end -}}
15 changes: 15 additions & 0 deletions charts/background-worker/templates/cassandra-secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{{/* Secret for the provided Cassandra TLS CA. */}}
{{- if not (empty .Values.config.cassandra.tlsCa) }}
apiVersion: v1
kind: Secret
metadata:
name: background-worker-cassandra
labels:
app: background-worker
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
type: Opaque
data:
ca.pem: {{ .Values.config.cassandra.tlsCa | b64enc | quote }}
{{- end }}
3 changes: 3 additions & 0 deletions charts/background-worker/templates/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ data:
host: {{ .cassandra.host }}
port: 9042
keyspace: gundeck
{{- if eq (include "useCassandraTLS" .) "true" }}
tlsCa: /etc/wire/background-worker/cassandra/{{- (include "tlsSecretRef" . | fromYaml).key }}
{{- end }}

{{- with .rabbitmq }}
rabbitmq:
Expand Down
5 changes: 4 additions & 1 deletion charts/background-worker/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,12 @@ spec:
# An annotation of the configmap checksum ensures changes to the configmap cause a redeployment upon `helm upgrade`
checksum/configmap: {{ include (print .Template.BasePath "/configmap.yaml") . | sha256sum }}
checksum/secret: {{ include (print .Template.BasePath "/secret.yaml") . | sha256sum }}
checksum/cassandra-secret: {{ include (print .Template.BasePath "/cassandra-secret.yaml") . | sha256sum }}
fluentbit.io/parser: json
spec:
serviceAccountName: {{ .Values.serviceAccount.name }}
serviceAccount: null
serviceAccountName: null
automountServiceAccountToken: false
volumes:
- name: "background-worker-config"
configMap:
Expand Down
16 changes: 0 additions & 16 deletions charts/background-worker/templates/serviceaccount.yaml

This file was deleted.

8 changes: 0 additions & 8 deletions charts/background-worker/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,6 @@ config:
pushBackoffMaxWait: 300000000 # microseconds, so 300s
remotesRefreshInterval: 300000000 # microseconds, so 300s

serviceAccount:
# When setting this to 'false', either make sure that a service account named
# 'background-worker' exists or change the 'name' field to 'default'
create: true
name: background-worker
annotations: {}
automountServiceAccountToken: true

secrets: {}

podSecurityContext:
Expand Down
11 changes: 11 additions & 0 deletions charts/brig/templates/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ data:
host: galley
port: 8080

spar:
host: spar
port: 8080

gundeck:
host: gundeck
port: 8080
Expand All @@ -81,6 +85,12 @@ data:
host: federator
port: 8080

{{- if and (.wireServerEnterprise) (default false .wireServerEnterprise.enabled) }}
wireServerEnterprise:
host: wire-server-enterprise
port: 8080
{{- end }}

{{- with .rabbitmq }}
rabbitmq:
host: {{ .host }}
Expand Down Expand Up @@ -371,5 +381,6 @@ data:
{{- if .setAuditLogEmailRecipient }}
setAuditLogEmailRecipient: {{ .setAuditLogEmailRecipient }}
{{- end }}
setChallengeTTL: {{ or .setChallengeTTL 172800 }}
{{- end }}
{{- end }}
2 changes: 2 additions & 0 deletions charts/brig/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,8 @@ config:
smtp:
passwordFile: /etc/wire/brig/secrets/smtp-password.txt
proxy: {}
wireServerEnterprise:
enabled: false

turnStatic:
v1:
Expand Down
16 changes: 16 additions & 0 deletions charts/cannon/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,19 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
{{- define "includeSecurityContext" -}}
{{- (semverCompare ">= 1.24-0" (include "kubeVersion" .)) -}}
{{- end -}}

{{- define "useCassandraTLS" -}}
{{ or (hasKey .cassandra "tlsCa") (hasKey .cassandra "tlsCaSecretRef") }}
{{- end -}}

{{/* Return a Dict of TLS CA secret name and key
This is used to switch between provided secret (e.g. by cert-manager) and
created one (in case the CA is provided as PEM string.)
*/}}
{{- define "tlsSecretRef" -}}
{{- if .cassandra.tlsCaSecretRef -}}
{{ .cassandra.tlsCaSecretRef | toYaml }}
{{- else }}
{{- dict "name" "cannon-cassandra" "key" "ca.pem" | toYaml -}}
{{- end -}}
{{- end -}}
15 changes: 15 additions & 0 deletions charts/cannon/templates/cassandra-secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{{/* Secret for the provided Cassandra TLS CA. */}}
{{- if not (empty .Values.config.cassandra.tlsCa) }}
apiVersion: v1
kind: Secret
metadata:
name: cannon-cassandra
labels:
app: cannon
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
type: Opaque
data:
ca.pem: {{ .Values.config.cassandra.tlsCa | b64enc | quote }}
{{- end }}
3 changes: 3 additions & 0 deletions charts/cannon/templates/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ data:
host: {{ .config.cassandra.host }}
port: 9042
keyspace: gundeck
{{- if eq (include "useCassandraTLS" .config) "true" }}
tlsCa: /etc/wire/cannon/cassandra/{{- (include "tlsSecretRef" .config | fromYaml).key }}
{{- end }}

{{- with .config.rabbitmq }}
rabbitmq:
Expand Down
Loading