Commit Graph

910 Commits (85b9769cd9ea101f7d6b10259a983e0b620c9e61)

Author SHA1 Message Date
Valentin Deniaud a28f243ed7 document left parameter of device_lists in sync response
fix #1171
6 years ago
Valentin Deniaud 10c3307427 document device_one_time_keys_count in /sync/ response
fix #1157
6 years ago
Valentin Deniaud 2686b99080 fix json indent 6 years ago
Valentin Deniaud 07e3de3c61 add megolm messaging algorithm subsection
This was written by Richard van der Hoff.
6 years ago
Valentin Deniaud 33802dbbaf add olm messaging algorithm subsection
This was written by Richard van der Hoff.
6 years ago
Valentin Deniaud e210f8b050 add e2e messaging algorithms section intro
This was written by Richard van der Hoff.
6 years ago
Travis Ralston 0863c5452e Take out the false third party network endpoints
Fixes https://github.com/matrix-org/matrix-doc/issues/800
6 years ago
Travis Ralston 95b2b7c2bc Move query APIs to the right heading
Fixes https://github.com/matrix-org/matrix-doc/issues/1325

Addresses some of https://github.com/matrix-org/matrix-doc/issues/1532
6 years ago
Travis Ralston 069a2f7481 Split the query user and room APIs out to their own files 6 years ago
Travis Ralston 954498bf78 Recommend that application services use an underscore for namespacing
Fixes https://github.com/matrix-org/matrix-doc/issues/689
6 years ago
Travis Ralston 205b326e4a Add a note that application services cannot /sync normally
Fixes https://github.com/matrix-org/matrix-doc/issues/1144
6 years ago
Travis Ralston 857bcc0fe7 Encourage appservices to use the Authorization header
This also throws in a mention about how to handle a request with a lack of user_id.

The request samples now encourage the use of the header over the query string, and have had their sample values added for some readability. 

