2018-05-23 10:14:23 +00:00
|
|
|
Server Notices
|
|
|
|
==============
|
|
|
|
|
|
|
|
'Server Notices' are a new feature introduced in Synapse 0.30. They provide a
|
|
|
|
channel whereby server administrators can send messages to users on the server.
|
|
|
|
|
2018-05-23 11:32:38 +00:00
|
|
|
They are used as part of the communication of the server polices (see
|
|
|
|
[consent_tracking.md]), however the intention is that they may also find a use
|
2018-05-23 10:14:23 +00:00
|
|
|
for features such as "Message of the day".
|
|
|
|
|
|
|
|
This is a feature specific to Synapse, but it uses standard Matrix
|
|
|
|
communication mechanisms, so should work with any Matrix client.
|
|
|
|
|
|
|
|
User experience
|
|
|
|
---------------
|
|
|
|
|
|
|
|
When the user is first sent a server notice, they will get an invitation to a
|
|
|
|
room (typically called 'Server Notices', though this is configurable in
|
|
|
|
`homeserver.yaml`). They will be **unable to reject** this invitation -
|
|
|
|
attempts to do so will receive an error.
|
|
|
|
|
|
|
|
Once they accept the invitation, they will see the notice message in the room
|
|
|
|
history; it will appear to have come from the 'server notices user' (see
|
|
|
|
below).
|
|
|
|
|
|
|
|
The user is prevented from sending any messages in this room by the power
|
|
|
|
levels. They also cannot leave it.
|
|
|
|
|
|
|
|
Synapse configuration
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
Server notices come from a specific user id on the server. Server
|
|
|
|
administrators are free to choose the user id - something like `server` is
|
|
|
|
suggested, meaning the notices will come from
|
|
|
|
`@server:<your_server_name>`. Once the server notices user is configured, that
|
|
|
|
user id becomes a special, privileged user, so administrators should ensure
|
|
|
|
that **it is not already allocated**.
|
|
|
|
|
|
|
|
In order to support server notices, it is necessary to add some configuration
|
|
|
|
to the `homeserver.yaml` file. In particular, you should add a `server_notices`
|
|
|
|
section, which should look like this:
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
server_notices:
|
|
|
|
system_mxid_localpart: server
|
|
|
|
system_mxid_display_name: "Server Notices"
|
|
|
|
room_name: "Server Notices"
|
|
|
|
```
|
|
|
|
|
|
|
|
The only compulsory setting is `system_mxid_localpart`, which defines the user
|
|
|
|
id of the server notices user, as above. `system_mxid_display_name` and
|
|
|
|
`room_name` define the displayname of the system notices user, and of
|
|
|
|
the notices room, respectively.
|