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 2024-04-25 - (expected chart version 4.42.0) #4020

Merged
merged 126 commits into from
Apr 25, 2024

Conversation

zebot
Copy link
Contributor

@zebot zebot commented Apr 25, 2024

[2024-04-25] (Chart Release 4.42.0)

Release notes

  • There is a new optional Boolean in Brig's Helm chart, config.multiSFT.enabled,
    signalling whether calls between federated SFT servers are allowed. (Credential Provisioning for SFT authentication #3915)

    IMPORTANT: The value of this new option needs be set to the value of
    multiSFT.enabled in SFT's Helm chart. Otherwise federated SFT servers won't
    work.

    If provided, the field is_federating in the response of /calls/config/v2
    will reflect multiSFT.enabled's value.

    Example:

    # [brig/values.yaml]
    multiSFT:
      enabled: true
    

    Also, the optional object sftToken with its fields ttl and secret define
    whether an SFT credential would be rendered in the response of
    /calls/config/v2. The field ttl determines the seconds for the credential to
    be valid and secret is the path to the secret shared with SFT to create
    credentials.

    Example:

    # [brig.yaml]
    sft:
      sftBaseDomain: sft.wire.example.com
      sftSRVServiceName: sft
      sftDiscoveryIntervalSeconds: 10
      sftListLength: 20
      sftToken:
        ttl: 120
        secret: /path/to/secret
    
  • The "addClient" internal endpoint of galley has been changed. This can cause temporary failures during upgrades if brig attempts to use this endpoint on a different version of galley. (Serialisation of client capabilities #3904)

  • Removed the deprecated and unused field geoDb from Brig's config. (remove geoDb option from Brig #3975)

  • Added support for 3 more MLS ciphersuites. To enable MLS, all supported signature schemes (ed25519 and the three ecdsa variants) now need to have private keys specified in galley's configuration file. (New MLS ciphersuites #3964)

API changes

Features

Bug fixes and other updates

Documentation

Internal changes

Federation changes

  • The on-conversation-updated notification is now queued instead of being sent directly. A new version of the notification has been introduced with a different JSON format for the body, mostly for testing purposes of the versioning system.

    Since the notification is now sent asynchronously, some error conditions in case of unreachable backends cannot be triggered anymore. ([WPB-183] Version federation API queue notifications #3831)

  • Versioning of backend to backend notifications. Notifications are now stored in "bundles" containing a serialised payload for each supported version. The background worker then dynamically selects the best version to use and sends only the notification corresponding to that version.
    ([WPB-183] Version federation API queue notifications #3831)

arthurwolf and others added 30 commits March 19, 2023 19:23
Master->Develop after release
* Block changes to some user data in mlsE2EId teams (WPB-6189)

- Integration tests
- block changes in the backend.
- lie about managed_by in `GET /self`, but only there.

* Revert "Block changes to some user data in mlsE2EId teams (WPB-6189)"

This reverts commit c715642.

* Block changes to some user data in mlsE2EId teams (WPB-6189) (#3833)

- Integration tests
- block changes in the backend.
- lie about managed_by in `GET /self`, but only there.

* refactor: use GitHub forks (#3841)

Use GitHub wireapp forks for nix dependencies

* Move repository from GitLab to GitHub (#3843)

* fix: use correct url (#3840)

* [Q1-2024] WPB-4657 disable development API version (#3832)

* [feat] update documentation on how to build `wire-server` (#3867)

* [Q1-2024] WPB-6351 fix: diya elna return 500 on register endpoint zulu (#3864)

* fix Helm pretty-printer for disabledAPIVersions (#3877)


`disabledAPIVersions` is a list which Helm would print as `[item1 item2]` into
YAML, thus, corrupting the YAML format. This can be mitigated by applying the
Helm template function `toJson` (or `toYaml`) to the list in question which
would format the list as `["item1", "item2"]`. This is no issue for scalars,
since Helm's format coincidently matches the one required by YAML.

* fix integration-cleanup.sh to match prefix only (#3885)


The `-f` filter is a regex and should match the prefix `test-`, thus,
the regex should be `^test-`. Without `^`, the search string is looked
up in the entire release name.

---------

Co-authored-by: Matthias Fischmann <mf@zerobuzz.net>
Co-authored-by: Marco <marcoconti83@gmail.com>
Co-authored-by: Stefan Matting <smatting@users.noreply.github.com>
Co-authored-by: Leif Battermann <leif.battermann@wire.com>
Co-authored-by: Mango The Fourth <40720523+MangoIV@users.noreply.github.com>
Co-authored-by: Stefan Berthold <stefan.berthold@wire.com>
Co-authored-by: Sven Tennie <sven.tennie@wire.com>
* Test: no MLS 1-to-1 when a connection is blocked

* Test: a test with expected behavior after blocking the connection

* Check if sending a msg to 1-to-1 and not connected

* Add a changelog

* WIP: Debugging a test failure

* Update the confirming test

* Revert "Check if sending a msg to 1-to-1 and not connected"

This reverts commit c4af150.

* WIP: generalise the Update.blockConv handler

* Connections: Also block MLS one2one conv when blocking conn

* Test: Parameterise over One2OneScenario

* Add the missing connection ID in an internal endpoint

* Wrap a function comment for readability

* Introduce a Galley internal endpoint: blocking a qualified conversation

* WIP: Check if an MLS 1-1 conv exists before blocking

What is left to do is to make this check work for an MLS 1-1 conv that
can be remote

* Make upsertOne2OneConv always take a Conv ID

Brig can determine this ID based on protocol of the conversation or read it from
the DB. Inventing this in galley causes more trouble for having two One2One
convs for proteus and mls.

* WIP: Remove user from 1:1 MLS conv when they block someone

* WIP: Remove mls clients on connection block

* fixup! WIP: Remove mls clients on connection block

* Make sure 1-1 conv is established before updating

* Finalise the bug-confirming test

* Remove debugging output from application code

* Fix a changelog

* Remove redundant constraints

* Properly check if an MLS 1-1 conversation exists before blocking it

* Remove more of unused code

* Remove an unused connection ID in an internal Galley endpoint for blocking a conv

---------

Co-authored-by: Akshay Mankar <akshay@wire.com>
* [fix] use -e flag to abort when `docker-compose` fails
* [feat] make `HasTests` easier to use
- delegate only the testcase generation to the user
- use an OVERLAPPABLE default instance if the type is a Generic Enum
- cover more cases
- don't use newtype Wrappers wherever possible
* [feat] port over flaking Legalhold tests and delete them from galley integration 
* [feat] minor testlib improvements and additions 
---------

Co-authored-by: Matthias Fischmann <mf@zerobuzz.net>
This commit contains two things:

1. Add fields to the log message such that mismatches between stored and app-provided data become more obvious.
2. Fix an AWS SNS Endpoint parsing bug: We parsed the environment up to the first dash. But, environment names may contain dashes themselves, thus we must accumulate them up to the last dash.
The request id was missing in the Env. This led to "N/A" being logged. This commit adapts the approach of adding request IDs from brig.
* Use Multiverb in add-client endpoint

* Add versioned Client schema

* Add v5 version of more client endpoints

* Version client list

* Update golden files

* Add CHANGELOG entry
* Upgrade kind to latest version (unpin kind)

* Deploy cert-manager and cert for federation in kind

* Deploy mandarin version to wire-federation-v0 namespace in kind

* Less confusing encoding-decoding of federation ca certificates in test setup

---------

Co-authored-by: Akshay Mankar <akshay@wire.com>
* Don't remove MLS clients from a 1-1 conversation

* Update the changelog
…llerValue (#3910)

This is required for the controller to only watch this class
* charts/background-worker: Fix name of the service monitor

* changelog
…the path (helm chart) (#3916)

the process name should not contain the path
arthurwolf and others added 24 commits April 17, 2024 15:05
added a configuration option for IP binding for coturn, and example u…
* Move around Cql instances.

---------

Co-authored-by: Igor Ranieri <igor@elland.me>
* [feat] add coding-conventions.md to developer docs

* [chore] changelog entry

* Slight wording improvement

---------

Co-authored-by: Marko Dimjašević <marko.dimjasevic@wire.com>
#4001)

* Drop 'cs' from types-common

* Drop 'cs' from metrics-wai

* Drop 'cs' from extended

* Drop 'cs' from wai-utilities

* Drop 'cs' from wire-api

* Drop 'cs' from polysemy-wire-zoo

* Drop 'cs' from gundeck-types

* Drop 'cs' from wire-api-federation

* Drop 'cs' from galley-types

* Drop 'cs' from bilge

* Drop 'cs' from jwt-tools

* Drop 'cs' from federator

* Drop 'cs' from spar

* Drop 'cs' from brig

* Drop 'cs' from galley

* Drop 'cs' from gundeck

* Drop 'cs' from cannon

* Drop 'cs' from move-team

* Drop 'cs' from inconsistencies

* Drop 'cs' from stern

* Drop 'cs' from cargohold

* Drop 'cs' from wire-subsystems

* Drop 'cs' from rabbitmq-consumer

* [feat] cs: rest of the owl


---------

Co-authored-by: Magnus Viernickel <magnus.viernickel@wire.com>
Co-authored-by: Leif Battermann <leif.battermann@wire.com>
Co-authored-by: Matthias Fischmann <mf@zerobuzz.net>
* [chore] use treefmt for everything

Co-authored-by: Matthias Fischmann <mf@zerobuzz.net>

---------

Co-authored-by: Matthias Fischmann <mf@zerobuzz.net>
* Add gunzip middleware to spar

* Add gunzip middleware to proxy
…sting and target user (#3923)

Previous logic limited how many keys could be claimed for one user, but
continued limiting claims on multiple users. This causes problems while creating
conversations when a lot of key package claims are needed.

This commit introduces a concept of specific_rate_limits which allow setting
multiple rate limit zones in nginz. Here we use one for limiting how many key
packages can be claimed by a user per target and another for limiting how many
key packages claimed by a user for any target.
To ensure certificate revocations get active in a short time frame, disable
caching of proxy results on client side by setting respective HTTP headers.
* bump fluebt-bit helm chart version to 0.46.2

* add config for syslog output

* add changelog
…rom-q1-2024

Backport changes from `q1-2024` to `develop` (Apr 23, 2024)

Done as part of WPB-8764.
* Add one ECDSA ciphersuite

* Fix ECDSA signature decoding

* Create test clients using correct signature scheme

* Fix unsupported ciphersuite test

* Create one mls-test-cli store per signature scheme

* Add MLS_256_DHKEMP384_AES256GCM_SHA384_P384

* Add MLS_256_DHKEMP521_AES256GCM_SHA512_P521

* Fix secp384 signature verification

* Fix x509 credential validation

* Update mls-test-cli to 0.11

* Turn TODO into FUTUREWORK

* Add failing test showing incorrect backend signature

* Store private keys for other signature schemes

* Parse ECDSA private keys

* Encode ECDSA signatures

* Pass removal key correctly to mls-test-cli

* MLSKeys: Move from maps to records for config and public key endpoint

* Adapt to MLSKeys changes in galley

* Move GET /mls/public-keys test to new integration suite

* Remove SignaturePurpose type

* Add golden tests for MLSKeys

The JSON files were generated using the code before this refactoring

* Document new removal key config options

* Test public key endpoint when MLS is not enabled

* Fix galley configmap

* Make withCiphersuite exception-safe

---------

Co-authored-by: Akshay Mankar <akshay@wire.com>
Co-authored-by: Leif Battermann <leif.battermann@wire.com>
@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label Apr 25, 2024
@elland elland merged commit 02d3bf3 into master Apr 25, 2024
8 checks passed
@elland elland deleted the release_2024-04-25_11_46 branch April 25, 2024 12:23
@echoes-hq echoes-hq bot added echoes: throughput Changes intended at preserving our ability to evolve the software safely and effectively echoes: technical-debt Changes intended at mitigating risks labels Jun 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
echoes: technical-debt Changes intended at mitigating risks echoes: throughput Changes intended at preserving our ability to evolve the software safely and effectively ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist
Projects
None yet
Development

Successfully merging this pull request may close these issues.