summary refs log tree commit diff
path: root/docs/specification.rst
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2014-09-29 17:19:45 +0100
committerErik Johnston <erik@matrix.org>2014-09-29 17:19:45 +0100
commit389285585d71711ba9124f64db18ad8e97e14f1a (patch)
tree7cb7c2c4971121e0825dfc6bc5deaacd01e671ee /docs/specification.rst
parentAdd m.room.redacted in events list (diff)
downloadsynapse-389285585d71711ba9124f64db18ad8e97e14f1a.tar.xz
Add a 'Redactions' section.
Diffstat (limited to 'docs/specification.rst')
-rw-r--r--docs/specification.rst17
1 files changed, 17 insertions, 0 deletions
diff --git a/docs/specification.rst b/docs/specification.rst
index a44c7c4882..23e385688e 100644
--- a/docs/specification.rst
+++ b/docs/specification.rst
@@ -778,6 +778,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
 ===========