Fixes https://github.com/matrix-org/matrix-doc/issues/1296
Fixes https://github.com/matrix-org/matrix-doc/issues/1424
6 years ago
Travis Ralston 7caad61b86 Clearly state how the users namespace relates to interest in events
Fixes https://github.com/matrix-org/matrix-doc/issues/1307
6 years ago
Travis Ralston fd101b6ac9 Misc language changes 6 years ago
Hubert Chathi f5dc0eaed2
document msisdn-related endpoints in IS (#1507)
* add msisdn endpoints in Identity Server spec
* add in CS endpoints that use the IS msisdn endpoints
6 years ago
Travis Ralston ebca4c7d86 Merge remote-tracking branch 'matrix-org/master' into travis/s2s/presence 6 years ago
Travis Ralston 21dc6f823a
Merge pull request #1484 from turt2live/travis/s2s/read-receipts
Document how read receipts work over federation
6 years ago
Travis Ralston 44d1f8dbe5 s/timeline/event graph 6 years ago
Travis Ralston a53fa9300d Merge remote-tracking branch 'matrix-org/master' into travis/s2s/presence 6 years ago
Travis Ralston ff1afaa8f7 Add a note about how presence lists work 6 years ago
Travis Ralston e7aed3da26 Remove poll/unpoll from presence 6 years ago
Travis Ralston 4b9922b641
Merge pull request #1494 from turt2live/travis/general/openid
Document OpenID in the client-server and server-server APIs
6 years ago
Travis Ralston 2eab07ade4 Fix header in server-server API 6 years ago
Travis Ralston 2aa0e7b00f
Merge pull request #1483 from turt2live/travis/s2s/typing
Document how typing notifications work over federation
6 years ago
Travis Ralston d6c54b0278 unaccessible isn't a word 6 years ago
Travis Ralston ca87876f1b Clarify that the Authorization header is preferred 6 years ago
Travis Ralston 25d01aa431 Dedicate a section on how to use access tokens
Fixes https://github.com/matrix-org/matrix-doc/issues/1042.
6 years ago
Travis Ralston fde48e7ee8 Specify how room versioning works
This is the spec PR for https://github.com/matrix-org/matrix-doc/issues/1425

Room version upgrades are not part of MSC1425.

Documented aspects:
* room_version on the create event
* creating a room with a specific version (useful for testing)
* make_join behaviour
* error code documentation
* grammar of room versions

Based upon https://docs.google.com/document/d/1urKgReoHqxX8R_XtySB17dPi-DZcKhqTEL2_s895Wz0/edit
6 years ago
Travis Ralston de961fb7d6 Improve wording on push gateways 6 years ago
Travis Ralston 6ad71f785e Improve documentation for pushers and push gateways
This fixes a number of formatting issues alongside a few documentation problems:
* The push gateway can actually expect less parameters than previously advertised. This is for user privacy.
* Introduction of the `m.email` pusher for email-capable homeservers.
* Fields not being flagged as required on some endpoints.
* Document the `event_id_only` format

Note: this does not attempt to document push rules, just pushers.

Fixes https://github.com/matrix-org/matrix-doc/issues/1374
Fixes https://github.com/matrix-org/matrix-doc/issues/1087
6 years ago
Hubert Chathi cd4fed509c
convert IS endpoints to Swagger (#1427) 6 years ago
Hubert Chathi 292d334509
document new login identifier object (#1390) 6 years ago
Travis Ralston 50fc1c4d16 Move backfill/get events so that joins, leaves, and invites are together 6 years ago
Travis Ralston 83ea90f7ba Move the Authentication section higher in the spec
It forms the foundation for all the requests under it, so it should appear before the endpoints that need it.
6 years ago
Travis Ralston 32178bb07e Tidy up the specification
* Minor word choice changes
* Remove the now-empty "Protocol URLs" section
6 years ago
Travis Ralston 56dbeeb22a
Merge pull request #1469 from turt2live/travis/s2s/backfill
Improve documentation for backfilling rooms
6 years ago
Travis Ralston c8a8fdfa8d
Merge pull request #1493 from turt2live/travis/s2s/media
Mention how the content repository works over federation
6 years ago
Travis Ralston 0a7e670715 Document how typing notifications work over federation
Relevant synapse code: d69decd5c7/synapse/handlers/typing.py (L221-L230)
6 years ago
Travis Ralston e03bfbc47b Document how read receipts work over federation
Federation format: d69decd5c7/synapse/handlers/receipts.py (L153-L166)

Population of the fields that the above uses to construct the EDU: d69decd5c7/synapse/handlers/receipts.py (L48-L56)
6 years ago
Travis Ralston 05a2427c73 Document how presence EDUs work between servers
It's worth noting that Synapse does not make use of the `poll` or `unpoll` fields, and therefore the wording has been updated to permit servers to reject users. In the case of synapse, it would automatically reject everyone in the list by nature of ignoring it.
6 years ago
Travis Ralston a77975ba68
Merge pull request #1450 from turt2live/travis/s2s/inviting-rooms
Improve documentation for how non-third party invites work
6 years ago
Travis Ralston 0f8954d839
Merge pull request #1463 from turt2live/travis/s2s/pdus-and-edus
Improve documentation around EDUs and PDUs
6 years ago
Travis Ralston dcae88c290 Document OpenID in the server-server API
Part of https://github.com/matrix-org/matrix-doc/issues/857

Reference: d69decd5c7/synapse/federation/transport/server.py (L543-L557)
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
Travis Ralston cdcd72c0e3 Fix stray hash on client-server API link
This shouldn't be here, and nothing appears to need it. Removing it now because it has been noticed.
6 years ago
Travis Ralston 0858e7bd23 Mention how the content repository works over federation
We might want to consider promoting the media repo to it's own API, and maybe consider calling it the Media Repo rather than Content Repo.

Source of information: experience.
6 years ago
Travis Ralston 521dcdd5d5 Merge remote-tracking branch 'matrix-org/master' into travis/s2s/backfill 6 years ago
Travis Ralston 35f15ba3d8
Merge pull request #1477 from turt2live/travis/s2s/public-rooms
Document the /publicRooms endpoint for federation
6 years ago
Travis Ralston d712bfc73d
Merge pull request #1479 from turt2live/travis/s2s/server-discovery
Federation: Document the Host header; Clarify how literal IP addresses are handled
6 years ago
Travis Ralston e10770ae8b
Merge pull request #1475 from turt2live/travis/s2s/event-auth
Document /event_auth and /query_auth
6 years ago
Richard van der Hoff eb45419431
Merge pull request #1490 from matrix-org/dbkr/room_tag_grammar
Fix grammar in room tag spec
6 years ago
Florian Jacob e7cebf670e Fix minor spelling mistake from #1472
Signed-off-by: Florian Jacob <projects+git AT florianjacob )DOT( de>
6 years ago
David Baker 803ef536ba Fix grammar in room tag spec
Have removed the second clause about how the client interprets them:
I was trying to think how to rephrase it but I think in reality it's
probably just redundant.
6 years ago
Travis Ralston dcb39f8890 Fix wording from bad merge 6 years ago
Will Hunt c826edf23b Remove dns_name from S2S Api 6 years ago
Will Hunt 7a46bdae02
Spacing 6 years ago
Will Hunt 632101dcde
Merge branch 'master' into hs/dns-to-be-hostname 6 years ago
Travis Ralston 5fbaa1deb5 Federation: Document the Host header; Clarify how literal IP addresses are handled
Fixes https://github.com/matrix-org/matrix-doc/issues/1161

The IP address clarification is to add an explicit mention of how to handle the case. The prior documentation assumed that all servers would be resolvable with DNS, and does technically have a fallback to use the fallback port, however making it clear feels like a good idea.
6 years ago
Travis Ralston 2ac80d38d7 Document the /publicRooms endpoint for federation
This intentionally doesn't document the third party network aspect of the endpoint. This is scheduled for a later area for dealing with third party network/IDs and is reported as https://github.com/matrix-org/matrix-doc/issues/1476

The client-server response has been broken out to a shared file: both the client-server and server-server /publicRoom endpoints return the same thing, with slightly different inputs.

The inputs (and behaviour) are based upon the docstring here: 43ecfe0b10/synapse/federation/transport/server.py (L583-L612)
6 years ago
Travis Ralston 73958ecbff Document /event_auth and /query_auth
/event_auth is a fairly easy endpoint to determine the use case of. /query_auth is a little harder to investigate and has a fairly interesting purpose: it appears to be used for the sending server to admit defeat and shop around for the right auth chain, correcting it's own perspective as it goes.

/query_auth is based off the following research points in synapse:
* 43ecfe0b10/synapse/handlers/federation.py (L1947-L1990)
* 43ecfe0b10/synapse/handlers/federation.py (L2049-L2187)
* 43ecfe0b10/synapse/handlers/federation.py (L1716-L1761)
* 43ecfe0b10/synapse/federation/federation_server.py (L393-L446)
* https://github.com/matrix-org/synapse/blob/master/synapse/federation/transport/server.py#L482-L487
6 years ago
Travis Ralston 6b67d501e4
Merge branch 'master' into travis/s2s/query 6 years ago
Travis Ralston 3a9fb11c9b
Merge branch 'master' into travis/s2s/backfill 6 years ago
Travis Ralston 1578da453b
Merge branch 'master' into travis/s2s/get-event 6 years ago
Travis Ralston 86d7f42173
Merge pull request #1455 from turt2live/travis/s2s/leaving-rooms
Document how leaving rooms/rejecting invites over federation works
6 years ago
Travis Ralston d48f1e1713
Merge pull request #1461 from turt2live/travis/s2s/transactions
Improve documentation on how Transactions work
6 years ago
Travis Ralston cda88f3b3d Document /get_missing_events
Fixes https://github.com/matrix-org/matrix-doc/issues/1385
6 years ago
Travis Ralston 05bb7e1050 Spelling and word choice 6 years ago
Travis Ralston 53d4003d3a manual merge of master into travis/s2s/query 6 years ago
Travis Ralston 48972addbf
Merge pull request #1428 from turt2live/travis/s2s/joining-rooms
Improve the documentation for joining rooms
6 years ago
Travis Ralston a9258ed195 an -> a 6 years ago
Travis Ralston 9d474bb819 Document event retrieval endpoints in more detail
This also adds a previously-undocumented endpoint: /state_ids

Backfill is technically not part of this section, however it is being left untouched to make the merge with #1469 easier (which moves it out of the file).

Reference material:
* Some calls to synapse on these endpoints with a relatively simple private room.
6 years ago
Travis Ralston 5aef545128 Improve documentation for backfilling rooms
There's not a whole lot to improve here - most of the changes are about reorganization and minor clarifications.
6 years ago
Travis Ralston b96ee3e393
Merge pull request #1423 from turt2live/travis/s2s/keys
Improve the server key exchange portion of the s2s specification
6 years ago
Travis Ralston 5027a9a59a Improve documentation around EDUs and PDUs
Clarify fields, improve examples, and make the tables in the spec be generated rather than duplicated.
6 years ago
Travis Ralston 7679b4f1d1 Improve documentation on how Transactions work
The response is based upon various sections of the Synapse code in how it generates a response.

There are no new fields added to the transaction. Originally, `previous_ids` and `pdu_failures` were to be documented however neither of these are used in the real world.
6 years ago
David Baker 2dc51d416d Ignore stuff in `m.` you don't understand 6 years ago
David Baker f90ed4b77d Make non-namespaced tags verboten 6 years ago
David Baker e4fd088fcc Fix room tags spec 6 years ago
Travis Ralston 8f1a4ae0ea Formatting 6 years ago
Travis Ralston 9fdd8a6f96 Document how leaving rooms/rejecting invites over federation works
Fixes https://github.com/matrix-org/matrix-doc/issues/1401

This is very similar to the joining rooms handshake, and much of it is a near copy/paste of the make_join and send_join API. The major difference is the send_leave API doesn't return anything.

References:
* Handling of make_leave: d69decd5c7/synapse/handlers/federation.py (L1285-L1310)
* send_leave route: d69decd5c7/synapse/federation/transport/client.py (L267)
* make_leave route: d69decd5c7/synapse/federation/transport/server.py (L396)
* send_leave returning nothing: d69decd5c7/synapse/handlers/federation.py (L1346)
6 years ago
Travis Ralston f873bae0cc Improve documentation for how non-third party invites work
The details are fairly straightforward. An `event` has been added to the response body because that's what Synapse returns, despite the spec saying otherwise until now: d69decd5c7/synapse/federation/federation_server.py (L339)
6 years ago
Travis Ralston c2f1c6e78d Improve the joining rooms handshake documentation
There isn't a whole lot to this section that needed work. The section overall lost the table schema in favour of having the endpoints close by.

The directory query is improved in https://github.com/matrix-org/matrix-doc/pull/1443
6 years ago
Travis Ralston 8e97b0ca81 Improve the server key exchange portion of the s2s specification
Most of the text has been shuffled into the swagger definitions to bring it closer to where it matters.

This also attempts to clarify what is out in the wild. Most importantly, the first version of the key exchange is outright removed from the specification. Other research points/questions are:

* What is a "Key ID"?
  * 1241156c82/synapse/rest/key/v2/local_key_resource.py (L81-L83)
  * 1241156c82/synapse/rest/key/v2/local_key_resource.py (L88-L91)
* Returning a cached response if the server throws a 400, 500, or otherwise not-offline status code
  * 1241156c82/synapse/rest/key/v2/remote_key_resource.py (L227-L229)
* `minimum_valid_until_ts` default
  * This branch of the ladder: 1241156c82/synapse/rest/key/v2/remote_key_resource.py (L192)
* Returning empty arrays when querying offline/no servers
  * Queried by hand against matrix.org as a notary server with a fake domain name to query
* Returning all keys even when querying for specific keys
  * Queried by hand using matrix.org as a notary server against a server publishing multiple keys.

The examples and descriptions were also improved as part of this commit.
6 years ago
Travis Ralston 0ddf578b61 Combine all queries into their own section
This removes the Directory and Profile sections, instead opting to document them as Queries. 

The behaviour of profile queries is based on Synapse's behaviour. A few issues have been opened to improve the behaviour:
* https://github.com/matrix-org/matrix-doc/issues/1434
* https://github.com/matrix-org/matrix-doc/issues/1435
* https://github.com/matrix-org/matrix-doc/issues/1436
* https://github.com/matrix-org/matrix-doc/issues/1437

This fixes https://github.com/matrix-org/matrix-doc/issues/1404
6 years ago
Will Hunt bdb881420c
Merge branch 'master' into hs/dns-to-be-hostname 6 years ago
Travis Ralston 004998b98f Convert invites to swagger
The whole section reads like a description for the endpoint, and has been replaced by the swagger definition now (rather than at a later stage). All the same information should be kept.
6 years ago
Travis Ralston f09c4fd286 Convert joins to swagger 6 years ago
Travis Ralston 24e531a896
Merge pull request #1406 from turt2live/travis/s2s/transactions-swagger
Convert things that mention "Transaction" to swagger
6 years ago
Michael Telatynski 2790c1f069
Merge pull request #1289 from matrix-org/t3chguy/group_id
basic spec for group IDs, mostly copied from User IDs as they share grammar
6 years ago
Travis Ralston cb4fcd1d09 Merge remote-tracking branch 'matrix-org/master' into travis/s2s/transactions-swagger 6 years ago
Will Hunt 26505533dd drop dns_name = host in favour of host 6 years ago
Ben Parsons 01d01cfbbb
Merge pull request #1440 from matrix-org/benp/clarifyintro
Improve discoverability of /docs/spec/intro/ document by including content in /docs/spec/
6 years ago
Ben Parsons 07aeaadef9 update links which used to point to docs/spec/intro 6 years ago
Travis Ralston 2aafde4549
Merge pull request #1419 from turt2live/travis/s2s/3pinvites-swagger
Convert third party invite exchange to swagger
6 years ago
Ben Parsons e7c79f2bd4 avoid .rst link conflict warnings 6 years ago
Ben Parsons 54d6d58fff naively move content from intro.rst to index.rst 6 years ago
Travis Ralston e226b60c7f Merge remote-tracking branch 'matrix-org/master' into travis/s2s/transactions-swagger 6 years ago
Travis Ralston 7cb918407d Merge remote-tracking branch 'matrix-org/master' into travis/s2s/keys-swagger 6 years ago
Travis Ralston cf93c88337 Convert third party invite exchange to swagger 6 years ago
Travis Ralston 51faf8ed2e Convert the general query API to swagger
Includes "moving" the directory query API into the same area. This will make more sense once the other query types are specified.
6 years ago