Commit Graph

1195 Commits (46549f3f9f3203f6e7de497d8d38b43b1975c437)

Author SHA1 Message Date
Travis Ralston 5d8fa65e6e De-duplicate state keys 6 years ago
Travis Ralston 33406e4662 Apply event format warnings to the remainder of the s2s spec 6 years ago
Travis Ralston 9b214ec16d Make the backfill response aware of event format changes 6 years ago
Travis Ralston e27c83d9f8
Merge pull request #1817 from matrix-org/neilj/remove_presence_lists
remove references to presence lists
6 years ago
Travis Ralston 41e50d553e
Merge pull request #1830 from matrix-org/travis/spec/x509-wk
Specify .well-known s2s discovery and X.509 validation
6 years ago
Travis Ralston df01acc6e2
Merge pull request #1828 from matrix-org/travis/spec/rooms-v3
Add specification for room version 3: Event IDs as hashes
6 years ago
Travis Ralston 01556e5b17 Clarifications and bug fixes in how v3 rooms work 6 years ago
Travis Ralston c888f3f080 Make example strings more legible 6 years ago
Travis Ralston 0347e873ef Specify .well-known s2s discovery and X.509 validation
Original proposals:
* https://github.com/matrix-org/matrix-doc/pull/1708 (note: the JSON requirements were softened by https://github.com/matrix-org/matrix-doc/pull/1824)
* https://github.com/matrix-org/matrix-doc/pull/1711

Implementation proofs:
* https://github.com/matrix-org/synapse/pull/4489
* No explicit PRs for MSC1711 could be found, however Synapse is known to implement it.

There are no intentional changes which differ from the proposals in this commit, however the author has relied upon various historical conversations outside of the proposals to gain the required context. Inaccuracies introduced by the author are purely accidental.
6 years ago
Travis Ralston 9193d57dfd full stop 6 years ago
Travis Ralston ccce6c196d Specify how capabilities work in the c2s API
Original proposals:
* https://github.com/matrix-org/matrix-doc/pull/1753
* https://github.com/matrix-org/matrix-doc/pull/1804

Implementation proof:
* https://github.com/matrix-org/synapse/pull/4472
* https://github.com/matrix-org/matrix-js-sdk/pull/830

There is one change to MSC1753 which is included in this commit. MSC1804 remains unchanged. In the original proposal, the change password capability being present was an indication that password changes were possible. It was found that this doesn't really communicate the state very well to clients in that lack of a capability (or a 404, etc) would mean that users would erroneously not be able to change their passwords. A simple boolean flag was added to assist clients in detecting this capability.
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 4437c383bb
Merge pull request #1790 from matrix-org/travis/spec/login-redirect
Add a mechanism for redirecting clients after login
6 years ago
Neil Johnson afd399d7d4 remove unused schema defs 6 years ago
Travis Ralston d2b35e5150
Merge pull request #1821 from matrix-org/travis/spec/rver-make-memberships
Specify the room_version response property on /make_{leave|join}
6 years ago
Erik Johnston c0039c30f2
Minor wording changes from code review
Co-Authored-By: turt2live <travpc@gmail.com>
6 years ago
Travis Ralston d12593feea Specify the room_version response property on /make_{leave|join}
Original proposal: https://github.com/matrix-org/matrix-doc/pull/1813
Implementation proof: https://github.com/matrix-org/synapse/pull/4447

There are no changes from the original proposal.
6 years ago
Travis Ralston aca9437bf3 Specification for v2 s2s invite API
Original proposal: https://github.com/matrix-org/matrix-doc/pull/1794
Implementation proofs:
* https://github.com/matrix-org/synapse/pull/4402
* https://github.com/matrix-org/synapse/pull/4496

