WPB-26705: move meeting qualified id to event envelope#5349
Open
blackheaven wants to merge 2 commits into
Open
WPB-26705: move meeting qualified id to event envelope#5349blackheaven wants to merge 2 commits into
blackheaven wants to merge 2 commits into
Conversation
blackheaven
marked this pull request as ready for review
July 20, 2026 15:11
The meeting create/update/delete events rendered the meeting's Qualified MeetingId bare as the data field ({"id","domain"}), unlike every other Qualified value in the API, which lives under a qualified_id field. Wrap it via a schema-only change (the EventData/Event data-types are unchanged) using a new meetingEventDataSchema helper, so data is now {"qualified_id":{"id","domain"}}. FromJSON/ToJSON share the single schema, so the roundtrip is symmetric and producers pick up the wrapping automatically.
Adds golden tests pinning the wire shape for all three meeting events.
blackheaven
force-pushed
the
gdifolco/WPB-26705-meeting-events-fix
branch
from
July 20, 2026 15:14
80cb03d to
db282fe
Compare
caldrian
reviewed
Jul 21, 2026
Comment on lines
+3
to
+8
| "data": { | ||
| "qualified_id": { | ||
| "domain": "example.com", | ||
| "id": "00000001-0000-0000-0000-000000000001" | ||
| } | ||
| }, |
There was a problem hiding this comment.
I think we don't want nesting.
Suggested change
| "data": { | |
| "qualified_id": { | |
| "domain": "example.com", | |
| "id": "00000001-0000-0000-0000-000000000001" | |
| } | |
| }, | |
| "qualified_id": { | |
| "domain": "example.com", | |
| "id": "00000001-0000-0000-0000-000000000001" | |
| }, |
Meeting lifecycle notifications (meeting.create/update/delete) previously reused the conversation event envelope, nesting the meeting id as data.qualified_id. Extract a dedicated Wire.API.Event.Meeting event type whose envelope carries qualified_id flat at the top level, with no "data" wrapper. - Add Wire.API.Event.Meeting (Event/EventType), mirroring the conversation schema idiom but with a flat qualified_id field and no tagged type/data dispatch or subconv. - Remove the meeting lifecycle variants from Wire.API.Event.Conversation (EventType, EventData, the enum, and the meeting schema). The distinct conversation.create-meeting event is retained. - Retarget the meetings producer (pushMeetingEvent) to build the new event; the three call sites pass Create/Update/Delete. - Move the meeting golden values into a dedicated MeetingEvent module and flatten the golden JSON (qualified_id at top level, no data wrapper). - Strengthen the integration assertions to prove payload.0.qualified_id is present and payload.0.data is absent. Unreleased feature (PR #5349), so this is a clean cutover with no back-compat migration.
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
https://wearezeta.atlassian.net/browse/WPB-26705
Checklist
changelog.d