Skip to content

Add support for issuing registration tokens when homeserver uses MAS#1067

Merged
aine-etke merged 7 commits intomainfrom
mas-registration-tokens-etke
Mar 7, 2026
Merged

Add support for issuing registration tokens when homeserver uses MAS#1067
aine-etke merged 7 commits intomainfrom
mas-registration-tokens-etke

Conversation

@beastafk
Copy link
Contributor

@beastafk beastafk commented Mar 6, 2026

Based on #1055 by @cy1der


As the title suggests, this adds support for registration tokens with Matrix Authentication Service. Done by detecting that the OIDC provider is MAS and adapting the data provider accordingly, then converting the data to appear as a Synapse registration token to the front end, keeping this change entirely on back end.

Note: The length and pending count fields in the front end do not do anything when MAS is used as it does not need/provide those fields

cy1der and others added 7 commits March 7, 2026 00:04
   Based on cy1der's original implementation (cherry-picked), with the following improvements:

   - Fix isMasInstance() to use endsWith() instead of includes() for stricter URL matching
   - Replace per-call async resource detection with initRegistrationTokens() called once
     at login and on module load (page refresh), patching resourceMap.registration_tokens
     in place — removes await getResourceConfig() from every CRUD method
   - Extract synapseRegistrationTokensResource as a named const to eliminate duplication
     between the resourceMap default entry and the Synapse fallback path
   - Add early returns in getRegistrationTokensResource() to reduce nesting
   - Define proper discriminated union types (SynapseRegistrationTokensResourceType,
     MASRegistrationTokensResourceType) replacing any usage
   - Fix uses_allowed: 0 being treated as falsy by replacing || with ?? in MAS
     create/update/convert handlers
@aine-etke aine-etke merged commit 32d272b into main Mar 7, 2026
3 checks passed
@aine-etke aine-etke deleted the mas-registration-tokens-etke branch March 7, 2026 09:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants