diff options
author | Paul "LeoNerd" Evans <paul@matrix.org> | 2014-09-29 18:37:28 +0100 |
---|---|---|
committer | Paul "LeoNerd" Evans <paul@matrix.org> | 2014-09-29 18:37:28 +0100 |
commit | dca75a08ba5e64554f22813bd0a0356760a1be25 (patch) | |
tree | cb28d1e16cc825d4b88bc814e9e6ea1b34783f15 /docs/specification.rst | |
parent | Extended docs about the registration/login flows (diff) | |
parent | Add a 'Redactions' section. (diff) | |
download | synapse-dca75a08ba5e64554f22813bd0a0356760a1be25.tar.xz |
Merge remote-tracking branch 'origin/develop' into develop
Diffstat (limited to 'docs/specification.rst')
-rw-r--r-- | docs/specification.rst | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/docs/specification.rst b/docs/specification.rst index e9e9296073..23b6bed764 100644 --- a/docs/specification.rst +++ b/docs/specification.rst @@ -1127,6 +1127,23 @@ There are several APIs provided to ``GET`` events for a room: Example: TODO +Redactions +---------- +Since events are extensible it is possible for malicious users and/or servers to add +keys that are, for example offensive or illegal. Since some events cannot be simply +deleted, e.g. membership events, we instead 'redact' events. This involves removing +all keys from an event that are not required by the protocol. This stripped down +event is thereafter returned anytime a client or remote server requests it. + +Events that have been redacted include a ``redacted_because`` key whose value is the +event that caused it to be redacted, which may include a reason. + +Redacting an event cannot be undone, allowing server owners to delete the offending +content from the databases. + +Currently, only room admins can redact events by sending a ``m.room.redacted`` event, +but server admins also need to be able to redact events by a similar mechanism. + Room Events =========== @@ -1321,6 +1338,22 @@ prefixed with ``m.`` end-user). The ``target_event_id`` should reference the ``m.room.message`` event being acknowledged. +``m.room.redaction`` + Summary: + Indicates a previous event has been redacted. + Type: + Non-state event + JSON format: + ``{ "reason": "string" }`` + Description: + Events can be redacted by either room or server admins. Redacting an event means that + all keys not required by the protocol are stripped off, allowing admins to remove + offensive or illegal content that may have been attached to any event. This cannot be + undone, allowing server owners to physically delete the offending data. + There is also a concept of a moderator hiding a non-state event, which can be undone, + but cannot be applied to state events. + The event that has been redacted is specified in the ``redacts`` event level key. + m.room.message msgtypes ----------------------- Each ``m.room.message`` MUST have a ``msgtype`` key which identifies the type |