Skip to content

Releases: wireapp/wire-server

2022-10-04

06 Oct 10:15
17ea62b
Compare
Choose a tag to compare

Release notes

  • Upgrade webapp version to 2022-10-04-production.0-v0.31.2-0-a438b30
    (#2302)

API changes

  • Remove /legalhold/conversation alias from v2 (#2734)

  • Make v2 a supported version and start v3 (#2734)

Features

  • Allow deletion of MLS team conversations (#2733)

Bug fixes and other updates

  • Revert synchronous semantics of client deletion endpoint (#2737)

Documentation

  • JCT-146 - update outdated info SER-211 - update new info regarding
    nodetool use (#2736)

Internal changes

  • Skeleton implementation of new endpoint for JWT DPoP access token
    generation (#2652, #2686)

  • Add swagger2-ui to stern (#2742 …)

2022-09-27

27 Sep 14:10
b0b3f1c
Compare
Choose a tag to compare

Release notes

  • For users of the (currently alpha) coturn Helm chart, manual action is
    required
    when upgrading to this version. The labels applied to the Kubernetes
    manifests in this chart have changed, in order to match the conventions used
    in the wire-server charts. However, this may mean that upgrading with Helm can
    fail, due to changes to the StatefulSet included in this chart -- in this
    case, the StatefulSet must be deleted before the chart is upgraded. (#2677)

  • wire-server helm charts: Adjust default CPU/Memory resources: Remove CPU limits to avoid CPU throttling; adjust request CPU and memory based on observed values. Overall this decreases the amount of CPU/memory that the wire-server chart needs to install/schedule pods. (#2675)

  • Upgrade team-settings version to 4.12.1-v0.31.5-0-0167ea4 (#2180)

  • Upgrade webapp version to 2022-09-20-production.0-v0.31.2-0-7f74074 (#2302)

API changes

  • Add new endpoint /mls/commit-bundles for submitting MLS CommitBundles. A CommitBundle is a triple consisting of a commit message, an optional welcome message and a public group state. (#2688)

  • MLS: Store and expose group info via GET /conversations/:domain/:id/groupinfo (#2721)

  • Add /mls/public-keys to nginz chart (#2676)

  • Users being kicked out results in member-leave events originating from the user who caused the change in the conversation (#2724)

  • Leaving an MLS conversation is now possible using the regular endpoint DELETE /conversations/{cnv_domain}/{cnv}/members/{usr_domain}/{usr}. When a user leaves, the backend sends external remove proposals for all their clients in the corresponding MLS group. (#2667)

  • Validate remotely claimed key packages (#2692)

Features

  • The coturn chart now has support for exposing its metric endpoint with a
    ServiceMonitor, which can be ingested by third-party metrics collection tools. (#2677)

  • Deleting clients creates MLS remove proposals (#2674)

  • External remove proposals are now sent to a group when a user is deleted (#2650)

  • Allow non-admins to commit add proposals in MLS conversations (#2691)

  • Optionally add invitation urls to the body of /teams/{tid}/invitations. This allows further processing; e.g. to send those links with custom emails or distribute them as QR codes. See docs for details and privacy implications. (#2684)

Bug fixes and other updates

  • SCIM user deletion suffered from a couple of race conditions. The user in now first deleted in spar, because this process depends on data from brig. Then, the user is deleted in brig. If any error occurs, the SCIM deletion request can be made again. This change depends on brig being completely deployed before using the SCIM deletion endpoint in brig. In the unlikely event of using SCIM deletion during the deployment, these requests can be retried (in case of error). (#2637)

  • The 2nd factor password challenge team feature is disabled for SSO users (#2693)

  • Less surprising handling of SIGINT, SIGTERM for proxy, stern. Increase grace period for shutdown from 5s to 30s for all services. (#2715)

Documentation

  • Drop Client model (unused) from old swagger.
    Add a description and example data for mls_public_keys field in new swagger. (#2657)

  • Document user deactivation (aka suspension) with SCIM. (#2720)

  • Monitoring page showed wrong wrong configuration charts. Updated prometheus-operator to kube-prometheus-stack chart in the documentation. (#2708)

Internal changes

  • Make client deletion asynchronous (#2669)

  • Allow external add proposals without previously uploading key packages. (#2661)

  • Allow legalhold tokens access to /converations/<uuid> endpoint (#2682, #2726)

  • Move Brig.Sem.* modules to Brig.Effects (consistency) (#2672)

  • The labels applied to resources in the coturn chart have been changed to
    reflect the conventions in the wire-server charts. (#2677)

  • Drop the managed column from team_conv table in Galley (#2127)

  • Fix link in PR template (#2673)

  • In Gundeck's 'notifications' cassandra table, switch to TWCS compaction strategy, which should be more efficient for this workload, and possibly bring performance benefits to latencies.
    It may be beneficial to run a manual compaction before rolling out this
    change (but things should also work without this manual operation).
    In case you have time, run the following from a cassandra machine before deploying this update: nodetool compact gundeck notifications. (#2615)

  • Add regular expression support to libzauth ACL language (#2714)

  • Make test API calls point to the most recent version by default (#2695)

  • Clients and key package refs in an MLS conversation are now stored in their own table. (#2667)

  • Refactor MLS test framework (#2678)

  • Update mls-test-cli to version 0.5 (#2685)

  • Added rusty-jwt-tools to docker images (#2686)

  • The account API is now migrated to servant. (#2699, #2700, #2701, #2702, #2703, #2704, #2705, #2707)

  • Update nginz and cannon ACLs to match api-versioned paths (#2725)

  • For wire-server cloud, on kubernetes 1.21+, favour topology-aware routing, which reduces unnecessary inter-availability-zone traffic, reducing latency and cloud provider cross-AZ traffic costs. (#2723)

2022-09-01

01 Sep 10:45
3d8fb69
Compare
Choose a tag to compare

Release notes (Chart Release 4.23.0)

  • The internal endpoint GET i/mls/clients has been changed, and it now returns a list of ClientInfo instead of a list of ClientId. (#2631)

API changes

  • Fix key package error description (#2651)

  • Expose MLS public keys in a new endpoint GET /mls/public-keys. (#2602)

Features

  • The coturn chart now supports exposing the control port over TLS. (#2620)

  • Forward all MLS default proposal types (#2628)

  • New endpoints HEAD and GET /nonce/clients to request new nonces for client certificate requests (coming up soon). (#2641, #2655)

Bug fixes and other updates

Documentation

  • Move developer docs onto docs.wire.com (instead of exposing them on github only) (#2622, #2649)

  • Add build instructions for developers (#2621)

  • Make target audience explicit on docs.wire.com (#2662)

Internal changes

  • Support for external Add proposals (#2567)

  • Add additional checks on incoming MLS messages:

    • if the sender matches the authenticated user
    • if the sender of message to a remote conversation is a member
    • if the group ID of a remote conversation matches the local mapping (#2618)
  • Apply changes introduced by cabal-fmt. (#2624)

  • Remove some redudant constraints in brig (#2638)

  • Brig Polysemy: Port UserPendingActivationStore to polysemy (#2636)

  • Add make target delete-cache-on-linker-errors to delete all Haskell compilation related caches. This is useful in cases where the development environment gets into an inconsistent state. (#2623)

  • Move Paging effect from galley into polysemy-wire-zoo (#2648)

  • Fix broken hls-hlint-plugin in nix env (#2629)

  • Adjust developer PR template and document config and API procedures in-tree. (#2617)

  • Add mls-test-cli to builder image (#2626)

  • Add mls-test-cli to deps image (#2630)

  • mls-test-cli: Use Cargo.lock file when building (#2634)

  • Move common Arbitrary instances to types-common package for compilation speed (#2658)

  • LoginId migrated to schema-profunctor (#2633, #2645)

  • Improve cleaning rules in Makefile. (#2639)

  • Fix typos, dangling reference in source code haddocs, etc. (#2586)

  • Update the Elastic Search version used for running integration tests to the one that is delivered by wire-server-deploy. (#2656)

Federation changes

  • Add mlsPrivateKeyPaths setting to galley (#2602)

2022-08-16

16 Aug 11:20
6ec2a36
Compare
Choose a tag to compare

API changes

  • Drop the deprecated member removal endpoint (#2593)

Features

  • charts/cannon: Ensure HSTS headers are set for all endpoints (#2574)

  • Expired MLS key packages are deleted from the database (#2582)

  • Add support for MLS Remove proposals (#2561)

  • Human readable names for SAML IdPs (#2565)

  • The preferredLanguage field from SCIM now maps to the user locale in BRIG and will be set and updated on post SCIM user and on update SCIM user using SAML. (#2605)

  • For TLS1.2, by default, remove ECDHE-ECDSA-AES128-GCM-SHA256 and ECDHE-RSA-AES128-GCM-SHA256 ciphers for ingress traffic. (#2528)

Bug fixes and other updates

  • Allow deleting existing splash screens in `PUT /teams/:tid (see also PR#2474 in Release 4.18.0) (#2588)
  • Backoffice: Fix an issue where in some deployments ibis/galeb (Wire Cloud internal services) are unreachable from backoffice if deployed in a different namespace. (#2610)
  • Fix an issue for larger client requests on e.g. /list-users and /list-conversations, which were giving 413 errors for some users. Allow client requests of 256k by default (was 64k). (#2579)

Internal changes

  • Add shellcheck, libstdc++ to nix env; handle emacs auto-save files better (#2609)
  • Allow features to be set with HTTP method PATCH. This reflects a prior behavior
    that is used by Ibis. Additionally, it's more consistent when all setters can be
    called with PUT and PATCH. As this will fix calls by Ibis, the deployment order
    doesn't matter. (#2575)
  • Brig Polysemization: introduce BlacklistStore and BlacklistPhonePrefixStore effects (#2590)
  • Add cabal-fmt development tool (#2601)
  • Reformat all cabal files with cabal-fmt (#2603)
  • Delete tools: bonanza and makedeb (#2600)
  • No more package.yaml / hpack, and stick with cabal files as the single (and only) source of truth (#2596)
  • Port Brig SearchAPI and UserRichInfo endpoints to Servant (#2580)
  • Added TTL data to stern feature flag GET endpoint. (#2564)
  • Prepare removing deprecated non-binding teams (no more used in integration tests) (#2514, #2607)
  • Add internal endpoint in Brig to update clients' key package refs in DB upon committing.
    Brig should be deployed before Galley. (#2604)
  • Improved the resilience of provisioning new users via SAML by combining two persistence calls into one, preventing a creation failure from locking a user handle with no corresponding user. (#2526)

Federation changes

  • Fix TBS field in MLS Message type (#2599)

2022-07-19

19 Jul 13:24
ea40431
Compare
Choose a tag to compare

Release notes

  • Users of the (currently alpha) coturn Helm chart must manually update
    their configuration
    due to changes in how the chart handles authentication
    secrets. Please see below for further details. (#2553)

API changes

  • The response to POST /mls/messages adds a timestamp (#2560)

Features

  • charts/wire-server: default log format everywhere to StructuredJSON format (introduced in #1951 and #1959) (#2559)

  • The coturn chart now supports multiple authentication secrets, which permits
    multiple backend instances to use the same TURN servers without needing to
    share authentication secrets between the backend instances.

    Correspondingly, the .Values.secrets.zrestSecret configuration option, which
    took a single authentication secret as its argument, has been replaced with the
    option .Values.secrets.zrestSecrets (note spelling!), which instead takes a
    list of authentication secrets as its argument. (#2553)

  • Add support for bare MLS proposals (#2436)

Bug fixes and other updates

  • Fix a bug in charts/cannon. It's now possible to use a custom TLS certificate when enabling cannon's nginz sidecar container. (Previously only letsencrypt certificates worked, and were tested) (#2558)

  • Minor fixes in helmcharts:

    • charts/nginz: Rate limit SSO endpoints less
    • charts/nginz: Ensure rate limiting isn't commented out
    • charts/galley: Honour .setttings.httpPoolSize
    • charts/galley: Fix typo in settings.featureFlags.validateSAMLEmails
    • charts/gundeck: Remove aws.connectionLimit
    • charts/brig: Fix default brandLabelUrl and remove brandLabel (#2563)

Internal changes

  • Port brig UserHandle API to servant (#2556)

  • Bump timeout for integration tests to 15 minutes (from 10 minutes), as 10 minutes is no longer enough. (#2570)

  • Internal endpoints to PATCH feature status (#2555)

  • Change the proposal hold time to 28 days (#2568)

2022-07-12

12 Jul 09:14
0f747ca
Compare
Choose a tag to compare

Release notes

  • Deploy spar before galley (#2543)

  • Upgrade team-settings version to 4.11.0-v0.31.1-0-9e64150 (#2180)

API changes

  • Restore PUT /v2/connections endpoint (#2539)

Features

  • 2nd factor authentication code generation is rate limited now (#2522)

  • The team member CSV export now fills created_on for SCIM users (#2543)

Internal changes

  • Add Helm chart for inbucket. Inbucket is a SMTP server that does not relay, but instead display received mail in a webapp and make them accessible via an API. (#2544)

  • Bump saml2-web-sso (#2545, #2546)

  • use checkedConnectCluster to avoid dropping requests to Redis when Gundeck reconnects to the Redis cluster (#2542)

  • Do not log polysemy errors in Galley (#2531)

  • Remove old crypto-cli tool from the ubuntu image (#2538)

Federation changes

  • Added new-remote-conversation RPC, used to notify a backend of a remote conversation the first time any user from that backend is added to it. (#2378)

  • Added federation endpoint send-mls-message used to send messages to remote converesations (#2378)

2022-07-05

05 Jul 12:39
2564c76
Compare
Choose a tag to compare

Release notes

  • For users of the (currently alpha) coturn Helm chart:
    manual intervention may be required when upgrading to
    this version of the chart from a prior version, due to a bug in
    Kubernetes
    which
    may interfere with applying changes to pod and service port configuration
    correctly.

    If, after updating this chart, the coturn pods do not have both a coturn-udp
    port and a coturn-tcp port, then the coturn StatefulSet must be manually
    deleted from the cluster, and then recreated by re-running Helm. Similarly, if
    the coturn Service does not have both a coturn-udp port and a coturn-tcp
    port, this Service must also be deleted and recreated. (#2500)

  • The nginz{-tcp,-http} services have been unified into a nginz service, and
    moved into the nginz chart.

    The nginz-ingress-services chart simply targets the nginz service, so there's
    no need to set matching service.nginz.external{Http,Tcp}Port inside the
    nginx-ingress-services chart anymore.

    The config.http.httpPort and config.ws.wsPort values in the nginz chart
    still configure the ports the nginz service is listening on.

    Metrics were moved from config.http.httpPort to a new http-metrics port.

    The nginz chart also gained support for metrics.serviceMonitor.enabled,
    creating a ServiceMonitor resource to scrape metrics, like for other wire
    services.

    (#2476)

  • Upgrade webapp version to 2022-06-30-production.0-v0.30.5-0-3e2aaf6 (#2302)

  • In the helm charts, the wireService label has been removed.

    In some cases, we were already setting the app label too.

    Now we consistently use the app label to label different wire services.

    The wireService label was also used in the spec.selector.matchLabels field
    on existing Deployment / StatefulSet resources.
    As these fields being immutable, changing them isn't possible without recreation.

    If you encounter an issue like

    field is immutable && cannot patch "*" with kind *

    you need to manually delete these StatefulSet and Deployment resources, and apply helm again, which will recreate them.

    This means downtime, so plan a maintenance window for it.

    The wire-server-metrics chart was previously running some custom
    configuration to automatically add all payloads with a wireService label into
    metrics scraping.

    With the removal of the wireService label, this custom configuration has been
    removed.

    Instead, all services that expose metrics will now create ServiceMonitor
    resources, if their helm chart is applied with metrics.serviceMonitor.enable
    set to true.

    This prevents scraping agents from querying services that don't expose metrics
    at /i/metrics unnecessarily.

    Additionally, makes it easier to run other metric scraping operators, like
    grafana-agent-operator, without the need to also create some custom
    wireService label config there.

    Generally, if you have any monitoring solution installed in your cluster that
    uses the Prometheus CRDs, set metrics.serviceMonitor.enable for the following charts:

    • brig
    • cannon
    • cargohold
    • galley
    • gundeck
    • proxy
    • spar (#2413)

API changes

  • The request body of POST /conversations endpoint can now contain an optional creator_client field. The creator_client field is only relevant for MLS conversations, in which case it must be set to the ID of the client making the request. (#2486)

  • Retire deprecated feature config API endpoints for API version V2 (#2492)

Features

  • Prevent race conditions in concurrent MLS commit requests. (#2525)

  • charts/wire-server: Optionally include backoffice (#2490)

  • The coturn chart has new functionality to enable graceful pod termination, by
    waiting for all active allocations on a coturn instance to drain first. When
    combined with a suitable external service discovery mechanism which can steer
    client traffic away from terminating coturn pods, this can be used to implement
    graceful rolling restarts of clusters of coturn instances. (#2456)

  • ./deploy/services-demo/create_team_members.sh creates users with given roles now (#2137)

  • MLS implementation progress:

    • Remote users can be added to MLS conversations
    • MLS messages (both handshake and application) are now propagates to remote
      conversation participants. (#2415)
  • charts/nginz: Serve swagger-ui for viewing swagger-1.2 docs (#2466)

  • GET teams/:tid response now contains an optional field splash_screen which contains the asset key of the team's splash screen. PUT teams/:tid now supports updating the splash screen asset key. (#2474)

  • Missing feature config mapping added (#2494)

  • Add MLS team feature configuration (#2499)

  • Team feature API now includes endpoints to get and set the searchVisibilityInbound feature (#2503)

Bug fixes and other updates

  • charts/backoffice: Fix version of frontend and auto-bump version of stern on every release (#2490)

  • The service definitions in the coturn Helm chart were missing the control plane
    UDP port used by coturn. (#2500)

  • In nginx-ingress-services chart, when enabling useCertManager, now correctly creates the required issuer by default. (#2532)

  • Fix handling of creator client in MLS conversations (#2486)

  • Fix all clients having the same MLS public key (#2501)

  • A user now cannot delete an identity provider that they are authenticated with any more (#2519)

Internal changes

  • brig-types: remove all re-exports (#2505)

  • Fixed flakiness of email update test, related to the test user account being suspended, causing subsequent runs of the test to fail. (#2497)

  • galley-types: remove all re-exports (#2504)

  • Enforce some IdP invariants (#2533)

  • Switch to new MLS test CLI (https://github.com/wireapp/mls-test-cli) (#2508)

  • Forward /i/users/:uid/features/:feature to brig (#2468)

  • charts/nginz: Forward /i/legalhold/whitelisted-teams to galley instead of brig (#2460)

  • make the ldap-scim-bridge chart deployable once per team, and improve docs. (#1843)

  • Refactored and simplified the feature config API (#2435)

  • Removed deprecated internal feature config API endpoints (#2496)

  • Deactivated gundeck's integration tests for local steps (make ci). (#2510)

  • retry gundeck's Redis connection in case of network errors such as IP changes or network outages (#2512)

  • Add AWS security token metrics to all services (#2473)

2022-06-14

15 Jun 07:06
98e86e7
Compare
Choose a tag to compare

Release notes

  • Upgrade team-settings version to 4.10.0-v0.29.7-0-3be8ca3 (#2180)

  • Upgrade webapp version to 2022-06-13-production.0-v0.29.7-0-2819b90 (#2302)

Documentation

  • Docs for guest links server and team feature settings added (#2480)

Internal changes

  • All feature configs like guest links e.g. can now be overridden in the helm configuration, so that they can be disabled/enabled and configured server wide (#2479)

2022-06-08

08 Jun 15:33
e5583b9
Compare
Choose a tag to compare

Release notes

  • The .cannon.drainTimeout setting on the wire-server helm chart has been
    removed and replaced with .cannon.config.drainOpts. (#2416)

  • Note for wire.com operators: deploy nginz (#2439)

API changes

  • The back-office (aka stern) team feature API now accenpts an optional TTL parameter (in days), so features can be activated for a limited period. (#2417)

  • Disable rate limiting for /api-version (#2439)

Features

  • Drain websockets in a controlled fashion when cannon receives a SIGTERM or
    SIGINT. Instead of waiting for connections to close on their own, the websockets
    are now severed at a controlled pace. This allows for quicker rollouts of new
    versions. (#2416)

  • Optionally allow to run cannon with its own nginz inside the same pod; and connect to a load balancer directly.
    This allows the cannon-slow-drain behaviour implemented in #2416 to take effect by not having other intermediate network hops which could break websocket connections all at once.
    Some (internal) context: https://wearezeta.atlassian.net/wiki/spaces/PS/pages/585564424/How+to+gracefully+drain+cannon+but+not+so+slowly
    For details on how to configure this, see docs/src/how-to/install/configuration-options.rst (#2421)

  • Support running brig with GeoIP database when using helm charts (#2406)

  • charts/nginz: Add upstream configuration for galeb (#2444)

  • charts/nginz: Allow upstreams to be in other namespaces (#2444)

  • CSV export in team management now includes the number of devices per user (#2407)

Bug fixes and other updates

  • charts/nginz: Resolve collision between brig and galeb endpoints. Ensure
    /self/consent and /signatures endpoints are configured in all environments (#2457)

  • When an IdP issuer (aka entity ID) is updated, the old issuer was still marked as "in use". (#2400)

  • On actions that require re-authentication a password is not required if the user has SAML credentials (#2430, #2434, #2437)

  • Use SCIM's preferred language as a fallback when privisioning users without a locale. (#2445)

Documentation

  • Feature configs should have different swagger schema names (#2425)

Internal changes

  • AllFeatureConfigs is now typed (#2403)

  • Type class for default team feature status (#2404)

  • charts/{redis-ephemeral,legalhold}: Use old index for bitnami repo as the new index doesn't have old versions of postgresql and redis helm charts (#2448)

  • Bump haskell/zlib version to 0.6.3.0 (#2431)

  • New internal brig endpoints for MLS KeyPackage -> Conversation association query/update (#2375)

  • galley: refactor withSettingsOverrides (#2381)

  • charts/{nginz,cannon}: Increase map_hash_bucket_size for nginx to 128 (#2443)

  • charts/{cannon,nginz}: values listed in
    nginx_conf.randomport_allowlisted_origins must be full hostnames. Hostnames
    listed here will be allowlisted with and without TLS. (#2438)

  • Remove binding of users to saml idps using saml (this has never been picked up by clients; use scim instead) (#2441)

  • Remove golden test case generator

    (#2442)

  • Convert Team CSV endpoint to Servant (#2419)

Federation changes

  • Send only the raw welcome message in the Galley "mls-welcome" federation endpoint (#2412)

2022-05-18

19 May 07:32
b0f0bbc
Compare
Choose a tag to compare

Release notes

  • If using cert-manager, you need to have least version 1.0.0 (1.8.0 works at the time of writing) installed. Older cert-manager 0.15.X will no longer work. (#2401)

  • Upgrade team-settings version to 4.9.0-v0.29.7-0-142a76f (#2180)

API changes

  • Start version 2 of the public API. Main changes:

    • Asset endpoints have lost their v3 and v4 suffixes. So for example
      /assets/v3 has been replaced by /assets.
    • GET /conversations/:conv/assets/:id and GET /conversations/:conv/otr/assets/:id have been removed.
    • GET /assets/:key/v3 has been removed. Use the qualified endpoint GET /assets/:domain/:key instead.
    • DELETE /assets/:key/v3 has been removed. Use the qualified endpoint
      DELETE /assets/:domain/:key instead.
    • GET /connections has been removed. Use POST /list-connections instead.
    • POST /connections has been removed. Use POST /connections/:domain/:user instead.
    • PUT /connections/:domain/:user has been removed: use POST instead.
    • GET /conversations has been removed. Use POST /conversations/list-ids
      followed by POST /conversations/list instead.
    • POST /conversations/list/v2 has been replaced by POST /conversations/list.
    • POST /conversations/:domain/:conv/members/v2 has lost its v2 suffix, so
      it is now POST /conversations/:domain/:conv/members.
    • GET /users, GET /users/by-handle and GET /users/handles have been
      removed. Use POST /search/contacts instead.
    • GET /users/:id has been removed. Use the qualified endpoint GET /users/:domain/:id instead.
    • GET /users/:id/clients has been removed. Use the qualified endpoint GET /users/:domain/:id/clients instead.
    • GET /users/:id/clients/:client has been removed. Use the qualified
      endpoint GET /users/:domain/:id/clients/:client instead.

    Swagger documentation for the previous version of the API can be accessed at
    /v1/api/swagger-ui. (#2297)

  • A new field development has been added to the object returned by GET /api-version. Versions listed there are considered in flux, meaning that the
    corresponding API contracts can change arbitrarily over time. Clients are free
    to use development versions, as long as they are also listed in supported,
    and failures due to incompatibilities are acceptable (e.g. in testing
    environments). Backends are the authoritative source on whether a development
    version can be used at all. If a development version should not be used, the
    backend will not list it among the supported versions at all. (#2297)

Features

  • charts: Various new values can now be configured and some got changed

    Allow new configurations in the brig chart:

    • config.emailSMS.user.invitationUrl
    • config.emailSMS.team.tInvitationUrl
    • config.emailSMS.team.tActivationUrl
    • config.emailSMS.team.tCreatorWelcomeUrl
    • config.emailSMS.team.tMemberWelcomeUrl
    • config.setProviderSearchFilter
    • config.setWhitelist
    • config.setFeatureFlags
    • config.setCustomerExtensions

    If any values in config.emailSMS.team are specified, all must be specified.

    Allow new configurations in the gundeck chart:

    • config.perNativePushConcurrency
    • config.maxConcurrentNativePushes.soft
    • config.maxConcurrentNativePushes.hard

    Other changes:

    • Default maxTeamSize changed to 10000 from 500. (#2347)
  • charts/nginx-ingress-services: Allow more fine-grained control over what services are installed. Upgrade Certificate/Issuer resources to 'cert-manager.io/v1' (#2401)

  • MLS implementation progress:

    • remote key package claim is now supported (#2353)
  • charts/{brig,cargohold,galley,gundeck}: Allow not configuring AWS credentials and allow using a special service account.
    This way, when operating wire in AWS cloud either instance profiles or IAM role attached to a service account can be used to communicate with AWS. (#2347)

  • Implement TURN service discovery using SRV records (#2389)

Bug fixes and other updates

  • When config.enablePayment and FEATURE_ENABLE_PAYMENT (envVars) were set,
    the team-settings feature flag FEATURE_ENABLE_PAYMENT was rendered two times.
    The new behavior is to give the envVars entry priority. I.e. when it's set,
    it's used instead of the config.enablePayment value. (#2332)

  • Modify the nginz access control configuration to prevent clients connecting
    to listeners with PROXY protocol enabled (such as the websocket listener) from
    accessing a private metrics endpoint. (#2307)

  • Verification email is sent when external id is updated via SCIM (#2374)

Documentation

  • Move old /docs to /docs/legacy (leaving references). (#2328)

  • Fixup for #2321 (#2323)

  • Add pagination docs to POST /list-connections (#2369)

  • Documentation for the 2nd factor password challenge feature (#2329)

  • Documentation on how to enforce desktop application only for web app (#2334)

  • Documentation on how to enforce constant bit rate for all calls (#2336)

  • Documentation on how to disable media plugins for the web app (#2337)

  • Documentation on how to extra entropy in the web app (#2338)

  • Documentation on how to set the instance connection parameters and proxy settings (#2340)

  • Merged SAML/SCIM docs with its main documentation (#2356)

Internal changes

  • View and change team feature permissions apply to all features now (#2402)

  • Add sed to direnv (#2319)

  • Add python3 to nix development environment. It's needed by hack/bin/serve-charts.sh . (#2333)

  • Add a target to the Makefile to run ShellCheck. I.e. to run a linter on shell scripts. This will be used in the CI. For now, all scripts with linter issues are excluded from this check. (#2361)

  • Drop snappy support from bonanza (#2350)

  • Use cabal in buildah-based builds (#2341)

  • Fix flakyness of path traversal test (#2387)

  • Github Actions: disable mac builds (#2355)

  • Apply versionMiddleware last. This makes sure that every other middleware sees
    the rewritten (unversioned) path. In particular, the prometheus middleware will
    now only see paths it knows about, which prevents it from reporting "N/A" as the
    path. (#2316)

  • Upgrade version of libzauth dependencies, notably sodiumoxide bindings to libsodium, and fix resulting errors and warnings. (#2327)

  • libzauth: Update sha256 for source in nix expression (#2354)

  • Log IO exceptions in Galley and Brig (#2385)

  • Generalise and move the Logger effect (#2306)

  • Fix a comment in a Makefile target (#2330)

  • Fix flaky MLS conversation creation test (#2386)

  • Fix flaky key package test (#2384)

  • Fix locale variables in Nix and .envrc (#2393)

  • Team Member API has been migrated to Servant (#2309)

  • Integration test for edge case: change external id before account registration (#2396)

  • Allow specifying 'redisAdditionalWrite' for a secondary redis to which gundeck will write in the context of a redis migration without downtime. (#2304)

  • Start TURN discovery only when the app starts and not when the Env is created (#2376)

  • Avoid using IN queries for fetching multiple conversations (#2397)

  • Remove oromolu GH action (has been moved to concourse https://github.com/zinfra/cailleach/pull/1033) (#2320)

  • Remove unused data type AllowedUserSearch (#2373)

  • docs: add latex to docs and publish pdf if exists (#2321)

Federation changes

  • We now fetch version information from other backends and negotiate a version to use. (#2297)

  • Fix assertion in testWelcomeNoKey (#2372)

  • Support remote welcome messages (#2368)

  • Implement remote admin action: Update receipt mode (#2141)