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 2023-10-23 - (expected chart version 4.39.0) #3668

Merged
merged 312 commits into from
Oct 23, 2023

Conversation

zebot
Copy link
Contributor

@zebot zebot commented Oct 23, 2023

[2023-10-23] (Chart Release 4.39.0)

Release notes

  • New field for Supported protocols in Galley's MLS feature config

    Galley will refuse to start if the list supportedProtocols does not contain
    the value of the field defaultProtocol. Galley will also refuse to start if
    MLS migration is enabled and MLS is not part of supportedProtocols.

    The default value for supportedProtocols is:

    [proteus, mls]
    

(#3374)

API changes

Features

Bug fixes and other updates

Documentation

Internal changes

Federation changes

akshaymankar and others added 30 commits April 20, 2023 11:36
* wire-api: add ProtocolMixedTag (with undefined stubs)

* wip

* wire-api

* fix bug in schema

* galley int test: fix some types

* libs/api-client fix type

* brig-integration: fix some types

* Add endpoint type

* wip

* add updateMixedProtocol

* wire-api add json instances to ProtocolTag

* add test

* Rename test group

* fix bug

* Add TODO

* Add failing test

* Add creator client to conversation

* Revert "Add TODO"

This reverts commit c3ed0c8.

* refactor tests and add failing test step

* Allow proteus messages on mixed protocol

* Add changelog entry

* Add nginz route

* hi ci

* hi ci

* finish leftover TODOs in protocolValidAction

* Fix bug in schema of ProtocolUpdate

* update docs: start-serices-only -> run-services

* Allow no-op state transitions
* Add variable-sized integer serialisation

* Implement new MLS structures

* Fix KeyPackage parser

* Fix MLS signature verification

Signatures in MLS are computed on a special `SignContent` structure, so
we need to replicate that for verification.

* Update paths now contain leaf nodes

* Remove proposals now have indices instead of refs

* Adapt integration tests to remove proposal changes

* Compute new node index for add proposals

* New commit bundle API

Also replace PublicGroupState with GroupInfo

* Add instances for roundtrip tests of MLS types

* fix adding users to MLS conversations

* change content-type of commit bundle in integration tests
* fix keypackage ref serialisation
* add context to commit bundle parsing

* fix integration test: send other user's commit

* keep track of index map while processing proposals
* add creator client to ProposalAction in epoch 0

* readGroupState for the new group.json format

* Generate welcome recipients when processing bundle

Also remove old unsupported welcome endpoints. All welcome messages now
need to be sent through commit bundles.

* Send recipients as part of a welcome RPC

* Use commit bundles in failure tests

* Implement new proposal ref computation

* fix integration test admin removes user from a conversation

* switch mls-test-cli call to external-proposal

* Implement validation of leaf nodes in galley

- extract core validation function to wire-api
- generalise validation of leaf node source
- implement validation of key packages and leaf nodes in galley
- remove all internal brig endpoints related to validation
- validate leaf node in external commits
- validate leaf node signature

* Apply proposals in the correct order

* Remove redundant GroupContext structure

* Re-implement processing of external commits

* add references from data types to MLS spec

* Remove key package mapping code

* fix more integration tests

* track client scheduled for removal in Cassandra

[ ] conversations
[x] subconversations

* minor typos

* split executing proposals for int and ext commits

* execute remove proposals before add proposals

This makes sure that all leaf indices are freed in the database before
they are occupied again.

* rename Word32 and ref to LeafIndex and idx

* Remove MissingSenderClient error

* Remove some prefixes from MLS structures

* Remove prefixes from RawMLS fields

* Reorganise TODOs

* Check epoch again after taking commit lock

* Remove MLSPackageRefNotFound error

* Simplify testRemoveUserParent

* Simplify testRemoveCreatorParent

* Pass correct list of clients to planClientRemoval

* Fix assertion in external add proposal test

* Propagate actual message, not just commit

* Fix signature calculation when generating messages

* Pass removal key to mls-test-cli on group creation

* Take pending clients into account in removal logic

* Fix assertion in remove proposal test

* apply linter suggestions

* fix unit test: MLS remove proposal

* Upgrade mls-test-cli in the nix environment

* Update cassandra-schema.cql

* disable testing the keypackage lifetime

* remove checks for keypackage assignments

* validate bare proposals and inline proposal

* rephrase and filter the left TODOs

* Verify that capabilities include basic credentials

* Add nonce to PreSharedKeyID structure

* Split Galley.API.MLS.Message

* Inline executeIntCommitProposalAction

* Use more specific type for external commit actions

* Re-organise TODOs

* Simplify processProposal arguments

* Remove LWT in planMLSClientRemoval

* Restore unsupported proposal test

* Restore disabled MLS unit tests

* Add CHANGELOG entries

* Document IndexMap and ClientMap

* fixup! Restore unsupported proposal test

* Linter fix

* fixup! Upgrade mls-test-cli in the nix environment

* Fix: make git-add-cassandra-schema-impl lists to many keyspaces

* postMLSMessageToLocalConv: return no events

* Remove unused paExternalInit

* Renew certificates for e2e integration tests (#3243)

* Renew certificates for e2e integration tests

* Document how to renew e2e integration test certs

Co-authored-by: Igor Ranieri <igor@elland.me>

* fix broken tests

* ExternalCommitAction: remove superfluous ClientIdentity

---------

Co-authored-by: Stefan Matting <stefan@wire.com>
Co-authored-by: Stefan Berthold <stefan.berthold@wire.com>
Co-authored-by: Akshay Mankar <akshay@wire.com>
Co-authored-by: Igor Ranieri <igor@elland.me>
* Move some MLS tests to new integration suite

* Add CHANGELOG entry
* Add endpoint to delete key packages

* Add integration test for key package deletion
* migrate test that adds user via mls

* mls-test-cli: make show use json

* testlib: assertOne, asByteString

* Add test: user leaves -> remove proposal

* wip test: adding partial client set to mixed

* migrate test testAddUserPartial

* make test fail

* Use new test parametrization

* asInt -> asIntegral

* migrate testRemoveClientsIncomplete

* Add HasCallStack to getJSON

* Add test for removing partial clients

* Refactor: use fields

* integration: rename functions and improve errors

* Add test: remote backend doesnt know about about mixed protocol convs

* Deny application msgs for mixed (with test)

* fix mixed remote test

* Add testFirstCommitAllowsPartialAdds

* Only allow protocol updates for team conversations

* Call on-new-remote-conversation on protocol update

* Test remote user adding

* remove migrated test

---------

Co-authored-by: Paolo Capriotti <paolo@capriotti.io>
* Fix golden tests for MLSMessageSendigStatus
* Port what used to be MLS/Message.hs
* Throw instead of relying on failed_to_add

In MLS a commit is rejected anyway so there is no point in passing
through FailedToProcess. Instead, a federator error is thrown if there
are unreachable backends when submitting an add commit.

* Test adding to an MLS conversation
* Fix: use the mls_migration_lock_status DB column

- This is a bug to be fixed in the main MLS branch too
…bconversation ID (#3309)

Removed federation endpoints
- on-new-remote-conversation,
- on-new-remote-subconversation, and
- on-delete-mls-conversation.

Removed effects
- Galley.Effects.SubConversationSupply.
It should be possible for the `Capabilities` structure to contain
unknown version, proposal, credential and extension tags.
* [FS-1915]  Include conversation id into welcome message event

* Hi ci
pcapriotti and others added 25 commits October 12, 2023 15:02
Co-authored-by: Marko Dimjašević <marko.dimjasevic@wire.com>
…ooting

add DNS troubleshooting documentation
* Add test reproducing MLS notification bug

* Collect recipients by user before pushing notif

* Fix remote MLS message notifications

Reorganise remote MLS message recipients by user, so that notifications
can be more easily reconstructed on the receiving side.
…p unused member_client table (#3648)

* galley: Truncate the mls_group_member_client table

Pre MLS draft-17, the table didn't have a couple of fields. Nothing in the API
blocked creation of MLS clients in prod. So, the table might now contain some
nulls which the application code doesn't handle very well. This will get rid of
all such clients as it is easier to do this than to expect the nulls.

* galley: Drop table member_client

The table is unused.

* Changelog

* Remove data migration from member_client

That table doesn't exist anymore, so the data migration will fail.

---------

Co-authored-by: Paolo Capriotti <paolo@capriotti.io>
…the leave event (#3640)

* [feat] attach the reason for a member to leave a conversation to the leave event
Add documentation of team/backend distinction, as per WPB-4344
`proto-lens` already provides wrappers around the usage, so we should stick to those.
This can happen due to some credentials being missing, the steps afterwards
delete the whole namespace anyway.

Also in this commit:

Use 1 kubectl command to delete both namespaces, its faster like this because
kubectl deletes them in parallel and kubeneretes can destroy resources inside in
parallel.
* update outlook addin version, remove unneccesary value

* fix: spacing, yaml formatting
…ons (#3647)

* Move a Brig federation endpoint in the API
* Move a Brig fed API notif endpoint to a module
* Move Galley federation endpoints in the API
* Move Galley notification endpoints
* A type alias for notification endpoints
* Add a changelog
* Define Galley notification API via types
* Convert a federation notification endpoint to a BackendNotification
* Stop using Servant client for 'fedQueueClient'
@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label Oct 23, 2023
@elland elland merged commit 17afbcb into master Oct 23, 2023
8 checks passed
@elland elland deleted the release_2023-10-23_07_30 branch October 23, 2023 08:33
@echoes-hq echoes-hq bot added the echoes: technical-debt Changes intended at mitigating risks label Jul 1, 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 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.