- Shipped
- November 14, 2026 at 9:44 PM UTC
- Author
- Kamo
- Commit
- 998aadd
Join links were built from the host the member was on when they set the meeting up, so invitations (webinar mails, calendar invites, composer links, lead next steps) could name a white-label parent's or a not-yet-live domain. Now: - MeetingProviderResolver puts OrgLinkHosts.meetOrigin(org) on the context; KamoMeetProvider builds joinUrl from it, never from the request host. - **************** (+ MeetPageLinks) rebuild a Kamo room's links from the room name on the org's host; WebinarEmailNotifier, join-info and the create response use them (create and join-info gain memberJoinUrl for members-only invites). - MeetRoomHostPolicy + GET /api/meet/room-access: the room's org (o<base36>- prefix, else its one recorded owner) decides which meet hosts serve it: the platform's, a domain the org verified, or its own white-label provider's (where old links were minted). Another org's host is refused. The kamo-meet sidecar asks it before minting tokens. - OrgDomainRuleGuardTest also refuses a hand-built "meet." + host. Needs kamo-shared-library 9e02c048 (OrgLinkHosts.meetOrigin).
