Compare commits

..

2020 commits

Author SHA1 Message Date
Kim Brose 690c41e33b
Remove unintended TeX formatting (#2283)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-12-30 19:24:38 +00:00
Kim Brose d55acfda2e
Update non-historic mentions of matrix-doc repo to matrix-spec(-proposals) (#2280) 2025-12-30 19:20:39 +00:00
Andrew Morgan 2f6867348f
Replace Twitter link in footer with Masto/Bluesky (#2282)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-12-19 15:59:08 +00:00
Richard van der Hoff 6b5ff04d00 Return main to unstable status
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
2025-12-18 16:30:28 +00:00
Richard van der Hoff ce5ae4d371 missing comma 2025-12-18 16:07:32 +00:00
Richard van der Hoff 27315feb17 Minor changelog edits 2025-12-18 15:57:59 +00:00
Richard van der Hoff a1c930d0d1 Prepare v1.17 release 2025-12-18 15:53:35 +00:00
Andrew Morgan 9e959f3922
Add a list of endpoints to the top of each spec (#2262)
Fixes #784

Add a collapsible list of endpoints to the top of the page for each distinct spec. We do this by storing endpoint metadata on $page and creating a new partial, endpoints-toc.html, which renders it.
2025-12-18 14:59:18 +00:00
Kévin Commaille 7c39427d8b
Spec device management for application services (#2267)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
As per MSC4190.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-12-17 13:13:51 +00:00
Kévin Commaille 54944e2866
Fix version selector's historical URL (#2268)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
* Fix version selector's historical URL

Regression because the function signature changed in #2261, but this
call was not updated.

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-12-16 10:11:47 -07:00
Johannes Marbach 13aa6e83ae
Use more specific names for the version picker CSS classes and add them to the PurgeCSS safelist (#2264)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-12-05 18:06:17 +00:00
Andrew Morgan 705240da72
Prevent PurgeCSS from deleting dynamically-added version picker CSS classes (#2260) 2025-12-05 15:19:24 +00:00
Johannes Marbach 4dbe080570
Append version number to 'latest' entry in the picker (#2261) 2025-12-05 14:12:05 +00:00
Johannes Marbach 7a1eb81c9c
Fix versions.json URL in unstable and local environment (#2259) 2025-12-05 12:10:18 +00:00
Johannes Marbach 22c0952003
Load versions.json as a resource if we're in the unstable spec (#2258)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-12-04 11:25:07 -07:00
Johannes Marbach a5afe542c0
Add version picker in the navbar (#2256)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
Co-authored-by: Andrew Morgan <andrew@amorgan.xyz>
2025-12-04 12:24:28 +00:00
Johannes Marbach d28e05af87
Clarify that usage of event_id_only is not mandatory (#2255)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2025-12-01 17:41:42 +00:00
reivilibre b1fd2af72c
Clarify that servers may choose not to use M_USER_DEACTIVATED when they don't know who is asking. (#2246)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2025-11-24 17:28:16 +00:00
Forest f7a0d8d135
secrets.md: trivial grammar fix (#2250)
Co-authored-by: Andrew Morgan <andrew@amorgan.xyz>
2025-11-24 17:16:38 +00:00
Johannes Marbach a2027a3985
Spec for MSC4312: Resetting cross-signing keys in the OAuth world (#2234)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2025-11-24 10:59:32 +00:00
Hugh Nimmo-Smith ff1a39e36a
List M_RESOURCE_LIMIT_EXCEEDED under correct error code section (#2232)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2025-11-20 15:02:34 +00:00
Doug add0f2232c
Call out the possibility of redacting events that you don't have the power to send. (#2249)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
2025-11-20 11:22:48 +00:00
Johannes Marbach 8ebf4a4789
Clarify that device_one_time_keys_count is only optional if no unclaimed one-time keys exist (#2245)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2025-11-18 16:07:59 +00:00
Johannes Marbach 935c23485b
Clarify how to use state_after ahead of declaring full support for its spec version (#2240) 2025-11-18 10:56:22 +00:00
Johannes Marbach fe3f43a905
Point Olm and Megolm links at the new internal specification (#2242)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Relates to: #1543
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-10-31 13:52:15 +00:00
Richard van der Hoff 4783619964
Fix broken link to katex CSS (#2241)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
Followup to https://github.com/matrix-org/matrix-spec/pull/2226, which broke
the build. These links to the static CSS are broken in the case that the spec
is built for a subdirectory (such as `unstable`).
2025-10-31 11:02:16 +00:00
Johannes Marbach 4cafe7d9f4
Include Olm & Megolm specifications in main spec (#2226)
Fixes: #1543
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-10-31 10:33:32 +00:00
Michael Telatynski e2b2e56bd2
Use NPM Trusted Publishers over token (#2239)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
* Use NPM Trusted Publishers over token

due to security changes being enacted next month by npm

* Add changelog entry

* Update npm
2025-10-29 11:44:58 -06:00
Johannes Marbach 967b54195c
Clarify the special casing of membership events and redactions in power levels (#2231) 2025-10-29 16:33:47 +00:00
Johannes Marbach 9d063c8d2d
Add m.login.terms to enumeration of authentication types (#2233)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-10-28 19:05:59 -04:00
Kévin Commaille 74a0d5f289
Silence redocly-cli rule checking examples (#2238)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2025-10-24 10:19:19 +00:00
Tol Wassman 974b0b721e
fix typo (#2227)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
* fix typo

* create newsfragment

This seems to be the standard message for typo fixes.
2025-10-17 17:44:44 -04:00
Hugh Nimmo-Smith fda3be5ee3
Add note where an endpoint uses capability negotiation (#2223)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-10-08 16:32:44 +01:00
Travis Ralston 7f4072d993
Spec device ID masquerading (#2221) 2025-10-08 16:52:18 +03:00
Sarthak Kumar Shailendra 58744f4734
fix: update twitter icon to x (#2219)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
2025-10-07 19:40:33 +01:00
Johannes Marbach dfdb1d09b8
Add missing bracket (#2224) 2025-10-07 13:18:05 -04:00
Johannes Marbach f82d8ab15b
Clarify that additional OpenGraph properties can be present in URL previews (#2225)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
Fixes: #1753

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-10-07 10:44:20 +02:00
Travis Ralston b6a127b5cb
Clarify that restricted joins require the referenced user to be joined (#2220)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-10-03 18:28:41 -06:00
Johannes Marbach 0a649cb0db
room_id is required for peeking (#2216)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-10-02 12:04:11 +01:00
Johannes Marbach d8be2ad942
The server-name segment of MXC URIs is sanitised differently from the media-id segment (#2217)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Fixes: #1990

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-09-26 17:36:34 +03:00
Johannes Marbach 21109b4d5b
Push rule IDs are globally unique within their kind (#2214) 2025-09-26 11:02:36 +01:00
Johannes Marbach d4d31a8894
Don't advertise creator field in description of room creation (#2215) 2025-09-26 10:59:21 +01:00
Christian Paul d968774fb7
Missing quotation marks: Fix JSON formatting in application-service-api.md (#2213)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-09-23 15:49:27 +00:00
Kévin Commaille 2aacc1feda
Remove legacy mentions (#2186)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-09-21 12:44:16 +03:00
Travis Ralston 2a8c0bc7b8 Return to unstable
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-09-17 10:48:48 -06:00
Travis Ralston 81a864545f Matrix 1.16 2025-09-17 10:46:16 -06:00
Travis Ralston 671bc674cd Changelog normalization 2025-09-17 10:37:37 -06:00
Johannes Marbach 72a2ebc7ad
Spec PR - MSC4142: Remove unintentional intentional mentions in replies (#2210)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
2025-09-16 11:14:19 -04:00
Travis Ralston 7bc016bda6
Specification for MSC4311: Create event availability in stripped state (#2207)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
* Part 1: Invites

* Part 2: Knocks

* Use correct schema and examples; Remind readers often about formats

* changelogs

* Add schema warning

* Name the objects

* Move changed-in and expand upon it

* Rename the example

* address review feedback
2025-09-12 13:47:13 -06:00
Patrick Cloke fea0b925a0
Add time zone profile field from MSC4175 (#2206)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-09-09 12:02:39 -04:00
Kim Brose bfbeb5e257
clarify world_readable history visibility (#2204)
Signed-off-by: HarHarLinks <2803622+HarHarLinks@users.noreply.github.com>
2025-09-09 16:02:51 +01:00
Kim Brose d1a51f7b8c
fix typo in MSC process (#2205)
Co-authored-by: Andrew Morgan <andrew@amorgan.xyz>
2025-09-09 09:02:32 +00:00
V02460 6e16a19ac9
[schema] Application Service Registration meta schema (#2132)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-08-27 07:39:05 +01:00
Kévin Commaille 4d4069166d
Upgrade docsy to 0.12.0 (#2160) 2025-08-27 07:35:57 +01:00
Travis Ralston b5ee6adc0f
Remove extraneous v11 tag in v12 auth rules (#2199)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
* Remove extraneous v11 tag in v12 auth rules

* Changelog to copy #2193
2025-08-22 21:10:51 +03:00
Travis Ralston f97d2944ae
Room version 12 (#2193)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
* Placeholder

* i++

* Room version 12

Template out a v12 room version

Make v12 default, per MSC4304

Update PDU checks and auth event selection per MSC4291

Describe new room_id format per MSC4291

Move v6 depth definition to a component for easier referencing

Move room_id to a component to prep for v12, per MSC4291

Create and use a new room_id component for v12+ per MSC4291

Reflect auth events selection change onto all room versions per MSC4291

The MSC asks the `description` of `auth_events` to be adjusted, however this feels like a better representation of the change.

Add `room_id` format rules and renumber per MSC4291

Reflect change to rule 1.2 per MSC4291

Insert same room_id check to v1-12 auth rules per MSC4307 and MSC4291

Deprecate `predecessor.event_id` per MSC4291

Insert auth rule to validate `additional_creators` per MSC4289

Insert rule for `users` validation of creators and renumber per MSC4289

Define "room creator(s)" per MSC4289

Spec `additional_creators` on create events per MSC4289

Spec `additional_creators` on `/upgrade` per MSC4289

The MSC doesn't mention how to handle unsupported room versions, but the Synapse implementation used for FCP ignores the field in such room versions. This feels like a good approach, and will need clarifying in the MSC too (if accepted at the spec level).

Add notes to `/upgrade` behaviour per MSC4289 and MSC4291

Describe how additional creators work during room creation per MSC4289

Fix default user power level descriptions per MSC4289

Describe tombstone power level changes per MSC4289

Warn clients about event format changes in v12 per MSC4289 and MSC4291

Flag additional room creators support for client reference per MSC4289

Remove TODO now that it's fully addressed

Copy state res into v12 as-is for modification

Apply Modification 1 to SR2.1 per MSC4297

Apply Modification 2 to SR2.1 per MSC4297

Add summary box to the top of SR2.1 for ease of developer reference

Modification 2 was split into items 2 and 3 for further ease of understanding.

Add all the changelogs

`x` is used until a real PR number can be assigned.

Some changelogs are duplicated to the Client-Server API to increase visibility of the changes to v12.

Review: Minor phrasing adjustments in changelogs

Review: Clarify that v12 isn't quite the default yet in the changelog

Review: Clarify to clients that creators are immutable

Review: Improve 'how to parse a domain' advice for legacy apps

Review: Add a bit more detail as to why a room ID might be required

Apply suggestions from code review

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

Clarify that clients can override the tombstone default

Mention creatorship UI label by finishing the Permissions section

We probably should have removed the WIP note in v1.0, but alas.

Add changelog for tombstone changes

Use assigned spec PR number in changelogs

(cherry picked from commit ec81eea7e4532fd398b8013071d6981c97117d9e)
2025-08-14 11:16:00 -06:00
Tom Foster c4bfd2feb8
Spec for MSC4133: Update profile endpoints to support extended fields (#2071)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Signed-off-by: Tom Foster <tom@tcpip.uk>
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Johannes Marbach <n0-0ne+github@mailbox.org>
Co-authored-by: Richard van der Hoff <richard@matrix.org>
2025-08-12 12:17:57 +01:00
Eric Eastwood 04f42ac208
Fix /sync flow referencing incorrect parameter to use with /messages (#2195)
* Fix wrong parameter to use with `/messages`

* Add changelog
2025-08-12 12:12:17 +02:00
Andy Balaam f6d5009959
Clarify that clients should replace events with the most recent replacement by origin_server_ts (#2190)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Signed-off-by: Andy Balaam <andy.balaam@matrix.org>
2025-08-07 11:45:19 +01:00
Kévin Commaille 9c313b099f
Add state_after to /sync (#2187)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
* Add `state_after` to `/sync`

As per MSC4222.

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

* Add changelog

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

* Improve wording

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

* Clarify to not use timeline with state_after

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-08-06 15:49:32 -04:00
Richard van der Hoff 67a2aa4761
Specify a correct spelling for "display name" (#2189)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
* Specify a correct spelling for "display name"

* RST uses double-backticks
2025-08-06 07:21:58 +01:00
Kévin Commaille 7d2de48cb4
Fix new redocly lints (#2182)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2025-07-29 17:22:26 +00:00
Benjamin Bouvier fb4a0d8f66
Clarify that the latest_event field is serialized in the same form as the event itself (#2169)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-07-22 15:23:28 +01:00
Pierre 'McFly' Marty 4c87e0e745
ci(build-openapi): indentity routes were missing (#2172) 2025-07-22 15:13:51 +01:00
Johannes Marbach 3e1e9fa8df
Fix typo (#2179)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-07-21 14:35:59 +03:00
Tulir Asokan c8380d9552
Add format query parameter to GET /state/{eventType}/{stateKey} (#2175)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-07-19 22:52:41 +03:00
Johannes Marbach 3877598b1e
Clarify that format is required if formatted_body is specified (#2167)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-07-15 11:47:50 +03:00
Johannes Marbach 0e280ed014
Fix typo (#2177)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-07-14 14:09:08 +03:00
Travis Ralston 625ed5c599
Define some process for placeholder MSCs (#2157)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
* Define some process for placeholder MSCs

* changelog

* Clarity + adjust to use dedicated labels

* add contact details

* Clarify that closure may be later
2025-07-10 10:30:56 -06:00
Johannes Marbach 484a777572
Fix typo (#2171)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-07-02 11:20:48 +01:00
Travis Ralston 6edb6ba1cd become unstable
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-06-26 10:48:27 -06:00
Travis Ralston 40065811a1 Matrix 1.15 2025-06-26 10:43:51 -06:00
Kévin Commaille 1c06ed9cf7
Final tweaks for the OAuth 2.0 API (#2164)
* Clarify that SSO login applies to the legacy authentication API

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

* Do not point to specific authentication API for obtaining access token

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

* Add warnings about incompatibility with OAuth 2.0 to endpoints that use UIA

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

* Add changelog

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

* Add note about API standards not applying to OAuth 2.0

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

* Apply suggestions from code review

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
Co-authored-by: Travis Ralston <travpc@gmail.com>
2025-06-26 10:40:43 -06:00
Travis Ralston 6353b46add Normalize changelog 2025-06-26 10:30:39 -06:00
Peter Gervai 0e05e45d84
Update proposals.md: add reference to the guide about how to handle not-yet-known MSC number (#2153)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Suggest how to number the draft before user have the PR/MSC ID, referring to the other guide.
2025-06-24 17:46:02 +01:00
Kévin Commaille b278a4e0ec
Clarify the differences between the two authentication APIs (#2159)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
I tried to summarize MSC3861, and add sections to be able to find quickly how to do something with either API.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-06-20 14:50:14 +00:00
Kévin Commaille ccd9e50eb1
Add OAuth 2.0 token revocation (#2151)
As per MSC4254

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-06-20 10:51:17 +01:00
Kévin Commaille e4740e36e8
Add OAuth 2.0 authorization code and refresh token grant types (#2150)
As per MSC2964

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-06-20 10:45:17 +01:00
Kévin Commaille 9244c84a32
Add OAuth 2.0 dynamic client registration (#2148)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
As per MSC2966

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-06-18 10:12:48 +01:00
Richard van der Hoff 979264e923
Fix example for ExportedSessionData (#2154)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
Currently, the example for `ExportedSessionData` is missing values for
`room_id` and `session_id`.

Move the example field values for `KeyBackupSessionData` into the field
definitions, so that an example for the object as a whole is built
automatically, and when we extend it to form `ExportedSessionData` the
explicit example does not override the more complete autogenerated one.
2025-06-17 18:43:40 +01:00
Kévin Commaille 51ccbbd240
Add the OAuth 2.0 server metadata discovery endpoint (#2147)
As per MSC2965.
2025-06-17 17:47:30 +01:00
Kévin Commaille a2a9a02efa
Add OAuth 2.0 scopes (#2149)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
As per MSC2967

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-06-11 09:40:17 +01:00
Kévin Commaille 32b1f0514d
Clarify some string formats of room summary endpoint (#2158)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-06-07 15:26:56 +02:00
Johannes Marbach 7bcc3ecb81
Spec PR - MSC3266: Room Summary API (#2125)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-06-04 07:43:06 -04:00
Kévin Commaille 866c05f487
Reorganize client authentication section to separate the legacy API and the new OAuth 2.0 API (#2141)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
Since account locking and suspension are authentication API agnostic,
this is a pre-requisite to adding the new OAuth 2.0-based API.

This also splits the endpoints that where all included in the
registration OpenAPI data, to separate them cleanly in the spec, and
avoid having deactivation show before registration.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-06-03 19:05:24 +01:00
Johannes Marbach 7470c72d94
Clarify the meaning of "public spaces" (#2109)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Relates to: #633

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-05-29 16:19:46 -04:00
Johannes Marbach 643a6dca2d
Spec PR - MSC4147: Including device keys with Olm-encrypted events (#2122)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
Co-authored-by: Richard van der Hoff <richard@matrix.org>
2025-05-28 18:50:27 +01:00
Kim Brose cbf1854b93
Update the header navigation menu with 2025 links to m.org (#2137)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-05-27 11:52:36 +03:00
Johannes Marbach 2c734c3c5b
Clarify the meaning of "public rooms" in the room directory (#2104)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
Co-authored-by: Kim Brose <2803622+HarHarLinks@users.noreply.github.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2025-05-21 16:43:02 +01:00
Andy Balaam 075d203ecd
Fix typo: as->has (#2144)
Signed-off-by: Andy Balaam <andy.balaam@matrix.org>
2025-05-21 16:34:29 +01:00
V02460 4ed55a60ec
[schema] Correct null value handling for the AS Registration’s url property (#2130)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2025-05-20 15:54:09 +01:00
Kévin Commaille 67743d5715
Fix generation of historical spec (#2123)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
With the move of the config file, the command in CI did not work as
expected anymore.
I am unsure why Hugo actually ignored the missing config file in the
command…

To avoid this problem in the future and simplify the job, we use the
default config and add an environment variable for the status which will
always take precedence over the config.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-05-13 16:09:18 +01:00
Kévin Commaille 338047ec7b
Clarify that join_authorised_via_users_server auth event is only necessary for joins (#2100)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-05-13 16:03:10 +01:00
Johannes Marbach 0439707624
Spec PR - MSC3765: Rich text in room topics (#2095)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-05-13 16:01:25 +01:00
Johannes Marbach f4e6e6dea9
Clarify the meaning of "public rooms" for presence (#2108) 2025-05-13 15:13:40 +01:00
Johannes Marbach 73fcf366a0
Clarify the meaning of "public rooms" for presence (#2108) 2025-05-13 15:11:50 +01:00
Johannes Marbach 0a1efd8c9c
Clarify the meaning of "public rooms" for policy lists (#2107) 2025-05-13 15:10:08 +01:00
Johannes Marbach 2c6ddafb43
Clarify the meaning of "public rooms" for call invites (#2106) 2025-05-13 15:09:12 +01:00
Johannes Marbach fc81171081
Clarify the meaning of "public rooms" for user directory queries (#2102) 2025-05-13 14:37:31 +01:00
Johannes Marbach c74befd111
Clarify the meaning of "public rooms" for profile look-ups (#2101) 2025-05-13 14:34:39 +01:00
Kim Brose ca9c376076
Clarify Well-Known URIs (#2140)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
* Clarify Well-Known URIs

Signed-off-by: HarHarLinks <2803622+HarHarLinks@users.noreply.github.com>

* Fix section link

---------

Signed-off-by: HarHarLinks <2803622+HarHarLinks@users.noreply.github.com>
2025-05-08 13:55:51 +02:00
Kévin Commaille fe46e0c363
Replace Hugo shortcodes in OpenAPI output (#2088)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-05-08 09:29:32 +00:00
Andrew Morgan a8c326962a
Add a note to the federation invite endpoints that invites can be sent twice (#2067)
... as this may be non-obvious when implementing behaviour that is triggered by an incoming invite
event.

See https://github.com/matrix-org/matrix-spec/issues/2062 for more context.

Co-authored-by: Kévin Commaille <76261501+zecakeh@users.noreply.github.com>
2025-05-08 10:09:45 +01:00
Kévin Commaille fca171427f
Clarifications around third-party invites (#2083)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-04-22 15:48:50 +01:00
Kévin Commaille 81273df88e
Adjust margins in rendered endpoints (#2081)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
* Use consistent spacing between tables and code blocks

Tables used `4 rem` which is more than the margin above a h2 title, which seems excessive. We change it to `2 rem` which matches the margin of code blocks and info boxes.

We also remove the margin on the last item of a `.rendered-data` block because this is just wasted space.

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

* Adjust spacing around h2 and h3 titles in `.rendered-data`

Given that h2 titles are always preceded by an horizontal rule, we don't need a lot of space to separate them from the previous section.

We also reduce the spacing when a h2 title is followed directly by a h3 title.

Finally, we add a little spacing below both so that tables are less close to the title.

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2025-04-15 18:35:27 +01:00
Will Hunt 65b1db721d
Describe behaviour when the topic key is falsey in a m.room.topic event. (#2068)
We seem to have [updated this for m.room.name](https://github.com/matrix-org/matrix-spec/pull/1639) some years back but omitted it for topic.
2025-04-15 18:24:22 +01:00
Kévin Commaille c39c7d0680
Fix /sync example (#2077)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
* Fix sync example

The same event should not appear in `state` and in the `timeline` so we cannot use the same event twice.

To provide a `state` example we assume that with lazy-loading the user did not get the state event for `@example:example.org`, so we add one since they sent a message in the timeline.

The events that are referenced include a `room_id`, which doesn't appear on this endpoint, so we copy them without it.

Finally, the `join` event of `@alice:example.org` is wrong because the sender does not match the state key, which wouldn't pass the authorization rules.

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

* Fix the `m.room.member.yaml` example

This is a `join` event, and the `sender` doesn't match the `state_key`, so the event couldn't pass the authorization rules.

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-04-15 14:47:21 +01:00
Travis Ralston 23ff7f1343
Fix minor typo in content hash calculations (#2128)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
* Fix minor typo in content hash calculations

* Changelog
2025-04-07 14:28:00 -06:00
Andy Balaam 8a2c58b1b1
Typo "not" -> "no" (#2121)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
* Typo "not" -> "no"

Signed-off-by: Andy Balaam <andy.balaam@matrix.org>

---------

Signed-off-by: Andy Balaam <andy.balaam@matrix.org>
2025-03-28 14:13:17 +00:00
Kim Brose 817ec5380f
Create funding-manifest-urls (#2115)
* Create funding-manifest-urls

* update funding-manifest-urls location, add news

Signed-off-by: HarHarLinks <2803622+HarHarLinks@users.noreply.github.com>

---------

Signed-off-by: HarHarLinks <2803622+HarHarLinks@users.noreply.github.com>
2025-03-28 13:19:23 +00:00
Travis Ralston 029be205b9 -> unstable
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
2025-03-27 10:30:02 -06:00
Travis Ralston fe880fdaf4 v1.14 2025-03-27 10:28:55 -06:00
Travis Ralston 71ce620fc0
Add a v6 event format with correct depth limits (#2114)
* Add a v6 event format with correct `depth` limits

* Changelog

* numbers are hard
2025-03-27 10:23:09 -06:00
Travis Ralston cb6d039c57 Normalize changelog
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
2025-03-25 15:40:04 -06:00
Johannes Marbach c7581356bf
MSC4260: Reporting users (Client-Server API) (#2093)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
* MSC4260: Reporting users (Client-Server API)

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>

* Add changelog

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

Co-authored-by: Kévin Commaille <76261501+zecakeh@users.noreply.github.com>

* Move option to consistently respond with 200 to user reporting endpoint

* Move optional random delay to event and user reporting endpoints

* Make reason required for user and room reports

* Fix requiredness syntax

---------

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
Co-authored-by: Kévin Commaille <76261501+zecakeh@users.noreply.github.com>
2025-03-21 13:33:26 -06:00
Kévin Commaille 7fd49a2808
Set room version 11 as the default (#2105)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
* Set room version 11 as the default

As per MSC4239

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-03-20 12:00:33 -06:00
Johannes Marbach e283c35dbd
Remove extra trailing quotes from sync API specs (#2091)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-03-05 09:12:15 -05:00
Kévin Commaille 1916e53f8c
Deduplicate Invite3pid (#2074)
* Deduplicate Invite3pid

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-03-05 09:56:49 +00:00
Kévin Commaille 02a1aeefbc
Deduplicate RoomKeysUpdateResponse (#2073)
And add a link to the endpoint that is mentionned while we're at it.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-03-05 09:52:40 +00:00
Kévin Commaille 3adbfa30da
Look for examples in all possible locations (#2076)
We used to only look for examples in a few (sometimes arbitrary) places, and we didn't support showing several examples in most cases. This is intended to fix this. In the process we try to deduplicate code to make sure that we use the same logic everywhere.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-03-05 09:44:59 +00:00
Kévin Commaille 4ff9a851e6
Add link to git commit for unstable changelog too (#2078)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-03-05 09:43:27 +00:00
Johannes Marbach 844dd6f8ae
Clients can choose which history visibility options they offer to users when creating rooms (#2072)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-03-04 17:18:27 +00:00
Kévin Commaille dfc61ffc71
Fix parsing of nested slices in resolve-refs and resolve-allof partials (#2069)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-03-04 17:14:42 +00:00
Kévin Commaille 60339adb2d
Refactor PDU definitions to reduce duplication (#2070)
First of all, all PDU definitions were based on the v1 PDU definition with a few fields overwritten to change the format with needed.
While that works when rendering the spec, this is semantically incorrect because it means that the objects must match both schemas, which is impossible.

So now we make a base with only the common fields, and we add the others as needed by the room version.
Note that there is no more "unsigned PDU" definition since it is not used directly, and hashes and signatures are the same across all versions.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-03-04 17:08:42 +00:00
Hubert Chathi ae06f37470
fix typos in m.room_key.withheld (#2080)
* fix typos

* add changelog
2025-02-25 17:11:50 -05:00
Kévin Commaille 10587366e9
For room versions 6 and 7, clarify that events with rejected auth eve… (#2065)
Other room versions were updated in #1103 and #1137, but not these ones.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-02-25 21:00:32 +00:00
Kévin Commaille eedecf863a
Clarify that join rules must be in auth events for knock events (#2063)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-02-25 20:34:23 +00:00
Patrick Cloke cb83c5a76e
Clarify which rooms are returned from /hierarchy (#2064)
Signed-off-by: Patrick Cloke <clokep@patrick.cloke.us>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2025-02-14 12:06:21 +00:00
Kévin Commaille c2ef38f0e5
Document instance_id field of /thirdparty/protocols (#2051)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-02-13 17:29:56 +00:00
Kévin Commaille dcb39c603a
Fix the version of the Identity Service API at Matrix 1.0 (#2061)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-02-11 18:04:25 +00:00
Johannes Marbach 23e709ae9b
MSC4213: Remove server_name parameter (#2059)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-02-11 18:03:25 +00:00
Kévin Commaille cabe846d23
Fix typo in room versions 1 through 5 (#2066)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-01-25 07:09:49 -05:00
Kévin Commaille 9e0f2aad94
Clarify that v1.0 of Matrix was a symbolic release (#2045)
Explain that it was a release prior to the current global versioning system.

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2025-01-23 12:36:41 +00:00
Tulir Asokan cd6ae9e1a2
Clarify that arbitrary unicode is allowed in user/room IDs and room aliases (#1506)
Signed-off-by: Tulir Asokan <tulir@maunium.net>
Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2025-01-22 10:33:34 +00:00
Kévin Commaille a1bdfaa167
Remove the origin field in PUT /send_join responses (#2050)
* Remove the `origin` field on PUT /send_join responses

This is a spec bug as it has actually never been sent by Synapse, going back to 2014.

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-01-21 22:55:27 +00:00
Kévin Commaille d0d71d9997
Clarify formats of string types in account sections (#2046)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-01-17 17:18:51 +00:00
Johannes Marbach ad17652fce
Clarify that applying redactions is a SHOULD for clients (#2055) 2025-01-15 10:07:37 +00:00
Kévin Commaille b9b10c4920
Remove unused release_date from Hugo config (#2042)
* Remove release_date from Hugo config

It seems unnecessary because it is not used anywhere.

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

* Remove erroneous sentence from Hugo config docs

The version is updated manually during the release (see /meta/releasing.md), not by CI.

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-01-14 12:34:29 -07:00
Johannes Marbach 42364c5155
Fix typo in /_matrix/client/v3/rooms/{roomId}/redact/{eventId}/{txnId} (#2047)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-01-14 18:52:56 +00:00
Johannes Marbach b9f46d1d85
Add missing preposition (#2048)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-01-14 18:52:10 +00:00
morguldir e341525e04
Undeprecate /initialSync for peeking (#2036)
Signed-off-by: morguldir <morguldir@protonmail.com>
2025-01-14 18:50:30 +00:00
Kévin Commaille ba73e0d97a
Fix syntax highlighting and click-to-copy buttons for code blocks (#2049) 2025-01-14 18:34:50 +00:00
Kévin Commaille 6f1e64cb12
Generate changelog release info with Hugo rather than when generating changelog (#2033) 2024-12-23 17:46:52 +00:00
Travis Ralston baa60bf728
Update path to config in release steps (#2041)
* Update path to config in release steps

* changelog
2024-12-23 08:50:52 -07:00
Kim Brose 2df3f7a7bf
Clarify wording in the /join endpoints summaries and descriptions (#2038) 2024-12-20 11:59:42 +00:00
Travis Ralston 1d98e96300 -> unstable 2024-12-19 09:25:15 -07:00
Travis Ralston bc995e66d6 v1.13 2024-12-19 09:22:58 -07:00
Travis Ralston 921c6becf1 Normalize changelog 2024-12-16 13:38:04 -07:00
Andy Balaam 35c3ddb33b
Specify the order in which one-time keys are returned (MSC4225) (#2029)
Signed-off-by: Andy Balaam <andy.balaam@matrix.org>
2024-12-12 15:53:21 +00:00
Travis Ralston 2fd5bf10bb
Specify account suspension (#2014)
* Specify account suspension

* changelog

* Apply suggestions from code review

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

* Add some links

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2024-12-11 18:12:26 -07:00
Johannes Marbach 355f92ff99
Add spec for MSC4163: Make ACLs apply to EDUs (#2004)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-12-11 22:48:04 +00:00
Kévin Commaille 96b32f68f9
Allow sending ephemeral data to application services (#2018)
As per MSC2409.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-12-11 22:38:59 +00:00
Kévin Commaille 846cc49eb2
Clarify allowed HTTP methods in CORS responses (take 2) (#2011)
* Clarify allowed HTTP methods in CORS responses (take 2)

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

* Update previous changelog an add duplicate changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-12-11 10:21:49 -07:00
David Baker 9198182f1a
Add error codes from MSC4178 (#1944)
* Add error codes from MSC4178

* changelog

* Put changelog in the right place

* Move newsfile

* Add the codes to the right endpoint

* Also add M_THREEPID_IN_USE

which was always used and is specified in the IS API, but not in the
C/S API. We decided this was well-specced enough that it didn't need
its own MSC.
2024-12-11 09:48:26 +00:00
Kévin Commaille f819403bd5
Change the accessible role of info boxes to note (#2022)
The `alert` role is intrusive and should only be used when the user's immediate attention is required.

Given that this boxes only provide additional content to the current paragraph,
the `note` role seems more appropriate.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-12-10 22:59:29 +00:00
Kévin Commaille 7867ebb250
Remove type and language attributes of script element (#2021)
The `type` attribute is not needed when the content is JavaScript,
and the `language` attribute is deprecated.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-12-10 22:57:13 +00:00
Kévin Commaille 1accb9e93f
Optimize generated CSS by removing unused selectors (#2008)
Hugo generates stats about the HTML elements, IDs and classes that can be found in the website,
and we post-process the rendered CSS with postcss-purgecss that uses those stats to remove unused selectors.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-12-10 22:55:14 +00:00
Kévin Commaille 54d872e19b
Fix added-in Matrix spec version for report room endpoint (#2028)
See #1938 where they were incorrectly marked as 1.12 instead of 1.13.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-12-09 10:13:36 -05:00
Richard van der Hoff 075a98d619
Add hyperlinks to endpoints (#2016)
... because there's nothing more infuriating than someone talking about an
endpoint, then having to search through 150 pages of spec for it.
2024-12-09 11:03:53 +00:00
Denis Kasak 336b855d7a
Clarify rule 4.3.1 of the auth rules in room version 11 (#2024)
Signed-off-by: Denis Kasak <dkasak@termina.org.uk>
2024-12-04 11:40:27 -05:00
Kévin Commaille 8ab2988824
Remove reply fallbacks (#1994)
As per MSC2781.
2024-11-29 09:44:07 +00:00
Kévin Commaille 7ec9b7f2e1
Restore heading self links (#2007)
It was a change I did not notice when upgrading Docsy from 0.8.0 to 0.11.0. Docsy changed the way heading self links are generated: they used to be rendered with JS and now they use a Hugo render hook.

This means two things:
- We need to enable them explicitly by overriding the `_default/_markup/render-heading.html` template.
- We need to add the self heading ourselves to headings that are not rendered by Hugo, i.e. HTML headings that we create ourselves.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-11-29 09:38:55 +00:00
Kévin Commaille f64eec5a93
Use json instead of json5 for syntax highlighting (#2017)
* Use json instead of json5 for syntax highlighting

Chroma, the library used for syntax highlighting in Hugo, does not support JSON5 so those code blocks were not highlighted.
However it supports comments in JSON so they are highlighted correctly in the rendered spec.

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-11-28 15:49:35 +01:00
Richard van der Hoff f8119f5336
Remove distinction between StateFilter and RoomEventFilter (#2015)
They are exactly the same type, so let's combine their tables together.
2024-11-27 17:11:39 +01:00
Kévin Commaille c5eac010be
Fix changed-in partial when used with multiple paragraphs (#2006)
When used with a text that includes multiple paragraphs, the partial created invalid HTML by nesting `<p>` elements.
It also changed the rendering by making "Changed in vX.XX:" a separate paragraph, when it is inline with a single paragraph.

To change that we do as with "Required" and add "Changed in vX.XX:" to the text before it is rendered, making it inline with the first paragraph.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-11-26 17:53:52 +00:00
Kévin Commaille f3130f70e6
Fix regression introduced when inlining "Required" (#2005)
If the description is not set in the object definition, Hugo generates a weird string after "Required": `%!s(<nil>)`.

To avoid that, we default the description to an empty string when it is not set.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-11-26 17:51:24 +00:00
Kévin Commaille c16788f991
Remove trailing slash on void HTML elements (#2009)
According to the W3C's HTML validator, trailing slashes in void-element have no effect,
and might interact badly in some cases.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-11-20 18:21:25 -05:00
Kévin Commaille 69e162e5fe
Fix author links in the proposals lists (#1997)
Links were broken since the upgrade of the hugo version.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-11-20 12:33:22 +00:00
Kévin Commaille d67dd88457
Clean up unused CSS classes in openapi/render-operation partial (#2003)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-11-19 22:13:12 +00:00
Kévin Commaille b4c52ab7bd
Use a proper favicon (#2001)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-11-19 22:08:45 +00:00
Kévin Commaille 0657cc1848
Fix error in ToC script at the bottom of the page (#2002)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-11-19 22:06:20 +00:00
Kévin Commaille 0ce83512fc
Update Inter font and set display: swap (#2000)
The version of Inter is updated to use a variable font, which is supported widely among modern browsers.

Using `display: swap` means that the browser will render the text of the spec even before Inter is loaded, making the website appear to load faster on mobile.

Allow the browser to use the local Inter font if it exists.
2024-11-19 22:01:27 +00:00
Kévin Commaille 9882d95775
Improve the quality of the rendered diagrams (#1999)
The first commit allows to lazy-load the diagrams, which should improve the loading time of the CS API on mobile. In the process it also improves the alt text of the images.

The second commit serves the diagrams as high-resolution WebPs. Encoding a high resolution diagram as WebP gives a file of approximately the same size as the lower resolution PNG. For maximum compatibility we also serve them as a lower resolution WebP and a fallback PNG. WebP was chosen because it is one of the export formats of draw.io/diagrams.net, and it is widely available in modern browsers.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-11-19 21:41:45 +00:00
Kévin Commaille d5c56a4f17
Upgrade docsy to 0.11.0 and hugo to 0.139.0 (#1996)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-11-19 21:40:34 +00:00
Kévin Commaille c5d7eb7a2d
Add PATCH and HEAD to the allowed HTTP methods in CORS responses (#1995) 2024-11-14 11:51:06 +00:00
Kévin Commaille bf8dee74eb
Fix relative URLs when serving the specification with a custom baseURL (#1984) 2024-11-14 11:11:34 +00:00
Kévin Commaille b1f66d1b71
Improve the JS script to highlight the current ToC entry (#1991)
The code relied on an IntersectionOberver, so the ToC was only updated when a heading was in the viewport.
It meant that if we jumped to a part of the text that has no heading, the ToC would still point to the old entry.

The new code looks for the correct heading when the view is scrolled so the correct entry is always selected.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-11-12 22:53:46 +00:00
DeepBlueV7.X 9799b892de
Clarify parameter definition for third-party location lookups (#1947)
While 1405184765 redefined most fields to
be the appropriate object type, it missed one of them.

Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
2024-11-12 22:24:20 +00:00
Johannes Marbach 74e8be3fd9
Clarify that pusher URLs have a fixed path (#1974)
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2024-11-07 14:56:53 +00:00
Kévin Commaille 909c4614ac
Clarify formats of string types for the GET /.well-known/matrix/support endpoint (#1978) 2024-11-06 15:16:34 +00:00
Benjamin Bouvier 6cd7038d01
Clarify that the async upload endpoint will return 404 in some cases (#1983) 2024-11-06 11:28:47 +00:00
Kévin Commaille e0bd054373
Clarify formats of string types for the POST /_matrix/client/v3/login endpoint (#1980)
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2024-11-06 11:14:24 +00:00
Kévin Commaille f730987da6
Clarify format of string type for m.login.terms_params (#1979) 2024-11-06 10:49:38 +00:00
Kévin Commaille 1e0919ad12
Rename custom-formats.yaml to string-formats.yaml (#1977)
It does not contain only custom formats, so the name didn't fit anymore.
Update also the docs to reflect that.
2024-10-30 22:30:31 +00:00
Johannes Marbach 88f0c56ad9
Clarify that servers must forward custom keys in PusherData (#1973)
Relates to: #921
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-10-30 10:33:44 +00:00
Srinjoy Sen Chowdhury 0b4d1c0237
Add 403 error response to federation/v1/state_ids (#1926)
fixes #1912 by adding a 403 error response to /_matrix/federation/v1/state_ids/{roomId}

Signed-off-by: Srinjoy Sen Chowdhury  <srinjoysen123@gmail.com>
2024-10-30 10:30:05 +00:00
Kévin Commaille 611d6c3e7e
Always use % delimiter for added-in and changed-in shortcodes (#1975)
The `<>` delimiters are not necessary for the shortcode to be rendered inline, and in some cases they break some expectations: a shortcode that is separated from other text to be in its own paragraph is not actually wrapped by a `p` element, breaking the spacing between paragraphs.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-10-30 10:09:38 +00:00
Kévin Commaille 3b8f3a09aa
Remove CSS workaround for scroll-anchoring (#1976)
Docsy does not set the `height` anymore, but the `min-height`, which doesn't seem to affect scroll-anchoring.
See f22a70ec56

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-10-29 22:58:53 +00:00
Kévin Commaille 1f5f2c4d83
Enforce consistent vertical spacing between paragraphs in endpoint definitions (#1969)
Use `p` elements to separate paragraphs instead of `br` and enforce single paragraphs to be wrapped in `p` for consistency.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-10-29 15:22:15 +00:00
Johannes Marbach 32f41f88bc
Document schema of PusherData in push gateway API (#1968)
Fixes: #910
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-10-29 15:10:59 +00:00
Kévin Commaille b1ebbb9a1c
Rename .htmltest.yaml to .htmltest.yml (#1985)
* Rename .htmltest.yaml to .htmltest.yml

This is almost nothing but htmltest expects this exact name by default, so when running the
binary locally, it avoids to have to bother with providing the name of the config file.

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-10-28 14:21:20 +00:00
Johannes Marbach 285cd2bda2
Sort VoIP events semantically (#1967) 2024-10-15 17:22:40 +01:00
Kévin Commaille 69d7dbf703
Remove span element from added-in and changed-in shortcodes (#1972) 2024-10-14 18:04:36 +01:00
Kévin Commaille 48afe4faa5
Remove withVersioning parameter of rver-fragment shortcode. (#1971) 2024-10-14 18:00:49 +01:00
Kévin Commaille 1e47d7ec48
Remove boxes/added-in-paragraph shortcode (#1970) 2024-10-14 17:57:33 +01:00
Johannes Marbach ae3673d2ef
Remove note about reference implementations (#1966)
Fixes: #1962
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-10-10 14:10:55 +01:00
Johannes Marbach c74105db43
MSC4151: Reporting rooms (#1938) 2024-10-10 10:53:44 +01:00
Travis Ralston e972e29429 Return to unstable 2024-10-07 13:36:24 -06:00
Travis Ralston 9e6233d0dd v1.12 changelog 2024-10-07 13:32:17 -06:00
Travis Ralston 2d763b8a1f v1.12 2024-10-07 13:31:11 -06:00
Travis Ralston 634c271654 Normalize changelog 2024-10-07 13:28:42 -06:00
Johannes Marbach 871c10577e
MSC4170: 403 error responses for profile APIs (#1867)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-10-07 10:45:17 +01:00
Kévin Commaille 27b4cdcc9e
Add the deprecated field to OpenAPI definitions and JSON Schemas (#1940)
I did a quick search of the "deprecated" word in the data folder and set the
field where the description says that a property is deprecated.

This does not change the rendering of the spec because the
descriptions already talk about the deprecation,
but it can be used by tools that rely on the OpenAPI definitions and JSON Schemas.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-10-01 14:39:57 +01:00
Travis Ralston 9486237f1b
Allow guests to access media (MSC4189) (#1959)
MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/4189
2024-09-30 11:36:17 -06:00
Johannes Marbach c8ad740ba4
Use relative permalink to redirect to latest changelog (#1956) 2024-09-30 17:29:55 +01:00
Johannes Marbach 938022b1ff
Exclude checklists from alternate output formats (#1954) 2024-09-30 13:16:40 +01:00
Johannes Marbach 00af39ecca
Provide MD checklists for the changelog (#1937)
* Output changelog checklists

Fixes: #1682
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-09-27 13:00:00 +01:00
Johannes Marbach ace2712719
MSC3939: Account locking (#1934) 2024-09-26 14:19:45 +01:00
Johannes Marbach 2cbf6067a6
Use "server name" instead of "DNS name" to avoid confusion (#1946)
Fixes: #1911

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-09-11 08:56:14 -04:00
Johannes Marbach 75e77b96ff
Additional keys in GET /capabilities don't have to be objects (#1945) 2024-09-11 13:51:27 +02:00
Kévin Commaille 6d088e03a1
Add added-in shortcode for unread markers section (#1941)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-09-04 08:53:06 -04:00
Kévin Commaille 415fb43848
Specify Content-Type and Content-Disposition usage in the media repo (#1935) 2024-09-02 10:41:33 +02:00
Johannes Marbach 7f2f100420
MSC4156: Migrate server_name to via (#1933)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-08-28 13:42:30 +01:00
Johannes Marbach 215982abc2
Use dedicated fonts for better support of mathematical symbols (#1919) 2024-08-19 13:11:05 +01:00
Kim Brose dc017c2dd3
Document that the spec uses RFC 2119 (#1928)
Signed-off-by: HarHarLinks <2803622+HarHarLinks@users.noreply.github.com>
2024-08-15 10:31:50 +01:00
Tulir Asokan 87de68c35e
Fix required fields in /_matrix/key/v2/server response schema (#1930)
Fixes #613
2024-08-14 20:51:12 +03:00
Kim Brose c6d974975e
Improve wording of the unauthenticated media deprecation box (#1916) 2024-08-14 17:36:33 +01:00
Johannes Marbach f9c4aeeea4
Remove leftover origin field from unsigned PDU example (#1918) 2024-08-12 12:01:54 +01:00
Johannes Marbach c2fd278da0
Additional .well-known keys don't have to be objects (#1920) 2024-08-12 10:53:18 +01:00
Patrick Cloke 56914b72ef
Remove references to device-specific push rules. (#1842)
Device-specific push rules have never been implemented and aren't properly specified.
2024-08-01 10:33:41 -04:00
Johannes Marbach 9bac118aec
Clarify that the User identifier object in POST /_matrix/client/v3/login contains additional properties that depend on the identification type (#1909)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-07-30 17:37:49 +00:00
Johannes Marbach 5d91b628c9
Don't mention that GET /_matrix/client/v3/profile/{userId} can return additional properties because this is true for almost every endpoint (#1910)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-07-30 18:37:29 +01:00
Josh Simmons 2017515ca9
update DCO, no legal name needed (#1914)
* update DCO, no legal name needed

* add a changelog entry, if needed

* add necessary fullstop for style guide

---------

Co-authored-by: Josh Simmons <git@josh.tel>
2024-07-25 17:41:12 -06:00
Johannes Marbach d9c447e194
Document m.get_login_token capability (#1908) 2024-07-19 11:13:10 +01:00
Matthias Ahouansou 149d5d2a95
remove confusing description of restricted rooms with no valid conditions (#1903) 2024-07-17 14:26:28 +00:00
Johannes Marbach c8eb7f5526
Document the removal changelog category (#1907)
* Document the removal changelog category

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>

* Add changelog

---------

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-07-16 18:15:44 -04:00
Johannes Marbach cbe8092d8a
Spec for MSC2867 (Marking rooms as unread) (#1895)
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2024-07-15 14:38:57 +01:00
Johannes Marbach 40d5e48716
Add missing references in capabilities table (#1897)
* Add missing references in capabilities table

Fixes: #1548
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>

* Add changelog

---------

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-07-10 12:13:37 -04:00
Johannes Marbach b1349dd06f
Remove the deprecated name attribute on HTML anchor elements (#1870)
* Remove the deprecated name attribute on HTML anchor elements

Fixes: #1790
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>

* Add changelog

* Update content/client-server-api/modules/instant_messaging.md

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

* Update content/client-server-api/modules/instant_messaging.md

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

* Update changelogs/client_server/newsfragments/1870.deprecation

* Rename 1870.deprecation to 1870.removal

---------

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Hubert Chathi <hubertc@matrix.org>
2024-07-09 23:44:26 -04:00
Johannes Marbach e4589bbc8a
Clarify that dont_notify and coalesce MUST be gracefully ignored (#1890) 2024-07-09 21:35:57 -04:00
Tulir Asokan 2261c03bcd
Clarify "real name" in contributor requirements (#1886)
This updates the sign-off requirements to match what most other
matrix-org and element-hq repos already have. The change was first made
in synapse: https://github.com/matrix-org/synapse/pull/3467

Signed-off-by: Tulir Asokan <tulir@maunium.net>
2024-07-09 19:36:55 +03:00
Johannes Marbach 5abc31111f
Clarify arguments of window.matrixLogin.onLogin (#1905) 2024-07-08 07:51:27 -04:00
Johannes Marbach e53e6ea876
Fix callback function for fallback login (#1899) 2024-07-05 06:54:42 -04:00
davidegirardi 7d94efe136
Spell out secure secret storage and sharing (#1875)
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
2024-07-03 15:00:01 +01:00
Stuart Mumford 7bbc6a0b38
Fix markup syntax in v2 state res (#1896)
Signed-off-by: Stuart Mumford <stuart@cadair.com>
2024-07-02 15:52:26 +01:00
Johannes Marbach d528ff684b
Fix minor typos in third-party networks module (#1892) 2024-06-28 08:14:32 -04:00
Johannes Marbach d7299b5a32
Rename and sort the modules in the feature profiles table for easier skimming (#1855)
* Rename modules to match section titles.

* Sort the table by requiredness, then alphabetically by module name.
2024-06-26 11:53:28 -04:00
Johannes Marbach 7eda6ad299
Improve recommendation for how to form transaction IDs (#1888)
Fixes: #1706
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-06-25 15:55:46 +01:00
Johannes Marbach 7820771fdd
Clarify that room avatars cannot be encrypted (#1871)
Fixes: #562
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-06-25 15:40:21 +01:00
Travis Ralston 9f2891d95c Return to unstable 2024-06-20 10:25:12 -06:00
Travis Ralston 1fc8f8856f Matrix 1.11 2024-06-20 10:20:50 -06:00
Travis Ralston bed4ad589e Queue Matrix 1.11 2024-06-20 10:20:30 -06:00
Kévin Commaille e2cb3a739a
Fix ToC of spec proposals (#1885)
* Fix ToC of spec proposals

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-06-20 16:20:16 +00:00
Kévin Commaille 3af77f0cb4
Fix the table of content for room versions (#1884)
* Fix ToC for room versions pages

Like for the cs-module shortcode, use .RenderShortcodes
instead of .Content for the rver-fragment shortcode,
so the headings are detected by Hugo.

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

* Change the way "this version" is detected in added-in and changed-in shortcodes

Now that we use .RenderShortcodes in the rver-fragment shortcode,
we cannot remove the output of these shortcodes dynamically
because they are replaced by a temporary placeholder due to Hugo's internals.

Instead, since the `this` parameter was only used for room version,
we always use the `v` parameter and compare with the version
provided in the page's front matter.

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

* Add changelog

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

* Add version front matter for v11

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

* Update changelogs/room_versions/newsfragments/1884.clarification

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
Co-authored-by: Travis Ralston <travpc@gmail.com>
2024-06-20 15:47:09 +00:00
Kévin Commaille 18628dc5d7
Allow to specify a prefix for generated HTML IDs of API endpoints (#1882)
* Allow to specify a prefix for generated HTML IDs of API endpoints

Allows to deduplicate IDs of duplicate endpoints

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-06-20 15:39:50 +00:00
Kévin Commaille bd20d946c4
Fix the rendering of the event format for room versions 1 and 2 (#1883)
* Fix rendering of array with items using anyOf

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

* Use a single definition for Event Hash

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

* Add changelog

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

* Add ending newline

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-06-20 09:39:44 -06:00
Kévin Commaille 094e25b6cd
Ensure more uniqueness for generated HTML IDs (#1881)
* Include method in all API endpoint children's IDs

Avoids duplicate IDs for object of endpoints
that use the same path but a different method.

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

* Differentiate API endpoints' request and response children's IDs

Ensures that the objects have a unique ID compared to other parts of the endpoint.
Mostly useful for the Error type that can be used for responses with different status codes.

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

* Differentiate the names of both SessionData formats

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-06-20 09:36:33 -06:00
Travis Ralston 8ef84d1cc7 More normalization 2024-06-20 09:26:58 -06:00
Johannes Marbach 27e71fff10
Render added/changed in info on request and response content types (#1876)
* Render added/changed in info on request and response content types

Fixes: #1774
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
Co-authored-by: Kévin Commaille <76261501+zecakeh@users.noreply.github.com>
2024-06-20 09:46:33 +01:00
Kévin Commaille 5fbfdd6821
Fix generated HTML (#1880)
* Add tr as child of thead in HTML tables

It is invalid HTML for th to be the direct children of thead

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

* Remove unnecessary HTML code end tag

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

* Avoid nesting p HTML elements

A p HTML element cannot contain other block elements,
so the "parent" element is closed when the first "child" one is opened.

We need to use Page.RenderString with options
to force Hugo to keep the wrapping p elements
even if the content contains a single paragraph.

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

* Add missing HTML details end tags

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

* Replace HTML a self-closing tag with start and end tags

The a element start and end tags are mandatory.

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

* Replace obsolete HTML name attribute with id

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

* Add changelog

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-06-20 09:42:40 +01:00
Travis Ralston 560f29cff3
Update release documentation (Q2 2024 edition) (#1759)
* Update release documentation (Q2 2024 edition)

* changelog

* Drop the ranges we don't follow

* Don't discourage maintenance

* Patch releases just aren't a good idea
2024-06-20 04:08:20 +00:00
Travis Ralston 9c46fa3f35 Normalize the changelog for Matrix 1.11 2024-06-19 21:52:21 -06:00
Kévin Commaille 4e32fca05f
Clarify that an access token is optional on /account/password and /account/deactivate (#1843)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2024-06-18 16:59:26 +01:00
Johannes Marbach 6dfab46268
Fix typo in SRV delegation (#1877)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-06-18 10:20:57 -04:00
Johannes Marbach 7773716d18
Clarify that asynchronous media upload requires authentication (#1872)
Fixes: #1554
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-06-14 10:44:01 -04:00
Hugh Nimmo-Smith 5f47b96240
Clarify when server name is used and link to definition (#1862)
* Clarify when server name is used and link to definition

* Changelog
2024-06-14 13:34:35 +02:00
Kévin Commaille f434fdfba7
Replace references to obsolete RFC 1341 with RFC 2046 (#1869)
* Replace references to obsolete RFC 1341 with RFC 2046

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-06-13 15:37:07 -06:00
Johannes Marbach 672af37cbd
Clarify that relations recursion should be capped at a certain depth (#1854) 2024-06-13 14:34:54 -04:00
Travis Ralston f38b052569
Use RFC 2119 keywords across the content repository spec (#1861)
* Use RFC 2119 keywords across the content repository spec

* changelog
2024-06-13 12:27:06 -06:00
Travis Ralston 7a51ae879c
Add authenticated media (MSC3916) (#1858)
* C2S: Deprecate now-legacy endpoints

* C2S: Fix MXC URI code block while we're here

* C2S: Describe the authentication and deprecation requirements

* C2S: Intro the upload/download endpoints differently

* C2S: Literally copy/paste the `content-repo.yaml` spec

* C2S: Drop `/upload` and `/create` because we aren't replacing them today

* C2S: Fix notes while we're here

* C2S: Update metadata for new endpoints

* C2S: Add authentication to new endpoints

* C2S: Drop `allow_remote` and `allow_redirect` on new endpoints

* C2S: Append backwards compatibility notes

* C2S: Decorate old media endpoints with pointers to the new ones

The server-server spec might have a harder time linking to these, but that can be fixed with verbiage.

* C2S: Annotate IdP icon spec with media auth implications

* S2S: Modernize section text

* S2S: Create content repository API

This is largely a copy/paste of the new authed content repo API in the Client-Server API, though some keywords (like "client") have been changed. Paths and response formats have also been changed to support the federation-specific requirements.

* C2S & S2S: Add plethora of changelogs

* Reference RFC 1341

* Upgrade keywords in changed text

* Mention caching

* Cross-reference IdP icons

* Update content/client-server-api/modules/content_repo.md
2024-06-13 18:08:27 +00:00
Hugh Nimmo-Smith 4a280bcd87
Clarifications around encoding of data within verification QR codes (#1839) 2024-06-12 22:48:50 +01:00
Richard van der Hoff cd8ce97563
Minor clarifications to the "end-to-end encryption" module (#1863) 2024-06-12 22:17:37 +01:00
davidegirardi eb49b28ea9
Use environment variables in workflow (#1865)
* Use environment variables in workflow

* Add newsfragment
2024-06-12 14:14:37 +01:00
Johannes Marbach 7916032a78
Move size limits for user, room and event IDs into the appendix and clarify that the length is to be measured in bytes (#1850)
Fixes: #1826
Relates to: #1001
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-06-12 09:11:07 +01:00
Johannes Marbach 3517846916
Add missing modules to feature profiles (#1860)
* Add missing modules to feature profiles

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>

* Add changelog

---------

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-06-11 21:38:33 -04:00
Patrick Cloke da3e884aaa
Fix broken link to push rule condition kinds. (#1841) 2024-06-11 21:42:46 +00:00
Johannes Marbach 520b8398d8
Add missing word header (#1852)
* Add missing word header

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>

* Add changelog

---------

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-06-11 17:36:24 -04:00
Kévin Commaille 784b8984f3
Generate ToC with Hugo rather than JavaScript (#1851)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-06-11 22:24:23 +01:00
Patrick Cloke a7a7eadf2c
Clarify when an event is returned from /send_join. (#1840) 2024-06-11 13:02:46 -04:00
Kévin Commaille acec09f567
Do not add empty arrays to examples (#1849) 2024-06-11 17:03:53 +01:00
Kévin Commaille c4b4c896b7
Replace references to RFC7235 and RFC7230 with references to RFC9110 (#1844)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-06-11 16:59:29 +01:00
reivilibre 2f528029c9
Note that /logout doesn't take a body (#1644) 2024-06-11 15:22:12 +01:00
Travis Ralston 08bc8e8a1f
Fix YAML syntax in SCT release template (#1856)
* Fix YAML syntax in SCT release template

* changelog
2024-06-10 12:40:31 -06:00
Travis Ralston 0a9ab956bd Revert "Fix issue template for releases"
This reverts commit 5704276981.
2024-06-10 12:16:14 -06:00
Travis Ralston 5704276981
Fix issue template for releases 2024-06-10 12:15:01 -06:00
Richard van der Hoff 96057638ce
Spec unsigned.membership property, per MSC4115 (#1847) 2024-06-10 12:17:27 +00:00
Johannes Marbach 1b40a7789b
Fix typos around relations recursion (#1853) 2024-06-10 07:26:50 -04:00
Johannes Marbach 7d5b506555
Remove extra preposition in room version 11 description of redactions (#1848)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-06-07 12:13:32 -04:00
Johannes Marbach 5a86e384dd
Clarify that per-request UIA for /login/get_token is an RFC 2119 MUST requirement (#1846)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-06-07 08:34:34 +00:00
Kévin Commaille 1e303b3bbc
Do not require UIA when first uploading cross-signing keys (#1828)
As per MSC3967.
2024-06-06 11:06:32 +01:00
Matthew Hodgson e15a36b0a1
MSC4132: deprecate linking to events in rooms identified by alias (#1823) 2024-06-04 16:20:23 +01:00
Matthias Ahouansou 7ff785fc38
Clarify that the event field of the send_join is only required when performing a restricted join (#1834) 2024-06-03 14:09:40 +01:00
Johannes Marbach a17550648c
Fix typo in moderation policy lists spec (#1832) 2024-05-31 11:12:31 +01:00
Richard van der Hoff 722c2b1e9a
Clean up pull request template (#1831)
As far as I can tell, these header files only encourage people to create
badly-formatted PRs.

Also we only have one template so let's give it the default name.
2024-05-31 10:02:04 +01:00
Matthias Ahouansou 49765e0e0a
Clarify that redaction events are subject to auth rules (#1824)
Signed-off-by: Matthias Ahouansou <matthias@ahouansou.cz>
2024-05-29 09:42:19 +01:00
Kévin Commaille ea781ef7b2
Spec markup for mathematical messages (#1816)
* Spec markup for mathematical messages

As per MSC2191.

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

* Add changelog

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

* Add warning box

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

* Improve warning

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

* Add links

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-05-28 16:21:46 -04:00
Sumner Evans 500e83b9b7
e2ee/qr: clarify that the device's Ed25519 signing key should be used (#1829)
Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
2024-05-28 17:36:50 +01:00
Kévin Commaille 3674985dd6
Factor out the common definitions of the content repo APIs and add new formats (#1822)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-05-28 15:38:39 +01:00
Matthias Ahouansou 041be547d6
Fix typo of object being spelt as "obiect" (#1827) 2024-05-24 10:43:33 -06:00
Richard van der Hoff dac867dd6a
Rename "recovery key" to "backup decryption key" (#1819)
Also, some other editorial improvements, including factoring out our two definitions of the same key encoding algorithm.

Co-authored-by: Travis Ralston <travisr@matrix.org>
2024-05-14 09:35:42 +01:00
Kévin Commaille b0df8e7fb5
Use patternProperties in more places with supported formats (#1813)
Allows to have more places where the property name's type is better defined.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-05-08 13:59:17 +00:00
Richard van der Hoff df1e799c51
Spec terms of service at registration (MSC1692) (#1812)
Spec for matrix-org/matrix-spec-proposals#1692

Co-authored-by: Hubert Chathi <hubertc@matrix.org>
2024-05-08 13:51:18 +00:00
Andrew Morgan f4b34ba962
Note that whitespace around Authorization param commas is allowed (#1818) 2024-05-08 12:22:26 +00:00
Kévin Commaille 98d85cf421
Add support for rendering string formats (#1814)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-05-07 20:50:36 -04:00
Richard van der Hoff 48f4c4954f
Include information about additionalProperties in object tables (#1798)
Currently, if we have an object which has additionalProperties in addition to properties, that information gets lost. This PR seeks to address that.
2024-05-02 11:10:16 +01:00
Matthias Ahouansou eea3dfa969
Mention notifying AS for sender_localpart events (#1810)
Signed-off-by: Matthias Ahouansou <matthias@ahouansou.cz>
2024-05-01 10:48:11 +01:00
Kévin Commaille 2d18aac201
Use OneTimeKeys schema (#1800)
This was commented prior to the
port to OpenAPI 3.1 for technical reasons (#1127).
Now we can use it just fine.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-30 18:13:05 +01:00
Kévin Commaille 1fc25d8d48
Do not use title for objects containing only additionalProperties or patternProperties (#1801)
Previously, titles would appear that do not link to a subchema definition.
It would also mean that named subschemas would appear without being clearly referenced.

Now, the type clearly shows the nesting of objects
and subschema definitions should be clearly referenced.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-30 18:05:03 +01:00
Kévin Commaille 85ad0c767c
Render response headers (#1809)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-30 17:42:55 +01:00
Kévin Commaille 625999a039
Deprecate authentication via a query string (#1808)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-30 17:07:59 +01:00
Kévin Commaille ae70b5fcf3
Replace set-output with environment files in CI (#1806)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-30 17:02:59 +01:00
Kévin Commaille d3eca87389
Set python version for the Towncrier CI job (#1805)
Otherwise the version might change depending on the runner.
We just use the same version as other jobs.

This removes a GitHub warning.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2024-04-30 16:01:18 +00:00
Kévin Commaille d6b1d7300f
Update most CI actions (#1803)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-30 16:57:20 +01:00
Kévin Commaille b0115a9613
Update typos CI action (#1804)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-30 16:56:03 +01:00
Kévin Commaille a0bc6e7f83
Add anchors in definition shortcode (#1802)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-30 16:52:23 +01:00
Kévin Commaille 7201042894
Fix anchors for schemas under oneOf (#1799)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-24 12:53:49 +01:00
Kévin Commaille 2edfb21d5d
Add support for pattern formats for patternProperties (#1796)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-24 12:42:34 +01:00
Kévin Commaille 26ce3929b4
Clean up unecessary allOfs (#1797)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-23 17:07:24 +01:00
Kévin Commaille 1095179374
Upgrade version of Hugo used to build the spec in CI (#1794)
* Upgrade version of Hugo used to build the spec in CI

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

* Escape HTML manually in property-type partial

The behavior of `delimit` changed,
so Hugo doesn't recognize "safe" HTML passed to it anymore, so it escapes nested HTML links.

To fix that we escape the schema data manually
and consider the output of the partial as "safe".

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-23 16:30:21 +01:00
Richard van der Hoff 2b5f990f60
Factor out common definition of Tag type (#1793)
... and remove spurious `additionalProperties: true`
2024-04-17 13:51:24 +01:00
Kévin Commaille e82829d4a2
Make resolve-allof partial recursive (#1787)
Makes it easier to use, like resolve-refs. It just needs to be called once.

Fixes an issue with m.call.* events not displaying the common fields

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2024-04-17 09:29:34 +01:00
Richard van der Hoff 073ce659df
Define opaque identifier grammar (#1791)
Since we already have three of these, and I'm about to add a fourth, let's pull
it out to a common definition.

We could, of course, keep defining the grammar each time it's used, but
defining it in an appendix helps us be consistent for future API design.
2024-04-17 09:22:06 +01:00
Kévin Commaille f4e7b2aa97
Fix property type resolution in render-object-table (#1789)
The split was not clear between property-type and type-or-title,
so it was not obvious which partial should be called for recursion.
That resulted in an error where type-or-title was only called for objects and array items, even if it also resolves
arrays of types.

This makes the split clearer. property-type must be called for any schema,
and object-type-or-title is only called for object schemas.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-16 18:25:33 +01:00
Kévin Commaille 521e555cf6
Bump minimum Hugo version in README (#1788)
To match the one in config.toml

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-16 18:00:06 +01:00
Kévin Commaille a81b720151
Upgrade CI scripts dependencies (#1786)
Will allow us to benefit from future fixes in JSON Schema validation.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-16 17:59:12 +01:00
Richard van der Hoff becc667672
Update github-labels.rst (#1781)
Fix formatting
2024-04-10 07:16:01 +01:00
Kévin Commaille 2678370f2c
Simplify uses of resolve-refs partial (#1773)
* Use the resolve-refs partial as soon as possible

Call it right after accessing the site.Data,
since it is recursing it will solve all references in the tree.
That way we don't need to wonder where to call it,
we trust the validators that the refs will be used in the right place.

* Enable strict $ref rule in OpenAPI validator

* Document use of $ref to compose examples

* Fix schema path in event-fields shortcode

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-04-09 18:06:53 +01:00
Kévin Commaille 2ea8e0f514
Remove enum for POST /login type definition (#1776)
Since the enum is not exhaustive, improve the description of the property instead.
2024-04-09 17:27:26 +01:00
Kévin Commaille efe72d3b26
Fix security schemes in OpenAPI definitions (#1772) 2024-04-09 18:12:30 +02:00
Johannes Marbach ee1a169121
Arrange rows in .basic-info tables vertically when horizontal space is constrained (#1771)
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2024-04-09 13:31:46 +00:00
Kévin Commaille e74c7c1540
Fix Hugo warnings (#1775) 2024-04-09 14:18:16 +01:00
Travis Ralston d547154c91
Spec ?animated on /thumbnail (#1757)
* Spec `?animated` on `/thumbnail`

* v3*

* v1.11
2024-04-01 15:14:42 -06:00
Johannes Marbach 8ff3623e37
Reduce whitespace on mobile viewports (#1770)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2024-03-27 09:55:01 +00:00
Kévin Commaille eb7ac353e2
Add support for muting in VoIP calls (#1755)
As per MSC3291.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-03-26 19:10:55 +00:00
Richard van der Hoff c25ff9e012
Formatting fixes in CONTRIBUTING.rst (#1769)
* Formatting fix in CONTRIBUTING.rst

* Fix link

* Create 1769.clarification
2024-03-26 11:28:31 +00:00
Michael Telatynski 083e6ef25d
Fix npm publishing being broken in CI (#1765)
* Fix `v` tag_name prefix sneaking into npm version

* Fix `yarn version` failing in CI due to no git global ident name

* Add changelog

* Rename 1765.misc to 1765.clarification
2024-03-22 18:27:42 +00:00
Travis Ralston bd122b35b0 Return to unstable 2024-03-22 10:12:10 -06:00
Travis Ralston 4e51970c55 Upgrade Hugo version on the historical spec 2024-03-22 10:06:23 -06:00
Travis Ralston f7452e2bad Matrix 1.10 2024-03-22 10:00:27 -06:00
Patrick Cloke 7c19d24e3a
Do not allow setting m.push_rules account data directly. (#1763)
* Do not allow setting m.push_rules account data directly.

* Newsfragment

* Update 1763.clarification

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

* add change notice

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

* clarify read status

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

* Fix link for push rules.

* Refer to the error response

---------

Co-authored-by: Travis Ralston <travpc@gmail.com>
2024-03-21 15:38:46 -06:00
Travis Ralston eb22fac5dc
Break out non-JSON request/response content types as tables (#1756)
* Break out non-JSON request/response content types as tables

Currently we display this as a table like "image/png|image/jpeg" and description on a single line, but we're using a table. This breaks the join out to individual rows.

* changelog
2024-03-21 14:45:07 -06:00
Kévin Commaille 6700f5ddd1
Disable smooth scrolling (#1762)
It was not enabled before the docsy update and it messes with
the TOC highlighting during the transition.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-03-21 11:03:07 +00:00
Will Hunt e5aa5235fe
MSC4041 - Add Retry-After header notice. (#1737) 2024-03-20 09:44:47 +00:00
Kévin Commaille 4247cff2fa
Deprecate the font HTML tag (#1739)
* Deprecate the `font` HTML tag

Rationale:
MSC4077 allows to deprecate HTML tags
that are deprecated in the WHATWG standard,
if they can be replaced by tags with the same feature.

`font` is deprecated and can be replaced by `span`
with the `data-mx-bg-color` and `data-mx-color` attributes.

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

* Add changelog

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

* Add deprecation info box

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-03-19 15:51:59 -06:00
Travis Ralston 15663d405e Changelog normalization for Matrix 1.10 2024-03-19 15:47:06 -06:00
Kévin Commaille 44c16918fd
Add server support discovery endpoint (#1733)
* Add server support discovery endpoint

As per MSC1929.

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

* Add changelog

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

* Fix example indentation

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

* Apply suggestions from code review

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

* Fix line length

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

* Add link to definiton of Matrix User ID

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

* Fix copyright

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

* Remove HTTP from supported protocols

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
Co-authored-by: Travis Ralston <travpc@gmail.com>
2024-03-19 15:32:17 -06:00
Kévin Commaille 575c84d431
Fix event-group shortcode for changes in resolve-refs partial (#1754)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-03-19 19:02:13 +00:00
David Baker 848c1e0348
Spec for MSC3981 (#1746)
* Spec for MSC3981

This writes up https://github.com/matrix-org/matrix-spec-proposals/pull/3981

Hopefully this is relatively straightforward, apart from having to add
the parameters and response field in all three places. I tried to factor
these out but it seems references just aren't supported in the right
places currently (see https://github.com/matrix-org/matrix-spec/pull/1745
for my efforts). Path parameters can't be optional, so it can't be done
that way either.

* Missed schemas

* newsfile

* Actually it clearly isn't going to support markdown, is it?

* grammar

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

* grammar

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

* Clarity

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

* Clarity

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

* Typo

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

* More clarity.

Note this is counter what the MSC actually proposed to add, but
I think it's clear that this is what it meant.

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2024-03-19 18:12:32 +00:00
David Baker bb4003afa8
Factor out all the common parameters of the various /relations apis (#1745)
Contributed by @zecakeh bd54781052.

Co-authored-by: Richard van der Hoff <richard@matrix.org>
2024-03-19 17:03:44 +00:00
Kévin Commaille 38796de79a
Add support for multi-stream VoIP (#1735)
As per MSC3077.
2024-03-19 17:02:35 +00:00
Tulir Asokan 5c96f45556
Specify that appservice login and register fail on incorrect as_tokens (#1744)
Signed-off-by: Tulir Asokan <tulir@maunium.net>
2024-03-19 14:59:00 +00:00
Kévin Commaille 4d7e33ec26
Add support for $ref URIs containing fragments in OpenAPI definitions and JSON schemas (#1751)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-03-19 14:50:49 +00:00
Hubert Chathi 0b43b5a343
Add some clarifications around implementation requirements for MSCs (#1718)
* clarification around implementation requirement, and mention new label

* add changelog

* fix typo

* Fix typos

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>
2024-03-13 11:28:30 -04:00
Johannes Marbach 6634f73bff
Add missing 'in' in SSO specification (#1748)
* Add missing 'in' in SSO specification

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>

* Use standard changelog entry for typos

---------

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2024-03-13 11:19:25 -04:00
Kévin Commaille 9068c336f4
Clarify that sdpMid and sdpMLineIndex are not required in m.call.candidates (#1742)
* Convert m.call.candidates schema to YAML

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

* Clarify that sdpMid and sdpMLineIndex are not required in `m.call.candidates`

MSC2746, merged in v1.17,
introduced the end-of-candidates candidate,
where only the `candidate` property is set to an empty string.

Besides, the [WebRTC specification](https://www.w3.org/TR/webrtc/)
says that only one of those fields is required in a normal candidate.

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

* Add changelog

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

* Link to the "End-of-candidates" section, and clarify what "empty" means

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-03-07 21:13:38 -05:00
Kévin Commaille 9fdc7ac38f
Disambiguate uses of PublicRoomsChunk` (#1740)
* Disambiguate uses of PublicRoomsChunk

Make sure that different objects don't share the same title.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-03-06 19:48:09 -05:00
Kévin Commaille a1210ff6d1
Clarify that extra fields of space hierarchy children are not required (#1741)
* Clarify that extra fields of space hierarchy children are not required

There is no `children_state` field,
the `room_type` is only set for spaces
and the description of `allowed_room_ids` says that the field can be omitted.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-03-06 19:47:28 -05:00
Kévin Commaille 542a219623
Allow /versions to optionally accept authentication (#1728)
* Allow /versions to optionally accept authentication

According to MSC2046.

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

* Add changelog

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

* Set "Requires Authentication: Optional"

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-03-06 19:30:06 -05:00
Kévin Commaille 4e1b364015
Document the deprecation policy of HTML tags. (#1732)
* Deprecate `strike` HTML tag

Replace it with `s` or `del`.

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

* Add changelog

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

* Remove strike deprecation and add added-in annotation

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

* Add link to HTML standard

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Update changelogs/client_server/newsfragments/1732.clarification

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
Co-authored-by: Hubert Chathi <hubertc@matrix.org>
Co-authored-by: Travis Ralston <travpc@gmail.com>
2024-03-03 00:11:05 +00:00
Richard van der Hoff 976ebdca2f
Update HTML templates to link to object definitions (#1724) 2024-02-28 10:39:08 +00:00
Kévin Commaille afda8b8f74
Add local user erasure requests (#1730)
* Add local user erasure requests

As per MSC4025.

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

* Add changelog

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

* Add default value

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-02-27 21:26:45 -05:00
reivilibre 2cb70e6e3d
Use a POST request in Federation request signing example (#1721)
* Use a POST request in Federation request signing example

Otherwise the GET request having a body is confusing, since it is not valid HTTP

* Newsfile
2024-02-27 19:15:21 -05:00
Kévin Commaille 38260aabcc
Fix typo in secrets module (#1734)
* Fix typo in secrets module

Introduced in #1695.

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-02-28 00:47:16 +02:00
Kévin Commaille b136b357e0
Update docsy to v0.8.0 (#1699)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-02-27 18:12:39 +00:00
Cadence Ember e2dc5a3826
strike element is deprecated, s replaces it (#1629)
* strike element is deprecated, s replaces it

* Add newsfragment
2024-02-26 15:20:47 -07:00
Kévin Commaille 4cfe2fbf8d
Use body field as media caption (#1731)
* Use `body` field as media caption

As per MSC2530.

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

* Add changelog

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

* Use `s` HTML tag in example

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

* Move changed-in annotation

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-02-26 15:15:44 -07:00
Sumner Evans 9a1f0ad532
sas: clarify ECDH process in step 12 (#1720)
Co-authored-by: Denis Kasak <dkasak@termina.org.uk>
2024-02-26 16:26:34 +00:00
Sumner Evans 6096a28984
sas: clarify HKDF calculation uses base64-encoded keys (#1719) 2024-02-26 16:24:52 +00:00
kegsay c4e69d8cb1
Clarify that invite->knock is not a valid transition (#1717)
This reverts https://github.com/matrix-org/matrix-spec/pull/1175

See https://github.com/matrix-org/matrix-spec/issues/1710
2024-02-21 14:16:40 -07:00
Hubert Chathi 170626da67
clarify otk and fallback key types in examples (#1715)
* clarify otk and fallback key types in examples

- remove unsigned curve25519 keys from examples because we don't use those for
  otks and fallback keys
- add missing `device_unused_fallback_key_types` property, which is required

* add changelog
2024-02-08 15:54:52 -05:00
Michael Telatynski 650e691a22
Fix npm release script (#1713)
* Fix npm release script

* Create 1713.misc
2024-01-17 10:16:28 -07:00
Sumner Evans 9a5cacda90
Clarify that the key backup MAC is implemented incorrectly (#1712)
* Clarify that the key backup MAC is implemented incorrectly

Due to a bug in libolm, all implementations of the
m.megolm_backup.v1.curve25519-aes-sha2 key backup algorithm incorrectly
pass an empty string through HMAC-SHA-256 to generate the `mac` property
of the `session_data`.

It was intended for the entire raw encrypted data to be passed through
HMAC-SHA-256, but the issue was caught too late in the process, and thus
we are stuck with this until a new key backup algorithm is introduced.

This commit clarifies the real-world behavior of all current
implementations.

Signed-off-by: Sumner Evans <sumner@beeper.com>
2024-01-16 14:11:44 -05:00
Samuel Loury 1d35e7aac6
Make clearer in the example that the fallback prefix sequence should be repeated for each line (#1690)
Signed-off-by: Samuel Loury <konubinixweb@gmail.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2024-01-15 12:35:06 +00:00
Richard van der Hoff 4a80df364a
Wording tweak in CONTRIBUTING.rst (#1697) 2023-12-21 18:13:26 +00:00
Richard van der Hoff 37ab151aad
Clarify secret storage format (#1695) 2023-12-11 16:29:01 +00:00
Andy Balaam a843cad285
Clarify that threads can be created based on replies (#1687)
Signed-off-by: Andy Balaam <andy.balaam@matrix.org>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2023-12-11 13:00:59 +00:00
Andy Balaam 3b2146c875
Batch receipts by thread as well as room (#1685) 2023-12-05 16:28:05 +00:00
Travis Ralston 59f8d632a3
Add step to release process to remind ourselves to reach out to Advocacy (#1680)
* Add step to release process to remind ourselves to reach out to Advocacy

* changelog
2023-11-29 10:59:23 -07:00
Travis Ralston d50929d46b Become unstable 2023-11-29 10:11:14 -07:00
Travis Ralston 0c099e3b79 Matrix 1.9 2023-11-29 10:05:20 -07:00
Hubert Chathi 62c377e19c
fallback keys should have a "fallback: true" property (#1676)
* fallback keys should have a "fallback: true" property

* add changelog
2023-11-29 09:56:57 -07:00
Andy Balaam 6fe2ff4fa7
Make clear the thread root is not in the thread (#1677)
* Make clear the thread root is not in the thread

Signed-off-by: Andy Balaam <andy.balaam@matrix.org>

* Changlog entry for thread PR 1677 - thread roots not in thread

* Fix typo

* Add formatting for code values.

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

* Reword main timeline ID paragraph

* Use close to the original wording for the 'recurse' part of the 'in the thread' definition

* Remove note about thread roots being displayed in a thread

* Define the thread root

---------

Signed-off-by: Andy Balaam <andy.balaam@matrix.org>
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2023-11-28 10:45:36 -07:00
Travis Ralston 634b24fb25 Normalize changelog for 1.9 2023-11-27 15:58:06 -07:00
No 25a9157f0a
Add event_property_is and event_property_contains props to PushConditions (#1673)
Signed-off-by: tusooa <tusooa@kazv.moe>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2023-11-16 13:25:15 +00:00
Patrick Cloke 161a4a2cfb
Federation requests must be for local users. (#1672)
This is already mentioned for /user/devices, but is not mentioned for /query/profile, /user/keys/claim, or /user/keys/query.

See GHSA-mp92-3jfm-3575 for an issue found with this in Synapse.
2023-11-14 16:15:57 +00:00
Matthew Hodgson 7b72c42ba6 put the e back into erik 2023-11-12 01:55:45 +00:00
No 91724e4aef
Fix .m.rule.suppress_notices push rule not being valid JSON (#1671)
Signed-off-by: tusooa <tusooa@kazv.moe>
2023-11-08 08:00:35 +00:00
Val Lorentz 7c19500da7
server-server-api: Fix grammar in server discovery (#1665) 2023-10-24 22:18:45 -04:00
Kévin Commaille 9fe119370b
Update typos action and fix typos (#1661)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-10-11 11:42:05 +01:00
Kévin Commaille 560d98ba9b
Add more CI checks for OpenAPI definitions and JSON Schemas (#1656)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2023-10-11 10:36:39 +00:00
Kévin Commaille c71b528148
Upgrade GitHub actions (#1660)
* Upgrade most github actions

Gets rid of warning in CI complaining about those actions
using node 12.

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

* Upgrade node version used to run scripts

Use the latest LTS

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

* Add changelog

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-10-11 11:23:16 +01:00
наб 7fb9e99071
annotion (#1658)
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
2023-10-11 06:06:06 +00:00
Kévin Commaille 72517c0f9c
Generate server-server OpenAPI definition (#1657)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-10-10 18:21:38 +01:00
Kévin Commaille 242b62ed55
Fix m.call.negotiate schema and example (#1546)
* Fix m.call.negotiate schema and example

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

* Add changelog

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

* Add lifetime back

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

* Fix lifetime description

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-10-03 22:16:53 +01:00
Kévin Commaille c3098cc55c
Remove required 'fieldname' in Protocol definition (#1646)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-10-03 21:56:44 +01:00
Kévin Commaille 9a9221d8ef
Fix schemas used for account data and presence events in GET /initialSync (#1647)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-10-03 21:55:37 +01:00
tsufeki 92cf662e3a
Fix typo in canonical JSON grammar (#1652)
Signed-off-by: Benedykt Błaszkiewicz <tsufeki@gmail.com>
2023-10-02 12:13:23 +00:00
Kévin Commaille e40d9ca186
Fix rendering of m.receipt event in Client-Server API (#1637)
... and other improvements

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2023-09-27 12:42:14 +00:00
Kévin Commaille 5672bdbab7
Fix enum types in JSON schemas (#1634)
`type: enum` does not exist, as an enum can be of any type.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-09-27 13:29:14 +01:00
Michael Telatynski f11c5600a2
Fix npm package release automation (#1648) 2023-09-26 18:08:02 +00:00
Kévin Commaille 99e2ff4927
Replace all mentions of Swagger by OpenAPI (#1633)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-09-19 18:26:07 +01:00
Kévin Commaille df3f0af5d4
Fix schema of m.mentions object (#1635)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-09-19 16:59:00 +01:00
Kévin Commaille 96f88e035c
Fix schema of m.receipt EDU (#1636)
It was missing a nesting level for the user ID -> user read receipt map.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-09-19 16:52:18 +01:00
Mohit Kumar Patel 46447e0287
add "case sensitive" to /publicRooms (#1638) 2023-09-19 14:59:58 +00:00
Kévin Commaille 044a78730e
Clarify that an m.room.name event with an absent name field is not expected behavior (#1639)
Fixes #1632

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-09-19 15:39:07 +01:00
Paarth Shah 838dec272c
Clarify that via is required for m.space.parent and m.space.child as per MSC1772. (#1618) 2023-09-05 15:29:54 +01:00
Patrick Cloke 5e938f2b83
Document .m.rule.suppress_edits push rule (MSC3958). (#1617) 2023-09-05 14:38:05 +01:00
heinrich5991 a1b832960c
Clarify that Unix timestamps disregard leap seconds since 1970 (#1627)
Fixes #1626.
2023-08-24 06:11:47 +00:00
Travis Ralston ca456a4f53 Reset for development 2023-08-23 09:44:40 -06:00
Travis Ralston 529cbf4ffc Matrix 1.8 changelog 2023-08-23 09:24:08 -06:00
Travis Ralston 7f8606eb6c Matrix 1.8 2023-08-23 09:23:14 -06:00
Travis Ralston 7aaeac0760 Update data-definitions
Following f65007476b
2023-08-22 12:04:56 -06:00
Weblate f65007476b Merge branch 'origin/main' into Weblate. 2023-08-22 12:03:16 -06:00
Travis Ralston 06298e4d8d Normalize changelog for Matrix 1.8
See https://github.com/matrix-org/matrix-spec/issues/1614
2023-08-22 10:05:28 -06:00
Travis Ralston 86ab57ec4f
Specify IANA-registered service name (MSC4040) (#1624)
* Specify MSC4040

* add changelog

* Fix flow of steps 4 and 5
2023-08-22 09:50:54 -06:00
Mohit Kumar Patel 4f8b8a746c
Switch to ordered list for server name resolution steps (#1623)
* Update server-server-api.md

I have updated the list of Resolving server names in step 3 from unordered list to ordered list. Because we care about its order

* Create 1567.clarification

* Delete 1567.clarification

* Create 1623.clarification

* Update 1623.clarification
2023-08-19 15:42:59 -06:00
Michael Telatynski c0babbfc13
Create @matrix-org/spec npm package containing sas-emoji.json (#1620)
* Create packages/npm @matrix-org/spec npm package containing spec-emoji

* Initial workflow script

* Add newsfragment

* Add docs

* npm publish doesn't like symlinks, yarn does :((
2023-08-18 09:56:55 -06:00
Patrick Cloke 4abea9a6ca
Add room version 11 (#1604)
* Remove duplicate words.

* Add information on room version 11.

* Note some event changes.

* Newsfragment

* Fix-up event schema.

* Apply suggestions from code review

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

* Fix 'new in this version'.

* Clarify creator field.

* Fix-up event format & examples.

* Move the Redactions section to the client section.

* Reference the sender instead of the creator.

* More links

* Even more links.

* Fix order of headers.

* Fix typos.

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

* Clarify description of creator.

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

* Clean-up intro paragraphs for redactions.

* Clean-up examples and language.

* Review comments.

* FIx-up markup tags.

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2023-08-15 00:18:45 -06:00
Will Hunt 1b69e03793
Add spec for MSC2449: Require users to have visibility on an event when submitting reports (#1517)
* Add MSC2249 support

* changelog

* Add a line on verification

* Changes based on review feedback

* Apply suggestions from code review

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

* move tags field to the bottom of report_content.yaml

* fix duplicated content

now how did that happen

* fix up the 404 response schema

it wasn't displaying correctly in the rendered spec otherwise

* remove erroneous schema reference

* 1.7 -> 1.8

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

---------

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Andrew Morgan <andrew@amorgan.xyz>
2023-08-15 00:18:06 -06:00
Richard van der Hoff 05ca6c7392
Remove mention of default port with SRV records (#1615) 2023-08-10 10:19:53 +01:00
Richard van der Hoff f5035b8e02
Fix up attribution
Per request at https://github.com/matrix-org/matrix-spec/pull/1601#discussion_r1269035798
2023-07-20 08:44:56 +01:00
Martin Fischer 1a11a7b998
Use auto table-layout on desktop (#1601)
Signed-off-by: Martin Fischer <martin@push-f.com>
2023-07-20 07:23:16 +00:00
Martin Fischer 4f39ad2a24
Add comment about Docsy fork to .gitmodules (#1600) 2023-07-19 09:43:08 +01:00
Kévin Commaille 639caf057d
Fix rendered changelog with new version of towncrier (#1598)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-07-18 17:52:38 +01:00
Kévin Commaille 50fe89d74b
Fix definition of response of POST /_matrix/federation/v1/user/keys/claim (#1559)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-07-18 10:55:03 +01:00
Vladimir Panteleev 746524928c
Fix grammar in client-server-api intro (#1597) 2023-07-12 13:04:32 -04:00
Michael Telatynski 3ae6bb47d8
Update end_to_end_encryption.md (#1596) 2023-07-12 08:52:30 +01:00
Kévin Commaille 1405184765
Fix schema of custom fields in query for appservice API (#1584)
* Fix schema of custom fields in query for appservice API

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

* Add changelog

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

* Remove ellipses

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-07-05 18:18:58 +02:00
Hubert Chathi 67c9f814e0
fix description of MAC calculation (#1590) 2023-07-04 18:54:55 -04:00
Kévin Commaille bed9223610
Make sure examples types match schema in definitions (#1563)
* Make sure examples types match schema in definitions

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

* Add changelogs

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

* Add double quotes around URL

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-07-04 12:32:47 -06:00
Patrick Cloke 6521411547
Allow + in Matrix IDs. (#1583) 2023-07-04 14:40:43 +01:00
Tony Garnock-Jones e9acece3ec
Cope with negative-zero, and give an example of negative-zero and a large power of ten (#1573) 2023-07-04 12:59:37 +00:00
cheb 414cc1ea52
Add missing type enum for m.reaction (#1552) 2023-07-04 12:52:48 +00:00
Richard van der Hoff 42114406af
Update link to SAS emoji data (#1593) 2023-06-29 18:54:47 +01:00
Travis Ralston 903b206e3b
Specify our usage of ABNF for grammar (#1582)
* Specify our usage of ABNF for grammar

* Create 1582.clarification

* Update meta/documentation_style.rst

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>
2023-06-28 08:11:28 -06:00
Richard van der Hoff b2ab339ba6
Bump hugo version used for the build (#1591)
Since https://github.com/matrix-org/matrix-spec/issues/1544 is fixed, we can
use a modern hugo.
2023-06-28 07:26:14 +01:00
Kévin Commaille a6eb381ebb
Fix the sidebar in recent versions of Hugo (#1551)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-06-27 22:24:22 +01:00
Kévin Commaille 30845e189f
Remove unnecessary oneOfs in JSON schemas (#1585)
* Remove unnecessary `oneOf`s in JSON schemas

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-06-23 15:31:17 +02:00
Midnight Veil b79fa06cfb
Fix headers with custom IDs via the correct syntax (#1578)
Was previously using <a name="..."> elements which just
add another anchor rather than changing the existing one.
They also use a deprecated HTML attribute and in some cases
broke the header display.

Fixes #1572.

Signed-off-by: Midnight Veil <midnightveil@fea.st>
2023-06-21 14:51:50 +01:00
Kévin Commaille 564444d43e
Render binary request and response bodies (#1579)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-06-20 18:33:06 +01:00
Kévin Commaille 4a9bda9bed
Use tag name as the OpenAPI definition version (#1561)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-06-20 18:20:22 +01:00
Kévin Commaille 49957be1e3
Allow null in room_types for POST /publicRooms endpoints (#1564)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-06-13 15:12:25 +01:00
Kévin Commaille adff3faa35
Make sure version in x-changedInMatrixVersion is a string (#1562) 2023-06-10 14:44:06 +03:00
Kévin Commaille 7a142936f5
Fix level of examples in server keys definition (#1560) 2023-06-09 22:57:28 +03:00
Kévin Commaille 3c5355a278
Use Redocly CLI to validate OpenAPI definitions (#1558) 2023-06-09 21:55:12 +03:00
Kévin Commaille f4aa7c0327
Bump the version of jsonschema (#1556)
* Bump the version of jsonschema

OpenAPI 3.1 uses JSON Schema Draft 2020-12 so we need a version that
supports it.

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

* Add changelog

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

* Fix PR number

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-06-07 12:36:47 -06:00
Kévin Commaille 45b6aaf07a
Upgrade Swagger data to OpenAPI 3.1 (#1310)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-06-07 13:16:29 +01:00
Andrew Morgan c64a616d54
Update the changelog entry checker script to check newsfragment file extension (#1542) 2023-05-31 11:30:51 +01:00
Eric Eastwood dd6af5bfb1
Document why /state_ids can respond with a 404 (#1521) 2023-05-31 10:50:21 +01:00
David Robertson 48459dee9b
Only include titles in summaries (#1549)
I previously made this change for HTTP endpoints in #1446. It seems there are
other places where we have over-sized `<summary>` elements. I would like
to elimintate those too, as grumbled about in
https://github.com/matrix-org/matrix-spec/issues/1358#issuecomment-1325220859
and
https://github.com/matrix-org/matrix-spec/issues/1352#issuecomment-1439033334
2023-05-30 13:22:30 +01:00
Travis Ralston 48ee507489 Build unstable 2023-05-25 10:29:58 -06:00
Travis Ralston 8b51f1c011 Matrix 1.7 2023-05-25 09:47:33 -06:00
Travis Ralston 65d70e90b8 Tag Matrix 1.7 2023-05-25 09:46:35 -06:00
Travis Ralston fbb8a789f6
Add release checklist issue template; Document some of our timelines around releases (#1538)
* Add a spec release checklist issue template

because I'm tired of copy/paste

* Document a chunk of our release approach

This should probably go elsewhere, but here is fine for now as a SCT-referenced doc/content.

* changelog

* Brief clarifications
2023-05-25 09:35:38 -06:00
Kévin Commaille 089d209047
Mark the appservice ping response duration_ms field as required (#1541)
* Mark the appservice ping response duration_ms field as required

As intended in MSC2659.

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-05-24 16:26:26 -06:00
Kévin Commaille bdf574eeb2
Fix typo in VoIP module (#1540)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-05-24 23:00:38 +01:00
Travis Ralston db0fd30744 Fix stray localhost link 2023-05-23 16:24:26 -06:00
Travis Ralston d028dc4b82 Normalize changelog for v1.7 2023-05-23 16:19:09 -06:00
Michael Kohler c6348c9f78
Remove age_ts from reference hash calculation (#1536)
* Remove age_ts from reference hash calculation

Signed-off-by: Michael Kohler <me@michaelkohler.info>

* Add newsfragment

* Fix newsfragment number

* Update changelogs/server_server/newsfragments/1536.clarification

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

---------

Signed-off-by: Michael Kohler <me@michaelkohler.info>
Co-authored-by: Travis Ralston <travpc@gmail.com>
2023-05-23 15:33:55 -06:00
Michael Kohler c94bebc983
Add knock_restricted to m.room.join_rules enum (#1535)
* Add knock_restricted to m.room.join_rules enum

Signed-off-by: Michael Kohler <me@michaelkohler.info>

Fixes #1491

* Add changelog
2023-05-23 13:40:32 -06:00
David Baker 4fd9f39966
Add spec for MSC2746 (#1511)
* Change version field to a string

And add the notes on how the version field works.

* Add spec requiring tracks to be within streams.

* Put streams spec in its own section

* Add 'invitee' field

* Add party_id

* Remember how JSON works

* Add m.call.select_answer

* Update examples

* Add select_answer to call flow example diagram

* Add m.call.reject

* Make party_id required in other events

* Add possible ways for client to handle an invite

* Convert hangup & reject events to YAML

So we can have a bulleted list in the description for the values
of 'reason'.

* Add new reason codes to hangup & reject

* Add m.call.negotiate

* Add other sections

* Revert changes to package lock

* Typos

* Fix type of other version fields, fix anchor.

* Add newsfragment

* Fix reason in hangup/reject

* Change tense

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Tense, typos & grammar

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Linkify

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Remove unnecessary parts from link

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Capitalise

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Fix hangup reasons

* Clarify who can answer

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Linkify

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Remove reference to 'this MSC'.

* Move common VoIP fields into a call event type.

* Move common voip events to the content, not the actual event

* Remove reason from reject event

I confused myself, but it's not in the MSC and it shouldn't be.

* Failure to YAML

* Fix number of room members allowed when sending voip events.

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Add 'added in' version

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Another added-in

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Add missing comma

---------

Co-authored-by: Hubert Chathi <hubertc@matrix.org>
Co-authored-by: Travis Ralston <travisr@matrix.org>
2023-05-23 12:29:35 -06:00
Michael Kohler 17ebdf7c86
Fix ASCII art alignment (#1534)
* Fix ASCII art alignment

Signed-off-by: Michael Kohler <me@michaelkohler.info>

Fixes #1430

* Add changelog

---------

Co-authored-by: Travis Ralston <travpc@gmail.com>
2023-05-23 18:28:46 +00:00
Tulir Asokan 9dd9639dd7
Add spec for MSC2659: application service ping endpoint (#1516) 2023-05-23 18:36:37 +01:00
Kévin Commaille f564c07e60
Fixes and clarifications around m.reaction (#1531)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-05-23 16:18:16 +01:00
Travis Ralston 6496d374d2
Specify MSC3882: Using an existing session to log in another (#1530)
* Specify MSC3882: Using an existing session to log in another

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

* Changelog entries

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

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

* Link to endpoint

* Copy/paste `auth` dict definition

* Move get_token API to the correct version prefix (v1, not v3)

* Apply suggestions from code review

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>
2023-05-23 04:38:26 +00:00
Richard van der Hoff cad4f78711
Update 1473.clarification
fix formatting
2023-05-19 10:29:31 +01:00
Nick Mills-Barrett 4fabef1c97
Add allow_redirect query parameter to relevant media endpoints (#1529)
* Add `allow_redirect` query parameter to relevant media endpoints

* Add added in version flag to `allow_redirect` params

* Add 307/308 responses to media endpoints

* Add changelogs
2023-05-17 09:17:20 -06:00
Patrick Cloke 466acdfc46
Update spec for MSC3952: intentional mentions (#1508)
See MSC3952.
2023-05-17 13:16:23 +01:00
Richard van der Hoff 9766b142f1
event_replacements: fix rationale box (#1525)
This was missing its %s
2023-05-16 21:35:44 +01:00
Richard van der Hoff c1ac9a9ad7
Update transaction ID scope (#1526) 2023-05-16 21:33:05 +01:00
Richard van der Hoff 188d568f3a
Add 'deprecated:true' to /v1/send_{join,leave} (#1518)
The words already say this is deprecated, but it was missing the flag.
2023-05-15 16:31:47 +01:00
Hubert Chathi dc5d95c242
Clarify signatures upload endpoint (#1495)
* clarify signatures upload endpoint

* add changelog
2023-05-08 11:36:56 +01:00
Kévin Commaille ade2d29210
Fix internal link to asynchronous upload enpoint (#1510)
* Fix internal link to asynchronous upload enpoint

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

* Add changelog

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

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-05-04 06:31:47 -06:00
Andrew Morgan 50757e61b7
Fix a list formatting error under C-S API -> m.room.member definition (#1509)
* Fix a list formatting error under C-S API -> m.room.member definition

* changelog
2023-05-04 11:04:23 +02:00
Patrick Cloke e1dc5f8f53
Remove the dont_notify and coalesce push rule actions. (#1501)
* Remove the `dont_notify` and `coalesce` push rule actions.

Per MSC3987, these should both be considered no-ops.

* Remove obsolete dont_notify from default rules.

* Remove obsolete dont_notify from examples.
2023-05-03 09:39:49 -04:00
Richard van der Hoff 283c5877fe
Spec asynchronous uploads (#1499)
Spec for matrix-org/matrix-spec-proposals#2246
2023-05-03 12:40:54 +00:00
Richard van der Hoff 6150f71ba1
Corrections to the response format of /_matrix/identity/v2/store-invite (#1486)
This has been wrong since the dawn of time.

Fixes https://github.com/matrix-org/matrix-spec/issues/495
2023-05-03 09:43:10 +00:00
Kim Brose cafb453545
Fix m.location.yaml scheme (#1507)
* Fix m.location.yaml scheme

This appears to have been mixed up while refactoring
f1f32d3a15 (diff-eb879a272497c490480df3e07215d058ace2fa0bf456447786f299995fb467ef)

* Create 1507.clarification
2023-05-02 12:02:05 -04:00
Richard van der Hoff c662976fab
Fix generation of anchors for additional properties (#1488)
but objects defined under `additionalProperties` missed out on them. This fixes
that.
2023-05-02 11:41:59 +01:00
Richard van der Hoff cdbf44eef0
Fix rendering of properties with a list of types (#1487) 2023-04-26 16:18:23 +01:00
Richard van der Hoff 1f729eef60
"MXC URI" -> "mxc:// URI" (#1500)
* "MXC URI" -> "`mxc://` URI"

We're a bit inconsistent with this currently, and IMHO "`mxc://` URI" is more
explicit.

* Update content/client-server-api/modules/content_repo.md

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* more MXCs

---------

Co-authored-by: Hubert Chathi <hubertc@matrix.org>
2023-04-26 14:11:35 +01:00
Richard van der Hoff 715f6a301d
Spec annotations (#1475) 2023-04-25 15:17:31 +01:00
Richard van der Hoff a225025cab
Remove fictitious token parameter on /keys/query (#1485) 2023-04-12 15:41:25 +01:00
Richard van der Hoff 64c61c2de2
Properly separate Room ID and Event ID grammars (#1484) 2023-04-06 09:57:30 +01:00
Richard van der Hoff e9fc66cf77
Remove references to groups from appendices (#1483) 2023-04-06 09:57:12 +01:00
Richard van der Hoff 91b2f77e0e
Remove outdated text saying that state_default defaults to 0 (#1479)
There was substantial confusion around this, but I've done some archaeology.

Basically, this was changed back in r0.5.0 by MSC1304 and matrix-org/synapse#3397. Before that, it was indeed the case that state_default was 0 if there was no m.room.power_levels event, but that was confusing and a source of security holes, so we changed it.

matrix-org/matrix-spec-proposals#1656 changed the spec, but apparently overlooked the text in the description.

Reverts: #1478.
Fixes: #861.
2023-04-05 10:57:08 +01:00
Patrick Cloke d222fc60d6
Document MSC3758, MSC3966, MSC3873, and MSC3980. (#1464)
* Add information on MSC3758: event_property_is.

* Add information on MSC3966: event_property_contains.

* Add information on MSC3873 dotted-path escape rules.

* Newsfragment

* Update sync filter with ref to appendix.

* Escape example key.

* Fix typos.

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Fix links.

* Clarify the appendix a bit.

* Clarify support values.

* Add MSC3980 to changelog.

---------

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2023-04-03 23:03:37 -06:00
Travis Ralston 7670a74116
Mention that state_default can be zero by default. (#1478)
* Mention that `state_default` can be zero by default.

* Changelog

* Update data/event-schemas/schema/m.room.power_levels.yaml

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

---------

Co-authored-by: Hubert Chathi <hubertc@matrix.org>
2023-03-31 02:52:45 +00:00
Richard van der Hoff ac8d34bc81
Cleanups to github actions workflow (#1476) 2023-03-29 11:16:52 +01:00
Kim Brose a21b23dda8
Fix typo in registration.yaml (#1474) 2023-03-24 17:21:03 +00:00
Val Lorentz a847ee3b57
Remove leftover {key_id} from /_matrix/key/v2/server/ (#1473)
The parameter was removed in v1.6 (specifically in
9e45037129)
2023-03-24 09:17:19 -04:00
Richard van der Hoff d26794ee90
Clarify terminology around aggregations (#1424)
I've done my best to remove the word "bundle", because I feel like it causes
more confusion than it provides. Instead I have favoured "aggregated child
events" which I think is clearer.

Some general clarification around these parts of the spec.
2023-03-21 18:27:24 +00:00
Stuart Mumford d6f38f157d
Add a sentence about what canonical JSON is (#1468)
Signed-off-by: Stuart Mumford <stuart@cadair.com>
2023-03-21 16:27:54 +00:00
Richard van der Hoff acb631d3d6
Change the server aggregation for edits (#1440)
per matrix-org/matrix-spec-proposals#3925
2023-03-21 15:59:23 +00:00
Stuart Mumford bdc87784a1
Clarify that Persistent data unit is PDU (#1466)
Signed-off-by: Stuart Mumford <stuart@cadair.com>
2023-03-14 20:32:38 +00:00
Stuart Mumford 09e2250a8d
Spec implicit filter event limit (#1463)
Signed-off-by: Stuart Mumford <stuart@cadair.com>
2023-03-14 20:27:42 +00:00
Andrew Morgan 35f5439e00
Correct a small typo in the push rules spec (#1465 2023-03-14 15:43:44 +00:00
Patrick Cloke 53d7de2376
Define how clients process push rules (#1461)
* Move Push Rules section out from Client Behaviour.
* Clarify server vs. client behavior.
* Remove references to unencrypted content.
2023-03-14 14:57:52 +00:00
Travis Ralston a481d6aafb
Add mention of private sign off to contributing guidelines (#1462) 2023-03-10 19:39:24 -07:00
Patrick Cloke afae1083aa
Clarify what key content-specific rules match against. (#1441) 2023-03-08 13:06:06 +00:00
Alexey Rusakov b441b19cc3
More cleanup before upgrading to OpenAPI 3.1 (#1455)
* `cross_signing_key.yaml`: the parameter documentation already restricts the number of properties
 * `receipts.yaml`: use `maxProperties: 0` to say the object is empty (the comment is still there but is not really needed any more)
 
Signed-off-by: Alexey Rusakov <Kitsune.Ral@users.sf.net>
2023-03-08 10:39:06 +00:00
Andrew Morgan c0955a6aee
Add a hyphen between third and party when used as an adjective (#1447) 2023-03-08 09:58:29 +00:00
Alexey Rusakov 9ebcf5f257
OpenAPI compliance: avoid $ref siblings (#1457)
This strives to fix all remaining cases where additional attributes
(most often 'description' but not only) are provided next to $ref
by wrapping $ref in allOf; and also drops allOf in a couple of places
where $ref is the only element under it.
2023-03-07 16:51:30 +00:00
Hugh Nimmo-Smith 10844fef8c
Clarification to transaction identifier idempotent semantics (#1449) 2023-03-07 16:45:14 +00:00
David Robertson f9ea0f9d9b
Only include endpoint path in <summary> (#1446) 2023-03-02 16:58:04 +00:00
Richard van der Hoff a45138c3b4
Minor updates to documentation style (#1456)
i.e. has full-stops
2023-02-28 19:04:57 +00:00
Richard van der Hoff a9e9202e89
Load Inter CSS directly (#1444)
Move the load of the Inter font CSS from _variables_project.scss to head-end.html.

Empirically, this seems to fix #965
2023-02-28 14:56:19 +00:00
Kévin Commaille 427f472331
Remove overridden references to examples/minimal_pdu.json and add the missing room_id field. (#1454)
The syntax is incorrect and would require to use allOf
because a $ref can't have siblings.
However the only field not overwritten of that definition is room_id,
so we include it instead of the $ref

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-02-28 13:19:27 +00:00
Richard van der Hoff 77d0f20226
Remove spurious 'weight: 340' (#1442) 2023-02-22 11:35:36 +00:00
Jonas Platte 71b2235868
Clarify that reply chain fallback for threads may not be present (#1439) 2023-02-21 17:38:48 +00:00
Saiprakash Shet ea47197930
Update spelling in s2s authorization (#1431)
* Issue #1231/Update spelling in s2s authorization

* Update spelling in s2s authorization.

* Apply suggestions from code review

---------

Co-authored-by: Travis Ralston <travpc@gmail.com>
2023-02-15 21:09:29 +00:00
Andrew Morgan 5c7bb2fcd5
Remove some erroneous underscores from the Client-Server spec text (#1432)
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2023-02-14 17:08:47 +00:00
Travis Ralston 377e301c61 Fix MSC naming reference 2023-02-14 08:45:17 -07:00
Travis Ralston 49b7414080 Return to unstable 2023-02-14 08:27:47 -07:00
Travis Ralston 029e988835 Matrix 1.6 2023-02-14 08:26:14 -07:00
Travis Ralston 97e353d26b Tag Matrix 1.6 2023-02-14 08:24:21 -07:00
DeepBlueV7.X a383698be5
Improve distinction between tags and their attributes in the rich text section (#1433)
Originally the tags used to be bold, followed by a colon and separated
into two columns in a table. This at least restores the table aspect,
which makes it clear, that font is not an attribute (and similar).

This seems to have gotten lost in the transition to the new design.

Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
2023-02-13 15:36:52 -05:00
Andy Balaam b5566dbadb
Clarify which events will be included in Stripped State (#1409)
Signed-off-by: Andy Balaam andy.balaam@matrix.org
2023-02-13 10:36:58 +00:00
Richard van der Hoff 6b02e39308
Move .m.rule.roomnotif before .m.rule.tombstone (#1421)
See https://github.com/matrix-org/matrix-spec/issues/1406 for the reasoning on
this. TL;DR: the spec has always been wrong here.
2023-02-10 12:04:24 +00:00
Hubert Chathi ad94985754
Define hkdf-hmac-sha256.v2 MAC method for SAS verification (#1412)
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2023-02-09 23:58:16 -05:00
Hubert Chathi e9a463d871
Send heroes for nameless rooms on send_join (#1425)
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2023-02-07 15:50:31 -05:00
Travis Ralston 5c485ade2e Prepare changelogs for v1.6 2023-02-07 11:58:31 -07:00
Richard van der Hoff a7790fcbbf
Clarify room version grammar (#1422)
Apparently the SHOULD is confusing
2023-01-31 20:00:26 +00:00
Richard van der Hoff 05620913d5
Fix anchor for room-knocking heading (#1423)
Fixes #1407
2023-01-31 19:59:40 +00:00
Kévin Commaille d55af02738
Add links to the spec for the definition of 3PID medium (#1417)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-01-30 11:36:51 +00:00
Kim Brose d4586eba2e
Improve formatting of definitions in the Push Notifications section (#1415)
Signed-off-by: Kim Brose <2803622+HarHarLinks@users.noreply.github.com>
2023-01-29 10:22:12 -05:00
dylhack.dev f06ffc8176
replace "<content>" with "content" (#1370)
* replace "<content>" with "content"

This parameter that's part of the content-repo openapi spec causes generators to mess up

* added changelogs

* Update changelogs/internal/newsfragments/1370.clarification

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

Co-authored-by: Travis Ralston <travpc@gmail.com>
2023-01-16 19:50:14 +00:00
Catalan Lover fdd3d94a94
Change default room version from 9 to 10 (#1397)
* Change default room version from 9 to 10 in accordance with MSC3904

* Add changelog entry with assumed PR number.

* Fix missing comma in changelog.

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

Co-authored-by: Travis Ralston <travpc@gmail.com>
2023-01-08 13:59:30 -07:00
Kévin Commaille eb656dfce3
Add missing x-addedInMatrixVersion to servers_in_room in v2/send_join (#1398)
* Add missing `x-addedInMatrixVersion` to `servers_in_room` in `v2/send_join`

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

* Add changelog

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

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-01-08 13:58:55 -07:00
Richard van der Hoff b8411b5159
Spec omit_members for /v2/send_join (#1393)
Per MSC3706
2023-01-04 12:12:49 +00:00
Kévin Commaille 9e45037129
Remove keyId from the server keys endpoints (#1350)
* Remove keyId from the server keys endpoints

It has been deprecated forever.
Besides, the OpenAPI 3 spec doesn't allow optional path parameters.

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

* Add newsfragment

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

* Fix broken link

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

* Mention MSC3938 in newfragment

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

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-01-03 00:46:03 -07:00
Hubert Chathi eb2456c7d4
Improve documentation around one-time keys and key types (#1381) 2022-12-24 22:03:44 -05:00
Hubert Chathi 94465fe93b
Add spec for getting events by timestamp (#1366) 2022-12-21 14:05:28 -05:00
Richard van der Hoff 7bd48ca9c7
Stop autogenerating examples where we already have one (#1384)
If an object definition already has an example, we shouldn't try to extend that
definition by adding examples derived from the individual properties. Doing so
is confusing, and there is no way to inhibit it when it is not desired. It's
also not what the RapiDoc viewere does, so we end up with examples being
inconsistent.
2022-12-21 16:24:11 +00:00
Richard van der Hoff 966f3c443a
Fix edu_type on EDU examples (#1383)
The top-level `example` in `edu.yaml` was overriding the individual examples
for `edu_type`. Let's fix that by getting rid of the example in `edu.yaml`.

Fixes https://github.com/matrix-org/matrix-spec/issues/805
2022-12-21 16:23:50 +00:00
Kim Brose 05d2bc4c95
move login API definitions to the right heading (#1382)
* move login API definitions to the right heading

regressed from https://github.com/matrix-org/matrix-spec-proposals/pull/3324

* Create 1382.clarification
2022-12-19 15:47:00 -07:00
Richard van der Hoff f386c903c0
Clarify that CNAMEs are permissible for server names (#1376)
Fixes https://github.com/matrix-org/matrix-spec/issues/606.
2022-12-14 10:53:50 +00:00
Travis Ralston 8a555fb411
Add some safety to the proposals script (#1368)
* Add some safety to the proposals script

for if github's api explodes, forgets the header, or we are rate limited or something.

* changelog
2022-12-08 12:41:55 -07:00
Richard van der Hoff 9555cbe5a9
Fix incorrect default "Invite level" (#1371) 2022-12-08 10:41:00 +00:00
Hubert Chathi 5d40118116
Merge pull request #1363 from zecakeh/fix-typos
Fix various typos
2022-11-29 20:05:53 -05:00
Kévin Commaille 2e789736cc
Add newsfragment
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2022-11-28 13:06:34 +01:00
Kévin Commaille 60544a362b
Reference relations were added in v1.5
According to the changelog

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2022-11-28 13:03:34 +01:00
Kévin Commaille 7af45a36fc
Fix read_markers
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2022-11-28 13:01:43 +01:00
Kévin Commaille 6ffc5e6ed0
Fix and -> an
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2022-11-28 12:45:19 +01:00
Johannes Becker e481fd011a
Add link to the unstable spec to the README (#1357) 2022-11-24 11:09:05 +00:00
Kévin Commaille 8d4a3bb912
Clarify what fields are required when deleting a pusher (#1321)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2022-11-22 17:12:13 +00:00
Sumner Evans 84fbb611db
Clarify that /context always returns 'event' even if limit is zero (#1239)
Signed-off-by: Sumner Evans <me@sumnerevans.com>
2022-11-22 17:08:46 +00:00
Johannes Becker 3f3b5c39f0
Remove duplicated "Note:" from m.room.power_levels (#1355)
Remove duplicated "Note:"

Signed-off-by: Johannes Becker <j.becker@famedly.com>
2022-11-22 16:57:38 +00:00
David Robertson 07442876ce
Improve presentation of push rules kinds and actions (#1348) 2022-11-22 16:01:23 +00:00
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>
2022-11-22 15:56:39 +00:00
Patrick Cloke eeb43043ad
Add standard error responses (MSC3743). (#1347) 2022-11-22 15:51:29 +00:00
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>
2022-11-22 15:50:28 +00:00
Johannes Becker b2c4abf567
Clarify the power levels integer range (#1169)
Signed-off-by: Johannes Becker <j.becker@famedly.com>
2022-11-22 15:45:30 +00:00
David Baker 24b95cbb89
Merge pull request #1353 from HarHarLinks/patch-1
add missing description to m.call.answer schema
2022-11-18 14:03:13 +00:00
Kim Brose 8830314401
Create 1353.clarification 2022-11-18 14:33:52 +01:00
Kim Brose 8d378cfd51
add missing description to m.call.answer schema 2022-11-18 14:28:05 +01:00
Travis Ralston 3a84ea7cf6 Return to unstable 2022-11-17 08:33:00 -07:00
Travis Ralston 5f2fac89af Matrix 1.5 2022-11-17 08:22:20 -07:00
Travis Ralston 887344a16c Tag Matrix 1.5 2022-11-17 08:21:57 -07:00
Hubert Chathi 684ead8ab6
Merge pull request #1294 from uhoreg/rhul_clarifications
add some e2ee clarifications
2022-11-17 09:21:51 -05:00
Hubert Chathi 2fcc92c2fb
improve documentation of ephemeral events (#1284) 2022-11-17 07:53:15 +00:00
Hubert Chathi 64922771d4
Clarify that verifications without a request only happens over to-device (#1345) 2022-11-17 07:27:40 +00:00
Richard van der Hoff 1e393fbf92
Improve error messages emitted by resolve-additional-types (#1303)
I forgot to set the `items` on an array definition, and got an extremely
opaque error. Hopefully this will improve the lives of anyone who makes a
similar mistake in future.
2022-11-17 07:23:12 +00:00
Andrew Morgan cb2d5653ee
Add Event Replacements, Threading and Reference Relations modules to module summary table (#1344) 2022-11-17 00:07:04 +00:00
Hubert Chathi 0f0caf582d more clarifications 2022-11-16 11:14:34 -05:00
Hubert Chathi 9fafadf311
Upgraded refusal to verify to a MUST
Co-authored-by: Denis Kasak <dkasak@termina.org.uk>
2022-11-16 09:00:35 -05:00
Andrew Morgan b5005e64f7
Document that non-spec changes should get an 'internal' changelog entry (#1342) 2022-11-16 13:44:55 +00:00
Richard van der Hoff f0246a5f12
Disable RSS for spec (#1346)
This should really fix #1336
2022-11-16 13:20:06 +00:00
Hubert Chathi 19e29e36af more clarifications 2022-11-15 19:17:49 -05:00
Richard van der Hoff 3c9139bd5d
Unpack spec into right place for htmltest (#1338)
Hopefully, fixes https://github.com/matrix-org/matrix-spec/issues/1336
2022-11-15 23:30:17 +00:00
Richard van der Hoff 08fde5f257
Generate unstable changelogs using towncrier (#1340)
Replace the current stack of hugo templates with a towncrier invocation. The main advantage of this is that it means that the "Changes since last release" section is consistent with the changelogs for the actual releases.

This also changes the release process so that the changelog is generated before tagging, which means that the thing tagged v1.5 is actually the v1.5 spec.

Fixes #908.
2022-11-15 23:26:55 +00:00
Hubert Chathi d0cbd4c8dd
Apply suggestions from code review
Co-authored-by: Denis Kasak <dkasak@termina.org.uk>
2022-11-15 18:17:20 -05:00
David Baker 678f8b96f0
Merge pull request #1341 from matrix-org/dbkr/add_read_receipt_example
Add example read receipt to sync example
2022-11-15 20:47:18 +00:00
David Baker d620ff7a7c
Better newsfragment
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2022-11-15 20:24:18 +00:00
Richard van der Hoff bc15d4f9bc
Make definition anchors more unique (#1339)
Stick a `definition-` on the front of the autogenerated anchors for definition
blocks.

This solves a problem where, for example,
https://spec.matrix.org/unstable/application-service-api/#registration could
refer to either the "Registration" section or the `Registration` definition
therein.

(These anchors are relatively recent: they were added in #1191.
2022-11-15 19:15:34 +00:00
David Baker 26528c05c5 Newsfragment 2022-11-15 18:48:02 +00:00
David Baker 312a0e9b05 Add example read receipt to sync example
Fixes https://github.com/matrix-org/matrix-spec/issues/120
2022-11-15 18:43:58 +00:00
Richard van der Hoff ac1c5ad2bb
Merge pull request #1331 from zecakeh/swagger-preview
Update instructions to preview Swagger definitions
2022-11-15 16:29:48 +00:00
Richard van der Hoff 12b4d8ad95
Update README.md 2022-11-15 16:28:10 +00:00
Kévin Commaille b38cd08fbd
Add newsfragment
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2022-11-09 10:29:29 +01:00
Kévin Commaille 9b4773498a
Update instructions to preview Swagger definitions
Use RapiDoc, the same library used in production.
It is also compatible with OpenAPI 3.1.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2022-11-09 10:25:56 +01:00
Richard van der Hoff 498cf6d147
Merge pull request #1320 from zecakeh/master-pushrule
Clarify that `.m.rule.master` has a higher priority than any push rule
2022-11-08 21:56:39 +00:00
Richard van der Hoff b9952f1a74
Merge pull request #1329 from matrix-org/rav/htmltest
Add link checker to CI
2022-11-08 21:11:11 +00:00
Richard van der Hoff 44c7eb5b88
Merge pull request #1330 from matrix-org/rav/fix_dead_links
Fix broken links
2022-11-08 21:10:48 +00:00
David Baker f53da89996
Merge pull request #1318 from zecakeh/pushrules-set-sound
Replace `set_sound` push rule action by `set_tweak`
2022-11-08 20:49:46 +00:00
BramvdnHeuvel 6879f96c90
Require refresh_token on refresh token endpoint (#1323)
Signed-off-by: Bram van den Heuvel matrix-spec@noordstar.me
2022-11-08 19:24:37 +00:00
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
2022-11-08 19:20:38 +00:00
Richard van der Hoff 8dd89e0510 changelog 2022-11-08 19:00:38 +00:00
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.
2022-11-08 19:00:38 +00:00
Richard van der Hoff 3e074ed6d3 Add htmltest github action 2022-11-08 19:00:38 +00:00
Richard van der Hoff 4d0c912acf changelogs 2022-11-08 18:56:13 +00:00
Richard van der Hoff 6cbb88f9df Fix broken links
A bunch of broken links I found
2022-11-08 18:54:26 +00:00
Andrew Morgan fd41d9d4ed
Update docsy (hugo theme) git submodule (#1295) 2022-11-08 17:29:10 +00:00
Richard van der Hoff b07fe504ed
Stop rendering CS modules and room version fragments as standalone pages (#1317)
This is actually doing two things:

 * creating `{fragments,modules}/index.md` turns the fragments and modules into
   page resources, rather than pages in their own right. We have to update the
   shortcodes to match.

 * adding `headless: true` means that we don't render the pages.

The net effect is that we don't render pages like
https://spec.matrix.org/v1.4/rooms/fragments/v1-auth-rules/ and
https://spec.matrix.org/v1.4/client-server-api/modules/account_data/.
2022-11-08 17:27:44 +00:00
Kévin Commaille fc624328df
Change newsfragment
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2022-11-08 17:53:58 +01:00
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.
2022-11-08 15:01:46 +00:00
Kévin Commaille f428ba1499
Add newsfragment
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2022-11-03 10:44:12 +01:00
Kévin Commaille ea7e1c8af9
Clarify that .m.rule.master has a higher priority than any push rule
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2022-11-03 10:34:26 +01:00
Kévin Commaille 306d1aac5d
Add newsfragment
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2022-11-03 09:17:23 +01:00
Kévin Commaille 392794950b
Replace set_sound push rule action by set_tweak
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2022-11-03 09:11:49 +01:00
Hubert Chathi 830f80f56a
Merge pull request #1271 from uhoreg/add_verification_request_msgtype
add in-room m.key.verification.request msgtype
2022-11-02 10:16:42 -04:00
Hubert Chathi 82d2dd4ab0
Merge pull request #1283 from uhoreg/fix_event_subtype
improve display of event subtypes
2022-11-02 10:15:56 -04:00
Hubert Chathi dd0f867fad make examples agree with schema 2022-11-01 17:56:29 -04:00
Hubert Chathi 2395dd87c0 more clarifications, and move event definitions to yaml 2022-11-01 17:49:45 -04:00
Hubert Chathi d0d7bdb807 apply changes from code review 2022-11-01 11:39:15 -04:00
Alexandre Franke 39f79fe521
Update link to API viewer (#1308)
* Update link to API viewer

Fixes #2
2022-11-01 15:06:59 +00:00
Hubert Chathi 60d9518a63 pass the desired example name to the template 2022-10-28 16:15:04 -04:00
Andrew Morgan c8242eeb35
Replace misuses of 'plaintext' with 'cleartext' and clarify spoiler docs (#1306) 2022-10-27 09:23:44 +00:00
Hubert Chathi d6345f0df2 apply changes from code review 2022-10-26 16:33:41 -04:00
Hubert Chathi fbbf3b81c5 add some e2ee clarifications 2022-10-18 18:02:27 -04:00
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>
2022-10-18 11:50:41 -06:00
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>
2022-10-17 15:49:01 -06:00
Hubert Chathi f76ff36545 add links 2022-10-12 16:32:00 -04:00
Hubert Chathi 76bf60a12f set the title of m.key.verification.request in-room event 2022-10-12 16:08:38 -04:00
Hubert Chathi 089f1fee7d add changelog 2022-10-12 16:02:07 -04:00
Hubert Chathi 99cd692ed0 improve display of event subtypes 2022-10-12 15:49:21 -04:00
Hubert Chathi c0d54ab4d9
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2022-10-12 09:52:04 -04:00
Richard van der Hoff 11cef5417a
Clarify auth rules for m.room.power_levels events (#1269) 2022-10-12 13:36:02 +01:00
Andrew Morgan 3808a679c1
Fix up description of knock_room_state field, which implied the required field was optional (#1276) 2022-10-07 13:46:37 +01:00
Richard van der Hoff c4505665e0
Various clarifications to auth rules text (#1270) 2022-10-05 16:54:34 +00:00
Andrew Morgan 43a48314ac
Remove reference to a room_id key for typing events (#1265) 2022-10-05 09:54:58 +00:00
Erik Johnston 4bda06a886
Merge pull request #1266 from matrix-org/erikj/clarfiy_otks 2022-10-05 10:02:27 +01:00
Hubert Chathi 9d8e17fb22 add changelog 2022-10-04 17:53:15 -04:00
Hubert Chathi 191450ea73 add in-room m.key.verification.request msgtype 2022-10-04 17:49:36 -04:00
Travis Ralston 1cdfbd3cd8
v1.4 patch release cleanup (#1268)
* Add missing steps to patch release guidelines

* Update from v1.4 patch
2022-10-04 10:00:16 -06:00
Erik Johnston b8e7c4e133 Newsfile 2022-10-04 16:01:55 +01:00
Erik Johnston dc0882012b Fix naming of device_one_time_keys_count in /sync
Fixes #671
2022-10-04 16:00:27 +01:00
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>
2022-10-04 08:09:23 -06:00
Andrew Morgan 098aabd22a Add a missing 'the' 2022-10-04 09:47:33 +01:00
Val Lorentz 460bea4024
Fix definition of data-mx-color values (#1260)
* Fix definition of `data-mx-color` values

* Create 1260.clarification

* Update changelogs/client_server/newsfragments/1260.clarification

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

Co-authored-by: Travis Ralston <travpc@gmail.com>
2022-10-03 23:31:10 -04:00
Val Lorentz 3c796e9876
Aggregations: remove not about "future extensions" (#1263)
* Aggregations: remove not about "future extensions"

It is now used by threading.

* Create 1263.clarification
2022-10-03 23:26:31 -04:00
Travis Ralston 434f1b0672 Go back to unstable 2022-09-29 07:04:16 -06:00
Travis Ralston 7a591366c1 v1.4 changelog 2022-09-29 07:03:48 -06:00
Travis Ralston c8a1046e84 v1.4 2022-09-29 06:59:08 -06:00
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
2022-09-28 14:49:25 -06:00
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>
2022-09-27 13:51:20 -06:00
Travis Ralston 6c6c602845
Clarify that refreshed access tokens don't invalidate the scope of txnid (#1236) 2022-09-26 14:39:43 -06:00
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>
2022-09-22 09:04:50 -06:00
Andrew Morgan e7e376142e
Fix typos in the spec related to account data (#1243) 2022-09-22 11:25:32 +01:00
Richard van der Hoff 58e6900891
Spec event edits (#1211)
Per matrix-org/matrix-spec-proposals#2676
2022-09-21 14:41:28 +01:00
Hubert Chathi bd4593ff73
Merge pull request #1240 from clokep/enum-commas
Render commas between enum values.
2022-09-21 09:14:47 -04:00
Patrick Cloke 1c0101ce4c Put commas between enum values. 2022-09-16 09:03:41 -04:00
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>
2022-09-12 16:34:51 -06:00
David Robertson a6990ff27c
Fix spacing of mapping types (#1230)
* Fix spacing of mapping types

* Changelog
2022-09-06 10:21:51 -06:00
Will Hunt 8df0cfeae0
s/room/rooms (#1215)
* s/room/rooms

Fixes #979

* Create 1215.clarification
2022-08-26 13:53:28 -06:00
Andrew Morgan 5572d33453
Require access_token, device_id and user_id fields in /login response (#1210) 2022-08-16 18:12:10 +01:00
Richard van der Hoff 1930824898
include CS-api modules with {{< (#1205)
... because that fixes everything. Or at least, #1204.
2022-08-10 10:44:38 +01:00
Travis Ralston afc0e6a026
Add CORP headers to media repo (#1197)
* Add CORP headers to media repo

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

* Write weird CSS rules to make added-in work inline in the CS spec

Even though our content doesn't need 2 paragraphs, it's good to have the capability to render it in the future.

* Remove test paragraph

* Refine prose

* spelling is key
2022-08-09 10:44:51 -06:00
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
2022-08-04 15:15:16 -06:00
Travis Ralston 9506ecea59
Add missing annotation for v1.4 on ACL push rule (#1201)
* Add missing annotation for v1.4 on ACL push rule

* changelog
2022-08-04 11:40:42 -06:00
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
2022-08-04 11:33:16 -06:00
Richard van der Hoff ef384f1afd
Give rendered-data sections a background and some padding (#1195)
Gives definition sections for APIs, events, etc a background and a small indent, which I find very helpful to guide the eye.
2022-08-04 09:46:11 +00:00
Travis Ralston 9093a5f16f
Copy room type on upgrade too (#1198)
MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/3818
2022-08-03 13:09:14 -06:00
Travis Ralston 3c45c0aeb4
Remove unused policy room sharing mechanism, as per MSC3844 (#1196)
MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/3844
2022-08-03 11:31:24 -06:00
Richard van der Hoff dc4fd9bdd6
Render HTML anchors for definition blocks (#1191)
It's handy to be able to link to these.
2022-08-03 07:28:47 +01:00
Travis Ralston 569e139ac5
Add an "internal changes" changelog section (#1194)
* Add an "internal changes" changelog section

* update changelog number
2022-08-02 19:48:35 -06:00
Travis Ralston b36d4eff7d
Remove declared-invalid invite->knock restriction from auth rules (#1175)
* Remove declared-invalid `invite->knock` restriction from auth rules

* Changelog

* real changelog
2022-08-02 17:20:52 -06:00
Richard van der Hoff f24cad1653
Add push rule for m.room.server_acl (#1190)
* Add push rule for `m.room.server_acl`

... per MSC3786.

* Update changelogs/client_server/newsfragments/1190.feature

Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-08-02 16:53:00 -06:00
Richard van der Hoff b58c7a5839
Reinstate margin between tables (#1192) 2022-08-02 23:47:57 +01:00
Richard van der Hoff 737260edbe
Move newsfragment check to a separate workflow (#1193)
... to make sure we still get a preview even if there is no newsfragment.
2022-08-02 23:44:44 +01:00
David Robertson 69ff51c017
Tweak style of <code> samples in rendered tables (#1179)
* Tweak style of `<code>` samples in rendered tables

This has been subtly irritating me for aaaaaaages

* Changelogs
2022-08-02 14:49:27 +01:00
Richard van der Hoff 91aebd62c4
CSS hack to fix scroll anchoring (#1183)
Disable explicit `height` setting for the top-level div, which breaks scroll
anchoring
2022-08-01 11:08:15 +01:00
Richard van der Hoff 3dc3150f6d
fix typo 2022-07-28 15:30:46 +01:00
Richard van der Hoff b232148821
Clarify the use of JSON in requests and responses (#1185)
Fixes #1182
2022-07-28 13:45:54 +01:00
Hubert Chathi 119197e798
Merge pull request #1180 from DMRobertson/dmr/other-error-codes-typo
Remove a stray fullstop in "Other error codes"
2022-07-25 10:34:12 -04:00
David Robertson 077f414cd0
Update changelogs/client_server/newsfragments/1180.clarification
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2022-07-25 10:59:30 +01:00
David Robertson 494f903f71
Changelog 2022-07-21 18:47:54 +01:00
David Robertson 4be2916047
Remove a stray fullstop in "Other error codes" 2022-07-21 18:46:51 +01:00
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.
2022-07-19 22:02:48 +01:00
Richard van der Hoff 5f3b34448d
Add HTML ids for object definitions in the formatted specification (#1174)
* Remove redundant call to resolve-allof

All of the callers to resolve-additional-types already call resolve-allof (or
if not, they should), so this is redundant.

* Update `resolve-additional-types` to take a dict

I want to add more params to this, so first make it take a dict.

* `render-object-table`: take a "title" rather than a "caption"

... which means we can use the result from resolve-additional-types directly.

* render-object-table: support adding an anchor to generated tables.

* resolve-additional-types: generate an id for each returned type

* render-event: pass an anchor_base into resolve-additional-types

This means that it will generate an anchor for each type, whihc will then be
passed into render-object-table and used as an `id` for the table.

* render-operation: pass an anchor_base into resolve-additional-types

* newsfiles
2022-07-19 13:25:30 -06:00
Travis Ralston 16eb4cb961
Disable blank issue reporting (#1172)
Folks who want to report a blank issue can still get at the form if they try hard enough, but in general everything should have a label to make triage easier.
2022-07-19 13:11:53 -06:00
David Robertson f9028acf8e
Describe return codes for account data endpoints + minor clarifications (#1155) 2022-07-14 13:01:56 +01:00
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
2022-07-13 12:43:37 -06:00
Brad Murray ead437578b
Fix typo in m.secret.request device event name (#1135)
* Fix typo in m.secret.request device event name

I don't think this is supposed to be plural according to the various SDKs

* Add changelog

* Update changelogs/client_server/newsfragments/1135.clarification

* Update changelogs/client_server/newsfragments/1135.clarification

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
2022-07-12 10:59:44 -06:00
David Florness adaef611dc
Fix typo (#1161)
Signed-off-by: David Florness <david@florness.com>
2022-07-12 17:39:37 +01:00
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>
2022-07-11 13:58:27 -06:00
Hubert Chathi adf8f4817d
Merge pull request #1164 from uhoreg/fix_olm_algorithm
Fix the olm algorithm name in an example
2022-07-11 10:58:02 -04:00
Hubert Chathi 577eb5db59 add changelog 2022-07-07 11:28:38 +01:00
Hubert Chathi 8d45231c64 fix the olm algorithm name in an example 2022-07-07 11:25:26 +01:00
Richard van der Hoff 848294ea37
events with rejected_auth_events must be rejected (#1137)
This might be kinda obvious, but didn't seem to be spelt out anywhere.
2022-07-05 21:58:41 +01:00
David Robertson cc7cc4a44d
Fix unintentional stateres change added in #1042 (#1158)
* Fix unintentional stateres change added in #1042

* Changelog
2022-07-05 09:46:46 -06:00
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>
2022-07-04 13:19:33 -06:00
Finn Behrens 83055f2f54
Update idp-brands.md (#1140)
update apple link
2022-06-30 15:58:22 -06:00
Aaron Raimist 0cec7c7f1b
Pin typos to v1.10.2 and run on pushes to main (#1143)
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2022-06-26 14:39:43 -06:00
Travis Ralston 66a5920804
Remove matrix-doc changelog hack (#1134) 2022-06-16 10:45:45 -06:00
Travis Ralston 0dd3fa481b Fix changelog 2022-06-16 09:17:08 -06:00
Travis Ralston 203b9756f5 Return to unstable 2022-06-16 08:33:58 -06:00
Travis Ralston 98db9a6d04 v1.3 changelog generation 2022-06-16 08:31:07 -06:00
Travis Ralston 1474427599 v1.3 2022-06-16 08:27:36 -06:00
David Robertson 6af499361e
Revert "Note a more efficient computation of the auth difference. (#1119)" (#1132)
* Revert "Note a more efficient computation of the auth difference. (#1119)"

This reverts commit a707266e50.

* Changelog

* Delete 1132.misc

Co-authored-by: Travis Ralston <travpc@gmail.com>
2022-06-16 08:21:52 -06:00
David Robertson 2ee2172cf5
Better description of the mainline of a PL event. (#1107) 2022-06-15 16:12:50 +01:00
David Robertson a707266e50
Note a more efficient computation of the auth difference. (#1119) 2022-06-15 12:32:58 +01:00
Alexey Rusakov 6792b7a9d6
Use type: integer, format: int64 for timestamps (#1129)
* Use type: integer / format: int64 for timestamps

Closes #749.

* Changelog
2022-06-15 00:32:55 -06:00
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
2022-06-14 22:04:10 -06:00
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
2022-06-14 22:03:53 -06:00
Alexey Rusakov 980d9cd6e9
openapi_extensions.md: fix typos and leftovers (#1128)
* openapi_extensions.md: fix typos and leftovers

dump-swagger had to substitute things in the past - these days it
just merges definitions.

* Changelog
2022-06-14 22:02:52 -06:00
Neil Alexander 1a994f6119
Add m.federate into the auth rules (#1103)
* Add section about `m.federate` into the auth rules

* Add changelog entry

* Update changelog, add to room version 10 event auth rules
2022-06-14 17:08:33 +01:00
David Robertson 580be61df7
Conflicted state set is a set of events (#1120)
In #1042 I incorrectly wrote that the conflicted state set is a set of
pairs (K, V). We later take the union of the conflicted state set and
the auth difference. The latter is a set of events (V) only.

Fix this by making the conflicted state set a set of events rather than
a set of pairs. That is, the conflicted state set is a a `Set[Event]`
instead of a `Set[((type, state key), event)]`.
2022-06-14 17:07:16 +01:00
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
2022-06-14 16:35:18 +01:00
Hubert Chathi 10615c5385
Merge pull request #1113 from zecakeh/refresh-token-inhibit
`refresh_token` is omitted if `inhibit_login` is true
2022-06-13 05:30:47 -04:00
Hubert Chathi 3fbaced8be
Merge changelog with changelog for #1056 2022-06-13 05:27:17 -04:00
Kévin Commaille 86f984b1b6
Changelog
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2022-06-11 17:52:48 +02:00
Kévin Commaille c665f7fcb6
refresh_token is omitted if inhibit_login is true
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2022-06-11 17:47:20 +02:00
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
2022-06-09 02:24:41 -06:00
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>
2022-06-08 15:32:55 -06:00
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>
2022-06-08 15:22:47 -06:00
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>
2022-06-07 17:27:53 -06:00
Hubert Chathi 8d82366cf2
Merge pull request #1056 from uhoreg/refresh_token_spec
Add spec for refresh tokens
2022-06-02 16:29:22 -04:00
Hubert Chathi 9bf02ada55 don't need securityDefinitions since we don't use access token 2022-06-02 16:19:11 -04:00
Hubert Chathi ef3df9d549
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2022-06-02 16:17:46 -04:00
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>
2022-05-31 14:33:04 -06:00
Hubert Chathi 91b2a49b6f apply suggestions from review, and other clarifications 2022-05-31 16:19:15 -04:00
Hubert Chathi 84747f90e8 Merge branch 'main' into refresh_token_spec 2022-05-31 16:16:27 -04:00
Travis Ralston 10bd1b5038
Re-add timestamp massaging (#1094)
* Re-add timestamp massaging

Per [MSC3316](https://github.com/matrix-org/matrix-spec-proposals/pull/3316)

* changelog
2022-05-31 09:24:45 -06:00
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
2022-05-31 09:24:25 -06:00
Travis Ralston 515269b2e3
Unify & standardize the v1.3 changelog (#1102)
* Reference MSCs where MSCs were not being referenced.
* Alter language to appear consistent and from a single voice.
* Bundle and group various changes together (will affect the final changelog - the rendered one still doesn't bundle appropriately).
* Move entries to the spec area they are intended to be in.
2022-05-31 09:24:06 -06:00
Hubert Chathi 2780055198
clarify federation Authorization header an add destination property (#1067)
* clarify federation Authorization header an add destination property

* add changelogs

* some clarifications

* more clarifications, fixes

* use HTML in the added-in/changed-in shortcodes

* Apply suggestions from code review

Co-authored-by: Travis Ralston <travpc@gmail.com>
2022-05-30 15:33:56 -06:00
David Robertson 3f7b0e80a3
Minor drive-by state res clarifications (#1042)
* Opinionated rewrite of unconflicted state map

* Define auth chain
2022-05-30 14:13:55 +01:00
David Robertson 25a9dcfd3c
Clarify that the resident server should sign the restricted join (#1093)
* Clarify that server should sign the restricted join

* Changelog

* Changelog
2022-05-27 20:04:09 -06:00
Alexey Rusakov e38c4e6f17 Revert accidentally pushed commits
This reverts commits:
c11991f9de.
f8bf0fa0ac.
7abdd45c06.
92db4e20da.
2022-05-27 18:23:06 +02:00
Alexey Rusakov 92db4e20da /password: formalise 'default' for logout_devices 2022-05-27 18:18:47 +02:00
Alexey Rusakov 7abdd45c06 notifications.yaml: Use int64 for timestamp 2022-05-27 18:18:47 +02:00
Alexey Rusakov f8bf0fa0ac profile.yaml: require displayname/avatar_url
This makes a deliberate choice for the question stated in #2717.
2022-05-27 18:18:47 +02:00
Alexey Rusakov c11991f9de openapi_extensions.md: add a clarification for oneOf 2022-05-27 18:18:47 +02:00
Richard van der Hoff bb47f08ee7
Remove broken "token-based" link (#1081)
This used to link to a section in the UIA docs (https://matrix.org/docs/spec/client_server/r0.6.1#token-based), 
but that was removed in 7c6636a5.
2022-05-25 11:27:30 +01:00
David Robertson c4e54509db
PDU check 5 should consult state before an event (#1070) 2022-05-23 18:22:33 +01:00
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
2022-05-17 13:03:32 -04:00
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
2022-05-11 11:14:24 -06:00
David Robertson 9ede29a01d
Attempt to define a valid event (#1045)
* Attempt to define a valid event

Resolves #1044.

Well, maybe.

* Changelog

* link to /rooms, thanks Travis

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

Co-authored-by: Travis Ralston <travpc@gmail.com>
2022-05-10 13:51:23 -06:00
Alexey Rusakov 61e7a73a4f
Drop lifetime from the call answer event example (#1054)
* Drop lifetime from the call answer event example

* Changelog
2022-05-10 13:40:01 -06:00
David Robertson 29e7036043
Auth rules: PDU content definitions cross-refs (#1050)
* Auth rules: PDU content definitions cross-refs

* Changelog

* Apparently v6 & v7 auth rules aren't in fragments
2022-05-10 13:31:19 -06:00
David Robertson 81d61d87f4
Italicise primes and brackets in state res desc (#1043)
* Italicise primes and brackets in state res desc

I don't like it but it seems to make things look decent in Firefox.
This is probably good enough---we're not Knuth, after all.

Additionally I have avoided the use of `*E*'s` as in "E's prev_events"
since the apostrophe looks poor here.

Resolves #774.
An alternative to #1040.

* Changelog
2022-05-10 13:29:29 -06:00
Hubert Chathi 4b5c6ff1fd Merge branch 'main' into refresh_token_spec 2022-05-10 15:23:01 -04:00
Travis Ralston 72c047d336 Move changelog to correct directory 2022-05-10 13:21:13 -06:00
Hubert Chathi d692062e3a add changelog 2022-05-10 15:17:09 -04:00
Hubert Chathi 1f81587154 add spec for refresh tokens 2022-05-10 15:09:27 -04:00
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>
2022-05-10 19:34:22 +02:00
Travis Ralston fd2d5b8a49
Fix a few more instances of matrix-doc being used; Fix changelog support for repo split (#1051)
* Use spec-proposals repo for links in spec text and current changelog

* Make the changelog repo-aware

* Changelog
2022-05-10 08:59:54 -06:00
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.
2022-05-09 01:28:17 -06:00
Aaron Raimist c657932830 Update the default room version to 9 (#3739)
* Update the default room version to 9

Spec PR for [MSC3589](https://github.com/matrix-org/matrix-doc/pull/3589)

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

* Add changelog

Signed-off-by: Aaron Raimist <aaron@raim.ist>
2022-05-09 01:28:17 -06:00
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>
2022-05-09 01:28:17 -06:00
Jonas Platte 71601a5ff5 Fix broken link in end_to_end_encryption.md (#3708) 2022-05-09 01:28:17 -06:00
Alexandre Franke 632c224ec3 Warn of untagged operations (#3699)
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
2022-05-09 01:28:17 -06:00
Tulir Asokan 9b0bd0917d Fix join membership auth rules when join_rule is knock (#3737)
Fixes #3736
2022-05-09 01:28:17 -06:00
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>
2022-05-09 01:28:17 -06:00
Travis Ralston b6f2b172a6 Clarify that the X-Matrix validation uses the parsed request body (#3727) 2022-05-09 01:28:17 -06:00
Travis Ralston 2997c9089d
Merge pull request #1035 from thomaslantern/thomasws_branch
removed m.room.message.feedback
2022-05-05 15:34:37 -06:00
Travis Ralston 3c4b65849e Move changelog to the correct place 2022-05-05 15:29:45 -06:00
Travis Ralston 0cb0ff3f98
Update changelogs/client_server/newsfragments/3582.clarification 2022-05-05 15:23:42 -06:00
Richard van der Hoff a164302164
Get rid of the proprosal-in-review label (#1036)
Everything is in review. We may as well just use the draft state for WIP stuff.
2022-05-03 13:45:44 +01:00
thomaslantern 823b373601 added changelog 2022-05-02 11:21:35 -04:00
Travis Ralston 39d472fac0
Merge pull request #1038 from dkasak/dkasak/fix-hs-name-in-example
Fix origin server name in S2S Request Authentication example.
2022-05-01 19:39:47 -06:00
Travis Ralston d8bab31f76
Merge pull request #1037 from DMRobertson/dmr/state-res-bold-defs
Stateres v2: Use bold to introduce definitions.
2022-05-01 19:39:24 -06:00
Denis Kasak 2857511a02 Changelog 2022-04-29 17:11:31 +02:00
Denis Kasak c67df81202 Fix origin server name in S2S Request Authentication example.
The JSON payload listed a different origin HS name from the one
mentioned in the Authorization header.
2022-04-29 17:06:08 +02:00
David Robertson 05da3dc621
Changelog 2022-04-29 15:52:29 +01:00
David Robertson 5181de4080
Stateres v2: Use bold to introduce definitions.
Otherwise they are inline into the paragraph without punctuation, and
hard to read.

I'm guessing that pandoc did a poor job of converting a LaTeX
`begin{description}...\end{description}` or `\paragraph{...} ...` to
Markdown.
2022-04-29 15:41:26 +01:00
thomaslantern 842106d9d8 removed m.room.message.feedback 2022-04-20 22:53:53 -04:00
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.
2022-04-20 16:36:14 +01:00
Catalan Lover 188eba6969
Correct several occurances of the old repo (#1031)
This PR aims to correct several occurances of the old repo link in proposals.md 

I have not corrected all of them as i do not wish to say that i know the correct way we should word things in these situations. The primary changes are replacing all mentions of contributing.rst with the updated link that will work. 

I also changed the line about related MSCs or Doc issues to be Spec issues since i think this is a clear enough case for me to be willing to guess what is appropriate.
2022-04-19 12:53:20 +01:00
Andrew Morgan b9500a7548
Update the 'unstable' copy of the site every night at 2am UTC (#1028) 2022-04-12 12:52:12 -07:00
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.
2022-04-05 15:01:23 +01:00
Richard van der Hoff 03cdea4b57
Style tweak for API rendering (#1012)
Tighter bound on the `max-width` property for paragraphs inside rendered
APIs. AFAICT it's only meant to apply to the summary.
2022-03-31 10:33:53 +01:00
Richard van der Hoff dfb1bf2a5d
Fix x-changedInMatrixVersion for API parameters (#1011) 2022-03-29 23:17:51 +01:00
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
2022-03-29 22:04:39 +01:00
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.
2022-03-29 16:47:56 +01:00
Richard van der Hoff d38663f65d
Fix syntax highlighting in rendered spec (#1008)
* Configure syntax highlighter to use CSS classes

the inline `style` attributes cause CSP errors (and don't work). Instead, we
can use proper CSS classes.

* Configure response headers for Hugo dev server

make the dev server serve response headers which match the live site, for
better testing.
2022-03-29 16:02:48 +01:00
Andrew Morgan 5a54ca66d1
Replace deprecated Page.Dir with Page.File.Dir (#988) 2022-03-29 15:03:41 +01:00
David Robertson 46f98796b6
Correct title location in login flow definition (#1003) 2022-03-29 15:01:57 +01:00
Jonas Platte 17448083cf
Clarify that the url field in m.room.avatar events is not required. #987) 2022-03-22 13:33:12 +00:00
Travis Ralston b5cb9f7364
Merge pull request #997 from Famedly/nico/fix-missing-object-type
Add missing object type to openapi client event
2022-03-16 09:07:20 -06:00
Nicolas Werner 9a3da0b574 Add missing object type to openapi client event
Signed-off-by: Nicolas Werner <n.werner@famedly.com>
2022-03-16 15:24:03 +01:00
Richard van der Hoff 4da11a99c3
Fix newsfile CI check (#993)
Turns out this check, introduced in #990, didn't actually work right.
2022-03-09 16:08:51 +00:00
Richard van der Hoff dfdc840bb6
GHA job to check newsfragments. (#990) 2022-03-09 10:19:09 +00:00
Richard van der Hoff ed2059900a
Add a codeowners file for matrix-spec (#991) 2022-03-09 10:16:42 +00:00
Richard van der Hoff 284d0e201f
Mark type in AuthenticationData as optional (#989) 2022-03-08 18:42:05 +00:00
Richard van der Hoff d199c05e97
Suppress scroll-anchoring in the sidebar (#992) 2022-03-08 17:54:00 +00:00
Richard van der Hoff 7293744a5e
Rename changelogs/server_server/3703.clarification to changelogs/server_server/newsfragments/3703.clarification 2022-03-08 15:36:46 +00:00
Richard van der Hoff 24b23ec32a
Rename changelogs/client_server/3690.clarification to changelogs/client_server/newsfragments/3690.clarification 2022-03-08 15:35:46 +00:00
Richard van der Hoff 3618a3fc2d
Rename changelogs/3711.clarification to changelogs/client_server/newsfragments/3711.clarification 2022-03-08 15:35:26 +00:00
Richard van der Hoff 3747d8b8e2
Merge pull request #980 from anoadragon453/anoa/ground_control_to_major_version
Switch `%CLIENT_MAJOR_VERSION%` in /login endpoint for current /login version
2022-03-03 11:22:03 +00:00
Andrew Morgan 32b93d961e Switch %CLIENT_MAJOR_VERSION% in /login endpoint for current /login version
This was left over from the days of all CS API endpoints sharing
the same major spec release version.
2022-03-03 10:45:51 +00:00
Richard van der Hoff 96716f3eec
Merge pull request #977 from aaronraimist/patch-1
Remove mention of `/proposals` from README
2022-03-02 07:50:38 +00:00
Aaron Raimist bde18bf98e
Remove mention of /proposals from README
95edf9b494 removed the folder from the repo
2022-03-01 19:52:58 -06:00
Richard van der Hoff 95edf9b494 Remove proposals from this repository 2022-03-01 17:34:28 +00:00
Richard van der Hoff ca466b5a57
Attempt to clarify how event_match works (#3690)
Fixes #3082, #2637, #3075.
2022-02-17 08:41:46 +00:00
Will Hunt c420fc49a0
Fix m.login.appservice -> m.login.application_service (#3711)
* Fix m.login.appservice -> m.login.application_service

Implementations seem to agree with the proposal, so I'd suggest we fix the typo in the spec. I don't *think* this needs a MSC as the original proposal was fine, and this was just a copy error.

* Create 3711.clarification

* Update 3711.clarification

* Update changelogs/3711.clarification

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

Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-02-14 11:22:59 -07:00
Richard van der Hoff f989d323c0
Update v1.2 changelog with missed PR (#3705) 2022-02-11 11:05:49 +00:00
Andrew Morgan 868949908c
Use yaml.safe_load in check-swagger-sources.py (#3719) 2022-02-10 09:45:36 -05:00
Andrew Morgan 0d634b1935
Use yaml.safe_load instead of yaml.load in check-event-schema-examples.py (#3716) 2022-02-09 10:51:56 +00:00
Hubert Chathi d06f05571f move changelog to the right place 2022-02-08 09:21:08 -05:00
Richard van der Hoff 1913812a90
Clarify send_join response (#3703) 2022-02-07 12:13:44 +00:00
Andrew Morgan e7adfd5ed1
Fix missed rst->md numbered list syntax for m.room.server_acl (#3681)
* Fix missed rst->md numbered list syntax
2022-02-06 12:49:56 -05:00
Richard van der Hoff c400dc99c0
Update dependencies (#3707)
https://github.com/advisories/GHSA-566m-qj78-rww5 is a thing. I don't think
it's directly relevant to us, but upgrading is good.
2022-02-04 10:25:03 +00:00
Travis Ralston 956a22da11 return to unstable 2022-02-02 10:05:53 -07:00
Travis Ralston e488a7fb6d v1.2 changelog 2022-02-02 10:05:30 -07:00
Travis Ralston 4b78d22e8c release steps: fastforward main 2022-02-02 10:03:19 -07:00
Travis Ralston fb2aa688db prep for v1.2 2022-02-02 09:59:10 -07:00
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>
2022-02-02 08:51:07 -07:00
Travis Ralston 0f9eadd1a1
Fix knock->leave transition in auth rules (#3694)
* Fix knock->leave transition in auth rules

This was an oversight from knocking being added.

For safety, this has been verified as at least intended by Synapse to work:
f5e2cde3f5/synapse/event_auth.py (L390-L391)

* changelog
2022-02-02 08:41:49 -07:00
Matthew Hodgson 2cd2a7122c
MSC3676: Transitioning away from reply fallbacks (#3676)
* MSC3676: Transitioning away from reply fallbacks

* msc number

* md fails

* typoe

* Update proposals/3676-transitioning-away-from-reply-fallbacks.md

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

* incorporate feedback

* consolidate justification

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2022-02-02 07:59:18 -07:00
devonh dd32431b85
Fix broken link in server-server signing events section (#3528)
Co-authored-by: Andrew Morgan <andrew@amorgan.xyz>
2022-02-01 11:55:35 -05:00
devonh fc5ba959ca
Separate PDU terms from their definitions (#3527)
Co-authored-by: Andrew Morgan <andrew@amorgan.xyz>
2022-02-01 10:18:42 -05:00
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.)
2022-02-01 15:05:08 +00:00
Travis Ralston d4c74d37a9
Update documentation style & fix room version heading order (#3683)
* Update documentation style & fix room version heading order

Also add a missing signing key section to v6.

This additionally contains various edits to the fragments to have them make a little bit more sense in context.

Finally, this updates various aspects of the documentation style which haven't previously been considered - they're added here considering we're in the area.

* changelog

* enhanced changelogs

* Minor wording adjustments

* Apply suggestions from code review

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>
2022-01-31 15:18:58 -07:00
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>
2022-01-31 17:19:56 +00:00
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
```
2022-01-31 10:31:29 +00:00
Travis Ralston 2e5cc42666
Update node-fetch dependency & lockfile version (#3670)
Modern versions of node and npm should be compatible with this format.

Supersedes https://github.com/matrix-org/matrix-doc/pull/3668
2022-01-27 11:13:02 -07:00
Travis Ralston df1d150142 Add missing changelog 2022-01-26 12:22:47 -07:00
Travis Ralston 59f4d7ffed Revert fix to appendices 2022-01-26 12:19:13 -07:00
Matthew Hodgson 20aa44bd13
typoes (#3680)
* typoes

* Appease the faulty spellcheck on the json too

Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-01-26 12:14:09 -07:00
Richard van der Hoff 4a9c236572 Changelogs for #3674 2022-01-26 11:00:30 +00:00
Richard van der Hoff c3b53d5ae6
comments on resolve-allof (#3657) 2022-01-26 10:50:48 +00:00
Richard van der Hoff 783624d2cd
Fix rendering of responses with empty bodies (#3674) 2022-01-26 10:50:09 +00:00
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.
2022-01-26 10:47:29 +00:00
Matthew Hodgson c151353956 s/master/main/g otherwise we link to stale content 2022-01-25 23:40:32 +00:00
Travis Ralston 4a597ace51
Re-add knock's otherwise, reject per MSC2403 (#3661)
* Re-add knock's `otherwise, reject` per MSC2403

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

* changelog + changelog for 3432
2022-01-19 17:12:48 -07:00
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
2022-01-19 13:30:09 -07:00
Alexandre Franke b6b98410c1
🐛 openapi: prepend basePath to all paths (#3642) 2022-01-19 15:39:41 +01:00
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>
2022-01-18 09:55:34 -07:00
Travis Ralston 3475ef62ab
Remove straggling case of "groups" (#3652)
* Remove straggling case of "groups"

* changelog
2022-01-18 08:58:58 -07:00
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.
2022-01-18 08:54:28 -07:00
Travis Ralston 97a8b0bb13 spelling 2022-01-17 13:12:56 -07:00
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>
2022-01-17 10:03:14 -07:00
Patrick Cloke 21882b6006
MSC3567: Allow requesting events from the start/end of the room history (#3567)
* Initial cut of MSC to standardize from being optiona on /messages requests.

* Fix typo.

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

* Clarifications of start/end.

* Add information about back-paginating excluded events.

Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-01-16 13:14:54 -07:00
Hubert Chathi 16ec511e9c MSC2675: Serverside aggregations of message relationships (#2675)
* initial version of serverside aggregations proposal

* fix MSC numbers

* clarification

* add e2ee section from 2674 here, as it is only needed for server-side aggregations

* move edge case wrt to calling /context on a relation here from 2674

* fix typo

* clarify which APIs should bundle relations

* move stale_events over to future extensions section

* summarize stale_events and make tone conditional to mark that is not part of the MSC

* casing and wording

* clarify in summary an API for requesting relations is also proposed

* remove proposal for batch get event api as is unused and unimplemented

* attempt to clarify relations vs aggregations

* clarify pagination and align it with synapse impl already in the wild

* conciseness

* better headers

* clarify that relations are always returned, contrary to aggregations

* document the limitation of the event type not being known in e2ee rooms

* specify that redacted relations are not aggregated

* remove type in (non-binding) example as synapse doesn't do this

* mention that these are just examples

* clarify that this is a non-normative example

* Update proposals/2675-aggregations-server.md

Co-authored-by: David Baker <dbkr@users.noreply.github.com>

* add http method for endpoint list

* line break

* remove "unbundled relations" term, it's just confusing

instead use relation events,
with the bundled form now called aggregation

also restructure the headings so we have on section about aggregations
and another one about querying relation events

* some more restructuring of text after changing doc structure

* mention original_event for m.replace relations

* remove dir param as it is unused and unimplemented

* clarify that relating pending events should happen by transaction_id

* remove unimplemented /aggregations/{eventID}//{eventType}/{key}
 endpoint

* Update proposals/2675-aggregations-server.md

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

* mention that the server might not be aware of all the relations

* clarify that redacted events should still return their relations and aggregations respectively

* remove /context edge case, it should not be special-cased

* Update proposals/2675-aggregations-server.md

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

* Update proposals/2675-aggregations-server.md

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

* Update proposals/2675-aggregations-server.md

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

* bad example, replies doesn't use relations

* clarify that we dont bundle discrete events

* clarify that we dont bundle discrete events, again

* improve example

* clarify this MSC does not use a prefix

* better english

* clarify pagination in example

* better english

* remove contradication: m.reference doesn't support pagination but example mentions it

* double punctuation

* clarify that only the bundled aggregation limit for truncation can't be set by the client, /aggregations does have a limit param

* move e2ee limitation to limitations section

* clarify prefixes

* mention that state events never bundle aggregations

* Update proposals/2675-aggregations-server.md

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

* add that the visibility of relations can derive from that of the target

* typsos

* be more explicit

* moar rewording

* keep related parts together

* don't make a relation invisible because the target event isn't

also clarify what to do with relations for which the target is invisible

* Update proposals/2675-aggregations-server.md

Co-authored-by: David Baker <dbkr@users.noreply.github.com>

* better words

* Update proposals/2675-aggregations-server.md

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

* Update proposals/2675-aggregations-server.md

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

* Update proposals/2675-aggregations-server.md

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

* Update proposals/2675-aggregations-server.md

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

* be more precise when clients should ensure the key is shared

* mention that ignored users can cause different aggregations for users

* move visibility rule changes to MSC3570

* don't overspecify visibility limitation, allow for unspecified behaviour

as synapse includes the invisible events in the aggregation

* Update proposals/2675-aggregations-server.md

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

* Update proposals/2675-aggregations-server.md

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

* Update proposals/2675-aggregations-server.md

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

* Update proposals/2675-aggregations-server.md

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

* Update proposals/2675-aggregations-server.md

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

* move non-normative note to below example

* make rel_type mandatory as the response structure doesn't allow for mixing types

* fix typo/thinko

* make pagination forward only as there is no use case for backwards

* Update proposals/2675-aggregations-server.md

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

* add non-normative aggregation examples

* Update proposals/2675-aggregations-server.md

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

* use relation type rather than rel_type

the former is already define as the latter in MSC 2674

* change trailing slashes remark to event_type, rel_type is mandatory now

* reword and split out client-side aggregation section

* rename parent event to target event, the term used elsewhere

* apply suggestion

* apply suggestion

* remove pagination

* remove mentions of /aggregations endpoint after removing pagination

* add note about not bundling into state events

* restructure headers so more of the aggregations stuff is under section

* make rel_type mandatory for /relations and better wording

* remove confusion that aggregations contain more info than relations

* Update proposals/2675-aggregations-server.md

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

* Update proposals/2675-aggregations-server.md

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

* mention that tokens from /sync, /messages can be used on /relations

* try not to be overly prescriptive

* remove edge case of ignoring events without target event, as ignoring is not always safe

* clarify limitation for encrypted rooms

* make rel_type optional again for /relations

* Update proposals/2675-aggregations-server.md

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

* Update proposals/2675-aggregations-server.md

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

* Update proposals/2675-aggregations-server.md

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

* Update proposals/2675-aggregations-server.md

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

* Update proposals/2675-aggregations-server.md

Co-authored-by: Matthew Hodgson <matthew@arasphere.net>

* mention requires auth and rate-limited on /relations

* replace hypothetical examples for bundled aggregations with non-normative ones

* move to MSC 2676 as it's specific to edits

* dont repeat how local echo using transaction_id works

Co-authored-by: Bruno Windels <bruno@windels.cloud>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Matthew Hodgson <matthew@arasphere.net>
2022-01-15 15:07:44 -07:00
Hubert Chathi 6fb684397a
Clarify how to interpret missing one time key counts (#3636) 2022-01-11 15:30:46 -05:00
Richard van der Hoff 2a5e33a760
Revert "add node_modules (#3632)" (#3633)
This reverts commit cf73fb97bc.

this was a duplicate of an existing entry
2022-01-10 13:12:17 +00:00
Jonathan de Jong cf73fb97bc
add node_modules (#3632) 2022-01-08 13:12:18 -07:00
Andrew Morgan a8f7723fe5 Rename assets-hugo directory to assets (#3259)
Now that we've dropped the old build pipeline (and an assets directory does not exist in the repo any longer, we can rename the hugo version of the assets (assets-hugo) created during the build tools migration back to simply assets.
2022-01-06 10:37:13 +00:00
Alexandre Franke 7e92964dc5
🚚 Rename OpenAPI artifact (#3621)
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>
2022-01-06 09:36:06 +01:00
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
2022-01-05 10:57:59 -07:00
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>
2022-01-04 20:35:21 -07:00
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
2022-01-04 20:29:40 -07:00
Travis Ralston 00169abcdb
Specify module order manually to work around hugo issues (#3612) 2022-01-04 20:29:10 -07:00
Travis Ralston 0ee58100c4
Add capabilities described by MSC3283 (#3614)
* Add capabilities described by MSC3283

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

* changelog
2022-01-04 20:28:42 -07:00
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>
2022-01-04 20:27:58 -07:00
Travis Ralston 20bd445602
Add a changelog for the appendices (#3609)
As a document which is versioned, we should have a changelog for it. It might be empty most of the time but oh well.
2022-01-04 20:23:02 -07:00
Lukas Lihotzki 4415e36a74 dump-swagger.py: include untagged operations (#3326) 2022-01-04 11:58:34 -07:00
Richard van der Hoff 3be746c9d3
Fix rendering of response examples (#3584)
* Fix rendering of response examples

Fixes the autogeneration of JSON examples for array objects. This fixes a
number of "Specification error: Example invalid or not present" errors in the
rendered spec.

* Unbreak examples for non-objects/arrays

The previous change had broken auto-generated examples for everything that
wasn't an object or array; fix it up again.

* Remove conditions on $example

Everything should now have a generated example, so the condition is
redundant. Furthermore it was suppressing examples for APIs where the example
was an empty dict.
2022-01-04 16:47:58 +00:00
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.
2022-01-04 16:45:10 +00:00
Travis Ralston 592cbd537c
Describe matrix: URI scheme (#3608)
* Copy spec PR near-verbatim from past PR

With light review being addressed.

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

* Alter for modern day

* Add changelog

* specify that we're using the grammar
2021-12-30 22:11:09 -07:00
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
2021-12-30 22:07:45 -07:00
Travis Ralston 4734f40098 Add hugo build lock to gitignore 2021-12-29 14:58:26 -07:00
Travis Ralston afc5298f11
Replace s2s join sequence diagram for legibility (#3603)
Without the vertical lines it's a bit difficult to parse. A different tool was used to generate the graph this time.
2021-12-29 11:58:14 -07:00
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>
2021-12-29 11:30:32 -07:00
Travis Ralston dfec7d687e Remove extraneous slash 2021-12-29 10:17:26 -07:00
Alexandre Franke 6972342611
🐛 Fix base URL for OpenAPI definition (#3602)
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
2021-12-29 10:01:32 -07:00
Travis Ralston afb6867232 Decorate the rest of the appservice login stuff too 2021-12-28 14:23:23 -07:00
Travis Ralston 76aaf39811 Decorate Matrix version on appservice login 2021-12-28 14:21:57 -07:00
Will Hunt a05706780d Add m.login.appservice to the spec (#3324)
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubertc@matrix.org>
Co-authored-by: Travis Ralston <travisr@matrix.org>
2021-12-28 14:18:44 -07:00
Travis Ralston 3ebe4e801b Fix historical spec build 2021-12-28 12:50:39 -07:00
Alexandre Franke b55cc15772
Fix links in OpenAPI description nodes (#3598)
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>
2021-12-28 18:14:44 +01:00
Travis Ralston 00ee4d7010 Add changelog 2021-12-28 09:18:13 -07:00
Aaron Raimist 01cd41de68
Add GitHub Action to check spelling (#3591)
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-12-28 09:17:49 -07:00
Travis Ralston d2fd90579b Add changelog 2021-12-28 09:16:18 -07:00
homersimpsons 9efe1887a4
instant_messaging: fix intra docs anchors (#3601)
Signed-off-by: homersimpsons <guillaume.alabre@gmail.com>
2021-12-28 09:16:05 -07:00
Shay 3ce9c1d288
MSC3550: Allow HTTP 403 as a response to profile lookups (#3550)
* add 403 proposal

* add msc number to file and filename

* correctly use markdown

* requested changes

* add links

* specify error code

* Update proposals/3550-allow-403-response-profile-lookup.md

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

* fix formatting typo

Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-12-26 12:01:43 -07:00
Shay 87fcb7c8b0
Clarify that base_url in client well_known may or may not include trailing slash (#3562)
Fixes #3465. The change adds a line explicitly warning developers that the base_url of client well_known may or may not include a trailing slash and to be prepared to handle both cases.
2021-12-23 10:12:25 +00:00
Alexandre Franke 71ff06fd7a
⚰️ Remove leftover CircleCI config (#3579)
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>
2021-12-21 16:44:09 +01:00
Travis Ralston 336194aee4
Patch the release process docs (#3568)
* Add a release branch to avoid orphaned commits.
* Specify a patch process.
* Match reality and reference the internal deployment process.

This is largely what we do in practice now, including a created `release/v1.1` branch.
2021-12-21 08:24:43 -07:00
Hubert Chathi 71988263f3
clarify which signature to check (#3573) 2021-12-17 08:45:19 -05:00
Travis Ralston 0fbc6bdab6
Definition of "Standard Identifier Format" (#3171)
Spec for https://github.com/matrix-org/matrix-doc/pull/2758
2021-12-15 11:38:29 +00:00
Richard van der Hoff 4b866adac1
Bump validator dependency to 13.7.0 (#3566)
`validator` 13.6 has a security advisory:
https://github.com/advisories/GHSA-qgmg-gppg-76g5

I don't think it really affects us but it's making annoying noise in the repo.
2021-12-15 11:07:25 +00:00
Alexandre Franke d25fa13e6d
💚 Update PR description editing action (#3558)
Switch to upstream and use a more recent version.
Fixes failure to edit on empty descriptions.

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>
2021-12-09 09:14:03 +01:00
Alexandre Franke 806ae22da7
🚀 Make OpenAPI definition available (#3542)
* 🚀 Make OpenAPI definition available

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

* 💚 Fix artifact name

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

* 💚 Introduce dependency between jobs

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

* 🚀 Make historical definitions available

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

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
2021-12-08 19:28:08 -07:00
Matthew Hodgson 87822fa105
MSC3419: Allow guests to send more event types (#3419)
* MSC3419 - Guest state events

Let guests send state events. Needed for guests to work with native
group voip in #3401

* typo

* Update 3419-guest-state-events.md

incorporate @clokep clarification

* also let guests send non-m.room.message events in general.

* Update proposals/3419-guest-state-events.md

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

* Update proposals/3419-guest-state-events.md

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

* wordwrap

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-12-08 10:21:30 -07:00
Richard van der Hoff 86fb65a4bd
GHA: url-encode branch name in pull-request search (#3541) 2021-12-03 13:34:55 +00:00
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.
2021-12-02 17:23:09 +00:00
Richard van der Hoff 7f200c53e8
Move prev_content to unsigned (#3524) 2021-12-02 17:22:58 +00:00
David Robertson 1e12b45f97
Clarifications to /sync description (#3534)
* Clarify that E0 and E1 are not returned

* Clarify that ASCII art diagram 2 refers to diagram 1

* Correct third ASCII art diagram

To match the spacing in. Borked in the move to new docs format.

55aed1d296/specification/client_server_api.rst (L1610-L1615)

* Make ASCII art 3 follow from ASCII art 2

* Explain how to fill the gap

* Create 3543.clarification

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

Co-authored-by: Travis Ralston <travisr@matrix.org>
2021-12-01 16:28:31 -07:00
Alexandre Franke a26f2f8ca9
Fix typo (#3535)
* Fix typo

* Add changelog

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
2021-12-01 09:49:43 -07:00
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.
2021-11-24 12:31:14 +00:00
Hubert Chathi 9654bf19b3 MSC2674: Event Relationships (#2674)
* initial version of event relationship MSC

* fix MSC numbers

* clarifications

* mention multiple relations per event might be useful, but postpone for a future MSC

* mention MSC 3051 for proposed multiple relations

* remove send_relation endpoint

* move e2ee section under sending relations

* mention limitation of leaving server-side aggregations out for now

* remove mentions of m.reference, we'll sort that out in another MSC

* whitespace

* argument why m.relates_to should be preserved by redactions more general

but still give example of redacted edits

* deal with this in the comments

* clarify the conditions to meet for a relation

* mention specifically that this does not replace replies (yet)

* clarify how general rel_types should be

* clarify that gaps may cause clients to be unaware of some relations

* Update proposals/2674-event-relationships.md

Co-authored-by: DeepBlueV7.X <nicolas.werner@hotmail.de>

* Update proposals/2674-event-relationships.md

Co-authored-by: DeepBlueV7.X <nicolas.werner@hotmail.de>

* make wording clearer and move to bottom of section

* remove this as references are not defined here anymore

* clearer wording

* move edge cases to other relevant mscs

* clarify that a goal of sticking to this format is backwards compat.

* mention MSC 3267, to which m.reference has been extracted

* Update proposals/2674-event-relationships.md

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

* Update proposals/2674-event-relationships.md

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

* Update proposals/2674-event-relationships.md

Co-authored-by: Matthew Hodgson <matthew@arasphere.net>

* Update proposals/2674-event-relationships.md

Co-authored-by: Matthew Hodgson <matthew@arasphere.net>

* Update proposals/2674-event-relationships.md

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

* wrap lines

* better wording

* this is singular, really

* add example of event shape

* specify how invalid relations should be treated by the redaction algorithm

* fix typo

* split up redactions changes in separate MSC

* also add new msc to introduction

* reword why not adopt m.in_reply_to

* remove guidelines how to pick rel_type

* mention that the target event must exist in the same room

* spell out the conscious (subject, object, verb) triple idea.

* Spelling

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

* remove paragraph saying what server should accept

* Revert "remove paragraph saying what server should accept"

This reverts commit e0271331b2e7dee236349aa63eec3cec7369e361.

* further specify that a server should reject invalid relations through the cs api

* linebreak

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

Co-authored-by: Bruno Windels <bruno@windels.cloud>
Co-authored-by: DeepBlueV7.X <nicolas.werner@hotmail.de>
Co-authored-by: Matthew Hodgson <matthew@arasphere.net>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-11-23 11:50:23 -07:00
Ankur ac98c8c08c
OpenAPI: Add missing required flag in getRoomKeys (#3509) 2021-11-22 13:23:24 -05:00
Matthew Hodgson 8d9a67d9f6
add an explicit dependencies block. 2021-11-19 15:36:14 +00:00
Richard van der Hoff f4a0c1aac5
Clarify event format text in room version specs (#3501)
Split the text about event IDs and event formats into separate sections. This
is largely to make it easier to link to, but I think the resulting text makes
more sense too.
2021-11-19 11:05:52 +00:00
Richard van der Hoff 92b29cf8e6
Add a changelog directory for room versions (#3504) 2021-11-19 11:00:37 +00:00
Richard van der Hoff d74a43f7cf
update docker instructions in README (#3502)
you need the fancy hugos.
2021-11-19 10:54:40 +00:00
Richard van der Hoff 0d8f466f39
Replace remaining CircleCI jobs with GHA (#3505)
Apparently the `build-docs` step is already happening, so we just need to port
the schema and example validation jobs.
2021-11-17 21:01:53 +00:00
Jonas Kress 0982d5c55f MSC3283: Expose capabilities for profile actions (#3283)
* Create 3278-enable_set_displayname-capabilities.md

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* Update and rename 3278-enable_set_displayname-capabilities.md to 3279-enable_set_displayname-capabilities.md

* Update and rename 3279-enable_set_displayname-capabilities.md to 3282-enable_set_displayname-capabilities.md

* Update and rename 3282-enable_set_displayname-capabilities.md to 3283-enable_set_displayname-capabilities.md

* Update proposals/3283-enable_set_displayname-capabilities.md

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

* Update proposals/3283-enable_set_displayname-capabilities.md

Co-authored-by: Will Hunt <will@half-shot.uk>

* Update proposals/3283-enable_set_displayname-capabilities.md

Co-authored-by: Will Hunt <will@half-shot.uk>

* Update 3283-enable_set_displayname-capabilities.md

* Update 3283-enable_set_displayname-capabilities.md

* Update proposals/3283-enable_set_displayname-capabilities.md

Co-authored-by: Dirk Klimpel <5740567+dklimpel@users.noreply.github.com>

* Update proposals/3283-enable_set_displayname-capabilities.md

Co-authored-by: Dirk Klimpel <5740567+dklimpel@users.noreply.github.com>

* Update 3283-enable_set_displayname-capabilities.md

* Update 3283-enable_set_displayname-capabilities.md

* Update 3283-enable_set_displayname-capabilities.md

* Update 3283-enable_set_displayname-capabilities.md

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
Co-authored-by: Will Hunt <will@half-shot.uk>
Co-authored-by: Dirk Klimpel <5740567+dklimpel@users.noreply.github.com>
2021-11-17 08:46:19 -07:00
Andrew Morgan 82254deaa1
Remove gilesbot config (#3503) 2021-11-17 10:35:18 +00:00
Ankur a8cf4d4a56
Open API: Changed RoomKeys to RoomKey (#3500) 2021-11-16 14:39:55 -05:00
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>
2021-11-15 15:58:39 -07:00
Ankur a034d45e45
typos: Corrected typos in message_pagination.yaml (#3495) 2021-11-15 15:29:07 -05:00
Patrick Cloke 9a6c86ac8d
Fix example response in MSC2946. (#3493) 2021-11-15 10:23:13 -07:00
Hubert Chathi 1ad5ff4179
Key name is supposed to be optional, as per MSC2874 (#3481) 2021-11-10 13:48:18 -05:00
Hubert Chathi 033038917d
remove extra type property (#3482) 2021-11-10 13:46:24 -05:00
Travis Ralston 67d73438ea Backport typo fix 2021-11-09 08:19:21 -07:00
Travis Ralston 2227a812a2 Reset to unstable 2021-11-09 07:23:51 -07:00
Travis Ralston 195b8a54c5 v1.1 changelog 2021-11-09 07:23:27 -07:00
Travis Ralston 8fb782c324 Matrix 1.1 2021-11-09 07:21:16 -07:00
Travis Ralston a5a27f69af
Hide room version fragments from table of contents (#3479)
The entries were text-less and not really helping anyone. They are included as pages because we need them for templating, but we don't need people to be able to land on them directly.
2021-11-09 06:40:29 -07:00
Travis Ralston 8f2e8f03d0
Normalize changelog entries (#3476)
* Remove entries which don't affect the rendered spec (sorry people using the swagger schemas - we'll have to figure out a changelog for you). See https://github.com/matrix-org/matrix-doc/issues/3475
  * Note that a breaking change is removed by this commit: key backup was introduced in this release cycle, so is not breaking.
* Use uniform references to MSCs ("as per MSC0000").
* General rewording to be consistent with the overall voice of the changelog.
* Condensing of entries where needed to make them fit in the changelog.
* Rewording to collapse entries into fewer lines.
* Spell "deprecation" correctly in file extension.
2021-11-05 13:57:39 -06:00
DeepBlueV7.X 938354b8b4
Rename threepidCreds to threepid_creds and get rid of array (#3471)
This fixes the behaviour to match what synapse implements in practice.
If you use threepidCreds, you will just get an error about a missing
threepid_creds field. Synapse also treats this as an object. All clients
also seem to send threepid_creds, if they work on Synapse. Since
matrix.org requires an email currently for registration, most clients
that implement registration, will hit this issue.

a0f48ee89d/synapse/handlers/ui_auth/checkers.py (L145)

fixes #3156
fixes #2189

Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
2021-11-04 12:03:53 +00:00
Travis Ralston 241e01c332
Fully specify room versions (#3432)
* Fully specify room versions

* Misc typo clarifications

* Try to clarify redactions a bit

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

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

* Update content/rooms/v6.md

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

* Update content/rooms/v6.md

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

* Better describe client considerations

* Doc template params

* Move redaction "new stuff" to v3

* Remove unhelpful sentences about "here follows unchanged stuff"

* Simplify event signing text

* Clean up handling redactions sections

* Move v4's event schema to unchanged section

* Update content/rooms/v4.md

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>
2021-11-01 08:49:15 -06:00
kegsay b873ba984c MSC2946: Spaces Summary (#2946)
* Spaces Summary

* MSC2946

* Clarity

* More clarity

* Clarify what no room data means for clients

* Federation API

* Update 2946-spaces-summary.md

* auto_join filter

* Blurb on auth for fed api

* Update to reflect MSC1772 changes

* Mention auth chain on federation api

* Add 'version' field

* Stripped state; remove room versions

* Update 2946-spaces-summary.md

* Update proposals/2946-spaces-summary.md

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

* Replace with link to draft doc.

* Add a preamble and copy the current draft API.

* Switch to using stable identifiers (and add an unstable identifiers section).

* Updates / clarifications.

* Fix typo.

* Clean-ups.

* Update proposals/2946-spaces-summary.md

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

* Drop unstable identifiers from MSC1772.

* Various updates and clarifications.

* Include the origin_server_ts in the response, as needed by MSC1772.

* Rename a parameter for clarity.

* Fix typo.

Co-authored-by: David Baker <dbkr@users.noreply.github.com>

* Various clarifications based on feedback.

* Add auth / rate-limiting info.

* Combine some double spaces.

* Use only GET endpoints.

* Add notes about DoS potential.

* Tweaks from review.

* Add context about why stripped events are returned.

* Remove some implementation details.

* Add notes on ordering.

* Remove unnecessary data.

* Clarify the server-server API.

* More clarifications.

* Remove obsolete note.

* Some clarifications to what accessible means.

* Update notes about sorting to include the origin_server_ts of the m.space.child event.

This reverts commit af8c7b04d9f87bb2c4292a549b7db36ae6ef2324.

* Only consider `m.space` rooms and do not return links to nowhere.

* Updates based on MSC3173 merging and updates to MSC3083.

* Updates per MSC2403.

* Remove field which is not part of the C-S API.

* Rewrite the proposal.

* Handle todo comments.

* Update URLs.

* Rename field.

* Updates based on implementation.

* Clarify the state which is persisted.

* Expand notes about errors.

* Update MSC with pagination parameter.

* Fix wrong endpoint.

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

* Clarifications based on implementation.

* Remove empty section.

* Fix typo.

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

* Rename field in example.

* Clarify error code.

* Clarify ordering changes.

* Clarify wording.

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

* Fix typos.

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

* Clarify that rooms do not belong to servers.

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

* Fix example to use correct URL.

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

* Clarify using local vs. remote data.

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

* Clarify bits aboud stripped state.

* Clarify access control of federation responses.

* Clarify error code.

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

* Be less prescriptive about expiring data.

* Limit must be non-zero.

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

* Rate limiting.

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

* Add a note about room upgrades.

* Update stable URLs per MSC2844.

* Clarify federation return values.

* Clarify `origin_server_ts`.

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Tweak wording around `inaccessible_children`.

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <richard@matrix.org>
Co-authored-by: Patrick Cloke <patrickc@matrix.org>
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2021-10-31 13:11:11 -06:00
Travis Ralston ae2d00b164 Update sas-emoji.json 2021-10-28 19:09:30 -06:00
Element Translate Bot 6f87c203b1
Translations update from Weblate (#3461)
* Added translation using Weblate (Indonesian)

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/id/

* Added translation using Weblate (Vietnamese)

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/vi/

* Added translation using Weblate (Albanian)

* Translated using Weblate (Albanian)

Currently translated at 98.4% (63 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/sq/

Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Besnik Bleta <besnik@programeshqip.org>
Co-authored-by: Weblate <noreply@weblate.org>
2021-10-28 19:08:46 -06:00
Andrew Morgan 00bf1b3f2f fix typo: word plural 2021-10-27 12:15:05 +01:00
Travis Ralston aa31247165
Add github action to build release tags (#3449)
* Build release tags of the spec

* Update .github/workflows/main.yml

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Move historical (future old) job out to its own thing

* Update for new baseurl setup

* Use hugo config overrides instead

* Remove mistakenly re-added matrix.org poke

* Restore npm stuff to main branch representations

* [2] Restore npm stuff to main branch representations

* Update .github/workflows/main.yml

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

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-10-26 15:57:03 -06:00
Travis Ralston 5ea6d5610f
Update identity server spec to use global versioning (#3459)
* Update identity server spec to use global versioning

* changelog
2021-10-26 15:47:40 -06:00
Richard van der Hoff 4a581a8048
remove unused buildkite pipeline (#3453)
the buildkite build is archived
2021-10-25 14:51:48 +01:00
Richard van der Hoff d6f73d2df3
Stop rebuilding matrix.org (#3454)
the matrix.org site no longer uses anything from this build, so let's stop
rebuilding it.
2021-10-25 14:51:22 +01:00
Travis Ralston 88e181ac1d MSC3069: Allow guests to use /account/whoami (#3069)
* Allow guests to use /account/whoami

* speling
2021-10-24 13:18:02 -06:00
Richard van der Hoff d42fce333e
proposal to move prev_content (#3442) 2021-10-24 13:17:07 -06:00
Valere 70d6a0fbeb MSC3288: Add room type to /_matrix/identity/v2/store-invite API (#3288)
* add room type in store invite

* update dev identifier purpose

* Added clarification if type not present, and on email generation

* Update proposals/3288-pass_room_type_in_3pid_invite.md

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

* Update proposals/3288-pass_room_type_in_3pid_invite.md

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

* Update proposals/3288-pass_room_type_in_3pid_invite.md

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

* Update proposals/3288-pass_room_type_in_3pid_invite.md

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

* Update proposals/3288-pass_room_type_in_3pid_invite.md

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

* Update proposals/3288-pass_room_type_in_3pid_invite.md

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

* Update 3288-pass_room_type_in_3pid_invite.md

fix typo

Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-10-23 14:18:00 -06:00
Richard van der Hoff 2803a374cb netlify.yaml: gah outputs syntax 2021-10-22 16:41:58 +01:00
Richard van der Hoff ae78375c6a netlify.yaml: gah quotes 2021-10-22 16:39:31 +01:00
Richard van der Hoff d094a70d3a netlify.yaml: increased magic 2021-10-22 16:32:39 +01:00
Richard van der Hoff f5fcde09f8 netlify.yaml: add some debugging 2021-10-22 15:49:27 +01:00
Richard van der Hoff 5be335e01b netlify.yaml: remember to unpack spec 2021-10-22 13:30:10 +01:00
Richard van der Hoff 5bd103be49 netlify.yaml: fix up run_id 2021-10-22 13:23:00 +01:00
Richard van der Hoff 17198c7e05
Deploy previews to netlify (#3455) 2021-10-22 13:17:43 +01:00
Travis Ralston e8674688e6
Release process: changelog generation and docs (#3446)
* Remove extra pyprojects and update changelog docs

* Add script for rendering the changelog

* Add docs for how to release the spec

* Move legacy changelogs out of the way
2021-10-18 10:09:35 -06:00
Richard van der Hoff 61ac438871
Remove the old templating system (#3445)
* Inline resolve_references in dump-swagger

Since this is the only bit of the old templating system we still use, let's
inline it.

OrederedLoader and OrderedDict are now redundant, because all dicts in Python
preserve insertion order.

* Remove the old templating system

We've now replaced the old templates with hugo, so we can get rid of this mess.
2021-10-15 11:40:03 +01:00
Richard van der Hoff 265ebef584
Fix dump-swagger.py for PyYAML 6.0. (#3443)
PyYAML 6.0 was released yesterday, and it finally drops support for `yaml.load`
without a `loader` argument, which has been deprecated since 2017.

We don't use any fancy yaml objects, so `safe_load` should be fine.
2021-10-14 13:25:03 -06:00
dependabot[bot] 6062e5052d
Bump ansi-regex from 5.0.0 to 5.0.1 (#3444)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v5.0.0...v5.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-14 13:24:44 -06:00
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
2021-10-14 13:23:04 -06:00
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
2021-10-12 14:47:03 -06:00
Travis Ralston f295e828dc
Fix non-permanent links in MSCs to withstand time (#3422)
As "unstable" changes and "latest" becomes no more, these sorts of links should be updated to reference the approximate section they intended to reference at the time of writing.

This change tries to link up the relevant bits for the time of the proposal, though it's not a perfect match. Some MSCs were brought into the spec before an API version could be assigned to the "old" text, so github permalinks are used instead.
2021-10-12 12:04:27 -06:00
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
2021-10-12 11:07:01 -06:00
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
2021-10-12 11:06:51 -06:00
Andy Balaam 2fc3982568
Remove extra 'an' from spec index (#3433)
Signed-off-by: Andy Balaam <andyb@element.io>
2021-10-07 07:40:47 -06:00
Andrew Fargo 43a71c0092
Remove all references to speculator (#3430)
Signed-off-by: DCFargo <drew.fargo@gmail.com>
2021-10-05 23:11:51 -06:00
Andrew Fargo f1a4a58755
Fix "invite_state" to "knock_state" (#3428) 2021-10-05 23:11:40 -06:00
Alexandre Franke 26c0c88882
🐛 Fix OpenAPI definition generation (#3418)
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
2021-10-01 10:54:16 -06:00
Travis Ralston 6226a47543
Remove defunct swagger Circle CI build (#3416)
* Remove defunct swagger Circle CI build

* Update config.yml
2021-09-28 12:26:11 -06:00
Quentin Gliech 84ccbeacca MSC2918: Refresh tokens (#2918)
* Refresh tokens MSC

* MSC2918: minor changes

* MSC2918: access token expiration as milliseconds

* MSC2918: account registration API changes

* MSC2918: fix `expires_in_ms` example

* MSC2918: add precision about token revocation

* MSC2918: specify error codes for the refresh API

* MSC2918: clarify that the change also applies to ASes

* Apply suggestions from code review

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

* MSC2918: clarify what problem this MSC solves

* MSC2918: minor formatting and rephrasing

* MSC2918: clarify ratelimiting, masquerading and authentication on refresh token API

* MSC2918: make expires_in_ms/refresh_token optional

* MSC2918: soft logout in refresh token API

* MSC2918: add detailed rationale

While not exhaustive, it outlines a few attack vectors this MSC tries to
mitigate.

* MSC2918: minor fix

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

* MSC2918: clarifications on backward compatibility

* MSC2918: advertise support in the request body

* MSC2918: clarify on what happen when token expire

* MSC2918: remove redundant precision about token expiration and lifetime

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

* MSC2918: minor clarification

* MSC2918: soft logout when using expired token

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2021-09-28 11:14:22 -06:00
Alexandre Franke 0ee4c5eeef 💚 Hardcode the master branch for matrix.org
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>
2021-09-28 10:55:58 +02:00
Alexandre Franke 26d972a997 💚 Fix branch ref
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>
2021-09-28 10:51:40 +02:00
Alexandre Franke 423d22ed23
Add API Server config for RapiDoc (#3415)
*  Add API Server config for RapiDoc

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

* Update scripts/dump-swagger.py

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
Co-authored-by: Travis Ralston <travisr@matrix.org>
2021-09-27 19:14:05 -06:00
Callum Brown 0c3b488805 MSC3231: Token authenticated registration (#3231)
* Proposal for token authenticated registration

Signed-off-by: Callum Brown <callum@calcuode.com>

* Hard-wrap lines

Signed-off-by: Callum Brown <callum@calcuode.com>

* Link to released version of spec

Signed-off-by: Callum Brown <callum@calcuode.com>

* Fix unstable prefix wording

Signed-off-by: Callum Brown <callum@calcuode.com>

* Tokens should only be invalidated after registration

Signed-off-by: Callum Brown <callum@calcuode.com>

* Change auth type to m.login.registration_token

This is consistent with the other UIAA auth types, and does not suggest
that other `m.login.*` types cannot be used for registration.

Signed-off-by: Callum Brown <callum@calcuode.com>

* Add proposal for checking the validity of a token

Signed-off-by: Callum Brown <callum@calcuode.com>

* Fix validity checking endpoint

Signed-off-by: Callum Brown <callum@calcuode.com>

* Limit allowed characters and length of token

This allows tokens to be used easily in query parameters

Signed-off-by: Callum Brown <callum@calcuode.com>

* Give reason for limiting token length and chars

Signed-off-by: Callum Brown <callum@calcuode.com>

* Note all stages must be complete for registration

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Fix mistake in MSC number

Signed-off-by: Callum Brown <callum@calcuode.com>

* Validity checking should be rate limited

Signed-off-by: Callum Brown <callum@calcuode.com>

* Change v1 to r0

Signed-off-by: Callum Brown <callum@calcuode.com>

* Include `.` and `~` in allowed characters for registration tokens

For consistency with the unreserved URL characters in RFC3986

https://www.ietf.org/rfc/rfc3986.html#section-2.3

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

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-09-27 13:28:11 -06:00
Travis Ralston b7e6104713
Remove extraneous mimetype from EncryptedFile examples, per MSC2582 (#3412)
* Remove extraneous mimetype from EncryptedFile examples, per MSC2582

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

* changelog
2021-09-27 10:05:15 -06:00
Travis Ralston 7e67aa2e23
Clarify how redacted_because actually works for events (#3411)
* Clarify how redacted_because actually works for events

* changelog

* mention federation

* Fix wording

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>
2021-09-25 12:44:04 -06:00
Jonas Platte 6e78cde3eb
Fix wrong matrix.to URL in spec appendices (#3409) 2021-09-23 10:39:47 -06:00
Alexandre Franke 08b67761f9
💚 Trigger website rebuild (#3408)
Signed-off-by: Alexandre Franke <alexandre.franke@gmail.com>
2021-09-22 12:22:16 +02:00
Alexandre Franke 845e4c87db
🐛 Fix handling of postponed proposals (#3397)
Fixes #3396

Signed-off-by: Alexandre Franke <alexandre.franke@gmail.com>
2021-09-16 09:58:28 +02:00
Patrick Cloke fa479afa97
MSC3375: Room version 9. (#3375)
* Room version 9.

* Fix text which was swapped.

* Update stability.
2021-09-03 08:14:58 -06:00
Patrick Cloke d2cb13cc8c
Add proto-MSC on the design of URL previews. (#3378) 2021-09-02 13:45:50 -06:00
Alexandre Franke 89b0ad8051
Port CI to Github Actions (#3363)
This is intended to replace the existing Buildkite one, but the latter can be removed at a later point when all the bits are in place.
2021-09-02 16:48:04 +01:00
Alexandre Franke cbe3081685
🐛 Handle empty bodies when fetching MSCs (#3374)
Signed-off-by: Alexandre Franke <alexandre.franke@gmail.com>
2021-09-02 11:55:30 +01:00
Denis Kasak ed08c1cb9e Tweak PDU diagram demonstrating prev_events. (#3340)
This tweaks the DAG to be simpler, with two linear event chains E4 -> E3
-> E2 -> E1 and E6 -> E5 -> E2 -> E1. The extremities of the DAG are now
the first and only point in the DAG where multiple event parents occur.
Since the point of the diagram is to demonstrate this very situation,
it's better didactically if there is only one such situation in the
diagram.
2021-08-31 16:51:06 +01:00
Sorunome d9dd37de0c MSC2582: Remove mimetype from EncryptedFile object (#2582)
* add proposal

* Update proposals/2582-remove-mimetype-from-encrypted-file.md

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

* Update proposals/2582-remove-mimetype-from-encrypted-file.md

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

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2021-08-30 08:31:48 -06:00
Alexandre Franke 72888c9a89 Revert per room spell check language MSC
This reverts commit 70192e8e1143ea3450db001b78b05039a3ef58b1.
This reverts commit 1b8f4e22b61196ce37dee0b230ae2c173aaa6676.
2021-08-30 08:31:40 -06:00
Alexandre Franke c7c3a76c42 Fix MSC number 2021-08-30 08:31:32 -06:00
Alexandre Franke 3eb383c120 Add per room spell check language MSC 2021-08-30 08:31:16 -06:00
Richard van der Hoff 35277ff041 Trigger the matrix.org rebuild when the main branch builds 2021-08-27 19:51:50 +01:00
Richard van der Hoff f8b83b7fb1 Replace "Pagination" section in C-S API with text in appendices (#3366)
The Pagination section in the C-S API was, basically, full of rubbish. I think that anything of any value it contained was repeated either directly on the API definitions or in the text specific to syncing at https://spec.matrix.org/unstable/client-server-api/#syncing.

The conventions I've added to the Appendices are based on the discussions in #1898. They are there because I don't want to have to go through it all again next time we add a paginated API.

Fixes: #1898
Fixes: #2268
2021-08-27 19:17:18 +01:00
Travis Ralston 3662a1cf14 Merge pull request #3365 from aaronraimist/fix-404
Fix two links on the CS API page
2021-08-27 19:17:18 +01:00
Neil Alexander 3d278b891d Add clarification on binary data and base64 encoding to Appendices (#3362)
* Add clarification on binary data and base64 encoding (closes #3341)

* Add changelog fragment

* Delete 3362.clarification
2021-08-27 19:17:18 +01:00
Aaron Raimist 525728971b Fix two links on the CS API page
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-08-27 19:17:18 +01:00
Travis Ralston 2c249fc6a1 Merge pull request #3364 from ColonisationCaptain/patch-1
Insert missing space
2021-08-27 19:17:18 +01:00
Richard van der Hoff 6bd7b6cbb5 Clarifications to pagination parameters for various APIs (#3353) 2021-08-27 19:17:18 +01:00
ColonisationCaptain 7c58999c6a Insert missing space
Insert missing space
2021-08-27 19:17:18 +01:00
Richard van der Hoff 4b2bbbabcc Start a 'conventions' section in the Appendices (#3350)
I wanted a section for "here's what new APIs ought to do", which isn't really
very useful for consumers of the existing APIs.
2021-08-27 19:17:18 +01:00
Richard van der Hoff cafb9ff5a8 Update documentation_style.rst (#3352) 2021-08-27 19:17:18 +01:00
Richard van der Hoff a187996383 Notes on how to use hugo from docker (#3349)
... and the minimum version required.
2021-08-27 19:17:18 +01:00
Richard van der Hoff 6afe10409e Update documentation_style.rst (#3351)
hugo tales commonmark.
2021-08-27 19:17:18 +01:00
Alexey Rusakov 6d2c388144 Merge pull request #3336 from lukaslihotzki/include-peek-events
OpenAPI: include peekEvents
2021-08-27 19:17:18 +01:00
Denis Kasak 14ed131761 Add newsfragment for #3339. (#3342) 2021-08-27 19:17:18 +01:00
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>
2021-08-27 19:17:17 +01:00
Denis Kasak 3fb4fcaad9 Merge pull request #3339 from matrix-org/dkasak/fix-typo-indentity
Fix typo in /_matrix/client/r0/account/3pid/delete (indentity -> identity).
2021-08-27 19:17:17 +01:00
Hubert Chathi b231220bbd Merge pull request #3337 from uhoreg/room_create_canonical_alias
room creation: create canonical alias event if alias specified
2021-08-27 19:17:17 +01:00
Denis Kasak ddbbd76b32 Fix typo in /_matrix/client/r0/account/3pid/delete. 2021-08-27 19:17:17 +01:00
Alexey Rusakov fbf4259a83 Merge pull request #3330 from lukaslihotzki/add-titles
OpenAPI: add titles
2021-08-27 19:17:17 +01:00
Hubert Chathi 8536cd3e16 drop initial state check 2021-08-27 19:17:17 +01:00
Alexey Rusakov 5749325fc3 Merge pull request #3329 from lukaslihotzki/missing-tags
OpenAPI: improve tags
2021-08-27 19:17:17 +01:00
Lukas Lihotzki 13f7df1379 OpenAPI: add titles 2021-08-27 19:17:17 +01:00
Hubert Chathi f814f86031 add changelog 2021-08-27 19:17:17 +01:00
Hubert Chathi 89089e8913 Merge pull request #3332 from lukaslihotzki/required-bodies
OpenAPI: require all bodies in cross_signing
2021-08-27 19:17:17 +01:00
Lukas Lihotzki 39e70a2902 OpenAPI: split User data tag
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
2021-08-27 19:17:17 +01:00
Alexey Rusakov 3bf7e48e13 Merge pull request #3327 from lukaslihotzki/unique-ids
OpenAPI: fix key_backup
2021-08-27 19:17:17 +01:00
Hubert Chathi ee92c94cfe Mention that a canonical alias event should be created if alias specified 2021-08-27 19:17:17 +01:00
Hubert Chathi 88479ca851 Merge pull request #3331 from lukaslihotzki/add-uia
OpenAPI: add auth property in uploadCrossSigningKeys
2021-08-27 19:17:17 +01:00
Lukas Lihotzki 1a81a46865 OpenAPI: require all bodies in cross_signing
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
2021-08-27 19:17:17 +01:00
Lukas Lihotzki 97ebe5aec2 OpenAPI: add missing tags
peekEvents remains untagged, because it is explicitly excluded.

Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
2021-08-27 19:17:17 +01:00
Andrew Morgan ff2c93af1c Use changelogs/release.yaml for the version number source everywhere (#3310)
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-08-27 19:17:17 +01:00
Lukas Lihotzki e3070bcdda OpenAPI: fix key_backup operation IDs 2021-08-27 19:17:17 +01:00
Alexey Rusakov 19a96c2484 Merge pull request #3236 from lukaslihotzki/format-uri
Use format: uri
2021-08-27 19:17:17 +01:00
Lukas Lihotzki c58d423aba OpenAPI: add auth property in uploadCrossSigningKeys
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
2021-08-27 19:17:17 +01:00
Niels Basjes cf5b519963 Explain the reasons why <hostname> TLS certificate is needed rather than <delegated_hostname> for SRV delegation. (#3322)
Signed-off-by: Niels Basjes <niels@basjes.nl>
2021-08-27 19:17:17 +01:00
Travis Ralston 8b1e4d6a79 Merge pull request #3289 from matrix-org/clokep/room-v8
MSC3289: Room version 8
2021-08-27 19:17:17 +01:00
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>
2021-08-27 19:17:17 +01:00
Travis Ralston cdcc24af11 Merge pull request #3238 from lukaslihotzki/required-bodies
OpenAPI: require all bodies in client-server
2021-08-27 19:17:17 +01:00
Patrick Cloke 268cc65198 Revert "Update redaction rules."
This reverts commit 203c107e9e689b7b7812846f78f4712b9ca22539.
2021-08-27 19:17:17 +01:00
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".
2021-08-27 19:17:17 +01:00
Lukas Lihotzki ad0ff78316 OpenAPI: require all bodies in client-server
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
2021-08-27 19:17:17 +01:00
Patrick Cloke 0b60680d33 Update redaction rules. 2021-08-27 19:17:17 +01:00
Travis Ralston f31adf19ce Merge pull request #3299 from matrix-org/clokep/restricted-rooms-redaction
Update MSC3083 with a note about redacting the allow key.
2021-08-27 19:17:17 +01:00
Matthew Hodgson 377aac16fa Update 3289-rooms-v8.md 2021-08-27 19:17:17 +01:00
Travis Ralston b84d11911f Merge pull request #3083 from matrix-org/clokep/restricted-rooms
MSC3083: Restricting room membership based on membership in other rooms
2021-08-27 19:17:17 +01:00
Patrick Cloke e229706ae4 Add note about redacting the allow key. 2021-08-27 19:17:17 +01:00
Patrick Cloke c4d2f94ef8 Add proposal for room version 8. 2021-08-27 19:17:17 +01:00
Alexey Rusakov c5631b30b8 sso_login_redirect: Fix a copy-pasted operationId 2021-08-27 19:17:17 +01:00
Patrick Cloke 7ff569f252 Note unstable prefix. 2021-08-27 19:17:17 +01:00
Travis Ralston c516ffd5ab Merge pull request #2778 from matrix-org/hs/proposal-appservice-login
MSC2778: Providing authentication method for appservice users
2021-08-27 19:17:17 +01:00
Patrick Cloke dcd6de59cd De-indent section. 2021-08-27 19:17:17 +01:00
Patrick Cloke fd0c909644 Clarifications.
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-08-27 19:17:17 +01:00
Patrick Cloke 7cecb84afe Rename MSC. 2021-08-27 19:17:17 +01:00
Patrick Cloke c79d1ac350 Clarify error conditions.
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2021-08-27 19:17:17 +01:00
Patrick Cloke d399653cab Fix typos.
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2021-08-27 19:17:17 +01:00
Patrick Cloke 72961e6f29 More review comments. 2021-08-27 19:17:17 +01:00
Patrick Cloke 977146baf5 Include an additional error situation. 2021-08-27 19:17:17 +01:00
Patrick Cloke 58ccb86a34 Move changes to make/send_join out of auth rules section. 2021-08-27 19:17:17 +01:00
Patrick Cloke c6f0119b13 Move back section about errors for make/send_join & some review comments. 2021-08-27 19:17:17 +01:00
Patrick Cloke 67e558da52 Review feedback. 2021-08-27 19:17:17 +01:00
Patrick Cloke 27bee1bad8 Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-08-27 19:17:17 +01:00
Patrick Cloke d329c216c4 Clarify if a resident server cannot issue a join vs. if they're unsure if the user is allowed to join. 2021-08-27 19:17:17 +01:00
Patrick Cloke 6b6aa2449a Add information about errors over federation. 2021-08-27 19:17:17 +01:00
Patrick Cloke cff5a8728e Add a note about resident servers. 2021-08-27 19:17:17 +01:00
Patrick Cloke 2bc4e86cb4 Updates from review. 2021-08-27 19:17:17 +01:00
Patrick Cloke 248cb8b310 Update the information on signature checking. 2021-08-27 19:17:17 +01:00
Patrick Cloke 72f564c236 Add note about including the authorising server in the content. 2021-08-27 19:17:17 +01:00
Patrick Cloke c42e89a4d4 Reflow. 2021-08-27 19:17:17 +01:00
Patrick Cloke 04c88f584c Clarify users must be joined to an allowed room.
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
2021-08-27 19:17:17 +01:00
Patrick Cloke 12a39f66df Reword intro. 2021-08-27 19:17:17 +01:00
Patrick Cloke aed1e23131 Add domains to the example room aliases. 2021-08-27 19:17:17 +01:00
Patrick Cloke e93accf198 Remove extraneous paragraph. 2021-08-27 19:17:17 +01:00
Patrick Cloke 7aeca9ccb6 Fix typo.
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
2021-08-27 19:17:17 +01:00
Patrick Cloke 1f7481bfbd Fix typo.
Co-authored-by: Travis Ralston <travisr@matrix.org>
2021-08-27 19:17:17 +01:00
Patrick Cloke 48674a3353 Fix typo.
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2021-08-27 19:17:17 +01:00
Patrick Cloke 84178b1d39 Add notes about the via key and authorised servers being out of sync. 2021-08-27 19:17:17 +01:00
Patrick Cloke 75fc073bfc Clarify implications of signing events. 2021-08-27 19:17:17 +01:00
Patrick Cloke 750be83313 Clarify what happens if a homeserver cannot verify membership. 2021-08-27 19:17:17 +01:00
Patrick Cloke 2749a95251 Use a different room version to specify changes in join rules. 2021-08-27 19:17:17 +01:00
Patrick Cloke 289c64035f Pull note about ban & ACLs out of each join rule description. 2021-08-27 19:17:17 +01:00
Patrick Cloke ba63bedec0 Clarify that signature checks only apply to joining users. 2021-08-27 19:17:17 +01:00
Patrick Cloke 2171d175e8 Clarify soft-failure is extension of current algorithm.
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-08-27 19:17:17 +01:00
Patrick Cloke 3377d55c28 Fix typos.
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-08-27 19:17:17 +01:00
Patrick Cloke f4e2d925e3 Clarifications / simplifications. 2021-08-27 19:17:17 +01:00
Patrick Cloke 53bae34457 Remove the authorised servers list. 2021-08-27 19:17:17 +01:00
Patrick Cloke d445b07855 Clarifications.
Co-authored-by: Jonathan de Jong <jonathandejong02@gmail.com>
2021-08-27 19:17:17 +01:00
Travis Ralston e30a68a49e Remove what appears to be leftover notes 2021-08-27 19:17:16 +01:00
Patrick Cloke cd78eed3f1 Add a note about ensuring each allowed room has at least one server in it. 2021-08-27 19:17:16 +01:00
Travis Ralston 24fedc2299 Merge branch 'master' into hs/proposal-appservice-login 2021-08-27 19:17:16 +01:00
Patrick Cloke e3692edd09 Remove via field. 2021-08-27 19:17:16 +01:00
Patrick Cloke 066f25fd82 Add a list of trusted servers. 2021-08-27 19:17:16 +01:00
Patrick Cloke d63e39c4af Handle feedback from Travis. 2021-08-27 19:17:16 +01:00
Patrick Cloke 4afe946def Clarify security concerns. 2021-08-27 19:17:16 +01:00
Patrick Cloke 51650b63f2 Clarify auth rules for restrictedjoin rules. 2021-08-27 19:17:16 +01:00
Patrick Cloke 06f0d622a9 Clarify membership checking over federation. 2021-08-27 19:17:16 +01:00
Patrick Cloke 5d1bebedf0 Re-iterate that ban and server-acls matter. 2021-08-27 19:17:16 +01:00
Patrick Cloke 486026a711 Namespace the allow type. 2021-08-27 19:17:16 +01:00
Patrick Cloke 955160c750 Add a type field. 2021-08-27 19:17:16 +01:00
Patrick Cloke 5c6e76a63b Space -> room. 2021-08-27 19:17:16 +01:00
Patrick Cloke 963aa40665 A bit less passive. 2021-08-27 19:17:16 +01:00
Patrick Cloke 31cdf835b8 Many clarifications. 2021-08-27 19:17:16 +01:00
Patrick Cloke 084e6225c5 Clarify an edge case. 2021-08-27 19:17:16 +01:00
Patrick Cloke 6919bbf80c Remove bit about user IDs being listed directly. 2021-08-27 19:17:16 +01:00
Patrick Cloke 959c6aa816 Fix broken backlink. 2021-08-27 19:17:16 +01:00
Patrick Cloke 7994a1e85a Remove spaces summary changes. 2021-08-27 19:17:16 +01:00
Patrick Cloke ef02f82afb Add more notes about edge-cases. 2021-08-27 19:17:16 +01:00
Patrick Cloke 6686696e66 Spacing. 2021-08-27 19:17:16 +01:00
Patrick Cloke 4051810241 Fill in the TODO about what how to mark access via spaces for the summary API. 2021-08-27 19:17:16 +01:00
Patrick Cloke 35ce0b8f91 More wrapping. 2021-08-27 19:17:16 +01:00
Patrick Cloke 933c50480c Add notes from @madlittlemods. 2021-08-27 19:17:16 +01:00
Patrick Cloke 0992a4d60f Update dependencies to include MSC3173. 2021-08-27 19:17:16 +01:00
Patrick Cloke 85003eb784 Clarify link. 2021-08-27 19:17:16 +01:00
Patrick Cloke b2b21e986d Rework bits about peeking. 2021-08-27 19:17:16 +01:00
Patrick Cloke ebae487451 Update a placeholder. 2021-08-27 19:17:16 +01:00
Patrick Cloke 4143f9ddcb Document the error response. 2021-08-27 19:17:16 +01:00
Patrick Cloke f71e48c0ac Include the proposed MSC. 2021-08-27 19:17:16 +01:00
Patrick Cloke 82c2ed6a47 Add pointer to draft. 2021-08-27 19:17:16 +01:00
Travis Ralston 5d4713f168 Changelog for https://github.com/matrix-org/matrix-doc/pull/3225 2021-08-27 19:17:15 +01:00
Travis Ralston f433e07763 Merge pull request #3225 from sideshowbarker/client-server-api-Access-Control-Allow-Headers-drop-Options-Accept
Drop Origin & Accept from Access-Control-Allow-Headers value
2021-08-27 19:17:15 +01:00
Travis Ralston efbccb6edd Merge pull request #3228 from ilovecommits/patch-1
Correct 'once-off' to 'one-off'
2021-08-27 19:17:15 +01:00
Michael[tm] Smith d7cf63d981 Drop Origin & Accept from Access-Control-Allow-Headers value
This change drops the Origin and Accept header names from the
recommended value for the CORS Access-Control-Allow-Headers header. Per
the CORS protocol, it’s not necessary or useful to include them.

Per-spec at https://fetch.spec.whatwg.org/#forbidden-header-name, Origin
is a “forbidden header name” set by the browser and that frontend
JavaScript code is never allowed to set.

So the value of Access-Control-Allow-Headers isn’t relevant to Origin or
in general to other headers set by the browser itself — the browser
never ever consults the Access-Control-Allow-Headers value to confirm
that it’s OK for the request to include an Origin header.

And per-spec at https://fetch.spec.whatwg.org/#cors-safelisted-request-header,
Accept is a “CORS-safelisted request-header”, which means that browsers
allow requests to contain the Accept header regardless of whether the
Access-Control-Allow-Headers value contains "Accept".

So it’s unnecessary for the Access-Control-Allow-Headers to explicitly
include Accept. Browsers will not perform a CORS preflight for requests
containing an Accept request header.

Related: Related: https://github.com/matrix-org/synapse/pull/10114

Signed-off-by: Michael[tm] Smith <mike@w3.org>
2021-08-27 19:17:15 +01:00
Travis Ralston e5b907021c changelog for https://github.com/matrix-org/matrix-doc/pull/3254 2021-08-27 19:17:15 +01:00
ilovecommits 175e3c157d Correct 'once-off' to 'one-off' 2021-08-27 19:17:15 +01:00
Christian Paul 86b53be3d1 Add "knock" membership to /members endpoint (#3254) 2021-08-27 19:17:15 +01:00
Travis Ralston 87d22392ac Merge pull request #3173 from matrix-org/clokep/stripped-state
MSC3173: Expose stripped state events to any potential joiner
2021-08-27 19:17:15 +01:00
Travis Ralston 2ebae1cddd Merge pull request #3251 from matrix-org/dependabot/npm_and_yarn/postcss-7.0.36
Bump postcss from 7.0.32 to 7.0.36
2021-08-27 19:17:15 +01:00
Patrick Cloke c027957f01 Remove unstable prefixes. 2021-08-27 19:17:15 +01:00
Travis Ralston 6ba9ff5303 Merge pull request #3250 from matrix-org/jryans/mobile-toc-overlap
Fix sidebar overlap for small width devices
2021-08-27 19:17:15 +01:00
dependabot[bot] a58966ad6e Bump postcss from 7.0.32 to 7.0.36
Bumps [postcss](https://github.com/postcss/postcss) from 7.0.32 to 7.0.36.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/7.0.32...7.0.36)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-27 19:17:15 +01:00
Patrick Cloke b9daaa3a3f Rework this (again) to remove the API based on conversations with the SCT. 2021-08-27 19:17:15 +01:00
Travis Ralston 3e186da139 Merge pull request #2732 from uhoreg/fallback_keys
MSC2732: Olm fallback keys
2021-08-27 19:17:15 +01:00
J. Ryan Stinnett ae227b7070 Fix sidebar overlap for small width devices
This resolves a jarring text overlap issue with the sidebar by only adjusting
the `max-height` at larger widths, which matches the original rule being
overridden.

Fixes https://github.com/matrix-org/matrix-doc/issues/3049
2021-08-27 19:17:15 +01:00
Patrick Cloke 4933ecd176 Add federation and reword a bit. 2021-08-27 19:17:15 +01:00
Patrick Cloke 8082b2f813 Clarify examples. 2021-08-27 19:17:15 +01:00
Patrick Cloke c37512343e Include an API endpoint. 2021-08-27 19:17:15 +01:00
Patrick Cloke 7daf3376b2 Clarify what changes are being proposed. 2021-08-27 19:17:15 +01:00
Patrick Cloke 2522ed5eae Fix typo.
Co-authored-by: Travis Ralston <travpc@gmail.com>
2021-08-27 19:17:15 +01:00
Patrick Cloke 1672ce2b0c Fix awkward wording. 2021-08-27 19:17:15 +01:00
Patrick Cloke 1c34a466ed Various clarifications based on feedback. 2021-08-27 19:17:15 +01:00
Patrick Cloke 086095f72e Also include the room topic. 2021-08-27 19:17:15 +01:00
Patrick Cloke 12abecf5b5 Wrap text. 2021-08-27 19:17:15 +01:00
Patrick Cloke 56b1b04544 Rename encrypted status to encryption information.
Co-authored-by: Travis Ralston <travpc@gmail.com>
2021-08-27 19:17:15 +01:00
Patrick Cloke 517174b19d Re-arrange security impact of knocking. 2021-08-27 19:17:15 +01:00
Patrick Cloke bf41af7c15 Remove security considerations (moved to MSC3083). 2021-08-27 19:17:15 +01:00
Patrick Cloke 34f006ce8b Strip whitespace. 2021-08-27 19:17:15 +01:00
Patrick Cloke c2a3b5d079 Wrapping. 2021-08-27 19:17:15 +01:00
Patrick Cloke 36a0251c9a Update MSC number. 2021-08-27 19:17:15 +01:00
Patrick Cloke 34cd85829b Wording. 2021-08-27 19:17:15 +01:00
Patrick Cloke b16b1a24d9 Add current proposals. 2021-08-27 19:17:15 +01:00
Travis Ralston b0223b8bb8 Merge pull request #3233 from matrix-org/hs/explicit-room-id-for-tombstones
Explicitly call replacement_room a room ID
2021-08-27 19:17:14 +01:00
Travis Ralston 153df04953 Merge pull request #3218 from matrix-org/dependabot/npm_and_yarn/browserslist-4.16.6
Bump browserslist from 4.14.0 to 4.16.6
2021-08-27 19:17:14 +01:00
Travis Ralston 4f03180b90 Merge pull request #3241 from matrix-org/dependabot/npm_and_yarn/glob-parent-5.1.2
Bump glob-parent from 5.1.1 to 5.1.2
2021-08-27 19:17:14 +01:00
Will Hunt 7fac138d9a Create 3233.clarification 2021-08-27 19:17:14 +01:00
Travis Ralston 30654f70ee Merge pull request #3176 from matrix-org/travis/clarification/lowercasing
Case fold instead of lowercase
2021-08-27 19:17:14 +01:00
dependabot[bot] 933624e28a Bump browserslist from 4.14.0 to 4.16.6
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.14.0 to 4.16.6.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.14.0...4.16.6)

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-27 19:17:14 +01:00
dependabot[bot] a8541d02de Bump glob-parent from 5.1.1 to 5.1.2
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: glob-parent
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-27 19:17:14 +01:00
Will Hunt 2794fc8e29 Explicitly call replacement_room a room ID
Fixes https://github.com/matrix-org/matrix-doc/issues/3232
2021-08-27 19:17:14 +01:00
Hubert Chathi 221375b105 Merge pull request #3207 from toadjaune/patch-2
Fix a typo in event soft rejection schema
2021-08-27 19:17:14 +01:00
Travis Ralston 81da7ba480 Update 3167.clarification 2021-08-27 19:17:14 +01:00
Hubert Chathi c4e9e904e2 Merge pull request #3199 from uhoreg/deprecate_verification_start_spec
Deprecate verifications that don't begin with a request.
2021-08-27 19:17:14 +01:00
Hubert Chathi 53fedb2c61 Add changelog 2021-08-27 19:17:14 +01:00
Travis Ralston 8b40972872 iterate 2021-08-27 19:17:14 +01:00
Travis Ralston 96b86b0282 Merge pull request #3195 from matrix-org/travis/msc1772-7E
Change space's valid `order` range to 0x7E
2021-08-27 19:17:14 +01:00
Hubert Chathi b3b6fb3e10 add changelog 2021-08-27 19:17:14 +01:00
Hubert Chathi 586c4d865a Fix broken ASCII art 2021-08-27 19:17:14 +01:00
Travis Ralston 21a132d3a5 Merge branch 'master' into travis/clarification/lowercasing 2021-08-27 19:17:14 +01:00
Andrew Morgan fca6992cd9 Clarify that implementations can use stable prefixes once an MSC has merged (#3179)
Fixes #3146.

This PR changes the Matrix Spec Proposals page to clarify that implementations **do not** need to wait until a spec release to use stable prefixes, but that they can do so after the corresponding MSC has been merged. The justification is that once an MSC has been merged, it's fairly guaranteed that it will land in the spec. Yet it will take time for the spec release process to run its course, and we shouldn't make implementations wait for that.

The exception to this is if implementating a feature in a backwards-compatible way requires a new spec version to indicate to clients/servers that a feature has been added/changed. This situation is rare though, and most implementations won't fall into this category.
2021-08-27 19:17:14 +01:00
Travis Ralston eecdcf43ab Change space's valid order range to 0x7E
0x7F is DEL, which is clearly not intended by the proposal text.
2021-08-27 19:17:14 +01:00
Hubert Chathi f9c9fce1ad Deprecate verifications that don't begin with a request. 2021-08-27 19:17:14 +01:00
Arnaud Venturi 0d275cc739 Fix a typo in event soft rejection schema
Signed-off-by: Arnaud Venturi <github@toadjaune.eu>
2021-08-27 19:17:14 +01:00
Travis Ralston 7a013a53e5 Changelogs 2021-08-27 19:17:14 +01:00
Travis Ralston d7f01de1e6 Update i18n 2021-08-27 19:17:14 +01:00
Travis Ralston 4cb667ca27 Case fold instead of lowercase
Fixes https://github.com/matrix-org/matrix-doc/issues/3175
2021-08-27 19:17:14 +01:00
Travis Ralston e3f2836756 Merge pull request #3191 from RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1
Translations update from Weblate
2021-08-27 19:17:14 +01:00
Travis Ralston e97bfac552 Merge pull request #3190 from matrix-org/dependabot/npm_and_yarn/lodash-4.17.21
Bump lodash from 4.17.20 to 4.17.21
2021-08-27 19:17:14 +01:00
Weblate 0794722d82 Merge branch 'origin/master' into Weblate. 2021-08-27 19:17:14 +01:00
Travis Ralston c254aac25d Merge pull request #3186 from lukaslihotzki/fix-typo
Fix Typo
2021-08-27 19:17:14 +01:00
dependabot[bot] 685819049a Bump lodash from 4.17.20 to 4.17.21
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-27 19:17:14 +01:00
Szimszon 1282e8a91c Translated using Weblate (Hungarian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/hu/
2021-08-27 19:17:14 +01:00
Travis Ralston 71a0f9f9a2 Merge pull request #3185 from matrix-org/travis/clarify/1772
Mention expected client behaviour of unknown types on MSC1772
2021-08-27 19:17:14 +01:00
Lukas Lihotzki 6c46933fbc Fix Typo
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
2021-08-27 19:17:14 +01:00
Szimszon 0ea5f72c83 Added translation using Weblate (Hungarian) 2021-08-27 19:17:14 +01:00
Travis Ralston 2fbd3e6210 Merge pull request #3181 from lukaslihotzki/fix-add3pid-tag
OpenAPI: fix tags of add3PID
2021-08-27 19:17:14 +01:00
Travis Ralston 6012ddcdec Mention expected client behaviour of unknown types on MSC1772
This was discussed in various places, but never quite made it to the MSC.
2021-08-27 19:17:14 +01:00
Travis Ralston 86661bbfbb Merge pull request #3122 from uhoreg/deprecate_verification_start
MSC3122: Deprecate starting verifications without requesting first
2021-08-27 19:17:14 +01:00
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>
2021-08-27 19:17:14 +01:00
Andrew Morgan 5d0d5a3981 Clarify what happens when a concern is raised during FCP (#3180)
It wasn't entirely clear what should happen to the FCP timer (and state) when a concern is raised during FCP. After some discussion, we agreed that when a concern is raised:

1. FCP will continue to not conclude until at least 5 days have passed, but once those 5 days are up it *still* won't conclude until all concerns raised during FCP are resolved.
2. If a concern warrants a large enough change in the document, then the Spec Core Team may consider cancelling FCP and restarting the timer in order for people to have some time to think about and review the new changes.
2021-08-27 19:17:14 +01:00
Travis Ralston a5fea91d86 Merge pull request #3177 from matrix-org/travis/spec/spaces-groups-rm
Remove group identifiers
2021-08-27 19:17:14 +01:00
Travis Ralston fb3dde1c2c Merge pull request #3167 from matrix-org/travis/spec/msc2265-lower-3pid
Specify that email handling converts to lowercase first
2021-08-27 19:17:13 +01:00
Travis Ralston 3d217e0de0 Merge pull request #3101 from matrix-org/travis/spec/MSC2320-identity-versions
Add identity service versions API
2021-08-27 19:17:13 +01:00
Hubert Chathi adbe95259f add link to relevant spec 2021-08-27 19:17:13 +01:00
Travis Ralston 6917c708c9 Merge pull request #1772 from matrix-org/matthew/msc1772
MSC1772: Matrix spaces
2021-08-27 19:17:13 +01:00
Travis Ralston 3c01fa4681 Remove group identifiers
Groups are replaced by https://github.com/matrix-org/matrix-doc/pull/1772 and this probably shouldn't have made it into the spec in the first place without the remaining context of Groups.
2021-08-27 19:17:13 +01:00
Travis Ralston d41658e714 Merge pull request #3166 from matrix-org/travis/spec/msc2033-whoami-deviceid
Spec device_id on whoami
2021-08-27 19:17:13 +01:00
Travis Ralston c11efb35fe Merge pull request #3163 from matrix-org/travis/spec/msc2858-multisso
Describe social-sign-on (multiple SSO providers)
2021-08-27 19:17:13 +01:00
Hubert Chathi 620278786d Update proposals/3122-deprecate-starting-verifications-without-request.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-08-27 19:17:13 +01:00
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).
2021-08-27 19:17:13 +01:00
Travis Ralston fbec7a1bcb Merge pull request #3169 from matrix-org/travis/spec/msc2284-is-optional
Downgrade identity server failure to FAIL_PROMPT instead of FAIL_ERROR
2021-08-27 19:17:13 +01:00
Hubert Chathi fbbdd0f6cc I should pay attention when my editor says that things are misspelled 2021-08-27 19:17:13 +01:00
Travis Ralston 466911b253 Merge pull request #3170 from matrix-org/travis/spec/msc2713-rm-v1-id
Remove v1 identity service API
2021-08-27 19:17:13 +01:00
Hubert Chathi e0ec01a999 use MSC number 2021-08-27 19:17:13 +01:00
Hubert Chathi ca3c42d865 deprecate starting verifications without first requesting 2021-08-27 19:17:13 +01:00
Travis Ralston 53833d49a5 Spelling 2021-08-27 19:17:12 +01:00
Travis Ralston c1d1f88a55 Update data/api/identity/versions.yaml
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2021-08-27 19:17:12 +01:00
Travis Ralston c5eaa59c79 Changelog 2021-08-27 19:17:12 +01:00
Travis Ralston 2c3d7b1682 Apply suggestions from code review
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2021-08-27 19:17:12 +01:00
Travis Ralston 457f3995af Merge pull request #3154 from matrix-org/travis/spec/knock-knock-whos-there
Add knocking to the spec
2021-08-27 19:17:12 +01:00
Travis Ralston 21a0a97134 changelog 2021-08-27 19:17:12 +01:00
Travis Ralston 67d5d9eb49 Changelog 2021-08-27 19:17:12 +01:00
Travis Ralston 94ca646fb7 changelog 2021-08-27 19:17:12 +01:00
Travis Ralston 57f609cf1b Typo fixes 2021-08-27 19:17:12 +01:00
Travis Ralston 3b2c0ff233 Spec device_id on whoami
Spec for https://github.com/matrix-org/matrix-doc/pull/2033
2021-08-27 19:17:12 +01:00
Travis Ralston 3683d334f7 Clarify render approach 2021-08-27 19:17:12 +01:00
Hubert Chathi ec9ea2b6e3 Merge pull request #3149 from uhoreg/qr_codes_spec
Add spec for verification by QR codes.
2021-08-27 19:17:12 +01:00
Travis Ralston 01a7f06ce4 Add missing endpoint changelog 2021-08-27 19:17:12 +01:00
Travis Ralston 49a5ca3553 Downgrade identity server failure to FAIL_PROMPT instead of FAIL_ERROR
Spec for https://github.com/matrix-org/matrix-doc/pull/2284
2021-08-27 19:17:12 +01:00
Travis Ralston 37c3a3f855 Remove v1 identity service API
Spec for https://github.com/matrix-org/matrix-doc/pull/2713
2021-08-27 19:17:12 +01:00
Travis Ralston 7cef7d0fcf Specify that email handling converts to lowercase first
Spec for https://github.com/matrix-org/matrix-doc/pull/2265
2021-08-27 19:17:12 +01:00
Travis Ralston fc6aa30000 Merge branch 'master' into travis/spec/MSC2320-identity-versions 2021-08-27 19:17:12 +01:00
Travis Ralston 3aa517a868 Clarify provider naming 2021-08-27 19:17:12 +01:00
Hubert Chathi e9e0d8ee47 Merge pull request #3151 from uhoreg/single_ssss_spec
Document Single SSSS.
2021-08-27 19:17:12 +01:00
Travis Ralston 57f4347b5d Fix general wording 2021-08-27 19:17:12 +01:00
Travis Ralston de19b86eed Changelog 2021-08-27 19:17:12 +01:00
Travis Ralston cbd761df17 Apply suggestions from code review
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2021-08-27 19:17:12 +01:00
Hubert Chathi 3084f3d32f Merge pull request #3150 from uhoreg/verification_fixes
Make SAS outline fit with key verification in DM flow.
2021-08-27 19:17:12 +01:00
Travis Ralston 8bbcee39a5 Update data/api/server-server/knocks.yaml
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2021-08-27 19:17:12 +01:00
Travis Ralston be86e638c5 Add identity service versions API
Specs [MSC2320](https://github.com/matrix-org/matrix-doc/pull/2320)
Built upon https://github.com/matrix-org/matrix-doc/pull/3094
2021-08-27 19:17:12 +01:00
Travis Ralston c124462747 Move brand registry out of structured data directory
Markdown is not structured data.
2021-08-27 19:17:12 +01:00
Hubert Chathi 194fef8022 Merge pull request #3147 from uhoreg/cross_signing_backup_ssss
Add information about using SSSS for cross-signing and key backup.
2021-08-27 19:17:12 +01:00
Travis Ralston ee3ca86b6c Declare required properties correctly 2021-08-27 19:17:12 +01:00
Travis Ralston d9bb8f46d1 Add changelogs 2021-08-27 19:17:12 +01:00
Travis Ralston 2d39ed69c3 Add changelogs 2021-08-27 19:17:12 +01:00
Travis Ralston 3b426846fe Describe social-sign-on (multiple SSO providers)
Spec for [MSC2858](https://github.com/matrix-org/matrix-doc/pull/2858)
2021-08-27 19:17:12 +01:00
Travis Ralston fa6cc8a1ff Add knocking to the spec
Spec for https://github.com/matrix-org/matrix-doc/pull/2998
Spec for https://github.com/matrix-org/matrix-doc/pull/2403

This deliberately does not help towards fixing https://github.com/matrix-org/matrix-doc/issues/3153 in order to remain consistent with prior room versions, and to keep the diff smaller on this change. A future change will address room version legibility.
2021-08-27 19:17:12 +01:00
Weblate 1c94fb1aab Merge branch 'origin/master' into Weblate. 2021-08-27 19:17:11 +01:00
Hubert Chathi 1a1f01234d Apply suggestions from code review
Co-authored-by: Travis Ralston <travpc@gmail.com>
2021-08-27 19:17:11 +01:00
Hubert Chathi b2cb2a3c20 add changelog 2021-08-27 19:17:11 +01:00
Hubert Chathi 7a960375cc Update content/client-server-api/modules/end_to_end_encryption.md
Co-authored-by: Travis Ralston <travpc@gmail.com>
2021-08-27 19:17:11 +01:00
Travis Ralston 4b40ecc53d Update i18n 2021-08-27 19:17:11 +01:00
Hubert Chathi 21fa486b3b add changelog 2021-08-27 19:17:11 +01:00
Travis Ralston 6ffbc5d269 Merge pull request #2713 from matrix-org/travis/msc/remove-v1-identity
MSC2713: Remove deprecated v1 Identity Service API
2021-08-27 19:17:11 +01:00
Hakim Oubouali 0b823e0b03 Translated using Weblate (Central Atlas Tamazight)
Currently translated at 40.6% (26 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/tzm/
2021-08-27 19:17:11 +01:00
Hubert Chathi c85f98bdab add changelog 2021-08-27 19:17:11 +01:00
Hubert Chathi ca37ada9e2 Document Single SSSS. 2021-08-27 19:17:11 +01:00
Hubert Chathi c3a234843b add changelog 2021-08-27 19:17:11 +01:00
Travis Ralston cd89f77e2b Merge remote-tracking branch 'RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1' 2021-08-27 19:17:11 +01:00
Hubert Chathi bb06dbdb2a Add information about using SSSS for cross-signing and key backup. 2021-08-27 19:17:11 +01:00
Hubert Chathi 8019699dc5 Merge pull request #3139 from uhoreg/verification_in_dms_spec
spec verification in DMs and m.key.verification.ready/done
2021-08-27 19:17:11 +01:00
Hakim Oubouali 4183893ec2 Added translation using Weblate (Central Atlas Tamazight) 2021-08-27 19:17:11 +01:00
Hubert Chathi f9dce3dfed Add spec for verification by QR codes. 2021-08-27 19:17:11 +01:00
Hubert Chathi fd5da297d8 Make SAS outline fit with key verification in DM flow. 2021-08-27 19:17:11 +01:00
Hubert Chathi 1638d2f32e Apply suggestions from code review
Co-authored-by: Travis Ralston <travpc@gmail.com>
2021-08-27 19:17:11 +01:00
Thibault Martin 8a7a023d3c Translated using Weblate (French)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/fr/
2021-08-27 19:17:11 +01:00
Hubert Chathi de1a468630 add changelog 2021-08-27 19:17:11 +01:00
Hubert Chathi b5bdfffa53 spec verification in DMs and m.key.verification.ready/done 2021-08-27 19:17:11 +01:00
Travis Ralston 5e80d36511 Merge pull request #3114 from matrix-org/travis/rm-old-api
Remove legacy directories
2021-08-27 19:17:10 +01:00
Travis Ralston becd2257c0 Remove legacy spec docs 2021-08-27 19:17:10 +01:00
Travis Ralston 9c8a0e9ca3 Merge pull request #2241 from uhoreg/e2e_verification_in_dms
MSC2241: Key verification in DMs
2021-08-27 19:17:10 +01:00
Andrew Morgan 665c31e224 Switch code formatting note about changelogs from RST to MD (#3103) 2021-08-27 19:17:10 +01:00
Travis Ralston 8f5c039273 Update readme for docs 2021-08-27 19:17:10 +01:00
Travis Ralston 8d73a17f5b Cut out legacy build scripts 2021-08-27 19:17:10 +01:00
Travis Ralston eb7337044d Merge pull request #3128 from DevinR528/direct-examp-fix
Fix user ID examples in direct_to_device schema
2021-08-27 19:17:10 +01:00
Travis Ralston d0d6b77053 Merge pull request #3099 from matrix-org/travis/spec/MSC2801-untrusted-bodies
Sprinkle some DANGER: UNSAFE warnings over the spec about event bodies
2021-08-27 19:17:10 +01:00
Richard van der Hoff 726be04841 remove documentation of non-existent directory 2021-08-27 19:17:10 +01:00
Travis Ralston a855ed338b Fix event size restriction (#3127)
Fixes https://github.com/matrix-org/matrix-doc/issues/3126
2021-08-27 19:17:10 +01:00
Travis Ralston 5e211480bf add changelog 2021-08-27 19:17:10 +01:00
Travis Ralston 208a0806dd Merge pull request #3098 from matrix-org/travis/spec/r2-MSC2010-MSC2422-MSC2557-color-spoilers
Incorporate spoilers and `color` tag allowance
2021-08-27 19:17:10 +01:00
Travis Ralston 5d2cb50c58 Apply suggestions from code review
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
2021-08-27 19:17:10 +01:00
Travis Ralston 52cd88f070 Rewrite readme and update contributor docs
Incorporates https://github.com/matrix-org/matrix-doc/pull/3025/
2021-08-27 19:17:10 +01:00
Travis Ralston 8792da2ee0 Merge pull request #3116 from matrix-org/clokep/bleecker
Use the same domain for room ID and avatar URL.
2021-08-27 19:17:10 +01:00
Devin Ragotzy cfc55b243d Fix user ID examples in direct_to_device schema 2021-08-27 19:17:10 +01:00
Travis Ralston 45973a830f Merge pull request #3100 from matrix-org/travis/spec/MSC2184-details-tag
Allow <details> and <summary> in suggested HTML subset
2021-08-27 19:17:10 +01:00
Travis Ralston 4fd262a237 Changelog 2021-08-27 19:17:10 +01:00
Travis Ralston 06d23f04aa Changelog 2021-08-27 19:17:10 +01:00
Travis Ralston 456353c8b4 Add changelogs 2021-08-27 19:17:10 +01:00
Travis Ralston 18c336080f Merge pull request #3094 from matrix-org/travis/cutover-1
Cut over to the new spec authoring platform
2021-08-27 19:17:10 +01:00
Travis Ralston 334fc56681 Changelog 2021-08-27 19:17:10 +01:00
Travis Ralston a0345ea0bb Incorporate spoilers and color tag allowance
Specs [MSC2010](https://github.com/matrix-org/matrix-doc/pull/2010)
Specs [MSC2557](https://github.com/matrix-org/matrix-doc/pull/2557)
Specs [MSC2422](https://github.com/matrix-org/matrix-doc/pull/2422)
Obsoletes https://github.com/matrix-org/matrix-doc/pull/2549
Built upon https://github.com/matrix-org/matrix-doc/pull/3094
2021-08-27 19:17:10 +01:00
Travis Ralston 30f37f1e66 Sprinkle some DANGER: UNSAFE warnings over the spec about event bodies
Specs [MSC2801](https://github.com/matrix-org/matrix-doc/pull/2801)
Based on https://github.com/matrix-org/matrix-doc/pull/3094
2021-08-27 19:17:10 +01:00
Patrick Cloke cee03d7625 Use the same domain for room ID and avatar URL. 2021-08-27 19:17:10 +01:00
Travis Ralston 2603ea6339 goodbye legacy config 2021-08-27 19:17:10 +01:00
Travis Ralston 228fcb8175 Allow <details> and <summary> in suggested HTML subset
Specs [MSC2184](https://github.com/matrix-org/matrix-doc/pull/2184)
Based on https://github.com/matrix-org/matrix-doc/pull/3094
2021-08-27 19:17:10 +01:00
Travis Ralston 7e6ab07f96 Line length and words 2021-08-27 19:17:10 +01:00
Travis Ralston a2280c7815 s 2021-08-27 19:17:10 +01:00
Travis Ralston b518e4ade0 Finish sentence 2021-08-27 19:17:10 +01:00
Travis Ralston b455fc73f1 Reference drafts properly 2021-08-27 19:17:10 +01:00
Travis Ralston 62896cdea9 Apply suggestions from code review
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2021-08-27 19:17:10 +01:00
Weblate b0621f568b Merge branch 'origin/master' into Weblate. 2021-08-27 19:17:09 +01:00
Travis Ralston aab72c3d14 Move drafts to attic to reduce confusion 2021-08-27 19:17:09 +01:00
Travis Ralston f0e0477a3e Update i18n 2021-08-27 19:17:09 +01:00
Travis Ralston 283e3acdde Merge pull request #3091 from aaronraimist/mxc-example
Fix example MXC URI for m.presence
2021-08-27 19:17:09 +01:00
Samu Voutilainen 4b001c524c Translated using Weblate (Finnish)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/fi/
2021-08-27 19:17:09 +01:00
Travis Ralston 64ad52ddd0 Merge pull request #3093 from RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1
Translations update from Weblate
2021-08-27 19:17:09 +01:00
Travis Ralston dfdb5bc1a9 Run i18n 2021-08-27 19:17:09 +01:00
Aaron Raimist d540273625 Add changelog
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-08-27 19:17:09 +01:00
Travis Ralston 28acb483f2 Merge pull request #3092 from RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1
Translations update from Weblate
2021-08-27 19:17:09 +01:00
Aaron Raimist d8d84b64d5 Fix example MXC URI for m.presence
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-08-27 19:17:09 +01:00
Travis Ralston 005d6b7802 Merge pull request #2312 from quotient-im/kitsune/matrix-uri
MSC2312: Matrix URI scheme proposal
2021-08-27 19:17:09 +01:00
Weblate 24d36bdacc Merge branch 'origin/master' into Weblate. 2021-08-27 19:17:09 +01:00
Travis Ralston 8fc8a6daad Merge pull request #3085 from matrix-org/dependabot/npm_and_yarn/y18n-4.0.1
Bump y18n from 4.0.0 to 4.0.1
2021-08-27 19:17:09 +01:00
xiao chi 464651e39a Translated using Weblate (Japanese)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/ja/
2021-08-27 19:17:09 +01:00
Travis Ralston af5580cda0 Merge pull request #2403 from Sorunome/soru/knock
MSC2403: Add "knock" feature
2021-08-27 19:17:08 +01:00
dependabot[bot] 41aa1d65ac Bump y18n from 4.0.0 to 4.0.1
Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-27 19:17:08 +01:00
Travis Ralston 4318c18682 Merge pull request #2557 from matrix-org/travis/msc/spoiler-fallback
MSC2557: Proposal to clarify spoilers
2021-08-27 19:17:08 +01:00
Travis Ralston c9440665e8 Merge pull request #2801 from matrix-org/rav/proposal/untrusted_event_data
MSC2801: Make it explicit that event bodies are untrusted data
2021-08-27 19:17:08 +01:00
Travis Ralston 95dbd51f6a Merge pull request #2320 from matrix-org/babolivier/identity-versions
MSC2320: Versions information for identity servers
2021-08-27 19:17:07 +01:00
Travis Ralston a064779ceb Merge pull request #2874 from uhoreg/single_ssss
MSC2874: Single SSSS
2021-08-27 19:17:07 +01:00
Travis Ralston 39e82409ab Merge pull request #2184 from ananace/html_details
MSC2184: Allow the use of the HTML <details> tag
2021-08-27 19:17:07 +01:00
Travis Ralston fa71522c09 Merge pull request #2858 from matrix-org/t3chguy/msc/multi-sso
MSC2858: Multiple SSO Identity Providers
2021-08-27 19:17:07 +01:00
Andrew Morgan 97f8e1248b Attempt to fix broken breadcrumb links
Apparently this is a bug when canonifyURLs = true, which is a required option
to fix relative urls on spec pages.
2021-08-27 19:17:07 +01:00
Travis Ralston 1399cdfd5c Update sas-emoji.json for translations 2021-08-27 19:17:07 +01:00
Travis Ralston f37e5787b9 Merge pull request #3040 from RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1
Translations update from Weblate
2021-08-27 19:17:07 +01:00
Weblate f393c6ec4c Merge branch 'origin/master' into Weblate. 2021-08-27 19:17:05 +01:00
Andrew Morgan 888658dbff Write font files as binary instead of text (#3039)
This caused the font files to be corrupt and rejected by the browser's
sanitising engine.
2021-08-27 19:17:05 +01:00
Andrew Morgan e77c2e3e10 Opt for serving new spec JS/CSS dependencies locally instead of downloading from CDNs (#3036)
This PR does two things:

* Updates the git submodule for the new spec hugo theme ([google/docsy](https://github.com/google/docsy)) to our fork ([matrix-org/docsy](https://github.com/matrix-org/docsy)) which has a couple changes to load JS from local sources instead of remote, as well as allowing sites to override the URL that font CSS files are loaded from. Note that my definition of "font CSS" files here as CSS files that contain settings and point to locations of where font files (`.woff2`) are located.
* Adds a script (and the files generated as a result of running that script) that can take a google fonts URL, download the fonts it points to and spit out those fonts as well as a font CSS file pointing to them for local distribution. We then use the resulting font CSS file in our project variables.

This brings the benefit of not serving files from a CDN which can track users across the web, as well as inadvertently pinning docsy to a specific commit. The downside is that we need to remember to update [matrix-org/docsy](https://github.com/matrix-org/docsy) when needed (and apply the patches on top, though they're quite small).
2021-08-27 19:17:00 +01:00
Andrew Morgan ecfd57c504 Set canonifyURLs to true (#3037)
This fixes absolute path links when we're hosting the site under a
different path other than /.
2021-08-27 19:16:43 +01:00
Travis Ralston b139312532 Merge pull request #2998 from matrix-org/anoa/room_version_7
MSC2998: Room Version 7
2021-08-27 19:16:43 +01:00
Andrew Morgan ee1f85ca8b Update prod build's baseURL to /unstable (#3035)
Since we're deploying to https://spec.matrix.org/unstable now. This only updates the `baseURL` for our buildkite build. The default is still `/` when doing a local build.
2021-08-27 19:16:43 +01:00
Andrew Morgan a17023962c Update CircleCI and Buildkite configs to build the new spec (#3017)
This PR attempts to update the CI of matrix-doc to build [the new spec redesign](https://github.com/matrix-org/matrix-doc/issues/2906). It does so by additionally building the new spec in parallel to the old. The plan is to continue to host the old spec at https://matrix.org/docs/spec, while the new spec will be at https://spec.matrix.org. Eventually we will retire the old version of the spec, and have the old URL redirect to the new one.

In detail, this PR:
* Adds a new step to CircleCI to build the new spec with `hugo`. This step uses alpine, grabs some dependencies, and then builds the HTML.
  * We needed to hand some specific options to hugo for CircleCI in order to continue allowing CircleCI to host temporary builds of the spec after each CI run. This required changing some assumptions related to relative paths.
  * CircleCI's artifacts hosting is also quite limited. Specifically it will not automatically resolve `/some/path` to `/some/path/index.html`, which our hugo theme relied on. Fixes were implemented for this, but we may want to consider switching away from CircleCI artifacts as a host, and using something like [netlify](https://www.netlify.com/) instead.
* Modifies the existing Buildkite pipeline step to build both the new spec in a separate step. It additionally modifies the old spec to be built with alpine. (Separate out into another PR)
  * We'd like to separate out the deployment of matrix.org from the new spec. Therefore a new step, with a separate artifact build (`spec.tar.gz`). We will eventually remove the old step and the matrix.org build trigger.
* Modifies `pyproject.toml` to update the config of [giles](https://github.com/OpenAstronomy/baldrick/blob/master/baldrick/plugins/circleci_artifacts.py), which is what creates the "docs", "swagger" links in the CI steps for matrix-docs PRs.
  * A new step was added for the new spec. The old spec was renamed to "legacy".
2021-08-27 19:16:43 +01:00
Andrew Morgan 6ffa13d480 Update legacy doc buildkite step with comments and latest versions (#3033) 2021-08-27 19:16:43 +01:00
Andrew Morgan 25605b65a3 Don't generate matrix assets on CircleCI (#3034)
We already do this in the buildkite pipeline, so doing so in CircleCI is just
duplicate work.
2021-08-27 19:16:43 +01:00
Travis Ralston 5d275ab79e Merge pull request #3024 from matrix-org/travis/gh-tmpl
Override issue templates from org
2021-08-27 19:16:43 +01:00
Travis Ralston 3cb3b52753 Merge pull request #3003 from wbamberg/block-sizes
More consistent widths
2021-08-27 19:16:43 +01:00
Travis Ralston 7da1ed51a3 Update idea.md 2021-08-27 19:16:43 +01:00
Travis Ralston 551c22247d Override issue templates from org
We don't need OS information for a bug report here.
2021-08-27 19:16:43 +01:00
wbamberg 54a4f689a0 Merge pull request #3002 from wbamberg/fix-h7-h8
Remove h7 and h8 headings
2021-08-27 19:16:42 +01:00
Will 88e81b9c82 More consistent widths 2021-08-27 19:16:42 +01:00
wbamberg 1bfc3de6d6 Merge pull request #2992 from wbamberg/support-changelogs
Support changelogs
2021-08-27 19:16:42 +01:00
wbamberg 94f6cd21e3 Clarify the current situation wrt key derivation algorithms
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2021-08-27 19:16:42 +01:00
wbamberg f1711ff3e4 Merge pull request #3000 from wbamberg/add-proposals-tables
Support rendering of proposal tables
2021-08-27 19:16:42 +01:00
Will a974bdaf45 Remove h7 and h8 headings 2021-08-27 19:16:42 +01:00
wbamberg d5f975edaf Merge pull request #2999 from wbamberg/stop-scroll-overflow
Prevent sidebar scroll from overflowing
2021-08-27 19:16:42 +01:00
Will 25924a498c Fix tab/spaces mix 2021-08-27 19:16:42 +01:00
wbamberg e88a18ca5d Merge pull request #2988 from wbamberg/support-rendered-data
Support rendered data
2021-08-27 19:16:42 +01:00
Will 2371a7a804 Prevent sidebar scroll from overflowing 2021-08-27 19:16:42 +01:00
Will 643cdd19c8 Support rendering of proposal tables 2021-08-27 19:16:42 +01:00
wbamberg 07c66616ac Fix typo in comment
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2021-08-27 19:16:42 +01:00
wbamberg 6fc1f52f2f Fix typo in comment
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2021-08-27 19:16:42 +01:00
wbamberg 942f865f64 Fix typo in comment
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2021-08-27 19:16:42 +01:00
Will a0316f6794 Update path to Swagger files 2021-08-27 19:16:42 +01:00
Will 3e03e7b17a A few small fixes in /data and /content 2021-08-27 19:16:42 +01:00
Will 9a179038cc Fix links to rendered APIs 2021-08-27 19:16:42 +01:00
Will 72ff5b92cb Update content to call the new template for event definitions 2021-08-27 19:16:42 +01:00
Will 52f5e73a39 Update content to call the new template for HTTP APIs 2021-08-27 19:16:42 +01:00
Will 1d629bae40 Add styles for rendered data 2021-08-27 19:16:42 +01:00
Will 5f45a897ef Add templates used to render data 2021-08-27 19:16:42 +01:00
Will 06983e1eb1 Remove RST comment, add bullets into list 2021-08-27 19:16:42 +01:00
Will 215b625d81 Replace csv table with GFM table 2021-08-27 19:16:42 +01:00
Will 873e8b30eb Fix links in data 2021-08-27 19:16:42 +01:00
Will 27f8867aa0 Change RST code formatting markup to Markdown 2021-08-27 19:16:42 +01:00
Will c7cf90abfa Remove RST alert directives, replace with simple Markdown formatting 2021-08-27 19:16:42 +01:00
Will 00c6a866e2 Move raw API and event schemas into /data directory
Historical note: this was originally a series of several commits, spread out
over several weeks. They have been squashed together to make `git annotate`
work properly.

The original commits were:
 * 91ab3934 <Will> 2021-01-25 21:16:42 -0800 Add raw API end event schemas into /data directory
 * aae22f47 <Will> 2021-01-25 21:33:06 -0800 Remove non-data files
 * 1092d4ca <Will> 2021-01-26 20:41:33 -0800 Add data-compatiuble extension (.yaml) to all data files that currently omit one
 * 21060109 <Will> 2021-01-26 20:57:28 -0800 Remove symlink to event-schemas, and update openAPI schema paths accordingly
 * 4f633845 <Travis Ralston> 2021-04-12 21:54:54 -0600 Fix event schema examples too
 * 301c7b2f <Will> 2021-02-05 10:15:42 -0800 Restore docs describing OpenAPI extensions that we use
2021-08-27 19:16:39 +01:00
wbamberg a26c352d78 Merge pull request #1 from matrix-org/anoa/support-rendered-data
Reinstate and fix schema validation files
2021-08-27 18:27:11 +01:00
Andrew Morgan 3c66e149f3 Move validator.js to scripts/ directory, update calls 2021-08-27 18:27:11 +01:00
Andrew Morgan 64231f079d Update checker scripts to work correctly from the scripts/ dir
check-swagger-sources also had a bug which caused it to fail while validating the directory
structure of /data/api. This was fixed by @KitsuneRal - thank you!
2021-08-27 18:27:11 +01:00
Andrew Morgan b8dafe86f4 Move and more aptly name check_examples.py scripts 2021-08-27 18:27:07 +01:00
Travis Ralston fb091fed03
Apply suggestions from code review
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
Co-authored-by: penn5 <penn5@users.noreply.github.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2021-06-22 20:25:46 -06:00
Will Hunt f9a5b34099
Clarify /register / /login 2021-05-12 18:41:56 +01:00
Will Hunt 16290a0fe5
it's 2021-05-06 11:12:39 +01:00
Will Hunt 93dd264c30
words 2021-05-05 23:14:48 +01:00
Will Hunt c8e0ed6062
Hopefully improve words around M_EXCLUSIVE 2021-05-05 23:10:00 +01:00
Will Hunt b8ab3d0c87
Remove point about Element showing unexpected devices 2021-05-05 23:03:15 +01:00
Will Hunt 538ac0940e
Update Alternatives section 2021-05-05 18:45:33 +01:00
Will Hunt 0c26298b93
Update proposals/2778-appservice-login.md
Co-authored-by: Christian Paul <christianp@matrix.org>
2021-05-05 18:27:07 +01:00
Christian Paul 4ca319db09
Update proposals/2778-appservice-login.md 2021-05-05 17:04:25 +02:00
Patrick Cloke 97737596e7 Remove cycle breaking algorithm to be specced in the future, if necessary. 2021-05-04 09:32:35 -04:00
Matthew Hodgson c2d0d1efa0 include m.room.create in knock_state (will be overtaken by MSC3173) 2021-05-03 22:16:57 +01:00
Will Hunt e781b75847 Mention that /register provides a token but it's not helpful 2021-05-03 18:09:27 +01:00
Will Hunt bf9cc0a562 M_EXCLUSIVE 2021-05-03 17:44:26 +01:00
Will Hunt 03491c5cfd Add security considerations 2021-05-03 17:42:38 +01:00
Matthew Hodgson 757218c082 relax requirements on cycle-cutting and link to valere's alg 2021-04-30 15:37:23 +01:00
Matthew Hodgson 413e346363 note the rationale behind using the # sigil 2021-04-29 22:58:00 +01:00
Matthew Hodgson acdf9851e9 incorporate uhoreg feedback 2021-04-29 22:45:23 +01:00
Matthew Hodgson 2981baad3d
Update proposals/1772-groups-as-rooms.md
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2021-04-29 22:43:55 +01:00
Matthew Hodgson 7432d254c6 incorporate travis feedback 2021-04-29 22:24:12 +01:00
Matthew Hodgson 0d71150424 remove confusing mention of peeking & dependent MSCs 2021-04-29 21:25:39 +01:00
Matthew Hodgson 1e2ed52b7e add more justification for immutable room types 2021-04-29 21:02:12 +01:00
Matthew Hodgson 37e04f72ae tiebreak ordered spaces sensibly 2021-04-29 20:56:54 +01:00
Matthew Hodgson f07e82e34b clarify the charsets of our lexicographic orderings 2021-04-29 20:49:35 +01:00
Matthew Hodgson 00912f9c1e clarify how to deterministically cut cycles 2021-04-29 20:45:28 +01:00
Will Hunt cb7bbf3787 I don't think this is a concern 2021-04-29 16:00:21 +01:00
Will Hunt 2c817cb1c5 Add another advantage 2021-04-29 15:58:57 +01:00
Will Hunt c9b7e9f22d Reword need for token 2021-04-29 15:58:51 +01:00
Will Hunt 7a3b7b38a5 Add implementations section 2021-04-29 15:58:31 +01:00
Patrick Cloke 12d08ca83d Consistency and update links. 2021-04-14 13:21:59 -04:00
Patrick Cloke 6d007e83ca Defer a TODO to the future. 2021-04-14 13:12:47 -04:00
Hubert Chathi 609641636d decouple from MSC1849/MSC2674 2021-04-13 12:29:58 -04:00
Alexey Rusakov 8935503470 Fix a left-over spotted in the last moment 2021-04-04 21:40:18 +02:00
Alexey Rusakov d27ea07bcb Minor brush-ups and cleanup 2021-03-30 19:43:52 +02:00
Alexey Rusakov 67635b0dd7 Be even clearer about user confirmations 2021-03-30 19:41:49 +02:00
Alexey Rusakov 037ebbf1ca Be even clearer about the authority part 2021-03-30 19:40:34 +02:00
Alexey Rusakov 9dd0854aee Add a link to CS API 2021-03-30 19:34:28 +02:00
Richard van der Hoff e7041525bf Include create in invite_room_state 2021-03-26 10:59:24 +00:00
Andrew Morgan a8f4ada8a8 Make join_rules field of PublicRoomChunk an optional value 2021-03-24 16:49:57 +00:00
Andrew Morgan 9ebfd98a7a
Apply suggestions from code review
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
2021-03-24 16:33:47 +00:00
Andrew Morgan 10267df76e Add missing 403/404 response codes 2021-03-24 16:33:13 +00:00
Andrew Morgan 11996fb436 clarify some words 2021-03-24 16:20:19 +00:00
Hubert Chathi 0841f31ce4
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-03-24 10:24:06 -04:00
Andrew Morgan a1a40c6346 Be consistent about event auth rules 2021-03-23 18:17:47 +00:00
Andrew Morgan 7f0b2d66a0 Update unstable endpoints from i.e xyz.amorgan/knock -> xyz.amorgan.knock
I'm doing this for two reasons:

1) If I ever wanted to create another knock-related MSC, it would be nice to be able
to give it a different namespace for endpoints, such as xyz.amorgan.knock2/knock. If
we were only using xyz.amorgan as the namespace for endpoints, that restricts that
namespace to only work for one MSC which attempts to use /knock as part of an endpoint.

2) I accidentally made the implementation use xyz.amorgan.knock/knock :)
2021-03-23 12:23:42 +00:00
Richard van der Hoff 52dfaaabd4
Update proposals/2801-untrusted-event-data.md
Co-authored-by: Jonathan de Jong <jonathandejong02@gmail.com>
2021-03-23 11:40:56 +00:00
Richard van der Hoff 065b0990e6
Update proposals/1772-groups-as-rooms.md 2021-03-23 11:30:02 +00:00
Richard van der Hoff 5e7ed2b9c4 Tweak wording about lexicographic ordering 2021-03-22 17:19:44 +00:00
Richard van der Hoff 9ca94235c6 Suggested rooms 2021-03-17 18:25:04 +00:00
Richard van der Hoff c0c51383e9 Move "via" problem to a "potential issue" 2021-03-17 18:02:36 +00:00
Richard van der Hoff 8a61ce9032 remove 'present' flag 2021-03-17 17:27:56 +00:00
Richard van der Hoff 6c9d469d56 add an issue about lost parent links 2021-03-17 16:08:32 +00:00
Richard van der Hoff 0bdbec238b Accept m.space.parent links if there is a reverse link 2021-03-17 16:01:42 +00:00
Richard van der Hoff 2e6d7d1c54 spaces are *primarily* referred to by their room ID. 2021-03-17 13:27:57 +00:00
Richard van der Hoff acdb6f1c3d Move "auto-join" out to "future extensions"
we're not doing this bit yet.
2021-03-17 13:18:47 +00:00
Richard van der Hoff 7d757ce8fa minor wording tweaks 2021-03-17 13:18:28 +00:00
Richard van der Hoff dcb18f03dc Move security consideration to MSC2962
I think the peeking thing is specific to access control.
2021-03-17 13:14:53 +00:00
Richard van der Hoff 469b64c5cd rip out m.room.description
if/when we need it, we should follow MSC2875
2021-03-16 14:23:12 +00:00
Richard van der Hoff 62b9154fa7 Remove lost footnotes
These should have been part of MSC2962.
2021-03-16 14:18:27 +00:00
Richard van der Hoff bc1466206d related MSCs 2021-03-16 14:16:26 +00:00
Richard van der Hoff 1cfe6bc0ae MSC1840 is out again. 2021-03-16 14:00:17 +00:00
Richard van der Hoff a8a7acce1e update UIA 2021-03-09 18:10:17 +00:00
Richard van der Hoff 49f7624d55 update brand descriptions 2021-03-09 18:07:37 +00:00
Richard van der Hoff d5166ebc1a
Update proposals/2858-Multiple-SSO-Identity-Providers.md 2021-03-09 18:04:19 +00:00
Andrew Morgan 68d2d7cfdb Note that homeservers should pass down invites to the client if they fail on autojoin 2021-03-09 17:16:25 +00:00
Richard van der Hoff 7871da7565
Update proposals/2858-Multiple-SSO-Identity-Providers.md
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2021-03-09 16:53:16 +00:00
Richard van der Hoff 1ba0c39b14 Change the brand identifiers again 2021-03-09 14:37:30 +00:00
Richard van der Hoff 178cbe1c3a
Update proposals/2858-Multiple-SSO-Identity-Providers.md
Co-authored-by: Travis Ralston <travpc@gmail.com>
2021-03-03 18:50:27 +00:00
Andrew Morgan 8bfef19a39 Remove further traces of old /rooms/roomId/knock CS endpoint 2021-03-03 17:35:49 +00:00
Andrew Morgan ef840c1b53 Split the 'Membership change to ' section into rejecting/rescinding knocks 2021-03-03 17:33:26 +00:00
Andrew Morgan 6556b95233 Move API endpoint sections up to the top of the proposal 2021-03-03 17:25:17 +00:00
Andrew Morgan c915b6442b Update alternatives section 2021-03-03 17:13:29 +00:00
Andrew Morgan 09018be96c Link to existing spec documentation on the public rooms directory 2021-03-03 17:02:26 +00:00
Andrew Morgan 53ad7e3f66 Ensure we return the room_id after knocking via the CS API 2021-03-03 17:01:26 +00:00
Andrew Morgan c575f88d13 Move endpoint extras under endpoint's header 2021-03-03 16:53:17 +00:00
Andrew Morgan c9f34e818e Link to /join/roomIdOrAlias 2021-03-03 16:50:54 +00:00
HelaBasa 885e203886 Translated using Weblate (Sinhala)
Currently translated at 6.2% (4 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/si/
2021-03-03 16:31:29 +00:00
Richard van der Hoff a596efdf8b Get rid of the registry for now
it should just be a proposal. We can add the registry later.
2021-03-03 11:51:25 +00:00
Richard van der Hoff 62cc76f28b Move sequence diagram into doc 2021-03-03 11:33:03 +00:00
Richard van der Hoff 9a4e821ddc
fix link 2021-03-02 19:20:29 +00:00
Richard van der Hoff 2d4da148d8
more fix markdown 2021-03-02 19:19:45 +00:00
Richard van der Hoff 434d686b2d
fix up markdown 2021-03-02 19:16:48 +00:00
Richard van der Hoff dce9c9f09a Move the idp brand assignments out to a registry 2021-03-02 19:14:11 +00:00
HelaBasa 9d01d166cb Added translation using Weblate (Sinhala) 2021-03-02 17:33:17 +00:00
Michael Telatynski ba3e204a48
Update proposals/2858-Multiple-SSO-Identity-Providers.md
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
2021-03-01 22:25:45 +00:00
Richard van der Hoff 6badb3b6d8 Notes on OAuth2 and unknown idps 2021-03-01 19:19:41 +00:00
Ricardo e32d9a9af3 Translated using Weblate (Spanish)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/es/
2021-02-28 11:34:06 +00:00
Andrew Morgan 49a72862a9 Allow knock->knock transitions 2021-02-26 12:08:14 +00:00
Andrew Morgan 2acc0a697b Clarify prose 2021-02-25 18:59:38 +00:00
b068931cc450442b63f5b3d276ea4297 79d02c49ca Translated using Weblate (German)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/de/
2021-02-25 16:34:05 +00:00
Andrew Morgan e790ad2120
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-02-24 18:45:11 +00:00
Travis Ralston fadee276d2 Alter to reserve v7 instead of declare v7 2021-02-22 11:56:53 -07:00
zer0-x ec98621bb1 Translated using Weblate (Arabic)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/ar/
2021-02-21 14:34:04 +00:00
Kateřina Churanová 86415178c7 Translated using Weblate (Czech)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/cs/
2021-02-19 18:34:03 +00:00
zer0-x 146c7ba304 Added translation using Weblate (Arabic) 2021-02-18 22:51:21 +00:00
Kateřina Churanová f1e952ec93 Added translation using Weblate (Czech) 2021-02-18 18:05:58 +00:00
Andrew Morgan 24f61c283c Note that implementations may choose to auto-accept knock-related invites 2021-02-18 17:11:01 +00:00
Andrew Morgan eda65847a3 Comment on push rules 2021-02-18 17:07:31 +00:00
Andrew Morgan 248a3da5ca Switch /send_knock/ from v2 to v1; leave a note as to why 2021-02-18 16:49:03 +00:00
Andrew Morgan 97109d4268 Remove MSC2175, MSC2174 due to lack of implementation 2021-02-18 15:49:51 +00:00
Alexey Rusakov b4269a54e8 Use abbreviated type specifiers
As per the review, this commit introduces Reddit-style type specifiers
for user ids (u/), room aliases (r/), and event ids (e/).
2021-02-17 21:14:02 +01:00
Andrew Morgan 74f3b12a17 Note experimental room version ID 2021-02-17 12:15:38 +00:00
Andrew Morgan 04cd6b3d3e
fix typo
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2021-02-17 12:13:44 +00:00
Andrew Morgan 337c87b949 Add 404 on make_knock if unknown room ID 2021-02-17 12:11:08 +00:00
Andrew Morgan 8400877574 Make ver a required parameter for make_knock 2021-02-17 11:02:21 +00:00
Andrew Morgan d5a2a284c5 Note clients should try to prevent impersonation attacks during knocking 2021-02-17 10:34:04 +00:00
Hubert Chathi ddbcba454c
Fix typo
Co-authored-by: Sorunome <mail@sorunome.de>
2021-02-15 10:20:48 -05:00
Hubert Chathi 356d1fe3e3 add example 2021-02-11 16:48:32 -05:00
Andrew Morgan 5c620de273 typo fix 2021-02-10 17:29:59 +00:00
Andrew Morgan 6a0d07c799 Public rooms directory backwards compatibility note 2021-02-09 11:18:55 +00:00
Will ee87cf2b63
Undo support for patch versions; use an opaque version string 2021-02-08 20:35:04 -08:00
Andrew Morgan 51a7778217 typo 2021-02-08 18:38:38 +00:00
Andrew Morgan e99649cb84 Foreshadow power level requirements for approval/denial of knock 2021-02-08 18:37:08 +00:00
Andrew Morgan 336e5a2c7a
v6 -> v7
Co-authored-by: Travis Ralston <travpc@gmail.com>
2021-02-08 18:04:48 +00:00
Andrew Morgan 1f07f0dc9a MSC2998 2021-02-08 11:50:56 +00:00
Andrew Morgan 3735def108 Define room version 7 2021-02-08 11:50:53 +00:00
Will 108b323e10
Current version should still point to the old spec 2021-02-05 15:20:18 -08:00
Will b79d489f91
Fix comment in changelog template 2021-02-03 14:18:06 -08:00
Will 9f3df1950f
Add changelog page and templates 2021-02-02 20:47:18 -08:00
Will 415199bd3d
Use Markdown in changelog descriptions 2021-02-02 20:43:14 -08:00
Andrew Morgan 42e01b8e91 Add join_rules to room chunks returned on a public room dir query 2021-02-02 19:50:41 +00:00
Travis Ralston 315cf67f6b
Merge pull request #2366 from uhoreg/key_verification_accept
MSC2366: Key verification flow additions: m.key.verification.ready and m.key.verification.done
2021-01-31 10:06:36 -07:00
wbamberg 7fed40ad04
Merge pull request #2980 from wbamberg/all-spec-pages
Migrate all spec pages
2021-01-28 20:36:48 -08:00
Will 68370677ef
Use italics instead of code formatting 2021-01-28 16:21:16 -08:00
Richard van der Hoff ba08c9fe36 notes on and alternatives 2021-01-27 16:48:32 +00:00
Richard van der Hoff 84346055e9
Update proposals/2858-Multiple-SSO-Identity-Providers.md
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2021-01-27 15:22:03 +00:00
Richard van der Hoff 09d41c59b9 add 'brand' 2021-01-27 13:00:12 +00:00
Richard van der Hoff 0c18f83636 grammar clarifications 2021-01-27 12:45:11 +00:00
Richard van der Hoff 277ff682d6 Formatting tweaks 2021-01-27 12:43:26 +00:00
Zachinquarantine 42eda716fe Translated using Weblate (Croatian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/hr/
2021-01-27 01:35:48 +00:00
Hubert Chathi de65f4e1fe
Add link to keys upload endpoint
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-01-26 15:21:25 -05:00
Zachinquarantine 9c531867f9 Added translation using Weblate (Croatian) 2021-01-26 00:52:19 +00:00
Will ea9fced092
Formatting fixes for the authentication section 2021-01-24 11:30:45 -08:00
Will fd658f674f
Fix mangling of sub/superscript in e2e module 2021-01-22 15:29:16 -08:00
Will 183ecfda03
Replace sas-emojis template 2021-01-22 14:31:39 -08:00
Will 86152613b1
Remove changelog sections 2021-01-22 14:27:36 -08:00
Will 47f37d5ab5
Remove {{apis}} template 2021-01-22 14:17:16 -08:00
Alexey Rusakov 246a97e2be Add clarification as per review 2021-01-22 19:59:41 +01:00
Alexey Rusakov eca999382d Grammar 2021-01-22 18:39:33 +01:00
Will 79036a34cc
Update proposals document 2021-01-21 20:41:19 -08:00
Will 965f573c9e
Add example that went missing 2021-01-21 18:23:02 -08:00
Will 3864c11c33
Add content for rooms list page 2021-01-21 17:28:47 -08:00
Will 52745160f3
Use GFM table syntax instead of raw HTML 2021-01-21 17:08:08 -08:00
Will afa62628e8
Extend blockquote style 2021-01-21 10:01:31 -08:00
Will f0a4f59bb0
Fix broken Markdown lists 2021-01-21 09:43:22 -08:00
Will 02a41edc76
Fix heading levels 2021-01-21 09:35:39 -08:00
Will 4e39200cfa
Fix internal links 2021-01-20 21:45:35 -08:00
Will 338434bfcd
Support alerts (notes, warnings, rationales) 2021-01-20 12:34:49 -08:00
Will ab64bda76d
Add syntax highlighting 2021-01-20 10:48:15 -08:00
Will 6c6bd57ebf
Fix ASCII diagrams 2021-01-19 16:41:28 -08:00
Will 55aed1d296
Remove 'unstable' warning 2021-01-19 16:03:15 -08:00
Will 228c737f56
Add support for modules 2021-01-19 15:57:35 -08:00
Will 74adbfc1ec
Remove 'Table of Contents' 2021-01-19 15:32:30 -08:00
Will 9d4803c8af
Remove duplicate titles 2021-01-19 15:30:52 -08:00
Will 19836aa949
Fix headings for Appendices 2021-01-19 15:26:59 -08:00
Will c924b3246f
Add page content as raw Pandoc output 2021-01-19 15:14:52 -08:00
Will ebc6db233b
Add empty page placeholders 2021-01-19 14:15:46 -08:00
Kitsune Ral 3988979f82 Fix leftovers 2021-01-19 22:02:58 +01:00
Kitsune Ral 43e6470aca Drop 'group' in anticipation of #1772 2021-01-19 19:59:03 +01:00
Kitsune Ral a32d7f5027 Apply suggestions from code review 2021-01-19 19:44:15 +01:00
Hubert Chathi d9edb3fdf3
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-01-19 12:59:59 -05:00
wbamberg 636974948d
Merge pull request #2959 from wbamberg/first-page
Basic machinery for the new spec platform
2021-01-19 09:10:20 -08:00
Michael Telatynski 1d90cacf6e Merge branch 't3chguy/msc/multi-sso' of github.com:matrix-org/matrix-doc into t3chguy/msc/multi-sso 2021-01-19 13:53:10 +00:00
Michael Telatynski 85ccf93c6a Remove UIA stuff 2021-01-19 13:52:57 +00:00
Michael Telatynski 8be6540eaf
Update proposals/2858-Multiple-SSO-Identity-Providers.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-01-19 13:43:49 +00:00
Will 9fd35dad78
Use a different directory for assets 2021-01-18 11:48:42 -08:00
Will 985d681645
Use GFM table style 2021-01-18 11:46:05 -08:00
Will 9b2d9cf6b7
Add copyright statements to SCSS and JS; fix indentation for JS 2021-01-18 11:09:09 -08:00
wbamberg 1dadff5701
Set author and private in package.json
Co-authored-by: Travis Ralston <travpc@gmail.com>
2021-01-18 10:44:06 -08:00
Michael Telatynski c7063a4eec Iterate PR based on feedback 2021-01-18 09:30:07 +00:00
Travis Ralston 5800dcb654
Merge pull request #2844 from matrix-org/travis/msc/global-versioning
MSC2844: Global version number for the whole spec
2021-01-17 12:58:42 -07:00
Slobodan Simić 3bed1ada3d Translated using Weblate (Serbian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/sr/
2021-01-16 23:35:45 +00:00
Slobodan Simić f5fd69ecfb Added translation using Weblate (Serbian) 2021-01-15 22:40:33 +00:00
Matthew Hodgson ff85e61be9 fix dev identifier 2021-01-15 11:19:45 +00:00
Matthew Hodgson a709671d03 tie break on multiple parents 2021-01-14 12:55:20 +00:00
Matthew Hodgson a0f89bd522 add XXX about via propagation 2021-01-14 02:23:59 +00:00
Matthew Hodgson b10856d49d let's create spaces with events_default PL100 2021-01-14 02:07:03 +00:00
Matthew Hodgson 91fe7a79b6 switch to allowing multiple parents
to accomodate @Sorunome's use cases for secret rooms to exist in multiple spaces.
also remote , as we always have  now we use room ids
2021-01-14 02:02:27 +00:00
Matthew Hodgson 97103c44cd clarify that auto-joins are not force joins 2021-01-14 01:39:52 +00:00
Matthew Hodgson 343e1f676b incorporate @joepie91's clarification on secret rooms 2021-01-14 01:37:05 +00:00
Matthew Hodgson f8fb32518d replace m.room.parent with m.space.parent for symmetry 2021-01-14 01:35:38 +00:00
Matthew Hodgson b8e3a0b45d include invite state notes 2021-01-14 01:34:34 +00:00
Matthew Hodgson a0d06c7bd7 factor out ACLs into a separate MSC 2021-01-14 01:34:10 +00:00
Matthew Hodgson 302d5d87b4 clarify autojoin and mention 'suggested' rooms 2021-01-13 17:29:43 +00:00
Matthew Hodgson 2de3dc4f70 more plurality fixing 2021-01-13 15:41:31 +00:00
Matthew Hodgson 42c332bd88 fix parent claiming plurality 2021-01-13 15:34:50 +00:00
Matthew Hodgson 803e70a8b3 typo 2021-01-13 14:18:39 +00:00
Matthew Hodgson 037894a641 replace 'default' with 'auto_join' 2021-01-13 14:01:17 +00:00
Will 9547ba1314
Ignore node_modules 2021-01-12 21:02:38 -08:00
Will 0abbb1857f
Comments for all the layout templates 2021-01-12 20:45:24 -08:00
Will 55eae7b70b
Render a single page of the spec in Hugo 2021-01-12 15:31:01 -08:00
Travis Ralston 46d843e8fa Make deprecation industry standard 2021-01-12 09:52:50 -07:00
Travis Ralston 124c8d43d3
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-01-12 09:22:06 -07:00
Travis Ralston 22acbea0ed
Apply suggestions from code review
Co-authored-by: Kitsune Ral <Kitsune-Ral@users.sf.net>
2021-01-09 20:38:58 -07:00
Travis Ralston 7b4e702a69 Remove patch versions, policy stuff, etc 2021-01-09 20:33:20 -07:00
Hubert Chathi 2b32508964
Merge pull request #2951 from uhoreg/cross-signing-msc-clarifications
clarifications to cross-signing MSC
2021-01-08 19:47:33 -05:00
Hubert Chathi 7678884376 clarifications to cross-signing MSC 2021-01-08 17:48:03 -05:00
gkkulik db563171b6 Added translation using Weblate (Silesian) 2021-01-08 22:27:19 +00:00
Richard van der Hoff 69897584e1
Update proposals/1772-groups-as-rooms.md
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
2021-01-04 13:43:59 +00:00
Travis Ralston 7aded5be4d
Merge pull request #2928 from matrix-org/anoa/require_messages_in_sendtodevice
Make 'messages' a required JSON body field in /sendToDevice
2020-12-29 11:21:21 -07:00
Andrew Morgan ba7c0d7f8d Changelog 2020-12-29 18:18:49 +00:00
Andrew Morgan 0a53c86397 Make 'messages' a required JSON body field in /sendToDevice 2020-12-29 16:25:28 +00:00
Hubert Chathi f352de90c3
Merge pull request #2536 from uhoreg/cross-signing-spec
initial spec for cross-signing
2020-12-15 13:11:16 -05:00
Hubert Chathi c56c6a2e2b
Update api/client-server/cross_signing.yaml
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2020-12-15 12:35:02 -05:00
Travis Ralston b07618cc3f Make clarifications to the spec 2020-12-15 09:49:27 -07:00
Travis Ralston 8d6642aaa7 Merge branch 'master' into travis/msc/global-versioning 2020-12-15 09:34:59 -07:00
Hubert Chathi affa240543 use reason for human-readable cancel reason
for consistency with non-DM version
2020-12-14 11:35:12 -05:00
Travis Ralston ba6a72f65f Merge remote-tracking branch 'p-e-w/spelling-grammar' 2020-12-07 14:34:19 -07:00
Travis Ralston 6ccc548912 Revert "Merge branch 'travis/msc/1337-joined-rooms'"
This reverts commit 0961c7b0f7.
2020-12-07 14:34:10 -07:00
Travis Ralston e659572183 Add changelogs for 2888 2020-12-07 14:32:58 -07:00
Travis Ralston 0961c7b0f7 Merge branch 'travis/msc/1337-joined-rooms' 2020-12-07 14:31:26 -07:00
Hubert Chathi 4a779784ef
Update proposals/2241-e2e-verification-in-dms.md
Co-authored-by: poljar <poljar@termina.org.uk>
2020-12-06 09:43:53 -05:00
Travis Ralston 734be5165b
Apply suggestions from code review
Co-authored-by: Kitsune Ral <Kitsune-Ral@users.sf.net>
2020-12-04 14:46:11 -07:00
Travis Ralston 942e8b36e4 Convert to markdown verbatim 2020-12-04 10:38:14 -07:00
Philipp Emanuel Weidmann aab2d587f3
Fix spelling and grammar issues
Signed-off-by: Philipp Emanuel Weidmann <pew@worldwidemann.com>
2020-12-04 11:32:55 +05:30
Travis Ralston 8d4d6a12e8 Add missing changelog 2020-11-30 13:40:46 -07:00
Travis Ralston b0a33e97b1
Merge pull request #2885 from naosia/patch-1
Fix typo in moderation_policies.rst
2020-11-30 13:40:15 -07:00
Will Hunt 5c00004317
Add notice about identifer 2020-11-30 17:16:41 +00:00
Will Hunt 7d9304fdde
Clarify _bridge_alice
Co-authored-by: Tulir Asokan <tulir@maunium.net>
2020-11-30 17:13:54 +00:00
Emelie b1d403083c
Fix typo in moderation_policies.rst
deliberatly -> deliberately
2020-11-29 21:50:33 +01:00
Andrew Morgan 7dcff8f2e1 Disallow invite->knock membership changes 2020-11-27 11:04:21 +00:00
Richard van der Hoff 51aa5e2c40
Update proposals/1772-groups-as-rooms.md
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2020-11-26 17:54:54 +00:00
Michael Telatynski 153c55788d Add more explanation 2020-11-26 10:47:05 +00:00
Travis Ralston f3c625ee3a
Merge pull request #2878 from deepbluev7/fix-extensible-events-link
Update link to extensible events MSC
2020-11-25 13:32:59 -07:00
Nicolas Werner a0f4ae6b38 Add newsfragment
Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
2020-11-25 22:29:30 +01:00
Nicolas Werner 0fd1654879 Update link to extensible events MSC
Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
2020-11-25 21:51:58 +01:00
Travis Ralston bce1bf3210
Merge pull request #1544 from uhoreg/qr_key_verification
MSC1544: Key verification using QR codes
2020-11-25 13:26:28 -07:00
Hubert Chathi 11d6e42ee1 use MSC number 2020-11-23 12:18:44 -05:00
Hubert Chathi f7a397dc90 add proposal for Single SSSS 2020-11-23 12:14:22 -05:00
Travis Ralston 11daaf6ea9 Add a small note about widgets 2020-11-22 18:58:36 -07:00
Travis Ralston 8cc3d44c2a Generally wording changes; Change deprecation 2020-11-22 01:22:05 -07:00
Travis Ralston 09c569f1a7 Cover a case of no-op versions 2020-11-22 01:03:54 -07:00
Hubert Chathi 9db8cc98d9
Update proposals/1543-qr_code_key_verification.md
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
2020-11-20 22:52:41 -05:00
Andrew Morgan 6c75b83b99 Address Travis and Patrick's feedback 2020-11-20 16:45:45 +00:00
Richard van der Hoff 6cc3995ce8 explain a bit 2020-11-20 13:22:44 +00:00
Richard van der Hoff 45f260836d No cross-room auth 2020-11-20 13:19:22 +00:00
Travis Ralston 74746634af
Apply suggestions from code review
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2020-11-19 08:18:45 -07:00
Michael Telatynski 8ac23599b2 Iterate MSC based on feedback 2020-11-19 09:36:34 +00:00
Hubert Chathi 0b97ac59bf event IDs use $ 2020-11-18 22:52:06 -05:00
Peter Gervai 39af7f3249
Update 1772-groups-as-rooms.md (#2866)
Typo.
2020-11-17 15:30:17 +00:00
Richard van der Hoff d4abe40677 one parent per room 2020-11-16 11:57:04 +00:00
Richard van der Hoff 1f1e3c9a0f MSC1840 is in 2020-11-16 11:50:17 +00:00
Michael Telatynski f444273a42 be stricter on the icon url 2020-11-13 12:00:45 +00:00
Michael Telatynski 874e32d69d Merge remote-tracking branch 'origin/t3chguy/msc/multi-sso' into t3chguy/msc/multi-sso 2020-11-13 11:41:13 +00:00
Michael Telatynski a391a4a05d Iterate the MSC 2020-11-13 11:41:06 +00:00
Travis Ralston d079d7d2d3 Answer question about confusing deprecation with not 2020-11-12 17:51:22 -07:00
Travis Ralston 1310c7c8bf Finish up the last few sections 2020-11-12 17:45:26 -07:00
Michael Telatynski 20645365f4
Update proposals/2858-Multiple-SSO-Identity-Providers.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2020-11-12 12:50:37 +00:00
Travis Ralston 940bb49027
Merge pull request #2774 from matrix-org/travis/msc/widget-id
MSC2774: Expose the widget ID to the widget
2020-11-11 12:52:50 -07:00
Richard van der Hoff fbad757ceb update dependencies links 2020-11-11 17:52:16 +00:00
Richard van der Hoff e6a6941845 rename allowed_join again 2020-11-11 16:50:21 +00:00
Richard van der Hoff 3b2825f21d Descope autokick and rename allowed_spaces 2020-11-11 16:38:19 +00:00
Richard van der Hoff 4e3b0ed05f add a length limit to order 2020-11-11 16:03:32 +00:00
Richard van der Hoff b40f7da8d2 Record alternatives
make sure we have records of dismissed alternatives
2020-11-11 15:56:52 +00:00
Richard van der Hoff ae71a6219a Restricting room membership via spaces 2020-11-11 12:13:42 +00:00
Travis Ralston 4dee8dbeab Versioning WIP 2020-11-10 16:31:53 -07:00
Travis Ralston 973ee1438c Progress checkpoint on room versions 2020-11-10 12:51:50 -07:00
Richard van der Hoff 29b07c11ad update power level mappings 2020-11-10 12:56:16 +00:00
Richard van der Hoff 06b5c8342f notes on children and recursion 2020-11-10 12:08:29 +00:00
Richard van der Hoff 109c31c2c8 Avoiding abuse via false parent claims 2020-11-10 11:45:37 +00:00
Travis Ralston c6441176b8 Update i18n 2020-11-09 15:12:49 -07:00
Travis Ralston 83fd17f30c Merge remote-tracking branch 'RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1' 2020-11-09 15:12:14 -07:00
Weblate 8300ec5659 Merge branch 'origin/master' into Weblate. 2020-11-09 22:11:08 +00:00
Richard van der Hoff 839ea0e946 inheriting join rules 2020-11-09 15:11:59 +00:00
Richard van der Hoff a73dd9c371 clarification 2020-11-09 15:11:48 +00:00
Richard van der Hoff e323ade5f7 Switch to room IDs 2020-11-09 15:11:16 +00:00
Richard van der Hoff 1aede33b35 clarify introduction 2020-11-09 12:30:02 +00:00
Michael Telatynski a7eba773be Fix MSC number 2020-11-09 12:14:57 +00:00
Michael Telatynski 204732099b Multiple SSO Identity Providers 2020-11-09 12:11:07 +00:00
Richard van der Hoff d42da585e5
Apply suggestions from code review
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
2020-11-09 12:09:48 +00:00
Travis Ralston 7ff9be4fee
Merge pull request #2857 from wbamberg/fix-capabilities-api-typo
Fix typo in Capabilities API title
2020-11-08 10:51:13 -07:00
Will 42bb5127be
Fix typo in API title 2020-11-08 09:44:11 -08:00
Travis Ralston c4d01b90e9
Merge pull request #2765 from matrix-org/travis/msc/widget-avatars
MSC2765: Widget avatars
2020-11-07 10:52:38 -07:00
Auri B. P 4a1d49ae4a Translated using Weblate (Catalan)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/ca/
2020-11-06 01:49:54 +00:00
Auri Botines Puertas 30448b988c Added translation using Weblate (Catalan) 2020-11-05 01:34:04 +00:00
Hubert Chathi 8284e78d92
Merge pull request #2826 from matrix-org/uhoreg/keys_withheld
add spec for reporting that keys are withheld
2020-11-04 19:03:10 -05:00
Hubert Chathi 267eead50f apply changes from review 2020-11-02 12:30:57 -05:00
Nikolai Zahariev a5e3652d26 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/bg/
2020-10-30 22:49:52 +00:00
Travis Ralston 5f8b7167a5 What if we versioned the whole spec? 2020-10-30 13:57:23 -06:00
Richard van der Hoff 11bb604c5e add an xxx 2020-10-30 18:47:37 +00:00
Richard van der Hoff 2f557daac1 Clarifications to room/space relationship 2020-10-30 18:46:05 +00:00
Richard van der Hoff e746aa3aad
Apply suggestions from code review
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
2020-10-30 11:16:32 +00:00
Nikolai Zahariev 3fed0dd17f Added translation using Weblate (Bulgarian) 2020-10-29 21:50:03 +00:00
Richard van der Hoff 15f34e5be9 supporting trad PLs 2020-10-29 13:07:21 +00:00
Richard van der Hoff 5db56391f3
spelling 2020-10-29 12:21:46 +00:00
Richard van der Hoff c145d398f7 Notes on propagating PLs etc 2020-10-29 11:23:48 +00:00
Richard van der Hoff 52853b57e1 more updates 2020-10-27 18:41:45 +00:00
Richard van der Hoff 4040254001 Update for new terminology and current thinking 2020-10-27 18:15:20 +00:00
Travis Ralston 4ee990e26f
Merge pull request #2758 from matrix-org/rav/proposals/textual_identifier_grammar
MSC2758: Proposal for a common identifier grammar
2020-10-25 13:09:57 -06:00
Travis Ralston ee55d9d35b
Update proposals/2765-widget-avatars.md
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2020-10-22 11:23:32 -06:00
Richard van der Hoff 49ce93f3e2
Update 2758-textual-id-grammar.md 2020-10-20 14:41:37 +01:00
Richard van der Hoff 0baf49abe8 We are not considering hidden-membership rooms yet 2020-10-20 12:12:28 +01:00
Richard van der Hoff 6464e90fd6 Merge branch 'master' into matthew/msc1772 2020-10-20 12:02:44 +01:00
Richard van der Hoff 96cd76c868 remove 'one big event' proposal 2020-10-20 12:00:53 +01:00
Richard van der Hoff 417501d8cc various minor edits 2020-10-20 12:00:43 +01:00
Hubert Chathi 7b4ea94f22 add changelog 2020-10-19 19:12:01 -04:00
Hubert Chathi 38350002a6 add spec for reporting that keys are withheld 2020-10-19 18:57:39 -04:00
Hubert Chathi 7b3c98cd98 we're using the binary format 2020-10-16 22:43:04 -04:00
Hubert Chathi a5ebedc131 apply suggestions from review 2020-10-16 18:36:02 -04:00
Travis Ralston deaa82c653 Rebuild sas-emoji.json 2020-10-16 13:31:14 -06:00
Travis Ralston 651e73dfda Merge remote-tracking branch 'RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1' 2020-10-16 13:30:46 -06:00
Weblate e0a6024cd6 Merge branch 'origin/master' into Weblate. 2020-10-16 19:29:40 +00:00
Travis Ralston a402da4edc
Merge pull request #2814 from aaronraimist/m.room.redaction
Clarify m.room.redaction, remove duplicate entry
2020-10-16 13:19:21 -06:00
random 39fbda7251 Translated using Weblate (Italian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/it/
2020-10-16 09:04:33 +00:00
random 404158fe39 Added translation using Weblate (Italian) 2020-10-15 08:20:52 +00:00
Aaron Raimist a82b657a0a
Attempt to differentiate between m.room.redaction event PL and redact PL
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2020-10-14 22:44:17 -05:00
Travis Ralston 48d4e95dd3
Merge pull request #2817 from aaronraimist/room-v1
Improve wording of room version 1 warnings
2020-10-14 16:24:10 -06:00
Travis Ralston 5ce774629b
Update specification/rooms/v1.rst 2020-10-14 16:23:57 -06:00
Aaron Raimist bc085fd75d
Remove extra space
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2020-10-13 11:44:08 -05:00
Aaron Raimist 15805761be
Describe what a state reset is
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2020-10-13 11:42:24 -05:00
Aaron Raimist 8005467628
Put back first warning, reword "most popular"
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2020-10-13 11:42:03 -05:00
Aaron Raimist 4414d44f34
Remove duplicate description of who can redact a message and correct that description
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2020-10-12 22:30:52 -05:00
Aaron Raimist 954099efc6
Improve wording of room version 1 warnings
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2020-10-10 14:29:02 -05:00
Aaron Raimist 206b4dfb29
Add changelog
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2020-10-10 13:11:00 -05:00
Aaron Raimist 445b0a3a01
Clarify m.room.redaction, remove duplicate entry
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2020-10-10 12:59:47 -05:00
Matthew Hodgson 62cfc8c472 m.message->m.room.message; fixes #2761 2020-10-10 15:08:29 +01:00
Travis Ralston 411202f2bf
spelling
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
2020-10-09 10:16:01 -06:00
Andrew Morgan 815dae6eae Note that redactions of knocks are not a concern 2020-10-08 18:04:32 +01:00
Travis Ralston d323738db5 Add changelog for 2809 2020-10-08 09:15:49 -06:00
Travis Ralston 9a1badee45 Merge remote-tracking branch 'jcgruenhage/patch-1' 2020-10-08 09:15:11 -06:00
Travis Ralston 2887c715bb
Merge pull request #2795 from matrix-org/travis/spec/msc2367-reason
Add membership reasons to the spec for all membership events
2020-10-07 14:51:53 -06:00
Travis Ralston 9ea7b2f5df
Merge pull request #2796 from matrix-org/travis/spec/msc2663-push-errors
Add 404 error responses to push rule endpoints
2020-10-07 14:51:29 -06:00
Hubert Chathi cb44b6ea7b
Merge pull request #2808 from wbamberg/msc2689-guest-allow-members
Allow guests to get the members for a room (MSC2689)
2020-10-07 15:29:56 -04:00
Jan Christian Grünhage 9e29f59bdb
fix content type in upload example 2020-10-07 21:22:59 +02:00
Will dbf74ea85c
Add changelog entry 2020-10-07 10:41:31 -07:00
Will 1fe9cab30b
Allow guests to get the members for a room (MSC2689) 2020-10-07 10:38:23 -07:00
Travis Ralston e865f59c65
Merge pull request #2807 from wbamberg/msc2414-reporting-content-parameters
Make score and reason optional in content reporting API (MSC2414)
2020-10-07 10:47:47 -06:00
Will 89d53fd688
Add changelog entry 2020-10-07 09:42:46 -07:00
Will 6c9b25a397
Make score and reason parameters optional in content reporting API (MSC2414) 2020-10-07 09:38:03 -07:00
Travis Ralston 9e66d32225
Merge pull request #2414 from iinuwa/master
MSC2414: Make reason and score parameters optional for reporting content
2020-10-07 08:08:48 -06:00
Travis Ralston ea5c8ba649
Merge pull request #2806 from wbamberg/remove-toc-bullets
Suppress bullets inside table of contents
2020-10-06 16:06:32 -06:00
Will deef4f5e7c
Suppress bullets inside table of contents 2020-10-06 14:03:37 -07:00
Travis Ralston e20121cbab
Merge pull request #2803 from matrix-org/travis/spec/v6
Update the default recommended room version to v6
2020-10-05 15:47:47 -06:00
Travis Ralston 56e0ee700a Update the default recommended room version to v6
No changelog required - this is the index

MSC: https://github.com/matrix-org/matrix-doc/pull/2788
2020-10-05 15:17:08 -06:00
Andrew Morgan a924f5b3d5 Fix incorrect assumptions about the sender field of a knock event
Got a bit confused with the sender and state_key being different in invite
membership events. In case of a knock, even if the knock event is being
inserted into the room by another homeserver over federation, the sender
of the event is still the knocking user, just like the state_key.
2020-10-05 20:24:56 +01:00
Andrew Morgan 525d1d33e0 Some clarifications and wording fixes 2020-10-05 17:09:33 +01:00
Travis Ralston 82a4a028bd
Merge pull request #2788 from matrix-org/travis/msc/v6-default
MSC2788: Room version 6 as the default room version
2020-10-04 21:13:36 -06:00
Hubert Chathi 48b0196ac6 update property name 2020-10-02 15:52:35 -04:00
iinuwa 02512f0f69
Use endpoint instead of API
Co-authored-by: Jonas Platte <jplatte@users.noreply.github.com>
2020-10-02 09:12:18 -05:00
Travis Ralston 51b278e015 Mention the endpoint 2020-10-02 07:42:35 -06:00
Richard van der Hoff 12da19f927 Words on e2ee events 2020-10-02 09:26:59 +01:00
Richard van der Hoff 46440b0e75 On why you should never trust an event. 2020-10-01 23:33:17 +01:00
Andrew Morgan 6f7bcb6052 Explicitly state what changes to the auth rules are necessary 2020-10-01 18:49:41 +01:00
Andrew Morgan 5097fad4e7 Fix unstable prefix bullet points 2020-10-01 17:43:49 +01:00
Kitsune Ral 11d2529a5e Allow custom query items 2020-10-01 18:37:39 +02:00
Andrew Morgan 6b99228386 Remove section duplicated by membership change section 2020-10-01 17:25:19 +01:00
Andrew Morgan fd8176b93d Clarify endpoint calls clients and servers need to use to handle knocks 2020-10-01 17:09:10 +01:00
Andrew Morgan 9e5ac042ac Explicitly state that the hs that received the knock must put in the room 2020-10-01 16:35:39 +01:00
Andrew Morgan e58e207bbf Go into more depth about membership changes surrounding knocking 2020-10-01 16:20:15 +01:00
Kitsune Ral a2fa637396 Refactor of non-normative sections
Including a few more words regarding the "minimal encoded"
(aka "keep sigils") alternative.
2020-10-01 14:41:10 +02:00
Kitsune Ral 758c57b021 More cleanup 2020-10-01 14:33:03 +02:00
Travis Ralston 5e60ff8bfd Add 404 error responses to push rule endpoints
MSC: https://github.com/matrix-org/matrix-doc/pull/2663
2020-09-30 13:56:12 -06:00
Travis Ralston 5a7bda4bf8 Changelog 2020-09-30 13:45:22 -06:00
Travis Ralston 2d047e312f Add membership reasons to the spec for all membership events
MSC: https://github.com/matrix-org/matrix-doc/pull/2367
2020-09-30 13:43:56 -06:00
Kitsune Ral 6f082bbe12 Be clearer about percent-en/decoding 2020-09-30 08:04:02 +02:00
Kitsune Ral bbc8bfc1c0 Rework the path grammar for better clarity 2020-09-29 21:30:03 +02:00
Kitsune Ral 907bd2e2a2 Rewording, clarifications, minor fixes 2020-09-29 21:29:44 +02:00
Kitsune Ral 438e5a368f Add URI operations and construction algorithm 2020-09-29 21:11:45 +02:00
Hubert Chathi f831162563 add clarifications, examples, etc 2020-09-24 17:09:45 -04:00
iinuwa 07dbdab898
Fix typos 2020-09-23 16:37:26 -05:00
iinuwa 9be28c5ade
Add proposal to remove score; reorganize 2020-09-23 16:34:46 -05:00
Travis Ralston 2ccdcead9c Fix number 2020-09-23 07:48:28 -06:00
Travis Ralston 9f06c0a2e2 What if we make v6 as the default? 2020-09-23 07:46:38 -06:00
Travis Ralston 561043663f
Merge pull request #1960 from matrix-org/travis/msc/integrations/openid
MSC1960: OpenID information exchange with widgets
2020-09-20 11:46:35 -06:00
Travis Ralston 81c7893a6e sync translations for sas emoji 2020-09-16 14:48:20 -06:00
Will Hunt 4751785a8c Some spelling fixes 2020-09-16 18:26:32 +01:00
Will Hunt 3a649839c2 2778 2020-09-16 18:12:07 +01:00
Will Hunt 61a8866683 initial proposal 2020-09-16 18:10:06 +01:00
Andrew Morgan 340f888de3 Mention unstable prefixes for sync, join_rules and membership events 2020-09-16 16:05:27 +01:00
Andrew Morgan 6e47e86f01 Add unstable endpoint replacements 2020-09-16 15:57:12 +01:00
Travis Ralston b3116e4a3c Proposal to have widgets aware of their widget ID 2020-09-11 13:36:46 -06:00
Travis Ralston 89a3663372
Delete SECURITY.md 2020-09-08 14:30:22 -06:00
Travis Ralston c25121974e
Create SECURITY.md 2020-09-08 14:28:03 -06:00
Travis Ralston c9e8326783 Reword following widget spec 2020-09-05 14:56:34 -06:00
Travis Ralston a085fabd42
Merge pull request #2763 from matrix-org/travis/fix-push-tweaks
Add a link to the push module in the push gateway spec
2020-09-04 09:15:58 -06:00
Andrew Morgan fd9d57b8c4 Match state events sent to a remote server when inviting a user 2020-09-04 14:38:29 +01:00
Andrew Morgan 630f7c458c Allow users to knock over and over, removing CS complexity 2020-09-04 14:26:15 +01:00
Travis Ralston 614e95289a
Merge pull request #2766 from RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1
Update from Weblate
2020-09-03 09:33:47 -06:00
Weblate 6ad347e3d6 Merge branch 'origin/master' into Weblate. 2020-09-03 15:32:58 +00:00
Andrew Morgan 61fea58ce0 Merge branch 'soru/knock' of github.com:sorunome/matrix-doc into soru/knock 2020-09-03 16:08:46 +01:00
Andrew Morgan 703fa07028 Remove extraneous text 2020-09-03 16:07:16 +01:00
Travis Ralston 70e69a110a Move the avatar up a level 2020-09-03 09:00:36 -06:00
Travis Ralston d8bc158a3b Renumber 2020-09-03 08:55:27 -06:00
Travis Ralston 1f734cd4a9 Proposal to support widget avatars 2020-09-03 08:53:10 -06:00
Andrew Morgan 58cb299dde
Update proposals/2403-knock.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2020-09-03 13:47:20 +01:00
Andrew Morgan c9a7b442ff Merge branch 'soru/knock' of github.com:sorunome/matrix-doc into soru/knock
* 'soru/knock' of github.com:sorunome/matrix-doc:
  Federation knock_room_state and minor cleanup
2020-09-02 23:15:26 +01:00
Travis Ralston 2877459553 Add a link to the push module in the push gateway spec 2020-09-02 14:04:55 -06:00
Richard van der Hoff 998dec2980
Update proposals/2758-textual-id-grammar.md 2020-09-02 17:50:15 +01:00
Andrew Morgan e93a19f62d Indicate that this proposal requires a new room version 2020-09-02 12:07:44 +01:00
Richard van der Hoff 49e4e61e80
fix typos
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
2020-09-01 22:34:31 +01:00
Richard van der Hoff b3f40fb553 fix a couple of typos 2020-09-01 18:23:46 +01:00
Richard van der Hoff 1688f12d08 Proposal for a common identifier grammar 2020-09-01 18:19:56 +01:00
Travis Ralston c89e5bfe27
Merge pull request #2754 from matrix-org/travis/ll/clarification
Attempt to clarify how the `state` restriction works for lazy-loading
2020-09-01 08:29:52 -06:00
Travis Ralston 1bac9fb6e3 Changelog 2020-08-31 15:20:52 -06:00
Travis Ralston 1c7a6a9c7f Attempt to clarify how the state restriction works for lazy-loading 2020-08-31 15:16:55 -06:00
Andrew Morgan 5bfd65c59f Federation knock_room_state and minor cleanup 2020-08-28 13:56:09 +01:00
LinAGKar d6b59621a3 Translated using Weblate (Swedish)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/sv/
2020-08-27 17:42:32 +00:00
Andrew Morgan ae8ec6603c Spec how a client is notified of pending knock progress 2020-08-27 18:35:06 +01:00
Travis Ralston e304109289 fix widget example 2020-08-27 08:21:41 -06:00
Travis Ralston 4cb7e96b11
Apply suggestions from code review
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2020-08-27 08:13:12 -06:00
Andrew Morgan 965c47ba08 Remove unnecessary sentence 2020-08-27 15:03:18 +01:00
Andrew Morgan 651e73b2db It's possible to fight against spam 2020-08-27 15:00:17 +01:00
Andrew Morgan f3fc5399fc Move client recommendations into its own section
Hopefully leading to less duplication in recommendations as well
2020-08-27 14:59:11 +01:00
Andrew Morgan aad6ff4a05 Remove remaining traces of [200, {}] response format 2020-08-25 16:02:11 +01:00
Andrew Morgan bc90f1ce47 Fix typo 2020-08-25 15:56:10 +01:00
linsui 1e0d497f45 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/zh_Hans/
2020-08-25 11:42:30 +00:00
LinAGKar 0e64c4de72 Translated using Weblate (Swedish)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/sv/
2020-08-23 15:42:26 +00:00
Travis Ralston 3943e63ae2
Merge pull request #2738 from matrix-org/revert-2737-revert-2033-travis/msc/whoami-device
TBD: MSC2033: Adding a device_id to /account/whoami
2020-08-23 08:51:31 -06:00
Marcelo Filho 2e8733c368 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/pt_BR/
2020-08-22 14:42:26 +00:00
Andrew Morgan 105108428f Switch from Power Levels -> Join Rules 2020-08-21 18:50:40 +01:00
Andrew Morgan d6d5858b67 knock->knock and rescinding of knocks are not allowed 2020-08-21 17:08:02 +01:00
Andrew Morgan 716db4e656 Spell out some possible abuse vectors and how to mitigate them 2020-08-21 15:42:12 +01:00
Andrew Morgan 74a341ab8d Mention that knock -> ban is possible 2020-08-21 15:36:38 +01:00
Travis Ralston 80214998f6 Various clarifications to structure 2020-08-21 08:34:35 -06:00
Andrew Morgan 39c21689ce small grammar 2020-08-21 15:30:30 +01:00
Marcelo Filho a8328404ce Added translation using Weblate (Portuguese (Brazil)) 2020-08-21 14:24:58 +00:00
Travis Ralston df74c7dbe3 Merge branch 'master' into travis/msc/integrations/openid 2020-08-21 08:14:28 -06:00
Travis Ralston 6490fda6ee
Apply suggestions from code review
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2020-08-21 07:07:41 -06:00
Travis Ralston 6b64281af7 Update sas-emoji.json for i18n 2020-08-19 09:43:15 -06:00
Travis Ralston cd5e3d9f52 Merge remote-tracking branch 'RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1' 2020-08-19 09:42:51 -06:00
Peter Vágner 14da11eaa5 Translated using Weblate (Slovak)
Currently translated at 96.9% (62 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/sk/
2020-08-19 15:41:58 +00:00
Peter Vágner aafec58871 Added translation using Weblate (Slovak) 2020-08-19 15:41:58 +00:00
Travis Ralston 3e3c2c704b Deleted translation using Weblate (Slovak) 2020-08-19 15:41:58 +00:00
Bruno Windels 93a614c272 Translated using Weblate (Spanish)
Currently translated at 76.6% (49 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/es/
2020-08-19 15:41:58 +00:00
Dagfinn Ilmari Mannsåker 700c63f9ea Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/nb_NO/
2020-08-19 15:41:58 +00:00
reivilibre 70e047e484 Translated using Weblate (French)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/fr/
2020-08-19 15:41:58 +00:00
q-b c52c5e5f4a Translated using Weblate (French)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/fr/
2020-08-19 15:41:58 +00:00
Tuomas Hietala dfae4c4325 Translated using Weblate (Finnish)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/fi/
2020-08-19 15:41:58 +00:00
Tirifto 8eb0f9414f Translated using Weblate (Esperanto)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/eo/
2020-08-19 15:41:58 +00:00
Bruno Windels 0966341c27 Translated using Weblate (Dutch)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/nl/
2020-08-19 15:41:58 +00:00
tusooa f1c8fc2196 Translated using Weblate (Chinese (Simplified))
Currently translated at 9.4% (6 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/zh_Hans/
2020-08-19 15:41:58 +00:00
Peter Vágner a72a5ccda1 Added translation using Weblate (Slovak) 2020-08-19 15:41:58 +00:00
LinAGKar 0565766d1c Translated using Weblate (Swedish)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/sv/
2020-08-19 15:41:58 +00:00
Tuomas Hietala a23b8c1fc4 Added translation using Weblate (Finnish) 2020-08-19 15:41:58 +00:00
Bruno Windels 573ea497d9 Added translation using Weblate (Dutch) 2020-08-19 15:41:58 +00:00
tusooa 46549f3f9f Added translation using Weblate (Chinese (Simplified)) 2020-08-19 15:41:58 +00:00
Dagfinn Ilmari Mannsåker cd8f0c8991 Added translation using Weblate (Norwegian Bokmål) 2020-08-19 15:41:58 +00:00
Tirifto 8197761b29 Added translation using Weblate (Esperanto) 2020-08-19 15:41:58 +00:00
Priit Jõerüüt 2c375ae080 Translated using Weblate (Estonian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/et/
2020-08-19 15:41:58 +00:00
LinAGKar 7920960d33 Added translation using Weblate (Swedish) 2020-08-19 15:41:58 +00:00
Priit Jõerüüt fdbaca662f Added translation using Weblate (Estonian) 2020-08-19 15:41:58 +00:00
Richard van der Hoff c00710d91a Revert "Merge pull request #1598 from matrix-org/rav/proposals/id_grammar"
This reverts commit d9135ef902, reversing
changes made to f714aaadd0.

People are getting confused by the fact this has been merged.
2020-08-19 15:12:54 +01:00
Travis Ralston 9080c5f87f
Revert "Revert "MSC2033: Adding a device_id to /account/whoami"" 2020-08-18 08:53:34 -06:00
Travis Ralston a4b5ec8fec
Merge pull request #2737 from matrix-org/revert-2033-travis/msc/whoami-device
Revert "MSC2033: Adding a device_id to /account/whoami"
2020-08-18 08:53:27 -06:00
Travis Ralston ddc0d78e0c
Revert "MSC2033: Adding a device_id to /account/whoami" 2020-08-18 08:53:13 -06:00
Travis Ralston 0228cf8361
Merge pull request #2033 from matrix-org/travis/msc/whoami-device
MSC2033: Adding a device_id to /account/whoami
2020-08-18 08:47:00 -06:00
Andrew Morgan de038f5601 Fix the response format of send_knock
This aligns with the current v2 federation endpoints. However, we're still using v1
as a prefix here as it is still the first version of this endpoint.
2020-08-17 14:30:28 +01:00
Andrew Morgan 38d67083eb Note that spam is a preventable, but real possibility as a result 2020-08-17 14:27:59 +01:00
Andrew Morgan c92752d1b8 Reflow text to <79 chars 2020-08-17 14:25:34 +01:00
Andrew Morgan d47cb1fec3 Small grammatical fixes 2020-08-17 14:23:33 +01:00
Hubert Chathi 94465e06c2 use MSC number 2020-08-14 16:41:48 -04:00
Hubert Chathi 7595a63fb2 initial version of olm fallback keys 2020-08-14 16:32:29 -04:00
Travis Ralston f0ba7f014b Update i18n for emoji 2020-08-13 11:54:56 -06:00
Travis Ralston 38431dca1c Merge remote-tracking branch 'RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1' 2020-08-13 11:53:19 -06:00
Alexey Murz Korepov 76280f215c Translated using Weblate (Russian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/ru/
2020-08-13 17:51:40 +00:00
aWeinzierl 7da3b37524 Translated using Weblate (German)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/de/
2020-08-13 17:51:39 +00:00
Brendan Abolivier c04bf46800 Translated using Weblate (French)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/fr/
2020-08-13 17:51:38 +00:00
Richard van der Hoff 05f5373a4a Translated using Weblate (French)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/fr/
2020-08-13 17:51:38 +00:00
aWeinzierl c5335a8922 Added translation using Weblate (German) 2020-08-13 07:29:45 +00:00
Alexey Murz Korepov 589b9a3f77 Added translation using Weblate (Russian) 2020-08-13 01:55:49 +00:00
strix aluco 5b9cbfb7bf Translated using Weblate (Ukrainian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/uk/
2020-08-13 01:16:12 +00:00
Will Hunt c78ce90dfa Translated using Weblate (Spanish)
Currently translated at 31.2% (20 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/es/
2020-08-13 01:16:12 +00:00
reivilibre 5daf0fbb7b Translated using Weblate (Japanese)
Currently translated at 25.0% (16 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/ja/
2020-08-13 01:16:11 +00:00
reivilibre 1e401c8ae3 Translated using Weblate (French)
Currently translated at 42.2% (27 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/fr/
2020-08-13 01:16:11 +00:00
Will Hunt 299492b173 Added translation using Weblate (Spanish) 2020-08-12 21:19:30 +00:00
reivilibre ae44ecdafc Added translation using Weblate (Japanese) 2020-08-12 20:52:34 +00:00
reivilibre 7e6bba3256 Added translation using Weblate (French) 2020-08-12 20:46:17 +00:00
Travis Ralston fb48d1ab30
Merge pull request #2729 from RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1
Update from Weblate
2020-08-12 14:35:06 -06:00
strix aluco 41fa1886db Added translation using Weblate (Ukrainian) 2020-08-12 20:33:54 +00:00
Travis Ralston d37f7a25b4
Make translations for SAS emoji available in-tree (#2728)
* add a base file

* Fix directory name

* Added translation using Weblate (English)

* Translated using Weblate (English)

Currently translated at 1.6% (1 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/en_EN/

* add english files

* delete english files

* Added translation using Weblate (English)

* Added translation using Weblate (English)

* Do manual translations

* Deleted translation using Weblate (English)

* Deleted translation using Weblate (English)

* Add a script to update the definitions with the translations

* update i18n

* Add a note to the spec about translations

* changelog

* Ensure translations end with json
2020-08-12 14:04:48 -06:00
Travis Ralston 8eb1c53144 Merge branch 'clokep/login-fallback-changes' 2020-07-30 15:28:15 -06:00
Travis Ralston d41ad7638e re-add note about the login process 2020-07-30 15:28:06 -06:00
Travis Ralston 65c6d545b8 assign number 2020-07-30 10:59:00 -06:00
Travis Ralston 1be21b85b6 Proposal to remove deprecated identity service endpoints 2020-07-30 10:57:18 -06:00
Travis Ralston 5c0f999503
Merge pull request #2689 from Awesome-Technologies/fix_guest_e2ee
MSC2689: Fix E2EE for guests
2020-07-29 08:18:35 -06:00
Travis Ralston 0973e88c7c
Merge pull request #2663 from matrix-org/rei/pushrules_define_enabled
MSC2663: Errors for dealing with non-existent push rules
2020-07-29 08:15:41 -06:00
Patrick Cloke 4daecd0d94 Remove broken formatting. 2020-07-29 09:19:21 -04:00
Patrick Cloke 4353f346b6 Rename changelog file. 2020-07-29 09:18:21 -04:00
Patrick Cloke e261faf70b
Review comments.
Co-authored-by: Travis Ralston <travpc@gmail.com>
2020-07-29 07:10:14 -04:00
Patrick Cloke 9a40d7bf47 Add information from MSC2604: Parameters for Login Fallback to the spec. 2020-07-28 16:04:31 -04:00
Travis Ralston 012f0b1882
Merge pull request #2609 from matrix-org/rav/remove_oauth2
Remove `m.login.token` and `m.login.oauth2` UIA types
2020-07-28 10:02:24 -06:00
Travis Ralston 24d124df50
Update changelogs/client_server/newsfragments/2609.removal 2020-07-28 10:02:11 -06:00
Travis Ralston a96a014512
Merge pull request #2610 from matrix-org/rav/proposal/remove-oauth2-auth-type
MSC2610: Remove `m.login.oauth2` User-Interactive Authentication type from the specification
2020-07-28 10:01:36 -06:00
Travis Ralston 5990d98525
Merge pull request #2611 from matrix-org/rav/proposal-remove-token-auth-type
MSC2611: Remove `m.login.token` User-Interactive Authentication type from the specification
2020-07-28 09:58:55 -06:00
Kitsune Ral b4b917c6c8 Another wording fix 2020-07-25 19:00:56 +02:00
Kitsune Ral c3329fe644
Wording/grammar fixes from code review
Co-authored-by: Denis Kasak <dkasak@termina.org.uk>
2020-07-25 18:59:06 +02:00
Kitsune Ral eeb5ce222c Intro: rephrase a paragraph as per review 2020-07-25 17:00:30 +02:00
Kitsune Ral c60368338c
Apply suggestions from code review
Co-authored-by: Mayeul Cantan <mayeul.cantan@gmail.com>
2020-07-25 12:44:23 +02:00
Kitsune Ral 7b574448db
Fix a broken link
Co-authored-by: Denis Kasak <dkasak@users.noreply.github.com>
2020-07-25 12:42:52 +02:00
Kitsune Ral 294f30f3ab
Reword, as per review
Co-authored-by: Mayeul Cantan <mayeul.cantan@gmail.com>
2020-07-25 11:55:18 +02:00
Michael Albert 78f3c3dac8
Update proposals/2689-fix-e2ee-for-guests.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2020-07-24 21:47:45 +02:00
Hubert Chathi 53e2b999b9
Merge pull request #2687 from uhoreg/sas2_spec
document new key agreement method for SAS verification and deprecate old method
2020-07-23 10:24:57 -04:00
Kitsune Ral bcf5585e55
Remove authority from the example for unfederated room
Co-authored-by: Mayeul Cantan <mayeul.cantan@gmail.com>
2020-07-23 15:51:52 +02:00
Kitsune Ral 5a699f2650
Merge pull request #2518 from matrix-org/kitsune/cleanup
Assorted cleanup pieces
2020-07-23 08:42:41 +02:00
Kitsune Ral 812df4c9c1 Out of WIP; early feedback incorporated
- Authority part semantics are no more prescribed; authority part has
  defined syntax but reserved for future use.
- Moved away non-normative parts to "Discussion" and/or "Alternatives"
- Added `action=chat`
- Extended `via=` applicability to non-roomid cases to compensate
   dropping the authority part semantics.
- Added a reference algorithm to parse a URI.
- Closed outstanding questions/discussion points.
- Added more cases for future evolution.
- Added "minimal syntax" options to the discussion of possible
  alternatives
2020-07-22 17:06:09 +02:00
Hubert Chathi 33ed9fc2dd apply changes from review 2020-07-21 16:19:53 -04:00
Olivier Wilkinson (reivilibre) 3dd5bc42a7 inexistent may or may not be a non-existent word
Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
2020-07-17 13:06:13 +01:00
Richard van der Hoff 125614f3a4
Make use of highlight tweak consistent (#2670)
* remove redundant 'highlight: false' tweaks

their inconsistent usage is super-confusing.

* Remove redundant 'value: true' on highlight tweaks

again, the inconsistency was super-confusing.

* changelog
2020-07-16 17:26:34 +01:00
Richard van der Hoff 1b74e96b7e fix RST in changelog 2020-07-16 15:21:50 +01:00
Richard van der Hoff 6da06383e8
Allow /make_join to return a 404 (#2688)
Specify that `GET /_matrix/federation/v1/make_join/{roomId}/{userId}` can
return a 404 if the room is unknown.
2020-07-16 15:17:40 +01:00
Michael Albert 250f0e47c1 Fix typos 2020-07-15 22:06:19 +02:00
Michael Albert adc867dc99 Fix E2EE for guests 2020-07-15 21:47:28 +02:00
Hubert Chathi 793dae1ece add changelog 2020-07-13 16:03:12 -04:00
Hubert Chathi 0f13ebe3ed document new key agreement method and deprecate old method 2020-07-13 15:59:09 -04:00
Travis Ralston e207dfc0ea
Merge pull request #2630 from uhoreg/sas2
MSC2630: checking public keys in SAS verification
2020-07-11 10:36:55 -06:00
Travis Ralston adf9443df4
Merge pull request #2669 from matrix-org/rei/bug_type_actions
Fix spec bug concerning the type of a push rule's array of actions
2020-07-06 08:33:30 -06:00
Richard van der Hoff 868ca45729
move changelogs to the right directory (#2671)
looks like these ended up in the wrong place.
2020-07-06 15:15:29 +01:00
Olivier Wilkinson (reivilibre) 2e72da2343 Fix spec bug concerning the type of a push rule's array of actions
Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
2020-07-06 13:14:27 +01:00
Olivier Wilkinson (reivilibre) 90a37cdb30 Write MSC2663 2020-07-06 12:36:08 +01:00
Aaron Raimist f8ff2ad6a9
Reword "UI Authorization" to "User-Interactive Authentication" (#2667)
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2020-07-06 11:19:41 +01:00
Olivier Wilkinson (reivilibre) fee59be2b3 Start MSC2663 proposal
Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
2020-07-03 14:03:31 +01:00
Hubert Chathi a91c6446bc
Merge pull request #2639 from uhoreg/backup_version_required
various key backups fixes
2020-07-01 12:04:40 -04:00
Patrick Cloke 782aed7383
Add proposal for accepting query parameters to the login fallback endpoint. (#2604) 2020-06-28 17:00:32 +01:00
Hubert Chathi b770cfee8b
Merge pull request #2653 from uhoreg/spec-fixes-20200623
Various small fixes in e2e spec
2020-06-24 11:03:39 -04:00
Hubert Chathi 3e3eafc6ce add changelog 2020-06-23 16:34:48 -04:00
Hubert Chathi 72ad26ec92 fix changelog 2020-06-23 16:24:32 -04:00
Hubert Chathi 8e2ba5ad2a remove nonexistent field in verification and fix types in secret storage 2020-06-23 16:20:51 -04:00
Isaiah Inuwa bbad4c453f Add backwards-compatibility notes. 2020-06-19 22:45:03 -05:00
Hubert Chathi c8e816d854 Add link to MSC in changelog entries. 2020-06-19 22:22:03 -04:00
Hubert Chathi 83e4d8c413
Merge pull request #2597 from uhoreg/ssss_spec
initial spec of SSSS
2020-06-19 21:44:17 -04:00
Hubert Chathi 902444ceb5
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2020-06-19 21:40:46 -04:00
Travis Ralston 465ed38416
Merge pull request #2647 from jplatte/event-titles
Make event's title fields UpperCamelCase and distinguish /sync ones
2020-06-19 13:53:52 -06:00
Jonas Platte 763e5654cc
Make event's title fields UpperCamelCase and distinguish /sync ones 2020-06-19 21:53:18 +02:00
Travis Ralston 11a808aefd
Merge pull request #2646 from jplatte/unsigned-data
Consistently use the title UnsignedData for the unsigned object
2020-06-19 13:52:38 -06:00
Jonas Platte 049275c33b
Consistently use the title UnsignedData for the unsigned object 2020-06-19 20:16:20 +02:00
Kitsune Ral c76d53c11a
Apply suggestions from code review 2020-06-18 11:03:43 +02:00
Hubert Chathi b44ebaa32e add changelog 2020-06-16 17:06:36 -04:00
Hubert Chathi 24427242f7 fix more mistakes in key backup spec, and factor out room key backups 2020-06-16 17:00:29 -04:00
Hubert Chathi af6e1157d9 version is required when getting keys. Also add some full stops. 2020-06-16 14:23:10 -04:00
Richard van der Hoff 5cb4b086c7
Clarifications to the push module (#2634)
* Minor clarifications to the push spec
* move conditions before defaults
2020-06-16 16:56:31 +01:00
Hubert Chathi efebba62de result may also include signatures 2020-06-15 18:38:47 -04:00
Brendan Abolivier f1e3118317 Revert "MSCXXXX: Ability for clients to request homeservers to resync device lists"
This reverts commit 79dc04515e562847774e2f722fb14401bfb90583.
2020-06-15 20:35:58 +01:00
Brendan Abolivier 9b7a883b50
MSCXXXX: Ability for clients to request homeservers to resync device lists 2020-06-15 20:35:21 +01:00
Hubert Chathi be01eebf8f use the right key ID 2020-06-15 12:56:49 -04:00
Travis Ralston ffd739137e
Merge pull request #2399 from uhoreg/reporting_no_key
MSC2399: Reporting that decryption keys are withheld
2020-06-13 09:40:23 -06:00
Travis Ralston 97191b9348
Merge pull request #2629 from deepbluev7/sync-example-fixes
Remove room_id from /sync examples
2020-06-12 06:33:22 -06:00
Hubert Chathi 6ca3996bef FluffyChat doesn't include any verification yet 2020-06-11 16:39:08 -04:00
Hubert Chathi 1961a215e8
Fix the title 2020-06-11 16:36:25 -04:00
Hubert Chathi d9dc3dc180 rename to match MSC number 2020-06-11 16:30:47 -04:00
Hubert Chathi 0fbb1b9bf9 add information on fixed implementations 2020-06-11 16:25:07 -04:00
Hubert Chathi 269e83c233 more clarifications 2020-06-11 16:14:32 -04:00
Nicolas Werner e3d12d6769 Remove room_id from /sync examples
Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
2020-06-11 18:27:00 +02:00
Richard van der Hoff ac982410b9
Apply suggestions from code review
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2020-06-11 11:18:29 +01:00
Kitsune Ral e310736adb
Merge pull request #2626 from matrix-org/kitsune/structures
Use public_rooms_response.yaml instead of replicating the same definition
2020-06-11 07:36:28 +02:00
Kitsune Ral 57f0c8346f message_pagination.yaml: more $ref cleanup 2020-06-11 07:32:12 +02:00
Hubert Chathi d261084f5b apply changes from review 2020-06-10 17:31:21 -04:00
Kitsune Ral d3b41941aa key_backup.yaml: make body parameters required
Along the same lines as c72d3051.
2020-06-10 21:16:54 +02:00
Kitsune Ral 8e7c0dfb93 Merge remote-tracking branch 'origin/master' into kitsune/cleanup 2020-06-10 21:14:49 +02:00
Richard van der Hoff 4aa778cdee
Put the MSC number in the proposal template (#2622)
this seems to be our convention.
2020-06-10 13:40:12 +01:00
Hubert Chathi c741049760 more clarifications 2020-06-08 22:57:11 -04:00
Travis Ralston 34f2d482be
Merge pull request #2265 from matrix-org/babolivier/msc_email_case
MSC2265: Proposal for mandating case folding when processing e-mail address localparts
2020-06-07 11:37:28 -06:00
Kitsune Ral 49ccfa09a8
Merge pull request #2592 from matrix-org/kitsune/fix-room-versions
capabilities.yaml: drop an extraneous title
2020-06-06 17:47:15 +02:00
Richard van der Hoff da740bfbca
Clarifications to SSO login/UIA (#2608)
including a bunch of text about security
2020-06-05 17:32:13 +01:00
Kitsune Ral 97809c5eae
Update changelogs/client_server/newsfragments/2592.clarification
Co-authored-by: Travis Ralston <travpc@gmail.com>
2020-06-05 12:38:10 +02:00
Richard van der Hoff 1e049481fe Proposal to remove m.login.token ui auth type 2020-06-05 10:52:37 +01:00
Richard van der Hoff 7549b86192 Proposal to remove m.login.oauth2 2020-06-05 10:15:55 +01:00
Richard van der Hoff d9f9706fdb changelog 2020-06-04 22:59:44 +01:00
Richard van der Hoff 7c6636a520 Remove m.login.token and m.login.oauth2 UIA types
AFAIK these have never been implemented. oauth2 lacks enough info to be
sensibly implemented, and `m.login.token` just doesn't make sense.
2020-06-04 22:58:12 +01:00
Richard van der Hoff f632f4a20f
Clarify link to OpenID Connect specification (#2605)
OpenID Connect and OpenID are different things. This seems to be talking about
the former.
2020-06-04 17:36:40 +01:00
Kitsune Ral ea02029f89 Add a changelog 2020-06-04 11:05:36 +02:00
Travis Ralston 29f23a5eda
Merge pull request #2599 from matrix-org/travis/typos
Fix typos and clarify the user ID in login sections
2020-06-03 11:40:05 -06:00
Hubert Chathi f8e4bdfbaf credit David Wong 2020-06-02 17:31:15 -04:00
Travis Ralston 9281d0ca13
Merge pull request #2591 from matrix-org/travis/unsigned
Fix a number of issues with unsigned event objects
2020-06-02 15:12:12 -06:00
Travis Ralston 7fc811d4bd
Update event-schemas/schema/core-event-schema/unsigned_prop.yaml
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2020-06-02 15:10:18 -06:00
Hubert Chathi cf37688b7c
Merge pull request #2387 from uhoreg/key_backup_spec
initial version of spec for key backups
2020-06-02 16:28:04 -04:00
Hubert Chathi a36284810d more clarifications and fixes 2020-06-02 16:25:31 -04:00
Travis Ralston bcce6b9a7c changelog 2020-06-02 08:21:20 -06:00
Travis Ralston d9a1de1d30 Fix typos and clarify the user ID in login sections 2020-06-02 08:13:07 -06:00
Travis Ralston 8532cfd706 Clarify which transaction ID 2020-06-01 20:35:22 -06:00
Hubert Chathi 40c50c80ea
Apply suggestions from code review
Co-authored-by: Travis Ralston <travpc@gmail.com>
2020-06-01 22:34:45 -04:00
Hubert Chathi df695167e8 Add changelog. 2020-06-01 21:17:37 -04:00
Hubert Chathi 07856ec7a2 initial spec of SSSS 2020-06-01 21:03:36 -04:00
Travis Ralston 185e3e4001
Merge pull request #2594 from Dominaezzz/patch-1
Fix Typo
2020-06-01 10:50:37 -06:00
Dominic Fischer 9535540161
Add changelog 2020-06-01 17:35:36 +01:00
Dominic Fischer c02ca21a94
Fix Typo 2020-06-01 17:32:10 +01:00
Kitsune Ral bda05a0d44 capabilities.yaml: drop an extraneous title
AvailableRoomVersions sticks itself as a property type, preempting
the mention of RoomVersionStability in the generated text.
2020-06-01 09:50:18 +02:00
Travis Ralston 33309fb68e Add changelog 2020-05-31 21:46:15 -06:00
Travis Ralston 0f9ffdf01a Make server ACL example inherit from state events 2020-05-31 21:43:27 -06:00
Travis Ralston 33d738e665 Document the m.room.member unsigned object in full 2020-05-31 21:41:29 -06:00
Travis Ralston 1c1e351778 Move m.room.member's unsigned data to the top level 2020-05-31 21:37:18 -06:00
Travis Ralston ffea5d5e61 Document top-level UnsignedData objects 2020-05-31 21:36:47 -06:00
Hubert Chathi ec0b9badc7 Merge remote-tracking branch 'origin/master' into cross-signing-spec 2020-05-29 17:25:19 -04:00
Hubert Chathi 67edc3e229 add clarifications and diagrams 2020-05-29 17:25:07 -04:00
Travis Ralston 3fc5540755 Fix r0.1.4 changelog reference 2020-05-29 07:00:38 -06:00
Kitsune Ral 3b5340539d c2s: Make allOf and description siblings throughout the PR
The overall mess with allOf will be addressed separately; this PR just
puts $ref under allOf to fix the glaring misuse of $ref objects.
2020-05-28 14:40:29 +02:00
Kitsune Ral 48af2e5b47 joining.yaml: put descriptions next to their properties
Fixing the problem described in https://github.com/matrix-org/matrix-doc/pull/2518#issuecomment-621684187
2020-05-28 14:17:01 +02:00
Kitsune Ral 040a91f42d api/: More cleanup in descriptions
(and a fix in one example).
2020-05-28 14:11:47 +02:00
Kitsune Ral f299f60e17 Use public_rooms_response.yaml instead of replicating the same definition
Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
2020-05-28 14:01:47 +02:00
Kitsune Ral b789f3e10b dump-swagger.py: fix a typo in the help string 2020-05-28 13:56:29 +02:00
Kitsune Ral 67a8176903 Clarify officially that we use multiple API files
This is not something endorsed by the OpenAPI spec, just our practice.
2020-05-28 13:55:37 +02:00
Kitsune Ral 6cfb94562e c2s: clean up $ref objects
* Most of the changes: align to the $ref object definition
  (https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03#section-3)
  that says that any attribute other than $ref be ignored.
* Remove extraneous leading ./ in $ref paths
* Fix an apparent typo in registration.yaml:
  /account/password/msisdn/requestToken used a file from ../identity/*
  instead of its c2s namesake.
2020-05-28 13:55:37 +02:00
Travis Ralston 07d4606352
Merge pull request #2585 from matrix-org/client_server/release-r0.6.1
Client-Server r0.6.1
2020-05-27 07:26:56 -06:00
Travis Ralston 32133e6ec3
Merge pull request #2584 from matrix-org/server_server/release-r0.1.4
Server-Server r0.1.4
2020-05-27 07:26:50 -06:00
Travis Ralston 09986af8fc Server-Server r0.1.4
Includes a link to r0.1.3 because we forgot
2020-05-27 07:21:59 -06:00
Kitsune Ral c72d30513e c2s: Add required: true to request bodies 2020-05-25 19:08:17 +02:00
Hubert Chathi 40ec1ae1a9
clarification 2020-05-22 15:01:32 -04:00
Hubert Chathi 64b1ea3323
clarify which key again 2020-05-22 15:00:44 -04:00
Hubert Chathi 915e698c23
clarify which key 2020-05-21 16:48:27 -04:00
Travis Ralston df41947369
Spell words correctly
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2020-05-19 08:47:24 -06:00
Travis Ralston 249421fa62 Assign MSC number 2020-05-19 07:38:41 -06:00
Travis Ralston 6eecee7d3c Proposal to clarify spoilers
Original MSC: https://github.com/matrix-org/matrix-doc/pull/2010

*Per the proposal process, MSC2010 has been modified to match this MSC.*
2020-05-19 07:36:41 -06:00
Hubert Chathi 2e0ef11640
Wording fixes 2020-05-18 11:22:51 -04:00
Hubert Chathi fae1165e1c spec what to do if you try to delete a backup that's already deleted 2020-05-15 12:17:37 -04:00
Hubert Chathi c196cbcf42 add introduction and discourage new implementations from using old method 2020-05-14 13:01:24 -04:00
Hubert Chathi bd95568c8c remove duplicate key 2020-05-13 19:27:36 -04:00
Hubert Chathi 1bae8ea633 we actually don't support the GET /room_key/versions/ with trailing slash 2020-05-13 19:24:34 -04:00
Hubert Chathi 9ccfe61674 add some clarifications and add sharing withheld reason with other devices 2020-05-13 14:22:26 -04:00
Hubert Chathi a6ae757e7a
Fix typo 2020-05-13 12:47:46 -04:00
Hubert Chathi f97b394591 add changelogs 2020-05-12 18:14:56 -04:00
Hubert Chathi a8910fe323 initial spec for cross-signing 2020-05-12 17:24:06 -04:00
Hubert Chathi 86d0d04ed1 don't include unrelated changes 2020-05-11 11:54:50 -04:00
Kitsune Ral ff59fc1905 /keys/query: Add a title in the response
The device keys structure in queryKeys is not the same as the one
defined in device_keys.yaml (it adds things on top of it).

Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
2020-05-08 07:48:28 +02:00
Kitsune Ral 77783b8fc3 Remove extraneous quotes, fix a typo
filter.yaml: quotes under |- were taken literally.
notifications.yaml: it's a number in the example, not a string
2020-05-08 07:48:28 +02:00
Hubert Chathi a896729ac2 some more clarifications and indentation fixes 2020-05-06 17:11:41 -04:00
Hubert Chathi 0145191d43 add links to endpoints and add delete endpoint 2020-05-05 20:00:45 -04:00
Hubert Chathi 3d1c33ed1b move API definitions into backup section 2020-05-05 18:09:35 -04:00
Hubert Chathi 5f3ee44cfb add more suggestions from review 2020-05-05 18:09:17 -04:00
Hubert Chathi 8ff1c26ef2 fix indentation 2020-05-05 17:28:54 -04:00
Hubert Chathi e0b4a3c912
Apply suggestions from code review
Co-authored-by: Travis Ralston <travpc@gmail.com>
2020-05-05 17:02:16 -04:00
Hubert Chathi 9dc6e00335 draft of proposal for SAS 2020-05-04 22:49:34 -04:00
Kitsune Ral 202bf8abb1 Cleanup summaries and descriptions 2020-04-29 20:15:06 +02:00
Kitsune Ral c441e74b27 README.rst: fix the contributor's surname 2020-04-29 20:11:23 +02:00
Hubert Chathi 91f51bb23e use .ready to accept a verification, plus some clarification 2020-04-15 16:09:36 -04:00
Hubert Chathi 4672a7083e make .ready required, and add .done 2020-04-15 16:07:03 -04:00
Hubert Chathi 30586ed98c remove extra space 2020-03-20 16:55:56 -04:00
Hubert Chathi e67ba0cd05 add note indicating similarity between key backup format and key exports
also copy description of forwarding_curve25519_key_chain from key exports, since
it's a better description
2020-03-20 16:49:53 -04:00
Hubert Chathi a0fcb7d9e1 make code required, and some more details about no_olm 2020-03-19 17:10:44 -04:00
Hubert Chathi a7279d99f0
Update proposals/1543-qr_code_key_verification.md
Co-Authored-By: Travis Ralston <travpc@gmail.com>
2020-02-27 11:42:22 -05:00
Hubert Chathi ea0abe9de9 remove incorrect stuff 2020-02-18 23:03:54 -05:00
Hubert Chathi c77d04c709 add base64 option 2020-02-18 22:58:41 -05:00
Hubert Chathi 405ac1e2b5 add base32 option 2020-02-18 22:35:21 -05:00
Hubert Chathi 41072fcaa9
Apply suggestions from code review
Co-Authored-By: Matthew Hodgson <matthew@arasphere.net>
2020-02-07 15:28:19 -05:00
Sorunome 5ae462d558
address issues 2020-02-07 19:50:22 +01:00
Hubert Chathi 78b8133142 use binary encoding of keys to reduce size of QR code 2020-02-06 13:53:33 -05:00
Brendan Abolivier 3c49ba9eb5
Remove reference to second endpoint 2020-02-05 12:29:12 +00:00
Brendan Abolivier 0d4e2e75c7
Remove unstable_features endpoint 2020-02-05 12:25:50 +00:00
Brendan Abolivier 2e2f1c1174
Extend the scope of casefolding to the whole address 2020-02-04 16:50:50 +00:00
Hubert Chathi 7f93084242 request can be transaction_id 2020-01-30 10:34:10 -05:00
Hubert Chathi 21ddf8507a make other_user_key optional for one flow of self-verification 2020-01-29 17:52:18 -05:00
Hubert Chathi fcfd5d99a1 add examples for self-verification 2020-01-29 16:39:32 -05:00
Hubert Chathi 0b4411eadb more words 2020-01-28 15:28:49 -05:00
Hubert Chathi be9c37e959 more clarifications, add comparison with SAS 2020-01-27 18:27:06 -05:00
Hubert Chathi a8c7fda187 add some clarifications 2020-01-24 12:50:51 -05:00
Hubert Chathi 379bb79b00
Update proposals/1543-qr_code_key_verification.md 2020-01-22 11:59:35 -05:00
Hubert Chathi 4f83bd3e36
Update proposals/1543-qr_code_key_verification.md
Co-Authored-By: Travis Ralston <travpc@gmail.com>
2020-01-22 11:55:22 -05:00
Sorunome 53435d400d
update with new endpoints 2020-01-19 13:30:46 +01:00
Isaiah Inuwa 2563711ceb Rename proposal with proper ID. 2020-01-18 08:30:58 -06:00
Isaiah Inuwa 72bc0e0f6c Add proposal to make reason option on content reporting 2020-01-13 21:36:38 -06:00
Isaiah Inuwa 692d039a2b Merge branch 'master' of github.com:iinuwa/matrix-doc 2020-01-13 21:35:36 -06:00
Sorunome 776436a5f0
forgot to update one json example 2020-01-13 12:54:06 +01:00
Sorunome f0411a3cc5
make clear displayname and avatar_url are optional, add status codes 2020-01-13 12:52:22 +01:00
Sorunome 13964988f4
remove question regarding federation api version, as it has to be v2 2020-01-09 20:08:19 +01:00
Sorunome 1ef7c17b93
remove stray heading 2020-01-09 20:00:25 +01:00
Sorunome bee4e9e269
move to correct msc number 2020-01-09 19:57:24 +01:00
Sorunome 501d7ecfd5
add knock proposal 2020-01-09 19:55:44 +01:00
Hubert Chathi 654a9574be rename to match MSC number 2020-01-02 17:05:12 -05:00
Hubert Chathi c87802587a fix typos, add information 2020-01-02 17:02:19 -05:00
iinuwa 6005c16b60
Merge pull request #1 from matrix-org/master
Merge from origin
2019-12-21 13:50:37 -06:00
Hubert Chathi a62c817745
Apply suggestions from code review
Co-Authored-By: Matthew Hodgson <matthew@arasphere.net>
2019-12-17 11:07:04 -05:00
Hubert Chathi 90bf2b3b46 add changelog 2019-12-16 17:40:05 -05:00
Hubert Chathi 4cde800ea1 fix validation errors 2019-12-16 17:25:20 -05:00
Hubert Chathi 59e337187b remove duplicated line 2019-12-16 15:54:42 -05:00
Hubert Chathi e658b17070 initial version of spec for key backups 2019-12-16 15:47:03 -05:00
Hubert Chathi e2e83b130d initial proposal for reporting of withheld keys 2019-12-16 15:15:46 -05:00
Hubert Chathi 22f7eaae0c add example 2019-12-03 22:03:21 -05:00
Hubert Chathi 17abe054f2 send m.key.verification.cancel to other devices when one device is ready 2019-11-29 17:05:53 -05:00
Hubert Chathi 5742c30a96 s/accept/ready/ because we already have an m.key.verification.accept 2019-11-29 09:22:09 -05:00
Hubert Chathi 5f5f99fcc1 wording tweaks 2019-11-26 13:06:13 -05:00
Hubert Chathi abbba4788c rename to match MSC number 2019-11-25 16:16:34 -05:00
Hubert Chathi 33df2d1414 initial proposal of m.key.verification.accept 2019-11-25 16:14:49 -05:00
Hubert Chathi 1590ae224c make hash commitment always include the m.relates_to 2019-11-18 16:24:59 -05:00
Brendan Abolivier 52cd69eb75
Split into two non-versioned endpoints 2019-11-07 15:45:58 +00:00
Hubert Chathi a514485bcb add note about displaying other events 2019-11-05 16:22:45 -05:00
Hubert Chathi f4bad37c10 add notes about redactions/edits 2019-11-05 16:20:41 -05:00
Hubert Chathi 7466955744 add note that verifying yourself may want to use to_device instead 2019-11-01 14:54:58 -04:00
Hubert Chathi 788e98711e Merge branch 'e2e_verification_in_dms' of github.com:uhoreg/matrix-doc into e2e_verification_in_dms 2019-10-23 13:24:18 -04:00
Hubert Chathi 1d165eec29 add clarifications 2019-10-23 13:22:10 -04:00
Hubert Chathi 06ee66d6b0
Apply suggestions from code review
Co-Authored-By: Kitsune Ral <Kitsune-Ral@users.sf.net>
Co-Authored-By: David Baker <dbkr@users.noreply.github.com>
2019-10-23 15:30:07 +01:00
Brendan Abolivier 4517506d57
Incorporate review 2019-10-15 17:34:02 +02:00
Brendan Abolivier 6bd2876688
MSC number 2019-10-15 13:59:22 +02:00
Brendan Abolivier ba8880546d
Proposal for versions information on the identity server API 2019-10-15 13:54:52 +02:00
Kitsune Ral 644bb3e4d4 Follow-ups on review comments 2019-10-15 20:11:04 +09:00
Hubert Chathi 1f1d22f667 fix a couple of missed m.reference changes 2019-10-08 16:46:15 -04:00
Hubert Chathi ab3ed738e4 drop the recommendation that requests highlight the user 2019-10-08 16:27:53 -04:00
Hubert Chathi 7469198d8b add from_device fields and a FIXME 2019-10-08 16:19:39 -04:00
Kitsune Ral 008185dfcb
Fix path grammar
Co-Authored-By: David Vo <auscompgeek@users.noreply.github.com>
2019-10-06 08:10:53 +09:00
Kitsune Ral f2850c7f6a Initial draft of the Matrix URI scheme proposal
A remake of MSC455.
2019-10-04 19:07:42 +09:00
Hubert Chathi e19fca7d54 make some fixes, add a clarification, add a message to indicate completion 2019-09-25 15:31:01 -04:00
Hubert Chathi 332b5605c1 simplify protocol by embedding Alice's key in Bob's QR code 2019-09-19 16:18:46 -04:00
Brendan Abolivier 6b0a8505ec
Propose case folding instead of lowercasing 2019-09-19 17:34:25 +01:00
Hubert Chathi 10b6fd6c8e add more crypto magic, clarify things, add examples 2019-09-18 19:05:05 -04:00
Hubert Chathi 0007498b4c remove empty tradeoffs section 2019-09-05 11:54:33 -04:00
Brendan Abolivier 520c76a1cb
Spell out that the proposal also concerns homeservers 2019-09-02 13:56:01 +01:00
Brendan Abolivier 997360995c
Wording
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2019-09-02 13:41:49 +01:00
Brendan Abolivier bddadfeb18
Typo
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2019-09-02 13:41:33 +01:00
Brendan Abolivier 552f71a9f9
Wording
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2019-09-02 13:41:23 +01:00
Brendan Abolivier 524ec52f73
Wording
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2019-09-02 13:41:07 +01:00
Brendan Abolivier aad6f7138c Merge branch 'master' into babolivier/msc_email_case 2019-09-02 13:35:48 +01:00
Brendan Abolivier 60354f8cf9
MSC number 2019-08-30 14:47:02 +01:00
Brendan Abolivier d1efd488b7
Proposal for mandating lowercasing when processing e-mail address localparts 2019-08-30 14:43:17 +01:00
Hubert Chathi 0e6286f5d0 write more stuff 2019-08-24 12:38:13 -07:00
Hubert Chathi fb724bc625 rename to match PR number 2019-08-21 21:22:03 -07:00
Hubert Chathi 4f655247b0 initial draft of verification in DMs 2019-08-21 21:17:41 -07:00
Alexander "Ace" Olofsson 99bd46c9e7
Allow the use of the HTML <details> tag
Signed-off-by: Alexander Olofsson <ace@haxalot.com>
2019-07-16 22:00:24 +02:00
Travis Ralston f4ff8e5467 Clarify where the field appears 2019-05-27 12:20:26 -06:00
Travis Ralston df51acd7ae Proposal for adding a device_id to /account/whoami 2019-05-27 12:14:21 -06:00
Travis Ralston bd0211be12 Assign MSC number 2019-04-08 21:24:57 -06:00
Travis Ralston e8de1423b1 Proposal for OpenID information exchange with widgets 2019-04-08 21:22:55 -06:00
Hubert Chathi 38689a8215 add information about interacting with key requests and define cancellation codes 2019-01-08 17:44:01 -05:00
Hubert Chathi 3b0073a9d1 allow for multiple keys to be verified, for cross-signing 2019-01-08 16:07:22 -05:00
Hubert Chathi ba39779375 add a conclusion 2019-01-08 16:06:53 -05:00
Hubert Chathi 517754bada use common key verification message types as per MSC1717 2019-01-08 16:05:55 -05:00
Matthew Hodgson 1bbe638927 typo 2019-01-06 16:59:19 +00:00
Matthew Hodgson 54bf339ae8 typo 2019-01-06 16:11:54 +00:00
Matthew Hodgson 88ff3de28a spell out deps 2019-01-06 13:57:56 +00:00
Matthew Hodgson 010246ea6d typo 2019-01-06 13:56:41 +00:00
Matthew Hodgson 19e94203fa flesh out state events split per state-key for defining groups 2019-01-06 13:51:04 +00:00
Matthew Hodgson cd5a8420a8
flesh out how flair could work 2019-01-06 00:35:50 +00:00
Matthew Hodgson e00eff567a add thought about splitting events 2019-01-04 01:43:41 +00:00
Matthew Hodgson 43ae6ad7c1 md 2019-01-03 19:07:50 +00:00
Matthew Hodgson a884fd8772 wordwrap fix 2019-01-03 19:07:30 +00:00
Matthew Hodgson 1e81fbd2d8 md 2019-01-03 18:55:58 +00:00
Matthew Hodgson 346f7ac113 add hyperlinks 2019-01-03 18:55:06 +00:00
Matthew Hodgson 6c499db3ba WIP groups as rooms MSC 2019-01-03 18:49:30 +00:00
Hubert Chathi 95280d8b09 switch QR code to URL, add introductory text, add clarifications, reorganize 2018-09-05 16:37:42 -04:00
Hubert Chathi acd9a5d32f add note about Bob mashing the "Verify" button prematurely 2018-08-20 19:35:27 -04:00
Hubert Chathi 3734471028 mention option of having the QR code be a URL 2018-08-20 15:52:01 -04:00
Hubert Chathi 3aba9b153b initial dump of proposal 2018-08-20 15:24:44 -04:00
1045 changed files with 66372 additions and 57269 deletions

View file

@ -1,16 +0,0 @@
steps:
- label: ":books: Build spec"
command:
- python3 -m venv env
- env/bin/pip install -r scripts/requirements.txt
- ". env/bin/activate; scripts/generate-matrix-org-assets"
artifact_paths:
- assets.tar.gz
plugins:
- docker#v3.0.1:
image: "python:3.6"
- label: "rebuild matrix.org"
trigger: "matrix-dot-org"
async: true
branches: "master"

View file

@ -1,124 +0,0 @@
gendoc: &gendoc
name: Generate the docs
command: |
source /env/bin/activate
scripts/gendoc.py
genswagger: &genswagger
name: Generate the swagger
command: |
source /env/bin/activate
scripts/dump-swagger.py
buildswaggerui: &buildswaggerui
name: Build Swagger UI
command: |
ls scripts/
mkdir -p api/client-server
git clone https://github.com/matrix-org/swagger-ui swagger-ui
cp -r swagger-ui/dist/* api/client-server/
mkdir -p api/client-server/json
cp scripts/swagger/api-docs.json api/client-server/json/
wget https://raw.githubusercontent.com/matrix-org/matrix.org/master/content/swagger.css -O api/client-server/swagger.css
wget https://raw.githubusercontent.com/matrix-org/matrix.org/master/scripts/swagger-ui.patch
patch api/client-server/index.html swagger-ui.patch
checkexamples: &checkexamples
name: Check Event Examples
command: |
source /env/bin/activate
cd event-schemas
./check_examples.py
cd ../api
./check_examples.py
genmatrixassets: &genmatrixassets
name: Generate/Verify matrix.org assets
command: |
source /env/bin/activate
./scripts/generate-matrix-org-assets
validateapi: &validateapi
name: Validate OpenAPI specifications
command: |
cd api
npm install
node validator.js -s "client-server"
buildspeculator: &buildspeculator
name: Build Speculator
command: |
cd scripts/speculator
go build -v
buildcontinuserv: &buildcontinuserv
name: Build Continuserv
command: |
cd scripts/continuserv
go build -v
version: 2
jobs:
validate-docs:
docker:
- image: node:alpine
steps:
- checkout
- run: *validateapi
check-docs:
docker:
- image: uhoreg/matrix-doc-build
steps:
- checkout
- run: *checkexamples
- run: *genmatrixassets # We don't actually use the assets, but we do want to make sure they build
build-docs:
docker:
- image: uhoreg/matrix-doc-build
steps:
- checkout
- run: *gendoc
- store_artifacts:
path: scripts/gen
- run:
name: "Doc build is available at:"
command: DOCS_URL="${CIRCLE_BUILD_URL}/artifacts/${CIRCLE_NODE_INDEX}/${CIRCLE_WORKING_DIRECTORY/#\~/$HOME}/scripts/gen/index.html"; echo $DOCS_URL
build-swagger:
docker:
- image: uhoreg/matrix-doc-build
steps:
- checkout
- run: *genswagger
- run: *buildswaggerui
- store_artifacts:
path: api/client-server/
- run:
name: "Swagger UI is available at:"
command: DOCS_URL="${CIRCLE_BUILD_URL}/artifacts/${CIRCLE_NODE_INDEX}/${CIRCLE_WORKING_DIRECTORY/#\~/$HOME}/api/client-server/index.html"; echo $DOCS_URL
build-dev-scripts:
docker:
- image: golang:1.10
steps:
- checkout
- run:
name: Install Dependencies
command: |
go get -v github.com/hashicorp/golang-lru
go get -v gopkg.in/fsnotify/fsnotify.v1
- run: *buildcontinuserv
- run: *buildspeculator
workflows:
version: 2
build-spec:
jobs:
- build-docs
- build-swagger
- check-docs
- validate-docs
- build-dev-scripts
notify:
webhooks:
- url: https://giles.cadair.dev/circleci

1
.github/CODEOWNERS vendored Normal file
View file

@ -0,0 +1 @@
* @matrix-org/spec-core-team

13
.github/ISSUE_TEMPLATE/clarification.md vendored Normal file
View file

@ -0,0 +1,13 @@
---
name: Clarity problem
about: Report an area of the spec that is unclear.
title: ''
labels: 'clarification'
assignees: ''
---
**Link to problem area**:
**Issue**
What is wrong? How can we improve?

8
.github/ISSUE_TEMPLATE/config.yaml vendored Normal file
View file

@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Matrix Spec Discussion
url: "https://matrix.to/#/#matrix-spec:matrix.org"
about: Questions about the spec and proposal process can be asked here.
- name: Matrix Security Policy
url: https://www.matrix.org/security-disclosure-policy/
about: Learn more about our security disclosure policy.

13
.github/ISSUE_TEMPLATE/cosmetic-bug.md vendored Normal file
View file

@ -0,0 +1,13 @@
---
name: Cosmetic issue
about: Report an issue with how the spec looks.
title: ''
labels: 'aesthetic'
assignees: ''
---
**Link to problem area**:
**Issue**
What is wrong? What can we do to improve?

12
.github/ISSUE_TEMPLATE/idea.md vendored Normal file
View file

@ -0,0 +1,12 @@
---
name: Spec idea
about: Suggest a future MSC idea.
title: ''
labels: 'improvement'
assignees: ''
---
**Suggestion**
What would you like to see in Matrix? If your idea is vaguely complete enough, we
recommend submitting [an MSC](https://matrix.org/docs/spec/proposals) instead.

37
.github/ISSUE_TEMPLATE/release.md vendored Normal file
View file

@ -0,0 +1,37 @@
---
name: '[SCT] Release checklist'
about: 'Used by the Spec Core Team to create a new release.'
title: 'Matrix 1.X'
labels: 'release-blocker'
assignees: ''
---
<!-- ------------------------------------------------------------------------ -->
<!-- Please asssign the release coordinator (probably yourself) to this issue -->
<!-- ------------------------------------------------------------------------ -->
Date: **Thursday, May 25, 2023** <!-- CHANGE ME -->
Previous release: <!-- LINK TO LAST RELEASE'S CHECKLIST -->
Preflight checklist ([release steps](https://github.com/matrix-org/matrix-spec/blob/main/meta/releasing.md)):
* [ ] Pin this issue to the repo.
* [ ] Ensure the social media account holders are available for the release day.
* [ ] Blog post written.
* [ ] Check for release blockers that may have been missed.
* [ ] Review/fix the changelog.
Release checklist ([release steps](https://github.com/matrix-org/matrix-spec/blob/main/meta/releasing.md)):
* [ ] Branch stuffs.
* [ ] Github release artifact.
* [ ] Published to spec.matrix.org.
* [ ] All links work.
* [ ] Publish blog post.
* [ ] Announce in #matrix-spec, client developers, HS developers, SCT office, and other rooms as warranted.
* [ ] Post to Twitter/Mastodon.
* [ ] Close this issue.
* [ ] Unpin this issue from the repo.
Known release blockers:
* [ ] <!-- Issue/PR link -->

16
.github/ISSUE_TEMPLATE/spec-bug.md vendored Normal file
View file

@ -0,0 +1,16 @@
---
name: Documentation error
about: Report an issue with the spec itself (incorrect text).
title: ''
labels: 'spec-bug'
assignees: ''
---
**Link to problem area**:
**Issue**
What is wrong?
**Expected behaviour**
How can the issue be fixed? Links to implementations/documents which prove the spec is wrong are appreciated.

View file

@ -1,19 +0,0 @@
---
name: Proposal ready for review
about: A proposal that is ready for review by the core team and community.
title: ''
labels: proposal, proposal-in-review
assignees: ''
---
<!-- Put your "rendered" link here -->
### Pull Request Checklist
<!-- Please read CONTRIBUTING.rst before submitting your pull request -->
* [ ] Pull request includes a [changelog file](https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst#adding-to-the-changelog)
* [ ] Pull request includes a [sign off](https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst#sign-off)
* [ ] Pull request includes ['Rendered' link](https://matrix.org/docs/spec/proposals#process) above.
* [ ] Pull request title and file name include this PR's number as the MSC number.

View file

@ -1,16 +0,0 @@
---
name: Spec clarification/not a proposal
about: A change that's not a spec proposal, such as a clarification to the spec itself.
title: ''
labels: ''
assignees: ''
---
### Pull Request Checklist
<!-- Please read CONTRIBUTING.rst before submitting your pull request -->
* [ ] Pull request includes a [changelog file](https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst#adding-to-the-changelog)
* [ ] Pull request includes a [sign off](https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst#sign-off)
* [ ] Pull request is classified as ['other changes'](https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst#other-changes)

View file

@ -1,20 +0,0 @@
---
name: WIP Proposal
about: A proposal that isn't quite ready for formal review yet.
title: '[WIP] Your Proposal Title'
labels: proposal
assignees: ''
---
<!-- Put your "rendered" link here -->
### Pull Request Checklist
<!-- Please read CONTRIBUTING.rst before submitting your pull request -->
* [ ] Pull request includes a [changelog file](https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst#adding-to-the-changelog)
* [ ] Pull request includes a [sign off](https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst#sign-off)
* [ ] A ['Rendered' link](https://matrix.org/docs/spec/proposals#process) above.
* [ ] Update the title and file name of your proposal to match this PR's number (after opening).
* [ ] Ask in [#matrix-spec:matrix.org](https://matrix.to/#/#matrix-spec:matrix.org) to get this marked as ready for review, once it is ready for review.

13
.github/_typos.toml vendored Normal file
View file

@ -0,0 +1,13 @@
[files]
extend-exclude = ["/themes", "/attic", "/data-definitions", "*.css", "syntax.scss", "package-lock.json"]
[default]
check-filename = true
[default.extend-identifiers]
au1ba7o = "au1ba7o"
[default.extend-words]
Appy = "Appy"
fo = "fo"
Iy = "Iy"

8
.github/pull_request_template.md vendored Normal file
View file

@ -0,0 +1,8 @@
### Pull Request Checklist
<!-- Please read CONTRIBUTING.rst before submitting your pull request -->
* [ ] Pull request includes a [changelog file](https://github.com/matrix-org/matrix-spec/blob/master/CONTRIBUTING.rst#adding-to-the-changelog)
* [ ] Pull request includes a [sign off](https://github.com/matrix-org/matrix-spec/blob/master/CONTRIBUTING.rst#sign-off)
* [ ] Pull request is classified as ['other changes'](https://github.com/matrix-org/matrix-spec/blob/master/CONTRIBUTING.rst#other-changes)

18
.github/workflows/checks.yaml vendored Normal file
View file

@ -0,0 +1,18 @@
# workflow steps that ought to pass on a PR, but shouldn't block a preview.
name: "Checks"
on:
pull_request:
jobs:
check-newsfragments:
name: "🔎 Check that new newsfragments are valid"
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: scripts/check-newsfragments
env:
PULL_REQUEST_NUMBER: ${{ github.event.number }}

312
.github/workflows/main.yml vendored Normal file
View file

@ -0,0 +1,312 @@
name: "Spec"
env:
HUGO_VERSION: 0.148.1
PYTHON_VERSION: 3.13
on:
push:
branches:
- main
tags:
- v*
pull_request:
workflow_dispatch:
schedule:
# Run this workflow every day at 2am. This helps keep the page of
# current spec proposals up-to-date.
- cron: '0 2 * * *'
jobs:
validate-openapi:
name: "🔎 Validate OpenAPI specifications"
runs-on: ubuntu-latest
steps:
- name: "📥 Source checkout"
uses: actions/checkout@v4
- name: " Setup Node"
uses: actions/setup-node@v4
with:
node-version: '20'
- name: "🔎 Run validator"
run: |
npx @redocly/cli@latest lint data/api/*/*.yaml
check-event-examples:
name: "🔎 Check Event schema examples"
runs-on: ubuntu-latest
steps:
- name: "📥 Source checkout"
uses: actions/checkout@v4
- name: " Setup Python"
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
cache: 'pip'
cache-dependency-path: scripts/requirements.txt
- name: " Install dependencies"
run: |
pip install -r scripts/requirements.txt
- name: "🔎 Run validator"
run: |
python scripts/check-event-schema-examples.py
check-openapi-examples:
name: "🔎 Check OpenAPI definitions examples"
runs-on: ubuntu-latest
steps:
- name: "📥 Source checkout"
uses: actions/checkout@v4
- name: " Setup Python"
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
cache: 'pip'
cache-dependency-path: scripts/requirements.txt
- name: " Install dependencies"
run: |
pip install -r scripts/requirements.txt
- name: "🔎 Run validator"
run: |
python scripts/check-openapi-sources.py
check-schemas-examples:
name: "🔎 Check JSON Schemas inline examples"
runs-on: ubuntu-latest
steps:
- name: "📥 Source checkout"
uses: actions/checkout@v4
- name: " Setup Python"
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
cache: 'pip'
cache-dependency-path: scripts/requirements.txt
- name: " Install dependencies"
run: |
pip install -r scripts/requirements.txt
- name: "🔎 Run validator"
run: |
python scripts/check-json-schemas.py
calculate-baseurl:
name: "⚙️ Calculate baseURL for later jobs"
runs-on: ubuntu-latest
outputs:
baseURL: "${{ steps.set-baseurl.outputs.baseURL }}"
steps:
# For PRs, set the baseURL to `/`.
# For releases, set the baseURL to `/$tag` (eg: `/v1.2`).
# Otherwise, set it to `/unstable`.
- name: "⚙️ Calculate baseURL"
id: set-baseurl
# Double brackets on the elif to avoid auto-escaping refs/tags/* because we need
# the asterisk matching behaviour, not the literal string.
run: |
if [ "${GITHUB_EVENT_NAME}" == "pull_request" ]; then
echo "baseURL=/" >> "$GITHUB_OUTPUT"
elif [[ "${GITHUB_REF}" == refs/tags/* ]]; then
echo "baseURL=/${GITHUB_REF/refs\/tags\//}" >> "$GITHUB_OUTPUT"
else
echo "baseURL=/unstable" >> "$GITHUB_OUTPUT"
fi
build-openapi:
name: "🐍 Build OpenAPI definitions"
runs-on: ubuntu-latest
needs: [calculate-baseurl]
steps:
- name: "📥 Source checkout"
uses: actions/checkout@v4
- name: " Setup Python"
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
cache: 'pip'
cache-dependency-path: scripts/requirements.txt
- name: " Install dependencies"
run: |
pip install -r scripts/requirements.txt
- name: "📦 Asset creation"
run: |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
export RELEASE="${GITHUB_REF/refs\/tags\//}"
else
export RELEASE="unstable"
fi
# The output path matches the final deployment path at spec.matrix.org
scripts/dump-openapi.py \
--base-url "https://spec.matrix.org${{ needs.calculate-baseurl.outputs.baseURL }}" \
--api application-service \
-r "$RELEASE" \
-o spec/application-service-api/api.json
scripts/dump-openapi.py \
--base-url "https://spec.matrix.org${{ needs.calculate-baseurl.outputs.baseURL }}" \
--api client-server \
-r "$RELEASE" \
-o spec/client-server-api/api.json
scripts/dump-openapi.py \
--base-url "https://spec.matrix.org${{ needs.calculate-baseurl.outputs.baseURL }}" \
--api push-gateway \
-r "$RELEASE" \
-o spec/push-gateway-api/api.json
scripts/dump-openapi.py \
--base-url "https://spec.matrix.org${{ needs.calculate-baseurl.outputs.baseURL }}" \
--api server-server \
-r "$RELEASE" \
-o spec/server-server-api/api.json
scripts/dump-openapi.py \
--base-url "https://spec.matrix.org${{ needs.calculate-baseurl.outputs.baseURL }}" \
--api identity \
-r "$RELEASE" \
-o spec/identity-service-api/api.json
tar -czf openapi.tar.gz spec
- name: "📤 Artifact upload"
uses: actions/upload-artifact@v4
with:
name: openapi-artifact
path: openapi.tar.gz
generate-changelog:
name: "📢 Run towncrier for changelog"
# skip for builds of git tags
if: "!startsWith(github.ref, 'refs/tags/')"
runs-on: ubuntu-latest
steps:
- name: "📥 Source checkout"
uses: actions/checkout@v4
- name: " Setup Python"
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: " Install towncrier"
run: "pip install 'towncrier'"
- name: "Generate changelog"
run: ./scripts/generate-changelog.sh vUNSTABLE
- name: "📤 Artifact upload"
uses: actions/upload-artifact@v4
with:
name: changelog-artifact
path: content/changelog/unstable.md
build-spec:
name: "📖 Build the spec"
runs-on: ubuntu-latest
needs: [calculate-baseurl, build-openapi, generate-changelog]
# run even if generate-changelog was skipped
if: ${{ always() }}
steps:
- name: " Setup Node"
uses: actions/setup-node@v4
with:
node-version: '20'
- name: " Setup Hugo"
uses: peaceiris/actions-hugo@75d2e84710de30f6ff7268e08f310b60ef14033f # v3.0.0
with:
hugo-version: ${{ env.HUGO_VERSION }}
extended: true
- name: "📥 Source checkout"
uses: actions/checkout@v4
- name: "⚙️ npm"
run: |
npm i
npm run get-proposals
- name: "📥 Download generated changelog"
if: "needs.generate-changelog.result == 'success'"
uses: actions/download-artifact@v4
with:
name: changelog-artifact
path: content/changelog
- name: "⚙️ hugo"
run: hugo --baseURL "${{ needs.calculate-baseurl.outputs.baseURL }}" -d "spec"
# We manually unpack the spec OpenAPI definition JSON to the website tree
# to make it available to the world in a canonical place:
# https://spec.matrix.org/latest/client-server-api/api.json
# Works for /unstable/ and /v1.1/ as well.
- name: "📥 Spec definition download"
uses: actions/download-artifact@v4
with:
name: openapi-artifact
- name: "📝 Unpack the OpenAPI definitions in the right location"
run: |
tar -xzf openapi.tar.gz
- name: "📦 Tarball creation"
run: tar -czf spec.tar.gz spec
- name: "📤 Artifact upload"
uses: actions/upload-artifact@v4
with:
name: spec-artifact
path: spec.tar.gz
htmlcheck:
name: "🔎 Validate generated HTML"
runs-on: ubuntu-latest
needs: [calculate-baseurl, build-spec]
steps:
- name: "📥 Source checkout"
uses: actions/checkout@v4
- name: "📥 Fetch built spec"
uses: actions/download-artifact@v4
with:
name: spec-artifact
- name: "📝 Unpack the spec"
# we have to unpack it into the right path given the baseurl, so that the
# links are correct.
# eg if baseurl is `/unstable`, we want to put the site in `spec/unstable`.
run: |
mkdir -p "spec${baseURL}"
tar -C "spec${baseURL}" --strip-components=1 -xvzf spec.tar.gz
env:
baseURL: "${{ needs.calculate-baseurl.outputs.baseURL }}"
- name: "Run htmltest"
uses: wjdp/htmltest-action@master
with:
config: .htmltest.yml
build-historical-spec:
name: "📖 Build the historical backup spec"
runs-on: ubuntu-latest
needs: [build-openapi]
if: ${{ startsWith(github.ref, 'refs/tags/') }}
steps:
- name: " Setup Node"
uses: actions/setup-node@v4
with:
node-version: '20'
- name: " Setup Hugo"
uses: peaceiris/actions-hugo@75d2e84710de30f6ff7268e08f310b60ef14033f # v3.0.0
with:
hugo-version: ${{ env.HUGO_VERSION }}
extended: true
- name: "📥 Source checkout"
uses: actions/checkout@v4
- name: "⚙️ npm"
run: |
npm i
npm run get-proposals
- name: "⚙️ hugo"
env:
HUGO_PARAMS_VERSION_STATUS: "historical"
# Create a baseURL like `/v1.2` out of the `v1.2` tag
run: |
hugo --baseURL "/${GITHUB_REF/refs\/tags\//}" -d "spec"
- name: "📥 Spec definition download"
uses: actions/download-artifact@v4
with:
name: openapi-artifact
- name: "📝 Unpack the OpenAPI definitions in the right location"
run: |
tar -xzf openapi.tar.gz
- name: "📦 Tarball creation"
run: tar -czf spec-historical.tar.gz spec
- name: "📤 Artifact upload"
uses: actions/upload-artifact@v4
with:
name: spec-historical-artifact
path: spec-historical.tar.gz

72
.github/workflows/netlify.yaml vendored Normal file
View file

@ -0,0 +1,72 @@
# GHA workflow which publishes previews of spec PRs to netlify.
#
# We keep this in a separate workflow to the main spec build, because it
# requires access to the Netlify secret. By having it run on `workflow_run`, we
# will only use the workflow definition file on the default branch, so we can
# ensure that the secret can't be exfiltrated.
#
name: Upload Preview Build to Netlify
on:
workflow_run:
workflows: [Spec]
types: [completed]
jobs:
build:
runs-on: ubuntu-latest
if: github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request'
steps:
- name: "dump context data"
run: |
jq . < $GITHUB_EVENT_PATH
- name: "🔍 Read PR number"
id: readctx
# we need to find the PR number that corresponds to the branch, which we do by
# searching the GH API
env:
OWNER_LOGIN: ${{ github.event.workflow_run.head_repository.owner.login }}
HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }}
run: |
head_branch="${OWNER_LOGIN}:${HEAD_BRANCH}"
echo "head branch: $head_branch"
pulls_uri="https://api.github.com/repos/${{ github.repository }}/pulls?head=$(jq -Rr '@uri' <<<$head_branch)"
pr_number=$(curl -H 'Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' "$pulls_uri" |
jq -r '.[] | .number')
echo "PR number: $pr_number"
echo "prnumber=$pr_number" >> "$GITHUB_OUTPUT"
- name: '📥 Download artifact'
uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3.1.4
with:
workflow: main.yaml
run_id: ${{ github.event.workflow_run.id }}
name: spec-artifact
- name: "📦 Extract Artifacts"
run: tar -xzvf spec.tar.gz && rm spec.tar.gz
- name: "📤 Deploy to Netlify"
id: netlify
uses: nwtgck/actions-netlify@4cbaf4c08f1a7bfa537d6113472ef4424e4eb654 # v3.0.0
with:
publish-dir: spec
deploy-message: "Deploy from GitHub Actions"
enable-pull-request-comment: false
enable-commit-comment: false
alias: pr${{ steps.readctx.outputs.prnumber }}
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
timeout-minutes: 1
- name: "📝 Edit PR Description"
# v1.0.1
uses: Beakyn/gha-comment-pull-request@2167a7aee24f9e61ce76a23039f322e49a990409
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
pull-request-number: ${{ steps.readctx.outputs.prnumber }}
description-message: |
Preview: ${{ steps.netlify.outputs.deploy-url }}

43
.github/workflows/release.yaml vendored Normal file
View file

@ -0,0 +1,43 @@
name: Release packages
on:
release:
types: [published]
concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs:
# Releases to npm after bumping the package.json version from 0.0.0 to $TAG.0 as the tags only contain MAJOR.MINOR
npm:
name: Publish to npm
runs-on: ubuntu-latest
if: github.event.release.prerelease == false
defaults:
run:
working-directory: packages/npm
permissions:
contents: read
id-token: write
steps:
- name: 🧮 Checkout code
uses: actions/checkout@v4
- name: 🔧 Yarn cache
uses: actions/setup-node@v4
with:
cache: "yarn"
cache-dependency-path: packages/npm/yarn.lock
registry-url: "https://registry.npmjs.org"
# Ensure npm 11.5.1 or later is installed
- name: Update npm
run: npm install -g npm@latest
- name: 🔨 Install dependencies
run: "yarn install --frozen-lockfile"
# We bump the package.json version to git, we just need it for publish to do the right thing
- name: 🎖 Bump package.json version
run: "yarn version --new-version ${VERSION#v} --no-git-tag-version"
env:
VERSION: ${{ github.event.release.tag_name }}.0
- name: 🚀 Publish to npm
run: npm publish --provenance --access public --tag latest

19
.github/workflows/spell-check.yaml vendored Normal file
View file

@ -0,0 +1,19 @@
name: Spell Check
on:
push:
branches:
- main
pull_request:
jobs:
run:
name: Spell Check with Typos
runs-on: ubuntu-latest
steps:
- name: Checkout Actions Repository
uses: actions/checkout@v4
- name: Check spelling of proposals
uses: crate-ci/typos@f2c1f08a7b3c1b96050cb786baaa2a94797bdb7d # v1.20.10
with:
config: ${{github.workspace}}/.github/_typos.toml

18
.gitignore vendored
View file

@ -1,15 +1,17 @@
/api/node_modules
/assets
/assets.tar.gz
node_modules
/data/msc
/env*
/scripts/gen
/scripts/continuserv/continuserv
/scripts/speculator/speculator
/scripts/swagger
/resources
/scripts/openapi
/scripts/tmp
/templating/out
/hugo-config.toml
/public
*.pyc
*.swp
_rendered.rst
/.vscode/
/.idea/
/spec/
changelogs/rendered.*
.hugo_build.lock
hugo_stats.json

7
.htmltest.yml Normal file
View file

@ -0,0 +1,7 @@
# config file for htmltest. This is used by one of the checks in Github
# Actions.
IgnoreDirectoryMissingTrailingSlash: true
DirectoryPath: spec
CheckExternal: false
IgnoreInternalEmptyHash: true

View file

@ -1,5 +1,5 @@
Contributing to matrix-doc
==========================
Contributing to matrix-spec
===========================
Everyone is welcome to contribute to the Matrix specification!
@ -9,14 +9,10 @@ Code style
----------
The documentation style is described at
https://github.com/matrix-org/matrix-doc/blob/master/meta/documentation_style.rst.
https://github.com/matrix-org/matrix-spec/blob/main/meta/documentation_style.rst.
Python code within the ``matrix-doc`` project should follow the same style as
synapse, which is documented at
https://github.com/matrix-org/synapse/tree/master/docs/code_style.rst.
Matrix-doc workflows
--------------------
Matrix-spec workflows
---------------------
Specification changes
~~~~~~~~~~~~~~~~~~~~~
@ -27,11 +23,7 @@ server before they can be documented in the specification. This process can take
some time to complete.
Changes to the protocol (new endpoints, ideas, etc) need to go through the
`proposals process <https://matrix.org/docs/spec/proposals>`_. Other changes,
such as fixing bugs, typos, or clarifying existing behaviour do not need a proposal.
If you're not sure, visit us at `#matrix-spec:matrix.org`_
and ask.
`proposals process <https://matrix.org/docs/spec/proposals>`_.
Other changes
~~~~~~~~~~~~~
@ -44,12 +36,12 @@ following:
* Addition of features which have been in use in practice for some time, but
have never made it into the spec (including anything with the `spec-omission
<https://github.com/matrix-org/matrix-doc/labels/spec-omission>`_ label).
<https://github.com/matrix-org/matrix-spec/labels/spec-omission>`_ label).
* Likewise, corrections to the specification, to fix situations where, in
practice, servers and clients behave differently to the specification,
including anything with the `spec-bug
<https://github.com/matrix-org/matrix-doc/labels/spec-bug>`_ label.
<https://github.com/matrix-org/matrix-spec/labels/spec-bug>`_ label.
(If there is any doubt about whether it is the spec or the implementations
that need fixing, please discuss it with us first in `#matrix-spec:matrix.org`_.)
@ -57,37 +49,46 @@ following:
* Clarifications to the specification which do not change the behaviour of
Matrix servers or clients in a way which might introduce compatibility
problems for existing deployments. This includes anything with the
`clarification <https://github.com/matrix-org/matrix-doc/labels/clarification>`_
`clarification <https://github.com/matrix-org/matrix-spec/labels/clarification>`_
label.
For example, areas where the specification is unclear do not require a proposal
to fix. On the other hand, introducing new behaviour is best represented by a
proposal.
* Design or aesthetic changes, such as improving accessibility, colour schemes,
etc. Please check in with us at `#matrix-docs:matrix.org`_ with your proposed
design change before opening a PR so we can work with you on it.
For such changes, please do just open a `pull request`_. If you're not sure if
your change is covered by the above, please visit `#matrix-spec:matrix.org` and
ask.
.. _`pull request`: https://help.github.com/articles/about-pull-requests
.. _`#matrix-spec:matrix.org`: https://matrix.to/#/#matrix-spec:matrix.org
.. _`#matrix-docs:matrix.org`: https://matrix.to/#/#matrix-docs:matrix.org
Adding to the changelog
~~~~~~~~~~~~~~~~~~~~~~~
All API specifications require a changelog entry. Adding to the changelog can only
All changes to the contents of this repository require a changelog entry. Adding to the changelog can only
be done after you've opened your pull request, so be sure to do that first.
The changelog is managed by Towncrier (https://github.com/hawkowl/towncrier) in the
form of "news fragments". The news fragments for the client-server API are stored
under ``changelogs/client_server/newsfragments``.
The changelog is managed by `Towncrier <https://github.com/twisted/towncrier>`_ in the
form of "news fragments". Depending on which API you changed, an entry should be added to
each relevant API's ``newsfragments`` directory. A directory exists for each API under
``changelogs/``. For instance, news fragments for the client-server API are stored
under ``changelogs/client_server/newsfragments``. Any changes to the repository that do
not affect the spec content itself, such as changes to the build script, formatting, CSS,
etc. should be documented under ``changelogs/internal/newsfragments``.
To create a changelog entry, create a file named in the format ``prNumber.type`` in
the ``newsfragments`` directory. The ``type`` can be one of the following:
* ``new`` - Used when adding new endpoints. Please have the file contents be the
method and route being added, surrounded in RST code tags. For example: ``POST
/accounts/whoami``
method and route being added, surrounded in markdown code tags. For example: \`POST
/accounts/whoami\`.
* ``feature`` - Used when adding backwards-compatible changes to the API.
@ -98,18 +99,16 @@ the ``newsfragments`` directory. The ``type`` can be one of the following:
* ``deprecation`` - Used when deprecating something.
* ``removal`` - Used when removing something that was unused or previously deprecated.
All news fragments must have a brief summary explaining the change in the
contents of the file. The summary must end in a full stop to be in line with
the style guide and and formatting must be done using `Restructured Text
<http://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html>`_.
Changes that do not change the spec, such as changes to the build script, formatting,
CSS, etc should not get a news fragment.
the style guide and formatting must be done using Markdown.
Sign off
--------
We ask that everybody who contributes to their project signs off their
We ask that everybody who contributes to this project signs off their
contributions, as explained below.
We follow a simple 'inbound=outbound' model for contributions: the act of
@ -119,11 +118,10 @@ license - in our case, this is Apache Software License v2 (see LICENSE).
In order to have a concrete record that your contribution is intentional
and you agree to license it under the same terms as the project's license, we've adopted the
same lightweight approach that the Linux Kernel
(https://www.kernel.org/doc/Documentation/SubmittingPatches), Docker
(https://github.com/docker/docker/blob/master/CONTRIBUTING.md), and many other
projects use: the DCO (Developer Certificate of Origin:
http://developercertificate.org/). This is a simple declaration that you wrote
same lightweight approach used by the `Linux Kernel <https://www.kernel.org/doc/html/latest/process/submitting-patches.html>`_,
`Docker <https://github.com/docker/docker/blob/master/CONTRIBUTING.md>`_, and many other
projects: the `Developer Certificate of Origin <http://developercertificate.org/>`_
(DCO). This is a simple declaration that you wrote
the contribution or otherwise have the right to contribute it to Matrix::
Developer Certificate of Origin
@ -167,7 +165,6 @@ include the line in your commit or pull request comment::
Signed-off-by: Your Name <your@email.example.org>
...using your real name; unfortunately pseudonyms and anonymous contributions
can't be accepted. Git makes this trivial - just use the -s flag when you do
``git commit``, having first set ``user.name`` and ``user.email`` git configs
(which you should have done anyway :)
Git allows you to add this signoff automatically when using the ``-s``
flag to ``git commit``, which uses the name and email set in your
``user.name`` and ``user.email`` git configs.

101
README.md Normal file
View file

@ -0,0 +1,101 @@
# Matrix Specification
This repository contains the Matrix Specification. The current release version is rendered at https://spec.matrix.org, while the latest available build of the `main` branch is at https://spec.matrix.org/unstable.
Developers looking to use Matrix should join [#matrix-dev:matrix.org](https://matrix.to/#/#matrix-dev:matrix.org)
on Matrix for help.
Spec authors and proposal writers are welcome to join [#matrix-spec:matrix.org](https://matrix.to/#/#matrix-spec:matrix.org).
We welcome contributions! See [CONTRIBUTING.rst](./CONTRIBUTING.rst) for details.
## Structure
The Matrix spec is compiled with [Hugo](https://gohugo.io/) (a static site generator) with the following structure:
* `/assets`: assets that need postprocessing using [Hugo Pipes](https://gohugo.io/hugo-pipes/introduction/).
For example, Sass files would go here.
* `/content`: files that will become pages in the site go here. Typically these are Markdown files with some YAML front
matter indicating, [among other things](https://gohugo.io/content-management/front-matter/), what layout should be
applied to this page. The organization of files under `/content` determines the organization of pages in the built
site.
* `/data`: this can contain TOML, YAML, or JSON files. Files kept here are directly available to template code as
[data objects](https://gohugo.io/templates/data-templates/), so templates don't need to load them from a file and
parse them. This is also where our OpenAPI definitions and schemas are.
* `/layouts`: this contains [Hugo templates](https://gohugo.io/templates/). Some templates define the overall layout of
a page: for example, whether it has header, footer, sidebar, and so on.
* `/layouts/partials`: these templates can be called from other templates, so they can be used to factor out
template code that's used in more than one template. An obvious example here is something like a sidebar, where
several different page layouts might all include the sidebar. But also, partial templates can return values: this
means they can be used like functions, that can be called by multiple templates to do some common processing.
* `/layouts/shortcodes`: these templates can be called directly from files in `/content`.
* `/static`: static files which don't need preprocessing. JS or CSS files could live here.
* `/themes`: you can use just Hugo or use it with a theme. Themes primarily provide additional templates, which are
supplied in a `/themes/$theme_name/layouts` directory. You can use a theme but customise it by providing your own
versions of any of the theme layouts in the base `/layouts` directory. That is, if a theme provides
`/themes/$theme_name/layouts/sidebar.html` and you provide `/layouts/sidebar.html`, then your version of the
template will be used.
It also has the following top-level file:
* `config.toml`: site-wide configuration settings. Some of these are built-in and you can add your own. Config settings
defined here are available in templates. All these directories above are configurable via `config.toml` settings.
Additionally, the following directories may be of interest:
* `/attic`: Here contains historical sections of specification and legacy drafts for the specification.
* `/changelogs`: Various bits of changelog for the specification areas.
* `/data-definitions`: Bits of structured data consumable by Matrix implementations.
* `/meta`: Documentation relating to the spec's processes that are otherwise untracked (release instructions, etc).
* `/scripts`: Various scripts for generating the spec and validating its contents.
* `/packages`: Various packages for shipping spec files like OpenAPI bindings and data definitions.
## Authoring changes to the spec
Please read [CONTRIBUTING.rst](./CONTRIBUTING.rst) before authoring a change to the spec. Note that spec authoring takes
place after an MSC has been accepted, not as part of a proposal itself.
1. Install the extended version (often the OS default) of Hugo:
<https://gohugo.io/getting-started/installing>. Note that at least Hugo
v0.146.0 is required.
Alternatively, use the Docker image at
https://hub.docker.com/r/klakegg/hugo/. (The "extended edition" is required
to process the SCSS.)
2. Run `npm i` to install the dependencies. Note that this will require NodeJS to be installed.
3. Run `npm run get-proposals` to seed proposal data. This is merely for populating the content of the "Spec Change Proposals"
page and is not required.
4. Run `hugo serve` (or `docker run --rm -it -v $(pwd):/src -p 1313:1313
klakegg/hugo:ext serve`) to run a local webserver which builds whenever a file
change is detected. If watching doesn't appear to be working for you, try
adding `--disableFastRender` to the commandline.
5. Edit the specification 🙂
We use a highly customized [Docsy](https://www.docsy.dev/) theme for our generated site, which uses Bootstrap and Font
Awesome. If you're looking at making design-related changes to the spec site, please coordinate with us in
[#matrix-docs:matrix.org](https://matrix.to/#/#matrix-docs:matrix.org) before opening a PR.
## Building the specification
If for some reason you're not a CI/CD system and want to render a static version of the spec for yourself, follow the above
steps for authoring changes to the specification and instead of `hugo serve` run `hugo -d "spec"` - this will generate the
spec to `/spec`. If you'd like to serve the spec off a path instead of a domain root (eg: `/unstable`), add `--baseURL "/unstable"`
to the `hugo -d "spec"` command.
For building the OpenAPI definitions, create a python3 virtualenv and activate it. Then run `pip install -r ./scripts/requirements.txt`
and finally `python ./scripts/dump-openapi.py` to generate it to `./scripts/openapi/api-docs.json`. To make use of the generated file,
there are a number of options:
* You can open `./scripts/openapi-preview.html` in your browser, and then open the file by clicking on `Local JSON File`.
* You can run a local HTTP server by running `./scripts/openapi-http-server.py`, and then view the documentation by
opening `./scripts/openapi-preview.html` in your browser.
## Issue tracking
Specification issues are tracked on github at <https://github.com/matrix-org/matrix-spec/issues>.
See [meta/github-labels.rst](./meta/github-labels.rst) for information on what the labels mean.

View file

@ -1,143 +0,0 @@
This repository contains the Matrix specification.
If you want to ask more about the specification, join us on
`#matrix-dev:matrix.org <http://matrix.to/#/#matrix-dev:matrix.org>`_.
We welcome contributions to the spec! See the notes below on `Building the
specification`_, and `<CONTRIBUTING.rst>`_ to get started making contributions.
Note that the Matrix Project lists, which were previously kept in this
repository, are now in https://github.com/matrix-org/matrix.org.
Structure of this repository
============================
- ``api`` : `OpenAPI`_ (swagger) specifications for the the HTTP APIs.
- ``attic``: historical sections of specification for reference
purposes.
- ``changelogs``: change logs for the various parts of the
specification.
- ``drafts``: Previously, contained documents which were under discussion for
future incusion into the specification and/or supporting documentation. This
is now historical, as we use separate discussion documents (see
`<CONTRIBUTING.rst>`_).
- ``event-schemas``: the `JSON Schema`_ for all Matrix events
contained in the specification, along with example JSON files.
- ``meta``: documents outlining the processes involved when writing
documents, e.g. documentation style, guidelines.
- ``scripts``: scripts to generate formatted versions of the
documentation, typically HTML.
- ``specification``: the specification split up into sections.
.. _OpenAPI: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md
.. _JSON Schema: http://json-schema.org/
Building the specification
==========================
The Matrix Spec is generated by a set of scripts, from the RST documents, API
specs and event schemas in this repository.
Preparation
-----------
To use the scripts, it is best to create a Python 3.4+ virtualenv as follows::
virtualenv -p python3 env
env/bin/pip install -r scripts/requirements.txt
(Benjamin Synders has contributed a script for `Nix`_ users, which can be
invoked with ``nix-shell scripts/contrib/shell.nix``.)
.. TODO: Possibly we need some libs installed; should record what they are.
.. _`Nix`: https://nixos.org/nix/
Generating the specification
----------------------------
To rebuild the specification, use ``scripts/gendoc.py``::
source env/bin/activate
./scripts/gendoc.py
The above will write the rendered version of the specification to
``scripts/gen``. To view it, point your browser at ``scripts/gen/index.html``.
Windows users
~~~~~~~~~~~~~
The ``source`` program does not exist on Windows, so instead run one of the
``activate`` files in ``.\env\Scripts\`` to activate the virtual environment.
If you're on Windows Vista or higher, be sure that the "Symbolic Links"
option was selected when installing Git prior to cloning this repository. If
you're still seeing errors about files not being found it is likely because
the symlink at ``api/client-server/definitions/event-schemas`` looks like a
file. To correct the problem, open an Administrative/Elevated Command Prompt in your
cloned matrix-doc directory and run the following::
cd api\client-server\definitions
del event-schemas
mklink /D event-schemas "..\..\..\event-schemas"
This will delete the file and replace it with a symlink. Git should not detect
this as a change, and you should be able to go back to building the project.
Generating the OpenAPI (Swagger) specs
--------------------------------------
`Swagger`_ is a framework for representing RESTful APIs. We use it to generate
interactive documentation for our APIs.
Before the Swagger docs can be used in the Swagger UI (or other tool expecting
a Swagger specs, they must be combined into a single json file. This can be
done as follows::
source env/bin/activate
./scripts/dump-swagger.py
By default, ``dump-swagger`` will write to ``scripts/swagger/api-docs.json``.
To make use of the generated file, there are a number of options:
* It can be uploaded from your filesystem to an online editor/viewer such as
http://editor.swagger.io/
* You can run a local HTTP server by running
``./scripts/swagger-http-server.py``, and then view the documentation via an
online viewer; for example, at
http://petstore.swagger.io/?url=http://localhost:8000/api-docs.json
* You can host the swagger UI yourself. See
https://github.com/swagger-api/swagger-ui#how-to-run for advice on how to do
so.
.. _`Swagger`: http://swagger.io/
Continuserv
-----------
Continuserv is a script which will rebuild the specification every time a file
is changed, and will serve it to a browser over HTTP. It is intended for use by
specification authors, so that they can quickly see the effects of their
changes.
It is written in Go, so you will need the ``go`` compiler installed on your
computer. You will also need to install fsnotify by running::
go get gopkg.in/fsnotify/fsnotify.v1
Then, create a virtualenv as described above under `Preparation`_,
and::
source env/bin/activate
go run ./scripts/continuserv/main.go
You will then be able to view the generated spec by visiting
http://localhost:8000/index.html.
Issue tracking
==============
Issues with the Matrix specification are tracked in `GitHub
<https://github.com/matrix-org/matrix-doc/issues>`_.
See `meta/github-labels.rst <meta/github-labels.rst>`_ for notes on what the labels mean.

View file

@ -1,2 +0,0 @@
This directory contains swagger-compatible representations of our APIs. See
the main README.rst for details on how to make use of them.

View file

@ -1,70 +0,0 @@
# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
type: object
description: Dictionary of supported third party protocols.
additionalProperties:
$ref: protocol.yaml
example: {
"irc": {
"user_fields": ["network", "nickname"],
"location_fields": ["network", "channel"],
"icon": "mxc://example.org/aBcDeFgH",
"field_types": {
"network": {
"regexp": "([a-z0-9]+\\.)*[a-z0-9]+",
"placeholder": "irc.example.org"
},
"nickname": {
"regexp": "[^\\s]+",
"placeholder": "username"
},
"channel": {
"regexp": "#[^\\s]+",
"placeholder": "#foobar"
}
},
"instances": [
{
"network_id": "freenode",
"desc": "Freenode",
"icon": "mxc://example.org/JkLmNoPq",
"fields": {
"network": "freenode.net",
}
}
]
},
"gitter": {
"user_fields": ["username"],
"location_fields": ["room"],
"field_types": {
"username": {
"regexp": "@[^\\s]+",
"placeholder": "@username"
},
"room": {
"regexp": "[^\\s]+\\/[^\\s]+",
"placeholder": "matrix-org/matrix-doc"
}
},
"instances": [
{
"network_id": "gitter",
"desc": "Gitter",
"icon": "mxc://example.org/zXyWvUt",
"fields": {}
}
]
}
}

View file

@ -1,279 +0,0 @@
# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Application Service API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/app/v1
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/thirdparty/protocol/{protocol}":
get:
summary: Retrieve metadata about a specific protocol that the application service supports.
description: |-
This API is called by the homeserver when it wants to present clients
with specific information about the various third party networks that
an application service supports.
operationId: getProtocolMetadata
security:
- homeserverAccessToken: []
parameters:
- in: path
name: protocol
type: string
description: The protocol ID.
required: true
x-example: "irc"
responses:
200:
description: The protocol was found and metadata returned.
schema:
$ref: definitions/protocol_metadata.yaml
401:
description: |-
The homeserver has not supplied credentials to the application service.
Optional error information can be included in the body of this response.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml
403:
description: |-
The credentials supplied by the homeserver were rejected.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml
404:
description: No protocol was found with the given path.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml
"/thirdparty/user/{protocol}":
get:
summary: Retrieve the Matrix User ID of a corresponding third party user.
description: |-
This API is called by the homeserver in order to retrieve a Matrix
User ID linked to a user on the third party network, given a set of
user parameters.
operationId: queryUserByProtocol
security:
- homeserverAccessToken: []
parameters:
- in: path
name: protocol
type: string
description: The protocol ID.
required: true
x-example: irc
- in: query
name: fields...
type: string
description: |-
One or more custom fields that are passed to the application
service to help identify the user.
responses:
200:
description: The Matrix User IDs found with the given parameters.
schema:
$ref: definitions/user_batch.yaml
401:
description: |-
The homeserver has not supplied credentials to the application service.
Optional error information can be included in the body of this response.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml
403:
description: |-
The credentials supplied by the homeserver were rejected.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml
404:
description: No users were found with the given parameters.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml
"/thirdparty/location/{protocol}":
get:
summary: Retrieve Matrix-side portal rooms leading to a third party location.
description: |-
Retrieve a list of Matrix portal rooms that lead to the matched third party location.
operationId: queryLocationByProtocol
security:
- homeserverAccessToken: []
parameters:
- in: path
name: protocol
type: string
description: The protocol ID.
required: true
x-example: irc
- in: query
name: fields...
type: string
description: |-
One or more custom fields that are passed to the application
service to help identify the third party location.
responses:
200:
description: At least one portal room was found.
schema:
$ref: definitions/location_batch.yaml
401:
description: |-
The homeserver has not supplied credentials to the application service.
Optional error information can be included in the body of this response.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml
403:
description: |-
The credentials supplied by the homeserver were rejected.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml
404:
description: No mappings were found with the given parameters.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml
"/thirdparty/location":
get:
summary: Reverse-lookup third party locations given a Matrix room alias.
description: |-
Retrieve an array of third party network locations from a Matrix room
alias.
operationId: queryLocationByAlias
security:
- homeserverAccessToken: []
parameters:
- in: query
name: alias
type: string
description: The Matrix room alias to look up.
responses:
200:
description: |-
All found third party locations.
schema:
$ref: definitions/location_batch.yaml
401:
description: |-
The homeserver has not supplied credentials to the application service.
Optional error information can be included in the body of this response.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml
403:
description: |-
The credentials supplied by the homeserver were rejected.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml
404:
description: No mappings were found with the given parameters.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml
"/thirdparty/user":
get:
summary: Reverse-lookup third party users given a Matrix User ID.
description: |-
Retrieve an array of third party users from a Matrix User ID.
operationId: queryUserByID
security:
- homeserverAccessToken: []
parameters:
- in: query
name: userid
type: string
description: The Matrix User ID to look up.
responses:
200:
description: |-
An array of third party users.
schema:
$ref: definitions/user_batch.yaml
401:
description: |-
The homeserver has not supplied credentials to the application service.
Optional error information can be included in the body of this response.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml
403:
description: |-
The credentials supplied by the homeserver were rejected.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml
404:
description: No mappings were found with the given parameters.
examples:
application/json: {
"errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND"
}
schema:
$ref: ../client-server/definitions/errors/error.yaml

View file

@ -1,78 +0,0 @@
# Copyright 2016 OpenMarket Ltd
# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Application Service API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/app/v1
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/transactions/{txnId}":
put:
summary: Send some events to the application service.
description: |-
This API is called by the homeserver when it wants to push an event
(or batch of events) to the application service.
Note that the application service should distinguish state events
from message events via the presence of a ``state_key``, rather than
via the event type.
operationId: sendTransaction
security:
- homeserverAccessToken: []
parameters:
- in: path
name: txnId
type: string
description: |-
The transaction ID for this set of events. Homeservers generate
these IDs and they are used to ensure idempotency of requests.
required: true
x-example: "35"
- in: body
name: body
description: A list of events.
schema:
type: object
example: {
"events": [
{"$ref": "../../event-schemas/examples/m.room.member"},
{"$ref": "../../event-schemas/examples/m.room.message$m.text"}
]
}
description: Transaction information
properties:
events:
type: array
description: |-
A list of events, formatted as per the Client-Server API.
items:
type: object
title: Event
required: ["events"]
responses:
200:
description: The transaction was processed successfully.
examples:
application/json: {}
schema:
type: object

View file

@ -1,157 +0,0 @@
#! /usr/bin/env python
#
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import sys
import json
import os
def import_error(module, package, debian, error):
sys.stderr.write((
"Error importing %(module)s: %(error)r\n"
"To install %(module)s run:\n"
" pip install %(package)s\n"
"or on Debian run:\n"
" sudo apt-get install python-%(debian)s\n"
) % locals())
if __name__ == '__main__':
sys.exit(1)
try:
import jsonschema
except ImportError as e:
import_error("jsonschema", "jsonschema", "jsonschema", e)
raise
try:
import yaml
except ImportError as e:
import_error("yaml", "PyYAML", "yaml", e)
raise
def check_schema(filepath, example, schema):
example = resolve_references(filepath, example)
schema = resolve_references(filepath, schema)
resolver = jsonschema.RefResolver(filepath, schema, handlers={"file": load_file})
jsonschema.validate(example, schema, resolver=resolver)
def check_parameter(filepath, request, parameter):
schema = parameter.get("schema")
example = schema.get('example')
if example and schema:
try:
print("Checking request schema for: %r %r" % (
filepath, request
))
check_schema(filepath, example, schema)
except Exception as e:
raise ValueError("Error validating JSON schema for %r" % (
request
), e)
def check_response(filepath, request, code, response):
example = response.get('examples', {}).get('application/json')
schema = response.get('schema')
if example and schema:
try:
print ("Checking response schema for: %r %r %r" % (
filepath, request, code
))
check_schema(filepath, example, schema)
except jsonschema.SchemaError as error:
for suberror in sorted(error.context, key=lambda e: e.schema_path):
print(list(suberror.schema_path), suberror.message, sep=", ")
raise ValueError("Error validating JSON schema for %r %r" % (
request, code
), e)
except Exception as e:
raise ValueError("Error validating JSON schema for %r %r" % (
request, code
), e)
def check_swagger_file(filepath):
with open(filepath) as f:
swagger = yaml.load(f)
for path, path_api in swagger.get('paths', {}).items():
for method, request_api in path_api.items():
request = "%s %s" % (method.upper(), path)
for parameter in request_api.get('parameters', ()):
if parameter['in'] == 'body':
check_parameter(filepath, request, parameter)
try:
responses = request_api['responses']
except KeyError:
raise ValueError("No responses for %r" % (request,))
for code, response in responses.items():
check_response(filepath, request, code, response)
def resolve_references(path, schema):
if isinstance(schema, dict):
# do $ref first
if '$ref' in schema:
value = schema['$ref']
path = os.path.abspath(os.path.join(os.path.dirname(path), value))
ref = load_file("file://" + path)
result = resolve_references(path, ref)
del schema['$ref']
else:
result = {}
for key, value in schema.items():
result[key] = resolve_references(path, value)
return result
elif isinstance(schema, list):
return [resolve_references(path, value) for value in schema]
else:
return schema
def load_file(path):
print("Loading reference: %s" % path)
if not path.startswith("file://"):
raise Exception("Bad ref: %s" % (path,))
path = path[len("file://"):]
with open(path, "r") as f:
if path.endswith(".json"):
return json.load(f)
else:
# We have to assume it's YAML because some of the YAML examples
# do not have file extensions.
return yaml.load(f)
if __name__ == '__main__':
paths = sys.argv[1:]
if not paths:
paths = []
for (root, dirs, files) in os.walk(os.curdir):
for filename in files:
if filename.endswith(".yaml"):
paths.append(os.path.join(root, filename))
for path in paths:
try:
check_swagger_file(path)
except Exception as e:
raise ValueError("Error checking file %r" % (path,), e)

View file

@ -1,197 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Client Config API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/user/{userId}/account_data/{type}":
put:
summary: Set some account_data for the user.
description: |-
Set some account_data for the client. This config is only visible to the user
that set the account_data. The config will be synced to clients in the
top-level ``account_data``.
operationId: setAccountData
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
required: true
description: |-
The ID of the user to set account_data for. The access token must be
authorized to make requests for this user ID.
x-example: "@alice:example.com"
- in: path
type: string
name: type
required: true
description: |-
The event type of the account_data to set. Custom types should be
namespaced to avoid clashes.
x-example: "org.example.custom.config"
- in: body
name: content
required: true
description: |-
The content of the account_data
schema:
type: object
example: {
"custom_account_data_key": "custom_config_value"}
responses:
200:
description:
The account_data was successfully added.
tags:
- User data
get:
summary: Get some account_data for the user.
description: |-
Get some account_data for the client. This config is only visible to the user
that set the account_data.
operationId: getAccountData
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
required: true
description: |-
The ID of the user to get account_data for. The access token must be
authorized to make requests for this user ID.
x-example: "@alice:example.com"
- in: path
type: string
name: type
required: true
description: |-
The event type of the account_data to get. Custom types should be
namespaced to avoid clashes.
x-example: "org.example.custom.config"
responses:
200:
description:
The account data content for the given type.
schema:
type: object
example: {
"custom_account_data_key": "custom_config_value"}
tags:
- User data
"/user/{userId}/rooms/{roomId}/account_data/{type}":
put:
summary: Set some account_data for the user.
description: |-
Set some account_data for the client on a given room. This config is only
visible to the user that set the account_data. The config will be synced to
clients in the per-room ``account_data``.
operationId: setAccountDataPerRoom
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
required: true
description: |-
The ID of the user to set account_data for. The access token must be
authorized to make requests for this user ID.
x-example: "@alice:example.com"
- in: path
type: string
name: roomId
required: true
description: |-
The ID of the room to set account_data on.
x-example: "!726s6s6q:example.com"
- in: path
type: string
name: type
required: true
description: |-
The event type of the account_data to set. Custom types should be
namespaced to avoid clashes.
x-example: "org.example.custom.room.config"
- in: body
name: content
required: true
description: |-
The content of the account_data
schema:
type: object
example: {
"custom_account_data_key": "custom_account_data_value"}
responses:
200:
description:
The account_data was successfully added.
tags:
- User data
get:
summary: Get some account_data for the user.
description: |-
Get some account_data for the client on a given room. This config is only
visible to the user that set the account_data.
operationId: getAccountDataPerRoom
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
required: true
description: |-
The ID of the user to set account_data for. The access token must be
authorized to make requests for this user ID.
x-example: "@alice:example.com"
- in: path
type: string
name: roomId
required: true
description: |-
The ID of the room to get account_data for.
x-example: "!726s6s6q:example.com"
- in: path
type: string
name: type
required: true
description: |-
The event type of the account_data to get. Custom types should be
namespaced to avoid clashes.
x-example: "org.example.custom.room.config"
responses:
200:
description:
The account data content for the given type.
schema:
type: object
example: {
"custom_account_data_key": "custom_config_value"}
tags:
- User data

View file

@ -1,115 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Administration API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/admin/whois/{userId}":
get:
summary: Gets information about a particular user.
description: |-
Gets information about a particular user.
This API may be restricted to only be called by the user being looked
up, or by a server admin. Server-local administrator privileges are not
specified in this document.
operationId: getWhoIs
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
description: The user to look up.
required: true
x-example: "@peter:rabbit.rocks"
responses:
200:
description: The lookup was successful.
examples:
application/json: {
"user_id": "@peter:rabbit.rocks",
"devices": {
"teapot": {
"sessions": [
{
"connections": [
{
"ip": "127.0.0.1",
"last_seen": 1411996332123,
"user_agent": "curl/7.31.0-DEV"
},
{
"ip": "10.0.0.2",
"last_seen": 1411996332123,
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36"
}
]
}
]
}
}
}
schema:
type: object
properties:
user_id:
type: string
description: The Matrix user ID of the user.
devices:
type: object
description: |-
Each key is an identifier for one of the user's devices.
additionalProperties:
type: object
title: DeviceInfo
properties:
sessions:
type: array
description: A user's sessions (i.e. what they did with an access token from one login).
items:
type: object
title: SessionInfo
properties:
connections:
type: array
description: Information particular connections in the session.
items:
type: object
title: ConnectionInfo
properties:
ip:
type: string
description: Most recently seen IP address of the session.
last_seen:
type: integer
format: int64
description: Unix timestamp that the session was last active.
user_agent:
type: string
description: User agent string last seen in the session.
tags:
- Server administration

View file

@ -1,509 +0,0 @@
# Copyright 2016 OpenMarket Ltd
# Copyright 2019 The Matrix.org Foundation C.I.C.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Account Administrative Contact API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/account/3pid":
get:
summary: Gets a list of a user's third party identifiers.
description: |-
Gets a list of the third party identifiers that the homeserver has
associated with the user's account.
This is *not* the same as the list of third party identifiers bound to
the user's Matrix ID in identity servers.
Identifiers in this list may be used by the homeserver as, for example,
identifiers that it will accept to reset the user's account password.
operationId: getAccount3PIDs
security:
- accessToken: []
responses:
200:
description: The lookup was successful.
examples:
application/json: {
"threepids": [
{
"medium": "email",
"address": "monkey@banana.island",
"validated_at": 1535176800000,
"added_at": 1535336848756
}
]
}
schema:
type: object
properties:
threepids:
type: array
items:
type: object
title: Third party identifier
properties:
medium:
type: string
description: The medium of the third party identifier.
enum: ["email", "msisdn"]
address:
type: string
description: The third party identifier address.
validated_at:
type: integer
format: int64
description: |-
The timestamp, in milliseconds, when the identifier was
validated by the identity server.
added_at:
type: integer
format: int64
description:
The timestamp, in milliseconds, when the homeserver
associated the third party identifier with the user.
required: ['medium', 'address', 'validated_at', 'added_at']
tags:
- User data
post:
summary: Adds contact information to the user's account.
description: |-
Adds contact information to the user's account.
This endpoint is deprecated in favour of the more specific ``/3pid/add``
and ``/3pid/bind`` endpoints.
.. Note::
Previously this endpoint supported a ``bind`` parameter. This parameter
has been removed, making this endpoint behave as though it was ``false``.
This results in this endpoint being an equivalent to ``/3pid/bind`` rather
than dual-purpose.
operationId: post3PIDs
deprecated: true
security:
- accessToken: []
parameters:
- in: body
name: body
schema:
type: object
properties:
three_pid_creds:
title: "ThreePidCredentials"
type: object
description: The third party credentials to associate with the account.
properties:
client_secret:
type: string
description: The client secret used in the session with the identity server.
id_server:
type: string
description: The identity server to use.
id_access_token:
type: string
description: |-
An access token previously registered with the identity server. Servers
can treat this as optional to distinguish between r0.5-compatible clients
and this specification version.
sid:
type: string
description: The session identifier given by the identity server.
required: ["client_secret", "id_server", "id_access_token", "sid"]
required: ["three_pid_creds"]
example: {
"three_pid_creds": {
"id_server": "matrix.org",
"id_access_token": "abc123_OpaqueString",
"sid": "abc123987",
"client_secret": "d0n'tT3ll"
}
}
responses:
200:
description: The addition was successful.
examples:
application/json: {
"submit_url": "https://example.org/path/to/submitToken"
}
schema:
type: object
properties:
submit_url:
type: string
description: |-
An optional field containing a URL where the client must
submit the validation token to, with identical parameters
to the Identity Service API's ``POST
/validate/email/submitToken`` endpoint (without the requirement
for an access token). The homeserver must send this token to the
user (if applicable), who should then be prompted to provide it
to the client.
If this field is not present, the client can assume that
verification will happen without the client's involvement
provided the homeserver advertises this specification version
in the ``/versions`` response (ie: r0.5.0).
example: "https://example.org/path/to/submitToken"
403:
description: The credentials could not be verified with the identity server.
examples:
application/json: {
"errcode": "M_THREEPID_AUTH_FAILED",
"error": "The third party credentials could not be verified by the identity server."
}
schema:
"$ref": "definitions/errors/error.yaml"
tags:
- User data
"/account/3pid/add":
post:
summary: Adds contact information to the user's account.
description: |-
This API endpoint uses the `User-Interactive Authentication API`_.
Adds contact information to the user's account. Homeservers should use 3PIDs added
through this endpoint for password resets instead of relying on the identity server.
Homeservers should prevent the caller from adding a 3PID to their account if it has
already been added to another user's account on the homeserver.
operationId: add3PID
security:
- accessToken: []
parameters:
- in: body
name: body
schema:
type: object
properties:
auth:
description: |-
Additional authentication information for the
user-interactive authentication API.
$ref: "definitions/auth_data.yaml"
client_secret:
type: string
description: The client secret used in the session with the homeserver.
sid:
type: string
description: The session identifier given by the homeserver.
required: ["client_secret", "sid"]
example: {
"sid": "abc123987",
"client_secret": "d0n'tT3ll"
}
responses:
200:
description: The addition was successful.
examples:
application/json: {}
schema:
type: object
401:
description: |-
The homeserver requires additional authentication information.
schema:
"$ref": "definitions/auth_response.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
"/account/3pid/bind":
post:
summary: Binds a 3PID to the user's account through an Identity Service.
description: |-
Binds a 3PID to the user's account through the specified identity server.
Homeservers should not prevent this request from succeeding if another user
has bound the 3PID. Homeservers should simply proxy any errors received by
the identity server to the caller.
Homeservers should track successful binds so they can be unbound later.
operationId: bind3PID
security:
- accessToken: []
parameters:
- in: body
name: body
schema:
type: object
properties:
client_secret:
type: string
description: The client secret used in the session with the identity server.
id_server:
type: string
description: The identity server to use.
id_access_token:
type: string
description: |-
An access token previously registered with the identity server.
sid:
type: string
description: The session identifier given by the identity server.
required: ["client_secret", "id_server", "id_access_token", "sid"]
example: {
"id_server": "example.org",
"id_access_token": "abc123_OpaqueString",
"sid": "abc123987",
"client_secret": "d0n'tT3ll"
}
responses:
200:
description: The addition was successful.
examples:
application/json: {}
schema:
type: object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- User data
"/account/3pid/delete":
post:
summary: Deletes a third party identifier from the user's account
description: |-
Removes a third party identifier from the user's account. This might not
cause an unbind of the identifier from the identity server.
Unlike other endpoints, this endpoint does not take an ``id_access_token``
parameter because the homeserver is expected to sign the request to the
identity server instead.
operationId: delete3pidFromAccount
security:
- accessToken: []
parameters:
- in: body
name: body
schema:
type: object
properties:
id_server:
type: string
description: |-
The identity server to unbind from. If not provided, the homeserver
MUST use the ``id_server`` the identifier was added through. If the
homeserver does not know the original ``id_server``, it MUST return
a ``id_server_unbind_result`` of ``no-support``.
example: "example.org"
medium:
type: string
description: The medium of the third party identifier being removed.
enum: ["email", "msisdn"]
example: "email"
address:
type: string
description: The third party address being removed.
example: "example@example.org"
required: ['medium', 'address']
responses:
200:
description: |-
The homeserver has disassociated the third party identifier from the
user.
schema:
type: object
properties:
id_server_unbind_result:
type: string
enum:
# XXX: I don't know why, but the order matters here so that "no-support"
# doesn't become "no- support" by the renderer.
- "no-support"
- "success"
description: |-
An indicator as to whether or not the homeserver was able to unbind
the 3PID from the identity server. ``success`` indicates that the
indentity server has unbound the identifier whereas ``no-support``
indicates that the identity server refuses to support the request
or the homeserver was not able to determine an identity server to
unbind from.
example: "success"
required:
- id_server_unbind_result
tags:
- User data
"/account/3pid/unbind":
post:
summary: Removes a user's third party identifier from an identity server.
description: |-
Removes a user's third party identifier from the provided identity server
without removing it from the homeserver.
Unlike other endpoints, this endpoint does not take an ``id_access_token``
parameter because the homeserver is expected to sign the request to the
identity server instead.
operationId: unbind3pidFromAccount
security:
- accessToken: []
parameters:
- in: body
name: body
schema:
type: object
properties:
id_server:
type: string
description: |-
The identity server to unbind from. If not provided, the homeserver
MUST use the ``id_server`` the identifier was added through. If the
homeserver does not know the original ``id_server``, it MUST return
a ``id_server_unbind_result`` of ``no-support``.
example: "example.org"
medium:
type: string
description: The medium of the third party identifier being removed.
enum: ["email", "msisdn"]
example: "email"
address:
type: string
description: The third party address being removed.
example: "example@example.org"
required: ['medium', 'address']
responses:
200:
description: |-
The identity server has disassociated the third party identifier from the
user.
schema:
type: object
properties:
id_server_unbind_result:
type: string
enum:
# XXX: I don't know why, but the order matters here so that "no-support"
# doesn't become "no- support" by the renderer.
- "no-support"
- "success"
description: |-
An indicator as to whether or not the identity server was able to unbind
the 3PID. ``success`` indicates that the identity server has unbound the
identifier whereas ``no-support`` indicates that the identity server
refuses to support the request or the homeserver was not able to determine
an identity server to unbind from.
example: "success"
required:
- id_server_unbind_result
tags:
- User data
"/account/3pid/email/requestToken":
post:
summary: Begins the validation process for an email address for association with the user's account.
description: |-
The homeserver must check that the given email address is **not**
already associated with an account on this homeserver. This API should
be used to request validation tokens when adding an email address to an
account. This API's parameters and response are identical to that of
the |/register/email/requestToken|_ endpoint. The homeserver should validate
the email itself, either by sending a validation email itself or by using
a service it has control over.
operationId: requestTokenTo3PIDEmail
parameters:
- in: body
name: body
required: true
schema:
$ref: "./definitions/request_email_validation.yaml"
responses:
200:
description: |-
An email was sent to the given address. Note that this may be an
email containing the validation token or it may be informing the
user of an error.
schema:
$ref: "definitions/request_token_response.yaml"
403:
description: |-
The homeserver does not allow the third party identifier as a
contact option.
schema:
$ref: "definitions/errors/error.yaml"
examples:
application/json: {
"errcode": "M_THREEPID_DENIED",
"error": "Third party identifier is not allowed"
}
400:
description: |-
The third party identifier is already in use on the homeserver, or
the request was invalid. The error code ``M_SERVER_NOT_TRUSTED``
can be returned if the server does not trust/support the identity server
provided in the request.
schema:
$ref: "definitions/errors/error.yaml"
examples:
application/json: {
"errcode": "M_THREEPID_IN_USE",
"error": "Third party identifier already in use"
}
"/account/3pid/msisdn/requestToken":
post:
summary: Begins the validation process for a phone number for association with the user's account.
description: |-
The homeserver must check that the given phone number is **not**
already associated with an account on this homeserver. This API should
be used to request validation tokens when adding a phone number to an
account. This API's parameters and response are identical to that of
the |/register/msisdn/requestToken|_ endpoint. The homeserver should validate
the phone number itself, either by sending a validation message itself or by using
a service it has control over.
operationId: requestTokenTo3PIDMSISDN
parameters:
- in: body
name: body
required: true
schema:
$ref: "./definitions/request_msisdn_validation.yaml"
responses:
200:
description: An SMS message was sent to the given phone number.
schema:
$ref: "definitions/request_token_response.yaml"
403:
description: |-
The homeserver does not allow the third party identifier as a
contact option.
schema:
$ref: "definitions/errors/error.yaml"
examples:
application/json: {
"errcode": "M_THREEPID_DENIED",
"error": "Third party identifier is not allowed"
}
400:
description: |-
The third party identifier is already in use on the homeserver, or
the request was invalid. The error code ``M_SERVER_NOT_TRUSTED``
can be returned if the server does not trust/support the identity server
provided in the request.
schema:
$ref: "definitions/errors/error.yaml"
examples:
application/json: {
"errcode": "M_THREEPID_IN_USE",
"error": "Third party identifier already in use"
}

View file

@ -1,88 +0,0 @@
# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Application Service Room Directory API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
# Note: this is the same access_token definition used elsewhere in the client
# server API, however this expects an access token for an application service.
$ref: definitions/security.yaml
paths:
"/directory/list/appservice/{networkId}/{roomId}":
put:
summary: |-
Updates a room's visibility in the application service's room directory.
description: |-
Updates the visibility of a given room on the application service's room
directory.
This API is similar to the room directory visibility API used by clients
to update the homeserver's more general room directory.
This API requires the use of an application service access token (``as_token``)
instead of a typical client's access_token. This API cannot be invoked by
users who are not identified as application services.
operationId: updateAppserviceRoomDirectoryVsibility
parameters:
- in: path
type: string
name: networkId
description: |-
The protocol (network) ID to update the room list for. This would
have been provided by the application service as being listed as
a supported protocol.
required: true
x-example: "irc"
- in: path
type: string
name: roomId
description: The room ID to add to the directory.
required: true
x-example: "!somewhere:example.org"
- in: body
name: body
required: true
schema:
type: object
properties:
visibility:
type: string
enum: ["public", "private"]
description: |-
Whether the room should be visible (public) in the directory
or not (private).
example: "public"
required: ['visibility']
security:
# again, this is the appservice's token - not a typical client's
- accessToken: []
responses:
200:
description: The room's directory visibility has been updated.
schema:
type: object
examples:
application/json: {}
tags:
- Application service room directory management

View file

@ -1,142 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Banning API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/ban":
post:
summary: Ban a user in the room.
description: |-
Ban a user in the room. If the user is currently in the room, also kick them.
When a user is banned from a room, they may not join it or be invited to it until they are unbanned.
The caller must have the required power level in order to perform this operation.
operationId: ban
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room identifier (not alias) from which the user should be banned.
required: true
x-example: "!e42d8c:matrix.org"
- in: body
name: body
required: true
schema:
type: object
example: {
"reason": "Telling unfunny jokes",
"user_id": "@cheeky_monkey:matrix.org"
}
properties:
user_id:
type: string
description: The fully qualified user ID of the user being banned.
reason:
type: string
description: The reason the user has been banned. This will be supplied as the
``reason`` on the target's updated `m.room.member`_ event.
required: ["user_id"]
responses:
200:
description: The user has been kicked and banned from the room.
examples:
application/json: {
}
schema:
type: object
403:
description: |-
You do not have permission to ban the user from the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejections are:
- The banner is not currently in the room.
- The banner's power level is insufficient to ban users from the room.
examples:
application/json: {
"errcode": "M_FORBIDDEN",
"error": "You do not have a high enough power level to ban from this room."
}
schema:
"$ref": "definitions/errors/error.yaml"
tags:
- Room membership
"/rooms/{roomId}/unban":
post:
summary: Unban a user from the room.
description: |-
Unban a user from the room. This allows them to be invited to the room,
and join if they would otherwise be allowed to join according to its join rules.
The caller must have the required power level in order to perform this operation.
operationId: unban
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room identifier (not alias) from which the user should be unbanned.
required: true
x-example: "!e42d8c:matrix.org"
- in: body
name: body
required: true
schema:
type: object
example: {
"user_id": "@cheeky_monkey:matrix.org"
}
properties:
user_id:
type: string
description: The fully qualified user ID of the user being unbanned.
required: ["user_id"]
responses:
200:
description: The user has been unbanned from the room.
examples:
application/json: {
}
schema:
type: object
403:
description: |-
You do not have permission to unban the user from the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejections are:
- The unbanner's power level is insufficient to unban users from the room.
examples:
application/json: {
"errcode": "M_FORBIDDEN",
"error": "You do not have a high enough power level to unban from this room."
}
schema:
"$ref": "definitions/errors/error.yaml"
tags:
- Room membership

View file

@ -1,113 +0,0 @@
# Copyright 2019 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Capabiltiies API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/capabilities":
get:
summary: Gets information about the server's capabilities.
description: |-
Gets information about the server's supported feature set
and other relevant capabilities.
operationId: getCapabilities
security:
- accessToken: []
parameters: []
responses:
200:
description:
The capabilities of the server.
examples:
application/json: {
"capabilities": {
"m.change_password": {
"enabled": false
},
"m.room_versions": {
"default": "1",
"available": {
"1": "stable",
"2": "stable",
"3": "unstable",
"test-version": "unstable"
}
},
"com.example.custom.ratelimit": {
"max_requests_per_hour": 600
}
}
}
schema:
type: object
required: ["capabilities"]
properties:
capabilities:
type: object
title: Capabilities
description: |-
The custom capabilities the server supports, using the
Java package naming convention.
additionalProperties:
type: object
properties:
"m.change_password":
type: object
description: |-
Capability to indicate if the user can change their password.
title: ChangePasswordCapability
properties:
enabled:
type: boolean
description: |-
True if the user can change their password, false otherwise.
example: false
required: ['enabled']
"m.room_versions":
type: object
description: The room versions the server supports.
title: RoomVersionsCapability
properties:
default:
type: string
description: |-
The default room version the server is using for new rooms.
example: "1"
available:
type: object
title: AvailableRoomVersions
description: |-
A detailed description of the room versions the server supports.
additionalProperties:
type: string
title: RoomVersionStability
enum: [stable, unstable]
description: The stability of the room version.
required: ['default', 'available']
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Capabilities

View file

@ -1,448 +0,0 @@
# Copyright 2016 OpenMarket Ltd
# Copyright 2019 The Matrix.org Foundation C.I.C.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Content Repository API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/media/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
- "*/*"
produces:
- application/json
- "*/*"
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/upload":
post:
summary: Upload some content to the content repository.
operationId: uploadContent
produces: ["application/json"]
security:
- accessToken: []
parameters:
- in: header
name: Content-Type
type: string
description: The content type of the file being uploaded
x-example: "Content-Type: application/pdf"
- in: query
type: string
x-example: "War and Peace.pdf"
name: filename
description: The name of the file being uploaded
- in: body
name: "<content>"
description: The content to be uploaded.
required: true
x-example: "<bytes>" # so the spec shows "<bytes>" without quotes.
schema:
type: string
example: "<bytes>"
format: byte
responses:
200:
description: The `MXC URI`_ for the uploaded content.
schema:
type: object
required: ["content_uri"]
properties:
content_uri:
type: string
description: "The `MXC URI`_ to the uploaded content."
examples:
application/json: {
"content_uri": "mxc://example.com/AQwafuaFswefuhsfAFAgsw"
}
403:
description: |-
The user does not have permission to upload the content. Some reasons for this error include:
- The server does not permit the file type.
- The user has reached a quota for uploaded content.
examples:
application/json: {
"errcode": "M_FORBIDDEN",
"error": "Cannot upload this content"
}
schema:
"$ref": "definitions/errors/error.yaml"
413:
description: |-
The uploaded content is too large for the server.
examples:
application/json: {
"errcode": "M_TOO_LARGE",
"error": "Cannot upload files larger than 100mb"
}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Media
"/download/{serverName}/{mediaId}":
get:
summary: "Download content from the content repository."
operationId: getContent
produces: ["*/*"]
parameters:
- in: path
type: string
name: serverName
x-example: matrix.org
required: true
description: |
The server name from the ``mxc://`` URI (the authoritory component)
- in: path
type: string
name: mediaId
x-example: ascERGshawAWawugaAcauga
required: true
description: |
The media ID from the ``mxc://`` URI (the path component)
- in: query
type: boolean
name: allow_remote
x-example: false
required: false
default: true
description: |
Indicates to the server that it should not attempt to fetch the media if it is deemed
remote. This is to prevent routing loops where the server contacts itself. Defaults to
true if not provided.
responses:
200:
description: "The content that was previously uploaded."
headers:
Content-Type:
description: "The content type of the file that was previously uploaded."
type: "string"
Content-Disposition:
description: |-
The name of the file that was previously uploaded, if set.
type: "string"
schema:
type: file
# This is a workaround for us not being able to say the response is required.
description: "**Required.** The bytes for the uploaded file."
502:
description: |-
The content is too large for the server to serve.
examples:
application/json: {
"errcode": "M_TOO_LARGE",
"error": "Content is too large to serve"
}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Media
"/download/{serverName}/{mediaId}/{fileName}":
get:
summary: |-
Download content from the content repository. This is the same as
the download endpoint above, except permitting a desired file name.
operationId: getContentOverrideName
produces: ["*/*"]
parameters:
- in: path
type: string
name: serverName
x-example: matrix.org
required: true
description: |
The server name from the ``mxc://`` URI (the authoritory component)
- in: path
type: string
name: mediaId
x-example: ascERGshawAWawugaAcauga
required: true
description: |
The media ID from the ``mxc://`` URI (the path component)
- in: path
type: string
name: fileName
x-example: filename.jpg
required: true
description: A filename to give in the ``Content-Disposition`` header.
- in: query
type: boolean
name: allow_remote
x-example: false
required: false
default: true
description: |
Indicates to the server that it should not attempt to fetch the media if it is deemed
remote. This is to prevent routing loops where the server contacts itself. Defaults to
true if not provided.
responses:
200:
description: "The content that was previously uploaded."
headers:
Content-Type:
description: "The content type of the file that was previously uploaded."
type: "string"
Content-Disposition:
description: |-
The ``fileName`` requested or the name of the file that was previously
uploaded, if set.
type: "string"
schema:
type: file
# This is a workaround for us not being able to say the response is required.
description: "**Required.** The bytes for the uploaded file."
502:
description: |-
The content is too large for the server to serve.
examples:
application/json: {
"errcode": "M_TOO_LARGE",
"error": "Content is too large to serve"
}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Media
"/thumbnail/{serverName}/{mediaId}":
get:
summary: |-
Download a thumbnail of content from the content repository. See the `thumbnailing <#thumbnails>`_
section for more information.
operationId: getContentThumbnail
produces: ["image/jpeg", "image/png"]
parameters:
- in: path
type: string
name: serverName
required: true
x-example: example.org
description: |
The server name from the ``mxc://`` URI (the authoritory component)
- in: path
type: string
name: mediaId
x-example: ascERGshawAWawugaAcauga
required: true
description: |
The media ID from the ``mxc://`` URI (the path component)
- in: query
type: integer
x-example: 64
name: width
required: true
description: |-
The *desired* width of the thumbnail. The actual thumbnail may be
larger than the size specified.
- in: query
type: integer
x-example: 64
name: height
required: true
description: |-
The *desired* height of the thumbnail. The actual thumbnail may be
larger than the size specified.
- in: query
type: string
enum: ["crop", "scale"]
name: method
x-example: "scale"
description: |-
The desired resizing method. See the `thumbnailing <#thumbnails>`_
section for more information.
- in: query
type: boolean
name: allow_remote
x-example: false
required: false
default: true
description: |
Indicates to the server that it should not attempt to fetch the media if it is deemed
remote. This is to prevent routing loops where the server contacts itself. Defaults to
true if not provided.
responses:
200:
description: "A thumbnail of the requested content."
headers:
Content-Type:
description: "The content type of the thumbnail."
type: "string"
enum: ["image/jpeg", "image/png"]
schema:
type: file
# This is a workaround for us not being able to say the response is required.
description: "**Required.** The bytes for the thumbnail."
400:
description: |-
The request does not make sense to the server, or the server cannot thumbnail
the content. For example, the client requested non-integer dimensions or asked
for negatively-sized images.
examples:
application/json: {
"errcode": "M_UNKNOWN",
"error": "Cannot generate thumbnails for the requested content"
}
schema:
"$ref": "definitions/errors/error.yaml"
413:
description: |-
The local content is too large for the server to thumbnail.
examples:
application/json: {
"errcode": "M_TOO_LARGE",
"error": "Content is too large to thumbnail"
}
schema:
"$ref": "definitions/errors/error.yaml"
502:
description: |-
The remote content is too large for the server to thumbnail.
examples:
application/json: {
"errcode": "M_TOO_LARGE",
"error": "Content is too large to thumbnail"
}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Media
"/preview_url":
get:
summary: "Get information about a URL for a client"
description: |-
Get information about a URL for the client. Typically this is called when a
client sees a URL in a message and wants to render a preview for the user.
.. Note::
Clients should consider avoiding this endpoint for URLs posted in encrypted
rooms. Encrypted rooms often contain more sensitive information the users
do not want to share with the homeserver, and this can mean that the URLs
being shared should also not be shared with the homeserver.
operationId: getUrlPreview
produces: ["application/json"]
security:
- accessToken: []
parameters:
- in: query
type: string
x-example: "https://matrix.org"
name: url
description: "The URL to get a preview of."
required: true
- in: query
type: integer
format: int64
x-example: 1510610716656
name: ts
description: |-
The preferred point in time to return a preview for. The server may
return a newer version if it does not have the requested version
available.
responses:
200:
description: |-
The OpenGraph data for the URL, which may be empty. Some values are
replaced with matrix equivalents if they are provided in the response.
The differences from the OpenGraph protocol are described here.
schema:
type: object
properties:
"matrix:image:size":
type: integer
format: int64
description: |-
The byte-size of the image. Omitted if there is no image attached.
"og:image":
type: string
description: |-
An `MXC URI`_ to the image. Omitted if there is no image.
examples:
application/json: {
"og:title": "Matrix Blog Post",
"og:description": "This is a really cool blog post from matrix.org",
"og:image": "mxc://example.com/ascERGshawAWawugaAcauga",
"og:image:type": "image/png",
"og:image:height": 48,
"og:image:width": 48,
"matrix:image:size": 102400
}
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Media
"/config":
get:
summary: Get the configuration for the content repository.
description: |-
This endpoint allows clients to retrieve the configuration of the content
repository, such as upload limitations.
Clients SHOULD use this as a guide when using content repository endpoints.
All values are intentionally left optional. Clients SHOULD follow
the advice given in the field description when the field is not available.
**NOTE:** Both clients and server administrators should be aware that proxies
between the client and the server may affect the apparent behaviour of content
repository APIs, for example, proxies may enforce a lower upload size limit
than is advertised by the server on this endpoint.
operationId: getConfig
produces: ["application/json"]
security:
- accessToken: []
responses:
200:
description: The public content repository configuration for the matrix server.
schema:
type: object
properties:
m.upload.size:
type: integer
format: int64
description: |-
The maximum size an upload can be in bytes.
Clients SHOULD use this as a guide when uploading content.
If not listed or null, the size limit should be treated as unknown.
examples:
application/json: {
"m.upload.size": 50000000
}
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/error.yaml"
tags:
- Media

View file

@ -1,268 +0,0 @@
# Copyright 2016 OpenMarket Ltd
# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Creation API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/createRoom":
post:
summary: Create a new room
description: |-
Create a new room with various configuration options.
The server MUST apply the normal state resolution rules when creating
the new room, including checking power levels for each event. It MUST
apply the events implied by the request in the following order:
1. The ``m.room.create`` event itself. Must be the first event in the
room.
2. An ``m.room.member`` event for the creator to join the room. This is
needed so the remaining events can be sent.
3. A default ``m.room.power_levels`` event, giving the room creator
(and not other members) permission to send state events. Overridden
by the ``power_level_content_override`` parameter.
4. Events set by the ``preset``. Currently these are the ``m.room.join_rules``,
``m.room.history_visibility``, and ``m.room.guest_access`` state events.
5. Events listed in ``initial_state``, in the order that they are
listed.
6. Events implied by ``name`` and ``topic`` (``m.room.name`` and ``m.room.topic``
state events).
7. Invite events implied by ``invite`` and ``invite_3pid`` (``m.room.member`` with
``membership: invite`` and ``m.room.third_party_invite``).
The available presets do the following with respect to room state:
======================== ============== ====================== ================ =========
Preset ``join_rules`` ``history_visibility`` ``guest_access`` Other
======================== ============== ====================== ================ =========
``private_chat`` ``invite`` ``shared`` ``can_join``
``trusted_private_chat`` ``invite`` ``shared`` ``can_join`` All invitees are given the same power level as the room creator.
``public_chat`` ``public`` ``shared`` ``forbidden``
======================== ============== ====================== ================ =========
The server will create a ``m.room.create`` event in the room with the
requesting user as the creator, alongside other keys provided in the
``creation_content``.
operationId: createRoom
security:
- accessToken: []
parameters:
- in: body
name: body
description: The desired room configuration.
schema:
type: object
example: {
"preset": "public_chat",
"room_alias_name": "thepub",
"name": "The Grand Duke Pub",
"topic": "All about happy hour",
"creation_content": {
"m.federate": false
}
}
properties:
visibility:
type: string
enum: ["public", "private"]
description: |-
A ``public`` visibility indicates that the room will be shown
in the published room list. A ``private`` visibility will hide
the room from the published room list. Rooms default to
``private`` visibility if this key is not included. NB: This
should not be confused with ``join_rules`` which also uses the
word ``public``.
room_alias_name:
type: string
description: |-
The desired room alias **local part**. If this is included, a
room alias will be created and mapped to the newly created
room. The alias will belong on the *same* homeserver which
created the room. For example, if this was set to "foo" and
sent to the homeserver "example.com" the complete room alias
would be ``#foo:example.com``.
The complete room alias will become the canonical alias for
the room.
name:
type: string
description: |-
If this is included, an ``m.room.name`` event will be sent
into the room to indicate the name of the room. See Room
Events for more information on ``m.room.name``.
topic:
type: string
description: |-
If this is included, an ``m.room.topic`` event will be sent
into the room to indicate the topic for the room. See Room
Events for more information on ``m.room.topic``.
invite:
type: array
description: |-
A list of user IDs to invite to the room. This will tell the
server to invite everyone in the list to the newly created room.
items:
type: string
invite_3pid:
type: array
description: |-
A list of objects representing third party IDs to invite into
the room.
items:
type: object
title: Invite3pid
properties:
id_server:
type: string
description: The hostname+port of the identity server which should be used for third party identifier lookups.
id_access_token:
type: string
description: |-
An access token previously registered with the identity server. Servers
can treat this as optional to distinguish between r0.5-compatible clients
and this specification version.
medium:
type: string
# TODO: Link to Identity Service spec when it eixsts
description: The kind of address being passed in the address field, for example ``email``.
address:
type: string
description: The invitee's third party identifier.
required: ["id_server", "id_access_token", "medium", "address"]
room_version:
type: string
description: |-
The room version to set for the room. If not provided, the homeserver is
to use its configured default. If provided, the homeserver will return a
400 error with the errcode ``M_UNSUPPORTED_ROOM_VERSION`` if it does not
support the room version.
example: "1"
creation_content:
title: CreationContent
type: object
description: |-
Extra keys, such as ``m.federate``, to be added to the content
of the `m.room.create`_ event. The server will clobber the following
keys: ``creator``, ``room_version``. Future versions of the specification
may allow the server to clobber other keys.
initial_state:
type: array
description: |-
A list of state events to set in the new room. This allows
the user to override the default state events set in the new
room. The expected format of the state events are an object
with type, state_key and content keys set.
Takes precedence over events set by ``preset``, but gets
overriden by ``name`` and ``topic`` keys.
items:
type: object
title: StateEvent
properties:
type:
type: string
description: The type of event to send.
state_key:
type: string
description: The state_key of the state event. Defaults to an empty string.
content:
type: object
description: The content of the event.
required: ["type", "content"]
preset:
type: string
enum: ["private_chat", "public_chat", "trusted_private_chat"]
description: |-
Convenience parameter for setting various default state events
based on a preset.
If unspecified, the server should use the ``visibility`` to determine
which preset to use. A visbility of ``public`` equates to a preset of
``public_chat`` and ``private`` visibility equates to a preset of
``private_chat``.
is_direct:
type: boolean
description: |-
This flag makes the server set the ``is_direct`` flag on the
``m.room.member`` events sent to the users in ``invite`` and
``invite_3pid``. See `Direct Messaging`_ for more information.
power_level_content_override:
title: Power Level Event Content
type: object
description: |-
The power level content to override in the default power level
event. This object is applied on top of the generated `m.room.power_levels`_
event content prior to it being sent to the room. Defaults to
overriding nothing.
responses:
200:
description: Information about the newly created room.
schema:
type: object
description: Information about the newly created room.
properties:
room_id:
type: string
description: |-
The created room's ID.
required: ['room_id']
examples:
application/json: {
"room_id": "!sefiuhWgwghwWgh:example.com"
}
400:
description: |-
The request is invalid. A meaningful ``errcode`` and description
error text will be returned. Example reasons for rejection include:
- The request body is malformed (``errcode`` set to ``M_BAD_JSON``
or ``M_NOT_JSON``).
- The room alias specified is already taken (``errcode`` set to
``M_ROOM_IN_USE``).
- The initial state implied by the parameters to the request is
invalid: for example, the user's ``power_level`` is set below
that necessary to set the room name (``errcode`` set to
``M_INVALID_ROOM_STATE``).
- The homeserver doesn't support the requested room version, or
one or more users being invited to the new room are residents
of a homeserver which does not support the requested room version.
The ``errcode`` will be ``M_UNSUPPORTED_ROOM_VERSION`` in these
cases.
schema:
"$ref": "definitions/errors/error.yaml"
tags:
- Room creation

View file

@ -1 +0,0 @@
../../../event-schemas

View file

@ -1,65 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
properties:
event_id:
description: The ID of this event, if applicable.
type: string
content:
description: The content of this event. The fields in this object will vary depending
on the type of event.
title: EventContent
type: object
origin_server_ts:
description: Timestamp in milliseconds on originating homeserver when this event
was sent.
format: int64
type: integer
sender:
description: The MXID of the user who sent this event.
type: string
state_key:
description: Optional. This key will only be present for state events. A unique
key which defines the overwriting semantics for this piece of room state.
type: string
type:
description: The type of event.
type: string
unsigned:
description: Information about this event which was not sent by the originating
homeserver
properties:
age:
description: Time in milliseconds since the event was sent.
format: int64
type: integer
prev_content:
description: Optional. The previous ``content`` for this state. This will
be present only for state events appearing in the ``timeline``. If this
is not a state event, or there is no previous content, this key will be
missing.
title: EventContent
type: object
transaction_id:
description: Optional. The transaction ID set when this message was sent.
This key will only be present for message events sent by the device calling
this API.
type: string
redacted_because:
description: Optional. The event that redacted this event, if any.
title: Event
type: object
title: Unsigned
type: object
title: Event
type: object

View file

@ -1,105 +0,0 @@
# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
type: object
description: A list of the rooms on the server.
required: ["chunk"]
properties:
chunk:
title: "PublicRoomsChunks"
type: array
description: |-
A paginated chunk of public rooms.
items:
type: object
title: "PublicRoomsChunk"
required:
- room_id
- num_joined_members
- world_readable
- guest_can_join
properties:
aliases:
type: array
description: |-
Aliases of the room. May be empty.
items:
type: string
canonical_alias:
type: string
description: |-
The canonical alias of the room, if any.
name:
type: string
description: |-
The name of the room, if any.
num_joined_members:
type: integer
description: |-
The number of members joined to the room.
room_id:
type: string
description: |-
The ID of the room.
topic:
type: string
description: |-
The topic of the room, if any.
world_readable:
type: boolean
description: |-
Whether the room may be viewed by guest users without joining.
guest_can_join:
type: boolean
description: |-
Whether guest users may join the room and participate in it.
If they can, they will be subject to ordinary power level
rules like any other user.
avatar_url:
type: string
description: The URL for the room's avatar, if one is set.
next_batch:
type: string
description: |-
A pagination token for the response. The absence of this token
means there are no more results to fetch and the client should
stop paginating.
prev_batch:
type: string
description: |-
A pagination token that allows fetching previous results. The
absence of this token means there are no results before this
batch, i.e. this is the first batch.
total_room_count_estimate:
type: integer
description: |-
An estimate on the total number of public rooms, if the
server has an estimate.
example: {
"chunk": [
{
"aliases": ["#murrays:cheese.bar"],
"avatar_url": "mxc://bleeker.street/CHEDDARandBRIE",
"guest_can_join": false,
"name": "CHEESE",
"num_joined_members": 37,
"room_id": "!ol19s:bleecker.street",
"topic": "Tasty tasty cheese",
"world_readable": true
}
],
"next_batch": "p190q",
"prev_batch": "p1902",
"total_room_count_estimate": 115
}

View file

@ -1,50 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
properties:
content:
items:
allOf:
- $ref: push_rule.yaml
title: PushRule
type: object
type: array
override:
items:
allOf:
- $ref: push_rule.yaml
title: PushRule
type: object
type: array
room:
items:
allOf:
- $ref: push_rule.yaml
title: PushRule
type: object
type: array
sender:
items:
allOf:
- $ref: push_rule.yaml
title: PushRule
type: object
type: array
underride:
items:
allOf:
- $ref: push_rule.yaml
title: PushRule
type: object
type: array
type: object

View file

@ -1,226 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server device management API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/devices":
get:
summary: List registered devices for the current user
description: |-
Gets information about all devices for the current user.
operationId: getDevices
security:
- accessToken: []
responses:
200:
description: Device information
schema:
type: object
properties:
devices:
type: array
description: A list of all registered devices for this user.
items:
type: object
allOf:
- $ref: "definitions/client_device.yaml"
examples:
application/json: {
"devices": [
{
"device_id": "QBUAZIFURK",
"display_name": "android",
"last_seen_ip": "1.2.3.4",
"last_seen_ts": 1474491775024
}
]
}
tags:
- Device management
"/devices/{deviceId}":
get:
summary: Get a single device
description: |-
Gets information on a single device, by device id.
operationId: getDevice
security:
- accessToken: []
parameters:
- in: path
type: string
name: deviceId
description: The device to retrieve.
required: true
x-example: "QBUAZIFURK"
responses:
200:
description: Device information
schema:
type: object
allOf:
- $ref: "definitions/client_device.yaml"
examples:
application/json: {
"device_id": "QBUAZIFURK",
"display_name": "android",
"last_seen_ip": "1.2.3.4",
"last_seen_ts": 1474491775024
}
404:
description: The current user has no device with the given ID.
tags:
- Device management
put:
summary: Update a device
description: |-
Updates the metadata on the given device.
operationId: updateDevice
security:
- accessToken: []
parameters:
- in: path
type: string
name: deviceId
description: The device to update.
required: true
x-example: "QBUAZIFURK"
- in: body
name: body
required: true
description: New information for the device.
schema:
type: object
properties:
display_name:
type: string
description: |-
The new display name for this device. If not given, the
display name is unchanged.
example: My other phone
responses:
200:
description: The device was successfully updated.
examples:
application/json: {
}
schema:
type: object # empty json object
404:
description: The current user has no device with the given ID.
tags:
- Device management
delete:
summary: Delete a device
description: |-
This API endpoint uses the `User-Interactive Authentication API`_.
Deletes the given device, and invalidates any access token associated with it.
operationId: deleteDevice
security:
- accessToken: []
parameters:
- in: path
type: string
name: deviceId
description: The device to delete.
required: true
x-example: "QBUAZIFURK"
- in: body
name: body
schema:
type: object
properties:
auth:
description: |-
Additional authentication information for the
user-interactive authentication API.
"$ref": "definitions/auth_data.yaml"
responses:
200:
description: |-
The device was successfully removed, or had been removed
previously.
schema:
type: object
examples:
application/json: {
}
401:
description: |-
The homeserver requires additional authentication information.
schema:
"$ref": "definitions/auth_response.yaml"
tags:
- Device management
"/delete_devices":
post:
summary: Bulk deletion of devices
description: |-
This API endpoint uses the `User-Interactive Authentication API`_.
Deletes the given devices, and invalidates any access token associated with them.
operationId: deleteDevices
security:
- accessToken: []
parameters:
- in: body
name: body
schema:
type: object
properties:
devices:
type: array
description: The list of device IDs to delete.
items:
type: string
description: A list of device IDs.
example: ["QBUAZIFURK", "AUIECTSRND"]
auth:
description: |-
Additional authentication information for the
user-interactive authentication API.
"$ref": "definitions/auth_data.yaml"
required:
- devices
responses:
200:
description: |-
The devices were successfully removed, or had been removed
previously.
schema:
type: object
examples:
application/json: {
}
401:
description: |-
The homeserver requires additional authentication information.
schema:
"$ref": "definitions/auth_response.yaml"
tags:
- Device management

View file

@ -1,237 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Directory API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/directory/room/{roomAlias}":
put:
summary: Create a new mapping from room alias to room ID.
operationId: setRoomAlias
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomAlias
description: The room alias to set.
required: true
x-example: "#monkeys:matrix.org"
- in: body
name: body
description: Information about this room alias.
required: true
schema:
type: object
properties:
room_id:
type: string
description: The room ID to set.
required: ['room_id']
example: {
"room_id": "!abnjk1jdasj98:capuchins.com"
}
responses:
200:
description: The mapping was created.
examples:
application/json: {}
schema:
type: object
409:
description: A room alias with that name already exists.
examples:
application/json: {
"errcode": "M_UNKNOWN",
"error": "Room alias #monkeys:matrix.org already exists."
}
schema:
"$ref": "definitions/errors/error.yaml"
tags:
- Room directory
get:
summary: Get the room ID corresponding to this room alias.
description: |-
Requests that the server resolve a room alias to a room ID.
The server will use the federation API to resolve the alias if the
domain part of the alias does not correspond to the server's own
domain.
operationId: getRoomIdByAlias
parameters:
- in: path
type: string
name: roomAlias
description: The room alias.
required: true
x-example: "#monkeys:matrix.org"
responses:
200:
description: The room ID and other information for this alias.
schema:
type: object
properties:
room_id:
type: string
description: The room ID for this room alias.
servers:
type: array
description: A list of servers that are aware of this room alias.
items:
type: string
description: A server which is aware of this room alias.
examples:
application/json: {
"room_id": "!abnjk1jdasj98:capuchins.com",
"servers": [
"capuchins.com",
"matrix.org",
"another.com"
]
}
404:
description: There is no mapped room ID for this room alias.
examples:
application/json: {
"errcode": "M_NOT_FOUND",
"error": "Room alias #monkeys:matrix.org not found."
}
schema:
"$ref": "definitions/errors/error.yaml"
tags:
- Room directory
delete:
summary: Remove a mapping of room alias to room ID.
description: |-
Remove a mapping of room alias to room ID.
Servers may choose to implement additional access control checks here, for instance that
room aliases can only be deleted by their creator or a server administrator.
.. Note::
Servers may choose to update the ``alt_aliases`` for the ``m.room.canonical_alias``
state event in the room when an alias is removed. Servers which choose to update the
canonical alias event are recommended to, in addition to their other relevant permission
checks, delete the alias and return a successful response even if the user does not
have permission to update the ``m.room.canonical_alias`` event.
operationId: deleteRoomAlias
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomAlias
description: The room alias to remove.
required: true
x-example: "#monkeys:matrix.org"
responses:
200:
description: The mapping was deleted.
examples:
application/json: {
}
schema:
type: object
404:
description: There is no mapped room ID for this room alias.
examples:
application/json: {
"errcode": "M_NOT_FOUND",
"error": "Room alias #monkeys:example.org not found."
}
schema:
"$ref": "definitions/errors/error.yaml"
tags:
- Room directory
"/rooms/{roomId}/aliases":
get:
summary: Get a list of local aliases on a given room.
description: |-
Get a list of aliases maintained by the local server for the
given room.
This endpoint can be called by users who are in the room (external
users receive an ``M_FORBIDDEN`` error response). If the room's
``m.room.history_visibility`` maps to ``world_readable``, any
user can call this endpoint.
Servers may choose to implement additional access control checks here,
such as allowing server administrators to view aliases regardless of
membership.
.. Note::
Clients are recommended not to display this list of aliases prominently
as they are not curated, unlike those listed in the ``m.room.canonical_alias``
state event.
operationId: getLocalAliases
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room ID to find local aliases of.
required: true
x-example: "!abc123:example.org"
responses:
200:
description: |-
The list of local aliases for the room.
examples:
application/json: {
"aliases": [
"#somewhere:example.com",
"#another:example.com",
"#hat_trick:example.com"
]
}
schema:
type: object
properties:
aliases:
type: array
description: The server's local aliases on the room. Can be empty.
items:
type: string
required: ['aliases']
403:
description: The user is not permitted to retrieve the list of local aliases for the room.
examples:
application/json: {
"errcode": "M_FORBIDDEN",
"error": "You are not a member of the room."
}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Room directory

View file

@ -1,150 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Event Context API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/context/{eventId}":
get:
summary: Get events and state around the specified event.
description: |-
This API returns a number of events that happened just before and
after the specified event. This allows clients to get the context
surrounding an event.
*Note*: This endpoint supports lazy-loading of room member events. See
`Lazy-loading room members <#lazy-loading-room-members>`_ for more information.
operationId: getEventContext
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to get events from.
required: true
x-example: "!636q39766251:example.com"
- in: path
type: string
name: eventId
description: The event to get context around.
required: true
x-example: "$f3h4d129462ha:example.com"
- in: query
type: integer
name: limit
description: |-
The maximum number of events to return. Default: 10.
x-example: 3
- in: query
name: filter
type: string
description: |-
A JSON ``RoomEventFilter`` to filter the returned events with. The
filter is only applied to ``events_before``, ``events_after``, and
``state``. It is not applied to the ``event`` itself. The filter may
be applied before or/and after the ``limit`` parameter - whichever the
homeserver prefers.
See `Filtering <#filtering>`_ for more information.
x-example: "66696p746572"
responses:
200:
description: The events and state surrounding the requested event.
schema:
type: object
description: The events and state surrounding the requested event.
properties:
start:
type: string
description: |-
A token that can be used to paginate backwards with.
end:
type: string
description: |-
A token that can be used to paginate forwards with.
events_before:
type: array
description: |-
A list of room events that happened just before the
requested event, in reverse-chronological order.
items:
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
event:
description: |-
Details of the requested event.
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
events_after:
type: array
description: |-
A list of room events that happened just after the
requested event, in chronological order.
items:
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
state:
type: array
description: |-
The state of the room at the last event returned.
items:
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/state_event.yaml"
examples:
application/json: {
"end": "t29-57_2_0_2",
"events_after": [
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.message$m.text"
}
],
"event": {
"event_id": "$f3h4d129462ha:example.com",
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.message$m.image"
},
"events_before": [
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.message$m.file"
}
],
"start": "t27-54_2_0_2",
"state": [
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.create"
},
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.member"
}
]
}
tags:
- Room participation

View file

@ -1,156 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server filter API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/user/{userId}/filter":
post:
summary: Upload a new filter.
description: |-
Uploads a new filter definition to the homeserver.
Returns a filter ID that may be used in future requests to
restrict which events are returned to the client.
operationId: defineFilter
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
required: true
description:
The id of the user uploading the filter. The access token must be
authorized to make requests for this user id.
x-example: "@alice:example.com"
- in: body
name: filter
required: true
description: The filter to upload.
schema:
type: object
allOf:
- $ref: "definitions/sync_filter.yaml"
example: {
"room": {
"state": {
"types": ["m.room.*"],
"not_rooms": ["!726s6s6q:example.com"]
},
"timeline": {
"limit": 10,
"types": ["m.room.message"],
"not_rooms": ["!726s6s6q:example.com"],
"not_senders": ["@spam:example.com"]
},
"ephemeral": {
"types": ["m.receipt", "m.typing"],
"not_rooms": ["!726s6s6q:example.com"],
"not_senders": ["@spam:example.com"]
}
},
"presence": {
"types": ["m.presence"],
"not_senders": ["@alice:example.com"]
},
"event_format": "client",
"event_fields": ["type", "content", "sender"]
}
responses:
200:
description: The filter was created.
schema:
type: object
properties:
filter_id:
type: string
description: |-
The ID of the filter that was created. Cannot start
with a ``{`` as this character is used to determine
if the filter provided is inline JSON or a previously
declared filter by homeservers on some APIs.
example: "66696p746572"
required: ['filter_id']
tags:
- Room participation
"/user/{userId}/filter/{filterId}":
get:
summary: Download a filter
operationId: getFilter
security:
- accessToken: []
parameters:
- in: path
name: userId
type: string
description: |-
The user ID to download a filter for.
x-example: "@alice:example.com"
required: true
- in: path
name: filterId
type: string
description: |-
The filter ID to download.
x-example: "66696p746572"
required: true
responses:
200:
description: |-
"The filter defintion"
examples:
application/json: {
"room": {
"state": {
"types": ["m.room.*"],
"not_rooms": ["!726s6s6q:example.com"]
},
"timeline": {
"limit": 10,
"types": ["m.room.message"],
"not_rooms": ["!726s6s6q:example.com"],
"not_senders": ["@spam:example.com"]
},
"ephemeral": {
"types": ["m.receipt", "m.typing"],
"not_rooms": ["!726s6s6q:example.com"],
"not_senders": ["@spam:example.com"]
}
},
"presence": {
"types": ["m.presence"],
"not_senders": ["@alice:example.com"]
},
"event_format": "client",
"event_fields": ["type", "content", "sender"]
}
schema:
type: object
allOf:
- $ref: "definitions/sync_filter.yaml"
404:
description: "Unknown filter."
tags:
- Room participation

View file

@ -1,117 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Joining API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
# With an extra " " to disambiguate from the 3pid invite endpoint
# The extra space makes it sort first for what I'm sure is a good reason.
"/rooms/{roomId}/invite ":
post:
summary: Invite a user to participate in a particular room.
description: |-
.. _invite-by-user-id-endpoint:
*Note that there are two forms of this API, which are documented separately.
This version of the API requires that the inviter knows the Matrix
identifier of the invitee. The other is documented in the*
`third party invites section`_.
This API invites a user to participate in a particular room.
They do not start participating in the room until they actually join the
room.
Only users currently in a particular room can invite other users to
join that room.
If the user was invited to the room, the homeserver will append a
``m.room.member`` event to the room.
.. _third party invites section: `invite-by-third-party-id-endpoint`_
operationId: inviteUser
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room identifier (not alias) to which to invite the user.
required: true
x-example: "!d41d8cd:matrix.org"
- in: body
name: body
required: true
schema:
type: object
example: {
"user_id": "@cheeky_monkey:matrix.org"
}
properties:
user_id:
type: string
description: The fully qualified user ID of the invitee.
required: ["user_id"]
responses:
200:
description: The user has been invited to join the room.
examples:
application/json: {
}
schema:
type: object
400:
description: |-
The request is invalid. A meaningful ``errcode`` and description
error text will be returned. Example reasons for rejection include:
- The request body is malformed (``errcode`` set to ``M_BAD_JSON``
or ``M_NOT_JSON``).
- One or more users being invited to the room are residents of a
homeserver which does not support the requested room version. The
``errcode`` will be ``M_UNSUPPORTED_ROOM_VERSION`` in these cases.
schema:
"$ref": "definitions/errors/error.yaml"
403:
description: |-
You do not have permission to invite the user to the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejections are:
- The invitee has been banned from the room.
- The invitee is already a member of the room.
- The inviter is not currently in the room.
- The inviter's power level is insufficient to invite users to the room.
examples:
application/json: {
"errcode": "M_FORBIDDEN", "error": "@cheeky_monkey:matrix.org is banned from the room"}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Room membership

View file

@ -1,172 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Inviting API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/join":
post:
summary: Start the requesting user participating in a particular room.
description: |-
*Note that this API requires a room ID, not alias.* ``/join/{roomIdOrAlias}`` *exists if you have a room alias.*
This API starts a user participating in a particular room, if that user
is allowed to participate in that room. After this call, the client is
allowed to see all current state events in the room, and all subsequent
events associated with the room until the user leaves the room.
After a user has joined a room, the room will appear as an entry in the
response of the |/initialSync|_ and |/sync|_ APIs.
If a ``third_party_signed`` was supplied, the homeserver must verify
that it matches a pending ``m.room.third_party_invite`` event in the
room, and perform key validity checking if required by the event.
operationId: joinRoomById
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room identifier (not alias) to join.
required: true
x-example: "!d41d8cd:matrix.org"
- in: body
name: third_party_signed
schema:
type: object
properties:
third_party_signed:
$ref: "definitions/third_party_signed.yaml"
responses:
200:
description: |-
The room has been joined.
The joined room ID must be returned in the ``room_id`` field.
examples:
application/json: {
"room_id": "!d41d8cd:matrix.org"}
schema:
type: object
properties:
room_id:
type: string
description: The joined room ID.
required: ["room_id"]
403:
description: |-
You do not have permission to join the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejection are:
- The room is invite-only and the user was not invited.
- The user has been banned from the room.
examples:
application/json: {
"errcode": "M_FORBIDDEN", "error": "You are not invited to this room."}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Room membership
"/join/{roomIdOrAlias}":
post:
summary: Start the requesting user participating in a particular room.
description: |-
*Note that this API takes either a room ID or alias, unlike* ``/room/{roomId}/join``.
This API starts a user participating in a particular room, if that user
is allowed to participate in that room. After this call, the client is
allowed to see all current state events in the room, and all subsequent
events associated with the room until the user leaves the room.
After a user has joined a room, the room will appear as an entry in the
response of the |/initialSync|_ and |/sync|_ APIs.
If a ``third_party_signed`` was supplied, the homeserver must verify
that it matches a pending ``m.room.third_party_invite`` event in the
room, and perform key validity checking if required by the event.
operationId: joinRoom
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomIdOrAlias
description: The room identifier or alias to join.
required: true
x-example: "#monkeys:matrix.org"
- in: query
type: array
items:
type: string
name: server_name
description: |-
The servers to attempt to join the room through. One of the servers
must be participating in the room.
x-example: ["matrix.org", "elsewhere.ca"]
- in: body
name: third_party_signed
schema:
type: object
properties:
third_party_signed:
$ref: "definitions/third_party_signed.yaml"
responses:
200:
description: |-
The room has been joined.
The joined room ID must be returned in the ``room_id`` field.
examples:
application/json: {
"room_id": "!d41d8cd:matrix.org"}
schema:
type: object
properties:
room_id:
type: string
description: The joined room ID.
required: ["room_id"]
403:
description: |-
You do not have permission to join the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejection are:
- The room is invite-only and the user was not invited.
- The user has been banned from the room.
examples:
application/json: {
"errcode": "M_FORBIDDEN", "error": "You are not invited to this room."}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Room membership

View file

@ -1,407 +0,0 @@
# Copyright 2016 OpenMarket Ltd
# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Client Config API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/keys/upload":
post:
summary: Upload end-to-end encryption keys.
description: |-
Publishes end-to-end encryption keys for the device.
operationId: uploadKeys
security:
- accessToken: []
parameters:
- in: body
name: keys
description: |-
The keys to be published
schema:
type: object
properties:
device_keys:
description: |-
Identity keys for the device. May be absent if no new
identity keys are required.
allOf:
- $ref: definitions/device_keys.yaml
one_time_keys:
type: object
description: |-
One-time public keys for "pre-key" messages. The names of
the properties should be in the format
``<algorithm>:<key_id>``. The format of the key is determined
by the `key algorithm <#key-algorithms>`_.
May be absent if no new one-time keys are required.
additionalProperties:
type:
- string
- object
# XXX: We can't define an actual object here, so we have to hope
# that people will look at the swagger source or can figure it out
# from the other endpoints/example.
# - type: object
# title: KeyObject
# properties:
# key:
# type: string
# description: The key, encoded using unpadded base64.
# signatures:
# type: object
# description: |-
# Signature for the device. Mapped from user ID to signature object.
# additionalProperties:
# type: string
# required: ['key', 'signatures']
example: {
"curve25519:AAAAAQ": "/qyvZvwjiTxGdGU0RCguDCLeR+nmsb3FfNG3/Ve4vU8",
"signed_curve25519:AAAAHg": {
"key": "zKbLg+NrIjpnagy+pIY6uPL4ZwEG2v+8F9lmgsnlZzs",
"signatures": {
"@alice:example.com": {
"ed25519:JLAFKJWSCS": "FLWxXqGbwrb8SM3Y795eB6OA8bwBcoMZFXBqnTn58AYWZSqiD45tlBVcDa2L7RwdKXebW/VzDlnfVJ+9jok1Bw"
}
}
},
"signed_curve25519:AAAAHQ": {
"key": "j3fR3HemM16M7CWhoI4Sk5ZsdmdfQHsKL1xuSft6MSw",
"signatures": {
"@alice:example.com": {
"ed25519:JLAFKJWSCS": "IQeCEPb9HFk217cU9kw9EOiusC6kMIkoIRnbnfOh5Oc63S1ghgyjShBGpu34blQomoalCyXWyhaaT3MrLZYQAA"
}
}
}
}
responses:
200:
description:
The provided keys were successfully uploaded.
schema:
type: object
properties:
one_time_key_counts:
type: object
additionalProperties:
type: integer
description: |-
For each key algorithm, the number of unclaimed one-time keys
of that type currently held on the server for this device.
example:
curve25519: 10
signed_curve25519: 20
required:
- one_time_key_counts
tags:
- End-to-end encryption
"/keys/query":
post:
summary: Download device identity keys.
description: |-
Returns the current devices and identity keys for the given users.
operationId: queryKeys
security:
- accessToken: []
parameters:
- in: body
name: query
description: |-
Query defining the keys to be downloaded
schema:
type: object
properties:
timeout:
type: integer
description: |-
The time (in milliseconds) to wait when downloading keys from
remote servers. 10 seconds is the recommended default.
example: 10000
device_keys:
type: object
description: |-
The keys to be downloaded. A map from user ID, to a list of
device IDs, or to an empty list to indicate all devices for the
corresponding user.
additionalProperties:
type: array
items:
type: string
description: "device ID"
example:
"@alice:example.com": []
token:
type: string
description: |-
If the client is fetching keys as a result of a device update received
in a sync request, this should be the 'since' token of that sync request,
or any later sync token. This allows the server to ensure its response
contains the keys advertised by the notification in that sync.
required:
- device_keys
responses:
200:
description:
The device information
schema:
type: object
properties:
failures:
type: object
description: |-
If any remote homeservers could not be reached, they are
recorded here. The names of the properties are the names of
the unreachable servers.
If the homeserver could be reached, but the user or device
was unknown, no failure is recorded. Instead, the corresponding
user or device is missing from the ``device_keys`` result.
additionalProperties:
type: object
example: {}
device_keys:
type: object
description: |-
Information on the queried devices. A map from user ID, to a
map from device ID to device information. For each device,
the information returned will be the same as uploaded via
``/keys/upload``, with the addition of an ``unsigned``
property.
additionalProperties:
type: object
additionalProperties:
allOf:
- $ref: definitions/device_keys.yaml
properties:
unsigned:
title: UnsignedDeviceInfo
type: object
description: |-
Additional data added to the device key information
by intermediate servers, and not covered by the
signatures.
properties:
device_display_name:
type: string
description:
The display name which the user set on the device.
example:
"@alice:example.com":
JLAFKJWSCS: {
"user_id": "@alice:example.com",
"device_id": "JLAFKJWSCS",
"algorithms": [
"m.olm.v1.curve25519-aes-sha2",
"m.megolm.v1.aes-sha2"
],
"keys": {
"curve25519:JLAFKJWSCS": "3C5BFWi2Y8MaVvjM8M22DBmh24PmgR0nPvJOIArzgyI",
"ed25519:JLAFKJWSCS": "lEuiRJBit0IG6nUf5pUzWTUEsRVVe/HJkoKuEww9ULI"
},
"signatures": {
"@alice:example.com": {
"ed25519:JLAFKJWSCS": "dSO80A01XiigH3uBiDVx/EjzaoycHcjq9lfQX0uWsqxl2giMIiSPR8a4d291W1ihKJL/a+myXS367WT6NAIcBA"
}
},
"unsigned": {
"device_display_name": "Alice's mobile phone"
}
}
tags:
- End-to-end encryption
"/keys/claim":
post:
summary: Claim one-time encryption keys.
description: |-
Claims one-time keys for use in pre-key messages.
operationId: claimKeys
security:
- accessToken: []
parameters:
- in: body
name: query
description: |-
Query defining the keys to be claimed
schema:
type: object
properties:
timeout:
type: integer
description: |-
The time (in milliseconds) to wait when downloading keys from
remote servers. 10 seconds is the recommended default.
example: 10000
one_time_keys:
type: object
description: |-
The keys to be claimed. A map from user ID, to a map from
device ID to algorithm name.
additionalProperties:
type: object
additionalProperties:
type: string
description: algorithm
example: "signed_curve25519"
example: {
"@alice:example.com": { "JLAFKJWSCS": "signed_curve25519" }
}
required:
- one_time_keys
responses:
200:
description:
The claimed keys.
schema:
type: object
properties:
failures:
type: object
description: |-
If any remote homeservers could not be reached, they are
recorded here. The names of the properties are the names of
the unreachable servers.
If the homeserver could be reached, but the user or device
was unknown, no failure is recorded. Instead, the corresponding
user or device is missing from the ``one_time_keys`` result.
additionalProperties:
type: object
example: {}
one_time_keys:
type: object
description: |-
One-time keys for the queried devices. A map from user ID, to a
map from devices to a map from ``<algorithm>:<key_id>`` to the key object.
See the `key algorithms <#key-algorithms>`_ section for information
on the Key Object format.
additionalProperties:
type: object
additionalProperties:
type:
- string
- object
# XXX: We can't define an actual object here, so we have to hope
# that people will look at the swagger source or can figure it out
# from the other endpoints/example.
# - type: object
# title: KeyObject
# properties:
# key:
# type: string
# description: The key, encoded using unpadded base64.
# signatures:
# type: object
# description: |-
# Signature for the device. Mapped from user ID to signature object.
# additionalProperties:
# type: string
# required: ['key', 'signatures']
example: {
"@alice:example.com": {
"JLAFKJWSCS": {
"signed_curve25519:AAAAHg": {
"key": "zKbLg+NrIjpnagy+pIY6uPL4ZwEG2v+8F9lmgsnlZzs",
"signatures": {
"@alice:example.com": {
"ed25519:JLAFKJWSCS": "FLWxXqGbwrb8SM3Y795eB6OA8bwBcoMZFXBqnTn58AYWZSqiD45tlBVcDa2L7RwdKXebW/VzDlnfVJ+9jok1Bw"
}
}
}
}
}
}
required: ['one_time_keys']
tags:
- End-to-end encryption
"/keys/changes":
get:
summary: Query users with recent device key updates.
description: |-
Gets a list of users who have updated their device identity keys since a
previous sync token.
The server should include in the results any users who:
* currently share a room with the calling user (ie, both users have
membership state ``join``); *and*
* added new device identity keys or removed an existing device with
identity keys, between ``from`` and ``to``.
operationId: getKeysChanges
security:
- accessToken: []
parameters:
- in: query
name: from
type: string
description: |-
The desired start point of the list. Should be the ``next_batch`` field
from a response to an earlier call to |/sync|. Users who have not
uploaded new device identity keys since this point, nor deleted
existing devices with identity keys since then, will be excluded
from the results.
required: true
x-example: "s72594_4483_1934"
- in: query
name: to
type: string
description: |-
The desired end point of the list. Should be the ``next_batch``
field from a recent call to |/sync| - typically the most recent
such call. This may be used by the server as a hint to check its
caches are up to date.
required: true
x-example: "s75689_5632_2435"
responses:
200:
description:
The list of users who updated their devices.
schema:
type: object
properties:
changed:
type: array
items:
type: string
description: |-
The Matrix User IDs of all users who updated their device
identity keys.
example: ["@alice:example.com", "@bob:example.org"]
left:
type: array
items:
type: string
description: |-
The Matrix User IDs of all users who may have left all
the end-to-end encrypted rooms they previously shared
with the user.
example: ["@clara:example.com", "@doug:example.org"]
tags:
- End-to-end encryption

View file

@ -1,93 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Kicking API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/kick":
post:
summary: Kick a user from the room.
description: |-
Kick a user from the room.
The caller must have the required power level in order to perform this operation.
Kicking a user adjusts the target member's membership state to be ``leave`` with an
optional ``reason``. Like with other membership changes, a user can directly adjust
the target member's state by making a request to ``/rooms/<room id>/state/m.room.member/<user id>``.
operationId: kick
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room identifier (not alias) from which the user should be kicked.
required: true
x-example: "!e42d8c:matrix.org"
- in: body
name: body
required: true
schema:
type: object
example: {
"reason": "Telling unfunny jokes",
"user_id": "@cheeky_monkey:matrix.org"
}
properties:
user_id:
type: string
description: The fully qualified user ID of the user being kicked.
reason:
type: string
description: |-
The reason the user has been kicked. This will be supplied as the
``reason`` on the target's updated `m.room.member`_ event.
required: ["user_id"]
responses:
200:
description: The user has been kicked from the room.
examples:
application/json: {
}
schema:
type: object
403:
description: |-
You do not have permission to kick the user from the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejections are:
- The kicker is not currently in the room.
- The kickee is not currently in the room.
- The kicker's power level is insufficient to kick users from the room.
examples:
application/json: {
"errcode": "M_FORBIDDEN",
"error": "You do not have a high enough power level to kick from this room."
}
schema:
"$ref": "definitions/errors/error.yaml"
tags:
- Room membership

View file

@ -1,58 +0,0 @@
# Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Listing API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/joined_rooms":
get:
summary: Lists the user's current rooms.
description: |-
This API returns a list of the user's current rooms.
operationId: getJoinedRooms
security:
- accessToken: []
responses:
200:
description: A list of the rooms the user is in.
schema:
type: object
required: ["joined_rooms"]
properties:
joined_rooms:
type: array
description: |-
The ID of each room in which the user has ``joined`` membership.
items:
type: string
examples:
application/json: {
"joined_rooms": [
"!foo:example.com"
]
}
tags:
- Room membership

View file

@ -1,314 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Directory API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
paths:
"/directory/list/room/{roomId}":
get:
summary: Gets the visibility of a room in the directory
description: |-
Gets the visibility of a given room on the server's public room directory.
operationId: getRoomVisibilityOnDirectory
parameters:
- in: path
type: string
name: roomId
description: The room ID.
required: true
x-example: "!curbf:matrix.org"
responses:
200:
description: The visibility of the room in the directory
schema:
type: object
properties:
visibility:
type: string
enum: ['private', 'public']
description: The visibility of the room in the directory.
examples:
application/json: {
"visibility": "public"
}
404:
description: The room is not known to the server
examples:
application/json: {
"errcode": "M_NOT_FOUND",
"error": "Room not found"
}
schema:
"$ref": "definitions/errors/error.yaml"
put:
summary: Sets the visibility of a room in the room directory
description: |-
Sets the visibility of a given room in the server's public room
directory.
Servers may choose to implement additional access control checks
here, for instance that room visibility can only be changed by
the room creator or a server administrator.
operationId: setRoomVisibilityOnDirectory
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room ID.
required: true
x-example: "!curbf:matrix.org"
- in: body
name: body
required: true
description: |-
The new visibility for the room on the room directory.
schema:
type: object
properties:
visibility:
type: string
enum: ["private", "public"]
description: |-
The new visibility setting for the room.
Defaults to 'public'.
example: {
"visibility": "public"
}
responses:
200:
description: The visibility was updated, or no change was needed.
examples:
application/json: {}
404:
description: The room is not known to the server
examples:
application/json: {
"errcode": "M_NOT_FOUND",
"error": "Room not found"
}
schema:
"$ref": "definitions/errors/error.yaml"
"/publicRooms":
get:
summary: Lists the public rooms on the server.
description: |-
Lists the public rooms on the server.
This API returns paginated responses. The rooms are ordered by the number
of joined members, with the largest rooms first.
operationId: getPublicRooms
parameters:
- in: query
name: limit
type: integer
description: |-
Limit the number of results returned.
- in: query
name: since
type: string
description: |-
A pagination token from a previous request, allowing clients to
get the next (or previous) batch of rooms.
The direction of pagination is specified solely by which token
is supplied, rather than via an explicit flag.
- in: query
name: server
type: string
description: |-
The server to fetch the public room lists from. Defaults to the
local server.
responses:
200:
description: A list of the rooms on the server.
schema:
$ref: "definitions/public_rooms_response.yaml"
tags:
- Room discovery
post:
summary: Lists the public rooms on the server with optional filter.
description: |-
Lists the public rooms on the server, with optional filter.
This API returns paginated responses. The rooms are ordered by the number
of joined members, with the largest rooms first.
operationId: queryPublicRooms
security:
- accessToken: []
parameters:
- in: query
name: server
type: string
description: |-
The server to fetch the public room lists from. Defaults to the
local server.
- in: body
name: body
required: true
description: |-
Options for which rooms to return.
schema:
type: object
properties:
limit:
type: integer
description: |-
Limit the number of results returned.
since:
type: string
description: |-
A pagination token from a previous request, allowing clients
to get the next (or previous) batch of rooms. The direction
of pagination is specified solely by which token is supplied,
rather than via an explicit flag.
filter:
type: object
title: "Filter"
description: |-
Filter to apply to the results.
properties:
generic_search_term:
type: string
description: |-
A string to search for in the room metadata, e.g. name,
topic, canonical alias etc. (Optional).
include_all_networks:
type: boolean
description: |-
Whether or not to include all known networks/protocols from
application services on the homeserver. Defaults to false.
example: false
third_party_instance_id:
type: string
description: |-
The specific third party network/protocol to request from the
homeserver. Can only be used if ``include_all_networks`` is false.
example: "irc"
example: {
"limit": 10,
"filter": {
"generic_search_term": "foo"
},
"include_all_networks": false,
"third_party_instance_id": "irc"
}
responses:
200:
description: A list of the rooms on the server.
schema:
type: object
description: A list of the rooms on the server.
required: ["chunk"]
properties:
chunk:
title: "PublicRoomsChunks"
type: array
description: |-
A paginated chunk of public rooms.
items:
type: object
title: "PublicRoomsChunk"
required:
- room_id
- num_joined_members
- world_readable
- guest_can_join
properties:
aliases:
type: array
description: |-
Aliases of the room. May be empty.
items:
type: string
canonical_alias:
type: string
description: |-
The canonical alias of the room, if any.
name:
type: string
description: |-
The name of the room, if any.
num_joined_members:
type: integer
description: |-
The number of members joined to the room.
room_id:
type: string
description: |-
The ID of the room.
topic:
type: string
description: |-
The topic of the room, if any.
world_readable:
type: boolean
description: |-
Whether the room may be viewed by guest users without joining.
guest_can_join:
type: boolean
description: |-
Whether guest users may join the room and participate in it.
If they can, they will be subject to ordinary power level
rules like any other user.
avatar_url:
type: string
description: The URL for the room's avatar, if one is set.
next_batch:
type: string
description: |-
A pagination token for the response. The absence of this token
means there are no more results to fetch and the client should
stop paginating.
prev_batch:
type: string
description: |-
A pagination token that allows fetching previous results. The
absence of this token means there are no results before this
batch, i.e. this is the first batch.
total_room_count_estimate:
type: integer
description: |-
An estimate on the total number of public rooms, if the
server has an estimate.
examples:
application/json: {
"chunk": [
{
"aliases": ["#murrays:cheese.bar"],
"avatar_url": "mxc://bleeker.street/CHEDDARandBRIE",
"guest_can_join": false,
"name": "CHEESE",
"num_joined_members": 37,
"room_id": "!ol19s:bleecker.street",
"topic": "Tasty tasty cheese",
"world_readable": true
}
],
"next_batch": "p190q",
"prev_batch": "p1902",
"total_room_count_estimate": 115
}
tags:
- Room discovery

View file

@ -1,211 +0,0 @@
# Copyright 2016 OpenMarket Ltd
# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Registration and Login API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/login":
get:
summary: Get the supported login types to authenticate users
description: |-
Gets the homeserver's supported login types to authenticate users. Clients
should pick one of these and supply it as the ``type`` when logging in.
operationId: getLoginFlows
responses:
200:
description: The login types the homeserver supports
examples:
application/json: {
"flows": [
{"type": "m.login.password"}
]
}
schema:
type: object
properties:
flows:
type: array
description: The homeserver's supported login types
items:
type: object
title: LoginFlow
properties:
type:
description: |-
The login type. This is supplied as the ``type`` when
logging in.
type: string
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Session management
post:
summary: Authenticates the user.
description: |-
Authenticates the user, and issues an access token they can
use to authorize themself in subsequent requests.
If the client does not supply a ``device_id``, the server must
auto-generate one.
The returned access token must be associated with the ``device_id``
supplied by the client or generated by the server. The server may
invalidate any access token previously associated with that device. See
`Relationship between access tokens and devices`_.
operationId: login
parameters:
- in: body
name: body
schema:
type: object
example: {
"type": "m.login.password",
"identifier": {
"type": "m.id.user",
"user": "cheeky_monkey"
},
"password": "ilovebananas",
"initial_device_display_name": "Jungle Phone"
}
properties:
type:
type: string
enum: ["m.login.password", "m.login.token"]
description: The login type being used.
identifier:
description: Identification information for the user.
"$ref": "definitions/user_identifier.yaml"
user:
type: string
description: The fully qualified user ID or just local part of the user ID, to log in. Deprecated in favour of ``identifier``.
medium:
type: string
description: When logging in using a third party identifier, the medium of the identifier. Must be 'email'. Deprecated in favour of ``identifier``.
address:
type: string
description: Third party identifier for the user. Deprecated in favour of ``identifier``.
password:
type: string
description: |-
Required when ``type`` is ``m.login.password``. The user's
password.
token:
type: string
description: |-
Required when ``type`` is ``m.login.token``. Part of `Token-based`_ login.
device_id:
type: string
description: |-
ID of the client device. If this does not correspond to a
known client device, a new device will be created. The server
will auto-generate a device_id if this is not specified.
initial_device_display_name:
type: string
description: |-
A display name to assign to the newly-created device. Ignored
if ``device_id`` corresponds to a known device.
required: ["type"]
responses:
200:
description: The user has been authenticated.
examples:
application/json: {
"user_id": "@cheeky_monkey:matrix.org",
"access_token": "abc123",
"device_id": "GHTYAJCE",
"well_known": {
"m.homeserver": {
"base_url": "https://example.org"
},
"m.identity_server": {
"base_url": "https://id.example.org"
}
}
}
schema:
type: object
properties:
user_id:
type: string
description: The fully-qualified Matrix ID that has been registered.
access_token:
type: string
description: |-
An access token for the account.
This access token can then be used to authorize other requests.
home_server:
type: string
description: |-
The server_name of the homeserver on which the account has
been registered.
**Deprecated**. Clients should extract the server_name from
``user_id`` (by splitting at the first colon) if they require
it. Note also that ``homeserver`` is not spelt this way.
device_id:
type: string
description: |-
ID of the logged-in device. Will be the same as the
corresponding parameter in the request, if one was specified.
well_known:
type: object
description: |-
Optional client configuration provided by the server. If present,
clients SHOULD use the provided object to reconfigure themselves,
optionally validating the URLs within. This object takes the same
form as the one returned from .well-known autodiscovery.
"$ref": "definitions/wellknown/full.yaml"
400:
description: |-
Part of the request was invalid. For example, the login type may not be recognised.
examples:
application/json: {
"errcode": "M_UNKNOWN",
"error": "Bad login type."
}
schema:
"$ref": "definitions/errors/error.yaml"
403:
description: |-
The login attempt failed. This can include one of the following error codes:
* ``M_FORBIDDEN``: The provided authentication data was incorrect.
* ``M_USER_DEACTIVATED``: The user has been deactivated.
examples:
application/json: {
"errcode": "M_FORBIDDEN"
}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Session management

View file

@ -1,72 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Registration and Login API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/logout":
post:
summary: Invalidates a user access token
description: |-
Invalidates an existing access token, so that it can no longer be used for
authorization. The device associated with the access token is also deleted.
`Device keys <#device-keys>`_ for the device are deleted alongside the device.
operationId: logout
security:
- accessToken: []
responses:
200:
description: The access token used in the request was succesfully invalidated.
schema:
type: object
properties: {}
tags:
- Session management
"/logout/all":
post:
summary: Invalidates all access tokens for a user
description: |-
Invalidates all access tokens for a user, so that they can no longer be used for
authorization. This includes the access token that made this request. All devices
for the user are also deleted. `Device keys <#device-keys>`_ for the device are
deleted alongside the device.
This endpoint does not require UI authorization because UI authorization is
designed to protect against attacks where the someone gets hold of a single access
token then takes over the account. This endpoint invalidates all access tokens for
the user, including the token used in the request, and therefore the attacker is
unable to take over the account in this way.
operationId: logout_all
security:
- accessToken: []
responses:
200:
description: The user's access tokens were succesfully invalidated.
schema:
type: object
properties: {}
tags:
- Session management

View file

@ -1,155 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Rooms API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/messages":
get:
summary: Get a list of events for this room
description: |-
This API returns a list of message and state events for a room. It uses
pagination query parameters to paginate history in the room.
*Note*: This endpoint supports lazy-loading of room member events. See
`Lazy-loading room members <#lazy-loading-room-members>`_ for more information.
operationId: getRoomEvents
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to get events from.
required: true
x-example: "!636q39766251:example.com"
- in: query
type: string
name: from
description: |-
The token to start returning events from. This token can be obtained
from a ``prev_batch`` token returned for each room by the sync API,
or from a ``start`` or ``end`` token returned by a previous request
to this endpoint.
required: true
x-example: "s345_678_333"
- in: query
type: string
name: to
description: |-
The token to stop returning events at. This token can be obtained from
a ``prev_batch`` token returned for each room by the sync endpoint,
or from a ``start`` or ``end`` token returned by a previous request to
this endpoint.
required: false
- in: query
type: string
enum: ["b", "f"]
name: dir
description: |-
The direction to return events from.
required: true
x-example: "b"
- in: query
type: integer
name: limit
description: |-
The maximum number of events to return. Default: 10.
x-example: "3"
- in: query
type: string
name: filter
description: |-
A JSON RoomEventFilter to filter returned events with.
x-example: |-
{"contains_url":true}
responses:
200:
description: A list of messages with a new token to request more.
schema:
type: object
description: A list of messages with a new token to request more.
properties:
start:
type: string
description: |-
The token the pagination starts from. If ``dir=b`` this will be
the token supplied in ``from``.
end:
type: string
description: |-
The token the pagination ends at. If ``dir=b`` this token should
be used again to request even earlier events.
chunk:
type: array
description: |-
A list of room events. The order depends on the ``dir`` parameter.
For ``dir=b`` events will be in reverse-chronological order,
for ``dir=f`` in chronological order, so that events start
at the ``from`` point.
items:
type: object
title: RoomEvent
"$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
state:
type: array
description: |-
A list of state events relevant to showing the ``chunk``. For example, if
``lazy_load_members`` is enabled in the filter then this may contain
the membership events for the senders of events in the ``chunk``.
Unless ``include_redundant_members`` is ``true``, the server
may remove membership events which would have already been
sent to the client in prior calls to this endpoint, assuming
the membership of those members has not changed.
items:
type: object
title: RoomStateEvent
$ref: "definitions/event-schemas/schema/core-event-schema/state_event.yaml"
examples:
application/json: {
"start": "t47429-4392820_219380_26003_2265",
"end": "t47409-4357353_219380_26003_2265",
"chunk": [
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.message$m.text"
},
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.name"
},
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.message$m.video"
}
]
}
403:
description: >
You aren't a member of the room.
tags:
- Room participation

View file

@ -1,133 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Notifications API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/notifications":
get:
summary: Gets a list of events that the user has been notified about
description: |-
This API is used to paginate through the list of events that the
user has been, or would have been notified about.
operationId: getNotifications
security:
- accessToken: []
parameters:
- in: query
type: string
name: from
description: Pagination token given to retrieve the next set of events.
required: false
x-example: "xxxxx"
- in: query
type: integer
name: limit
description: Limit on the number of events to return in this request.
required: false
x-example: "20"
- in: query
name: only
type: string
description: |-
Allows basic filtering of events returned. Supply ``highlight``
to return only events where the notification had the highlight
tweak set.
required: false
x-example: "highlight"
responses:
200:
description: A batch of events is being returned
examples:
application/json: {
"next_token": "abcdef",
"notifications": [
{
"actions": [
"notify"
],
"profile_tag": "hcbvkzxhcvb",
"read": true,
"room_id": "!abcdefg:example.com",
"ts": 1475508881945,
"event": {
"$ref": "definitions/event-schemas/examples/m.room.message$m.text"
}
}
]
}
schema:
type: object
required: ["notifications"]
properties:
next_token:
type: string
description: |-
The token to supply in the ``from`` param of the next
``/notifications`` request in order to request more
events. If this is absent, there are no more results.
notifications:
type: array
items:
type: object
required: ["actions", "event", "read", "room_id", "ts"]
title: Notification
properties:
actions:
type: array
description: |-
The action(s) to perform when the conditions for this rule are met.
See `Push Rules: API`_.
items:
type:
- object
- string
event:
type: object
title: Event
description: The Event object for the event that triggered the notification.
allOf:
- "$ref": "definitions/event.yaml"
profile_tag:
type: string
description: The profile tag of the rule that matched this event.
read:
type: boolean
description: |-
Indicates whether the user has sent a read receipt indicating
that they have read this message.
room_id:
type: string
description: The ID of the room in which the event was posted.
ts:
type: integer
description: |-
The unix timestamp at which the event notification was sent,
in milliseconds.
description: The list of events that triggered notifications.
tags:
- Push notifications

View file

@ -1,337 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Sync API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/events":
get:
summary: Listen on the event stream.
description: |-
This will listen for new events and return them to the caller. This will
block until an event is received, or until the ``timeout`` is reached.
This endpoint was deprecated in r0 of this specification. Clients
should instead call the |/sync|_ API with a ``since`` parameter. See
the `migration guide
<https://matrix.org/docs/guides/client-server-migrating-from-v1.html#deprecated-endpoints>`_.
operationId: getEvents
security:
- accessToken: []
parameters:
- in: query
type: string
name: from
description: |-
The token to stream from. This token is either from a previous
request to this API or from the initial sync API.
required: false
x-example: "s3456_9_0"
- in: query
type: integer
name: timeout
description: The maximum time in milliseconds to wait for an event.
required: false
x-example: "35000"
responses:
200:
description: "The events received, which may be none."
examples:
application/json: {
"start": "s3456_9_0",
"end": "s3457_9_0",
"chunk": [
{"$ref": "definitions/event-schemas/examples/m.room.message$m.text"}
]
}
schema:
type: object
properties:
start:
type: string
description: |-
A token which correlates to the first value in ``chunk``. This
is usually the same token supplied to ``from=``.
end:
type: string
description: |-
A token which correlates to the last value in ``chunk``. This
token should be used in the next request to ``/events``.
chunk:
type: array
description: "An array of events."
items:
type: object
title: Event
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
400:
description: "Bad pagination ``from`` parameter."
tags:
- Room participation
deprecated: true
"/initialSync":
get:
summary: Get the user's current state.
description: |-
This returns the full state for this user, with an optional limit on the
number of messages per room to return.
This endpoint was deprecated in r0 of this specification. Clients
should instead call the |/sync|_ API with no ``since`` parameter. See
the `migration guide
<https://matrix.org/docs/guides/client-server-migrating-from-v1.html#deprecated-endpoints>`_.
operationId: initialSync
security:
- accessToken: []
parameters:
- in: query
type: integer
name: limit
description: The maximum number of messages to return for each room.
required: false
x-example: "2"
- in: query
type: boolean
name: archived
description: |-
Whether to include rooms that the user has left. If ``false`` then
only rooms that the user has been invited to or has joined are
included. If set to ``true`` then rooms that the user has left are
included as well. By default this is ``false``.
required: false
x-example: "true"
responses:
200:
description: The user's current state.
examples:
application/json: {
"end": "s3456_9_0",
"presence": [
{"$ref": "definitions/event-schemas/examples/m.presence"}
],
"account_data": [
{
"type": "org.example.custom.config",
"content": {
"custom_config_key": "custom_config_value"
}
}
],
"rooms": [
{
"membership": "join",
"messages": {
"chunk": [
{
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"$ref": "definitions/event-schemas/examples/m.room.message$m.text"
},
{
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"$ref": "definitions/event-schemas/examples/m.room.message$m.video"
}
],
"end": "s3456_9_0",
"start": "t44-3453_9_0"
},
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"state": [
{
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"$ref": "definitions/event-schemas/examples/m.room.join_rules"
},
{
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"$ref": "definitions/event-schemas/examples/m.room.member"
},
{
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"$ref": "definitions/event-schemas/examples/m.room.create"
},
{
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"$ref": "definitions/event-schemas/examples/m.room.power_levels"
}
],
"visibility": "private",
"account_data": [
{
"type": "m.tag",
"content": {"tags": {"work": {"order": 1}}}
},
{
"type": "org.example.custom.room.config",
"content": {
"custom_config_key": "custom_config_value"
}
}
]
}
]
}
schema:
type: object
properties:
end:
type: string
description: |-
A token which correlates to the last value in ``chunk``. This
token should be used with the ``/events`` API to listen for new
events.
presence:
type: array
description: A list of presence events.
items:
type: object
title: Event
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/event.yaml"
rooms:
type: array
items:
type: object
title: RoomInfo
properties:
room_id:
type: string
description: "The ID of this room."
membership:
type: string
description: "The user's membership state in this room."
enum: ["invite", "join", "leave", "ban"]
invite:
type: object
title: "InviteEvent"
description: "The invite event if ``membership`` is ``invite``"
allOf:
- "$ref": "definitions/event-schemas/schema/m.room.member"
messages:
type: object
title: PaginationChunk
description: "The pagination chunk for this room."
properties:
start:
type: string
description: |-
A token which correlates to the first value in ``chunk``.
Used for pagination.
end:
type: string
description: |-
A token which correlates to the last value in ``chunk``.
Used for pagination.
chunk:
type: array
description: |-
If the user is a member of the room this will be a
list of the most recent messages for this room. If
the user has left the room this will be the
messages that preceeded them leaving. This array
will consist of at most ``limit`` elements.
items:
type: object
title: RoomEvent
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
required: ["start", "end", "chunk"]
state:
type: array
description: |-
If the user is a member of the room this will be the
current state of the room as a list of events. If the
user has left the room this will be the state of the
room when they left it.
items:
title: StateEvent
type: object
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/state_event.yaml"
visibility:
type: string
enum: ["private", "public"]
description: |-
Whether this room is visible to the ``/publicRooms`` API
or not."
account_data:
type: array
description: |-
The private data that this user has attached to
this room.
items:
title: Event
type: object
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/event.yaml"
required: ["room_id", "membership"]
account_data:
type: array
description: |-
The global private data created by this user.
items:
title: Event
type: object
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/event.yaml"
required: ["end", "rooms", "presence"]
404:
description: There is no avatar URL for this user or this user does not exist.
tags:
- Room participation
deprecated: true
"/events/{eventId}":
get:
summary: Get a single event by event ID.
description: |-
Get a single event based on ``event_id``. You must have permission to
retrieve this event e.g. by being a member in the room for this event.
This endpoint was deprecated in r0 of this specification. Clients
should instead call the |/rooms/{roomId}/event/{eventId}|_ API
or the |/rooms/{roomId}/context/{eventId}|_ API.
operationId: getOneEvent
security:
- accessToken: []
parameters:
- in: path
type: string
name: eventId
description: The event ID to get.
required: true
x-example: "$asfDuShaf7Gafaw:matrix.org"
responses:
200:
description: The full event.
examples:
application/json: {"$ref": "definitions/event-schemas/examples/m.room.message$m.text"}
schema:
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/event.yaml"
404:
description: The event was not found or you do not have permission to read this event.
tags:
- Room participation
deprecated: true

View file

@ -1,82 +0,0 @@
# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server OpenID API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/user/{userId}/openid/request_token":
post:
summary: Get an OpenID token object to verify the requester's identity.
description: |-
Gets an OpenID token object that the requester may supply to another
service to verify their identity in Matrix. The generated token is only
valid for exchanging for user information from the federation API for
OpenID.
The access token generated is only valid for the OpenID API. It cannot
be used to request another OpenID access token or call ``/sync``, for
example.
operationId: requestOpenIdToken
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
description: |-
The user to request and OpenID token for. Should be the user who
is authenticated for the request.
required: true
x-example: "@alice:example.com"
- in: body
name: body
description: An empty object. Reserved for future expansion.
required: true
schema:
type: object
example: {}
responses:
200:
description: |-
OpenID token information. This response is nearly compatible with the
response documented in the `OpenID 1.0 Specification <http://openid.net/specs/openid-connect-core-1_0.html#TokenResponse>`_
with the only difference being the lack of an ``id_token``. Instead,
the Matrix homeserver's name is provided.
examples:
application/json: {
"access_token": "SomeT0kenHere",
"token_type": "Bearer",
"matrix_server_name": "example.com",
"expires_in": 3600,
}
schema:
$ref: "definitions/openid_token.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- OpenID

View file

@ -1,106 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Sync Guest API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/events":
get:
summary: Listen on the event stream.
description: |-
This will listen for new events related to a particular room and return
them to the caller. This will block until an event is received, or until
the ``timeout`` is reached.
This API is the same as the normal ``/events`` endpoint, but can be
called by users who have not joined the room.
Note that the normal ``/events`` endpoint has been deprecated. This
API will also be deprecated at some point, but its replacement is not
yet known.
operationId: peekEvents
security:
- accessToken: []
parameters:
- in: query
type: string
name: from
description: |-
The token to stream from. This token is either from a previous
request to this API or from the initial sync API.
required: false
x-example: "s3456_9_0"
- in: query
type: integer
name: timeout
description: The maximum time in milliseconds to wait for an event.
required: false
x-example: "35000"
- in: query
type: string
name: room_id
description: |-
The room ID for which events should be returned.
x-example:
- "!somewhere:over.the.rainbow"
responses:
200:
description: "The events received, which may be none."
examples:
application/json: {
"start": "s3456_9_0",
"end": "s3457_9_0",
"chunk": [
{
"room_id": "!somewhere:over.the.rainbow",
"$ref": "definitions/event-schemas/examples/m.room.message$m.text"
}
]
}
schema:
type: object
properties:
start:
type: string
description: |-
A token which correlates to the first value in ``chunk``. This
is usually the same token supplied to ``from=``.
end:
type: string
description: |-
A token which correlates to the last value in ``chunk``. This
token should be used in the next request to ``/events``.
chunk:
type: array
description: "An array of events."
items:
type: object
title: Event
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
400:
description: "Bad pagination ``from`` parameter."
# No tags to exclude this from the swagger UI - use the normal version instead.

View file

@ -1,138 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Presence API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/presence/{userId}/status":
put:
summary: Update this user's presence state.
description: |-
This API sets the given user's presence state. When setting the status,
the activity time is updated to reflect that activity; the client does
not need to specify the ``last_active_ago`` field. You cannot set the
presence state of another user.
operationId: setPresence
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
description: The user whose presence state to update.
required: true
x-example: "@alice:example.com"
- in: body
name: presenceState
description: The updated presence state.
required: true
schema:
type: object
example: {
"presence": "online",
"status_msg": "I am here."
}
properties:
presence:
type: string
enum: ["online", "offline", "unavailable"]
description: The new presence state.
status_msg:
type: string
description: "The status message to attach to this state."
required: ["presence"]
responses:
200:
description: The new presence state was set.
examples:
application/json: {
}
schema:
type: object # empty json object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Presence
get:
summary: Get this user's presence state.
description: |-
Get the given user's presence state.
operationId: getPresence
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
description: The user whose presence state to get.
required: true
x-example: "@alice:example.com"
responses:
200:
description: The presence state for this user.
examples:
application/json: {
"presence": "unavailable",
"last_active_ago": 420845
}
schema:
type: object
properties:
presence:
type: string
enum: ["online", "offline", "unavailable"]
description: This user's presence.
last_active_ago:
type: integer
description: |-
The length of time in milliseconds since an action was performed
by this user.
status_msg:
type: [string, "null"]
description: The state message for this user if one was set.
currently_active:
type: boolean
description: "Whether the user is currently active"
required: ["presence"]
404:
description: |-
There is no presence state for this user. This user may not exist or
isn't exposing presence information to you.
schema:
"$ref": "definitions/errors/error.yaml"
403:
description: You are not allowed to see this user's presence status.
examples:
application/json: {
"errcode": "M_FORBIDDEN",
"error": "You are not allowed to see their presence"
}
schema:
"$ref": "definitions/errors/error.yaml"
tags:
- Presence

View file

@ -1,214 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Profile API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/profile/{userId}/displayname":
put:
summary: Set the user's display name.
description: |-
This API sets the given user's display name. You must have permission to
set this user's display name, e.g. you need to have their ``access_token``.
operationId: setDisplayName
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
description: The user whose display name to set.
required: true
x-example: "@alice:example.com"
- in: body
name: displayName
description: The display name info.
required: true
schema:
type: object
example: {
"displayname": "Alice Margatroid"
}
properties:
displayname:
type: string
description: The new display name for this user.
responses:
200:
description: The display name was set.
examples:
application/json: {
}
schema:
type: object # empty json object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- User data
get:
summary: Get the user's display name.
description: |-
Get the user's display name. This API may be used to fetch the user's
own displayname or to query the name of other users; either locally or
on remote homeservers.
operationId: getDisplayName
parameters:
- in: path
type: string
name: userId
description: The user whose display name to get.
required: true
x-example: "@alice:example.com"
responses:
200:
description: The display name for this user.
examples:
application/json: {
"displayname": "Alice Margatroid"
}
schema:
type: object
properties:
displayname:
type: string
description: The user's display name if they have set one, otherwise not present.
404:
description: There is no display name for this user or this user does not exist.
tags:
- User data
"/profile/{userId}/avatar_url":
put:
summary: Set the user's avatar URL.
description: |-
This API sets the given user's avatar URL. You must have permission to
set this user's avatar URL, e.g. you need to have their ``access_token``.
operationId: setAvatarUrl
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
description: The user whose avatar URL to set.
required: true
x-example: "@alice:example.com"
- in: body
name: avatar_url
description: The avatar url info.
required: true
schema:
type: object
example: {
"avatar_url": "mxc://matrix.org/wefh34uihSDRGhw34"
}
properties:
avatar_url:
type: string
description: The new avatar URL for this user.
responses:
200:
description: The avatar URL was set.
examples:
application/json: {
}
schema:
type: object # empty json object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- User data
get:
summary: Get the user's avatar URL.
description: |-
Get the user's avatar URL. This API may be used to fetch the user's
own avatar URL or to query the URL of other users; either locally or
on remote homeservers.
operationId: getAvatarUrl
parameters:
- in: path
type: string
name: userId
description: The user whose avatar URL to get.
required: true
x-example: "@alice:example.com"
responses:
200:
description: The avatar URL for this user.
examples:
application/json: {
"avatar_url": "mxc://matrix.org/SDGdghriugerRg"
}
schema:
type: object
properties:
avatar_url:
type: string
description: The user's avatar URL if they have set one, otherwise not present.
404:
description: There is no avatar URL for this user or this user does not exist.
tags:
- User data
"/profile/{userId}":
get:
summary: Get this user's profile information.
description: |-
Get the combined profile information for this user. This API may be used
to fetch the user's own profile information or other users; either
locally or on remote homeservers. This API may return keys which are not
limited to ``displayname`` or ``avatar_url``.
operationId: getUserProfile
parameters:
- in: path
type: string
name: userId
description: The user whose profile information to get.
required: true
x-example: "@alice:example.com"
responses:
200:
description: The avatar URL for this user.
examples:
application/json: {
"avatar_url": "mxc://matrix.org/SDGdghriugerRg",
"displayname": "Alice Margatroid"
}
schema:
type: object
properties:
avatar_url:
type: string
description: The user's avatar URL if they have set one, otherwise not present.
displayname:
type: string
description: The user's display name if they have set one, otherwise not present.
404:
description: There is no profile information for this user or this user does not exist.
tags:
- User data

View file

@ -1,268 +0,0 @@
# Copyright 2016 OpenMarket Ltd
# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Push API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/pushers":
get:
summary: Gets the current pushers for the authenticated user
description: |-
Gets all currently active pushers for the authenticated user.
operationId: getPushers
security:
- accessToken: []
responses:
200:
description: The pushers for this user.
examples:
application/json: {
"pushers": [
{
"pushkey": "Xp/MzCt8/9DcSNE9cuiaoT5Ac55job3TdLSSmtmYl4A=",
"kind": "http",
"app_id": "face.mcapp.appy.prod",
"app_display_name": "Appy McAppface",
"device_display_name": "Alice's Phone",
"profile_tag": "xyz",
"lang": "en-US",
"data": {
"url": "https://example.com/_matrix/push/v1/notify"
}
}
]
}
schema:
type: object
properties:
pushers:
type: array
title: Pushers
description: |-
An array containing the current pushers for the user
items:
type: object
title: Pusher
properties:
pushkey:
type: string
description: |-
This is a unique identifier for this pusher. See ``/set`` for
more detail.
Max length, 512 bytes.
kind:
type: string
description: |-
The kind of pusher. ``"http"`` is a pusher that
sends HTTP pokes.
app_id:
type: string
description: |-
This is a reverse-DNS style identifier for the application.
Max length, 64 chars.
app_display_name:
type: string
description: |-
A string that will allow the user to identify what application
owns this pusher.
device_display_name:
type: string
description: |-
A string that will allow the user to identify what device owns
this pusher.
profile_tag:
type: string
description: |-
This string determines which set of device specific rules this
pusher executes.
lang:
type: string
description: |-
The preferred language for receiving notifications (e.g. 'en'
or 'en-US')
data:
type: object
description: |-
A dictionary of information for the pusher implementation
itself.
title: PusherData
properties:
url:
type: string
description: |-
Required if ``kind`` is ``http``. The URL to use to send
notifications to.
format:
type: string
description: |-
The format to use when sending notifications to the Push
Gateway.
required:
- pushkey
- app_id
- kind
- app_display_name
- device_display_name
- lang
- data
tags:
- Push notifications
"/pushers/set":
post:
summary: Modify a pusher for this user on the homeserver.
description: |-
This endpoint allows the creation, modification and deletion of `pushers`_
for this user ID. The behaviour of this endpoint varies depending on the
values in the JSON body.
operationId: postPusher
security:
- accessToken: []
parameters:
- in: body
name: pusher
description: The pusher information.
required: true
schema:
type: object
example: {
"lang": "en",
"kind": "http",
"app_display_name": "Mat Rix",
"device_display_name": "iPhone 9",
"profile_tag": "xxyyzz",
"app_id": "com.example.app.ios",
"pushkey": "APA91bHPRgkF3JUikC4ENAHEeMrd41Zxv3hVZjC9KtT8OvPVGJ-hQMRKRrZuJAEcl7B338qju59zJMjw2DELjzEvxwYv7hH5Ynpc1ODQ0aT4U4OFEeco8ohsN5PjL1iC2dNtk2BAokeMCg2ZXKqpc8FXKmhX94kIxQ",
"data": {
"url": "https://push-gateway.location.here/_matrix/push/v1/notify",
"format": "event_id_only"
},
"append": false
}
properties:
pushkey:
type: string
description: |-
This is a unique identifier for this pusher. The value you
should use for this is the routing or destination address
information for the notification, for example, the APNS token
for APNS or the Registration ID for GCM. If your notification
client has no such concept, use any unique identifier.
Max length, 512 bytes.
If the ``kind`` is ``"email"``, this is the email address to
send notifications to.
kind:
type: string
description: |-
The kind of pusher to configure. ``"http"`` makes a pusher that
sends HTTP pokes. ``"email"`` makes a pusher that emails the
user with unread notifications. ``null`` deletes the pusher.
app_id:
type: string
description: |-
This is a reverse-DNS style identifier for the application.
It is recommended that this end with the platform, such that
different platform versions get different app identifiers.
Max length, 64 chars.
If the ``kind`` is ``"email"``, this is ``"m.email"``.
app_display_name:
type: string
description: |-
A string that will allow the user to identify what application
owns this pusher.
device_display_name:
type: string
description: |-
A string that will allow the user to identify what device owns
this pusher.
profile_tag:
type: string
description: |-
This string determines which set of device specific rules this
pusher executes.
lang:
type: string
description: |-
The preferred language for receiving notifications (e.g. 'en'
or 'en-US').
data:
type: object
description: |-
A dictionary of information for the pusher implementation
itself. If ``kind`` is ``http``, this should contain ``url``
which is the URL to use to send notifications to.
title: PusherData
properties:
url:
type: string
description: |-
Required if ``kind`` is ``http``. The URL to use to send
notifications to. MUST be an HTTPS URL with a path of
``/_matrix/push/v1/notify``.
example: "https://push-gateway.location.here/_matrix/push/v1/notify"
format:
type: string
description: |-
The format to send notifications in to Push Gateways if the
``kind`` is ``http``. The details about what fields the
homeserver should send to the push gateway are defined in the
`Push Gateway Specification`_. Currently the only format
available is 'event_id_only'.
append:
type: boolean
description: |-
If true, the homeserver should add another pusher with the
given pushkey and App ID in addition to any others with
different user IDs. Otherwise, the homeserver must remove any
other pushers with the same App ID and pushkey for different
users. The default is ``false``.
required: ['kind', 'app_id', 'app_display_name',
'device_display_name', 'pushkey', 'lang', 'data']
responses:
200:
description: The pusher was set.
examples:
application/json: {}
schema:
type: object
description: An empty object.
400:
description: One or more of the pusher values were invalid.
examples:
application/json: {
"error": "Missing parameters: lang, data",
"errcode": "M_MISSING_PARAM"
}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Push notifications

View file

@ -1,667 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Push Rules API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/pushrules/":
get:
summary: Retrieve all push rulesets.
description: |-
Retrieve all push rulesets for this user. Clients can "drill-down" on
the rulesets by suffixing a ``scope`` to this path e.g.
``/pushrules/global/``. This will return a subset of this data under the
specified key e.g. the ``global`` key.
operationId: getPushRules
security:
- accessToken: []
responses:
200:
description: All the push rulesets for this user.
schema:
type: object
required: ["global"]
properties:
global:
type: object
description: The global ruleset.
title: Ruleset
allOf: [
"$ref": "definitions/push_ruleset.yaml"
]
examples:
application/json: {
"global": {
"content": [
{
"actions": [
"notify",
{
"set_tweak": "sound",
"value": "default"
},
{
"set_tweak": "highlight"
}
],
"default": true,
"enabled": true,
"pattern": "alice",
"rule_id": ".m.rule.contains_user_name"
}
],
"override": [
{
"actions": [
"dont_notify"
],
"conditions": [],
"default": true,
"enabled": false,
"rule_id": ".m.rule.master"
},
{
"actions": [
"dont_notify"
],
"conditions": [
{
"key": "content.msgtype",
"kind": "event_match",
"pattern": "m.notice"
}
],
"default": true,
"enabled": true,
"rule_id": ".m.rule.suppress_notices"
}
],
"room": [],
"sender": [],
"underride": [
{
"actions": [
"notify",
{
"set_tweak": "sound",
"value": "ring"
},
{
"set_tweak": "highlight",
"value": false
}
],
"conditions": [
{
"key": "type",
"kind": "event_match",
"pattern": "m.call.invite"
}
],
"default": true,
"enabled": true,
"rule_id": ".m.rule.call"
},
{
"actions": [
"notify",
{
"set_tweak": "sound",
"value": "default"
},
{
"set_tweak": "highlight"
}
],
"conditions": [
{
"kind": "contains_display_name"
}
],
"default": true,
"enabled": true,
"rule_id": ".m.rule.contains_display_name"
},
{
"actions": [
"notify",
{
"set_tweak": "sound",
"value": "default"
},
{
"set_tweak": "highlight",
"value": false
}
],
"conditions": [
{
"kind": "room_member_count",
"is": "2"
},
{
"kind": "event_match",
"key": "type",
"pattern": "m.room.message"
}
],
"default": true,
"enabled": true,
"rule_id": ".m.rule.room_one_to_one"
},
{
"actions": [
"notify",
{
"set_tweak": "sound",
"value": "default"
},
{
"set_tweak": "highlight",
"value": false
}
],
"conditions": [
{
"key": "type",
"kind": "event_match",
"pattern": "m.room.member"
},
{
"key": "content.membership",
"kind": "event_match",
"pattern": "invite"
},
{
"key": "state_key",
"kind": "event_match",
"pattern": "@alice:example.com"
}
],
"default": true,
"enabled": true,
"rule_id": ".m.rule.invite_for_me"
},
{
"actions": [
"notify",
{
"set_tweak": "highlight",
"value": false
}
],
"conditions": [
{
"key": "type",
"kind": "event_match",
"pattern": "m.room.member"
}
],
"default": true,
"enabled": true,
"rule_id": ".m.rule.member_event"
},
{
"actions": [
"notify",
{
"set_tweak": "highlight",
"value": false
}
],
"conditions": [
{
"key": "type",
"kind": "event_match",
"pattern": "m.room.message"
}
],
"default": true,
"enabled": true,
"rule_id": ".m.rule.message"
}
]
}
}
tags:
- Push notifications
"/pushrules/{scope}/{kind}/{ruleId}":
get:
summary: Retrieve a push rule.
description: |-
Retrieve a single specified push rule.
operationId: getPushRule
security:
- accessToken: []
parameters:
- in: path
type: string
name: scope
required: true
x-example: "global"
description: |-
``global`` to specify global rules.
- in: path
type: string
name: kind
required: true
x-example: content
enum: ["override", "underride", "sender", "room", "content"]
description: |
The kind of rule
- in: path
type: string
name: ruleId
required: true
x-example: "nocake"
description: |
The identifier for the rule.
responses:
200:
description: |-
The specific push rule. This will also include keys specific to the
rule itself such as the rule's ``actions`` and ``conditions`` if set.
examples:
application/json: {
"actions": [
"dont_notify"
],
"pattern": "cake*lie",
"rule_id": "nocake",
"enabled": true,
"default": false
}
schema:
type: object
description: The push rule.
allOf: [
"$ref": "definitions/push_rule.yaml"
]
tags:
- Push notifications
delete:
summary: Delete a push rule.
description: |-
This endpoint removes the push rule defined in the path.
operationId: deletePushRule
security:
- accessToken: []
parameters:
- in: path
type: string
name: scope
required: true
x-example: "global"
description: |-
``global`` to specify global rules.
- in: path
type: string
name: kind
required: true
x-example: content
enum: ["override", "underride", "sender", "room", "content"]
description: |
The kind of rule
- in: path
type: string
name: ruleId
required: true
x-example: "nocake"
description: |
The identifier for the rule.
responses:
200:
description: The push rule was deleted.
examples:
application/json: {
}
schema:
type: object # empty json object
tags:
- Push notifications
put:
summary: Add or change a push rule.
description: |-
This endpoint allows the creation, modification and deletion of pushers
for this user ID. The behaviour of this endpoint varies depending on the
values in the JSON body.
When creating push rules, they MUST be enabled by default.
operationId: setPushRule
security:
- accessToken: []
parameters:
- in: path
type: string
name: scope
required: true
x-example: "global"
description: |-
``global`` to specify global rules.
- in: path
type: string
name: kind
required: true
x-example: content
enum: ["override", "underride", "sender", "room", "content"]
description: |
The kind of rule
- in: path
type: string
name: ruleId
required: true
x-example: "nocake"
description: |
The identifier for the rule.
- in: query
type: string
name: before
required: false
x-example: someRuleId
description: |-
Use 'before' with a ``rule_id`` as its value to make the new rule the
next-most important rule with respect to the given user defined rule.
It is not possible to add a rule relative to a predefined server rule.
- in: query
type: string
name: after
required: false
x-example: anotherRuleId
description: |-
This makes the new rule the next-less important rule relative to the
given user defined rule. It is not possible to add a rule relative
to a predefined server rule.
- in: body
name: pushrule
description: |-
The push rule data. Additional top-level keys may be present depending
on the parameters for the rule ``kind``.
required: true
schema:
type: object
example: {
"pattern": "cake*lie",
"actions": ["notify"]
}
properties:
actions:
type: array
description: |-
The action(s) to perform when the conditions for this rule are met.
items:
type: string
enum: ["notify", "dont_notify", "coalesce", "set_tweak"]
# TODO: type: object e.g. {"set_sound":"beeroclock.wav"} :/
conditions:
type: array
description: |-
The conditions that must hold true for an event in order for a
rule to be applied to an event. A rule with no conditions
always matches. Only applicable to ``underride`` and ``override`` rules.
items:
type: object
allOf: [ "$ref": "definitions/push_condition.yaml" ]
pattern:
type: string
description: |-
Only applicable to ``content`` rules. The glob-style pattern to match against.
required: ["actions"]
responses:
200:
description: The push rule was created/updated.
examples:
application/json: {
}
schema:
type: object # empty json object
400:
description: There was a problem configuring this push rule.
examples:
application/json: {
"error": "before/after rule not found: someRuleId",
"errcode": "M_UNKNOWN"
}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Push notifications
"/pushrules/{scope}/{kind}/{ruleId}/enabled":
get:
summary: "Get whether a push rule is enabled"
description:
This endpoint gets whether the specified push rule is enabled.
operationId: isPushRuleEnabled
security:
- accessToken: []
parameters:
- in: path
type: string
name: scope
required: true
x-example: "global"
description: |-
Either ``global`` or ``device/<profile_tag>`` to specify global
rules or device rules for the given ``profile_tag``.
- in: path
type: string
name: kind
required: true
x-example: cake
enum: ["override", "underride", "sender", "room", "content"]
description: |
The kind of rule
- in: path
type: string
name: ruleId
required: true
x-example: nocake
description: |
The identifier for the rule.
responses:
200:
description: Whether the push rule is enabled.
examples:
application/json: {
"enabled": true
}
schema:
type: object
properties:
enabled:
type: boolean
description: Whether the push rule is enabled or not.
required: ["enabled"]
tags:
- Push notifications
put:
summary: "Enable or disable a push rule."
description: |-
This endpoint allows clients to enable or disable the specified push rule.
operationId: setPushRuleEnabled
security:
- accessToken: []
parameters:
- in: path
type: string
name: scope
required: true
x-example: "global"
description: |-
``global`` to specify global rules.
- in: path
type: string
name: kind
required: true
x-example: content
enum: ["override", "underride", "sender", "room", "content"]
description: |
The kind of rule
- in: path
type: string
name: ruleId
required: true
x-example: "nocake"
description: |
The identifier for the rule.
- in: body
name: body
description: |
Whether the push rule is enabled or not.
required: true
schema:
type: object
properties:
enabled:
type: boolean
description: Whether the push rule is enabled or not.
required: ["enabled"]
example: {
"enabled": true
}
responses:
200:
description: The push rule was enabled or disabled.
examples:
application/json: {
}
schema:
type: object
tags:
- Push notifications
"/pushrules/{scope}/{kind}/{ruleId}/actions":
get:
summary: "The actions for a push rule"
description:
This endpoint get the actions for the specified push rule.
operationId: getPushRuleActions
security:
- accessToken: []
parameters:
- in: path
type: string
name: scope
required: true
x-example: "global"
description: |-
Either ``global`` or ``device/<profile_tag>`` to specify global
rules or device rules for the given ``profile_tag``.
- in: path
type: string
name: kind
required: true
x-example: content
enum: ["override", "underride", "sender", "room", "content"]
description: |
The kind of rule
- in: path
type: string
name: ruleId
required: true
x-example: nocake
description: |
The identifier for the rule.
responses:
200:
description: The actions for this push rule.
examples:
application/json: {
"actions": ["notify"]
}
schema:
type: object
properties:
actions:
type: array
description: The action(s) to perform for this rule.
items:
type: string
required: ["actions"]
tags:
- Push notifications
put:
summary: "Set the actions for a push rule."
description: |-
This endpoint allows clients to change the actions of a push rule.
This can be used to change the actions of builtin rules.
operationId: setPushRuleActions
security:
- accessToken: []
parameters:
- in: path
type: string
name: scope
required: true
x-example: "global"
description: |-
``global`` to specify global rules.
- in: path
type: string
name: kind
required: true
x-example: room
enum: ["override", "underride", "sender", "room", "content"]
description: |
The kind of rule
- in: path
type: string
name: ruleId
required: true
x-example: "#spam:example.com"
description: |
The identifier for the rule.
- in: body
name: body
description: |
The action(s) to perform when the conditions for this rule are met.
required: true
schema:
type: object
properties:
actions:
type: array
description: The action(s) to perform for this rule.
items:
type: string
enum: ["notify", "dont_notify", "coalesce", "set_tweak"]
# TODO: type: object e.g. {"set_sound":"beeroclock.wav"} :/
required: ["actions"]
example: {
"actions": ["notify"]
}
responses:
200:
description: The actions for the push rule were set.
examples:
application/json: {
}
schema:
type: object
tags:
- Push notifications

View file

@ -1,79 +0,0 @@
# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Read Marker API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/read_markers":
post:
summary: Set the position of the read marker for a room.
description: |-
Sets the position of the read marker for a given room, and optionally
the read receipt's location.
operationId: setReadMarker
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room ID to set the read marker in for the user.
required: true
x-example: "!somewhere:example.org"
- in: body
name: body
description: The read marker and optional read receipt locations.
required: true
schema:
type: object
properties:
"m.fully_read":
type: string
description: |-
The event ID the read marker should be located at. The
event MUST belong to the room.
example: "$somewhere:example.org"
"m.read":
type: string
description: |-
The event ID to set the read receipt location at. This is
equivalent to calling ``/receipt/m.read/$elsewhere:example.org``
and is provided here to save that extra call.
example: "$elsewhere:example.org"
required: ['m.fully_read']
responses:
200:
description: |-
The read marker, and read receipt if provided, have been updated.
schema:
type: object
properties: {}
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Read Markers

View file

@ -1,81 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Receipts API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/receipt/{receiptType}/{eventId}":
post:
summary: Send a receipt for the given event ID.
description: |-
This API updates the marker for the given receipt type to the event ID
specified.
operationId: postReceipt
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room in which to send the event.
required: true
x-example: "!wefuh21ffskfuh345:example.com"
- in: path
type: string
name: receiptType
description: The type of receipt to send.
required: true
x-example: "m.read"
enum: ["m.read"]
- in: path
type: string
name: eventId
description: The event ID to acknowledge up to.
required: true
x-example: "$1924376522eioj:example.com"
- in: body
name: receipt
description: |-
Extra receipt information to attach to ``content`` if any. The
server will automatically set the ``ts`` field.
schema:
type: object
example: {
}
responses:
200:
description: The receipt was sent.
examples:
application/json: {
}
schema:
type: object # empty json object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Room participation

View file

@ -1,92 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server message redaction API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/redact/{eventId}/{txnId}":
put:
summary: Strips all non-integrity-critical information out of an event.
description: |-
Strips all information out of an event which isn't critical to the
integrity of the server-side representation of the room.
This cannot be undone.
Users may redact their own events, and any user with a power level
greater than or equal to the ``redact`` power level of the room may
redact events there.
operationId: redactEvent
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room from which to redact the event.
required: true
x-example: "!637q39766251:example.com"
- in: path
type: string
name: eventId
description: The ID of the event to redact
required: true
x-example: "bai2b1i9:matrix.org"
- in: path
name: txnId
type: string
description: |-
The transaction ID for this event. Clients should generate a
unique ID; it will be used by the server to ensure idempotency of requests.
required: true
x-example: "37"
- in: body
name: body
schema:
type: object
example: {
"reason": "Indecent material"
}
properties:
reason:
type: string
description: The reason for the event being redacted.
responses:
200:
description: "An ID for the redaction event."
examples:
application/json: {
"event_id": "$YUwQidLecu:example.com"
}
schema:
type: object
properties:
event_id:
type: string
description: |-
A unique identifier for the event.
tags:
- Room participation

View file

@ -1,631 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Registration API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
paths:
"/register":
post:
summary: Register for an account on this homeserver.
description: |-
This API endpoint uses the `User-Interactive Authentication API`_, except in
the cases where a guest account is being registered.
Register for an account on this homeserver.
There are two kinds of user account:
- `user` accounts. These accounts may use the full API described in this specification.
- `guest` accounts. These accounts may have limited permissions and may not be supported by all servers.
If registration is successful, this endpoint will issue an access token
the client can use to authorize itself in subsequent requests.
If the client does not supply a ``device_id``, the server must
auto-generate one.
The server SHOULD register an account with a User ID based on the
``username`` provided, if any. Note that the grammar of Matrix User ID
localparts is restricted, so the server MUST either map the provided
``username`` onto a ``user_id`` in a logical manner, or reject
``username``\s which do not comply to the grammar, with
``M_INVALID_USERNAME``.
Matrix clients MUST NOT assume that localpart of the registered
``user_id`` matches the provided ``username``.
The returned access token must be associated with the ``device_id``
supplied by the client or generated by the server. The server may
invalidate any access token previously associated with that device. See
`Relationship between access tokens and devices`_.
When registering a guest account, all parameters in the request body
with the exception of ``initial_device_display_name`` MUST BE ignored
by the server. The server MUST pick a ``device_id`` for the account
regardless of input.
Any user ID returned by this API must conform to the grammar given in the
`Matrix specification <../appendices.html#user-identifiers>`_.
operationId: register
parameters:
- in: query
name: kind
type: string
# swagger-UI overrides the default with the example, so better make the
# example the default.
x-example: user
required: false
default: user
enum:
- guest
- user
description: The kind of account to register. Defaults to ``user``.
- in: body
name: body
schema:
type: object
properties:
auth:
description: |-
Additional authentication information for the
user-interactive authentication API. Note that this
information is *not* used to define how the registered user
should be authenticated, but is instead used to
authenticate the ``register`` call itself.
"$ref": "definitions/auth_data.yaml"
username:
type: string
description: |-
The basis for the localpart of the desired Matrix ID. If omitted,
the homeserver MUST generate a Matrix ID local part.
example: cheeky_monkey
password:
type: string
description: The desired password for the account.
example: ilovebananas
device_id:
type: string
description: |-
ID of the client device. If this does not correspond to a
known client device, a new device will be created. The server
will auto-generate a device_id if this is not specified.
example: GHTYAJCE
initial_device_display_name:
type: string
description: |-
A display name to assign to the newly-created device. Ignored
if ``device_id`` corresponds to a known device.
example: Jungle Phone
inhibit_login:
type: boolean
description: |-
If true, an ``access_token`` and ``device_id`` should not be
returned from this call, therefore preventing an automatic
login. Defaults to false.
example: false
responses:
200:
description: The account has been registered.
examples:
application/json: {
"user_id": "@cheeky_monkey:matrix.org",
"access_token": "abc123",
"device_id": "GHTYAJCE"
}
schema:
type: object
properties:
user_id:
type: string
description: |-
The fully-qualified Matrix user ID (MXID) that has been registered.
Any user ID returned by this API must conform to the grammar given in the
`Matrix specification <../appendices.html#user-identifiers>`_.
access_token:
type: string
description: |-
An access token for the account.
This access token can then be used to authorize other requests.
Required if the ``inhibit_login`` option is false.
home_server:
type: string
description: |-
The server_name of the homeserver on which the account has
been registered.
**Deprecated**. Clients should extract the server_name from
``user_id`` (by splitting at the first colon) if they require
it. Note also that ``homeserver`` is not spelt this way.
device_id:
type: string
description: |-
ID of the registered device. Will be the same as the
corresponding parameter in the request, if one was specified.
Required if the ``inhibit_login`` option is false.
required: ['user_id']
400:
description: |-
Part of the request was invalid. This may include one of the following error codes:
* ``M_USER_IN_USE`` : The desired user ID is already taken.
* ``M_INVALID_USERNAME`` : The desired user ID is not a valid user name.
* ``M_EXCLUSIVE`` : The desired user ID is in the exclusive namespace
claimed by an application service.
These errors may be returned at any stage of the registration process,
including after authentication if the requested user ID was registered
whilst the client was performing authentication.
Homeservers MUST perform the relevant checks and return these codes before
performing User-Interactive Authentication, although they may also return
them after authentication is completed if, for example, the requested user ID
was registered whilst the client was performing authentication.
examples:
application/json: {
"errcode": "M_USER_IN_USE",
"error": "Desired user ID is already taken."
}
schema:
"$ref": "definitions/errors/error.yaml"
401:
description: |-
The homeserver requires additional authentication information.
schema:
"$ref": "definitions/auth_response.yaml"
403:
description: |-
The homeserver does not permit registering the account. This response
can be used to identify that a particular ``kind`` of account is not
allowed, or that registration is generally not supported by the homeserver.
examples:
application/json: {
"errcode": "M_FORBIDDEN",
"error": "Registration is disabled"
}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- User data
"/register/email/requestToken":
post:
summary: Begins the validation process for an email to be used during registration.
description: |-
The homeserver must check that the given email address is **not**
already associated with an account on this homeserver. The homeserver
should validate the email itself, either by sending a validation email
itself or by using a service it has control over.
operationId: requestTokenToRegisterEmail
parameters:
- in: body
name: body
required: true
schema:
$ref: "./definitions/request_email_validation.yaml"
responses:
200:
description: |-
An email has been sent to the specified address. Note that this
may be an email containing the validation token or it may be
informing the user of an error.
schema:
$ref: "definitions/request_token_response.yaml"
403:
description: The homeserver does not permit the address to be bound.
schema:
$ref: "definitions/errors/error.yaml"
examples:
application/json: {
"errcode": "M_THREEPID_DENIED",
"error": "Third party identifier is not allowed"
}
400:
description: |-
Part of the request was invalid. This may include one of the following error codes:
* ``M_THREEPID_IN_USE`` : The email address is already registered to an account on this server.
However, if the homeserver has the ability to send email, it is recommended that the server
instead send an email to the user with instructions on how to reset their password.
This prevents malicious parties from being able to determine if a given email address
has an account on the homeserver in question.
* ``M_SERVER_NOT_TRUSTED`` : The ``id_server`` parameter refers to an identity server
that is not trusted by this homeserver.
examples:
application/json: {
"errcode": "M_THREEPID_IN_USE",
"error": "The specified address is already in use"
}
schema:
"$ref": "definitions/errors/error.yaml"
"/register/msisdn/requestToken":
post:
summary: Requests a validation token be sent to the given phone number for the purpose of registering an account
description: |-
The homeserver must check that the given phone number is **not**
already associated with an account on this homeserver. The homeserver
should validate the phone number itself, either by sending a validation
message itself or by using a service it has control over.
operationId: requestTokenToRegisterMSISDN
parameters:
- in: body
name: body
required: true
schema:
$ref: "./definitions/request_msisdn_validation.yaml"
responses:
200:
description: |-
An SMS message has been sent to the specified phone number. Note
that this may be an SMS message containing the validation token or
it may be informing the user of an error.
schema:
$ref: "definitions/request_token_response.yaml"
403:
description: The homeserver does not permit the address to be bound.
schema:
$ref: "definitions/errors/error.yaml"
examples:
application/json: {
"errcode": "M_THREEPID_DENIED",
"error": "Third party identifier is not allowed"
}
400:
description: |-
Part of the request was invalid. This may include one of the following error codes:
* ``M_THREEPID_IN_USE`` : The phone number is already registered to an account on this server.
However, if the homeserver has the ability to send SMS message, it is recommended that the server
instead send an SMS message to the user with instructions on how to reset their password.
This prevents malicious parties from being able to determine if a given phone number
has an account on the homeserver in question.
* ``M_SERVER_NOT_TRUSTED`` : The ``id_server`` parameter refers to an identity server
that is not trusted by this homeserver.
examples:
application/json: {
"errcode": "M_THREEPID_IN_USE",
"error": "The specified address is already in use"
}
schema:
"$ref": "definitions/errors/error.yaml"
"/account/password":
post:
summary: "Changes a user's password."
description: |-
Changes the password for an account on this homeserver.
This API endpoint uses the `User-Interactive Authentication API`_ to
ensure the user changing the password is actually the owner of the
account.
An access token should be submitted to this endpoint if the client has
an active session.
The homeserver may change the flows available depending on whether a
valid access token is provided. The homeserver SHOULD NOT revoke the
access token provided in the request. Whether other access tokens for
the user are revoked depends on the request parameters.
security:
- accessToken: []
operationId: changePassword
parameters:
- in: body
name: body
schema:
type: object
properties:
new_password:
type: string
description: The new password for the account.
example: "ihatebananas"
logout_devices:
type: boolean
description: |-
Whether the user's other access tokens, and their associated devices, should be
revoked if the request succeeds. Defaults to true.
When ``false``, the server can still take advantage of `the soft logout method <#soft-logout>`_
for the user's remaining devices.
example: true
auth:
description: |-
Additional authentication information for the user-interactive authentication API.
"$ref": "definitions/auth_data.yaml"
required: ["new_password"]
responses:
200:
description: The password has been changed.
examples:
application/json: {}
schema:
type: object
401:
description: |-
The homeserver requires additional authentication information.
schema:
"$ref": "definitions/auth_response.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- User data
"/account/password/email/requestToken":
post:
summary: Requests a validation token be sent to the given email address for the purpose of resetting a user's password
description: |-
The homeserver must check that the given email address **is
associated** with an account on this homeserver. This API should be
used to request validation tokens when authenticating for the
``/account/password`` endpoint.
This API's parameters and response are identical to that of the
|/register/email/requestToken|_ endpoint, except that
``M_THREEPID_NOT_FOUND`` may be returned if no account matching the
given email address could be found. The server may instead send an
email to the given address prompting the user to create an account.
``M_THREEPID_IN_USE`` may not be returned.
The homeserver should validate the email itself, either by sending a
validation email itself or by using a service it has control over.
.. |/register/email/requestToken| replace:: ``/register/email/requestToken``
.. _/register/email/requestToken: #post-matrix-client-%CLIENT_MAJOR_VERSION%-register-email-requesttoken
operationId: requestTokenToResetPasswordEmail
parameters:
- in: body
name: body
required: true
schema:
$ref: "./definitions/request_email_validation.yaml"
responses:
200:
description: An email was sent to the given address.
schema:
$ref: "definitions/request_token_response.yaml"
403:
description: |-
The homeserver does not allow the third party identifier as a
contact option.
schema:
$ref: "definitions/errors/error.yaml"
examples:
application/json: {
"errcode": "M_THREEPID_DENIED",
"error": "Third party identifier is not allowed"
}
400:
description: |-
The referenced third party identifier is not recognised by the
homeserver, or the request was invalid. The error code ``M_SERVER_NOT_TRUSTED``
can be returned if the server does not trust/support the identity server
provided in the request.
schema:
$ref: "definitions/errors/error.yaml"
examples:
application/json: {
"errcode": "M_THREEPID_NOT_FOUND",
"error": "Email not found"
}
"/account/password/msisdn/requestToken":
post:
summary: Requests a validation token be sent to the given phone number for the purpose of resetting a user's password.
description: |-
The homeserver must check that the given phone number **is
associated** with an account on this homeserver. This API should be
used to request validation tokens when authenticating for the
``/account/password`` endpoint.
This API's parameters and response are identical to that of the
|/register/msisdn/requestToken|_ endpoint, except that
``M_THREEPID_NOT_FOUND`` may be returned if no account matching the
given phone number could be found. The server may instead send the SMS
to the given phone number prompting the user to create an account.
``M_THREEPID_IN_USE`` may not be returned.
The homeserver should validate the phone number itself, either by sending a
validation message itself or by using a service it has control over.
.. |/register/msisdn/requestToken| replace:: ``/register/msisdn/requestToken``
.. _/register/msisdn/requestToken: #post-matrix-client-%CLIENT_MAJOR_VERSION%-register-email-requesttoken
operationId: requestTokenToResetPasswordMSISDN
parameters:
- in: body
name: body
required: true
schema:
$ref: "../identity/definitions/request_msisdn_validation.yaml"
responses:
200:
description: An SMS message was sent to the given phone number.
schema:
$ref: "definitions/request_token_response.yaml"
403:
description: |-
The homeserver does not allow the third party identifier as a
contact option.
schema:
$ref: "definitions/errors/error.yaml"
examples:
application/json: {
"errcode": "M_THREEPID_DENIED",
"error": "Third party identifier is not allowed"
}
400:
description: |-
The referenced third party identifier is not recognised by the
homeserver, or the request was invalid. The error code ``M_SERVER_NOT_TRUSTED``
can be returned if the server does not trust/support the identity server
provided in the request.
schema:
$ref: "definitions/errors/error.yaml"
examples:
application/json: {
"errcode": "M_THREEPID_NOT_FOUND",
"error": "Phone number not found"
}
"/account/deactivate":
post:
summary: "Deactivate a user's account."
description: |-
Deactivate the user's account, removing all ability for the user to
login again.
This API endpoint uses the `User-Interactive Authentication API`_.
An access token should be submitted to this endpoint if the client has
an active session.
The homeserver may change the flows available depending on whether a
valid access token is provided.
Unlike other endpoints, this endpoint does not take an ``id_access_token``
parameter because the homeserver is expected to sign the request to the
identity server instead.
security:
- accessToken: []
operationId: deactivateAccount
parameters:
- in: body
name: body
schema:
type: object
properties:
auth:
description: |-
Additional authentication information for the user-interactive authentication API.
"$ref": "definitions/auth_data.yaml"
id_server:
type: string
description: |-
The identity server to unbind all of the user's 3PIDs from.
If not provided, the homeserver MUST use the ``id_server``
that was originally use to bind each identifier. If the
homeserver does not know which ``id_server`` that was,
it must return an ``id_server_unbind_result`` of
``no-support``.
example: "example.org"
responses:
200:
description: The account has been deactivated.
schema:
type: object
properties:
id_server_unbind_result:
type: string
enum:
- "success"
- "no-support"
description: |-
An indicator as to whether or not the homeserver was able to unbind
the user's 3PIDs from the identity server(s). ``success`` indicates
that all identifiers have been unbound from the identity server while
``no-support`` indicates that one or more identifiers failed to unbind
due to the identity server refusing the request or the homeserver
being unable to determine an identity server to unbind from. This
must be ``success`` if the homeserver has no identifiers to unbind
for the user.
example: "success"
required:
- id_server_unbind_result
401:
description: |-
The homeserver requires additional authentication information.
schema:
"$ref": "definitions/auth_response.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- User data
"/register/available":
get:
summary: Checks to see if a username is available on the server.
description: |-
Checks to see if a username is available, and valid, for the server.
The server should check to ensure that, at the time of the request, the
username requested is available for use. This includes verifying that an
application service has not claimed the username and that the username
fits the server's desired requirements (for example, a server could dictate
that it does not permit usernames with underscores).
Matrix clients may wish to use this API prior to attempting registration,
however the clients must also be aware that using this API does not normally
reserve the username. This can mean that the username becomes unavailable
between checking its availability and attempting to register it.
operationId: checkUsernameAvailability
parameters:
- in: query
name: username
type: string
x-example: my_cool_localpart
required: true
default: my_cool_localpart
description: The username to check the availability of.
responses:
200:
description: The username is available
examples:
application/json: {
"available": true
}
schema:
type: object
properties:
available:
type: boolean
description: |-
A flag to indicate that the username is available. This should always
be ``true`` when the server replies with 200 OK.
400:
description: |-
Part of the request was invalid or the username is not available. This may
include one of the following error codes:
* ``M_USER_IN_USE`` : The desired username is already taken.
* ``M_INVALID_USERNAME`` : The desired username is not a valid user name.
* ``M_EXCLUSIVE`` : The desired username is in the exclusive namespace
claimed by an application service.
examples:
application/json: {
"errcode": "M_USER_IN_USE",
"error": "Desired user ID is already taken."
}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- User data

View file

@ -1,78 +0,0 @@
# Copyright 2018 Travis Ralston
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Report Content API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/report/{eventId}":
post:
summary: Reports an event as inappropriate.
description: |-
Reports an event as inappropriate to the server, which may then notify
the appropriate people.
operationId: reportContent
parameters:
- in: path
type: string
name: roomId
description: The room in which the event being reported is located.
required: true
x-example: "!637q39766251:example.com"
- in: path
type: string
name: eventId
description: The event to report.
required: true
x-example: "$something:example.org"
- in: body
name: body
schema:
type: object
example: {
"score": -100,
"reason": "this makes me sad"
}
required: ['score', 'reason']
properties:
score:
type: integer
description: |-
The score to rate this content as where -100 is most offensive
and 0 is inoffensive.
reason:
type: string
description: The reason the content is being reported. May be blank.
security:
- accessToken: []
responses:
200:
description: The event has been reported successfully.
schema:
type: object
examples:
application/json: {}
tags:
- Reporting content

View file

@ -1,156 +0,0 @@
swagger: '2.0'
info:
title: "Matrix Client-Server Rooms API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/initialSync":
get:
summary: Snapshot the current state of a room and its most recent messages.
description: |-
Get a copy of the current state and the most recent messages in a room.
This endpoint was deprecated in r0 of this specification. There is no
direct replacement; the relevant information is returned by the
|/sync|_ API. See the `migration guide
<https://matrix.org/docs/guides/client-server-migrating-from-v1.html#deprecated-endpoints>`_.
operationId: roomInitialSync
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to get the data.
required: true
x-example: "!636q39766251:example.com"
responses:
200:
description: The current state of the room
examples:
application/json: {
"membership": "join",
"messages": {
"chunk": [
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.message$m.text"
},
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.message$m.file"
}
],
"end": "s3456_9_0",
"start": "t44-3453_9_0"
},
"room_id": "!636q39766251:example.com",
"state": [
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.join_rules"
},
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.member"
},
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.create"
},
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.power_levels"
}
],
"visibility": "private",
"account_data": [{
"type": "m.tag",
"content": {"tags": {"work": {"order": "1"}}}
}]
}
schema:
title: RoomInfo
type: object
properties:
room_id:
type: string
description: "The ID of this room."
membership:
type: string
description: "The user's membership state in this room."
enum: ["invite", "join", "leave", "ban"]
messages:
type: object
title: PaginationChunk
description: "The pagination chunk for this room."
properties:
start:
type: string
description: |-
A token which correlates to the first value in ``chunk``.
Used for pagination.
end:
type: string
description: |-
A token which correlates to the last value in ``chunk``.
Used for pagination.
chunk:
type: array
description: |-
If the user is a member of the room this will be a
list of the most recent messages for this room. If
the user has left the room this will be the
messages that preceeded them leaving. This array
will consist of at most ``limit`` elements.
items:
type: object
title: RoomEvent
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
required: ["start", "end", "chunk"]
state:
type: array
description: |-
If the user is a member of the room this will be the
current state of the room as a list of events. If the
user has left the room this will be the state of the
room when they left it.
items:
title: StateEvent
type: object
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/state_event.yaml"
visibility:
type: string
enum: ["private", "public"]
description: |-
Whether this room is visible to the ``/publicRooms`` API
or not."
account_data:
type: array
description: |-
The private data that this user has attached to this room.
items:
title: Event
type: object
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/event.yaml"
required: ["room_id"]
403:
description: >
You aren't a member of the room and weren't previously a
member of the room.
tags:
- Room participation
deprecated: true

View file

@ -1,91 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server message event send API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/send/{eventType}/{txnId}":
put:
summary: Send a message event to the given room.
description: |-
This endpoint is used to send a message event to a room. Message events
allow access to historical events and pagination, making them suited
for "once-off" activity in a room.
The body of the request should be the content object of the event; the
fields in this object will vary depending on the type of event. See
`Room Events`_ for the m. event specification.
operationId: sendMessage
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to send the event to.
required: true
x-example: "!636q39766251:example.com"
- in: path
type: string
name: eventType
description: The type of event to send.
required: true
x-example: "m.room.message"
- in: path
name: txnId
type: string
description: |-
The transaction ID for this event. Clients should generate an
ID unique across requests with the same access token; it will be
used by the server to ensure idempotency of requests.
required: true
x-example: "35"
- in: body
name: body
schema:
type: object
example: {
"msgtype": "m.text",
"body": "hello"
}
responses:
200:
description: "An ID for the sent event."
examples:
application/json: {
"event_id": "$YUwRidLecu:example.com"
}
schema:
type: object
properties:
event_id:
type: string
description: |-
A unique identifier for the event.
required:
- event_id
tags:
- Room participation

View file

@ -1,132 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server state event send API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/state/{eventType}/{stateKey}":
put:
summary: Send a state event to the given room.
description: |
.. For backwards compatibility with older links...
.. _`put-matrix-client-%CLIENT_MAJOR_VERSION%-rooms-roomid-state-eventtype`:
State events can be sent using this endpoint. These events will be
overwritten if ``<room id>``, ``<event type>`` and ``<state key>`` all
match.
Requests to this endpoint **cannot use transaction IDs**
like other ``PUT`` paths because they cannot be differentiated from the
``state_key``. Furthermore, ``POST`` is unsupported on state paths.
The body of the request should be the content object of the event; the
fields in this object will vary depending on the type of event. See
`Room Events`_ for the ``m.`` event specification.
If the event type being sent is ``m.room.canonical_alias`` servers
SHOULD ensure that any new aliases being listed in the event are valid
per their grammar/syntax and that they point to the room ID where the
state event is to be sent. Servers do not validate aliases which are
being removed or are already present in the state event.
operationId: setRoomStateWithKey
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to set the state in
required: true
x-example: "!636q39766251:example.com"
- in: path
type: string
name: eventType
description: The type of event to send.
required: true
x-example: "m.room.member"
- in: path
type: string
name: stateKey
description: |-
The state_key for the state to send. Defaults to the empty string. When
an empty string, the trailing slash on this endpoint is optional.
required: true
x-example: "@alice:example.com"
- in: body
name: body
schema:
type: object
example: {
"membership": "join",
"avatar_url": "mxc://localhost/SEsfnsuifSDFSSEF",
"displayname": "Alice Margatroid"
}
responses:
200:
description: "An ID for the sent event."
examples:
application/json: {
"event_id": "$YUwRidLecu:example.com"
}
schema:
type: object
properties:
event_id:
type: string
description: |-
A unique identifier for the event.
required:
- event_id
403:
description: |-
The sender doesn't have permission to send the event into the room.
schema:
$ref: "definitions/errors/error.yaml"
examples:
application/json: {
"errcode": "M_FORBIDDEN",
"error": "You do not have permission to send the event."
}
400:
description: |-
The sender's request is malformed.
Some example error codes include:
* ``M_INVALID_PARAMETER``: One or more aliases within the ``m.room.canonical_alias``
event have invalid syntax.
* ``M_BAD_ALIAS``: One or more aliases within the ``m.room.canonical_alias`` event
do not point to the room ID for which the state event is to be sent to.
schema:
$ref: "definitions/errors/error.yaml"
examples:
application/json: {
"errcode": "M_BAD_ALIAS",
"error": "The alias '#hello:example.org' does not point to this room."
}
tags:
- Room participation

View file

@ -1,93 +0,0 @@
# Copyright 2019 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Upgrades API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/upgrade":
post:
summary: Upgrades a room to a new room version.
description: |-
Upgrades the given room to a particular room version.
operationId: upgradeRoom
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
required: true
description: The ID of the room to upgrade.
x-example: "!oldroom:example.org"
- in: body
name: body
required: true
description: The request body
schema:
type: object
properties:
new_version:
type: string
description: The new version for the room.
example: {"new_version": "2"}
required: [new_version]
responses:
200:
description: The room was successfully upgraded.
examples:
application/json: {
"replacement_room": "!newroom:example.org"
}
schema:
type: object
properties:
replacement_room:
type: string
description: The ID of the new room.
required: [replacement_room]
400:
description: |-
The request was invalid. One way this can happen is if the room version
requested is not supported by the homeserver.
examples:
application/json: {
"errcode": "M_UNSUPPORTED_ROOM_VERSION",
"error": "This server does not support that room version"
}
schema:
"$ref": "definitions/errors/error.yaml"
403:
description: |-
The user is not permitted to upgrade the room.
examples:
application/json: {
"errcode": "M_FORBIDDEN",
"error": "You cannot upgrade this room"
}
schema:
"$ref": "definitions/errors/error.yaml"
tags:
- Room upgrades

View file

@ -1,314 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Rooms API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/event/{eventId}":
get:
summary: Get a single event by event ID.
description: |-
Get a single event based on ``roomId/eventId``. You must have permission to
retrieve this event e.g. by being a member in the room for this event.
operationId: getOneRoomEvent
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The ID of the room the event is in.
required: true
x-example: "!636q39766251:matrix.org"
- in: path
type: string
name: eventId
description: The event ID to get.
required: true
x-example: "$asfDuShaf7Gafaw:matrix.org"
responses:
200:
description: The full event.
examples:
application/json: {
"room_id": "!636q39766251:matrix.org",
"$ref": "definitions/event-schemas/examples/m.room.message$m.text"
}
schema:
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/event.yaml"
404:
description: The event was not found or you do not have permission to read this event.
examples:
application/json: {
"errcode": "M_NOT_FOUND",
"error": "Event not found."
}
schema:
"$ref": "definitions/errors/error.yaml"
tags:
- Room participation
"/rooms/{roomId}/state/{eventType}/{stateKey}":
get:
summary: Get the state identified by the type and key.
description: |-
.. For backwards compatibility with older links...
.. _`get-matrix-client-%CLIENT_MAJOR_VERSION%-rooms-roomid-state-eventtype`:
Looks up the contents of a state event in a room. If the user is
joined to the room then the state is taken from the current
state of the room. If the user has left the room then the state is
taken from the state of the room when they left.
operationId: getRoomStateWithKey
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to look up the state in.
required: true
x-example: "!636q39766251:example.com"
- in: path
type: string
name: eventType
description: The type of state to look up.
required: true
x-example: "m.room.name"
- in: path
type: string
name: stateKey
description: |-
The key of the state to look up. Defaults to an empty string. When
an empty string, the trailing slash on this endpoint is optional.
required: true
x-example: ""
responses:
200:
description: The content of the state event.
examples:
application/json: {
"name": "Example room name"}
schema:
type: object
404:
description: The room has no state with the given type or key.
403:
description: >
You aren't a member of the room and weren't previously a
member of the room.
tags:
- Room participation
"/rooms/{roomId}/state":
get:
summary: Get all state events in the current state of a room.
description: |-
Get the state events for the current state of a room.
operationId: getRoomState
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to look up the state for.
required: true
x-example: "!636q39766251:example.com"
responses:
200:
description: The current state of the room
examples:
application/json: [
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.join_rules"
},
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.member"
},
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.create"
},
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.power_levels"
}
]
schema:
type: array
title: RoomState
description: |-
If the user is a member of the room this will be the
current state of the room as a list of events. If the user
has left the room then this will be the state of the room
when they left as a list of events.
items:
title: StateEvent
type: object
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/state_event.yaml"
403:
description: >
You aren't a member of the room and weren't previously a
member of the room.
tags:
- Room participation
"/rooms/{roomId}/members":
get:
summary: Get the m.room.member events for the room.
description:
Get the list of members for this room.
operationId: getMembersByRoom
parameters:
- in: path
type: string
name: roomId
description: The room to get the member events for.
required: true
x-example: "!636q39766251:example.com"
- in: query
name: at
type: string
description: |-
The point in time (pagination token) to return members for in the room.
This token can be obtained from a ``prev_batch`` token returned for
each room by the sync API. Defaults to the current state of the room,
as determined by the server.
x-example: "YWxsCgpOb25lLDM1ODcwOA"
# XXX: As mentioned in MSC1227, replacing `[not_]membership` with a JSON
# filter might be a better alternative.
# See https://github.com/matrix-org/matrix-doc/issues/1337
- in: query
name: membership
type: string
enum:
- join
- invite
- leave
- ban
description: |-
The kind of membership to filter for. Defaults to no filtering if
unspecified. When specified alongside ``not_membership``, the two
parameters create an 'or' condition: either the membership *is*
the same as ``membership`` **or** *is not* the same as ``not_membership``.
x-example: "join"
- in: query
name: not_membership
type: string
enum:
- join
- invite
- leave
- ban
description: |-
The kind of membership to exclude from the results. Defaults to no
filtering if unspecified.
x-example: leave
security:
- accessToken: []
responses:
200:
description: |-
A list of members of the room. If you are joined to the room then
this will be the current members of the room. If you have left the
room then this will be the members of the room when you left.
examples:
application/json: {
"chunk": [
{
"room_id": "!636q39766251:example.com",
"$ref": "definitions/event-schemas/examples/m.room.member"
}
]
}
schema:
type: object
properties:
chunk:
type: array
items:
title: MemberEvent
type: object
allOf:
- "$ref": "definitions/event-schemas/schema/m.room.member"
403:
description: >
You aren't a member of the room and weren't previously a
member of the room.
tags:
- Room participation
"/rooms/{roomId}/joined_members":
get:
summary: Gets the list of currently joined users and their profile data.
description:
This API returns a map of MXIDs to member info objects for members of the room. The current user must be in the room for it to work, unless it is an Application Service in which case any of the AS's users must be in the room.
This API is primarily for Application Services and should be faster to respond than ``/members`` as it can be implemented more efficiently on the server.
operationId: getJoinedMembersByRoom
parameters:
- in: path
type: string
name: roomId
description: The room to get the members of.
required: true
x-example: "!636q39766251:example.com"
security:
- accessToken: []
responses:
200:
description: |-
A map of MXID to room member objects.
examples:
application/json: {
"joined": {
"@bar:example.com": {
"display_name": "Bar",
"avatar_url": "mxc://riot.ovh/printErCATzZijQsSDWorRaK"
}
}
}
schema:
type: object
properties:
joined:
additionalProperties:
title: RoomMember
type: object
properties:
display_name:
type: string
description: The display name of the user this object is representing.
avatar_url:
type: string
description: The mxc avatar url of the user this object is representing.
description: A map from user ID to a RoomMember object.
type: object
403:
description: >
You aren't a member of the room.
tags:
- Room participation

View file

@ -1,366 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Search API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/search":
post:
summary: Perform a server-side search.
description: |-
Performs a full text search across different categories.
operationId: search
security:
- accessToken: []
parameters:
- in: query
name: next_batch
type: string
description: |-
The point to return events from. If given, this should be a
``next_batch`` result from a previous call to this endpoint.
x-example: "YWxsCgpOb25lLDM1ODcwOA"
- in: body
name: body
schema:
type: object
example: {
"search_categories": {
"room_events": {
"keys": [
"content.body"
],
"search_term": "martians and men",
"order_by": "recent",
"groupings": {
"group_by": [
{
"key": "room_id"
}
]
}
}
}
}
properties:
search_categories:
type: object
title: "Categories"
description: Describes which categories to search in and
their criteria.
properties:
room_events:
type: object
title: Room Events Criteria
description: Mapping of category name to search criteria.
properties:
search_term:
type: string
description: The string to search events for
keys:
type: array
items:
type: string
enum: ["content.body", "content.name", "content.topic"]
description: The keys to search. Defaults to all.
filter:
type: object
title: Filter
# Within the C-S spec document, `filter`_ is picked up
# as a link to the filtering section. In OpenAPI 3.0,
# we could use the link feature, but we're still on 2.0
# for now :/
description: |-
This takes a `filter`_.
$ref: "definitions/room_event_filter.yaml"
order_by:
title: "Ordering"
type: string
enum: ["recent", "rank"]
description: |-
The order in which to search for results.
By default, this is ``"rank"``.
event_context:
title: Include Event Context
type: object
description: |-
Configures whether any context for the events
returned are included in the response.
properties:
before_limit:
type: integer
title: "Before limit"
description: |-
How many events before the result are
returned. By default, this is ``5``.
after_limit:
type: integer
title: "After limit"
description: |-
How many events after the result are
returned. By default, this is ``5``.
include_profile:
type: boolean
title: "Return profile information"
description: |-
Requests that the server returns the
historic profile information for the users
that sent the events that were returned.
By default, this is ``false``.
include_state:
type: boolean
title: Include current state
description: |-
Requests the server return the current state for
each room returned.
groupings:
type: object
title: Groupings
description: |-
Requests that the server partitions the result set
based on the provided list of keys.
properties:
group_by:
type: array
title: Groups
description: List of groups to request.
items:
type: object
title: Group
description: Configuration for group.
properties:
key:
type: string
title: Group Key
description: |-
Key that defines the group.
enum: ["room_id", "sender"]
required: ["search_term"]
required: ["search_categories"]
responses:
200:
description: Results of the search.
schema:
type: object
title: Results
required: ["search_categories"]
properties:
search_categories:
type: object
title: Result Categories
description: Describes which categories to search in and
their criteria.
properties:
room_events:
type: object
title: Result Room Events
description: Mapping of category name to search criteria.
properties:
count:
type: integer
description: An approximate count of the total number of results found.
highlights:
type: array
title: Highlights
description: List of words which should be highlighted, useful for stemming which may change the query terms.
items:
type: string
results:
type: array
title: Results
description: List of results in the requested order.
items:
type: object
title: Result
description: The result object.
properties:
rank:
type: number
description: A number that describes how closely
this result matches the search. Higher is
closer.
result:
type: object
title: Event
description: The event that matched.
"$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
context:
type: object
title: Event Context
description: Context for result, if requested.
properties:
start:
type: string
title: Start Token
description: |-
Pagination token for the start of the chunk
end:
type: string
title: End Token
description: |-
Pagination token for the end of the chunk
profile_info:
type: object
title: Profile Information
description: |-
The historic profile information of the
users that sent the events returned.
The ``string`` key is the user ID for which
the profile belongs to.
additionalProperties:
type: object
title: User Profile
properties:
displayname:
type: string
title: Display name
avatar_url:
type: string
title: Avatar Url
events_before:
type: array
title: Events Before
description: Events just before the result.
items:
title: Event
type: object
"$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
events_after:
type: array
title: Events After
description: Events just after the result.
items:
title: Event
type: object
"$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
state:
type: object
title: Current state
description: |-
The current state for every room in the results.
This is included if the request had the
``include_state`` key set with a value of ``true``.
The ``string`` key is the room ID for which the ``State
Event`` array belongs to.
additionalProperties:
type: array
title: Room State
items:
type: object
"$ref": "definitions/event-schemas/schema/core-event-schema/state_event.yaml"
groups:
type: object
title: Groups
description: |-
Any groups that were requested.
The outer ``string`` key is the group key requested (eg: ``room_id``
or ``sender``). The inner ``string`` key is the grouped value (eg:
a room's ID or a user's ID).
additionalProperties:
type: object
title: Group Key
description: The results for a given group.
additionalProperties:
type: object
title: Group Value
description: |-
The results for a particular group value.
properties:
next_batch:
type: string
title: Next Batch in Group
description: |-
Token that can be used to get the next batch
of results in the group, by passing as the
`next_batch` parameter to the next call. If
this field is absent, there are no more
results in this group.
order:
type: integer
title: Group Order
description: |-
Key that can be used to order different
groups.
results:
type: array
description: |-
Which results are in this group.
items:
type: string
title: Result Event ID
next_batch:
type: string
title: Next Batch
description: |-
Token that can be used to get the next batch of
results, by passing as the `next_batch` parameter to
the next call. If this field is absent, there are no
more results.
examples:
application/json: {
"search_categories": {
"room_events": {
"groups": {
"room_id": {
"!qPewotXpIctQySfjSy:localhost": {
"order": 1,
"next_batch": "BdgFsdfHSf-dsFD",
"results": [
"$144429830826TWwbB:localhost"
]
}
}
},
"highlights": [
"martians",
"men"
],
"next_batch": "5FdgFsd234dfgsdfFD",
"count": 1224,
"results": [
{
"rank": 0.00424866,
"result": {
"room_id": "!qPewotXpIctQySfjSy:localhost",
"event_id": "$144429830826TWwbB:localhost",
"$ref": "definitions/event-schemas/examples/m.room.message$m.text"
}
}
]
}
}
}
400:
description: Part of the request was invalid.
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Search

View file

@ -1,46 +0,0 @@
# Copyright 2019 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server SSO Login API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
paths:
"/login/sso/redirect":
get:
summary: Redirect the user's browser to the SSO interface.
description: |-
A web-based Matrix client should instruct the user's browser to
navigate to this endpoint in order to log in via SSO.
The server MUST respond with an HTTP redirect to the SSO interface.
operationId: redirectToSSO
parameters:
- in: query
type: string
name: redirectUrl
description: |-
URI to which the user will be redirected after the homeserver has
authenticated the user with SSO.
required: true
responses:
302:
description: A redirect to the SSO interface.
headers:
Location:
type: "string"

View file

@ -1,443 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server sync API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/sync":
get:
summary: Synchronise the client's state and receive new messages.
description: |-
Synchronise the client's state with the latest state on the server.
Clients use this API when they first log in to get an initial snapshot
of the state on the server, and then continue to call this API to get
incremental deltas to the state, and to receive new messages.
*Note*: This endpoint supports lazy-loading. See `Filtering <#filtering>`_
for more information. Lazy-loading members is only supported on a ``StateFilter``
for this endpoint. When lazy-loading is enabled, servers MUST include the
syncing user's own membership event when they join a room, or when the
full state of rooms is requested, to aid discovering the user's avatar &
displayname.
Like other members, the user's own membership event is eligible
for being considered redundant by the server. When a sync is ``limited``,
the server MUST return membership events for events in the gap
(between ``since`` and the start of the returned timeline), regardless
as to whether or not they are redundant. This ensures that joins/leaves
and profile changes which occur during the gap are not lost.
operationId: sync
security:
- accessToken: []
parameters:
- in: query
name: filter
type: string
description: |-
The ID of a filter created using the filter API or a filter JSON
object encoded as a string. The server will detect whether it is
an ID or a JSON object by whether the first character is a ``"{"``
open brace. Passing the JSON inline is best suited to one off
requests. Creating a filter using the filter API is recommended for
clients that reuse the same filter multiple times, for example in
long poll requests.
See `Filtering <#filtering>`_ for more information.
x-example: "66696p746572"
- in: query
name: since
type: string
description: |-
A point in time to continue a sync from.
x-example: "s72594_4483_1934"
- in: query
name: full_state
type: boolean
description: |-
Controls whether to include the full state for all rooms the user
is a member of.
If this is set to ``true``, then all state events will be returned,
even if ``since`` is non-empty. The timeline will still be limited
by the ``since`` parameter. In this case, the ``timeout`` parameter
will be ignored and the query will return immediately, possibly with
an empty timeline.
If ``false``, and ``since`` is non-empty, only state which has
changed since the point indicated by ``since`` will be returned.
By default, this is ``false``.
x-example: "false"
- in: query
name: set_presence
type: string
enum: ["offline", "online", "unavailable"]
description: |-
Controls whether the client is automatically marked as online by
polling this API. If this parameter is omitted then the client is
automatically marked as online when it uses this API. Otherwise if
the parameter is set to "offline" then the client is not marked as
being online when it uses this API. When set to "unavailable", the
client is marked as being idle.
x-example: "offline"
- in: query
name: timeout
type: integer
description: |-
The maximum time to wait, in milliseconds, before returning this
request. If no events (or other data) become available before this
time elapses, the server will return a response with empty fields.
By default, this is ``0``, so the server will return immediately
even if the response is empty.
x-example: 30000
responses:
200:
description:
The initial snapshot or delta for the client to use to update their
state.
schema:
type: object
properties:
next_batch:
type: string
description: |-
The batch token to supply in the ``since`` param of the next
``/sync`` request.
rooms:
title: Rooms
type: object
description: |-
Updates to rooms.
properties:
join:
title: Joined Rooms
type: object
description: |-
The rooms that the user has joined, mapped as room ID to
room information.
additionalProperties:
title: Joined Room
type: object
properties:
summary:
title: RoomSummary
type: object
description: |-
Information about the room which clients may need to
correctly render it to users.
properties:
"m.heroes":
type: array
description: |-
The users which can be used to generate a room name
if the room does not have one. Required if the room's
``m.room.name`` or ``m.room.canonical_alias`` state events
are unset or empty.
This should be the first 5 members of the room, ordered
by stream ordering, which are joined or invited. The
list must never include the client's own user ID. When
no joined or invited members are available, this should
consist of the banned and left users. More than 5 members
may be provided, however less than 5 should only be provided
when there are less than 5 members to represent.
When lazy-loading room members is enabled, the membership
events for the heroes MUST be included in the ``state``,
unless they are redundant. When the list of users changes,
the server notifies the client by sending a fresh list of
heroes. If there are no changes since the last sync, this
field may be omitted.
items:
type: string
"m.joined_member_count":
type: integer
description: |-
The number of users with ``membership`` of ``join``,
including the client's own user ID. If this field has
not changed since the last sync, it may be omitted.
Required otherwise.
"m.invited_member_count":
type: integer
description: |-
The number of users with ``membership`` of ``invite``.
If this field has not changed since the last sync, it
may be omitted. Required otherwise.
state:
title: State
type: object
description: |-
Updates to the state, between the time indicated by
the ``since`` parameter, and the start of the
``timeline`` (or all state up to the start of the
``timeline``, if ``since`` is not given, or
``full_state`` is true).
N.B. state updates for ``m.room.member`` events will
be incomplete if ``lazy_load_members`` is enabled in
the ``/sync`` filter, and only return the member events
required to display the senders of the timeline events
in this response.
allOf:
- $ref: "definitions/state_event_batch.yaml"
timeline:
title: Timeline
type: object
description: |-
The timeline of messages and state changes in the
room.
allOf:
- $ref: "definitions/timeline_batch.yaml"
ephemeral:
title: Ephemeral
type: object
description: |-
The ephemeral events in the room that aren't
recorded in the timeline or state of the room.
e.g. typing.
allOf:
- $ref: "definitions/event_batch.yaml"
account_data:
title: Account Data
type: object
description: |-
The private data that this user has attached to
this room.
allOf:
- $ref: "definitions/event_batch.yaml"
unread_notifications:
title: Unread Notification Counts
type: object
description: |-
Counts of unread notifications for this room. See the
`Receiving notifications section <#receiving-notifications>`_
for more information on how these are calculated.
properties:
highlight_count:
title: Highlighted notification count
type: integer
description: The number of unread notifications
for this room with the highlight flag set
notification_count:
title: Total notification count
type: integer
description: The total number of unread notifications
for this room
invite:
title: Invited Rooms
type: object
description: |-
The rooms that the user has been invited to, mapped as room ID to
room information.
additionalProperties:
title: Invited Room
type: object
properties:
invite_state:
title: InviteState
type: object
description: |-
The state of a room that the user has been invited
to. These state events may only have the ``sender``,
``type``, ``state_key`` and ``content`` keys
present. These events do not replace any state that
the client already has for the room, for example if
the client has archived the room. Instead the
client should keep two separate copies of the
state: the one from the ``invite_state`` and one
from the archived ``state``. If the client joins
the room then the current state will be given as a
delta against the archived ``state`` not the
``invite_state``.
properties:
events:
description: The StrippedState events that form the invite state.
items:
$ref: "definitions/event-schemas/schema/stripped_state.yaml"
type: array
leave:
title: Left rooms
type: object
description: |-
The rooms that the user has left or been banned from, mapped as room ID to
room information.
additionalProperties:
title: Left Room
type: object
properties:
state:
title: State
type: object
description: |-
The state updates for the room up to the start of the timeline.
allOf:
- $ref: "definitions/state_event_batch.yaml"
timeline:
title: Timeline
type: object
description: |-
The timeline of messages and state changes in the
room up to the point when the user left.
allOf:
- $ref: "definitions/timeline_batch.yaml"
account_data:
title: Account Data
type: object
description: |-
The private data that this user has attached to
this room.
allOf:
- $ref: "definitions/event_batch.yaml"
presence:
title: Presence
type: object
description: |-
The updates to the presence status of other users.
allOf:
- $ref: "definitions/event_batch.yaml"
account_data:
title: Account Data
type: object
description: |-
The global private data created by this user.
allOf:
- $ref: "definitions/event_batch.yaml"
to_device:
title: ToDevice
type: object
description: |-
Information on the send-to-device messages for the client
device, as defined in |send_to_device_sync|_.
device_lists:
title: DeviceLists
type: object
description: |-
Information on end-to-end device updates, as specified in
|device_lists_sync|_.
device_one_time_keys_count:
title: One-time keys count
type: object
additionalProperties:
type: integer
description: |-
Information on end-to-end encryption keys, as specified
in |device_lists_sync|_.
required:
- next_batch
examples:
application/json: {
"next_batch": "s72595_4483_1934",
"presence": {
"events": [
{"$ref": "definitions/event-schemas/examples/m.presence"}
]
},
"account_data": {
"events": [
{
"type": "org.example.custom.config",
"content": {
"custom_config_key": "custom_config_value"
}
}
]
},
"rooms": {
"join": {
"!726s6s6q:example.com": {
"summary": {
"m.heroes": [
"@alice:example.com",
"@bob:example.com"
],
"m.joined_member_count": 2,
"m.invited_member_count": 0
},
"state": {
"events": [
{
"room_id": "!726s6s6q:example.com",
"$ref": "definitions/event-schemas/examples/m.room.member"
}
]
},
"timeline": {
"events": [
{
"room_id": "!726s6s6q:example.com",
"$ref": "definitions/event-schemas/examples/m.room.member"
},
{
"room_id": "!726s6s6q:example.com",
"$ref": "definitions/event-schemas/examples/m.room.message$m.text"
}
],
"limited": true,
"prev_batch": "t34-23535_0_0"
},
"ephemeral": {
"events": [
{"$ref": "definitions/event-schemas/examples/m.typing"}
]
},
"account_data": {
"events": [
{"$ref": "definitions/event-schemas/examples/m.tag"},
{
"type": "org.example.custom.room.config",
"content": {
"custom_config_key": "custom_config_value"
}
}
]
}
}
},
"invite": {
"!696r7674:example.com": {
"invite_state": {
"events": [
{
"sender": "@alice:example.com",
"type": "m.room.name",
"state_key": "",
"content": {"name": "My Room Name"}
},
{
"sender": "@alice:example.com",
"type": "m.room.member",
"state_key": "@bob:example.com",
"content": {"membership": "invite"}
}
]
}
}
},
"leave": {}
}
}
tags:
- Room participation

View file

@ -1,183 +0,0 @@
# Copyright 2016 OpenMarket Ltd
# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server tag API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/user/{userId}/rooms/{roomId}/tags":
get:
summary: List the tags for a room.
description: |-
List the tags set by a user on a room.
operationId: getRoomTags
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
required: true
description: |-
The id of the user to get tags for. The access token must be
authorized to make requests for this user ID.
x-example: "@alice:example.com"
- in: path
type: string
name: roomId
required: true
description: |-
The ID of the room to get tags for.
x-example: "!726s6s6q:example.com"
responses:
200:
description:
The list of tags for the user for the room.
schema:
type: object
properties:
tags:
type: object
additionalProperties:
title: Tag
type: object
properties:
order:
type: number
format: float
description: |-
A number in a range ``[0,1]`` describing a relative
position of the room under the given tag.
additionalProperties: true
examples:
application/json: {
"tags": {
"m.favourite": {"order": 0.1},
"u.Work": {"order": 0.7},
"u.Customers": {}
}
}
tags:
- User data
"/user/{userId}/rooms/{roomId}/tags/{tag}":
put:
summary: Add a tag to a room.
description: |-
Add a tag to the room.
operationId: setRoomTag
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
required: true
description: |-
The id of the user to add a tag for. The access token must be
authorized to make requests for this user ID.
x-example: "@alice:example.com"
- in: path
type: string
name: roomId
required: true
description: |-
The ID of the room to add a tag to.
x-example: "!726s6s6q:example.com"
- in: path
type: string
name: tag
required: true
description: |-
The tag to add.
x-example: "u.work"
- in: body
name: body
required: true
description: |-
Extra data for the tag, e.g. ordering.
schema:
type: object
properties:
order:
type: number
format: float
description: |-
A number in a range ``[0,1]`` describing a relative
position of the room under the given tag.
additionalProperties: true
example: {
"order": 0.25
}
responses:
200:
description:
The tag was successfully added.
schema:
type: object
examples:
application/json: {}
tags:
- User data
delete:
summary: Remove a tag from the room.
description: |-
Remove a tag from the room.
operationId: deleteRoomTag
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
required: true
description: |-
The id of the user to remove a tag for. The access token must be
authorized to make requests for this user ID.
x-example: "@alice:example.com"
- in: path
type: string
name: roomId
required: true
description: |-
The ID of the room to remove a tag from.
x-example: "!726s6s6q:example.com"
- in: path
type: string
name: tag
required: true
description: |-
The tag to remove.
x-example: "u.work"
responses:
200:
description:
The tag was successfully removed.
schema:
type: object
examples:
application/json: {}
tags:
- User data

View file

@ -1,208 +0,0 @@
# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Third Party Lookup API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/thirdparty/protocols":
get:
summary: Retrieve metadata about all protocols that a homeserver supports.
description: |-
Fetches the overall metadata about protocols supported by the
homeserver. Includes both the available protocols and all fields
required for queries against each protocol.
operationId: getProtocols
security:
- accessToken: []
responses:
200:
description: The protocols supported by the homeserver.
schema:
$ref: ../application-service/definitions/protocol_metadata.yaml
"/thirdparty/protocol/{protocol}":
get:
summary: Retrieve metadata about a specific protocol that the homeserver supports.
description: |-
Fetches the metadata from the homeserver about a particular third party protocol.
operationId: getProtocolMetadata
security:
- accessToken: []
parameters:
- in: path
name: protocol
type: string
description: |-
The name of the protocol.
required: true
x-example: "irc"
responses:
200:
description: The protocol was found and metadata returned.
schema:
$ref: ../application-service/definitions/protocol.yaml
404:
description: The protocol is unknown.
examples:
application/json: {
"errcode": "M_NOT_FOUND"
}
schema:
$ref: definitions/errors/error.yaml
"/thirdparty/location/{protocol}":
get:
summary: Retrieve Matrix-side portals rooms leading to a third party location.
description: |-
Requesting this endpoint with a valid protocol name results in a list
of successful mapping results in a JSON array. Each result contains
objects to represent the Matrix room or rooms that represent a portal
to this third party network. Each has the Matrix room alias string,
an identifier for the particular third party network protocol, and an
object containing the network-specific fields that comprise this
identifier. It should attempt to canonicalise the identifier as much
as reasonably possible given the network type.
operationId: queryLocationByProtocol
security:
- accessToken: []
parameters:
- in: path
name: protocol
type: string
description: The protocol used to communicate to the third party network.
required: true
x-example: irc
- in: query
name: searchFields
type: string
description: |-
One or more custom fields to help identify the third party
location.
responses:
200:
description: At least one portal room was found.
schema:
$ref: ../application-service/definitions/location_batch.yaml
404:
description: No portal rooms were found.
examples:
application/json: {
"errcode": "M_NOT_FOUND"
}
schema:
$ref: definitions/errors/error.yaml
"/thirdparty/user/{protocol}":
get:
summary: Retrieve the Matrix User ID of a corresponding third party user.
description: |-
Retrieve a Matrix User ID linked to a user on the third party service, given
a set of user parameters.
operationId: queryUserByProtocol
security:
- accessToken: []
parameters:
- in: path
name: protocol
type: string
description: |-
The name of the protocol.
required: true
x-example: irc
- in: query
name: fields...
type: string
description: |-
One or more custom fields that are passed to the AS to help identify the user.
responses:
200:
description: The Matrix User IDs found with the given parameters.
schema:
$ref: ../application-service/definitions/user_batch.yaml
404:
description: The Matrix User ID was not found
examples:
application/json: {
"errcode": "M_NOT_FOUND"
}
schema:
$ref: definitions/errors/error.yaml
"/thirdparty/location":
get:
summary: Reverse-lookup third party locations given a Matrix room alias.
description: |-
Retrieve an array of third party network locations from a Matrix room
alias.
operationId: queryLocationByAlias
security:
- accessToken: []
parameters:
- in: query
name: alias
type: string
description: The Matrix room alias to look up.
required: true
x-example: "#matrix:matrix.org"
responses:
200:
description: |-
All found third party locations.
schema:
$ref: ../application-service/definitions/location_batch.yaml
404:
description: The Matrix room alias was not found
examples:
application/json: {
"errcode": "M_NOT_FOUND"
}
schema:
$ref: definitions/errors/error.yaml
"/thirdparty/user":
get:
summary: Reverse-lookup third party users given a Matrix User ID.
description: |-
Retrieve an array of third party users from a Matrix User ID.
operationId: queryUserByID
security:
- accessToken: []
parameters:
- in: query
name: userid
type: string
description: The Matrix User ID to look up.
required: true
x-example: "@bob:matrix.org"
responses:
200:
description: |-
An array of third party users.
schema:
$ref: ../application-service/definitions/user_batch.yaml
404:
description: The Matrix User ID was not found
examples:
application/json: {
"errcode": "M_NOT_FOUND"
}
schema:
$ref: definitions/errors/error.yaml

View file

@ -1,143 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Membership API for third party identifiers"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/invite":
post:
summary: Invite a user to participate in a particular room.
description: |-
.. _invite-by-third-party-id-endpoint:
*Note that there are two forms of this API, which are documented separately.
This version of the API does not require that the inviter know the Matrix
identifier of the invitee, and instead relies on third party identifiers.
The homeserver uses an identity server to perform the mapping from
third party identifier to a Matrix identifier. The other is documented in the*
`joining rooms section`_.
This API invites a user to participate in a particular room.
They do not start participating in the room until they actually join the
room.
Only users currently in a particular room can invite other users to
join that room.
If the identity server did know the Matrix user identifier for the
third party identifier, the homeserver will append a ``m.room.member``
event to the room.
If the identity server does not know a Matrix user identifier for the
passed third party identifier, the homeserver will issue an invitation
which can be accepted upon providing proof of ownership of the third
party identifier. This is achieved by the identity server generating a
token, which it gives to the inviting homeserver. The homeserver will
add an ``m.room.third_party_invite`` event into the graph for the room,
containing that token.
When the invitee binds the invited third party identifier to a Matrix
user ID, the identity server will give the user a list of pending
invitations, each containing:
- The room ID to which they were invited
- The token given to the homeserver
- A signature of the token, signed with the identity server's private key
- The matrix user ID who invited them to the room
If a token is requested from the identity server, the homeserver will
append a ``m.room.third_party_invite`` event to the room.
.. _joining rooms section: `invite-by-user-id-endpoint`_
operationId: inviteBy3PID
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room identifier (not alias) to which to invite the user.
required: true
x-example: "!d41d8cd:matrix.org"
- in: body
name: body
required: true
schema:
type: object
example: {
"id_server": "matrix.org",
"id_access_token": "abc123_OpaqueString",
"medium": "email",
"address": "cheeky@monkey.com"
}
properties:
id_server:
type: string
description: The hostname+port of the identity server which should be used for third party identifier lookups.
id_access_token:
type: string
description: |-
An access token previously registered with the identity server. Servers
can treat this as optional to distinguish between r0.5-compatible clients
and this specification version.
medium:
type: string
# TODO: Link to Identity Service spec when it eixsts
description: The kind of address being passed in the address field, for example ``email``.
address:
type: string
description: The invitee's third party identifier.
required: ["id_server", "id_access_token", "medium", "address"]
responses:
200:
description: The user has been invited to join the room.
examples:
application/json: {
}
schema:
type: object
403:
description: |-
You do not have permission to invite the user to the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejections are:
- The invitee has been banned from the room.
- The invitee is already a member of the room.
- The inviter is not currently in the room.
- The inviter's power level is insufficient to invite users to the room.
examples:
application/json: {
"errcode": "M_FORBIDDEN", "error": "@cheeky_monkey:matrix.org is banned from the room"}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Room membership

View file

@ -1,90 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Send-to-device API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/sendToDevice/{eventType}/{txnId}":
put:
summary: Send an event to a given set of devices.
description: |-
This endpoint is used to send send-to-device events to a set of
client devices.
operationId: sendToDevice
security:
- accessToken: []
parameters:
- in: path
type: string
name: eventType
description: The type of event to send.
required: true
x-example: "m.new_device"
- in: path
name: txnId
type: string
description: |-
The transaction ID for this event. Clients should generate an
ID unique across requests with the same access token; it will be
used by the server to ensure idempotency of requests.
required: true
x-example: "35"
- in: body
name: body
required: true
schema:
type: object
title: body
properties:
messages:
type: object
description: |-
The messages to send. A map from user ID, to a map from
device ID to message body. The device ID may also be `*`,
meaning all known devices for the user.
additionalProperties:
type: object
additionalProperties:
type: object
title: EventContent
description: Message content
example: {
"@alice:example.com": {
"TLLBEANAAG": {
"example_content_key": "value"
}
}
}
responses:
200:
description:
The message was successfully sent.
examples:
application/json: {
}
tags:
- Send-to-Device messaging

View file

@ -1,87 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Typing API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/typing/{userId}":
put:
summary: Informs the server that the user has started or stopped typing.
description: |-
This tells the server that the user is typing for the next N
milliseconds where N is the value specified in the ``timeout`` key.
Alternatively, if ``typing`` is ``false``, it tells the server that the
user has stopped typing.
operationId: setTyping
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
description: The user who has started to type.
required: true
x-example: "@alice:example.com"
- in: path
type: string
name: roomId
description: The room in which the user is typing.
required: true
x-example: "!wefh3sfukhs:example.com"
- in: body
name: typingState
description: The current typing state.
required: true
schema:
type: object
example: {
"typing": true,
"timeout": 30000
}
properties:
typing:
type: boolean
description: |-
Whether the user is typing or not. If ``false``, the ``timeout``
key can be omitted.
timeout:
type: integer
description: The length of time in milliseconds to mark this user as typing.
required: ["typing"]
responses:
200:
description: The new typing state was set.
examples:
application/json: {
}
schema:
type: object # empty json object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- Room participation

View file

@ -1,108 +0,0 @@
# Copyright 2017 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server User Directory API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/user_directory/search":
post:
summary: Searches the user directory.
description: |-
Performs a search for users. The homeserver may
determine which subset of users are searched, however the homeserver
MUST at a minimum consider the users the requesting user shares a
room with and those who reside in public rooms (known to the homeserver).
The search MUST consider local users to the homeserver, and SHOULD
query remote users as part of the search.
The search is performed case-insensitively on user IDs and display
names preferably using a collation determined based upon the
``Accept-Language`` header provided in the request, if present.
operationId: searchUserDirectory
security:
- accessToken: []
parameters:
- in: body
name: body
schema:
type: object
properties:
search_term:
type: string
description: The term to search for
example: "foo"
limit:
type: integer
description: The maximum number of results to return. Defaults to 10.
example: 10
required: ["search_term"]
responses:
200:
description: The results of the search.
examples:
application/json: {
"results": [
{
"user_id": "@foo:bar.com",
"display_name": "Foo",
"avatar_url": "mxc://bar.com/foo"
}
],
"limited": false
}
schema:
type: object
required: ["results", "limited"]
properties:
results:
type: array
description: Ordered by rank and then whether or not profile info is available.
items:
title: User
type: object
required: ["user_id"]
properties:
user_id:
type: string
example: "@foo:bar.com"
description: The user's matrix user ID.
display_name:
type: string
example: "Foo"
description: The display name of the user, if one exists.
avatar_url:
type: string
example: "mxc://bar.com/foo"
description: The avatar url, as an MXC, if one exists.
limited:
type: boolean
description: Indicates if the result list has been truncated by the limit.
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- User data

View file

@ -1,80 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Versions API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client
produces:
- application/json
paths:
"/versions":
get:
summary: Gets the versions of the specification supported by the server.
description: |-
Gets the versions of the specification supported by the server.
Values will take the form ``rX.Y.Z``.
Only the latest ``Z`` value will be reported for each supported ``X.Y`` value.
i.e. if the server implements ``r0.0.0``, ``r0.0.1``, and ``r1.2.0``, it will report ``r0.0.1`` and ``r1.2.0``.
The server may additionally advertise experimental features it supports
through ``unstable_features``. These features should be namespaced and
may optionally include version information within their name if desired.
Features listed here are not for optionally toggling parts of the Matrix
specification and should only be used to advertise support for a feature
which has not yet landed in the spec. For example, a feature currently
undergoing the proposal process may appear here and eventually be taken
off this list once the feature lands in the spec and the server deems it
reasonable to do so. Servers may wish to keep advertising features here
after they've been released into the spec to give clients a chance to
upgrade appropriately. Additionally, clients should avoid using unstable
features in their stable releases.
operationId: getVersions
responses:
200:
description: The versions supported by the server.
examples:
application/json: {
"versions": ["r0.0.1"],
"unstable_features": {
"org.example.my_feature": true
}
}
schema:
type: object
properties:
versions:
type: array
description: The supported versions.
items:
type: string
description: The supported versions
unstable_features:
type: object
description: |-
Experimental features the server supports. Features not listed here,
or the lack of this property all together, indicate that a feature is
not supported.
additionalProperties:
type: boolean
description: Whether or not the namespaced feature is supported.
required: ['versions']
tags:
- Server administration

View file

@ -1,78 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Voice over IP API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/voip/turnServer":
get:
summary: Obtain TURN server credentials.
description: |-
This API provides credentials for the client to use when initiating
calls.
operationId: getTurnServer
security:
- accessToken: []
responses:
200:
description: The TURN server credentials.
examples:
application/json: {
"username":"1443779631:@user:example.com",
"password":"JlKfBy1QwLrO20385QyAtEyIv0=",
"uris":[
"turn:turn.example.com:3478?transport=udp",
"turn:10.20.30.40:3478?transport=tcp",
"turns:10.20.30.40:443?transport=tcp"
],
"ttl":86400
}
schema:
type: object
properties:
username:
type: string
description: |-
The username to use.
password:
type: string
description: |-
The password to use.
uris:
type: array
items:
type: string
description: A list of TURN URIs
ttl:
type: integer
description: The time-to-live in seconds
required: ["username", "password", "uris", "ttl"]
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- VOIP

View file

@ -1,84 +0,0 @@
# Copyright 2017 Travis Ralston
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Account Identification API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/account/whoami":
get:
summary: Gets information about the owner of an access token.
description: |-
Gets information about the owner of a given access token.
Note that, as with the rest of the Client-Server API,
Application Services may masquerade as users within their
namespace by giving a ``user_id`` query parameter. In this
situation, the server should verify that the given ``user_id``
is registered by the appservice, and return it in the response
body.
operationId: getTokenOwner
security:
- accessToken: []
parameters: []
responses:
200:
description:
The token belongs to a known user.
examples:
application/json: {
"user_id": "@joe:example.org"
}
schema:
type: object
required: ["user_id"]
properties:
user_id:
type: string
description: The user id that owns the access token.
401:
description:
The token is not recognised
examples:
application/json: {
"errcode": "M_UNKNOWN_TOKEN",
"error": "Unrecognised access token."
}
schema:
"$ref": "definitions/errors/error.yaml"
403:
description:
The appservice cannot masquerade as the user or has not registered them.
examples:
application/json: {
"errcode": "M_FORBIDDEN",
"error": "Application service has not registered this user."
}
schema:
"$ref": "definitions/errors/error.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/errors/rate_limited.yaml"
tags:
- User data

View file

@ -1,38 +0,0 @@
// Backbone.js 0.9.2
// (c) 2010-2012 Jeremy Ashkenas, DocumentCloud Inc.
// Backbone may be freely distributed under the MIT license.
// For all details and documentation:
// http://backbonejs.org
(function(){var l=this,y=l.Backbone,z=Array.prototype.slice,A=Array.prototype.splice,g;g="undefined"!==typeof exports?exports:l.Backbone={};g.VERSION="0.9.2";var f=l._;!f&&"undefined"!==typeof require&&(f=require("underscore"));var i=l.jQuery||l.Zepto||l.ender;g.setDomLibrary=function(a){i=a};g.noConflict=function(){l.Backbone=y;return this};g.emulateHTTP=!1;g.emulateJSON=!1;var p=/\s+/,k=g.Events={on:function(a,b,c){var d,e,f,g,j;if(!b)return this;a=a.split(p);for(d=this._callbacks||(this._callbacks=
{});e=a.shift();)f=(j=d[e])?j.tail:{},f.next=g={},f.context=c,f.callback=b,d[e]={tail:g,next:j?j.next:f};return this},off:function(a,b,c){var d,e,h,g,j,q;if(e=this._callbacks){if(!a&&!b&&!c)return delete this._callbacks,this;for(a=a?a.split(p):f.keys(e);d=a.shift();)if(h=e[d],delete e[d],h&&(b||c))for(g=h.tail;(h=h.next)!==g;)if(j=h.callback,q=h.context,b&&j!==b||c&&q!==c)this.on(d,j,q);return this}},trigger:function(a){var b,c,d,e,f,g;if(!(d=this._callbacks))return this;f=d.all;a=a.split(p);for(g=
z.call(arguments,1);b=a.shift();){if(c=d[b])for(e=c.tail;(c=c.next)!==e;)c.callback.apply(c.context||this,g);if(c=f){e=c.tail;for(b=[b].concat(g);(c=c.next)!==e;)c.callback.apply(c.context||this,b)}}return this}};k.bind=k.on;k.unbind=k.off;var o=g.Model=function(a,b){var c;a||(a={});b&&b.parse&&(a=this.parse(a));if(c=n(this,"defaults"))a=f.extend({},c,a);b&&b.collection&&(this.collection=b.collection);this.attributes={};this._escapedAttributes={};this.cid=f.uniqueId("c");this.changed={};this._silent=
{};this._pending={};this.set(a,{silent:!0});this.changed={};this._silent={};this._pending={};this._previousAttributes=f.clone(this.attributes);this.initialize.apply(this,arguments)};f.extend(o.prototype,k,{changed:null,_silent:null,_pending:null,idAttribute:"id",initialize:function(){},toJSON:function(){return f.clone(this.attributes)},get:function(a){return this.attributes[a]},escape:function(a){var b;if(b=this._escapedAttributes[a])return b;b=this.get(a);return this._escapedAttributes[a]=f.escape(null==
b?"":""+b)},has:function(a){return null!=this.get(a)},set:function(a,b,c){var d,e;f.isObject(a)||null==a?(d=a,c=b):(d={},d[a]=b);c||(c={});if(!d)return this;d instanceof o&&(d=d.attributes);if(c.unset)for(e in d)d[e]=void 0;if(!this._validate(d,c))return!1;this.idAttribute in d&&(this.id=d[this.idAttribute]);var b=c.changes={},h=this.attributes,g=this._escapedAttributes,j=this._previousAttributes||{};for(e in d){a=d[e];if(!f.isEqual(h[e],a)||c.unset&&f.has(h,e))delete g[e],(c.silent?this._silent:
b)[e]=!0;c.unset?delete h[e]:h[e]=a;!f.isEqual(j[e],a)||f.has(h,e)!=f.has(j,e)?(this.changed[e]=a,c.silent||(this._pending[e]=!0)):(delete this.changed[e],delete this._pending[e])}c.silent||this.change(c);return this},unset:function(a,b){(b||(b={})).unset=!0;return this.set(a,null,b)},clear:function(a){(a||(a={})).unset=!0;return this.set(f.clone(this.attributes),a)},fetch:function(a){var a=a?f.clone(a):{},b=this,c=a.success;a.success=function(d,e,f){if(!b.set(b.parse(d,f),a))return!1;c&&c(b,d)};
a.error=g.wrapError(a.error,b,a);return(this.sync||g.sync).call(this,"read",this,a)},save:function(a,b,c){var d,e;f.isObject(a)||null==a?(d=a,c=b):(d={},d[a]=b);c=c?f.clone(c):{};if(c.wait){if(!this._validate(d,c))return!1;e=f.clone(this.attributes)}a=f.extend({},c,{silent:!0});if(d&&!this.set(d,c.wait?a:c))return!1;var h=this,i=c.success;c.success=function(a,b,e){b=h.parse(a,e);if(c.wait){delete c.wait;b=f.extend(d||{},b)}if(!h.set(b,c))return false;i?i(h,a):h.trigger("sync",h,a,c)};c.error=g.wrapError(c.error,
h,c);b=this.isNew()?"create":"update";b=(this.sync||g.sync).call(this,b,this,c);c.wait&&this.set(e,a);return b},destroy:function(a){var a=a?f.clone(a):{},b=this,c=a.success,d=function(){b.trigger("destroy",b,b.collection,a)};if(this.isNew())return d(),!1;a.success=function(e){a.wait&&d();c?c(b,e):b.trigger("sync",b,e,a)};a.error=g.wrapError(a.error,b,a);var e=(this.sync||g.sync).call(this,"delete",this,a);a.wait||d();return e},url:function(){var a=n(this,"urlRoot")||n(this.collection,"url")||t();
return this.isNew()?a:a+("/"==a.charAt(a.length-1)?"":"/")+encodeURIComponent(this.id)},parse:function(a){return a},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return null==this.id},change:function(a){a||(a={});var b=this._changing;this._changing=!0;for(var c in this._silent)this._pending[c]=!0;var d=f.extend({},a.changes,this._silent);this._silent={};for(c in d)this.trigger("change:"+c,this,this.get(c),a);if(b)return this;for(;!f.isEmpty(this._pending);){this._pending=
{};this.trigger("change",this,a);for(c in this.changed)!this._pending[c]&&!this._silent[c]&&delete this.changed[c];this._previousAttributes=f.clone(this.attributes)}this._changing=!1;return this},hasChanged:function(a){return!arguments.length?!f.isEmpty(this.changed):f.has(this.changed,a)},changedAttributes:function(a){if(!a)return this.hasChanged()?f.clone(this.changed):!1;var b,c=!1,d=this._previousAttributes,e;for(e in a)if(!f.isEqual(d[e],b=a[e]))(c||(c={}))[e]=b;return c},previous:function(a){return!arguments.length||
!this._previousAttributes?null:this._previousAttributes[a]},previousAttributes:function(){return f.clone(this._previousAttributes)},isValid:function(){return!this.validate(this.attributes)},_validate:function(a,b){if(b.silent||!this.validate)return!0;var a=f.extend({},this.attributes,a),c=this.validate(a,b);if(!c)return!0;b&&b.error?b.error(this,c,b):this.trigger("error",this,c,b);return!1}});var r=g.Collection=function(a,b){b||(b={});b.model&&(this.model=b.model);b.comparator&&(this.comparator=b.comparator);
this._reset();this.initialize.apply(this,arguments);a&&this.reset(a,{silent:!0,parse:b.parse})};f.extend(r.prototype,k,{model:o,initialize:function(){},toJSON:function(a){return this.map(function(b){return b.toJSON(a)})},add:function(a,b){var c,d,e,g,i,j={},k={},l=[];b||(b={});a=f.isArray(a)?a.slice():[a];c=0;for(d=a.length;c<d;c++){if(!(e=a[c]=this._prepareModel(a[c],b)))throw Error("Can't add an invalid model to a collection");g=e.cid;i=e.id;j[g]||this._byCid[g]||null!=i&&(k[i]||this._byId[i])?
l.push(c):j[g]=k[i]=e}for(c=l.length;c--;)a.splice(l[c],1);c=0;for(d=a.length;c<d;c++)(e=a[c]).on("all",this._onModelEvent,this),this._byCid[e.cid]=e,null!=e.id&&(this._byId[e.id]=e);this.length+=d;A.apply(this.models,[null!=b.at?b.at:this.models.length,0].concat(a));this.comparator&&this.sort({silent:!0});if(b.silent)return this;c=0;for(d=this.models.length;c<d;c++)if(j[(e=this.models[c]).cid])b.index=c,e.trigger("add",e,this,b);return this},remove:function(a,b){var c,d,e,g;b||(b={});a=f.isArray(a)?
a.slice():[a];c=0;for(d=a.length;c<d;c++)if(g=this.getByCid(a[c])||this.get(a[c]))delete this._byId[g.id],delete this._byCid[g.cid],e=this.indexOf(g),this.models.splice(e,1),this.length--,b.silent||(b.index=e,g.trigger("remove",g,this,b)),this._removeReference(g);return this},push:function(a,b){a=this._prepareModel(a,b);this.add(a,b);return a},pop:function(a){var b=this.at(this.length-1);this.remove(b,a);return b},unshift:function(a,b){a=this._prepareModel(a,b);this.add(a,f.extend({at:0},b));return a},
shift:function(a){var b=this.at(0);this.remove(b,a);return b},get:function(a){return null==a?void 0:this._byId[null!=a.id?a.id:a]},getByCid:function(a){return a&&this._byCid[a.cid||a]},at:function(a){return this.models[a]},where:function(a){return f.isEmpty(a)?[]:this.filter(function(b){for(var c in a)if(a[c]!==b.get(c))return!1;return!0})},sort:function(a){a||(a={});if(!this.comparator)throw Error("Cannot sort a set without a comparator");var b=f.bind(this.comparator,this);1==this.comparator.length?
this.models=this.sortBy(b):this.models.sort(b);a.silent||this.trigger("reset",this,a);return this},pluck:function(a){return f.map(this.models,function(b){return b.get(a)})},reset:function(a,b){a||(a=[]);b||(b={});for(var c=0,d=this.models.length;c<d;c++)this._removeReference(this.models[c]);this._reset();this.add(a,f.extend({silent:!0},b));b.silent||this.trigger("reset",this,b);return this},fetch:function(a){a=a?f.clone(a):{};void 0===a.parse&&(a.parse=!0);var b=this,c=a.success;a.success=function(d,
e,f){b[a.add?"add":"reset"](b.parse(d,f),a);c&&c(b,d)};a.error=g.wrapError(a.error,b,a);return(this.sync||g.sync).call(this,"read",this,a)},create:function(a,b){var c=this,b=b?f.clone(b):{},a=this._prepareModel(a,b);if(!a)return!1;b.wait||c.add(a,b);var d=b.success;b.success=function(e,f){b.wait&&c.add(e,b);d?d(e,f):e.trigger("sync",a,f,b)};a.save(null,b);return a},parse:function(a){return a},chain:function(){return f(this.models).chain()},_reset:function(){this.length=0;this.models=[];this._byId=
{};this._byCid={}},_prepareModel:function(a,b){b||(b={});a instanceof o?a.collection||(a.collection=this):(b.collection=this,a=new this.model(a,b),a._validate(a.attributes,b)||(a=!1));return a},_removeReference:function(a){this==a.collection&&delete a.collection;a.off("all",this._onModelEvent,this)},_onModelEvent:function(a,b,c,d){("add"==a||"remove"==a)&&c!=this||("destroy"==a&&this.remove(b,d),b&&a==="change:"+b.idAttribute&&(delete this._byId[b.previous(b.idAttribute)],this._byId[b.id]=b),this.trigger.apply(this,
arguments))}});f.each("forEach,each,map,reduce,reduceRight,find,detect,filter,select,reject,every,all,some,any,include,contains,invoke,max,min,sortBy,sortedIndex,toArray,size,first,initial,rest,last,without,indexOf,shuffle,lastIndexOf,isEmpty,groupBy".split(","),function(a){r.prototype[a]=function(){return f[a].apply(f,[this.models].concat(f.toArray(arguments)))}});var u=g.Router=function(a){a||(a={});a.routes&&(this.routes=a.routes);this._bindRoutes();this.initialize.apply(this,arguments)},B=/:\w+/g,
C=/\*\w+/g,D=/[-[\]{}()+?.,\\^$|#\s]/g;f.extend(u.prototype,k,{initialize:function(){},route:function(a,b,c){g.history||(g.history=new m);f.isRegExp(a)||(a=this._routeToRegExp(a));c||(c=this[b]);g.history.route(a,f.bind(function(d){d=this._extractParameters(a,d);c&&c.apply(this,d);this.trigger.apply(this,["route:"+b].concat(d));g.history.trigger("route",this,b,d)},this));return this},navigate:function(a,b){g.history.navigate(a,b)},_bindRoutes:function(){if(this.routes){var a=[],b;for(b in this.routes)a.unshift([b,
this.routes[b]]);b=0;for(var c=a.length;b<c;b++)this.route(a[b][0],a[b][1],this[a[b][1]])}},_routeToRegExp:function(a){a=a.replace(D,"\\$&").replace(B,"([^/]+)").replace(C,"(.*?)");return RegExp("^"+a+"$")},_extractParameters:function(a,b){return a.exec(b).slice(1)}});var m=g.History=function(){this.handlers=[];f.bindAll(this,"checkUrl")},s=/^[#\/]/,E=/msie [\w.]+/;m.started=!1;f.extend(m.prototype,k,{interval:50,getHash:function(a){return(a=(a?a.location:window.location).href.match(/#(.*)$/))?a[1]:
""},getFragment:function(a,b){if(null==a)if(this._hasPushState||b){var a=window.location.pathname,c=window.location.search;c&&(a+=c)}else a=this.getHash();a.indexOf(this.options.root)||(a=a.substr(this.options.root.length));return a.replace(s,"")},start:function(a){if(m.started)throw Error("Backbone.history has already been started");m.started=!0;this.options=f.extend({},{root:"/"},this.options,a);this._wantsHashChange=!1!==this.options.hashChange;this._wantsPushState=!!this.options.pushState;this._hasPushState=
!(!this.options.pushState||!window.history||!window.history.pushState);var a=this.getFragment(),b=document.documentMode;if(b=E.exec(navigator.userAgent.toLowerCase())&&(!b||7>=b))this.iframe=i('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow,this.navigate(a);this._hasPushState?i(window).bind("popstate",this.checkUrl):this._wantsHashChange&&"onhashchange"in window&&!b?i(window).bind("hashchange",this.checkUrl):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,
this.interval));this.fragment=a;a=window.location;b=a.pathname==this.options.root;if(this._wantsHashChange&&this._wantsPushState&&!this._hasPushState&&!b)return this.fragment=this.getFragment(null,!0),window.location.replace(this.options.root+"#"+this.fragment),!0;this._wantsPushState&&this._hasPushState&&b&&a.hash&&(this.fragment=this.getHash().replace(s,""),window.history.replaceState({},document.title,a.protocol+"//"+a.host+this.options.root+this.fragment));if(!this.options.silent)return this.loadUrl()},
stop:function(){i(window).unbind("popstate",this.checkUrl).unbind("hashchange",this.checkUrl);clearInterval(this._checkUrlInterval);m.started=!1},route:function(a,b){this.handlers.unshift({route:a,callback:b})},checkUrl:function(){var a=this.getFragment();a==this.fragment&&this.iframe&&(a=this.getFragment(this.getHash(this.iframe)));if(a==this.fragment)return!1;this.iframe&&this.navigate(a);this.loadUrl()||this.loadUrl(this.getHash())},loadUrl:function(a){var b=this.fragment=this.getFragment(a);return f.any(this.handlers,
function(a){if(a.route.test(b))return a.callback(b),!0})},navigate:function(a,b){if(!m.started)return!1;if(!b||!0===b)b={trigger:b};var c=(a||"").replace(s,"");this.fragment!=c&&(this._hasPushState?(0!=c.indexOf(this.options.root)&&(c=this.options.root+c),this.fragment=c,window.history[b.replace?"replaceState":"pushState"]({},document.title,c)):this._wantsHashChange?(this.fragment=c,this._updateHash(window.location,c,b.replace),this.iframe&&c!=this.getFragment(this.getHash(this.iframe))&&(b.replace||
this.iframe.document.open().close(),this._updateHash(this.iframe.location,c,b.replace))):window.location.assign(this.options.root+a),b.trigger&&this.loadUrl(a))},_updateHash:function(a,b,c){c?a.replace(a.toString().replace(/(javascript:|#).*$/,"")+"#"+b):a.hash=b}});var v=g.View=function(a){this.cid=f.uniqueId("view");this._configure(a||{});this._ensureElement();this.initialize.apply(this,arguments);this.delegateEvents()},F=/^(\S+)\s*(.*)$/,w="model,collection,el,id,attributes,className,tagName".split(",");
f.extend(v.prototype,k,{tagName:"div",$:function(a){return this.$el.find(a)},initialize:function(){},render:function(){return this},remove:function(){this.$el.remove();return this},make:function(a,b,c){a=document.createElement(a);b&&i(a).attr(b);c&&i(a).html(c);return a},setElement:function(a,b){this.$el&&this.undelegateEvents();this.$el=a instanceof i?a:i(a);this.el=this.$el[0];!1!==b&&this.delegateEvents();return this},delegateEvents:function(a){if(a||(a=n(this,"events"))){this.undelegateEvents();
for(var b in a){var c=a[b];f.isFunction(c)||(c=this[a[b]]);if(!c)throw Error('Method "'+a[b]+'" does not exist');var d=b.match(F),e=d[1],d=d[2],c=f.bind(c,this),e=e+(".delegateEvents"+this.cid);""===d?this.$el.bind(e,c):this.$el.delegate(d,e,c)}}},undelegateEvents:function(){this.$el.unbind(".delegateEvents"+this.cid)},_configure:function(a){this.options&&(a=f.extend({},this.options,a));for(var b=0,c=w.length;b<c;b++){var d=w[b];a[d]&&(this[d]=a[d])}this.options=a},_ensureElement:function(){if(this.el)this.setElement(this.el,
!1);else{var a=n(this,"attributes")||{};this.id&&(a.id=this.id);this.className&&(a["class"]=this.className);this.setElement(this.make(this.tagName,a),!1)}}});o.extend=r.extend=u.extend=v.extend=function(a,b){var c=G(this,a,b);c.extend=this.extend;return c};var H={create:"POST",update:"PUT","delete":"DELETE",read:"GET"};g.sync=function(a,b,c){var d=H[a];c||(c={});var e={type:d,dataType:"json"};c.url||(e.url=n(b,"url")||t());if(!c.data&&b&&("create"==a||"update"==a))e.contentType="application/json",
e.data=JSON.stringify(b.toJSON());g.emulateJSON&&(e.contentType="application/x-www-form-urlencoded",e.data=e.data?{model:e.data}:{});if(g.emulateHTTP&&("PUT"===d||"DELETE"===d))g.emulateJSON&&(e.data._method=d),e.type="POST",e.beforeSend=function(a){a.setRequestHeader("X-HTTP-Method-Override",d)};"GET"!==e.type&&!g.emulateJSON&&(e.processData=!1);return i.ajax(f.extend(e,c))};g.wrapError=function(a,b,c){return function(d,e){e=d===b?e:d;a?a(b,e,c):b.trigger("error",b,e,c)}};var x=function(){},G=function(a,
b,c){var d;d=b&&b.hasOwnProperty("constructor")?b.constructor:function(){a.apply(this,arguments)};f.extend(d,a);x.prototype=a.prototype;d.prototype=new x;b&&f.extend(d.prototype,b);c&&f.extend(d,c);d.prototype.constructor=d;d.__super__=a.prototype;return d},n=function(a,b){return!a||!a[b]?null:f.isFunction(a[b])?a[b]():a[b]},t=function(){throw Error('A "url" property or function must be specified');}}).call(this);

View file

@ -1,16 +0,0 @@
/* latin */
@font-face {
font-family: 'Droid Sans';
font-style: normal;
font-weight: 400;
src: local('Droid Sans'), local('DroidSans'), url(http://fonts.gstatic.com/s/droidsans/v5/s-BiyweUPV0v-yRb-cjciPk_vArhqVIZ0nv9q090hN8.woff2), format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* latin */
@font-face {
font-family: 'Droid Sans';
font-style: normal;
font-weight: 700;
src: local('Droid Sans Bold'), local('DroidSans-Bold'), url(http://fonts.gstatic.com/s/droidsans/v5/EFpQQyG9GqCrobXxL-KRMYWiMMZ7xLd792ULpGE4W_Y.woff2), format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,18 +0,0 @@
/*
* jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010
* http://benalman.com/projects/jquery-bbq-plugin/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
(function($,p){var i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return function(){return G.apply(this,F.concat(m.call(arguments)))}}function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&&E(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.noEscape(",/");$.deparam=l=function(I,F){var H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," ").split("&"),function(L,Q){var K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M<N?O[P]||(R[M+1]&&isNaN(R[M+1])?{}:[]):J}}else{if($.isArray(H[P])){H[P].push(J)}else{if(H[P]!==i){H[P]=[H[P],J]}else{H[P]=J}}}}else{if(P){H[P]=F?i:""}}});return H};function z(H,F,G){if(F===i||typeof F==="boolean"){G=F;F=a[H?D:A]()}else{F=E(F)?F.replace(H?w:x,""):F}return l(F,G)}l[A]=B(z,0);l[D]=v=B(z,1);$[y]||($[y]=function(F){return $.extend(C,F)})({a:k,base:k,iframe:t,img:t,input:t,form:"action",link:k,script:t});j=$[y];function s(I,G,H,F){if(!E(H)&&typeof H!=="object"){F=H;H=G;G=i}return this.each(function(){var L=$(this),J=G||j()[(this.nodeName||"").toLowerCase()]||"",K=J&&L.attr(J)||"";L.attr(J,a[I](K,H,F))})}$.fn[A]=B(s,A);$.fn[D]=B(s,D);b.pushState=q=function(I,F){if(E(I)&&/^#/.test(I)&&F===i){F=2}var H=I!==i,G=c(p[g][k],H?I:{},H?F:2);p[g][k]=G+(/#/.test(G)?"":"#")};b.getState=u=function(F,G){return F===i||typeof F==="boolean"?v(F):v(G)[F]};b.removeState=function(F){var G={};if(F!==i){G=u();$.each($.isArray(F)?F:arguments,function(I,H){delete G[H]})}q(G,2)};e[d]=$.extend(e[d],{add:function(F){var H;function G(J){var I=J[D]=c();J.getState=function(K,L){return K===i||typeof K==="boolean"?l(I,K):l(I,L)[K]};H.apply(this,arguments)}if($.isFunction(F)){H=F;return G}else{H=F.handler;F.handler=G}}})})(jQuery,this);
/*
* jQuery hashchange event - v1.2 - 2/11/2010
* http://benalman.com/projects/jquery-hashchange-plugin/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
(function($,i,b){var j,k=$.event.special,c="location",d="hashchange",l="href",f=$.browser,g=document.documentMode,h=f.msie&&(g===b||g<8),e="on"+d in i&&!h;function a(m){m=m||i[c][l];return m.replace(/^[^#]*#?(.*)$/,"$1")}$[d+"Delay"]=100;k[d]=$.extend(k[d],{setup:function(){if(e){return false}$(j.start)},teardown:function(){if(e){return false}$(j.stop)}});j=(function(){var m={},r,n,o,q;function p(){o=q=function(s){return s};if(h){n=$('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(jQuery,this);

View file

@ -1 +0,0 @@
(function(b){b.fn.slideto=function(a){a=b.extend({slide_duration:"slow",highlight_duration:3E3,highlight:true,highlight_color:"#FFFF99"},a);return this.each(function(){obj=b(this);b("body").animate({scrollTop:obj.offset().top},a.slide_duration,function(){a.highlight&&b.ui.version&&obj.effect("highlight",{color:a.highlight_color},a.highlight_duration)})})}})(jQuery);

View file

@ -1,8 +0,0 @@
/*
jQuery Wiggle
Author: WonderGroup, Jordan Thomas
URL: http://labs.wondergroup.com/demos/mini-ui/index.html
License: MIT (http://en.wikipedia.org/wiki/MIT_License)
*/
jQuery.fn.wiggle=function(o){var d={speed:50,wiggles:3,travel:5,callback:null};var o=jQuery.extend(d,o);return this.each(function(){var cache=this;var wrap=jQuery(this).wrap('<div class="wiggle-wrap"></div>').css("position","relative");var calls=0;for(i=1;i<=o.wiggles;i++){jQuery(this).animate({left:"-="+o.travel},o.speed).animate({left:"+="+o.travel*2},o.speed*2).animate({left:"-="+o.travel},o.speed,function(){calls++;if(jQuery(cache).parent().hasClass('wiggle-wrap')){jQuery(cache).parent().replaceWith(cache);}
if(calls==o.wiggles&&jQuery.isFunction(o.callback)){o.callback();}});}});};

View file

@ -1,125 +0,0 @@
/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
display: block;
}
body {
line-height: 1;
}
ol,
ul {
list-style: none;
}
blockquote,
q {
quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,211 +0,0 @@
var appName;
var popupMask;
var popupDialog;
var clientId;
var realm;
function handleLogin() {
var scopes = [];
if(window.swaggerUi.api.authSchemes
&& window.swaggerUi.api.authSchemes.oauth2
&& window.swaggerUi.api.authSchemes.oauth2.scopes) {
scopes = window.swaggerUi.api.authSchemes.oauth2.scopes;
}
if(window.swaggerUi.api
&& window.swaggerUi.api.info) {
appName = window.swaggerUi.api.info.title;
}
if(popupDialog.length > 0)
popupDialog = popupDialog.last();
else {
popupDialog = $(
[
'<div class="api-popup-dialog">',
'<div class="api-popup-title">Select OAuth2.0 Scopes</div>',
'<div class="api-popup-content">',
'<p>Scopes are used to grant an application different levels of access to data on behalf of the end user. Each API may declare one or more scopes.',
'<a href="#">Learn how to use</a>',
'</p>',
'<p><strong>' + appName + '</strong> API requires the following scopes. Select which ones you want to grant to Swagger UI.</p>',
'<ul class="api-popup-scopes">',
'</ul>',
'<p class="error-msg"></p>',
'<div class="api-popup-actions"><button class="api-popup-authbtn api-button green" type="button">Authorize</button><button class="api-popup-cancel api-button gray" type="button">Cancel</button></div>',
'</div>',
'</div>'].join(''));
$(document.body).append(popupDialog);
popup = popupDialog.find('ul.api-popup-scopes').empty();
for (i = 0; i < scopes.length; i ++) {
scope = scopes[i];
str = '<li><input type="checkbox" id="scope_' + i + '" scope="' + scope.scope + '"/>' + '<label for="scope_' + i + '">' + scope.scope;
if (scope.description) {
str += '<br/><span class="api-scope-desc">' + scope.description + '</span>';
}
str += '</label></li>';
popup.append(str);
}
}
var $win = $(window),
dw = $win.width(),
dh = $win.height(),
st = $win.scrollTop(),
dlgWd = popupDialog.outerWidth(),
dlgHt = popupDialog.outerHeight(),
top = (dh -dlgHt)/2 + st,
left = (dw - dlgWd)/2;
popupDialog.css({
top: (top < 0? 0 : top) + 'px',
left: (left < 0? 0 : left) + 'px'
});
popupDialog.find('button.api-popup-cancel').click(function() {
popupMask.hide();
popupDialog.hide();
});
popupDialog.find('button.api-popup-authbtn').click(function() {
popupMask.hide();
popupDialog.hide();
var authSchemes = window.swaggerUi.api.authSchemes;
var host = window.location;
var redirectUrl = host.protocol + '//' + host.host + "/o2c.html";
var url = null;
var p = window.swaggerUi.api.authSchemes;
for (var key in p) {
if (p.hasOwnProperty(key)) {
var o = p[key].grantTypes;
for(var t in o) {
if(o.hasOwnProperty(t) && t === 'implicit') {
var dets = o[t];
url = dets.loginEndpoint.url + "?response_type=token";
window.swaggerUi.tokenName = dets.tokenName;
}
}
}
}
var scopes = []
var o = $('.api-popup-scopes').find('input:checked');
for(k =0; k < o.length; k++) {
scopes.push($(o[k]).attr("scope"));
}
window.enabledScopes=scopes;
url += '&redirect_uri=' + encodeURIComponent(redirectUrl);
url += '&realm=' + encodeURIComponent(realm);
url += '&client_id=' + encodeURIComponent(clientId);
url += '&scope=' + encodeURIComponent(scopes);
window.open(url);
});
popupMask.show();
popupDialog.show();
return;
}
function handleLogout() {
for(key in window.authorizations.authz){
window.authorizations.remove(key)
}
window.enabledScopes = null;
$('.api-ic.ic-on').addClass('ic-off');
$('.api-ic.ic-on').removeClass('ic-on');
// set the info box
$('.api-ic.ic-warning').addClass('ic-error');
$('.api-ic.ic-warning').removeClass('ic-warning');
}
function initOAuth(opts) {
var o = (opts||{});
var errors = [];
appName = (o.appName||errors.push("missing appName"));
popupMask = (o.popupMask||$('#api-common-mask'));
popupDialog = (o.popupDialog||$('.api-popup-dialog'));
clientId = (o.clientId||errors.push("missing client id"));
realm = (o.realm||errors.push("missing realm"));
if(errors.length > 0){
log("auth unable initialize oauth: " + errors);
return;
}
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
$('.api-ic').click(function(s) {
if($(s.target).hasClass('ic-off'))
handleLogin();
else {
handleLogout();
}
false;
});
}
function onOAuthComplete(token) {
if(token) {
if(token.error) {
var checkbox = $('input[type=checkbox],.secured')
checkbox.each(function(pos){
checkbox[pos].checked = false;
});
alert(token.error);
}
else {
var b = token[window.swaggerUi.tokenName];
if(b){
// if all roles are satisfied
var o = null;
$.each($('.auth #api_information_panel'), function(k, v) {
var children = v;
if(children && children.childNodes) {
var requiredScopes = [];
$.each((children.childNodes), function (k1, v1){
var inner = v1.innerHTML;
if(inner)
requiredScopes.push(inner);
});
var diff = [];
for(var i=0; i < requiredScopes.length; i++) {
var s = requiredScopes[i];
if(window.enabledScopes && window.enabledScopes.indexOf(s) == -1) {
diff.push(s);
}
}
if(diff.length > 0){
o = v.parentNode;
$(o.parentNode).find('.api-ic.ic-on').addClass('ic-off');
$(o.parentNode).find('.api-ic.ic-on').removeClass('ic-on');
// sorry, not all scopes are satisfied
$(o).find('.api-ic').addClass('ic-warning');
$(o).find('.api-ic').removeClass('ic-error');
}
else {
o = v.parentNode;
$(o.parentNode).find('.api-ic.ic-off').addClass('ic-on');
$(o.parentNode).find('.api-ic.ic-off').removeClass('ic-off');
// all scopes are satisfied
$(o).find('.api-ic').addClass('ic-info');
$(o).find('.api-ic').removeClass('ic-warning');
$(o).find('.api-ic').removeClass('ic-error');
}
}
});
window.authorizations.add("oauth2", new ApiKeyAuthorization("Authorization", "Bearer " + b, "header"));
}
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,32 +0,0 @@
// Underscore.js 1.3.3
// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
// Underscore is freely distributable under the MIT license.
// Portions of Underscore are inspired or borrowed from Prototype,
// Oliver Steele's Functional, and John Resig's Micro-Templating.
// For all details and documentation:
// http://documentcloud.github.com/underscore
(function(){function r(a,c,d){if(a===c)return 0!==a||1/a==1/c;if(null==a||null==c)return a===c;a._chain&&(a=a._wrapped);c._chain&&(c=c._wrapped);if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return!1;switch(e){case "[object String]":return a==""+c;case "[object Number]":return a!=+a?c!=+c:0==a?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source==
c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if("object"!=typeof a||"object"!=typeof c)return!1;for(var f=d.length;f--;)if(d[f]==a)return!0;d.push(a);var f=0,g=!0;if("[object Array]"==e){if(f=a.length,g=f==c.length)for(;f--&&(g=f in a==f in c&&r(a[f],c[f],d)););}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return!1;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&r(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c,h)&&!f--)break;
g=!f}}d.pop();return g}var s=this,I=s._,o={},k=Array.prototype,p=Object.prototype,i=k.slice,J=k.unshift,l=p.toString,K=p.hasOwnProperty,y=k.forEach,z=k.map,A=k.reduce,B=k.reduceRight,C=k.filter,D=k.every,E=k.some,q=k.indexOf,F=k.lastIndexOf,p=Array.isArray,L=Object.keys,t=Function.prototype.bind,b=function(a){return new m(a)};"undefined"!==typeof exports?("undefined"!==typeof module&&module.exports&&(exports=module.exports=b),exports._=b):s._=b;b.VERSION="1.3.3";var j=b.each=b.forEach=function(a,
c,d){if(a!=null)if(y&&a.forEach===y)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(e in a&&c.call(d,a[e],e,a)===o)break}else for(e in a)if(b.has(a,e)&&c.call(d,a[e],e,a)===o)break};b.map=b.collect=function(a,c,b){var e=[];if(a==null)return e;if(z&&a.map===z)return a.map(c,b);j(a,function(a,g,h){e[e.length]=c.call(b,a,g,h)});if(a.length===+a.length)e.length=a.length;return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(A&&
a.reduce===A){e&&(c=b.bind(c,e));return f?a.reduce(c,d):a.reduce(c)}j(a,function(a,b,i){if(f)d=c.call(e,d,a,b,i);else{d=a;f=true}});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(B&&a.reduceRight===B){e&&(c=b.bind(c,e));return f?a.reduceRight(c,d):a.reduceRight(c)}var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect=function(a,
c,b){var e;G(a,function(a,g,h){if(c.call(b,a,g,h)){e=a;return true}});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(C&&a.filter===C)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(D&&a.every===D)return a.every(c,b);j(a,function(a,g,h){if(!(e=e&&c.call(b,
a,g,h)))return o});return!!e};var G=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(E&&a.some===E)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return o});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;if(q&&a.indexOf===q)return a.indexOf(c)!=-1;return b=G(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck=
function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a)&&a[0]===+a[0])return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a)&&a[0]===+a[0])return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&
(e={value:a,computed:b})});return e.value};b.shuffle=function(a){var b=[],d;j(a,function(a,f){d=Math.floor(Math.random()*(f+1));b[f]=b[d];b[d]=a});return b};b.sortBy=function(a,c,d){var e=b.isFunction(c)?c:function(a){return a[c]};return b.pluck(b.map(a,function(a,b,c){return{value:a,criteria:e.call(d,a,b,c)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c===void 0?1:d===void 0?-1:c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};
j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a,c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){return!a?[]:b.isArray(a)||b.isArguments(a)?i.call(a):a.toArray&&b.isFunction(a.toArray)?a.toArray():b.values(a)};b.size=function(a){return b.isArray(a)?a.length:b.keys(a).length};b.first=b.head=b.take=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,
0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,Math.max(a.length-b,0)):a[a.length-1]};b.rest=b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,
e=[];a.length<3&&(c=true);b.reduce(d,function(d,g,h){if(c?b.last(d)!==g||!d.length:!b.include(d,g)){d.push(g);e.push(a[h])}return d},[]);return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1),true);return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=
i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,d){if(a==null)return-1;var e;if(d){d=b.sortedIndex(a,c);return a[d]===c?d:-1}if(q&&a.indexOf===q)return a.indexOf(c);d=0;for(e=a.length;d<e;d++)if(d in a&&a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(F&&a.lastIndexOf===F)return a.lastIndexOf(b);for(var d=a.length;d--;)if(d in a&&a[d]===b)return d;return-1};b.range=function(a,b,d){if(arguments.length<=
1){b=a||0;a=0}for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;){g[f++]=a;a=a+d}return g};var H=function(){};b.bind=function(a,c){var d,e;if(a.bind===t&&t)return t.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));H.prototype=a.prototype;var b=new H,g=a.apply(b,e.concat(i.call(arguments)));return Object(g)===g?g:b}};b.bindAll=function(a){var c=
i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,c){var d={};c||(c=b.identity);return function(){var e=c.apply(this,arguments);return b.has(d,e)?d[e]:d[e]=a.apply(this,arguments)}};b.delay=function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(null,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,f,g,h,i,j=b.debounce(function(){h=
g=false},c);return function(){d=this;e=arguments;f||(f=setTimeout(function(){f=null;h&&a.apply(d,e);j()},c));g?h=true:i=a.apply(d,e);j();g=true;return i}};b.debounce=function(a,b,d){var e;return function(){var f=this,g=arguments;d&&!e&&a.apply(f,g);clearTimeout(e);e=setTimeout(function(){e=null;d||a.apply(f,g)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments,0));
return b.apply(this,d)}};b.compose=function(){var a=arguments;return function(){for(var b=arguments,d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=L||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&
c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.pick=function(a){var c={};j(b.flatten(i.call(arguments,1)),function(b){b in a&&(c[b]=a[b])});return c};b.defaults=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return r(a,b,[])};b.isEmpty=
function(a){if(a==null)return true;if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=p||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)};b.isArguments=function(a){return l.call(a)=="[object Arguments]"};b.isArguments(arguments)||(b.isArguments=function(a){return!(!a||!b.has(a,"callee"))});b.isFunction=function(a){return l.call(a)=="[object Function]"};
b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isFinite=function(a){return b.isNumber(a)&&isFinite(a)};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"};b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,
b){return K.call(a,b)};b.noConflict=function(){s._=I;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")};b.result=function(a,c){if(a==null)return null;var d=a[c];return b.isFunction(d)?d.call(a):d};b.mixin=function(a){j(b.functions(a),function(c){M(c,b[c]=a[c])})};var N=0;b.uniqueId=
function(a){var b=N++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var u=/.^/,n={"\\":"\\","'":"'",r:"\r",n:"\n",t:"\t",u2028:"\u2028",u2029:"\u2029"},v;for(v in n)n[n[v]]=v;var O=/\\|'|\r|\n|\t|\u2028|\u2029/g,P=/\\(\\|'|r|n|t|u2028|u2029)/g,w=function(a){return a.replace(P,function(a,b){return n[b]})};b.template=function(a,c,d){d=b.defaults(d||{},b.templateSettings);a="__p+='"+a.replace(O,function(a){return"\\"+n[a]}).replace(d.escape||
u,function(a,b){return"'+\n_.escape("+w(b)+")+\n'"}).replace(d.interpolate||u,function(a,b){return"'+\n("+w(b)+")+\n'"}).replace(d.evaluate||u,function(a,b){return"';\n"+w(b)+"\n;__p+='"})+"';\n";d.variable||(a="with(obj||{}){\n"+a+"}\n");var a="var __p='';var print=function(){__p+=Array.prototype.join.call(arguments, '')};\n"+a+"return __p;\n",e=new Function(d.variable||"obj","_",a);if(c)return e(c,b);c=function(a){return e.call(this,a,b)};c.source="function("+(d.variable||"obj")+"){\n"+a+"}";return c};
b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var x=function(a,c){return c?b(a).chain():a},M=function(a,c){m.prototype[a]=function(){var a=i.call(arguments);J.call(a,this._wrapped);return x(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return x(d,
this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return x(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain=true;return this};m.prototype.value=function(){return this._wrapped}}).call(this);

View file

@ -1,302 +0,0 @@
# Copyright 2018 New Vector Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Identity Service Establishing Associations API"
version: "1.0.0"
host: localhost:8090
schemes:
- https
basePath: /_matrix/identity/api/v1
consumes:
- application/json
produces:
- application/json
paths:
"/3pid/getValidated3pid":
get:
summary: Check whether ownership of a 3pid was validated.
description: |-
Determines if a given 3pid has been validated by a user.
operationId: getValidated3pid
deprecated: true
parameters:
- in: query
type: string
name: sid
description: The Session ID generated by the ``requestToken`` call.
required: true
x-example: 1234
- in: query
type: string
name: client_secret
description: The client secret passed to the ``requestToken`` call.
required: true
x-example: monkeys_are_GREAT
responses:
200:
description: Validation information for the session.
examples:
application/json: {
"medium": "email",
"validated_at": 1457622739026,
"address": "louise@bobs.burgers"
}
schema:
type: object
properties:
medium:
type: string
description: The medium type of the 3pid.
address:
type: string
description: The address of the 3pid being looked up.
validated_at:
type: integer
description: |-
Timestamp, in milliseconds, indicating the time that the 3pid
was validated.
required: ['medium', 'address', 'validated_at']
400:
description: |-
The session has not been validated.
If the session has not been validated, then ``errcode`` will be
``M_SESSION_NOT_VALIDATED``. If the session has timed out, then
``errcode`` will be ``M_SESSION_EXPIRED``.
examples:
application/json: {
"errcode": "M_SESSION_NOT_VALIDATED",
"error": "This validation session has not yet been completed"
}
schema:
$ref: "../client-server/definitions/errors/error.yaml"
404:
description: The Session ID or client secret were not found.
examples:
application/json: {
"errcode": "M_NO_VALID_SESSION",
"error": "No valid session was found matching that sid and client secret"
}
schema:
$ref: "../client-server/definitions/errors/error.yaml"
"/3pid/bind":
post:
summary: Publish an association between a session and a Matrix user ID.
description: |-
Publish an association between a session and a Matrix user ID.
Future calls to ``/lookup`` for any of the session\'s 3pids will return
this association.
Note: for backwards compatibility with previous drafts of this
specification, the parameters may also be specified as
``application/x-form-www-urlencoded`` data. However, this usage is
deprecated.
operationId: bind
deprecated: true
parameters:
- in: body
name: body
schema:
type: object
example: {
"sid": "1234",
"client_secret": "monkeys_are_GREAT",
"mxid": "@ears:matrix.org"
}
properties:
sid:
type: string
description: The Session ID generated by the ``requestToken`` call.
client_secret:
type: string
description: The client secret passed to the ``requestToken`` call.
mxid:
type: string
description: The Matrix user ID to associate with the 3pids.
required: ["sid", "client_secret", "mxid"]
responses:
200:
description: The association was published.
examples:
application/json: {
"address": "louise@bobs.burgers",
"medium": "email",
"mxid": "@ears:matrix.org",
"not_before": 1428825849161,
"not_after": 4582425849161,
"ts": 1428825849161,
"signatures": {
"matrix.org": {
"ed25519:0": "ENiU2YORYUJgE6WBMitU0mppbQjidDLanAusj8XS2nVRHPu+0t42OKA/r6zV6i2MzUbNQ3c3MiLScJuSsOiVDQ"
}
}
}
schema:
type: object
properties:
address:
type: string
description: The 3pid address of the user being looked up.
medium:
type: string
description: The medium type of the 3pid.
mxid:
type: string
description: The Matrix user ID associated with the 3pid.
not_before:
type: integer
description: A unix timestamp before which the association is not known to be valid.
not_after:
type: integer
description: A unix timestamp after which the association is not known to be valid.
ts:
type: integer
description: The unix timestamp at which the association was verified.
signatures:
type: object
description: |-
The signatures of the verifying identity servers which show that the
association should be trusted, if you trust the verifying identity
services.
$ref: "../../schemas/server-signatures.yaml"
required:
- address
- medium
- mxid
- not_before
- not_after
- ts
- signatures
400:
description: |-
The association was not published.
If the session has not been validated, then ``errcode`` will be
``M_SESSION_NOT_VALIDATED``. If the session has timed out, then
``errcode`` will be ``M_SESSION_EXPIRED``.
examples:
application/json: {
"errcode": "M_SESSION_NOT_VALIDATED",
"error": "This validation session has not yet been completed"
}
schema:
$ref: "../client-server/definitions/errors/error.yaml"
404:
description: The Session ID or client secret were not found
examples:
application/json: {
"errcode": "M_NO_VALID_SESSION",
"error": "No valid session was found matching that sid and client secret"
}
schema:
$ref: "../client-server/definitions/errors/error.yaml"
"/3pid/unbind":
post:
summary: Remove an association between a session and a Matrix user ID.
description: |-
Remove an association between a session and a Matrix user ID.
Future calls to ``/lookup`` for any of the session's 3pids will not
return the removed association.
The identity server should authenticate the request in one of two
ways:
1. The request is signed by the homeserver which controls the ``user_id``.
2. The request includes the ``sid`` and ``client_secret`` parameters,
as per ``/3pid/bind``, which proves ownership of the 3PID.
If this endpoint returns a JSON Matrix error, that error should be passed
through to the client requesting an unbind through a homeserver, if the
homeserver is acting on behalf of a client.
operationId: unbind
deprecated: true
parameters:
- in: body
name: body
schema:
type: object
example: {
"sid": "1234",
"client_secret": "monkeys_are_GREAT",
"mxid": "@ears:example.org",
"threepid": {
"medium": "email",
"address": "monkeys_have_ears@example.org"
}
}
properties:
sid:
type: string
description: The Session ID generated by the ``requestToken`` call.
client_secret:
type: string
description: The client secret passed to the ``requestToken`` call.
mxid:
type: string
description: The Matrix user ID to remove from the 3pids.
threepid:
type: object
title: 3PID
description: |-
The 3PID to remove. Must match the 3PID used to generate the session
if using ``sid`` and ``client_secret`` to authenticate this request.
properties:
medium:
type: string
description: |-
A medium from the `3PID Types`_ Appendix, matching the medium
of the identifier to unbind.
address:
type: string
description: The 3PID address to remove.
required: ['medium', 'address']
required: ["threepid", "mxid"]
responses:
200:
description: The association was successfully removed.
examples:
application/json: {}
schema:
type: object
400:
description: |-
If the response body is not a JSON Matrix error, the identity server
does not support unbinds. If a JSON Matrix error is in the response
body, the requesting party should respect the error.
404:
description: |-
If the response body is not a JSON Matrix error, the identity server
does not support unbinds. If a JSON Matrix error is in the response
body, the requesting party should respect the error.
403:
description: |-
The credentials supplied to authenticate the request were invalid.
This may also be returned if the identity server does not support
the chosen authentication method (such as blocking homeservers from
unbinding identifiers).
examples:
application/json: {
"errcode": "M_FORBIDDEN",
"error": "Invalid homeserver signature"
}
schema:
$ref: "../client-server/definitions/errors/error.yaml"
501:
description: |-
If the response body is not a JSON Matrix error, the identity server
does not support unbinds. If a JSON Matrix error is in the response
body, the requesting party should respect the error.

Some files were not shown because too many files have changed in this diff Show more