Commit Graph

85 Commits (6c75b83b9906e5edbcf312d39faefb9609abf95e)

Author SHA1 Message Date
Travis Ralston 2d18f81807
Merge pull request #2087 from matrix-org/travis/1.0/events-are-extensible
Reorganize event structure in c2s spec and clarify event capabilities
6 years ago
Travis Ralston 8fd5b15594 Reorganize event structure in c2s spec and clarify event capabilities
Fixes https://github.com/matrix-org/matrix-doc/issues/1166
Fixes https://github.com/matrix-org/matrix-doc/issues/1527
Fixes https://github.com/matrix-org/matrix-doc/issues/1827

Note: In order to fix the "state events have the following fields: [no words]" bug (1827) we need to resolve references on common event types. When doing this we ultimately end up with more fields than may be required to explain the section, however this commit alters the section descriptions to just say "these fields" instead of "these additional fields".

This is also preferable over trying to get the inheritance reversed in the common event types, as the `/sync` endpoint has a high amount of reliance on partial events definitions.
6 years ago
Travis Ralston a6314df44c Spec v5 rooms: Key validity
Proposals:
* [MSC2076](https://github.com/matrix-org/matrix-doc/pull/2076)
* [MSC2077](https://github.com/matrix-org/matrix-doc/pull/2077)

Implementation references:
* 00bf99fa62
* https://github.com/matrix-org/synapse/pull/5354
* https://github.com/matrix-org/synapse/pull/5321

No known differences from the proposals are included here - alterations are accidental.
6 years ago
Travis Ralston bf8ca3abba
Merge pull request #2026 from matrix-org/travis/1.0/msc1452-server-notices
Add server notices support
6 years ago
Travis Ralston 5eea4a477f Add server notices support
As per [MSC1452](https://github.com/matrix-org/matrix-doc/issues/1452) 

Fixes https://github.com/matrix-org/matrix-doc/issues/1254

Although MSC1452 focuses on just the warnings part of the server notices, the base for notices has not been established in the spec. This commit adds the needed support to be able to handle notices.

No intentional divergences from the proposal are included in this changeset. There are a few additions which are used in practice although not defined in the proposal, such as who is responsible for aesthetics, sending notices, and other misc rules.
6 years ago
Travis Ralston 3b0e194ff7 Add version 4 rooms to the spec
As per [MSC1884](https://github.com/matrix-org/matrix-doc/pull/1884) and [MSC2002](https://github.com/matrix-org/matrix-doc/pull/2002).

No known changes since the proposals were accepted.

Due to being in the area: This fixes https://github.com/matrix-org/matrix-doc/issues/1863
6 years ago
Travis Ralston ff75996524 Add specification for room version 3: Event IDs as hashes
Original proposal: https://github.com/matrix-org/matrix-doc/pull/1659
Implementation proofs (some traversing of the PR tree may be required to get all of them):
* https://github.com/matrix-org/synapse/pull/4483
* https://github.com/matrix-org/synapse/pull/4499

This doesn't intentionally change anything from the proposal.

**Implementation details**:

The simple part of this is the introduction of a rooms/v3.html document. The somewhat unclear part is the stuff done to the s2s definitions. This pulls `unsigned_pdu` out to `unsigned_pdu_base` (all fields except `event_id`) where it can be reused in `pdu` and `pdu_v3` (for rooms v3). These definitions are further moved into the room version specifications where they can highlight the exact schemas in detail.

Version 1 has been updated to include the pre-existing event format, however the core principles of the room have not been changed. The same applies to room version 2. Room versions have immutable core principles once in the spec, otherwise these format changes would land in a pre-existing version.

The client-server API event formats will need updating, however that is being punted to a different commit to try and keep these changes reviewable.
6 years ago
Travis Ralston 6c7eea555a
Merge pull request #1773 from matrix-org/travis/spec/rooms
Add a room version specification
6 years ago
Travis Ralston 052d68d83d
Merge pull request #1791 from matrix-org/travis/spec/rver-upgrades
Add room version upgrades
6 years ago
Travis Ralston 71e6321f4d Rework how room versions are represented
Versions are actually on a scale of recommendations, and are expected to be created as needed. The scale presented here (develop/beta/default/recommended/mandatory) is a more wordy version of what was previously discussed/intended for room versions - the labels aren't final and may be changed.
6 years ago
Travis Ralston b85f7bb248 Add room version upgrades
Implements https://github.com/matrix-org/matrix-doc/issues/1501
6 years ago
Travis Ralston d6c33ea0a5 Make CAS a subset of SSO 6 years ago
Travis Ralston 3e7a5f5ea4 Initial draft for SSO support 6 years ago
Travis Ralston ffe577371d Add a room version specification
The "Room Specification" (or "Room Version Specification") is the specification that defines which room versions do what and are intended to be documents which speak the truth about how rooms operate under the hood.

The approach taken here is a bit different than other specifications. For starters, the specification is versioned in this project instead of relying on the matrix.org repository to track compiled HTML. This is done for a couple reasons, the first being we're still developing the v1 specification while concurrently making a v2 spec and the second being trying to reduce the reliance on matrix.org's repository for specifications.

Because the room spec is built into versions, some changes needed to be made. The `targets.yaml` now has a special syntax for indicating what version something is at, and the changelog generator can handle rendering different versions of the same changelog (as parsed from the RST). Some additional work has been put in to the changelog parsing to allow us to reference the v1 room spec as "v1" without having to sacrifice clarity in the changelog headings.

Finally, this moves the state resolution algorithms into the versioned
spec as a result of MSC1759 (https://github.com/matrix-org/matrix-doc/pull/1759).

Note: this does not introduce the concept of versioned schemas (tabs) that I was previously working with. There's currently no use for them, so they are shelved elsewhere.
6 years ago
Travis Ralston 7d34995ece It's actually an "identity server implementing the Identity Service API"
Also add a note about appservices being special.
6 years ago
Travis Ralston 7ac76fa27c Actually we're going with "identity server" afterall 6 years ago
Travis Ralston f923d08078 Add read markers
This is the spec for https://github.com/matrix-org/matrix-doc/issues/910

Fixes https://github.com/matrix-org/matrix-doc/issues/910

Some reverse engineering was required to work out the complete details as to how this works. In particular, the 405 for setting account data and the behaviour of m.read.

References:
* 405 for account data: d69decd5c7/synapse/rest/client/v2_alpha/account_data.py (L85-L90)
* m.read behaviour: d69decd5c7/synapse/rest/client/v2_alpha/read_marker.py (L45-L52)
6 years ago
Travis Ralston a5c3924492 Merge remote matrix-org/master 6 years ago
Travis Ralston 2ab2f91088 Merge remote-tracking branch 'matrix-org/master' into travis/releases/push-gateway/r0.1.0 6 years ago
Travis Ralston fa3e9a7609 Merge remote-tracking branch 'matrix-org/master' into travis/c2s/pills 6 years ago
Travis Ralston fa96d8629b Prepare the appservice spec for an r0 release
This puts the scaffolding in place for an r0 release to happen, such as the changelog and version variables.
6 years ago
Travis Ralston ef41b5c2bf Server ACLs
Implements the proposal for https://github.com/matrix-org/matrix-doc/issues/1383
6 years ago
Travis Ralston 9835c98544 Document how mentions (pills) work
Implements the proposal over at https://github.com/matrix-org/matrix-doc/issues/1067

Includes some specification for how matrix.to is structured, and how it is intended to be replaced.
6 years ago
Travis Ralston ba51d5960e r0.1.0 release of the Push Gateway specification
Because this is the first release, it has several moving parts to it:
* The version variables have been defined.
* The towncrier changelog has been prepared for future modifications.
* The templating has been updated to better support future versions of the specification.
* A release process document has been created.
6 years ago
Travis Ralston 8ffac01efe Document OpenID in the client-server API
Part of https://github.com/matrix-org/matrix-doc/issues/857

Reference: d69decd5c7/synapse/rest/client/v2_alpha/openid.py (L31-L58)
6 years ago
Ben Parsons 54d6d58fff naively move content from intro.rst to index.rst 6 years ago
Andrew Morgan 291a4dfc76 Third party lookup module. Fix wording 6 years ago
Andrew Morgan 114bcf1a2e Use $ref, clean up, fix errors, AS is now a C-S module. 6 years ago
Andrew Morgan cc3724b54a fix indentation, error messages. add rest of PR 6 years ago
Andrew Morgan d73b247688 3PE lookup service 7 years ago
Travis Ralston 9037f506ac Document how to report content
Fixes: https://github.com/matrix-org/matrix-doc/issues/739

Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Ben Parsons e18aa30fd2 start generating new proposals page 7 years ago
Richard Lewis 8d05f80cec Sticker messages (m.sticker) (#1158) 7 years ago
Travis Ralston 331e49bd0d Improve the documentation of ignored users
* Fix the event schema to represent the real world
* Add the module to the spec targets
* Remove incomplete thought from the client behaviour
* Link to the account data API
* Minor word choice changes

Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
David Baker ff85ec055e Move 3pid types down 7 years ago
David Baker 6edb90a08e Document threepids
Adds the /msisdn' 3pid type and generally fleshes out what a 3pid
is and how they work.

This merges most of the work from Max Dor in https://github.com/matrix-org/matrix-doc/pull/1039
with some tweaks and additions.
7 years ago
Richard van der Hoff 628e723483 Move the MXID spec to the appendices
Also link to them from the /register API doc.
7 years ago
Richard van der Hoff da686ba4eb Specification of unpadded Base64 8 years ago
Richard van der Hoff 461bfdb0d8 Merge branch 'master' into rav/device_management 8 years ago
Richard van der Hoff 3ee75af06f Move 'Signing JSON' to appendices
Canonical JSON and JSON signing in general are common to the C-S spec. Move
them to the appendices instead of the S-S spec.
8 years ago
Richard van der Hoff a5e12814ef Split appendices up
Split appendices into multiple files
8 years ago
Richard van der Hoff af515012ea Device management API 8 years ago
Richard van der Hoff 909aef2b18 Merge pull request #389 from matrix-org/erikj/create_room_is_direct
Spec /createRoom is_direct flag, is_direct in member event and m.direct
8 years ago
David Baker 203ea99328 Spec m.direct 8 years ago
Richard van der Hoff ebaaa7e3b3 Review feedback
* store-and-forward -> send-to-device
* describe motivation
* device ids are 10 capital chars
* etc
8 years ago
Richard van der Hoff ccd7bb32d5 Specification for direct-to-device messages 8 years ago
Richard van der Hoff 41368dc5a7 document CAS login
Following the spirit of "document how it is, not how we wish it was", document
the CAS login bits.
8 years ago
Mark Haines 30a3302921 Merge pull request #274 from matrix-org/markjh/default_rules
Update the predefined push rules in the spec
9 years ago
Richard van der Hoff 01f8173c84 Put each bit of spec in its own directory
I want to change the URLs for the spec sections on the website from
<version>/<section>.html to <section>/<version>.html, to better reflect how we
do the versioning.

This puts each bit of spec in its own directory, updates the index to point to
the right place, and fixes continuserv to deal with directories as well as
files.

This will probably require fixes to the speculator too, but I'll have to come
back to that.
9 years ago
David Baker 71cb646541 Change `id` in the push gateway poke to be `event_id` and spec that it's the Matrix event ID of the message. Correct the spec for badge count pushes which omit fields previously described as mandatory. Add more detail about when to use event_id to suppress dupes. Also add the push gateway doc so it's actually included in the spec. 9 years ago