-
Notifications
You must be signed in to change notification settings - Fork 325
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
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 <[email protected]> Co-authored-by: Marco <[email protected]> Co-authored-by: Stefan Matting <[email protected]> Co-authored-by: Leif Battermann <[email protected]> Co-authored-by: Mango The Fourth <[email protected]>
Co-authored-by: Stefan Berthold <[email protected]> Co-authored-by: Sven Tennie <[email protected]>
* 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 <[email protected]>
* [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 <[email protected]>
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.
…se (commented) in the values file
* 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
This reverts commit 5fa42b5.
* 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 <[email protected]>
…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
added a configuration option for IP binding for coturn, and example u…
* Move around Cql instances. --------- Co-authored-by: Igor Ranieri <[email protected]>
* [feat] add coding-conventions.md to developer docs * [chore] changelog entry * Slight wording improvement --------- Co-authored-by: Marko Dimjašević <[email protected]>
#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 <[email protected]>
Co-authored-by: Leif Battermann <[email protected]> Co-authored-by: Matthias Fischmann <[email protected]>
* [chore] use treefmt for everything Co-authored-by: Matthias Fischmann <[email protected]> --------- Co-authored-by: Matthias Fischmann <[email protected]>
* Add gunzip middleware to spar * Add gunzip middleware to proxy
… getting one2one conversations (#3918)
…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 <[email protected]>
Co-authored-by: Leif Battermann <[email protected]>
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
battermann
approved these changes
Apr 25, 2024
echoes-hq
bot
added
echoes: technical-roadmap/throughput
More specific category, to highlight task aiming at improving the development velocity and effici...
echoes: technical-roadmap/technical-debt
More specific category, to highlight Technical Debt being tackled.
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-roadmap/technical-debt
More specific category, to highlight Technical Debt being tackled.
echoes: technical-roadmap/throughput
More specific category, to highlight task aiming at improving the development velocity and effici...
ok-to-test
Approved for running tests in CI, overrides not-ok-to-test if both labels exist
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[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'twork.
If provided, the field
is_federating
in the response of/calls/config/v2
will reflect
multiSFT.enabled
's value.Example:
Also, the optional object
sftToken
with its fieldsttl
andsecret
definewhether an SFT credential would be rendered in the response of
/calls/config/v2
. The fieldttl
determines the seconds for the credential tobe valid and
secret
is the path to the secret shared with SFT to createcredentials.
Example:
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
Create version 6 of client-related endpoints, fixing an oddity in the serialisation of capabilities. (Serialisation of client capabilities #3904)
Add gzip request support to spar and proxy (Add gzip middlewares to spar and proxy #4013)
Features
Backend validates display name during DPoP challenge (WPB-6190 Backend should validate display name during DPoP challenge #3890)
Add Helm chart
smallstep-accomp
that provides a CRL endpoint proxy for federated E2EI (Add helm chart for CRL proxy #3896)Support for Elasticsearch password authentication (WPB-6717 brig: Support connecting to Elasticsearch over TLS #3989, WPB-6717 ES Credentials #3959, elasticsearch-ephemeral: Provide password as value #3994, WPB-7283 fix authentication issue of brig index migrate data to elastic search #3984, refactor: Change TSFI's for BSI Testmapping #2093, Cassandra migrations chart configurability #2079)
Support unblocking a user in an MLS 1-to-1 conversation ([WPB-6783] Support unblocking an MLS 1-to-1 conversation #3940)
Add E2EI configuration setup to smallstep-accomp chart (Update smallstep-accomp Helm chart (#3932) #3944)
Remove Helm migrated charts webapp, team-settings, account-pages, sftd (Remove 4 migrated Helm charts #3927)
charts/nginz: Rate limiting claiming MLS key-pacakges by requesting and target user (charts/nginz: Configure rate limits for claiming MLS key packages and getting one2one conversations #3918)
Support connecting to Elasticsearch over TLS
It can be enabled by setting these options on the wire-server helm chart (WPB-6717 brig: Support connecting to Elasticsearch over TLS #3989):
Make gundeck's notificationTTL configurable. The value defines how long
notifications are (at most) stored in the database. Decreasing this value e.g.
helps to safe database space on test environments. (gundeck: Make notificationTTL configurable #3960)
charts/nginz: Allow 3000 reqs/min on /conversations/one2one/:user_domain/:user (charts/nginz: Configure rate limits for claiming MLS key packages and getting one2one conversations #3918)
Support authenticating to redis (gundeck: Support authenticating to redis #3971)
Bug fixes and other updates
Send connection cancelled event to local pending connection when user gets deleted (WPB-6258 Connection request from deleted user #3861)
Optional
apiProxy
attribute added todeeplink.json
in nginz chart (WPB-6524 Added optional api proxy attribute to deeplink json in nginz chart #3933)coturn cert-reloader sidecar config: process name should not contain the path (helm chart) (coturn cert-reloader sidecar config: process name should not contain the path (helm chart) #3916)
Prevent conflict on subsequent tries to provision a SCIM user (WPB-6577 Fix user creation conflict in SCIM #3914)
Avoid IO Exception when querying
GET /converations/{cnv_domain}/{cnv}/groupinfo
with public group state not set in galley.converation. (avoid IO Exception when group state not set #3939)
Return an actual list of other users in a remote MLS 1-to-1 conversation ([WPB-7415] Fix the list of other members in an MLS 1-to-1 conversation (the
develop
counterpart) #3998)charts/background-worker: Fix name of the service monitor ( charts/background-worker: Fix name of the service monitor #3913)
Fix crash when enqueing an empty list of notifications and federation is disabled (#PR_NOT_FOUND)
Add the request ID to the request's execution environment in gundeck, such that it can be logged. (gundeck: set request id in request env #3903)
The AWS SNS ARN was parsed by accumulating the environment name up to the first
dash ('-') such that parts of this name spilled over into the app name. Now, we
accumulate up to the last dash. (gundeck: Fix SNS endpoint parser #3894)
Fix bug where welcome notifications were generated for each client instead of for each user (Welcome notification bug #3907)
Do not deliver MLS one-to-one conversation messages to a user that blocked the sender ([WPB-6144] Prevent MLS one-to-one messaging for a blocking user #3889, [WPB-6144] Don't remove MLS clients from a 1-1 conversation #3906)
Optimize getting all feature configs (Optimize getting all feature configs #4002)
Documentation
adds new coding-conventions.md and talks about the decision we made for
cs
([WPB-7222] (part 2) add coding-conventions.md to developer docs #4006)Distinguish UTCTime and UTCTimeMillis in swagger (Fix openapi docs of UTCTime and UTCTimeMillis #3899)
Patch hole in scim docs regarding wire team role manipulation. (Patch hole in scim docs regarding wire team role manipulation. #3897)
Internal changes
Create a new script (
Sbom.hs
) to generate the wire-server sbom (bill of material) file. ([feat] use new script for sbom generation #3942)port flaking LH tests to new integration and improve the ergonomics of our testing library ([WPB-5687] port flaking LH tests to new integration #3876)
some small refactorings to make it more clear in code what is happening when registering a scim token and an IdP ([WPB-5687] more legalhold tests #3966)
In order for the CRL-proxy to function correctly, it needs to have CORS headers set.
We are now setting the CORS headers on the ingress level. (WPB 7155 smallstep-accomp CRL-Proxy CORS #3956)
drop cs in all production code and from Imports ([WPB-7222] Drop depencency on
convertible-strings
in production code #4001)Galley's internal
DELETE /i/client/:clientID
now early-exits before visiting all conversations if the client is already gone.Galley now reports debug logs for every call to Cassandra. (early exit when deleting already gone client #3985)
move formatting and linting of haskell files to treefmt, remove some of the now unneeded rules ([WPB-8712] use treefmt for everything #4000)
Integration test cases for strangely behaving feature config settings. (WPB-8713 Optimize feature configs tests #4007)
Add ldap-scim-bridge chart to the wire-server release (add ldap-scim-bridge chart in wire release #3999)
Disable
integration
subchart ofwire-server
by default (wire-server chart: Disable integration chart by default #3682)Provide password as value in
elasticsearch-ephemeral
. This way we can usedifferent passwords on our test systems. Ensuring that the password is really
configurable (and not accidentally hardcoded somewhere.) (elasticsearch-ephemeral: Provide password as value #3994)
Upgraded fluent-bit chart to version 0.46.2
Added example values for fluent-bit helm chart for output to syslog server (Bump fluent-bit chart version and add example values for syslog #4012)
Ported 2FA tests to the new integration test suite ([chore] Port 2FA tests #3986)
To ensure certificate revocations get active in a short time frame, disable
caching of proxy results on client side by setting respective HTTP headers. (smallstep-accomp: Prevent smallstep proxy caching #3952)
Ensure that targets of the smallstep nginx proxy are resolved at runtime via the
configured DNS server. This has two benefits: The target gets adjusted when it's
changed at the DNS server. And, nginx doesn't fail to start when the target
doesn't exist yet. (smallstep-accomp: Resolve proxy target on request (#3946) #3947)
Use schema-profunctor for user event serialisation and introduce golden tests (Refactor and test user event serialisation #3912)
Setup federation-v0 environment for use in integration tests:
Add assets to output of ejpd-info end-point in stern; also:
shouldMatch
shows a diff on failure now;shouldMatchLeniently
for rule-based canonicalization of arguments (Make ejpd data model exhaustive #3875)Bump hsaml2, saml2-web-sso dependencies. (Bump hsaml2, saml2-web-sso dependencies. #3995)
Remove support for push token transport types APNSVoIP, APNSVoIPSandbox from gundeck. (Recover "WPB-5204 Remove unused APNS_VOIP code (#3695)" #3967)
Include remote domain in federator error logs (Make federator error logs more informative. #3919)
Remove remaining splinters of wai-routing, wai-predicate from brig. (Finish servantifying brig #3996)
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)