There are no changes from the original proposal.
6 years ago
Neil Johnson bf2b6e6daa remove references to presence lists 6 years ago
Travis Ralston 84a4ca62c3
Merge pull request #1786 from matrix-org/travis/spec/exp-caps
Add support for unstable feature advertising via /versions
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 413bfaeb68 Add clarification that clients shouldn't use unstable things as stable 6 years ago
Travis Ralston f5fa7e5924 Change wording to encourage servers to make reasonable decisions 6 years ago
Travis Ralston aeb524ef89 Remove CAS login and reference it against r0.4.0
The SSO module should cover what CAS provides, and r0.4.0 is good as a reference for how CAS could be implemented without us repeating it here.
6 years ago
Richard van der Hoff 6e8739c989
Fix typo
Co-Authored-By: turt2live <travpc@gmail.com>
6 years ago
Travis Ralston 5cbfafaab7 Fix link to module 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 0eabf108d9 Add a mechanism for redirecting clients after login
Implements https://github.com/matrix-org/matrix-doc/pull/1730
6 years ago
Travis Ralston 3e7a5f5ea4 Initial draft for SSO support 6 years ago
Travis Ralston ccc1cdaead Add support for unstable feature advertising via /versions
Incorporates https://github.com/matrix-org/matrix-doc/issues/1497
6 years ago
Richard van der Hoff 8f1291a3e7
Merge pull request #1758 from QMatrixClient/kitsune/lazy-loading
Spec lazy_load_members and include_redundant_members
6 years ago
Kitsune Ral 8c80669d7a Add the paragraph for sync.yaml forgotten in the previous commit 6 years ago
Kitsune Ral 1639f27ec5 Describe the actual implication of omitting contains_url
Closes #1750

Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Kitsune Ral 6d0def8b4c Spec lazy_load_members and include_redundant_members
Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Kitsune Ral 6782b6399f
Update according to the comments 6 years ago
Kitsune Ral 96d7eed1c6 joining.yaml: add missing response schema details 6 years ago
Richard van der Hoff 818b48cbbb make_leave returns an `event` field too 6 years ago
Richard van der Hoff e17dd12007 make_join returns its event under an `event` key 6 years ago
Matthew Hodgson 6dab4b28f8
Merge pull request #1648 from matrix-org/matthew/device_list_update
document device list synchronisation over federation.
6 years ago
Konstantinos Sideris 192a6c2ab9 Use example.org on examples instead of domain.com which is a real domain
Signed-off-by: Konstantinos Sideris <sideris.konstantin@gmail.com>
6 years ago
Matthew Hodgson ee5e519885 device list is 2 words 6 years ago
Matthew Hodgson 928fc5cbe5 incorporate review 6 years ago
Matthew Hodgson 43f2819702 switch to travis' example 6 years ago
Matthew Hodgson 49f0a06238 experiment with additionalProperties some more 6 years ago
Matthew Hodgson f6326030ba backtick asterisk 6 years ago
Matthew Hodgson 7430c3b56f experiment with additionalProperties 6 years ago
Matthew Hodgson 337041610f one slash? 6 years ago
Matthew Hodgson b8608495e9 periods 6 years ago
Matthew Hodgson a842e0433d try escaping the asterisk 6 years ago
Matthew Hodgson 42b11e096f Review 6 years ago
Matthew Hodgson db302b66ca revert example which was corect first time; fix rst 6 years ago
Matthew Hodgson 2c0b45fd14 fix example? 6 years ago
Matthew Hodgson 0f9a23c471 swaggerify to-device 6 years ago
Matthew Hodgson 0ee2cf6286 fix device_list_update example hopefully 6 years ago
Matthew Hodgson 0afdcc59ea spell out stream_id and fix todo 6 years ago
Matthew Hodgson d377bedd76 fix path 6 years ago
Matthew Hodgson 30d56691b1 document device list synchronisation over federation.
untested
closes MSC1212
6 years ago
Travis Ralston 00578547c0
Merge pull request #1644 from matrix-org/rav/is_token_grammar
Spec grammars for IS things
6 years ago
Richard van der Hoff 79974b152c s/identity service/identity server 6 years ago
Travis Ralston 2af09655ce Fix the stragglers 6 years ago
Richard van der Hoff 21f8898cd8 Merge remote-tracking branch 'origin/master' into rav/is_token_grammar 6 years ago
Richard van der Hoff a544b68298 Merge branch 'master' into rav/is_token_grammar 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 ec248b436f Identity Service is lowercase 6 years ago
Travis Ralston cc0badaaa1 Fix all naming cases of "identity service"
Fixes https://github.com/matrix-org/matrix-doc/issues/1396

