Commit Graph

273 Commits (main)

Author SHA1 Message Date
Kévin Commaille 4534124742
Include examples inline instead of using a reference for invite endpoint definitions (#1349)
The OpenAPI 3 spec doesn't allow building examples by composition.
Either the whole example must be a reference, or it has to be included.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 years ago
Kévin Commaille dfc8a2e184
Fix `POST _matrix/federation/v1/user/keys/claim` response schema (#1351)
The syntax was not compliant with the Swagger spec.
It also lacked one level of nesting.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 years ago
Johannes Becker b2c4abf567
Clarify the power levels integer range (#1169)
Signed-off-by: Johannes Becker <j.becker@famedly.com>
2 years ago
Kim Brose 8d378cfd51
add missing description to m.call.answer schema 2 years ago
Hubert Chathi 684ead8ab6
Merge pull request #1294 from uhoreg/rhul_clarifications
add some e2ee clarifications
2 years ago
Hubert Chathi 2fcc92c2fb
improve documentation of ephemeral events (#1284) 2 years ago
Hubert Chathi 0f0caf582d more clarifications 2 years ago
Hubert Chathi d0cbd4c8dd
Apply suggestions from code review
Co-authored-by: Denis Kasak <dkasak@termina.org.uk>
2 years ago
David Baker 312a0e9b05 Add example read receipt to sync example
Fixes https://github.com/matrix-org/matrix-spec/issues/120
2 years ago
Richard van der Hoff b9952f1a74
Merge pull request #1329 from matrix-org/rav/htmltest
Add link checker to CI
2 years ago
Richard van der Hoff 44c7eb5b88
Merge pull request #1330 from matrix-org/rav/fix_dead_links
Fix broken links
2 years ago
BramvdnHeuvel 6879f96c90
Require refresh_token on refresh token endpoint (#1323)
Signed-off-by: Bram van den Heuvel matrix-spec@noordstar.me
2 years ago
Kévin Commaille 8526e4fcd9
Clarify the behavior of `PUT /pushrules/{scope}/{kind}/{ruleId}` (#1319)
This is based on the behavior of Synapse and Dendrite. Conduit's implementation is already non-compliant in regards to what was already defined in the spec.

Closes #645.
Related to #647 (probably closes it too, unless we want to be more explicit somewhere about what can be changed on default push rules).

Related PR in ruma that would allow to fix Conduit's implementation: ruma/ruma#1364

Signed-off-by: Kévin Commaille zecakeh@tedomum.fr
2 years ago
Richard van der Hoff 9e8360560b Uniquify some links
The link checker doesn't understand that we dynamically re-assign element IDs
at load time, so was failing for a few links that were technically valid
(though presumably still broken for any client not using JS).

Work around this by manually setting a few anchors, linking to other nearby
bits of text, or just changing heading titles.
2 years ago
Richard van der Hoff 6cbb88f9df Fix broken links
A bunch of broken links I found
2 years ago
Richard van der Hoff 1945589acf
Clarifications to AS spec, including MSC3905 (#1305)
Primarily this is the spec for MSC3905, but I've also taken the opportunity to clean up the section a bit and move the definition out to a .yaml file.
2 years ago
Hubert Chathi 830f80f56a
Merge pull request #1271 from uhoreg/add_verification_request_msgtype
add in-room m.key.verification.request msgtype
2 years ago
Hubert Chathi dd0f867fad make examples agree with schema 2 years ago
Hubert Chathi 2395dd87c0 more clarifications, and move event definitions to yaml 2 years ago
Hubert Chathi fbbf3b81c5 add some e2ee clarifications 2 years ago
Travis Ralston b2cc836649
Spec reference relationships (#1206)
* Spec reference relationships

MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/3267

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Edits per code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
David Robertson ad99be4ad7
Define a 400 response from {PUT,GET,DELETE} `/directory/rooms/{roomAlias}` (#1286)
* Define a 400 response from {PUT,GET,DELETE} `/directory/rooms/{roomAlias}`

* Changelog

* Adjust changelog

Co-authored-by: Travis Ralston <travpc@gmail.com>

* Refer to appendices

Co-authored-by: Travis Ralston <travpc@gmail.com>
2 years ago
Hubert Chathi c0d54ab4d9
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Andrew Morgan 3808a679c1
Fix up description of `knock_room_state` field, which implied the required field was optional (#1276) 2 years ago
Hubert Chathi 191450ea73 add in-room m.key.verification.request msgtype 2 years ago
Kévin Commaille d3d4afdbfd
Receipts: Add `thread_id` to the `/receipt` endpoint (#1261)
* Receipts: Add thread_id to the /receipt endpoint

It seems to have been omitted in #1255

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>

* changelog

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>

* Fix missing backtick

* Apply suggestion for error description

Co-authored-by: Travis Ralston <travpc@gmail.com>

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
Co-authored-by: Travis Ralston <travpc@gmail.com>
2 years ago
Travis Ralston 227757d499
Threads: Read receipts & notifications (#1255)
* Spec MSC3771: Threaded read receipts

Note: this builds on a (as of writing) non-existent "threading" section, which is part of a different commit.

* Spec MSC3773: Threaded notifications

* changelog

* Various clarifications per review
2 years ago
Travis Ralston 25dda1eadb
Threads: The base (#1254)
* Spec MSC3440: Threading (just the base)

Other threading MSCs to follow

* Spec MSC3856: Threads list API

* Spec MSC3715:  Add`dir` to `/relations`

* changelog

* Apply suggestions from code review

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>

* Update changelogs/client_server/newsfragments/1254.feature

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2 years ago
Travis Ralston 6c6c602845
Clarify that refreshed access tokens don't invalidate the scope of txnid (#1236) 2 years ago
Michael Telatynski 7ab3aecf29
Update profile.yaml (#1238)
* Update profile.yaml

* Create 1238.clarification

* Update changelogs/client_server/newsfragments/1238.clarification

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
2 years ago
Andrew Morgan e7e376142e
Fix typos in the spec related to account data (#1243) 2 years ago
Travis Ralston e406bd94f6
Spec MSC2285: Private read receipts (#1216)
* Convert `m.receipt.yaml` to traditional YAML

* Spec MSC2285 (private read receipts)

* Add some obvious copyright headers

* Add changelog entries

* Appease the linter

Apparently it hates it when you do this.

* Allow m.fully_read on /receipts

* Apply suggestions from code review

Co-authored-by: Matthew Hodgson <matthew@matrix.org>

Co-authored-by: Matthew Hodgson <matthew@matrix.org>
2 years ago
Will Hunt 8df0cfeae0
s/room/rooms (#1215)
* s/room/rooms

Fixes #979

* Create 1215.clarification
2 years ago
Andrew Morgan 5572d33453
Require `access_token`, `device_id` and `user_id` fields in `/login` response (#1210) 2 years ago
Travis Ralston b14759a27b
Add `room_types` and `room_type` to `/publicRooms` (#1199)
MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/3827
Incorporates https://github.com/matrix-org/matrix-spec-proposals/pull/3858
2 years ago
Travis Ralston 6dc7b95e18
Use auth header instead of query param for hs->as comms (#1200)
* Use auth header instead of query param for hs->as comms

MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/2832

* Fix for OpenAPI 2
2 years ago
Richard van der Hoff ea42cd3c7b
Move various e2e defintions out to yaml files (#1166)
We have code to generate tables, which we should use in the e2e section.
2 years ago
David Robertson f9028acf8e
Describe return codes for account data endpoints + minor clarifications (#1155) 2 years ago
Travis Ralston 56400ab9a0
Add missing "added in" spec version to some key backup endpoints (#1170)
* Add missing version to some key backup endpoints

* Create 1170.clarification
2 years ago
DeepBlueV7.X 5bf35327c6
Fix wording for globs in policy lists (#1165)
* Fix wording for globs in policy lists

The specification here does neither match how globs work in common
libraries nor do they match how they are used in practice currently or
how the MSC worded them (which said they should be like server ACLs). As
such this seems to be an issue introduced when writing the spec text.

Ref mjolnir:
- b48904bc2b/src/models/ListRule.ts (L44)

Ref matrix bot sdk (which implements the glob used above):
- 473e563236/src/helpers/MatrixGlob.ts (L26)
- f799b1fe1a/test/helpers/MatrixGlobTest.ts (L44)

Ref original MSC:
- c7b3d99853/proposals/2313-moderation-policy-rooms.md?plain=1#L36
- https://spec.matrix.org/v1.3/client-server-api/#server-access-control-lists-acls-for-rooms

fixes https://github.com/matrix-org/matrix-spec/issues/17

Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>

* Add changelog

Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
2 years ago
Hubert Chathi 8d45231c64 fix the olm algorithm name in an example 2 years ago
Will Hunt cf6544c028
Clarify that /invite will respond with 200 if the user is already invited to the room (#1084)
* Clarify that /invite will respond with 200 if the user is already in the room

* Create 1084.clarification

* Update changelogs/client_server/newsfragments/1084.clarification

Co-authored-by: Travis Ralston <travpc@gmail.com>
2 years ago
Alexey Rusakov 6792b7a9d6
Use type: integer, format: int64 for timestamps (#1129)
* Use type: integer / format: int64 for timestamps

Closes #749.

* Changelog
2 years ago
Alexey Rusakov 6adacd18c1
Arrange a few titles (#1126)
* Arrange a few titles

Before this change, PublicRoomsChunk in the spec text could be found in
two places (actually three but the third one is identical to the first
one), defining two (_mostly_ identical but) different schemas.
Ctrl-F'ing through the spec may confuse you with the "wrong" definition.
This commit gives distinct schemas distinct names; aside from
PublicRoomChunk, the same story happens with the derivative of
stripped_state.yaml used in space_hierarchy.yaml (it's not exactly
StrippedStateEvent either).

As for the removal of `PublicRoomsChunks` (plural) - this title is
unnecessary because the tooling would place rather self-explanatory
`[PublicRoomsChunk]` without it, whereas the plural title ends up with
no definition in the spec text.

* Add changelog
2 years ago
Alexey Rusakov dcc1f4adee
keys.yml: fix one_time_keys object contents (#1127)
* keys.yml: fix one_time_keys object contents

The alternatives previously listed under two additionalProperties levels
are actually one _more_ level deeper; we still can't define them in
a formal way before moving to OpenAPI 3 but at least let's be honest
and say there's always a dict where there's always a dict. Also,
since the same data structure is used in three places now, at least
give it a name, and document the actual definition (once) separately
(not using it now because it's OpenAPI 3).

* Changelog
2 years ago
Alexey Rusakov cbdd889fa8
auth_data.yaml: formally allow it to be non-object (#1115)
Closes #716.

Signed-off-by: Alexey Rusakov Kitsune-Ral@users.sf.net
2 years ago
Kévin Commaille c665f7fcb6
refresh_token is omitted if inhibit_login is true
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 years ago
Travis Ralston 926c6bad61
Deprecate the `sender_key` and `device_id` on Megolm events (#1101)
* Deprecate the `sender_key` and `device_id` on Megolm events

MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/3700 ([Markdown](https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/3700-deprecate-sender-key.md))

The language around `m.room.encrypted` is a bit awkward because *technically* you can use the event to represent non-Megolm events, however that's considered an edge case at this time.

* changelog

* Apply wording changes

* Remove incorrect example

* Add missing sentence
2 years ago
Travis Ralston c4db688af8
Spec `/relations` and aggregations (#1062)
* Commit to show changes to rich replies section

* Move rich replies to a module

* Add remainder of MSC2674

* Pivot away from MSC3440: Threads

* Add changelog entries so far

* Make a note for why we have aggregations/relations if nothing uses it

* Outright remove threads references

Apparently this breaks the table of contents

* Define MSC2675

* Define MSC3666

* Add note for rich replies?

* Update content/client-server-api/_index.md

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>

* Clarify how ignoring works for aggregations.

* Try to clarify redactions a bit

* Clarify using parent/child language

* Add missing bits of MSC2675

* Add changelog for aggregations

* Appease the linters

* Update data/api/client-server/relations.yaml

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Try to clarify the return of /relations

* Fix required attribute

* Fix wording round 1

* Try to fix pagination

* Copy/paste the endpoint to make Open API happy

* Fix code block examples for rich replies

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Apply suggestions on all 3 endpoints

* Fix description of relationships API

* Fix warning about server-side aggregation/bundling

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Travis Ralston f14e18131b
Specify room version 10: `knock_restricted` and int power levels (#1099)
* Clarification on historical power level handling

* Revert "Clarification on historical power level handling"

This reverts commit f443b3d5a9.

* Clean up

* Let us try this again not using VS Code

* Markdown is full of mysteries

* Move stringy power levels to room versions

* Describe range

* Fix minor issues with previous room version stuff

* Copy/paste v9 into v10

* Describe deprecated formatting

* Paste unmodified auth rules from v8 into v10

* Move 9.1 to 9.3, add 9.1 and 9.2 for integer enforcement

* Add knock_restricted to v10 auth

* Misc cleanup and clarification for fragments

* Describe `knock_restricted` client changes

* Changelogs

* spelling

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Apply code review suggestions manually

* Fix v9 redactions

* Fix auth rules clarity issues

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Remove false integer requirements

Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Nicolas Werner e70045f4cc
room_type is not a required parameter in practice (#1110)
* room_type is not a required parameter in practice

In practice servers seem to mirror what the room create event does and
leave out the room_type when unset.

Signed-off-by: Nicolas Werner <n.werner@famedly.com>

* Add changelog

Signed-off-by: Nicolas Werner <n.werner@famedly.com>

* Also make room_type and allowed_room_ids optional in the openapi

They are optional according to the text, but the openapi marks them as
required instead.

Signed-off-by: Nicolas Werner <n.werner@famedly.com>

* Fix copy and paste error of newsfragment

Signed-off-by: Nicolas Werner <n.werner@famedly.com>
2 years ago
Hubert Chathi 8d82366cf2
Merge pull request #1056 from uhoreg/refresh_token_spec
Add spec for refresh tokens
2 years ago
Hubert Chathi 9bf02ada55 don't need securityDefinitions since we don't use access token 2 years ago
Hubert Chathi ef3df9d549
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
The one with the braid (she/her) | Dфҿ mit dem Zopf (sie/ihr) 31304300f5
fix: spaces hierarchy paramater types (#1097)
* fix: spaces hierarchy paramater types

- changed `limit` parameter type to integer
- changed `query` parameter type to integer

A floating number does not make any sense here. Also, at least Synapse
does not allow floating point numbers in here.

Signed-off-by: TheOneWithTheBraid <the-one@with-the-braid.cf>

* Update changelogs/client_server/newsfragments/1097.clarification

Co-authored-by: Travis Ralston <travpc@gmail.com>
2 years ago
Hubert Chathi 91b2a49b6f apply suggestions from review, and other clarifications 2 years ago
Hubert Chathi 84747f90e8 Merge branch 'main' into refresh_token_spec 2 years ago
Travis Ralston a91030f27b
Re-add paragraph about how some state keys are reserved (#1100)
* Re-add paragraph about how some state keys are reserved

Fixes https://github.com/matrix-org/matrix-spec/issues/1013

* changelog
2 years ago
Alexey Rusakov e38c4e6f17 Revert accidentally pushed commits
This reverts commits:
c11991f9de.
f8bf0fa0ac.
7abdd45c06.
92db4e20da.
2 years ago
Alexey Rusakov 92db4e20da /password: formalise 'default' for logout_devices 2 years ago
Alexey Rusakov 7abdd45c06 notifications.yaml: Use int64 for timestamp 2 years ago
Alexey Rusakov f8bf0fa0ac profile.yaml: require displayname/avatar_url
This makes a deliberate choice for the question stated in #2717.
2 years ago
Hubert Chathi 58f960e5cc
Merge pull request #1055 from progval/valid_until_ts
Clarify that valid_until_ts is in milliseconds, like other timestamps used in Matrix
2 years ago
Michael Telatynski 573dbb3b74
Fix error code typo (#1059)
* Fix error code typo

See https://spec.matrix.org/v1.2/client-server-api/#other-error-codes

* Create 1059.clarification
2 years ago
Alexey Rusakov 61e7a73a4f
Drop lifetime from the call answer event example (#1054)
* Drop lifetime from the call answer event example

* Changelog
2 years ago
Hubert Chathi 1f81587154 add spec for refresh tokens 2 years ago
Valentin Lorentz 34589078fd Clarify that valid_until_ts is in milliseconds, like other timestamps used in Matrix
Signed-off-by: Valentin Lorentz <progval+git@progval.net>
2 years ago
Andrew Morgan 8a5955e98f Remove 'room_id' field from `m.typing`, `m.receipt` and `m.fully_read` examples and schema (#3679)
The spec had an erroneous `room_id` field in a m.typing EDU entry of /sync, `m.read` receipts in `/sync`, and `m.fully_read` room account data objects in the spec. None of these are necessary nor used in practice.

Checking part of the ecosystem for whether clients look for, or homeservers include, these room_id fields, I found that:

    Element does not require them, nor does Synapse include them.
    Ruma does not include them.
    Dendrite does not include them.
    nheko/mtxclient does not look for them.

This change removes room_id from the example and OpenAPI schema in each case mentioned above. It only affects the Client-Server spec - the Server-Server spec text remains unchanged.

The field was initially introduced in 0f28f83.
2 years ago
Aaron Raimist ac4a296e4c Remove unenforced size limit on room names (#3669)
Fixes #3641

The spec says the name field in m.room.name events must not exceed 255 bytes but no servers actually enforce this over the C-S API. Clients should probably already be truncating room names to an appropriate length for their user interface.

Signed-off-by: Aaron Raimist <aaron@raim.ist>
2 years ago
Travis Ralston fd2340a4da Fix membership state table and diagram (#3730)
* Fix membership state table and diagram

There were 2 missing cases which are legal:
* `invite->knock` (a fairly silly thing to do, but legal under the auth rules)
* `external->leave (via /kick)` (another somewhat silly thing to do, but no different than `external->ban (via /ban)`)

The state table considered the first as illegal, which is untrue.

* Changelog

* Make the graph prettier

* Update changelogs/client_server/newsfragments/3730.clarification

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Travis Ralston 2997c9089d
Merge pull request #1035 from thomaslantern/thomasws_branch
removed m.room.message.feedback
2 years ago
thomaslantern 842106d9d8 removed m.room.message.feedback 2 years ago
Richard van der Hoff 614680675f
Fix broken links to `matrix-doc` (#1032)
The spec has moved to https://github.com/matrix-org/matrix-spec, so there were
a lot of broken links here.
2 years ago
Richard van der Hoff 136b5c9231
Correct the default for `invite` in `m.room.power_levels` (#1021)
Per #860, this has been wrong in the spec forever.
2 years ago
Jonas Platte f6da709857
Mark `from` parameter as optional for `/messages` (#1002)
As per MSC3567, the `from` parameter is now optional for the `/messages` endpoint to allow fetching first or latest room content without having to rely on `/sync`

https://github.com/matrix-org/matrix-doc/pull/3567
2 years ago
Jonas Platte ac9bee3f88
Remove origin from unsigned_pdu_base.yaml (#998)
It doesn't serve a useful purpose, is not enforced to be present by Synapse
and already being omitted by at least one homeserver implementation.
2 years ago
David Robertson 46f98796b6
Correct title location in login flow definition (#1003) 2 years ago
Jonas Platte 17448083cf
Clarify that the url field in `m.room.avatar` events is not required. #987) 2 years ago
Nicolas Werner 9a3da0b574 Add missing object type to openapi client event
Signed-off-by: Nicolas Werner <n.werner@famedly.com>
2 years ago
Richard van der Hoff 284d0e201f
Mark `type` in `AuthenticationData` as optional (#989) 2 years ago
Richard van der Hoff ca466b5a57
Attempt to clarify how `event_match` works (#3690)
Fixes #3082, #2637, #3075.
2 years ago
Richard van der Hoff 1913812a90
Clarify send_join response (#3703) 2 years ago
Andrew Morgan e7adfd5ed1
Fix missed rst->md numbered list syntax for `m.room.server_acl` (#3681)
* Fix missed rst->md numbered list syntax
2 years ago
Alexandre Franke de9cf76a57
Dump additional apis (#3684)
*  Allow JSON generation for all API

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 👷 Export AS API JSON

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

*  Handle missing security definitions

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 👷 Export Push Gateway API JSON

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 🎨 Improve identation

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 🐛 Fix successive reference handling

Fixes #3689

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 👷 Export Server-Server API JSON

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 📝 Remove obsolete comment

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 🐛 Make properties objects, as they MUST be

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* Revert "👷 Export Server-Server API JSON"

This reverts commit 061f91c2cbcb6dff35c74177226da106826b4214.

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
2 years ago
Richard van der Hoff 36b02edfc2
Distinguish 'client' from 'federation' events (#3658)
Fixes #3305 
Fixes #3380
 
The idea here is to better distinguish between a 'raw' event (as we send over the wire), and the 
'serialised' format, as sent in responses to the C-S api and in `PUT /_matrix/app/v1/transactions/{txnId}`.

It's made more complicated by the fact that there are _two_ serialisation formats, one used by `/sync`
and `/notifications`, and one by everything else (the difference being whether `room_id` is included).

In an ideal world, we wouldn't repeat `SerialisedEvent` every time it's used, and instead just link to the
first reference, but that's a job for another day.

Another job for another day is to get rid of things like `sync_state_event.yaml` (which is now used
only in one place, so should be inlined.)
2 years ago
Aaron Raimist 990dfec94b
Update several spots where C-S API was still using r0 APIs (#3671)
* Update several spots where C-S API was still using r0 APIs

Signed-off-by: Aaron Raimist <aaron@raim.ist>

* Add changelog

Signed-off-by: Aaron Raimist <aaron@raim.ist>
2 years ago
Alexandre Franke d3e39567f4
Responses schema fixes (#3650)
Fixes #2237.

Corrects the response schemas for:

```
PUT /user/{user_id}/account_data/{account_dataType}
PUT /user/{user_id}/rooms/{roomId}/account_data/{type}
PUT /directory/list/room/{roomId}
PUT /sendToDevice/{eventType}/{txnId}
POST /account/3pid
POST /account/3pid/add
POST /account/3pid/bind
```
2 years ago
Richard van der Hoff 39a41a18ba
Fix the response for `GET /_matrix/app/v1/thirdparty/protocol/{protocol}` (#3675)
This should return a single protocol, not all of them.

Fixes #2286.
2 years ago
Patrick Cloke fff5f87c3d
Fix the type of children in the /hierarchy S-S API. (#3660)
* Fix the type of children in the /hierarchy S-S API.

* Newsfragment
2 years ago
Travis Ralston 6c4aabd053
Room versions 8 and 9: Restricted rooms (#3387)
* Room versions 8 and 9: Restricted rooms

MSCs:
* https://github.com/matrix-org/matrix-doc/pull/3083
* https://github.com/matrix-org/matrix-doc/pull/3289
* https://github.com/matrix-org/matrix-doc/pull/3375

* Changelogs

* Capitalization

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>

* Remove verbiage for spaces because they don't exist

* Iterations on text

* Another clarification

* Make error code descriptions consistent

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Incorporate from merge

* Misc language update per review

* Update accuracy before splitting auth rules

* fix wtf moment

* Fix up v8 and v9 to match "fully specify room versions"

* Scope auth events selection to room version

* Apply consistency

* Add changelogs

* Review part 1

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Split out redaction sections

* Clarify general case of join conditions

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Travis Ralston fc3f7d60eb
Remove `aliases` from `/publicRooms` response (#3624)
Through attempting to land [Synapse#11667](https://github.com/matrix-org/synapse/pull/11667) it was found that Synapse doesn't return the `aliases` property on `/publicRooms` as it was [removed](https://github.com/matrix-org/synapse/pull/6970) by a [tracking issue](https://github.com/matrix-org/synapse/issues/6898) referencing [MSC2432](https://github.com/matrix-org/matrix-doc/pull/2432) as its base. Though MSC2432 does not make mention of this, the [document](https://docs.google.com/document/d/1NNDkobiFLeUkJtyj0H6qvKIedgvIkZnFKo78-03cGEk/edit) the MSC is based upon makes deliberate effort to mention the endpoint and the removal of `aliases`. Thus, it is determined as a likely accidental omission from the formal MSC and therefore the formal spec.

This has been corrected here by amending the MSC (per the process) and removing the field, basing itself off of the [spec PR for spaces](https://github.com/matrix-org/matrix-doc/pull/3610) for diff clarity.
2 years ago
Travis Ralston 9af83dfd41
Add Spaces to the spec (#3610)
* First iteration of specifying Spaces

MSCs:
* https://github.com/matrix-org/matrix-doc/pull/3288
* https://github.com/matrix-org/matrix-doc/pull/2946
* https://github.com/matrix-org/matrix-doc/pull/1772

Note that this makes modifications to the underlying MSCs as well. These are intended to be minor edits to aid clarity/accuracy of the MSCs, as per the proposal process. Functionally, clients and servers might need to change their behaviour slightly as is expected of implementing this stuff early. Synapse has these changes (alongside backwards compatibility) here: https://github.com/matrix-org/synapse/pull/11667

* add changelogs

* Accuracy per review

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* fully prefix new endpoints

* Fully prefix endpoint in 3616 too

* Fix ordering example

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Hubert Chathi 6fb684397a
Clarify how to interpret missing one time key counts (#3636) 2 years ago
Travis Ralston 56532dd688
Describe and hoist stripped state to a first-class citizen (#3606)
* Describe and hoist stripped state to a first-class citizen

Fixes https://github.com/matrix-org/matrix-doc/issues/3413
MSC: https://github.com/matrix-org/matrix-doc/pull/3173

* Add changelog

* may->can for clarity

* Update text per review
2 years ago
Travis Ralston 224773dc6a
Specify fallback keys (#3615)
* Specify fallback keys

MSC: https://github.com/matrix-org/matrix-doc/pull/2732

* changelog

* Appease spell check

* Fine, let's appease the spellcheck this way

* Apply suggestions from code review

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>

* Fix intro

* word wrap

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2 years ago
Travis Ralston 26e0765159
Add guest changes to spec: MSC3069 and MSC3419 (#3605)
* Add MSC3069 support

https://github.com/matrix-org/matrix-doc/pull/3069

* Add MSC3419 support

https://github.com/matrix-org/matrix-doc/pull/3419

* Normalize and fix guest access endpoints list

* Changelogs
2 years ago
Travis Ralston e4057072bd
Add registration token UIA type (#3616)
* Add registration token UIA type

MSC: https://github.com/matrix-org/matrix-doc/pull/3231

**Note**: This introduces the endpoint as v1 rather than r0 given the global versioning changes landed between the acceptance of the MSC and now.

* Fix swagger

* Changelogs

* Update data/api/client-server/registration_tokens.yaml

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2 years ago
Richard van der Hoff 355e06eaa6
Clarification for `/event_auth` (#3583)
The description on this endpoint implied it returned the auth chain for the
full state of the room, which is incorrect.
2 years ago
Travis Ralston 1e9dd4d22e
Avoid use of the word "clobber" (#3611)
* Avoid use of the word "clobber"

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

* changelog
2 years ago
Dan Callahan 48d8f7202d
Add HTTP 403 to possible profile responses (#3530)
* Add HTTP 403 to possible profile responses

Some servers may not allow profile lookup over federation, and thus
respond to GET /_matrix/client/v3/profile/{userId} with an HTTP 403.

For example, Synapse can be configured to behave in this way by setting:

    allow_profile_lookup_over_federation=false

Thus, this behavior already exists in the wild, and may cause issues for
clients such as https://github.com/vector-im/element-web/issues/17269.

Synapse could alter its behavior and return an HTTP 404 in these cases,
but amending the Spec seems preferable to align with extant behavior.
Further, allowing HTTP 403 gives clients more specific information as to
why a request has failed, enabling more precise error handling.

Signed-off-by: Dan Callahan <danc@element.io>

* Update changelogs/client_server/newsfragments/3530.clarification

Co-authored-by: Travis Ralston <travpc@gmail.com>

* Annotate misc data about error

Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
2 years ago
Aaron Raimist 01cd41de68
Add GitHub Action to check spelling (#3591)
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2 years ago
Travis Ralston 0fbc6bdab6
Definition of "Standard Identifier Format" (#3171)
Spec for https://github.com/matrix-org/matrix-doc/pull/2758
2 years ago
Richard van der Hoff 83b24dd54d
Remove definition of Event for `/notifications` (#3525)
The documentation for the `/notifications` API had its own special definition
of what an Event was, which was used nowhere else.

The common definition isn't perfect, but it *is* common, so it gives us a
better starting place for improvement.
2 years ago
Richard van der Hoff 7f200c53e8
Move `prev_content` to unsigned (#3524) 2 years ago
Richard van der Hoff dce06f6dc2
Remove C-S `unsigned` data from PDU definitions (#3522)
Remove a bunch of fields from the `unsigned` property of PDUs. These things
shouldn't be passed over the Federation API, and they *really* shouldn't be
trusted if they are sent by another server.

 * `replaces_state` *is* returned by Synapse, but probably shouldn't
   be.
 * `redacted_because`, `prev_sender` and `prev_content` are not sent by Synapse.
3 years ago
Ankur ac98c8c08c
OpenAPI: Add missing `required` flag in `getRoomKeys` (#3509) 3 years ago
Ankur a8cf4d4a56
Open API: Changed RoomKeys to RoomKey (#3500) 3 years ago
Will Hunt 51d8560da9
Explicitly link to geo URI spec (#3492)
* Explicitly link to geo URI spec

* move RFC location

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Create 3492.clarification

Co-authored-by: Travis Ralston <travisr@matrix.org>
3 years ago
Ankur a034d45e45
typos: Corrected typos in message_pagination.yaml (#3495) 3 years ago
Hubert Chathi 033038917d
remove extra `type` property (#3482) 3 years ago
Travis Ralston 5ea6d5610f
Update identity server spec to use global versioning (#3459)
* Update identity server spec to use global versioning

* changelog
3 years ago
Travis Ralston 5be0df02c5
Start annotating which version of the spec added a thing (#3425)
* Introduce a new "added-in" template and use it on endpoints

* Use "added-in" on schema properties too

* Annotate sections of the spec with their added versions

* Demo of "added-in" on a room version (to be fleshed out)

* Use clearer versioning semantics

* Update and fix validator for Swagger custom properties

* Fix docs
3 years ago
Travis Ralston 649fc2bdd2
Move room version spec to `/rooms` (#3423)
* Cut/paste room version spec to its own page

* Move grammar to bottom + add feature matrix

The version grammar is not as interesting as the actual room versions, so this moves that whole section to the bottom.

* Fix all links to room versions
3 years ago
Travis Ralston 95d850c418
Update client-server API endpoints to move from r0 to v3 (plus whitespace fixes) (#3421)
* Blind find & replace all on client major version -> v3

* Fix up bad replacements

* Fix anchors for r0->v3

* Changelog
3 years ago
Travis Ralston 2d98cd3084
Describe new global specification versioning (#3420)
* Update versioning specification for Matrix

As per [MSC2844](https://github.com/matrix-org/matrix-doc/pull/2844)

* Mention vX versioning in /versions

* Changelog
3 years ago
Andrew Fargo f1a4a58755
Fix "invite_state" to "knock_state" (#3428) 3 years ago
Aaron Raimist 525728971b Fix two links on the CS API page
Signed-off-by: Aaron Raimist <aaron@raim.ist>
3 years ago
Richard van der Hoff 6bd7b6cbb5 Clarifications to pagination parameters for various APIs (#3353) 3 years ago
Lukas Lihotzki 8a8db03a13 OpenAPI: include peekEvents
Disambiguate from getEvents by a trailing space in path (like inviteUser).

Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Denis Kasak ddbbd76b32 Fix typo in /_matrix/client/r0/account/3pid/delete. 3 years ago
Hubert Chathi b231220bbd Merge pull request #3337 from uhoreg/room_create_canonical_alias
room creation: create canonical alias event if alias specified
3 years ago
Alexey Rusakov fbf4259a83 Merge pull request #3330 from lukaslihotzki/add-titles
OpenAPI: add titles
3 years ago
Hubert Chathi 8536cd3e16 drop initial state check 3 years ago
Alexey Rusakov 5749325fc3 Merge pull request #3329 from lukaslihotzki/missing-tags
OpenAPI: improve tags
3 years ago
Lukas Lihotzki 13f7df1379 OpenAPI: add titles 3 years ago
Hubert Chathi 89089e8913 Merge pull request #3332 from lukaslihotzki/required-bodies
OpenAPI: require all bodies in cross_signing
3 years ago
Lukas Lihotzki 39e70a2902 OpenAPI: split User data tag
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Hubert Chathi ee92c94cfe Mention that a canonical alias event should be created if alias specified 3 years ago
Lukas Lihotzki 1a81a46865 OpenAPI: require all bodies in cross_signing
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Lukas Lihotzki 97ebe5aec2 OpenAPI: add missing tags
peekEvents remains untagged, because it is explicitly excluded.

Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Lukas Lihotzki e3070bcdda OpenAPI: fix key_backup operation IDs 3 years ago
Lukas Lihotzki c58d423aba OpenAPI: add auth property in uploadCrossSigningKeys
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Lukas Lihotzki 91b232df48 OpenAPI: use uri format
In avatar_url, pusher url, wellknown base_url, getUrlPreview, and submit_url.

Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Travis Ralston cdcc24af11 Merge pull request #3238 from lukaslihotzki/required-bodies
OpenAPI: require all bodies in client-server
3 years ago
Neil Alexander af0ebc7414 `/_matrix/federation/v1/user/devices/{userId}`: Rename `self_signing_keys` to `self_signing_key` (#3312)
Apparently, in response to a /_matrix/federation/v1/user/devices/{userId} request, Synapse actually returns a key called "self_signing_key" instead of "self_signing_keys".
3 years ago
Lukas Lihotzki ad0ff78316 OpenAPI: require all bodies in client-server
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Alexey Rusakov c5631b30b8 sso_login_redirect: Fix a copy-pasted operationId 3 years ago
Christian Paul 86b53be3d1 Add "knock" membership to /members endpoint (#3254) 3 years ago
Will Hunt 2794fc8e29 Explicitly call replacement_room a room ID
Fixes https://github.com/matrix-org/matrix-doc/issues/3232
3 years ago
Lukas Lihotzki 6c46933fbc Fix Typo
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Lukas Lihotzki 2fa7b59e1a OpenAPI: fix tags of add3PID
The tag needs to be set to include add3PID in scripts/swagger/api-docs.json.

Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Andrew Morgan ad93aa6546 Update client_secret examples so that they are valid (#2985)
The regex of allowed characters for a `client_secret` parameter is `[0-9a-zA-Z.=_-]`.

This PR updates the `client_secret` spec examples, which currently include an invalid character (an apostrophe).
3 years ago
Travis Ralston 466911b253 Merge pull request #3170 from matrix-org/travis/spec/msc2713-rm-v1-id
Remove v1 identity service API
3 years ago
Travis Ralston 3d217e0de0 Merge pull request #3101 from matrix-org/travis/spec/MSC2320-identity-versions
Add identity service versions API
3 years ago
Travis Ralston c11efb35fe Merge pull request #3163 from matrix-org/travis/spec/msc2858-multisso
Describe social-sign-on (multiple SSO providers)
3 years ago
Travis Ralston fb3dde1c2c Merge pull request #3167 from matrix-org/travis/spec/msc2265-lower-3pid
Specify that email handling converts to lowercase first
3 years ago
Travis Ralston c1d1f88a55 Update data/api/identity/versions.yaml
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
3 years ago
Travis Ralston 2c3d7b1682 Apply suggestions from code review
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
3 years ago
Travis Ralston 37c3a3f855 Remove v1 identity service API
Spec for https://github.com/matrix-org/matrix-doc/pull/2713
3 years ago
Travis Ralston 57f609cf1b Typo fixes 3 years ago