Skip to content

Conversation

@zebot
Copy link
Contributor

@zebot zebot commented Oct 21, 2025

[2025-10-21] (Chart Release 5.23.0)

Release notes

  • Team user search role filter has been fixed and results now include each member's team role. Note: existing search index documents will only show roles after a reindex or when users get updated; newly created or updated users populate their role automatically. (WPB-19693 fix role filter in team search endpoint #4728)

  • Elasticsearch/OpenSearch mapping updated for team user search to support filtering by unverified email addresses. For the new filter email=verified|unverified on GET /teams/{tid}/search to work as intended, it is necessary to create a new index and re-index the data either by migrating to a new index or by recreating the index.

  • Allow storing conversation data in postgres.

    This is currently not the default and is experimental.
    The migration path from Cassandra is yet to be programmed.

    However, new installations can use this by configuring the wire-server helm
    chart like this:

    galley:
      config:
        postgresqlMigration:
          conversation: postgresql
    ``` (#4764)
    
    

API changes

  • Stub endpoints for enterprise provisioning (only in V13) (WPB-19807 User Group and Channel API stubs #4743)

  • Finalize API Version V12, start new develop version V13. ([WPB-21259] Finalize API Version V12 #4817)

  • The blocked domains feature
    (optSettings.setCustomerExtensions.domainsBlockedForRegistration) is now
    more strict: It is not only forbidden to register users with these domains in
    their email addresses, but also to change a user's email address to one of
    these domains.

    This affects the endpoints:

    • /register (as before)
    • /activate/send
    • /users/{uid}/email
    • /i/self/email (internal endpoint)
    • /access/self/email
    • /i/teams/{tid}/invitations (internal endpoint)
    • /teams/{tid}/invitations (disallow email change to blocked domain #4624)

Features

Bug fixes and other updates

Documentation

Internal changes

renovate bot and others added 30 commits March 23, 2023 13:38
Master->Develop after release
This changes the rules for blocked email domains:

- Users cannot activate their accounts with a blocked email (this stays the same)
- Users with blocked domains cannot be invited to teams
- Users cannot change their email address to one of a blocked domain

The pre-condition to this commit is that legitimate domains are not part of the
blocked domains set anymore. In the past, legitimate domains were blocked to
force users to be invited to teams. This should now be handled by the new
enterprise login feature(s).

This commit brings back b480a34
which was reverted by 5e65ed9 .


---------

Co-authored-by: Matthias Fischmann <[email protected]>
This file is used by my (Sven) editor setup. It's probably not of
general usefulness.
* feat: add pdb to backoffice
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* Initial implementation of AppStore

* App subsystem

* Generate team event on app creation

* Add app creation endpoint

* Generate app cookie

* Basic app creation test

* Add app creation permission

* Add CHANGELOG entry

* Better logging

* Fix team event parsing
- use library functions for stripping list (string) prefix
- content-type:application/xml is already added by addXML helper
Add a feature flag for "simplified user connection requests" QR codes. This
flag will only be interpreted by clients; backend behaviour does not change.
* PostgresMarshall: Add instance for tuples of length upto 16

* Move PostgresMarshall to wire-api

This way we can write instances for various types next to them
* Add type field to user profile

* Set type field correctly for apps

* Test type field

* Add CHANGELOG entry

* Update golden tests

* fixup! Add type field to user profile
We currently get a few 500s sometime when gundeck restarts, where some
current requests seem to get aborted mid-request. This is possibly due
to terminating pods still getting some traffic.

https://wearezeta.atlassian.net/browse/WPB-19694
battermann and others added 19 commits October 6, 2025 13:37
* Merge runMaybeStatement and runResultlessStatement

* Remove user from all user groups

* Remove user from groups on user deletion

* Use harcoded names in user group test

* Test removal from user group on deletion

* Add CHANGELOG entry
…documentation

WPB-20718: update multi-ingress deeplink doc
* WPB-20544-bypass-wire-server-enterprise

* add documentation on federated calling

* update federated calling documentation

* remove nginx hack
* Extract actions for MLS commit lock in a separate effect

This will allow us to migrate rest of the conversation data to postgres

* ConversationStore: Remove action createConversationId

It has nothing to do with the store, the one place which calls this can call
`Random.uuid` instead.

* Extract logic to convert NewConversation -> StoredConversation outside the Casssadnra interpreter

* ConversationStore: Remove polymorphism from CreateMembers

It was used only twice seems like unnecesary leak of business logic into the
store effect.

* PostgresUnmarshall: Add a few instances

* ConversationStore: Delete unused Get(Remote,Local)MembersByDomain

* ConversationStore.Cassandra: Make functions for making conv objects from db more general

* ConversationStore.Cassandra: Always cleanup deleted convs

Previously this was done in the store interpreter when getting one conv, but
done in galley code when getting a list of convs.

The cleanup logic is required only in Cassandra because it cannot guarantee that
deletions of rows from the member table along with rows from the conv table. So
the usual deletion logic is to mark the conv deleted first and then try to
delete the rows. This will all not be required in Postgres because we can do
these things with transactions.

* galley: Allow selecting postgrsql for storing conversations

* ConversationStore: Rename CreateSubConversation to UpsertSubConversation

Also change the Postgres interpreter to do so. In the galley code, this is
explicitly being used as an Upsert.

* CovnersationStore: Add action GetConversationIds

This replaces the use of ListItems.

* CovnersationStore: Add action GetLocalConversationIds

This replaces the use of ListItems with LegacyPaging

* ConversationStore: CreateMembersInRemoteConversation -> Upsert...

* ConversationStore: CreateMembers -> UpsertMembers

* ConversationStore: CreateConversation -> UpsertConversation

* galley-integration: Ignore order of self conversation ids returned from /conversations/list-ids

---------

Co-authored-by: Matthias Fischmann <[email protected]>
* Introduce query builder DSL

* Add haddocks

* Add CHANGELOG entry

* Typo
* Remove references to non-existent note

Note [ephemeral user sideeffect] was removed in commit:

b0934a3 WPB-15801 GET and DELETE Registered Domains (#4438)

* Make the `Wire.API.Team.Member.userId` lens more general

* Minor refactor

- make `!!!` definition easier to understand
- extract `getProfile`

* Add `searchable` field to data types

* Add Elastic Search boolean field type

* Add `POST /users/:uid/searchable`

* Add Elastic Search indexing

* Filter by searchable in Elastic Search

* Filter by `searchable` in exact handle search

* Test searchable field and contact search

* Use common CQL splice for team member queries

* Test /team/:tid/members?searchable=false

* Add query param to Brig

* Update services/brig/src/Brig/Provider/API.hs

Co-authored-by: Akshay Mankar <[email protected]>

* Update libs/wire-subsystems/src/Wire/UserSubsystem/Interpreter.hs

Co-authored-by: Akshay Mankar <[email protected]>

* Move test from brig to integration package

* Partially revert "Minor refactor": inline getProfile back again

This reverts commit 68b6c6e.

* Minor refactor: use record syntax, deduplicate golden tests

* Update libs/wire-api/src/Wire/API/Routes/Public/Brig.hs

Co-authored-by: Leif Battermann <[email protected]>

* Create all test users' presence in /teams/:tid/search

* Add changelog entry

* Wrap searchable POST body to JSON object

* fix templates

* Add seacrhable to golden tests

* Implement searchable flag to MockInterpreters

* second attempt at correct /team/:tid/search

* Add test to check that legacy users are found

---------

Co-authored-by: Akshay Mankar <[email protected]>
Co-authored-by: Leif Battermann <[email protected]>
* chore: align kubectl images with available tags
reaper now uses registry.k8s.io/kubectl:v1.32.9 (with the registry’s required v prefix)
restund falls back to docker.io/bitnamilegacy/kubectl:1.24.12 since registry.k8s.io no longer ships that version

* update kubectl image for restund
- use registry.k8s.io for kubectl image with version v1.32.9

* update changelog.d

* use bitnamilegacy kubectl which includes shell

* restund also requires kubectl with shell access

* update changelog.d text
@zebot zebot requested review from a team as code owners October 21, 2025 10:25
@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label Oct 21, 2025
@fisx fisx changed the title Release 2025-10-21 - (expected chart version 5.23.0) [WPB-21261] Release 2025-10-21 - (expected chart version 5.23.0) Oct 21, 2025
@stefanwire
Copy link
Contributor

There's a #PR_NOT_FOUND to be fixed.

@fisx fisx merged commit 69bed38 into master Oct 22, 2025
8 of 9 checks passed
@fisx fisx deleted the release_2025-10-21_10_25 branch October 22, 2025 19:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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.