Skip to content

MSC Support

MSCs (Matrix Spec Changes) are proposals to extend or modify the Matrix protocol. This page tracks the implementation status of notable MSCs in Zendrite.

Many MSCs listed here have since been merged into the Matrix specification proper. They are listed by their original MSC number for reference.

MSCTitleStatus
MSC4186Simplified Sliding SyncImplemented (native, no proxy needed)
MSC3575Sliding Sync (v1)Implemented (legacy, superseded by MSC4186)
MSCTitleStatus
MSC2675Serverside aggregations of message relationshipsImplemented
MSC2676Message editingImplemented
MSC2677ReactionsImplemented
MSC2836ThreadingOpt-in (msc2836)
MSC2285Private read receiptsImplemented
MSCTitleStatus
MSC1772SpacesImplemented
MSC2946Spaces summary / room hierarchyImplemented
MSC3083Restricted rooms (space-based membership)Implemented
MSC2403KnockingImplemented
MSC3266Room summary APIImplemented
MSC3765Rich text in room topicsNot implemented
MSCTitleStatus
MSC3916Authenticated mediaImplemented
MSC2732OLM fallback keysImplemented
MSC4115Membership metadata on eventsOpt-in (msc4115)
MSCTitleStatus
MSC3706Partial state in /send_join (faster joins)Implemented
MSC2444Peeking over federationOpt-in (msc2444)
MSC2753Peeking via /syncOpt-in (msc2753)
MSCTitleStatus
MSC2918Refresh tokensImplemented
MSC3861Next-gen auth (OIDC)Opt-in (msc3861)
MSCTitleStatus
MSC4143MatrixRTCNot implemented

The following MSCs are not enabled by default and must be activated in the mscs section of the config file:

mscs:
  mscs:
    - msc2836
    - msc2444
    - msc2753
    - msc3861
    - msc4115

MSC3861 delegates authentication to an external OpenID Connect (OIDC) provider such as Matrix Authentication Service (MAS). When enabled, Zendrite validates access tokens via OAuth 2.0 token introspection instead of managing passwords directly.

What changes when MSC3861 is enabled:

  • Password-based registration and login are disabled.
  • GET /login returns only the m.login.sso flow.
  • POST /login, /register, /account/password, /account/deactivate, /logout, /logout/all, /delete_devices, and device modification endpoints return 403 M_FORBIDDEN.
  • /.well-known/matrix/client includes an m.authentication section with the OIDC issuer.
  • New users are auto-provisioned on first token introspection.

Configuration:

mscs:
  mscs:
    - msc3861
  msc3861:
    issuer: "https://auth.example.com/"
    client_id: "0000000000000000000DENDRITE"
    client_secret: "secret"
    client_auth_method: "client_secret_basic"  # or "client_secret_post"
    admin_token: ""                            # optional: static token for admin API access
    account_management_url: ""                 # optional: URL for account management UI
    introspection_endpoint: ""                 # optional: defaults to {issuer}/oauth2/introspect
FieldRequiredDescription
issuerYesThe OIDC provider URL (e.g. your MAS instance).
client_idYesOAuth 2.0 client ID registered with the OIDC provider for introspection.
client_secretYesOAuth 2.0 client secret for introspection.
client_auth_methodNoAuthentication method: client_secret_basic (default) or client_secret_post.
admin_tokenNoA static bearer token that grants admin access, bypassing OIDC introspection. Useful for service-to-service calls.
account_management_urlNoURL where users can manage their account (shown in well-known response).
introspection_endpointNoOverride the introspection endpoint URL. Defaults to {issuer}/oauth2/introspect.