Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
synapse
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Terraform modules
Monitor
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Timo Ley
synapse
Commits
1f76377a
Commit
1f76377a
authored
10 years ago
by
Paul "LeoNerd" Evans
Browse files
Options
Downloads
Patches
Plain Diff
Re-wrap content after latest additions
parent
dca75a08
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
docs/specification.rst
+30
-25
30 additions, 25 deletions
docs/specification.rst
with
30 additions
and
25 deletions
docs/specification.rst
+
30
−
25
View file @
1f76377a
...
@@ -78,9 +78,10 @@ The functionality that Matrix provides includes:
...
@@ -78,9 +78,10 @@ The functionality that Matrix provides includes:
+ Mapping of 3PIDs to Matrix IDs
+ Mapping of 3PIDs to Matrix IDs
The end goal of Matrix is to be a ubiquitous messaging layer for synchronising
The end goal of Matrix is to be a ubiquitous messaging layer for synchronising
arbitrary data between sets of people, devices and services - be that for instant
arbitrary data between sets of people, devices and services - be that for
messages, VoIP call setups, or any other objects that need to be reliably and
instant messages, VoIP call setups, or any other objects that need to be
persistently pushed from A to B in an interoperable and federated manner.
reliably and persistently pushed from A to B in an interoperable and federated
manner.
Architecture
Architecture
...
@@ -1120,8 +1121,8 @@ There are several APIs provided to ``GET`` events for a room:
...
@@ -1120,8 +1121,8 @@ There are several APIs provided to ``GET`` events for a room:
|/rooms/<room_id>/initialSync|_
|/rooms/<room_id>/initialSync|_
Description:
Description:
Get all relevant events for a room. This includes state events, paginated
non-state
Get all relevant events for a room. This includes state events, paginated
events and presence events.
non-state
events and presence events.
Response format:
Response format:
`` { TODO } ``
`` { TODO } ``
Example:
Example:
...
@@ -1129,20 +1130,22 @@ There are several APIs provided to ``GET`` events for a room:
...
@@ -1129,20 +1130,22 @@ There are several APIs provided to ``GET`` events for a room:
Redactions
Redactions
----------
----------
Since events are extensible it is possible for malicious users and/or servers to add
Since events are extensible it is possible for malicious users and/or servers
keys that are, for example offensive or illegal. Since some events cannot be simply
to add keys that are, for example offensive or illegal. Since some events
deleted, e.g. membership events, we instead 'redact' events. This involves removing
cannot be simply deleted, e.g. membership events, we instead 'redact' events.
all keys from an event that are not required by the protocol. This stripped down
This involves removing all keys from an event that are not required by the
event is thereafter returned anytime a client or remote server requests it.
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
Events that have been redacted include a ``redacted_because`` key whose value
event that caused it to be redacted, which may include a reason.
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
Redacting an event cannot be undone, allowing server owners to delete the
content from the databases.
offending
content from the databases.
Currently, only room admins can redact events by sending a ``m.room.redacted`` event,
Currently, only room admins can redact events by sending a ``m.room.redacted``
but server admins also need to be able to redact events by a similar mechanism.
event, but server admins also need to be able to redact events by a similar
mechanism.
Room Events
Room Events
...
@@ -1346,13 +1349,15 @@ prefixed with ``m.``
...
@@ -1346,13 +1349,15 @@ prefixed with ``m.``
JSON format:
JSON format:
``{ "reason": "string" }``
``{ "reason": "string" }``
Description:
Description:
Events can be redacted by either room or server admins. Redacting an event means that
Events can be redacted by either room or server admins. Redacting an event
all keys not required by the protocol are stripped off, allowing admins to remove
means that all keys not required by the protocol are stripped off, allowing
offensive or illegal content that may have been attached to any event. This cannot be
admins to remove offensive or illegal content that may have been attached
undone, allowing server owners to physically delete the offending data.
to any event. This cannot be undone, allowing server owners to physically
There is also a concept of a moderator hiding a non-state event, which can be undone,
delete the offending data. There is also a concept of a moderator hiding a
but cannot be applied to state events.
non-state event, which can be undone, but cannot be applied to state
The event that has been redacted is specified in the ``redacts`` event level key.
events.
The event that has been redacted is specified in the ``redacts`` event
level key.
m.room.message msgtypes
m.room.message msgtypes
-----------------------
-----------------------
...
@@ -1731,8 +1736,8 @@ There are three main kinds of communication that occur between home servers:
...
@@ -1731,8 +1736,8 @@ There are three main kinds of communication that occur between home servers:
These are single request/response interactions between a given pair of
These are single request/response interactions between a given pair of
servers, initiated by one side sending an HTTPS GET request to obtain some
servers, initiated by one side sending an HTTPS GET request to obtain some
information, and responded by the other. They are not persisted and contain
information, and responded by the other. They are not persisted and contain
no long-term significant history. They simply request a snapshot state at
the
no long-term significant history. They simply request a snapshot state at
instant the query is made.
the
instant the query is made.
:Ephemeral Data Units (EDUs):
:Ephemeral Data Units (EDUs):
These are notifications of events that are pushed from one home server to
These are notifications of events that are pushed from one home server to
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment