Client-Server API Extensions

Server administrators can set special account data to change how the Client-Server API behaves for their clients. Setting the account data, or having it already set, as a non-admin has no effect.

All configuration options can be set through the io.element.synapse.admin_client_config global account data on the admin's user account.

Example:

PUT /_matrix/client/v3/user/{adminUserId}/account_data/io.element.synapse.admin_client_config
{
    "return_soft_failed_events": true
}

See soft failed events

Learn more about soft failure from the spec.

To receive soft failed events in APIs like /sync and /messages, set return_soft_failed_events to true in the admin client config. When false, the normal behaviour of these endpoints is to exclude soft failed events.

Note: If the policy server flagged the event as spam and that caused soft failure, that will be indicated in the event's unsigned content like so:

{
  "type": "m.room.message",
  "other": "event_fields_go_here",
  "unsigned": {
    "io.element.synapse.soft_failed": true,
    "io.element.synapse.policy_server_spammy": true
  }
}

Default: false

See events marked spammy by policy servers

Learn more about policy servers from MSC4284.

Similar to return_soft_failed_events, clients logged in with admin accounts can see events which were flagged by the policy server as spammy (and thus soft failed) by setting return_policy_server_spammy_events to true.

return_policy_server_spammy_events may be true while return_soft_failed_events is false to only see policy server-flagged events. When return_soft_failed_events is true however, return_policy_server_spammy_events is always true.

Events which were flagged by the policy will be flagged as io.element.synapse.policy_server_spammy in the event's unsigned content, like so:

{
  "type": "m.room.message",
  "other": "event_fields_go_here",
  "unsigned": {
    "io.element.synapse.soft_failed": true,
    "io.element.synapse.policy_server_spammy": true
  }
}

Default: true if return_soft_failed_events is true, otherwise false