Includes some "homeserver" fixes too. This commit does not include historical documentation or notes.
6 years ago
Travis Ralston 683072e624
Merge pull request #1636 from turt2live/travis/c2s/id-server
Clean up and flesh out all three editions of the /requestToken API
6 years ago
Travis Ralston a1f655e5be Fix more error wording 6 years ago
Travis Ralston 1261da209d Fix wording for the homeserver not allowing a particular 3pid 6 years ago
Richard van der Hoff cb1e687196 spec the format of an IS invite token 6 years ago
Richard van der Hoff 69c30ef156 spec the format of a client_secret 6 years ago
Richard van der Hoff dced3d5707 Notes on the format of IS session IDs and tokens 6 years ago
Travis Ralston 824ce22caa Add additional clarity to the requestToken errors 6 years ago
Travis Ralston 5bb7eca8e8 English 6 years ago
Travis Ralston 60dd9231e0 Don't explain how the IS might accept a 3pid
The IS is bound to it's own set of specifications, and if the client chose this API then they should be aware of the risks but not necessarily arbitrary alternatives.
6 years ago
Travis Ralston 63fdd72f73 Fix error description on /account/3pid/email/requestToken 6 years ago
Travis Ralston f6d9e53f5c Clarify that homeserver must reject clients from setting m.fully_read 6 years ago
Travis Ralston 679ddabb53 Merge remote-tracking branch 'matrix-org/master' into travis/c2s/read-markers 6 years ago
Travis Ralston a4c2b2b905 General clarity and spelling for the requestToken APIs 6 years ago
Travis Ralston 7f1b94c211 Merge remote-tracking branch 'matrix-org/master' into travis/c2s/id-server 6 years ago
Travis Ralston e3ad253dca A sender is also required for the invite_state 6 years ago
Travis Ralston 2f824df8dd Define the real event types on the invite_state 6 years ago
Travis Ralston 2e3e189ea2 Merge remote matrix-org/master 6 years ago
Travis Ralston 38ae166e9d
Merge pull request #1505 from turt2live/travis/general/3pid_invite
Clarify how third party invites work
6 years ago
Travis Ralston afa16f1e4e
Merge pull request #1606 from turt2live/travis/c2s/room-tags
Update the room tagging documentation
6 years ago
Travis Ralston 73736d41db
Merge pull request #1569 from turt2live/travis/c2s/user-directory
Clarify the homeserver's behaviour for user searching
6 years ago
Travis Ralston 4bd23a9086 send_attempt is no longer optional 6 years ago
Travis Ralston 7f719b23e7
Merge pull request #1589 from turt2live/travis/c2s/inhibit-login
Document the inhibit_login registration option
6 years ago
Travis Ralston dfaed5b525 Clean up and flesh out all three editions of the /requestToken API
Fixes https://github.com/matrix-org/matrix-doc/issues/1634

Addresses some of https://github.com/matrix-org/matrix-doc/issues/1396
6 years ago
Travis Ralston ce14779af1
Merge pull request #1567 from turt2live/travis/c2s/3pid-binding
Document `validated_at`, `added_at`, and POST /3pid/delete
6 years ago
Travis Ralston 5da3072eef Wording change ('may not' has a special meaning) 6 years ago
Travis Ralston 2a08a308f3 device_keys are required 6 years ago
Travis Ralston 219b27b182 Merge remote matrix-org/master 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
Richard van der Hoff 0f84c69805
Merge branch 'master' into rav/clarify_event_signing 6 years ago
Travis Ralston 8bcd7d26e3 /3pid/delete returns an empty object 6 years ago
Travis Ralston 390f1c16f7 Remove mentions of identity services from /3pid/delete
This will be covered by https://github.com/matrix-org/matrix-doc/issues/1194

For now, we can accept that homeservers may try to unbind, however clients should not rely on it.
6 years ago
Travis Ralston 86c85aea71 Merge remote-tracking branch 'matrix-org/master' into travis/c2s/3pid-binding 6 years ago
Travis Ralston d57b977a55 Merge branch 'm-master' into travis/general/3pid_invite 6 years ago
Travis Ralston e82c22b060
Merge pull request #1615 from turt2live/travis/is/touchups
Touch up more of the identity service specification
6 years ago
Travis Ralston f09db16027 Merge remote-tracking branch 'matrix-org/master' into travis/s2s/key-mgmt 6 years ago
Travis Ralston 49c5677969 Merge remote-tracking branch 'matrix-org/master' into travis/c2s/user-directory 6 years ago
Travis Ralston f04afaa9b9
Merge pull request #780 from mujx/missing-enum-fields
Add missing enum fields for the set_presence parameter
6 years ago
Travis Ralston cc1e496287
Merge pull request #1629 from turt2live/travis/as/route-versions
Version all appservice endpoints and provide a fallback
6 years ago
Travis Ralston 0f2e01f5b5
Merge pull request #1555 from turt2live/travis/as/cleanup
Application service spec cleanup; Security definitions; r0 prep
6 years ago
Travis Ralston be5c566028 Version all appservice endpoints and provide a fallback
Fixes https://github.com/matrix-org/matrix-doc/issues/1616
6 years ago
Travis Ralston 6b52e1df77
Merge pull request #1587 from turt2live/travis/s2s/clarify-state-ids-inclusion
Clarify that the requested event is excluded from /state and /state_ids
6 years ago
Richard van der Hoff 55c4307f12 Rewrite the section on signing events
... for clarity and de-duplication. And to say a bit about validating the
signatures.
6 years ago
Travis Ralston 7ecf2406eb
Merge pull request #1590 from turt2live/travis/c2s/403-put-state
Document 403 error for sending state events
6 years ago
Travis Ralston a5c3924492 Merge remote matrix-org/master 6 years ago
Travis Ralston f030d19f3c Clean up identity service swagger
* Add `consumes` (swagger)
* Remove `http` as a supported scheme (the spec specifically says clients MUST use https)
* Clarify various descriptions
  * Full stops
  * Additional wording
  * s/older versions/previous drafts - we haven't had a release yet
