synapse/docs/admin_api/experimental_features.md
Erik Johnston 361bdafb87
Add experimental support for MSC4222 (#17888)
Basically, if the client sets a special query param on `/sync` v2
instead of responding with `state` at the *start* of the timeline, we
instead respond with `state_after` at the *end* of the timeline.

We do this by using the `current_state_delta_stream` table, which is
actually reliable, rather than messing around with "state at" points on
the timeline.

c.f. MSC4222
2024-11-05 14:45:57 +00:00

1.6 KiB

Experimental Features API

This API allows a server administrator to enable or disable some experimental features on a per-user basis. The currently supported features are:

  • MSC3881: enable remotely toggling push notifications for another client
  • MSC3575: enable experimental sliding sync support
  • MSC4222: adding state_after to sync v2

To use it, you will need to authenticate by providing an access_token for a server admin: see Admin API.

Enabling/Disabling Features

This API allows a server administrator to enable experimental features for a given user. The request must provide a body containing the user id and listing the features to enable/disable in the following format:

{
   "features": {
      "msc3026":true,
      "msc3881":true
   }
}

where true is used to enable the feature, and false is used to disable the feature.

The API is:

PUT /_synapse/admin/v1/experimental_features/<user_id>

Listing Enabled Features

To list which features are enabled/disabled for a given user send a request to the following API:

GET /_synapse/admin/v1/experimental_features/<user_id>

It will return a list of possible features and indicate whether they are enabled or disabled for the user like so:

{
   "features": {
      "msc3026": true,
      "msc3881": false,
      "msc3967": false
   }
}