diff options
author | Richard van der Hoff <richard@matrix.org> | 2018-05-23 16:24:58 +0100 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2018-05-23 16:24:58 +0100 |
commit | 043f05a078a6909f468925ba827e287c151b9711 (patch) | |
tree | 658deb0657b8f2d276fc5b6c14e5322e0f7204b7 /docs/server_notices.md | |
parent | Merge pull request #3271 from matrix-org/rav/consent_uri_in_messages (diff) | |
parent | consent_tracking.md: clarify link (diff) | |
download | synapse-043f05a078a6909f468925ba827e287c151b9711.tar.xz |
Merge docs on consent bits from PR #3268 into release branch
Diffstat (limited to 'docs/server_notices.md')
-rw-r--r-- | docs/server_notices.md | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/docs/server_notices.md b/docs/server_notices.md new file mode 100644 index 0000000000..8e18e3d95d --- /dev/null +++ b/docs/server_notices.md @@ -0,0 +1,68 @@ +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. + +They are used as part of communication of the server polices(see +[consent_tracking.md](consent_tracking.md)), however the intention is that +they may also find a use 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. + +Sending notices +--------------- + +As of the current version of synapse, there is no convenient interface for +sending notices (other than the automated ones sent as part of consent +tracking). + +In the meantime, it is possible to test this feature using the manhole. Having +gone into the manhole as described in [manhole.md](manhole.md), a notice can be +sent with something like: + +``` +>>> hs.get_server_notices_manager().send_notice('@user:server.com', {'msgtype':'m.text', 'body':'foo'}) +``` |