* Indentation on examples
6 years ago
Travis Ralston 684d80c422 Revert changes to 3pid lookup types in the IS spec
The validator doesn't know what a "3PID Medium" is, for example, so it throws exceptions. This does reduce clarity in the spec though.
6 years ago
Travis Ralston abb91508be
Merge pull request #1556 from turt2live/travis/is/cleanup
Identity Service API cleanup
6 years ago
Travis Ralston c03f2f8d79 Minor touchups to the room tagging API
Fixes some of https://github.com/matrix-org/matrix-doc/issues/1565
6 years ago
Kitsune Ral 9bc1470305 Elaborate the structure of m.tag events
...and corresponding structures in tag-related CS API calls

Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Travis Ralston f2d02c9559 Take out device management section for now
This will be handled by the implementation of https://github.com/matrix-org/matrix-doc/issues/1212
6 years ago
Travis Ralston 5ff244f06b More clarification about how /state_ids works 6 years ago
Travis Ralston de36d97839 Clarify which event is actually be excluded from /state_ids 6 years ago
Hubert Chathi 5019fb7c49
Merge pull request #1359 from uhoreg/well-known
.well-known discovery
6 years ago
Erik Johnston 7327656965
Merge pull request #1581 from matrix-org/erikj/limit_txn_size
Specify a limit on the number of EDUs and PDUs a transaction can contain
6 years ago
Travis Ralston d91395cf9f Document 403 error for sending state events
Fixes https://github.com/matrix-org/matrix-doc/issues/1399
6 years ago
Travis Ralston 1051aff108 Document the inhibit_login registration option
Fixes https://github.com/matrix-org/matrix-doc/issues/1351
6 years ago
Travis Ralston dad037170a Clarify that the requested event is excluded from /state and /state_ids
Fixes https://github.com/matrix-org/matrix-doc/issues/1564
6 years ago
Travis Ralston 436544b8f8 Clarify behaviour of `?set_presence=unavailable` for /sync 6 years ago
Travis Ralston adef7babfa Merge remote-tracking branch 'matrix-org/master' into mujx/missing-enum-fields 6 years ago
Travis Ralston ad068bcd22 Fix the appservice directory visibility type parameter type 6 years ago
Travis Ralston e9579a7840 The `rank` in search results is actually a floating point number
This was accidentally changed in https://github.com/matrix-org/matrix-doc/pull/1571 and appears to be the only instance.
6 years ago
Erik Johnston fc1fdc95af Specify a limit on the number of EDUs and PDUs a transaction can contain 6 years ago
Travis Ralston 6cdb463829
Merge pull request #1571 from turt2live/travis/general/number-to-int
Replace applicable types of 'number' to 'integer'
6 years ago
Travis Ralston f9c7014a65
Merge pull request #1577 from turt2live/travis/c2s/search-filter
Specify the type of filter the search API expects
6 years ago
Travis Ralston 03065b0584
Merge pull request #1572 from turt2live/travis/c2s/sync-left-account-data
Add `account_data` to left rooms in /sync
6 years ago
Travis Ralston f2332d242a Add some SHOULDs and MUSTs to the user directory requirements 6 years ago
Travis Ralston bb515d15a4 Clarify which collation to use for user directory searching 6 years ago
Travis Ralston 9527ce31f5
Merge pull request #1570 from turt2live/travis/c2s/sync-filtering
Update filtering API documentation
6 years ago
Travis Ralston f01cfa2c7b Add security definitions to hs->as endpoints 6 years ago
Travis Ralston 17e0ef4b91 Remove empty file and now-empty section from the appservice spec
This commit has approval under https://github.com/matrix-org/matrix-doc/pull/1555 although is being included in this branch/PR so the build passes, permitting a merge.
6 years ago
Travis Ralston 51193cac39 Merge remote-tracking branch 'matrix-org/master' into travis/as/normal-events 6 years ago
Travis Ralston 87133d8505
Merge pull request #1574 from turt2live/travis/c2s/fix-directory-put
Clean up PUT /directory/room
6 years ago
Travis Ralston a0b17e6ed6
Merge pull request #1551 from turt2live/travis/c2s/push-rules
General improvements to the push rules module
6 years ago
Travis Ralston 97508d5dc5
Merge pull request #1554 from turt2live/travis/general/appservice-directories
Application service room directories (and other third party network things)
6 years ago
Travis Ralston 32ac81c588 Spelling 6 years ago
Travis Ralston 5fa6b49365 Specify the type of filter the search API expects
Note: This is badly named until https://github.com/matrix-org/matrix-doc/pull/1570 lands

