summary refs log tree commit diff
path: root/docs/specification.rst
diff options
context:
space:
mode:
authorKegan Dougal <kegan@matrix.org>2014-09-02 17:51:45 +0100
committerKegan Dougal <kegan@matrix.org>2014-09-02 17:51:45 +0100
commit9f94b11d4c9e3f87a06c976cffb69d3b9a9d59a4 (patch)
tree49eb77a38950103abf3b97669a2006f2e8274c3f /docs/specification.rst
parentALL THE LINKS! Most APIs now link to relative paths off the doc, outlined at ... (diff)
downloadsynapse-9f94b11d4c9e3f87a06c976cffb69d3b9a9d59a4.tar.xz
Added section on rate limiting.
Diffstat (limited to '')
-rw-r--r--docs/specification.rst18
1 files changed, 15 insertions, 3 deletions
diff --git a/docs/specification.rst b/docs/specification.rst
index 0ef18aab68..1e472d46bf 100644
--- a/docs/specification.rst
+++ b/docs/specification.rst
@@ -1402,11 +1402,24 @@ SRV Records
 
 Security
 ========
-- rate limiting
-
 .. NOTE::
   This section is a work in progress.
 
+Rate limiting
+-------------
+Home servers SHOULD implement rate limiting to reduce the risk of being overloaded. If a
+request is refused due to rate limiting, it should return a standard error response of
+the form::
+
+  {
+    "errcode": "M_LIMIT_EXCEEDED",
+    "error": "string",
+    "retry_after_ms": integer (optional)
+  }
+
+The ``retry_after_ms`` key SHOULD be included to tell the client how long they have to wait
+in milliseconds before they can try again.
+
 .. TODO
   - crypto (s-s auth)
   - E2E
@@ -1499,4 +1512,3 @@ User ID:
 .. _/join/<room_alias_or_id>: /-rooms/join
 
 .. _`Event Stream`: /-events/get_event_stream
-.. _`Initial Sync`: /-events/initial_sync