Fixes https://github.com/matrix-org/matrix-doc/issues/598
6 years ago
Travis Ralston 8069981252 Add federation /user/* endpoints
Fixes https://github.com/matrix-org/matrix-doc/issues/1438
6 years ago
Travis Ralston e60b44e27f Clean up PUT /directory/room
Fixes https://github.com/matrix-org/matrix-doc/issues/933

The issue references two problems: a `roomInfo` and lack of a `room_id`. It appears the `room_id` has been fixed since reporting, however the `roomInfo` remained (and is now fixed).
6 years ago
Travis Ralston 55c0b968b5 Fix event schemas for /sync
This commit clarifies the required keys for each type of event that appears in sync, fixes the core event schema not declaring 'content' as required, and includes a mention that events may not have a room_id when appearing in /sync.

Fixes https://github.com/matrix-org/matrix-doc/issues/595
Fixes https://github.com/matrix-org/matrix-doc/issues/909
6 years ago
Travis Ralston 008ebb8c1a Add `account_data` to left rooms in /sync
Fixes https://github.com/matrix-org/matrix-doc/issues/1392
6 years ago
Travis Ralston 667fa082af Replace applicable types of 'number' to 'integer'
`number` implies/represents a float where `integer` does not.

The only remaining `type: number` in the project appear on power levels: those have been left untouched pending clarification.

Fixes https://github.com/matrix-org/matrix-doc/issues/746
6 years ago
Travis Ralston b68ed5d594 Define the default for the contains_url filter param
Fixes https://github.com/matrix-org/matrix-doc/issues/1553
6 years ago
Travis Ralston 1cbcaba2c7 Clean up examples in filter.yaml
Indentation, excess examples.
6 years ago
Travis Ralston 26a7a341f0 Mark the filter_id in the response of POST /filter as required 6 years ago
Travis Ralston 97e3dd443b Update room_event_filter.yaml to use the OpenAPI allOf definition
This is just maintenance.
6 years ago
Travis Ralston 7d08ef73d0 Fix naming of the Filter schemas
EventFilter !== Filter

Fixes https://github.com/matrix-org/matrix-doc/issues/1509
6 years ago
Travis Ralston 1bc0f63bfb Clarify the homeserver's behaviour for user searching
The homeserver can implement its own algorithm, but is suggested to ensure the requesting user can reasonably see the other users.

The text is intentionally left vague for whether or not the API is local users only to give the homeserver some flexibility in this area.

General cleanup is also included in this commit.

Fixes https://github.com/matrix-org/matrix-doc/issues/1108
6 years ago
Travis Ralston b4be11af42 Document POST /account/3pid/delete
Fixes https://github.com/matrix-org/matrix-doc/issues/985

Includes documentation for https://github.com/matrix-org/synapse/pull/3667

Raises https://github.com/matrix-org/matrix-doc/issues/1566
6 years ago
Travis Ralston a803d9d077 Document `validated_at` and `added_at` on GET /3pid
Fixes https://github.com/matrix-org/matrix-doc/issues/661
6 years ago
Kitsune Ral c879eb950f client-server/openid.yaml: Fix a type'o
Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Travis Ralston dafea96621 Fix indentation and schema references in the identity service spec 6 years ago
Travis Ralston 4abd618147 Flag response fields in the Identity Service spec as required 6 years ago
Travis Ralston 017d6db737 Document third party network/protocol directories (for appservices)
Fixes https://github.com/matrix-org/matrix-doc/issues/869
6 years ago
Travis Ralston 2d43ff1234 Update third party network schemas
Some information was missed when this was reviewed. This commit adds some additional documentation for how these objects interact with each other.
6 years ago
Travis Ralston 9eda1a6971 Move the third party network API to it's own section 6 years ago
Travis Ralston 6a91ea9c85 Specify that application services receive events in the CSAPI format
Fixes https://github.com/matrix-org/matrix-doc/issues/1269

This is also supposed to fix the 'age' problem, however that is a larger problem with the event schemas that is reserved for a future PR/commit.
Reference: https://github.com/matrix-org/matrix-doc/issues/1294
Reference: https://github.com/matrix-org/matrix-doc/issues/1524
6 years ago
Travis Ralston bbd33c1461 Move appservice transaction API to the right section
Part of https://github.com/matrix-org/matrix-doc/issues/1532
6 years ago
Travis Ralston 7ec3cc4343 General improvements to the push rules module
This commit does a few things:
* Add 3 undocumented push rules to the spec for encrypted events and at-room notifications.
* Require unrecognized conditions to not match, ensuring that future conditions do not cause clients to accidentally notify users.
* Clarify that push rules should be enabled when created.
* Document a new condition required for at-room notifications.

Fixes https://github.com/matrix-org/matrix-doc/issues/1163
Fixes https://github.com/matrix-org/matrix-doc/issues/1034
Fixes https://github.com/matrix-org/matrix-doc/issues/676
Fixes https://github.com/matrix-org/matrix-doc/issues/1033
Relates to https://github.com/matrix-org/matrix-doc/issues/1101
6 years ago
Travis Ralston 3869f68a5c Merge remote-tracking branch 'matrix-org/master' into travis/general/room-versions 6 years ago
Travis Ralston 6172d5986a
Merge pull request #1537 from turt2live/travis/as/user-alias-query
Clean up user and alias querying for application services
6 years ago
Travis Ralston e4f5c3d55e
Merge pull request #1518 from turt2live/travis/c2s/create-room-improvements
Add general clarity to the /createRoom endpoint
6 years ago
Travis Ralston 1d7ea314d4
Merge pull request #1482 from turt2live/travis/s2s/presence
Document how presence EDUs work between servers
6 years ago
Travis Ralston e500e2502a Document the maximum value for depth
Implements the proposal for https://github.com/matrix-org/matrix-doc/issues/1230
6 years ago
Travis Ralston 7e5160c7c2 Merge remote-tracking branch 'matrix-org/master' into travis/as/user-alias-query 6 years ago
Travis Ralston a320c58e42 A path parameter is obviously URL encoded 6 years ago
Travis Ralston 7ad22b2454
Merge pull request #1533 from turt2live/travis/as/general
General/small improvements to the application service API specification
6 years ago
Travis Ralston 8dc6f092ef Define the type of the power_level_content_override field 6 years ago
Travis Ralston 7e6ca5fef8 Take out the room_alias response field
The argument is that this isn't really needed at this time.
6 years ago
Travis Ralston 1fd7c99461 Clarify that the creation event can have other keys in it 6 years ago
Travis Ralston 6c7a93d2f5 Move description about which preset to use when none is specified 6 years ago
Travis Ralston 7d14309b63 Move the power level event schema to where it was 6 years ago
Travis Ralston c8ba2e098c Wording improvements for appservices 6 years ago
Travis Ralston 8b65da1cf6 Don't try and be fancy about titles 6 years ago
Travis Ralston e712466dca Improve description for currently_active 6 years ago
Valentin Deniaud 10c3307427 document device_one_time_keys_count in /sync/ response
fix #1157
6 years ago
Valentin Deniaud 8afc82c14b fix /keys/claim request example
It didn't correspond to the example response.
6 years ago
Valentin Deniaud ab3272045e add missing v1 to m.olm in /keys/upload 6 years ago
Travis Ralston 60b8e72a67 Minor text changes to the query APIs; Keep OpenMarket copyright
The bulk of these APIs were copied from OpenMarket's work - we should preserve the copyright header.
6 years ago
Travis Ralston 069a2f7481 Split the query user and room APIs out to their own files 6 years ago
Travis Ralston 5b5b4cfbed Explicitly say how appservices should detect state events
Fixes https://github.com/matrix-org/matrix-doc/issues/1014
6 years ago
Travis Ralston a4015d5c27 Spelling 6 years ago
Travis Ralston 750d4f9fda Rename the presence EDU files to be accurate to their types; Misc cleanup of titles 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 3de50cbc7f Clarify how /isvalid is meant to always be truthful 6 years ago
Travis Ralston c492fe43b5 Add strict typing to the m.receipt EDU; Fix description of event_ids 6 years ago
Travis Ralston 8ac6cea58b
Merge pull request #1522 from turt2live/travis/c2s/http-push-gw-required-path
Require the push gateway URL to be of a specific path
6 years ago
Travis Ralston 96896fe5d6 Add a strict type the m.typing EDU 6 years ago
Travis Ralston a53fa9300d Merge remote-tracking branch 'matrix-org/master' into travis/s2s/presence 6 years ago
Travis Ralston 766402a702 Use strict types for the presence EDUs 6 years ago
Travis Ralston 549a25cad9 Add a mention about how currently_active works
Reference: d69decd5c7/synapse/handlers/presence.py (L66-L68)
6 years ago
Travis Ralston e7aed3da26 Remove poll/unpoll from presence 6 years ago
Travis Ralston 49ec0a36a8
Merge pull request #1481 from turt2live/travis/s2s/authentication
Define authorization requirements on federation swagger APIs
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 5b30d33b89
Simpler language 6 years ago
Travis Ralston c891e4a957 Require the push gateway URL to be of a specific path 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 45c68e323a Add general clarity to the /createRoom endpoint
This commit does a number of things:
* Minor formatting/alignment changes
* Document the room_alias response key. This could be deprecated now, or forfeited, if needed.
* Remove the guest_can_join parameter - it is not actually supported
* Document the previously undocumented power_level_content_override parameter
* Clarify that the room_id is required on the response
* More clearly spell out which events are created as part of the request
* Clarify how the room alias becomes the canonical alias
* Clarify how the `visibility` may be used to determine a default preset to apply
* Document the `m.federate` creation content parameter, adding an option for the homeserver to define a default value

References:
* Preset being inferred by the visibility: cd32c19a60/synapse/handlers/room.py (L172-L177)
* Power level content overrides:
  * https://github.com/matrix-org/synapse/blob/master/synapse/handlers/room.py#L198
  * https://github.com/matrix-org/synapse/blob/master/synapse/handlers/room.py#L335-L359
* Aliases becoming canonical: https://github.com/matrix-org/synapse/blob/master/synapse/handlers/room.py#L366-L370
* `m.federate` landing in the create event: https://github.com/matrix-org/synapse/blob/master/synapse/handlers/room.py#L311-L315

Fixes https://github.com/matrix-org/matrix-doc/issues/1243
Fixes https://github.com/matrix-org/matrix-doc/issues/1471
Inspired by https://github.com/matrix-org/matrix-doc/issues/1213
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
Hubert Chathi fcca80dad8 various minor fixes
- formatting fixes
- add examples to homeserver/identity server discovery schema
- replace DNS name with hostname
6 years ago
Hubert Chathi 6a3cf10be9 Merge remote-tracking branch 'origin/master' into well-known 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
Travis Ralston a556e33eb9 Spec /3pid/onbind
Fixes https://github.com/matrix-org/matrix-doc/issues/1422
6 years ago
Travis Ralston 88b35d1be5 Clarify how third party invites work
This adds several diagrams to the Client-Server API about how invites
are handled, including what the server is expected to do. This helps
implementors know what they are supposed to do in the common cases,
and infer where needed to get the more complex cases correct.

Although lacking in some areas, this is how third party invites work
today.

A link to the now-improved client-server documentation for third party
invites has been added to the server-server specification. The existing
server-server specification needed no further changes on the subject.

Fixes https://github.com/matrix-org/matrix-doc/issues/1366
6 years ago
Kitsune Ral b41eb26124 Document OpenAPI extension
Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
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 25c77ab2d0 Define authorization requirements on federation swagger APIs 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 721be47eb1 Describe how get_missing_events actually works
The original text wasn't far off, except for being wrong about what the fields actually do. This commit also adds a bit of clarity for how the server is expected to behave.
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 57eeddd849 Remove unused origin and destination on EDUs 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 cfdbee5fc2 EDU origin and destinations aren't required 6 years ago
Travis Ralston 7ada91787a age_ts isn't real 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 8724ed99ad
Merge pull request #1480 from turt2live/travis/s2s/swagger-consumes-json
Specify which federation swagger APIs consume JSON
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
Travis Ralston ef9d766dc3 Remove irrelevant TODO
We fixed the EDU, so we don't need this comment.
6 years ago
Travis Ralston 2e6d6e2790 Specify which swagger APIs consume JSON 6 years ago
Travis Ralston 8dd63388e0 invites consume JSON 6 years ago
Travis Ralston 13a2b54bf9 query_auth consumes JSON 6 years ago
Travis Ralston 6ac25d167c get_missing_events consumes JSON 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 e766606f24 join -> leave 6 years ago
Travis Ralston 0b313dbdd9 Don't explain what a 400 Bad Request is 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 5596243add origin is required 6 years ago
Travis Ralston 8b7bc60367 list -> array 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 4b1955f395 Clarify what the auth_events on a PDU are 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
Andrew Morgan 54a88eebf0
Merge pull request #1414 from matrix-org/anoa/third_party_cleanup
Clarification on third party fields
6 years ago
Travis Ralston d0e8df8f3f prev_content is an object 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 f5af4d2fb5
Merge pull request #1457 from matrix-org/dbkr/fix_room_tags
Fix room tags spec
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
user 5f8967c074 Move TODO. field1, field2... -> fields... 6 years ago
user a2e2ced03b Add reverse-lookup examples. 6 years ago
user d785ac78a3 Remove explode and replace with TODO, require auth on CS 6 years ago
Andrew Morgan 53137a3c53 c/p bug, fix operationIds, move rst docs to md 6 years ago
Andrew Morgan 3e4962f211 Document standardized extensions to OpenAPI v2 6 years ago
Andrew Morgan 273acb277c Change fields to use new extended query array syntax 6 years ago
Andrew Morgan 0ff882fb3b Field definitions for protocol metadata 6 years ago
Kitsune Ral 346db48588 Revert giving get() a default
As per the PR review.

Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Kitsune Ral c6bfac41c5 Bypass jsonschema references resolver
jsonschema's resolver doesn't work with local files on Windows.
resolve_references only works with the local files (on Windows as well)
but that's exactly what's needed for the case (as long as we don't have
remote references, that is).

Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Kitsune Ral d17ec7f184 Check that path starts with file://, not file:///
Because file:/// is not a thing on Windows.
6 years ago
Kitsune Ral 2c9f00d37a Follow PEP 8 6 years ago
Kitsune Ral 31687608dc Factor out common code 6 years ago
Travis Ralston 73b0a03b9b Remove more padding 6 years ago
David Baker 5ddf5374db Missing comma 6 years ago
David Baker e4fd088fcc Fix room tags spec 6 years ago
Travis Ralston cafd1a9ab3 Use more modern timestamps 6 years ago
Travis Ralston e27f4a69a0 Key versions must be [0-9a-zA-Z_] 6 years ago
Travis Ralston bdccfca726 Timestamps should be in milliseconds 6 years ago
Travis Ralston cad1db2a14 Unpadded means unpadded 6 years ago
Travis Ralston 9dbb627d7b Undo accidental changes to the operation ID 6 years ago
Travis Ralston 2f71703427 Deprecate key ID querying 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 fcaa299f81 Include information on how invite_room_state works
This is completely optional, and the events included are up to the sender. 

Sources:
* Structure: d69decd5c7/synapse/handlers/message.py (L896-L904)
* What events are recommended: d69decd5c7/synapse/config/api.py (L30-L40)
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 d914c402e2 Improve the profile query to have more sane responses
This is a mix of Synapse and Dendrite behaviour, mostly Dendrite. Synapse returns `null` for field values that aren't set, however Dendrite just doesn't return them and instead opts for an empty object.

Further, synapse is lacking in error codes in this area. Dendrite does some additional validation on this API which introduces more errors for bad requests, instead of defaulting to empty objects/200 OK responses.

Likewise, Dendrite returns a 404 when the user is not found while Synapse returns 200 OK/empty object.
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
Travis Ralston b0744aa1e9
Merge pull request #1413 from turt2live/travis/s2s/join-swagger
Convert joins/invites to swagger
6 years ago
Travis Ralston af0629a520 Full stop 6 years ago
Travis Ralston 9f399a08fe Full stops
I'm never going to remember these
6 years ago
Travis Ralston 0d1b82a601 Add the event_id to unsigned PDUs
This went missing in the swagger conversion. The example already has an event_id.
6 years ago
Travis Ralston eaf175056f Full stops 6 years ago
Travis Ralston 797aca87bd Update the check_examples.py script to resolve references
The script previously wasn't chasing down valid references in examples.
6 years ago
Travis Ralston 7314405904 Update comment 6 years ago
Travis Ralston 45ec8269e6 Fill out the required fields in all the examples 6 years ago
Travis Ralston 9c1c541a38 Remove extra "required" declarations
"required" is something that is handled as an array, and these are invalid. The `type` in both cases is covered by a required array elsewhere
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