Compare commits

...

621 commits
v1.4 ... main

Author SHA1 Message Date
Andrew Morgan 2f6867348f
Replace Twitter link in footer with Masto/Bluesky (#2282)
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-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
673 changed files with 35594 additions and 19434 deletions

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 -->

1
.github/_typos.toml vendored
View file

@ -10,3 +10,4 @@ au1ba7o = "au1ba7o"
[default.extend-words]
Appy = "Appy"
fo = "fo"
Iy = "Iy"

View file

@ -1,11 +1,3 @@
---
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

View file

@ -10,7 +10,7 @@ jobs:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: scripts/check-newsfragments

View file

@ -1,4 +1,9 @@
name: "Spec"
env:
HUGO_VERSION: 0.148.1
PYTHON_VERSION: 3.13
on:
push:
branches:
@ -18,33 +23,72 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: "📥 Source checkout"
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: " Setup Node"
uses: actions/setup-node@v2
uses: actions/setup-node@v4
with:
node-version: '14'
- name: "⚙️ npm"
working-directory: "./scripts"
run: |
npm install
node-version: '20'
- name: "🔎 Run validator"
working-directory: "./scripts"
run: |
node validator.js -s "../data/api/application-service"
node validator.js -s "../data/api/client-server"
node validator.js -s "../data/api/push-gateway"
npx @redocly/cli@latest lint data/api/*/*.yaml
check-examples:
check-event-examples:
name: "🔎 Check Event schema examples"
runs-on: ubuntu-latest
container: uhoreg/matrix-doc-build
steps:
- name: "📥 Source checkout"
uses: actions/checkout@v2
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: |
/env/bin/python scripts/check-event-schema-examples.py
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
@ -60,76 +104,127 @@ jobs:
# the asterisk matching behaviour, not the literal string.
run: |
if [ "${GITHUB_EVENT_NAME}" == "pull_request" ]; then
echo ::set-output name=baseURL::/
echo "baseURL=/" >> "$GITHUB_OUTPUT"
elif [[ "${GITHUB_REF}" == refs/tags/* ]]; then
echo ::set-output name=baseURL::"/${GITHUB_REF/refs\/tags\//}"
echo "baseURL=/${GITHUB_REF/refs\/tags\//}" >> "$GITHUB_OUTPUT"
else
echo ::set-output name=baseURL::/unstable
echo "baseURL=/unstable" >> "$GITHUB_OUTPUT"
fi
build-openapi:
name: "🐍 Build OpenAPI definitions"
runs-on: ubuntu-latest
container: "python:3.9"
needs: [calculate-baseurl]
steps:
- name: "📥 Source checkout"
uses: actions/checkout@v2
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: |
python3 -m venv env && . env/bin/activate
pip install -r scripts/requirements.txt
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-swagger.py \
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-swagger.py \
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-swagger.py \
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@v2
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]
needs: [calculate-baseurl, build-openapi, generate-changelog]
# run even if generate-changelog was skipped
if: ${{ always() }}
steps:
- name: " Setup Node"
uses: actions/setup-node@v2
uses: actions/setup-node@v4
with:
node-version: '14'
node-version: '20'
- name: " Setup Hugo"
uses: peaceiris/actions-hugo@c03b5dbed22245418539b65eb9a3b1d5fdd9a0a6
uses: peaceiris/actions-hugo@75d2e84710de30f6ff7268e08f310b60ef14033f # v3.0.0
with:
hugo-version: '0.93.3'
hugo-version: ${{ env.HUGO_VERSION }}
extended: true
- name: "📥 Source checkout"
uses: actions/checkout@v2
with:
submodules: 'recursive'
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@v2
uses: actions/download-artifact@v4
with:
name: openapi-artifact
- name: "📝 Unpack the OpenAPI definitions in the right location"
@ -139,11 +234,39 @@ jobs:
- name: "📦 Tarball creation"
run: tar -czf spec.tar.gz spec
- name: "📤 Artifact upload"
uses: actions/upload-artifact@v2
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
@ -151,30 +274,29 @@ jobs:
if: ${{ startsWith(github.ref, 'refs/tags/') }}
steps:
- name: " Setup Node"
uses: actions/setup-node@v2
uses: actions/setup-node@v4
with:
node-version: '14'
node-version: '20'
- name: " Setup Hugo"
uses: peaceiris/actions-hugo@c03b5dbed22245418539b65eb9a3b1d5fdd9a0a6
uses: peaceiris/actions-hugo@75d2e84710de30f6ff7268e08f310b60ef14033f # v3.0.0
with:
hugo-version: '0.93.3'
hugo-version: ${{ env.HUGO_VERSION }}
extended: true
- name: "📥 Source checkout"
uses: actions/checkout@v2
with:
submodules: 'recursive'
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: |
echo -e '[params.version]\nstatus="historical"' > historical.toml
hugo --config config.toml,historical.toml --baseURL "/${GITHUB_REF/refs\/tags\//}" -d "spec"
hugo --baseURL "/${GITHUB_REF/refs\/tags\//}" -d "spec"
- name: "📥 Spec definition download"
uses: actions/download-artifact@v2
uses: actions/download-artifact@v4
with:
name: openapi-artifact
- name: "📝 Unpack the OpenAPI definitions in the right location"
@ -184,7 +306,7 @@ jobs:
- name: "📦 Tarball creation"
run: tar -czf spec-historical.tar.gz spec
- name: "📤 Artifact upload"
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: spec-historical-artifact
path: spec-historical.tar.gz

View file

@ -25,17 +25,20 @@ jobs:
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='${{github.event.workflow_run.head_repository.owner.login}}:${{github.event.workflow_run.head_branch}}'
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 "::set-output name=prnumber::$pr_number"
echo "prnumber=$pr_number" >> "$GITHUB_OUTPUT"
- name: '📥 Download artifact'
uses: dawidd6/action-download-artifact@af92a8455a59214b7b932932f2662fdefbd78126 # v2.15.0
uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3.1.4
with:
workflow: main.yaml
run_id: ${{ github.event.workflow_run.id }}
@ -46,8 +49,7 @@ jobs:
- name: "📤 Deploy to Netlify"
id: netlify
# v1.2.2
uses: nwtgck/actions-netlify@f517512ae75beec8896aa7b027c1c72f01816200
uses: nwtgck/actions-netlify@4cbaf4c08f1a7bfa537d6113472ef4424e4eb654 # v3.0.0
with:
publish-dir: spec
deploy-message: "Deploy from GitHub Actions"

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

View file

@ -11,9 +11,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions Repository
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Check spelling of proposals
uses: crate-ci/typos@9be36f97fdbe645ee9a12449fb13aca856c2516a
uses: crate-ci/typos@f2c1f08a7b3c1b96050cb786baaa2a94797bdb7d # v1.20.10
with:
config: ${{github.workspace}}/.github/_typos.toml
config: ${{github.workspace}}/.github/_typos.toml

3
.gitignore vendored
View file

@ -2,7 +2,7 @@ node_modules
/data/msc
/env*
/resources
/scripts/swagger
/scripts/openapi
/scripts/tmp
/hugo-config.toml
/public
@ -14,3 +14,4 @@ _rendered.rst
/spec/
changelogs/rendered.*
.hugo_build.lock
hugo_stats.json

4
.gitmodules vendored
View file

@ -1,4 +0,0 @@
[submodule "themes/docsy"]
path = themes/docsy
url = https://github.com/matrix-org/docsy.git
branch = master

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

@ -12,7 +12,7 @@ The documentation style is described at
https://github.com/matrix-org/matrix-spec/blob/main/meta/documentation_style.rst.
Matrix-spec workflows
--------------------
---------------------
Specification changes
~~~~~~~~~~~~~~~~~~~~~
@ -72,12 +72,16 @@ ask.
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/twisted/towncrier>`_ in the
form of "news fragments". The news fragments for the client-server API are stored
under ``changelogs/client_server/newsfragments``.
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:
@ -95,13 +99,12 @@ 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 formatting must be done using Markdown.
Changes that do not change the spec, such as changes to the build script, formatting,
CSS, etc should not get a news fragment.
Sign off
--------
@ -116,7 +119,7 @@ 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 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
`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::
@ -162,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.

View file

@ -1,6 +1,6 @@
# Matrix Specification
This repository contains the Matrix Specification, rendered at [spec.matrix.org](http://spec.matrix.org/).
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.
@ -22,7 +22,7 @@ The Matrix spec is compiled with [Hugo](https://gohugo.io/) (a static site gener
* `/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 Swagger/OpenAPI definitions and schemas are.
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.
@ -52,6 +52,7 @@ Additionally, the following directories may be of interest:
* `/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
@ -60,20 +61,19 @@ 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.93.0 is required.
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 `git submodule update --init --recursive` for good measure.
3. Run `npm i` to install the dependencies. Note that this will require NodeJS to be installed.
4. Run `npm run get-proposals` to seed proposal data. This is merely for populating the content of the "Spec Change Proposals"
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.
5. Run `hugo serve` (or `docker run --rm -it -v $(pwd):/src -p 1313:1313
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.
6. Edit the specification 🙂
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
@ -86,15 +86,13 @@ steps for authoring changes to the specification and instead of `hugo serve` run
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 swagger definitions, create a python3 virtualenv and activate it. Then run `pip install -r ./scripts/requirements.txt`
and finally `python ./scripts/dump-swagger.py` to generate it to `./scripts/swagger/api-docs.json`. To make use of the generated file,
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:
* It can be uploaded from your filesystem to an online editor/viewer such as [on the swagger website](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.
* 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

View file

@ -0,0 +1,63 @@
/* cyrillic-ext */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 100 900;
font-display: swap;
src: local('Inter'), url(../../fonts/Inter-cyrillic-ext-normal.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 100 900;
font-display: swap;
src: local('Inter'), url(../../fonts/Inter-cyrillic-normal.woff2) format('woff2');
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 100 900;
font-display: swap;
src: local('Inter'), url(../../fonts/Inter-greek-ext-normal.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 100 900;
font-display: swap;
src: local('Inter'), url(../../fonts/Inter-greek-normal.woff2) format('woff2');
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 100 900;
font-display: swap;
src: local('Inter'), url(../../fonts/Inter-vietnamese-normal.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 100 900;
font-display: swap;
src: local('Inter'), url(../../fonts/Inter-latin-ext-normal.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 100 900;
font-display: swap;
src: local('Inter'), url(../../fonts/Inter-latin-normal.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

View file

@ -3,7 +3,7 @@
## Inter.css
`Inter.css` is a local copy of
https://fonts.googleapis.com/css?family=Inter:300,300i,400,400i,700,700i, modified to pull
https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,100..900&display=swap, modified to pull
font files (`.woff2`) from local sources. It was created
using `download_google_fonts_css.py`.
@ -15,9 +15,9 @@ load them. Example call:
```sh
python3 download_google_fonts_css.py \
"https://fonts.googleapis.com/css?family=Inter:300,300i,400,400i,700,700i" \
../../fonts \
../../fonts
"https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,100..900&display=swap" \
../../../static/fonts \
../../fonts
```
Which would pop out a `Inter.css` file that should be `@import url("Inter.css")`d

View file

@ -84,7 +84,6 @@ new_css_file_lines = []
font_lang = None
font_family = None
font_style = None
font_weight = 0
for line in original_contents:
# Check if this line contains a font URL
match = re.match(r".*url\((.*)\) format.*", line)
@ -96,16 +95,17 @@ for line in original_contents:
resp = requests.get(font_url)
if resp.status_code == 200:
# Save the font file
filename = "%s-%s-%s-%d.woff2" % (
font_family, font_lang, font_style, font_weight
filename = "%s-%s-%s.woff2" % (
font_family, font_lang, font_style
)
font_filepath = font_output_dir + filename
with open(font_filepath, "wb") as f:
print("Writing font file:", font_filepath)
f.write(resp.content)
# Replace google URL with local URL
line = re.sub(r"url\(.+\)", f"url({css_font_path + filename})", line)
# Replace google URL with local URL and allow the browser to load the
# local font if it exists.
line = re.sub(r"url\(.+?\)", f"local('{font_family}'), url({css_font_path + filename})", line)
else:
print("Warning: failed to download font file:", font_url)
@ -121,9 +121,6 @@ for line in original_contents:
font_style_match = re.match(r".*font-style: (.+);$", line)
if font_style_match:
font_style = font_style_match.group(1)
font_weight_match = re.match(r".*font-weight: (.+);$", line)
if font_weight_match:
font_weight = int(font_weight_match.group(1))
# Append the potentially modified line to the new css file
new_css_file_lines.append(line)

View file

@ -7,11 +7,17 @@ https://www.diagrams.net/ is a great ([open source](https://github.com/jgraph/dr
tool for these sorts of things - include your `.drawio` file next to your diagram.
Suggested settings for diagrams.net:
* Export as PNG.
* 100% size.
* Export as WebP.
* 200% size.
* `20` for a border width.
* No transparent background, shadow, or grid.
* Include a copy of the diagram.
* Light appearance.
* No shadow, or grid.
To reference a diagram, use the absolute path when compiled. For example,
`![membership-flow-diagram](/diagrams/membership.png)`
To reference a diagram, use the `diagram` shortcode. For example:
```
{{% diagram name="membership" alt="Diagram presenting the possible membership state transitions" %}}
```
Where `name` is the file name without extension, and `alt` is a textual
replacement for the image, useful for accessibility.

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
assets/icons/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

12
assets/icons/favicon.svg Normal file
View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<style>
path { fill: #000000; }
@media (prefers-color-scheme: dark) {
path { fill: #ffffff; }
}
</style>
<path d="M 30,2.0000001 V 30 h -1 -2 v 2 h 5 V -3.3333334e-8 L 27,0 v 2 z"/>
<path d="M 9.9515939,10.594002 V 12.138 h 0.043994 c 0.3845141,-0.563728 0.8932271,-1.031728 1.4869981,-1.368 0.580003,-0.322998 1.244999,-0.485 1.993002,-0.485 0.72,0 1.376999,0.139993 1.971998,0.42 0.595,0.279004 1.047001,0.771001 1.355002,1.477001 0.338003,-0.500001 0.795999,-0.941 1.376999,-1.323001 0.579999,-0.382998 1.265998,-0.574 2.059998,-0.574 0.602003,0 1.160002,0.074 1.674002,0.220006 0.514,0.148006 0.953998,0.382998 1.321999,0.706998 0.36601,0.322999 0.653001,0.746 0.859,1.268002 0.205001,0.521998 0.307994,1.15 0.307994,1.887001 v 7.632997 h -3.127 v -6.463997 c 0,-0.383002 -0.01512,-0.743002 -0.04399,-1.082003 -0.02079,-0.3072 -0.103219,-0.607113 -0.242003,-0.881998 -0.133153,-0.25081 -0.335962,-0.457777 -0.584001,-0.596002 -0.257008,-0.146003 -0.605998,-0.220006 -1.046997,-0.220006 -0.440002,0 -0.796003,0.085 -1.068,0.253002 -0.272013,0.170003 -0.485001,0.390002 -0.639001,0.662003 -0.159119,0.287282 -0.263585,0.601602 -0.307994,0.926997 -0.05197,0.346923 -0.07801,0.697217 -0.07801,1.048002 v 6.353999 h -3.128005 v -6.398 c 0,-0.338003 -0.0072,-0.673001 -0.02116,-1.004001 -0.01134,-0.313663 -0.07487,-0.623229 -0.187994,-0.915999 -0.107943,-0.276623 -0.300435,-0.512126 -0.550001,-0.673001 -0.25799,-0.168 -0.636,-0.253002 -1.134999,-0.253002 -0.198123,0.0083 -0.394383,0.04195 -0.584002,0.100006 -0.258368,0.07446 -0.498455,0.201827 -0.704999,0.373985 -0.227981,0.183987 -0.421999,0.449 -0.583997,0.794003 -0.161008,0.345978 -0.242003,0.797998 -0.242003,1.356998 v 6.618999 H 6.99942 V 10.590001 Z"/>
<path d="M 2,2.0000001 V 30 h 3 v 2 H 0 V 9.2650922e-8 L 5,0 v 2 z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

169
assets/js/toc.js Normal file
View file

@ -0,0 +1,169 @@
/*
Copyright 2020, 2021 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.
*/
/*
Only call the given function once every 250 milliseconds to avoid impacting
the performance of the browser.
Source: https://remysharp.com/2010/07/21/throttling-function-calls
*/
function throttle(fn) {
const threshold = 250;
let last = null;
let deferTimer = null;
return function (...args) {
const now = new Date();
if (last && now < last + threshold) {
// Hold on to it.
clearTimeout(deferTimer);
deferTimer = setTimeout(() => {
last = now;
fn.apply(this, args);
}, threshold);
} else {
last = now;
fn.apply(this, args);
}
}
}
/*
Get the list of headings that appear in the ToC.
This is not as simple as querying all the headings in the content, because
some headings are not rendered in the ToC (e.g. in the endpoint definitions).
*/
function getHeadings() {
let headings = [];
// First get the anchors in the ToC.
const toc_anchors = document.querySelectorAll("#toc nav a");
for (const anchor of toc_anchors) {
// Then get the heading from its selector in the anchor's href.
const selector = anchor.getAttribute("href");
if (!selector) {
console.error("Got ToC anchor without href");
continue;
}
const heading = document.querySelector(selector);
if (!heading) {
console.error("Heading not found for selector:", selector);
continue;
}
headings.push(heading);
}
return headings;
}
/*
Get the heading of the text visible at the top of the viewport.
This is the first heading above or at the top of the viewport.
*/
function getCurrentHeading(headings, headerOffset) {
const scrollTop = document.documentElement.scrollTop;
let prevHeading = null;
let currentHeading = null;
let index = 0;
for (const heading of headings) {
// Compute the position compared to the viewport.
const rect = heading.getBoundingClientRect();
if (rect.top >= headerOffset && rect.top <= headerOffset + 30) {
// This heading is at the top of the viewport, this is the current heading.
currentHeading = heading;
break;
}
if (rect.top >= headerOffset) {
// This is in or below the viewport, the current heading should be the
// previous one.
if (prevHeading) {
currentHeading = prevHeading;
} else {
// The first heading does not have a prevHeading.
currentHeading = heading;
}
break;
}
prevHeading = heading;
index += 1;
}
// At the bottom of the page we might not have a heading.
if (!currentHeading) {
currentHeading = prevHeading;
}
return currentHeading;
}
/*
Select the ToC entry that points to the given ID.
Clear any previously highlighted ToC items, select the new one,
and adjust the ToC scroll position.
*/
function selectTocEntry(id) {
// Deselect previously selected entries.
const activeEntries = document.querySelectorAll("#toc nav a.active");
for (const activeEntry of activeEntries) {
activeEntry.classList.remove('active');
}
// Find the new entry and select it.
const newEntry = document.querySelector(`#toc nav a[href="#${id}"]`);
if (!newEntry) {
console.error("ToC entry not found for ID:", id);
return;
}
newEntry.classList.add('active');
// Don't scroll the sidebar nav if the main content is not scrolled
const nav = document.querySelector("#td-section-nav");
const content = document.querySelector("html");
if (content.scrollTop !== 0) {
nav.scrollTop = newEntry.offsetTop - 100;
} else {
nav.scrollTop = 0;
}
}
/*
Track when the view is scrolled, and use this to update the highlight for the
corresponding ToC entry.
*/
window.addEventListener('DOMContentLoaded', () => {
// Part of the viewport is below the header so we should take it into account.
const headerOffset = document.querySelector("body > header > nav").clientHeight;
const headings = getHeadings();
const onScroll = throttle((_e) => {
// Update the ToC.
let heading = getCurrentHeading(headings, headerOffset);
selectTocEntry(heading.id);
});
// Initialize the state of the ToC.
onScroll();
// Listen to scroll and resizing changes.
document.addEventListener('scroll', onScroll, false);
document.addEventListener('resize', onScroll, false);
});

View file

@ -0,0 +1,114 @@
/*
Copyright 2025 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.
*/
// Determine the current version as defined in hugo.toml. This will either be
// "unstable" or "vX.X" and doesn't depend on the current URL.
//
// The oddity below is an attempt at producing a readable Hugo template while
// avoiding JS syntax errors in your IDE.
const currentVersion = `{{ if eq .Site.Params.version.status "unstable" }}
{{- /**/ -}}
unstable
{{- /**/ -}}
{{ else }}
{{- /**/ -}}
{{ printf "v%s.%s" .Site.Params.version.major .Site.Params.version.minor }}
{{- /**/ -}}
{{ end }}`;
// Determine the current version segment by regex matching the URL. This will either
// be "unstable", "latest", "vX.X" (production) or undefined (local & netlify).
const href = window.location.href;
const segmentMatches = href.match(/(?<=\/)unstable|latest|v\d+.\d+(?=\/)/);
const currentSegment = segmentMatches ? segmentMatches[0] : undefined;
// Determine the selected menu element. If we were able to obtain the version
// segment from the URL (production), use that. Otherwise (local & netlify),
// fall back to the version as defined in Hugo.
const selected = currentSegment ?? currentVersion;
function appendVersion(parent, name, segment, url) {
// The list item
const li = document.createElement("li");
if (segment === selected) {
li.classList.add("version-picker-selected");
}
if (segment === "latest") {
li.classList.add("version-picker-latest");
}
parent.appendChild(li);
// The link
const a = document.createElement("a");
a.classList.add("dropdown-item");
a.setAttribute("href", url);
li.appendChild(a);
// Handle clicks manually to preserve the current path / fragment
a.addEventListener("click", (ev) => {
// If the URL is a relative link (i.e. the historical versions changelog), just
// let the browser load it
if (url.startsWith("/")) {
return;
}
// If we couldn't determine the current segment, we cannot safely replace
// it and have to let the browser load the (root) URL instead
if (!currentSegment) {
return;
}
// Otherwise, stop further event handling and replace the segment
ev.preventDefault();
ev.stopPropagation();
window.location.href = href.replace(`/${currentSegment}/`, `/${segment}/`);
});
// The link text
const text = document.createTextNode(name);
a.appendChild(text);
}
// If we're in the unstable version, we're the latest thing and can just load
// versions.json from our own resources. Otherwise, we fall back to loading it
// from /unstable/versions.json, assuming we are on the spec.matrix.org deployment.
const url = currentVersion === "unstable"
? '{{ .Site.Home.Permalink }}versions.json'
: "/unstable/versions.json";
fetch(url)
.then(r => r.json())
.then(versions => {
// Find the surrounding list element
const ul = document.querySelector("ul#version-selector");
if (!ul) {
console.error("Cannot populate version selector: ul element not found");
return;
}
// Add a entries for the unstable version and the "latest" shortcut
appendVersion(ul, "unstable", "unstable", "https://spec.matrix.org/unstable");
const latestName = versions?.length ? `latest (${versions[0].name})` : "latest";
appendVersion(ul, latestName, "latest", "https://spec.matrix.org/latest");
// Add an entry for each proper version
for (const version of versions) {
appendVersion(ul, version.name, version.name, `https://spec.matrix.org/${version.name}`);
}
// For historical versions, simply link to the changelog
appendVersion(ul, "historical", "historical", '{{ (site.GetPage "changelog/historical").RelPermalink }}');
});

View file

@ -18,9 +18,6 @@ limitations under the License.
Custom SCSS for the Matrix spec
*/
@import "variables_project";
@import "variables";
/* Import the CSS classes for the syntax highlighter.
*
* This is generated with:
@ -29,12 +26,6 @@ Custom SCSS for the Matrix spec
*/
@import "syntax.scss";
/* Workaround for https://github.com/google/docsy/issues/1116:
* fix scroll-anchoring */
.td-outer {
height: auto;
}
/* Overrides for the navbar */
.td-navbar {
box-shadow: 0px 0px 8px rgba(179, 179, 179, 0.25);
@ -43,15 +34,36 @@ Custom SCSS for the Matrix spec
.navbar-brand {
font-size: 1.1rem;
/* Allow the text to wrap if it is wider than the viewport */
text-align: center;
white-space: normal;
.navbar-version {
color: $secondary;
}
}
.nav-link {
font-weight: normal;
}
a {
color: $black;
}
/* Make the version dropdown scroll if it's too large */
ul#version-selector {
max-height: 80vh;
overflow-y: auto;
}
ul#version-selector li.version-picker-selected a {
font-weight: bold;
}
ul#version-selector li.version-picker-latest a {
color: $secondary;
}
}
/* Styles for the sidebar nav */
@ -68,9 +80,8 @@ Custom SCSS for the Matrix spec
margin-top: 1rem;
}
&>.td-sidebar-nav__section > li > a.td-sidebar-link {
font-weight: $font-weight-bold;
font-size: 1.3rem;
.td-sidebar-nav__section .ul-1 ul {
padding-left: 0;
}
/* This is to make the width of the items that have sub-items (like room versions)
@ -79,12 +90,20 @@ Custom SCSS for the Matrix spec
padding-right: 0 !important;
}
a.indent-1 {
.ul-1 > li > a {
padding-left: 1rem !important;
}
a.indent-2 {
padding-left: 2rem;
.ul-2 > li > a {
padding-left: 2rem !important;
}
a.td-sidebar-link.tree-root {
color: $gray-800;
font-weight: $font-weight-bold;
font-size: 1.3rem;
margin-bottom: 0;
border-bottom: none;
}
a, a.td-sidebar-link {
@ -103,12 +122,11 @@ Custom SCSS for the Matrix spec
&.active, &active:hover {
background-color: $secondary-background;
font-weight: $font-weight-normal;
}
}
}
@media (min-width: 768px) {
@include media-breakpoint-up(md) {
@supports (position: sticky) {
.td-sidebar-nav {
/* This overrides calc(100vh - 10rem);, which gives us a blank space at the bottom of the sidebar */
@ -118,8 +136,11 @@ Custom SCSS for the Matrix spec
}
/* Customise footer */
footer {
.td-footer {
box-shadow: 0px 0px 8px rgba(179, 179, 179, 0.25);
padding-top: 2rem;
color: var(--bs-body-color);
background-color: var(--bs-body-color-bg);
}
/* Auto numbering for headings */
@ -165,6 +186,13 @@ footer {
}
/* Remove some padding before the main content, when the sidebar is disabled */
.td-main main {
@include media-breakpoint-down(md) {
padding-top: 0;
}
}
/* Adjust the scroll margin for everything in the main content, so that
* it doesn't disappear behind the header bar */
.td-content * {
@ -229,6 +257,69 @@ footer {
}
.endpoints-toc {
summary {
cursor: pointer;
font-weight: $font-weight-bold;
font-size: 1.05rem;
margin-bottom: 0.5rem;
}
.endpoint-list {
list-style: none;
padding-left: 0;
margin: 0;
}
.endpoint-list li {
margin: 0.2rem 0;
}
.endpoint-list a {
text-decoration: none;
color: inherit;
padding: 0.05rem 0.25rem;
border-radius: 0.2rem;
&:hover {
background-color: $secondary-background;
}
}
.endpoint-list .http-api-method {
margin-right: 0.35rem;
font-weight: $font-weight-bold;
}
.endpoint-path {
font-family: $font-family-monospace;
color: $secondary;
}
.endpoint-deprecated {
color: $danger;
font-weight: $font-weight-bold;
margin-left: 0.35rem;
}
.endpoint-module {
&:not(:first-child) {
margin-top: 0.75rem;
}
}
.endpoint-module-title {
// font-weight: $font-weight-bold;
font-size: 1.20rem;
margin-bottom: 0.35rem;
}
}
.page-description {
margin-bottom: 1rem;
color: inherit;
}
/* Styles for alert boxes */
.alert {
&.note {
@ -260,44 +351,25 @@ footer {
border-left-width: 5px;
background: $warning-background;
}
// XXX: See the added-in-paragraph.html shortcode for more information on these styles.
&.added-in-paragraph {
// Remove the padding and margin to remove the box look
margin: 0 !important; // !important on both to override table-related rules
padding: 0 !important;
// Make pairs of "added-in" and content inline to each other. We do pairs so authors can
// describe two paragraphs with added-in prefixes within a single box, reducing DOM
// complexity. Each paragraph is expected to be prefixed with an added-in, however.
//
// XXX: We assume the added-in and text will be rendered as paragraph elements.
> p {
display: inline;
}
> p:nth-child(2n) { // "even" rule to target just the content paragraphs
// Force a paragraph break after the content (insert a couple <br /> tags)
&::after {
content: '\A\A';
white-space: pre;
}
}
}
}
/* Styles for sections that are rendered from data, such as HTTP APIs and event schemas */
.rendered-data {
.td-content .rendered-data {
background-color: $secondary-lightest-background;
padding: 1rem;
margin: 1rem 0;
padding: 0.85rem;
margin: 0.85rem 0;
details {
summary {
padding: .5rem 0;
p {
max-width: 80%;
h1 {
margin: 0;
/* Ensure the disclosure control is vertically centred with the header text. */
vertical-align: middle;
}
}
p {
max-width: 80%;
}
}
.deprecated-inline {
@ -321,13 +393,19 @@ footer {
h2 {
font-weight: $font-weight-bold;
font-size: 1.3rem;
margin: 3rem 0 .5rem 0;
margin: 1.5rem 0 1rem 0;
}
h3 {
font-weight: $font-weight-bold;
font-size: 1.1rem;
margin: 1.5rem 0 .75rem 0;
margin: 1.5rem 0 1rem 0;
}
/* Reduce top margin of h3 if previous sibling is a h2 */
h2 + h3 {
margin-top: 1rem;
}
hr {
@ -336,16 +414,40 @@ footer {
}
p code, table code {
background-color: inherit;
background-color: transparent;
}
table {
table-layout: fixed;
width: 100%;
@media (max-width: 800px) {
/* Docsy by default applies `overflow-x: auto;` to tables, which
* results in annoying horizontal scrolling on mobile, so we instead
* switch to a fixed table layout on a narrow browser width.
* (On a wider width the default auto table-layout provides better readability.)
*
* Docsy makes all tables "responsive tables", which causes Bootstrap 4 to create
* tables with a "display" property of "block".
* However, for "table-layout: fixed" to be effective, an element must have a
* "display" property of "table".
*
* Thus, we override the "display" property here. This may no longer be necessary once
* Docsy updates to Bootstrap v5+: https://github.com/google/docsy/issues/470.
* For more details, see
* https://github.com/matrix-org/matrix-spec/pull/1295/files#r1010759688 */
display: table;
table-layout: fixed;
width: 100%;
// add some space between two tables when they are right next to each other
& + table {
margin-top: 4rem;
.col-name, .col-type, .col-status {
width: 25%;
}
.col-description {
width: 50%;
}
.col-status-description {
width: 75%;
}
}
caption {
@ -357,9 +459,15 @@ footer {
th, td, caption {
padding: 1rem;
border-top: 1px $table-border-color solid;
}
&.object-table, &.response-table {
td > p:last-child {
// Avoid unnecessary space at the bottom of the cells.
margin-bottom: 0;
}
&.object-table, &.response-table, &.content-type-table {
border: 1px $table-border-color solid;
caption {
@ -369,14 +477,12 @@ footer {
// ... but avoid double border between caption and table
border-bottom: 0;
background-color: $secondary-lighter-background;
}
caption, tbody tr {
background-color: $table-row-default;
}
tbody tr:nth-child(even) {
background-color: $table-row-alternate;
tbody tr {
--bs-table-striped-bg: #{$secondary-lighter-background};
}
}
@ -389,18 +495,41 @@ footer {
width: 15rem;
}
.col-name, .col-type, .col-status {
width: 25%;
}
/* Arrange rows vertically when horizontal space is constrained to avoid overflowing */
@include media-breakpoint-down(sm) {
/* Make cells full width without vertical margin */
&.basic-info th, &.basic-info td {
width: 100%;
display: inline-block;
margin-top: 0;
margin-bottom: 0;
}
.col-description {
width: 50%;
}
/* Remove border and padding between header & data cells to make them appear like a single cell */
&.basic-info td {
padding-top: 0;
border-top: none;
}
&.basic-info th {
border-bottom: none;
}
.col-status-description {
width: 75%;
/* Remove top border on all but the first header cell to prevent double borders between rows */
&.basic-info tr + tr th {
border-top: none;
}
}
}
/* Have consistent spacing around tables and examples */
table, .highlight {
margin-top: 0;
margin-bottom: 2rem;
/* We don't need the margin on the last child of the .rendered-data block */
&:last-child {
margin-bottom: 0;
}
}
pre {
@ -445,12 +574,25 @@ of .td-content. This applies the same style to any blockquotes that descend from
Make padding symmetrical (this selector is used in the default styles to apply padding-left: 3rem)
*/
.pl-md-5, .px-md-5 {
padding-right: 3rem;
@include media-breakpoint-up(md) {
padding-right: 3rem;
}
}
/* Adjust the width of math to match normal paragraphs */
@include media-breakpoint-up(lg) {
.katex-display {
max-width: 80%;
}
}
/* Adjust default styles for info banner */
.pageinfo-primary {
max-width: 80%;
@include media-breakpoint-up(lg) {
max-width: 80%;
}
margin-top: 0;
margin-right: 0;
margin-left: 0;
border: 0;
border-left: solid 5px $secondary;
@ -464,8 +606,42 @@ Make padding symmetrical (this selector is used in the default styles to apply p
padding-left: 100px;
}
/* Full-width tables */
.td-content > table {
width: 100%;
display: table;
/* Adjust the styling of definition lists. */
/* Add a little spacing between the term and its definition. */
dt {
margin-bottom: 0.15rem;
}
/* _reboot.scss deliberately sets margin-left to 0. Undo this. */
dd {
margin-left: 2rem;
}
/* docsy's _code.scss does only styles <code> elements matching
* .td-content { p code, li > code, table code }.
* Copy those styles here to apply to code <elements> in definition terms too. */
.td-content {
dt code {
color: inherit;
padding: 0.2em 0.4em;
margin: 0;
font-size: 85%;
word-break: normal;
background-color: rgba($black, 0.05);
border-radius: 0.25rem; // was $border-radius, but that var isn't accessible here.
}
}
/* Style for breadcrumbs */
.td-breadcrumbs {
padding: .75rem 1rem;
background-color: #eee;
border-radius: .25rem;
margin-bottom: 1rem;
.breadcrumb {
margin: 0;
}
}

View file

@ -20,7 +20,7 @@ $dark: #333;
$gray-100: #FBFBFB;
$secondary-background: #E5F5FB;
$secondary-lighter-background: #F4FaFC;
$secondary-lighter-background: #F4FAFC;
$secondary-lightest-background: #FBFDFD;
@ -33,12 +33,24 @@ $warning-background: #FFE0E0;
// colours for definition tables.
// the border colour matches that used for "highlight" divs
$table-border-color: rgba(black, .125);
$table-row-alternate: $secondary-lightest-background;
$table-row-default: $secondary-lighter-background;
$table-bg: $secondary-lightest-background;
/* Configure docsy to use the default system fonts instead of Google Fonts.
* See https://www.docsy.dev/docs/adding-content/lookandfeel/#fonts */
$td-enable-google-fonts: false;
/*
Opt to serve fonts locally by overriding web-font-path to be a non-google fonts URL.
This is only possible with our modified docsy theme: https://github.com/matrix-org/docsy
* The $font-family-sans-serif definition here overrides the default value set by docsy
* (https://github.com/matrix-org/docsy/blob/66a4e61d2d34edc7196b9df83a7d09cd4af14b47/assets/scss/_variables.scss#L68)
*/
$web-font-path: "../css/fonts/Inter.css";
$google_font_name: "Inter";
$font-family-sans-serif:
// Add "Inter" to the front, making it the default. The font itself is loaded via stylesheet
// links in layouts/partials/hooks/head-end.html.
"Inter",
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
// Insert fonts suited for mathematical symbols on different platforms before "Arial"
"STIX Two Math", "Cambria Math", "Noto Sans Math", "Dejavu Sans",
Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
// Disable smooth scrolling as it makes TOC highlighting jump during the transition.
$enable-smooth-scroll: false;

View file

@ -246,7 +246,7 @@ anyway.
In this arrangement there is now a room with both users may join but neither has
the power to invite any others. Both users now have the confidence that (at
least within the messaging system itself) their messages remain private and
cannot later be provably leaked to a third party. They can freely set the topic
cannot later be provably leaked to a third-party. They can freely set the topic
or name if they choose and add or edit any other state of the room. The update
powerlevel of each of these fixed properties should be 1, to lock out the users
from being able to alter them.

View file

@ -1,9 +1,9 @@
======================
Third Party Identities
Third-party Identities
======================
A description of how email addresses, mobile phone numbers and other third
party identifiers can be used to authenticate and discover users in Matrix.
A description of how email addresses, mobile phone numbers and other third-party
identifiers can be used to authenticate and discover users in Matrix.
Overview
@ -15,16 +15,16 @@ and phone numbers for contacts in their address book. They want to communicate
with those contacts in Matrix without manually exchanging a Matrix User ID with
them.
Third Party IDs
Third-party IDs
---------------
[[TODO(markjh): Describe the format of a 3PID]]
Third Party ID Associations
Third-party ID Associations
---------------------------
An Associaton is a binding between a Matrix User ID and a Third Party ID (3PID).
An Associaton is a binding between a Matrix User ID and a Third-party ID (3PID).
Each 3PID can be associated with one Matrix User ID at a time.
[[TODO(markjh): JSON format of the association.]]

View file

@ -1 +0,0 @@
Add HTML anchors for object definitions in the formatted specification.

View file

@ -1 +0,0 @@
Replace homeserver authorization approach with an `Authorization` header instead of `access_token` when talking to the application service, as per [MSC2832](https://github.com/matrix-org/matrix-spec-proposals/pull/2832).

View file

@ -1 +0,0 @@
Mention that the `/rooms/{roomId}/invite` endpoint will return a 200 response if the user is already invited to the room.

View file

@ -1 +0,0 @@
Fix various typos throughout the specification.

View file

@ -1 +0,0 @@
Describe return codes for account data endpoints, and clarify that per-room data does not inherit from the global data.

View file

@ -1 +0,0 @@
Fix various typos throughout the specification.

View file

@ -1 +0,0 @@
Fix various typos throughout the specification.

View file

@ -1 +0,0 @@
Clarify that policy rule globs work like ACL globs. Contributed by Nico.

View file

@ -1 +0,0 @@
Clarify the format of some structures in the End-to-end encryption module.

View file

@ -1 +0,0 @@
Fix various typos throughout the specification.

View file

@ -1 +0,0 @@
Add HTML anchors for object definitions in the formatted specification.

View file

@ -1 +0,0 @@
Tweak the styling of `<code>` snippets in tables rendered from OpenAPI definitions.

View file

@ -1 +0,0 @@
Fix various typos throughout the specification.

View file

@ -1 +0,0 @@
Update "API Standards" section to clarify how JSON is used.

View file

@ -1 +0,0 @@
Add a `.m.rule.room.server_acl` push rule to match `m.room.server_acl` events, as per [MSC3786](https://github.com/matrix-org/matrix-spec-proposals/pull/3786).

View file

@ -1 +0,0 @@
Remove unused policy room sharing mechanism, as per [MSC3844](https://github.com/matrix-org/matrix-spec-proposals/pull/3844).

View file

@ -1 +0,0 @@
Add `Cross-Origin-Resource-Policy` (CORP) headers to media repository, as per [MSC3828](https://github.com/matrix-org/matrix-spec-proposals/pull/3828).

View file

@ -1 +0,0 @@
Copy a room's `type` when upgrading it, as per [MSC3818](https://github.com/matrix-org/matrix-spec-proposals/pull/3818).

View file

@ -1 +0,0 @@
Add `room_types` filter and `room_type` response to `/publicRooms`, as per [MSC3827](https://github.com/matrix-org/matrix-spec-proposals/pull/3827).

View file

@ -1 +0,0 @@
Add a `.m.rule.room.server_acl` push rule to match `m.room.server_acl` events, as per [MSC3786](https://github.com/matrix-org/matrix-spec-proposals/pull/3786).

View file

@ -1 +0,0 @@
Clarify that the "device_id", "user_id" and "access_token" fields are required in the response body of `POST /_matrix/client/v3/login`.

View file

@ -1 +0,0 @@
Add `m.replace` relations (event edits), as per [MSC2676](https://github.com/matrix-org/matrix-spec-proposals/pull/2676).

View file

@ -1 +0,0 @@
Fix various typos throughout the specification.

View file

@ -1 +0,0 @@
Add `m.read.private` receipts, as per [MSC2285](https://github.com/matrix-org/matrix-spec-proposals/pull/2285).

View file

@ -1 +0,0 @@
Make `m.fully_read` optional on `/read_markers`, as per [MSC2285](https://github.com/matrix-org/matrix-spec-proposals/pull/2285).

View file

@ -1 +0,0 @@
Allow `m.fully_read` markers to be set from `/receipts`, as per [MSC2285](https://github.com/matrix-org/matrix-spec-proposals/pull/2285).

View file

@ -1 +0,0 @@
Reinforce the relationship of refreshed access tokens to transaction IDs.

View file

@ -1 +0,0 @@
Fix various typos throughout the specification.

View file

@ -1 +0,0 @@
Clarify enum values by separating possible values with commas.

View file

@ -1 +0,0 @@
Fix various typos throughout the specification.

View file

@ -1 +0,0 @@
Add threading via `m.thread` relations, as per [MSC3440](https://github.com/matrix-org/matrix-spec-proposals/pull/3440), [MSC3816](https://github.com/matrix-org/matrix-spec-proposals/pull/3816), [MSC3856](https://github.com/matrix-org/matrix-spec-proposals/pull/3856), and [MSC3715](https://github.com/matrix-org/matrix-spec-proposals/pull/3715).

View file

@ -1 +0,0 @@
Add per-thread notifications and read receipts, as per [MSC3771](https://github.com/matrix-org/matrix-spec-proposals/pull/3771) and [MSC3773](https://github.com/matrix-org/matrix-spec-proposals/pull/3773).

View file

@ -1,16 +0,0 @@
<!--
This is a header file for the generated changelog.
Variables:
VERSION = Replaced by the version number (eg: v1.2)
DATE = Replaced by the date (eg: April 01, 2021)
-->
## VERSION
<table class="release-info">
<tr><th>Git commit</th><td><a href="https://github.com/matrix-org/matrix-spec/tree/VERSION">https://github.com/matrix-org/matrix-spec/tree/VERSION</a></td>
<tr><th>Release date</th><td>DATE</td>
</table>
<!-- Intentionally blank line to ensure headers work in the concatenated changelog -->

View file

@ -1 +0,0 @@
Add HTML anchors for object definitions in the formatted specification.

View file

@ -1 +0,0 @@
Update "API Standards" section to clarify how JSON is used.

View file

@ -1 +0,0 @@
Render HTML anchors for object definition tables.

View file

@ -1 +0,0 @@
Add internal changes changelog section.

View file

@ -1 +0,0 @@
Give rendered-data sections a background and some padding.

View file

@ -1 +0,0 @@
Fix rendering of shortcodes within the client-server API.

View file

@ -1 +0,0 @@
Fix the spacing of mapping types generated from the OpenAPI spec.

View file

@ -0,0 +1 @@
Replace the Twitter link in the footer with our BlueSky and Mastodon socials.

View file

@ -22,5 +22,5 @@ r0.1.0
This is the first release of the Application Service specification. It
includes support for application services being able to interact with
homeservers and bridge third party networks, such as IRC, over to Matrix
homeservers and bridge third-party networks, such as IRC, over to Matrix
in a standard and accessible way.

View file

@ -211,7 +211,7 @@ Backwards Compatible Changes
- Add a common standard for user, room, and group mentions in messages. (`#1547 <https://github.com/matrix-org/matrix-doc/issues/1547>`_)
- Add server ACLs as an option for controlling federation in a room. (`#1550 <https://github.com/matrix-org/matrix-doc/issues/1550>`_)
- Add new push rules for encrypted events and ``@room`` notifications. (`#1551 <https://github.com/matrix-org/matrix-doc/issues/1551>`_)
- Add third party network room directories, as provided by application services. (`#1554 <https://github.com/matrix-org/matrix-doc/issues/1554>`_)
- Add third-party network room directories, as provided by application services. (`#1554 <https://github.com/matrix-org/matrix-doc/issues/1554>`_)
- Document the ``validated_at`` and ``added_at`` fields on ``GET /acount/3pid``. (`#1567 <https://github.com/matrix-org/matrix-doc/issues/1567>`_)
- Add an ``inhibit_login`` registration option. (`#1589 <https://github.com/matrix-org/matrix-doc/issues/1589>`_)
- Recommend that servers set a Content Security Policy for the content repository. (`#1600 <https://github.com/matrix-org/matrix-doc/issues/1600>`_)
@ -554,7 +554,7 @@ Since the draft stage, the following major changes have been made:
- Push notification
- History visibility
- Search
- Invites based on third party identifiers
- Invites based on third-party identifiers
- Room tagging
- Guest access
- Client config

View file

@ -48,7 +48,7 @@ r0.1.0
======
This is the first release of the Identity Service API. With this API, clients and
homeservers can store bindings between third party identifiers such as email addresses
homeservers can store bindings between third-party identifiers such as email addresses
and phone numbers, associating them with Matrix user IDs. Additionally, identity
servers offer the ability to invite third party users to Matrix rooms by storing
servers offer the ability to invite third-party users to Matrix rooms by storing
the invite until the identifier is bound.

View file

@ -1 +0,0 @@
Add HTML anchors for object definitions in the formatted specification.

View file

@ -1,39 +1,66 @@
[tool.towncrier]
version = "unused"
filename = "../rendered.md"
issue_format = "[#{issue}](https://github.com/matrix-org/matrix-spec/issues/{issue})"
title_format = "### {name}" # Matches rendered spec, even if awkward
underlines = " " # 3 spaces intentionally to hide RST headings
# Note: The names below have the <strong> tag built-in so the rendered spec *and* the generated
# changelog can benefit from sane headings.
filename = "rendered.md"
template = "template.md.jinja"
[[tool.towncrier.type]]
directory = "breaking"
name = "<strong>Breaking Changes</strong>"
name = "Breaking Changes"
showcontent = true
[[tool.towncrier.type]]
directory = "deprecation"
name = "<strong>Deprecations</strong>"
name = "Deprecations"
showcontent = true
[[tool.towncrier.type]]
directory = "new"
name = "<strong>New Endpoints</strong>"
name = "New Endpoints"
showcontent = true
[[tool.towncrier.type]]
directory = "removal"
name = "<strong>Removed Endpoints</strong>"
name = "Removed Endpoints"
showcontent = true
[[tool.towncrier.type]]
directory = "feature"
name = "<strong>Backwards Compatible Changes</strong>"
name = "Backwards Compatible Changes"
showcontent = true
[[tool.towncrier.type]]
directory = "clarification"
name = "<strong>Spec Clarifications</strong>"
name = "Spec Clarifications"
showcontent = true
[[tool.towncrier.section]]
name = "Client-Server API"
path = "client_server"
[[tool.towncrier.section]]
name = "Server-Server API"
path = "server_server"
[[tool.towncrier.section]]
name = "Application Service API"
path = "application_service"
[[tool.towncrier.section]]
name = "Identity Service API"
path = "identity_service"
[[tool.towncrier.section]]
name = "Push Gateway API"
path = "push_gateway"
[[tool.towncrier.section]]
name = "Room Versions"
path = "room_versions"
[[tool.towncrier.section]]
name = "Appendices"
path = "appendices"
[[tool.towncrier.section]]
name = "Internal Changes/Tooling"
path = "internal"

View file

@ -1 +0,0 @@
For room versions 1 through 10, clarify that events with rejected `auth_events` must be rejected.

View file

@ -1 +0,0 @@
For room versions 210: correct a mistaken clarification to the state resolution algorithm.

View file

@ -1 +0,0 @@
For room versions 7 through 10: Clarify that `invite->knock` is actually a legal transition.

View file

@ -1 +0,0 @@
Add HTML anchors for object definitions in the formatted specification.

View file

@ -1 +0,0 @@
Tweak the styling of `<code>` snippets in tables rendered from OpenAPI definitions.

View file

@ -1 +0,0 @@
Update "API Standards" section to clarify how JSON is used.

View file

@ -1 +0,0 @@
Add per-thread notifications and read receipts, as per [MSC3771](https://github.com/matrix-org/matrix-spec-proposals/pull/3771) and [MSC3773](https://github.com/matrix-org/matrix-spec-proposals/pull/3773).

View file

@ -0,0 +1,24 @@
{% for section_name, section in sections.items() %}
{% if section_name %}
## {{section_name}}
{% endif %}
{% if section %}
{% for category, val in definitions.items() if category in section %}
**{{ definitions[category]['name'] }}**
{% for content, issues in section[category].items() %}
- {{ content }} (
{%- for issue in issues %}
[{{issue}}](https://github.com/matrix-org/matrix-spec/issues/{{issue|trim('#')}}){% if not loop.last %}, {% endif %}
{%- endfor %}
)
{% endfor %}
{% endfor %}
{% else %}
No significant changes.
{% endif %}
{% endfor %}

View file

@ -1,106 +0,0 @@
baseURL = "/"
title = "Matrix Specification"
# Prepends absolute URLs with the baseURL. Useful when hosting on non-root
# paths, such as /unstable.
canonifyURLs = true
enableRobotsTXT = true
# Hugo allows theme composition (and inheritance). The precedence is from left to right.
theme = ["docsy"]
disableKinds = ["taxonomy", "taxonomyTerm"]
[languages]
[languages.en]
title = "Matrix Specification"
description = "Home of the Matrix specification for decentralised communication"
languageName ="English"
# Weight used for sorting.
weight = 1
[markup]
[markup.goldmark]
[markup.goldmark.renderer]
# Enables us to render raw HTML
unsafe = true
[markup.highlight]
# See a complete list of available styles at https://xyproto.github.io/splash/docs/all.html
# If the style is changed, remember to regenerate the CSS with:
#
# hugo gen chromastyles --style=<style> > assets/scss/syntax.scss
style = "tango"
# we enable CSS classes (instead of using inline styles) for compatibility with the CSP.
noClasses = false
# Everything below this are Site Params
[params]
copyright = "The Matrix.org Foundation CIC"
privacy_policy = "https://matrix.org/legal/privacy-notice"
[params.version]
# must be one of "unstable", "current", "historical"
# this is used to decide whether to show a banner pointing to the current release
status = "stable"
# A URL pointing to the latest, stable release of the spec. To be shown in the unstable version warning banner.
current_version_url = "https://spec.matrix.org/latest"
# The following is used when status = "stable", and is displayed in various UI elements on a released version
# of the spec. CI will set these values here automatically when a release git tag (i.e `v1.5`) is created.
major = "1"
minor = "4"
release_date = "September 29, 2022"
# User interface configuration
[params.ui]
# Set to true to disable the About link in the site footer
footer_about_disable = false
# Collapse HTTP API and event <details> elements
rendered_data_collapsed = false
[params.links]
# End user relevant links. These will show up on left side of footer and in the community page if you have one.
# [[params.links.user]]
# name = "User mailing list"
# url = "https://example.org/mail"
# icon = "fa fa-envelope"
# desc = "Discussion and help from your fellow users"
# Developer relevant links. These will show up on right side of footer and in the community page if you have one.
[[params.links.developer]]
name = "GitHub"
url = "https://github.com/matrix-org"
icon = "fab fa-github"
desc = "Matrix on GitHub"
[[params.links.developer]]
name = "GitLab"
url = "https://gitlab.matrix.org/matrix-org"
icon = "fab fa-gitlab"
desc = "Matrix on GitLab"
[[params.links.developer]]
name = "YouTube"
url = "https://www.youtube.com/channel/UCVFkW-chclhuyYRbmmfwt6w"
icon = "fab fa-youtube"
desc = "Matrix YouTube channel"
[[params.links.developer]]
name = "Twitter"
url = "https://twitter.com/matrixdotorg"
icon = "fab fa-twitter"
desc = "Matrix on Twitter"
# configuration for the hugo development server
[server]
# set HTTP response headers to match the production site. Compare the Apache config for `spec.matrix.org`.
[[server.headers]]
for = '/**'
[server.headers.values]
Content-Security-Policy = "default-src 'self'; style-src 'self'; script-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self' data:; media-src 'self'; child-src 'self'; form-action 'self'; object-src 'self'"
X-XSS-Protection = "1; mode=block"
X-Content-Type-Options = "nosniff"
# Strict-Transport-Security = "max-age=31536000; includeSubDomains; preload"
X-Frame-Options = "sameorigin"
Access-Control-Allow-Origin = "*"
Access-Control-Allow-Methods = "GET"

168
config/_default/hugo.toml Normal file
View file

@ -0,0 +1,168 @@
# Default settings.
baseURL = "/"
title = "Matrix Specification"
enableRobotsTXT = true
# We disable RSS, because (a) it's useless, (b) Hugo seems to generate broken
# links to it when used with a --baseURL (for example, https://spec.matrix.org/v1.4/
# contains `<link rel="alternate" type="application/rss&#43;xml" href="/v1.4/v1.4/index.xml">`).
disableKinds = ["taxonomy", "rss"]
[languages]
[languages.en]
title = "Matrix Specification"
languageName ="English"
# Weight used for sorting.
weight = 1
[languages.en.params]
description = "Home of the Matrix specification for decentralised communication"
# Entries in the main menu in the header.
[menus]
[[menus.main]]
name = 'Foundation'
url = 'https://matrix.org/foundation/about/'
weight = 10
[[menus.main]]
name = 'User Docs'
url = 'https://matrix.org/docs/'
weight = 20
[[menus.main]]
name = 'Blog'
url = 'https://matrix.org/blog/'
weight = 30
[markup]
[markup.tableOfContents]
startLevel = 2
endLevel = 6
ordered = true
[markup.goldmark]
[markup.goldmark.renderer]
# Enables us to render raw HTML
unsafe = true
[markup.goldmark.extensions]
# Tell Goldmark to pass delimited blocks through the `render-passthrough` render hook.
# This is used to render the maths in the Olm spec.
# See: https://gohugo.io/functions/transform/tomath/#step-1.
[markup.goldmark.extensions.passthrough]
enable = true
[markup.goldmark.extensions.passthrough.delimiters]
block = [['\[', '\]']]
inline = [['\(', '\)']]
[markup.highlight]
# See a complete list of available styles at https://xyproto.github.io/splash/docs/all.html
# If the style is changed, remember to regenerate the CSS with:
#
# hugo gen chromastyles --style=<style> > assets/scss/syntax.scss
style = "tango"
# we enable CSS classes (instead of using inline styles) for compatibility with the CSP.
noClasses = false
# Everything below this are Site Params
[params]
copyright = "The Matrix.org Foundation CIC"
[params.version]
# must be one of "unstable", "current", "historical"
# this is used to decide whether to show a banner pointing to the current release
status = "unstable"
# A URL pointing to the latest, stable release of the spec. To be shown in the unstable version warning banner.
current_version_url = "https://spec.matrix.org/latest"
# The following is used when status = "stable", and is displayed in various UI elements on a released version
# of the spec.
#major = "1"
#minor = "17"
[[params.versions]]
# We must include this parameter to enable docsy's version picker in the navbar. The picker
# is populated automatically in navbar-version-selector.html.
# User interface configuration
[params.ui]
# Collapse HTTP API and event <details> elements
rendered_data_collapsed = false
# Hide the search entry in the sidebar
sidebar_search_disable = true
# Only show the current page's ancestors, siblings and direct descendants in the sidebar menu
sidebar_menu_compact = true
[params.links]
# End user relevant links. These will show up on left side of footer and in the community page if you have one.
# [[params.links.user]]
# name = "User mailing list"
# url = "https://example.org/mail"
# icon = "fa fa-envelope"
# desc = "Discussion and help from your fellow users"
# Developer relevant links. These will show up on right side of footer and in the community page if you have one.
# [[params.links.developer]]
# name = "GitHub"
# url = "https://github.com/matrix-org"
# icon = "fab fa-github"
# desc = "Matrix on GitHub"
# Custom links shown in the center of the footer. (Only supported by our fork of docsy's 'footer/central' partial.)
[[params.links.bottom]]
name = "GitHub"
url = "https://github.com/matrix-org"
icon = "fab fa-github"
desc = "Matrix on GitHub"
[[params.links.bottom]]
name = "GitLab"
url = "https://gitlab.matrix.org/matrix-org"
icon = "fab fa-gitlab"
desc = "Matrix on GitLab"
[[params.links.bottom]]
name = "YouTube"
url = "https://www.youtube.com/channel/UCVFkW-chclhuyYRbmmfwt6w"
icon = "fab fa-youtube"
desc = "Matrix YouTube channel"
[[params.links.bottom]]
name = "Mastodon"
url = "https://mastodon.matrix.org/@matrix"
icon = "fab fa-mastodon"
desc = "Matrix on Mastodon"
[[params.links.bottom]]
name = "Bluesky"
url = "https://bsky.app/profile/matrix.org"
icon = "fab fa-bluesky"
desc = "Matrix on Bluesky"
# configuration for the hugo development server
[server]
# set HTTP response headers to match the production site. Compare the Apache config for `spec.matrix.org`.
[[server.headers]]
for = '/**'
[server.headers.values]
# `style-src 'unsafe-inline'` is needed to correctly render the maths in the Olm spec:
# https://github.com/KaTeX/KaTeX/issues/4096
Content-Security-Policy = "default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self' data:; media-src 'self'; child-src 'self'; form-action 'self'; object-src 'self'"
X-XSS-Protection = "1; mode=block"
X-Content-Type-Options = "nosniff"
# Strict-Transport-Security = "max-age=31536000; includeSubDomains; preload"
X-Frame-Options = "sameorigin"
Access-Control-Allow-Origin = "*"
Access-Control-Allow-Methods = "GET"
# hugo module configuration
[module]
[module.hugoVersion]
extended = true
min = "0.146.0"
[[module.imports]]
path = "github.com/matrix-org/docsy"
disable = false
# custom output formats
[outputFormats]
[outputFormats.Checklist]
mediaType = "text/markdown"
isPlainText = true
baseName = "checklist"

View file

@ -0,0 +1,6 @@
# Settings only required when the website is built for production.
# Enable stats to use them to optimize the CSS.
[build]
[build.buildStats]
enable = true

View file

@ -25,14 +25,14 @@ The specification consists of the following parts:
* [Identity Service API](/identity-service-api)
* [Push Gateway API](/push-gateway-api)
* [Room Versions](/rooms)
* [Olm & Megolm](/olm-megolm)
* [Appendices](/appendices)
Additionally, this introduction page contains the key baseline
information required to understand the specific APIs, including the
section the [overall architecture](#architecture).
The [Matrix Client-Server API Swagger
Viewer](https://matrix.org/docs/api/client-server/) is useful for
The [Matrix API Viewer](https://matrix.org/docs/api/) is useful for
browsing the Client-Server API.
## Introduction to the Matrix APIs
@ -57,9 +57,6 @@ The principles that Matrix attempts to follow are:
the global Matrix network
- Fully open standard - publicly documented standard with no IP or
patent licensing encumbrances
- Fully open source reference implementation - liberally-licensed
example implementations with no IP or patent licensing
encumbrances
- Empowering the end-user
- The user should be able to choose the server and clients they
use
@ -100,6 +97,20 @@ services - be that for instant messages, VoIP call setups, or any other
objects that need to be reliably and persistently pushed from A to B in
an interoperable and federated manner.
### Requirement levels
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" across all parts of the
specification are to be interpreted as described in
[RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119).
Some entire sections of the specification might be optional depending on the
circumstances. For example, the
[modules of the client-server API](/client-server-api/#modules)
apply depending on the use case. The requirement level expressed by the above
key words appearing in such a section is only relevant if the section itself is
applicable.
### Spec Change Proposals
To propose a change to the Matrix Spec, see the explanations at
@ -141,7 +152,7 @@ request.
How data flows between clients:
```
```nohighlight
{ Matrix client A } { Matrix client B }
^ | ^ |
| events | Client-Server API | events |
@ -358,8 +369,8 @@ servers that are in the room that can be used to join via.
HTTP GET
#matrix:example.org !aaabaa:matrix.org
| ^
| |
| ^
| |
_______V____________________|____
| example.org |
| Mappings: |
@ -373,7 +384,7 @@ servers that are in the room that can be used to join via.
Users in Matrix are identified via their Matrix user ID. However,
existing 3rd party ID namespaces can also be used in order to identify
Matrix users. A Matrix "Identity" describes both the user ID and any
other existing IDs from third party namespaces *linked* to their
other existing IDs from third-party namespaces *linked* to their
account. Matrix users can *link* third-party IDs (3PIDs) such as email
addresses, social network accounts and phone numbers to their user ID.
Linking 3PIDs creates a mapping from a 3PID to a user ID. This mapping
@ -420,9 +431,16 @@ into the `m.` namespace.
### Timestamps
Unless otherwise stated, timestamps are measured as milliseconds since
the Unix epoch. Throughout the specification this may be referred to as
POSIX, Unix, or just "time in milliseconds".
Unless otherwise stated, timestamps are the number of milliseconds
elapsed since the unix epoch (1970-01-01 00:00:00 UTC), but not counting
leap seconds, so that each day is precisely 86,400,000 milliseconds.
This means that timestamps can repeat during leap seconds. Most
programming languages provide timestamps in that format natively, e.g.
[ECMAScript](https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-time-values-and-time-range).
Throughout the specification this may be referred to as POSIX,
[Unix](https://en.wikipedia.org/wiki/Unix_time), or just "time in
milliseconds".
## Specification Versions
@ -487,18 +505,23 @@ For historical reference, the APIs were versioned as `rX.Y.Z` where `X`
roughly represents a breaking change, `Y` a backwards-compatible change, and
`Z` a patch or insignificant alteration to the API.
`v1.0` of Matrix was released on June 10th, 2019 with the following API
versions:
The current global versioning system was introduced with `v1.1`.
[Matrix 1.0](https://matrix.org/blog/2019/06/11/introducing-matrix-1-0-and-the-matrix-org-foundation/)
did not correspond directly to a specification version; instead, it was based on
the following versions for the individual APIs:
| API/Specification | Version |
|-------------------------|---------|
| Client-Server API | r0.5.0 |
| Server-Server API | r0.1.2 |
| Application Service API | r0.1.1 |
| Identity Service API | r0.1.1 |
| Push Gateway API | r0.1.0 |
| Room Version | v5 |
| API/Specification | Version |
|--------------------------|---------------|
| Client-Server API | r0.5.0 |
| Server-Server API | r0.1.2 |
| Application Service API | r0.1.1 |
| Identity Service API | r0.2.0 |
| Push Gateway API | r0.1.0 |
| Room Versions | 1, 2, 3, 4, 5 |
`v1.0` should **not** be returned by servers in the
[`GET /_matrix/client/versions`](/client-server-api/#get_matrixclientversions)
response.
## License

View file

@ -83,10 +83,15 @@ object.
### Canonical JSON
We define the canonical JSON encoding for a value to be the shortest
To ensure that all implementations use the same JSON encoding we define
"Canonical JSON". This should not be confused with other uses of
"Canonical JSON" outside of the specification.
We define this encoding for a value to be the shortest
UTF-8 JSON encoding with dictionary keys lexicographically sorted by
Unicode codepoint. Numbers in the JSON must be integers in the range
`[-(2**53)+1, (2**53)-1]`.
`[-(2**53)+1, (2**53)-1]`, represented without exponents or decimal
places, and negative zero `-0` MUST NOT appear.
We pick UTF-8 as the encoding as it should be available to all platforms
and JSON received from the network is likely to be already encoded using
@ -131,12 +136,12 @@ removing insignificant whitespace, fractions, exponents and redundant
character escapes.
value = false / null / true / object / array / number / string
false = %x66.61.6c.73.65
null = %x6e.75.6c.6c
false = %x66.61.6C.73.65
null = %x6E.75.6C.6C
true = %x74.72.75.65
object = %x7B [ member *( %x2C member ) ] %7D
object = %x7B [ member *( %x2C member ) ] %x7D
member = string %x3A value
array = %x5B [ value *( %x2C value ) ] %5B
array = %x5B [ value *( %x2C value ) ] %x5D
number = [ %x2D ] int
int = %x30 / ( %x31-39 *digit )
digit = %x30-39
@ -300,6 +305,21 @@ The following canonical JSON should be produced:
{"a":null}
```
Given the following JSON object:
```json
{
"a": -0,
"b": 1e10
}
```
The following canonical JSON should be produced:
```json
{"a":0,"b":10000000000}
```
### Signing Details
JSON is signed by encoding the JSON object without `signatures` or keys
@ -502,10 +522,9 @@ The sigil characters are as follows:
- `@`: User ID
- `!`: Room ID
- `$`: Event ID
- `+`: Group ID
- `#`: Room alias
User IDs, group IDs, room IDs, room aliases, and sometimes event IDs
User IDs, room IDs, room aliases, and sometimes event IDs
take the form:
&localpart:domain
@ -517,10 +536,12 @@ allocated by that homeserver.
The precise grammar defining the allowable format of an identifier
depends on the type of identifier. For example, event IDs can sometimes
be represented with a `domain` component under some conditions - see the
[Event IDs](#room-ids-and-event-ids) section below for more information.
[Event IDs](#event-ids) section below for more information.
#### User Identifiers
{{% changed-in v="1.8" %}}
Users within Matrix are uniquely identified by their Matrix user ID. The
user ID is namespaced to the homeserver which allocated the account and
has the form:
@ -529,13 +550,13 @@ has the form:
The `localpart` of a user ID is an opaque identifier for that user. It
MUST NOT be empty, and MUST contain only the characters `a-z`, `0-9`,
`.`, `_`, `=`, `-`, and `/`.
`.`, `_`, `=`, `-`, `/`, and `+`.
The `domain` of a user ID is the [server name](#server-name) of the
homeserver which allocated the account.
The length of a user ID, including the `@` sigil and the domain, MUST
NOT exceed 255 characters.
NOT exceed 255 bytes.
The complete grammar for a legal user ID is:
@ -543,7 +564,7 @@ The complete grammar for a legal user ID is:
user_id_localpart = 1*user_id_char
user_id_char = DIGIT
/ %x61-7A ; a-z
/ "-" / "." / "=" / "_" / "/"
/ "-" / "." / "=" / "_" / "/" / "+"
{{% boxes/rationale %}}
A number of factors were considered when defining the allowable
@ -590,10 +611,18 @@ characters permitted in user ID localparts. There are currently active
users whose user IDs do not conform to the permitted character set, and
a number of rooms whose history includes events with a `sender` which
does not conform. In order to handle these rooms successfully, clients
and servers MUST accept user IDs with localparts from the expanded
character set:
and servers MUST accept user IDs with localparts consisting of any legal
non-surrogate Unicode code points except for `:` and `NUL` (U+0000), including other control
characters and the empty string.
extended_user_id_char = %x21-39 / %x3B-7E ; all ASCII printing chars except :
User IDs with localparts containing characters outside the range U+0021 to U+007E, or with
an empty localpart, are considered non-compliant. For current room versions, servers must
still accept events using such user IDs over federation; however they SHOULD NOT forward
such user IDs to clients when referenced outside the context of an event. For example,
device list updates from non-compliant user IDs would be dropped by the receiving server.
A future room version may prevent users using a historical character set
from participating. Use of the historical character set is *deprecated*.
##### Mapping from other character sets
@ -626,24 +655,50 @@ allowing representation of *any* character (unlike punycode, which
provides no way to encode ASCII punctuation).
{{% /boxes/rationale %}}
#### Room IDs and Event IDs
#### Room IDs
A room has exactly one room ID. A room ID has the format:
{{% changed-in v="1.16" %}} Room IDs can now appear without a domain depending on
the room version.
A room has exactly one room ID. Room IDs take the form:
!opaque_id
However, the precise format depends upon the [room version specification](/rooms):
some room versions included a `domain` component, whereas more recent room versions
omit the domain and use a base64-encoded hash instead.
Room IDs are case-sensitive and not meant to be human-readable. They are intended
to be used as fully opaque strings by clients, even when a `domain` component is
present.
If the room version requires a `domain` component, room IDs take the following
form:
!opaque_id:domain
An event has exactly one event ID. The format of an event ID depends
upon the [room version specification](/rooms).
In such a form, the `opaque_id` is a localpart. The localpart MUST only contain
valid non-surrogate Unicode code points, including control characters, except `:`
and `NUL` (U+0000). The localpart SHOULD only consist of alphanumeric characters
(`A-Z`, `a-z`, `0-9`) when generating them. The `domain` is the [server name](#server-name)
of the homeserver which created the room - it is only used to reduce namespace
collisions. There is no implication that the room in question is still available
at the corresponding homeserver. Combined, the localpart, domain, and `!` sigil
MUST NOT exceed 255 bytes.
The `domain` of a room ID is the [server name](#server-name) of the
homeserver which created the room/event. The domain is used only for
namespacing to avoid the risk of clashes of identifiers between
different homeservers. There is no implication that the room or event in
question is still available at the corresponding homeserver.
When a room version requires the `domain`-less format, room IDs are simply the
[event ID](#event-ids) of the `m.room.create` event using `!` as the sigil instead
of `$`. The grammar is otherwise inherited verbatim.
Event IDs and Room IDs are case-sensitive. They are not meant to be
human-readable. They are intended to be treated as fully opaque strings
by clients.
{{% boxes/note %}}
Applications which previously relied upon the `domain` in a room ID can instead
parse the [user IDs](#user-identifiers) found in the `m.room.create` event's `sender`.
Though the `m.room.create` event's `additional_creators` (in `content`) may be
used when present, applications should take care when parsing or interpreting the
list. The user IDs in `additional_creators` will have correct grammar, but may
not be real users or may not belong to actual Matrix homeservers.
{{% /boxes/note %}}
#### Room Aliases
@ -655,10 +710,29 @@ The `domain` of a room alias is the [server name](#server-name) of the
homeserver which created the alias. Other servers may contact this
homeserver to look up the alias.
Room aliases MUST NOT exceed 255 bytes (including the `#` sigil and the
domain).
The localpart of a room alias may contain any valid non-surrogate Unicode codepoints
except `:` and `NUL`.
#### URIs
The length of a room alias, including the `#` sigil and the domain, MUST
NOT exceed 255 bytes.
#### Event IDs
An event has exactly one event ID. Event IDs take the form:
$opaque_id
However, the precise format depends upon the [room version
specification](/rooms): early room versions included a `domain` component,
whereas more recent versions omit the domain and use a base64-encoded hash instead.
In addition to the requirements of the room version, the length of an event ID,
including the `$` sigil and the domain where present, MUST NOT exceed 255 bytes.
Event IDs are case-sensitive. They are not meant to be human-readable. They are
intended to be treated as fully opaque strings by clients.
### URIs
There are two major kinds of referring to a resource in Matrix: matrix.to
and `matrix:` URI. The specification currently defines both as active/valid
@ -669,19 +743,19 @@ be used to reference particular objects in a given context, such as mentioning
a user in a message or linking someone to a particular point in the room's
history (a permalink).
##### Matrix URI scheme
#### Matrix URI scheme
{{% added-in v="1.2" %}}
The Matrix URI scheme is defined as follows (`[]` enclose optional parts, `{}`
enclose variables):
```
```nohighlight
matrix:[//{authority}/]{type}/{id without sigil}[/{type}/{id without sigil}...][?{query}][#{fragment}]
```
As a schema, this can be represented as:
```
```nohighlight
MatrixURI = "matrix:" hier-part [ "?" query ] [ "#" fragment ]
hier-part = [ "//" authority "/" ] path
path = entity-descriptor ["/" entity-descriptor]
@ -713,7 +787,7 @@ Specifically, the following mappings are used:
* `r` for room aliases.
* `u` for users.
* `roomid` for room IDs (note the distinction from room aliases).
* `e` for events, when after a room reference (`r` or `roomid`).
* `e` for events, when after a room ID (`roomid`). Use of `e` after a room alias (`r`) is deprecated.
{{% boxes/note %}}
During development of this URI format, types of `user`, `room`, and `event`
@ -723,6 +797,13 @@ wish to consider handling them as `u`, `r`, and `e` respectively.
`roomid` was otherwise unchanged.
{{% /boxes/note %}}
{{% boxes/note %}}
{{% changed-in v="1.11" %}}
Referencing event IDs within a room identified by room alias (`r`) rather than room ID
(`roomid`) is now deprecated. We are not aware of these ever having been used in
practice, and are nonsensical given room aliases are mutable.
{{% /boxes/note %}}
The `id without sigil` is simply the identifier for the entity without the defined
sigil. For example, `!room:example.org` becomes `room:example.org` (`!` is the sigil
for room IDs). The sigils are described under the
@ -767,29 +848,28 @@ Examples of common URIs are:
<!-- Author's note: These examples should be consistent with the matrix.to counterparts. -->
* Link to `#somewhere:example.org`: `matrix:r/somewhere:example.org`
* Link to `!somewhere:example.org`: `matrix:roomid/somewhere:example.org?via=elsewhere.ca`
* Link to `$event` in `#somewhere:example.org`: `matrix:r/somewhere:example.org/e/event`
* Link to `$event` in `!somewhere:example.org`: `matrix:roomid/somewhere:example.org/e/event?via=elsewhere.ca`
* Link to chat with `@alice:example.org`: `matrix:u/alice:example.org?action=chat`
A suggested client implementation algorithm is available in the
[original MSC](https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/2312-matrix-uri.md#recommended-implementation).
##### matrix.to navigation
#### matrix.to navigation
{{% boxes/note %}}
This namespacing existed prior to a `matrix:` scheme. This is **not**
meant to be interpreted as an available web service - see below for more
details.
matrix.to is a Namespace URI which existed prior to a `matrix:` URI scheme.
This is **not** meant to be interpreted as an available web service - see
below for more details.
{{% /boxes/note %}}
A matrix.to URI has the following format, based upon the specification
defined in [RFC 3986](https://tools.ietf.org/html/rfc3986):
```
```nohighlight
https://matrix.to/#/<identifier>/<extra parameter>?<additional arguments>
```
The identifier may be a room ID, room alias, user ID, or group ID. The
The identifier may be a room ID, room alias, or user ID. The
extra parameter is only used in the case of permalinks where an event ID
is referenced. The matrix.to URI, when referenced, must always start
with `https://matrix.to/#/` followed by the identifier.
@ -811,10 +891,16 @@ Examples of matrix.to URIs are:
<!-- Author's note: These examples should be consistent with the matrix scheme counterparts. -->
* Link to `#somewhere:example.org`: `https://matrix.to/#/%23somewhere%3Aexample.org`
* Link to `!somewhere:example.org`: `https://matrix.to/#/!somewhere%3Aexample.org?via=elsewhere.ca`
* Link to `$event` in `#somewhere:example.org`: `https://matrix.to/#/%23somewhere:example.org/%24event%3Aexample.org`
* Link to `$event` in `!somewhere:example.org`: `https://matrix.to/#/!somewhere%3Aexample.org/%24event%3Aexample.org?via=elsewhere.ca`
* Link to `@alice:example.org`: `https://matrix.to/#/%40alice%3Aexample.org`
{{% boxes/note %}}
{{% changed-in v="1.11" %}}
Referencing event IDs within a room identified by room alias rather than room ID
is now deprecated. We are not aware of these ever having been used in
practice, and are nonsensical given room aliases are mutable.
{{% /boxes/note %}}
{{% boxes/note %}}
Historically, clients have not produced URIs which are fully encoded.
Clients should try to interpret these cases to the best of their
@ -830,16 +916,15 @@ encoded when producing matrix.to URIs, however.
{{% /boxes/note %}}
{{% boxes/note %}}
<!-- TODO: @@TravisR: Make "Spaces" a link when that specification exists -->
In prior versions of this specification, a concept of "groups" were mentioned
to organize rooms. This functionality did not properly get introduced into
the specification and is subsequently replaced with "Spaces". Historical
the specification and is subsequently replaced with [Spaces](/client-server-api/#spaces). Historical
matrix.to URIs pointing to groups might still exist: they take the form
`https://matrix.to/#/%2Bexample%3Aexample.org` (where the `+` sigil may or
may not be encoded).
{{% /boxes/note %}}
##### Routing
#### Routing
Room IDs are not routable on their own as there is no reliable domain to
send requests to. This is partially mitigated with the addition of a
@ -852,8 +937,8 @@ A room (or room permalink) which isn't using a room alias should supply
at least one server using `via` in the URI's query string. Multiple servers
can be specified by including multuple `via` parameters.
The values of `via` are intended to be passed along as the `server_name`
parameters on the [Client Server `/join/{roomIdOrAlias}` API](/client-server-api/#post_matrixclientv3joinroomidoralias).
The values of `via` are intended to be passed along on the
[Client Server `/join/{roomIdOrAlias}` API](/client-server-api/#post_matrixclientv3joinroomidoralias).
When generating room links and permalinks, the application should pick
servers which have a high probability of being in the room in the
@ -890,9 +975,53 @@ unique servers based on the following criteria:
specify the servers it can. For example, a room with only 2 users in
it would result in maximum 2 `via` parameters.
### Opaque Identifiers
The specification defines some identifiers to use the *Opaque Identifier
Grammar*. This is a common grammar intended for non-user-visible identifiers
which do not require parsing or interpretation (other than as a unique
identifier).
The grammar is defined as:
* Identifiers must be entirely composed of the characters `[0-9]`, `[A-Z]`,
`[a-z]`, `-`, `.`, `_`, and `~`.
* Unless otherwise specified, identifiers must be at least one character and at
most 255 characters in length.
{{% boxes/note %}}
The acceptable character set matches the unreserved character set in [RFC
3986](https://datatracker.ietf.org/doc/html/rfc3986#section-2.3).
{{% /boxes/note %}}
## Cryptographic key representation
Sometimes it is necessary to present a private cryptographic key in the user
interface.
When this happens, the key SHOULD be presented as a string formatted as
follows:
1. A byte array is created, consisting of two bytes `0x8B` and `0x01`,
followed by the raw key.
2. All the bytes in the array above, including the two header bytes,
are XORed together to form a parity byte. This parity byte is
appended to the byte array.
3. The byte array is encoded using base58, using the the alphabet
`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`.
4. A space is added after every 4th character.
When reading in a key, clients should disregard whitespace, and
perform the reverse of steps 1 through 4.
{{% boxes/note %}}
The base58 alphabet is the same as that used for [Bitcoin
addresses](https://en.bitcoin.it/wiki/Base58Check_encoding#Base58_symbol_chart).
{{% /boxes/note %}}
## 3PID Types
Third Party Identifiers (3PIDs) represent identifiers on other
Third-party Identifiers (3PIDs) represent identifiers on other
namespaces that might be associated with a particular person. They
comprise a tuple of `medium` which is a string that identifies the
namespace in which the identifier exists, and an `address`: a string
@ -934,6 +1063,30 @@ The `address` is the telephone number represented as a MSISDN (Mobile
Station International Subscriber Directory Number) as defined by the
E.164 numbering plan. Note that MSISDNs do not include a leading '+'.
## Glob-style matching
It is useful to match strings via globbing in some situations. Globbing in Matrix
uses the following rules:
* The character `*` matches zero or more characters.
* `?` matches exactly one character.
## Dot-separated property paths
It is useful to express the "path" to an event property by concatenating property
names with dots, e.g. `content.body` would represent a `body` property in the
event's `content`.
To handle ambiguity when a property name contains a dot, any literal dot or
backslash found in a property name should be escaped with a backslash. E.g. a
property `m.relates_to` in the `content` would be expressed as
`content.m\.relates_to`. Similarly, a `content` property named `m\foo` would be
expressed as `content.m\\foo`.
Other escape sequences are left as-is, e.g. a `\x` would be treated as a literal
backslash followed by 'x'. It is recommended that implementations do not redundantly
escape characters, as other escape sequences are reserved for future use.
## Security Threat Model
### Denial of Service

View file

@ -2,19 +2,17 @@
title: "Application Service API"
weight: 30
type: docs
description: |
The Matrix client-server API and server-server APIs provide a consistent,
self-contained federated messaging fabric but leave little room for custom
server-side behaviour such as gateways, filters, or extensible hooks. The
Application Service API defines a standard way to add this extensible
functionality, independent of the underlying homeserver implementation.
---
The Matrix client-server API and server-server APIs provide the means to
implement a consistent self-contained federated messaging fabric.
However, they provide limited means of implementing custom server-side
behaviour in Matrix (e.g. gateways, filters, extensible hooks etc). The
Application Service API (AS API) defines a standard API to allow such
extensible functionality to be implemented irrespective of the
underlying homeserver implementation.
## Application Services
Application services are passive and can only observe events from
Application services are passive and can only observe events from the
homeserver. They can inject events into rooms they are participating in.
They cannot prevent events from being sent, nor can they modify the
content of the event being sent. In order to observe events from a
@ -37,14 +35,8 @@ registration for suspicious regex strings.
{{% /boxes/note %}}
Application services register "namespaces" of user IDs, room aliases and
room IDs. These namespaces are represented as regular expressions. An
application service is said to be "interested" in a given event if one
of the IDs in the event match the regular expression provided by the
application service, such as the room having an alias or ID in the
relevant namespaces. Similarly, the application service is said to be
interested in a given event if one of the application service's
namespaced users is the target of the event, or is a joined member of
the room where the event occurred.
room IDs. An application service is said to be "interested" in a given event
if it matches any of the namespaces.
An application service can also state whether they should be the only
ones who can manage a specified namespace. This is referred to as an
@ -53,28 +45,12 @@ application services from creating/deleting entities in that namespace.
Typically, exclusive namespaces are used when the rooms represent real
rooms on another service (e.g. IRC). Non-exclusive namespaces are used
when the application service is merely augmenting the room itself (e.g.
providing logging or searching facilities). Namespaces are represented
by POSIX extended regular expressions and look like:
providing logging or searching facilities).
users:
- exclusive: true
regex: "@_irc_bridge_.*"
The registration is represented by a series of key-value pairs, which
is normally encoded as an object in a YAML file. It has the following structure:
Application services may define the following namespaces (with none
being explicitly required):
| Name | Description |
|----------|------------------------------------------------------------|
| users | Events which are sent from certain users. |
| aliases | Events which are sent in rooms with certain room aliases. |
| rooms | Events which are sent in rooms with certain room IDs. |
Each individual namespace MUST declare the following fields:
| Name | Description |
|------------|------------------------------------------------------------------------------------------------------------------------------------|
| exclusive | **Required** A true or false value stating whether this application service has exclusive access to events within this namespace. |
| regex | **Required** A regular expression defining which values this namespace includes. |
{{% definition path="api/application-service/definitions/registration" %}}
Exclusive user and alias namespaces should begin with an underscore
after the sigil to avoid collisions with other users on the homeserver.
@ -83,38 +59,37 @@ they represent in the reserved namespace. For example, `@_irc_.*` would
be a good namespace to register for an application service which deals
with IRC.
The registration is represented by a series of key-value pairs, which
this specification will present as YAML. See below for the possible
options along with their explanation:
| Name | Description |
|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
| id | **Required** A unique, user-defined ID of the application service which will never change. |
| url | **Required** The URL for the application service. May include a path after the domain name. Optionally set to null if no traffic is required. |
| as_token | **Required** A unique token for application services to use to authenticate requests to Homeservers. |
| hs_token | **Required** A unique token for Homeservers to use to authenticate requests to application services. |
| sender_localpart | **Required** The localpart of the user associated with the application service. |
| namespaces | **Required** A list of `users`, `aliases` and `rooms` namespaces that the application service controls. |
| rate_limited | Whether requests from masqueraded users are rate-limited. The sender is excluded. |
| protocols | The external protocols which the application service provides (e.g. IRC). |
An example registration file for an IRC-bridging application service is
below:
id: "IRC Bridge"
url: "http://127.0.0.1:1234"
as_token: "30c05ae90a248a4188e620216fa72e349803310ec83e2a77b34fe90be6081f46"
hs_token: "312df522183efd404ec1cd22d2ffa4bbc76a8c1ccf541dd692eef281356bb74e"
sender_localpart: "_irc_bot" # Will result in @_irc_bot:example.org
namespaces:
users:
- exclusive: true
regex: "@_irc_bridge_.*"
aliases:
- exclusive: false
regex: "#_irc_bridge_.*"
rooms: []
```yaml
id: "IRC Bridge"
url: "http://127.0.0.1:1234"
as_token: "30c05ae90a248a4188e620216fa72e349803310ec83e2a77b34fe90be6081f46"
hs_token: "312df522183efd404ec1cd22d2ffa4bbc76a8c1ccf541dd692eef281356bb74e"
sender_localpart: "_irc_bot" # Will result in @_irc_bot:example.org
namespaces:
users:
- exclusive: true
regex: "@_irc_bridge_.*"
aliases:
- exclusive: false
regex: "#_irc_bridge_.*"
rooms: []
```
{{% boxes/note %}}
For the `users` namespace, application services can only register interest in
*local* users (i.e., users whose IDs end with the `server_name` of the local
homeserver). Events affecting users on other homeservers are not sent to an application
service, even if the user happens to match the one of the `users` namespaces (unless,
of course, the event affects a room that the application service is interested in
for another room - for example, because there is another user in the room that the
application service is interested in).
For the `rooms` and `aliases` namespaces, all events in a matching room will be
sent to the application service.
{{% /boxes/note %}}
{{% boxes/warning %}}
If the homeserver in question has multiple application services, each
@ -187,19 +162,27 @@ each is as follows:
Homeservers should periodically try again for the newer endpoints
because the application service may have been updated.
#### Unknown routes
If a request for an unsupported (or unknown) endpoint is received then the server
must respond with a 404 `M_UNRECOGNIZED` error.
Similarly, a 405 `M_UNRECOGNIZED` error is used to denote an unsupported method
to a known endpoint.
#### Pushing events
The application service API provides a transaction API for sending a
list of events. Each list of events includes a transaction ID, which
works as follows:
```
```nohighlight
Typical
HS ---> AS : Homeserver sends events with transaction ID T.
<--- : Application Service sends back 200 OK.
```
```
```nohighlight
AS ACK Lost
HS ---> AS : Homeserver sends events with transaction ID T.
<-/- : AS 200 OK is lost.
@ -222,6 +205,87 @@ processed the events.
{{% http-api spec="application-service" api="transactions" %}}
##### Pushing ephemeral data
{{% added-in v="1.13" %}}
If the `receive_ephemeral` settings is enabled in the [registration](#registration)
file, homeservers MUST send ephemeral data that is relevant to the application
service via the transaction API, using the `ephemeral` property of the request's
body. This property is an array that is effectively a combination of the
`presence` and `ephemeral` sections of the client-server [`/sync`](/client-server-api/#get_matrixclientv3sync)
API.
There are currently three event types that can be delivered to an application
service:
- **[`m.presence`](/client-server-api/#mpresence)**: MUST be sent to the
application service if the data would apply contextually. For example, a
presence update for a user an application service shares a room with, or
matching one of the application service's namespaces.
- **[`m.typing`](/client-server-api/#mtyping)**: MUST be sent to the application
service under the same rules as regular events, meaning that the application
service must have registered interest in the room itself, or in a user that is
in the room. The data MUST use the same format as the client-server API, with
the addition of a `room_id` property at the top level to identify the room that
they were sent in.
- **[`m.receipt`](/client-server-api/#mreceipt)**: MUST be sent to the
application service under the same rules as regular events, meaning that the
application service must have registered interest in the room itself, or in a
user that is in the room. The data MUST use the same format as the client-server
API, with the addition of a `room_id` property at the top level to identify the
room that they were sent in. [Private read receipts](/client-server-api/#private-read-receipts)
MUST only be sent for users matching one of the application service's
namespaces. Normal read receipts and threaded read receipts are always sent.
#### Pinging
{{% added-in v="1.7" %}}
The application service API includes a ping mechanism to allow
appservices to ensure that the homeserver can reach the appservice.
Appservices may use this mechanism to detect misconfigurations and
report them appropriately.
Implementations using this mechanism should take care to not fail
entirely in the event of temporary issues, e.g. gracefully handling
cases where the appservice is started before the homeserver.
The mechanism works as follows (note: the human-readable `error` fields
have been omitted for brevity):
**Typical**
```nohighlight
AS ---> HS : /_matrix/client/v1/appservice/{appserviceId}/ping {"transaction_id": "meow"}
HS ---> AS : /_matrix/app/v1/ping {"transaction_id": "meow"}
HS <--- AS : 200 OK {}
AS <--- HS : 200 OK {"duration_ms": 123}
```
**Incorrect `hs_token`**
```nohighlight
AS ---> HS : /_matrix/client/v1/appservice/{appserviceId}/ping {"transaction_id": "meow"}
HS ---> AS : /_matrix/app/v1/ping {"transaction_id": "meow"}
HS <--- AS : 403 Forbidden {"errcode": "M_FORBIDDEN"}
AS <--- HS : 502 Bad Gateway {"errcode": "M_BAD_STATUS", "status": 403, "body": "{\"errcode\": \"M_FORBIDDEN\"}"}
```
**Can't connect to appservice**
```nohighlight
AS ---> HS : /_matrix/client/v1/appservice/{appserviceId}/ping {"transaction_id": "meow"}
HS -/-> AS : /_matrix/app/v1/ping {"transaction_id": "meow"}
AS <--- HS : 502 Bad Gateway {"errcode": "M_CONNECTION_FAILED"}
```
The `/_matrix/app/v1/ping` endpoint is described here. The
[`/_matrix/client/v1/appservice/{appserviceId}/ping`](#post_matrixclientv1appserviceappserviceidping)
endpoint is under the Client-Server API extensions section below.
{{% http-api spec="application-service" api="ping" %}}
#### Querying
The application service API includes two querying APIs: for room aliases
@ -247,18 +311,18 @@ mappings.
{{% http-api spec="application-service" api="query_room" %}}
#### Third party networks
#### Third-party networks
Application services may declare which protocols they support via their
registration configuration for the homeserver. These networks are
generally for third party services such as IRC that the application
generally for third-party services such as IRC that the application
service is managing. Application services may populate a Matrix room
directory for their registered protocols, as defined in the
Client-Server API Extensions.
Each protocol may have several "locations" (also known as "third party
Each protocol may have several "locations" (also known as "third-party
locations" or "3PLs"). A location within a protocol is a place in the
third party network, such as an IRC channel. Users of the third party
third-party network, such as an IRC channel. Users of the third-party
network may also be represented by the application service.
Locations and users can be searched by fields defined by the application
@ -290,6 +354,7 @@ service would like to masquerade as.
Inputs:
- Application service token (`as_token`)
- User ID in the AS namespace to act as.
- Device ID belonging to the User ID to act with.
Notes:
- This applies to all aspects of the Client-Server API, except for
@ -309,9 +374,19 @@ service's `user` namespaces. If the parameter is missing, the homeserver
is to assume the application service intends to act as the user implied
by the `sender_localpart` property of the registration.
{{% added-in v="1.17" %}} Application services MAY similarly masquerade
as a specific device ID belonging the user ID through use of the `device_id`
query string parameter on the request. If the given device ID is not known
to belong to the user, the server will return a 400 `M_UNKNOWN_DEVICE` error.
If no `user_id` is supplied, the `device_id` MUST belong to the user implied
by the `sender_localpart` property of the application service's registration.
If no `device_id` is supplied, the homeserver is to assume the request is
being made without a device ID and will fail to complete operations which
require a device ID (such as uploading one-time keys).
An example request would be:
GET /_matrix/client/v3/account/whoami?user_id=@_irc_user:example.org
GET /_matrix/client/v3/account/whoami?user_id=@_irc_user:example.org&device_id=ABC123
Authorization: Bearer YourApplicationServiceTokenHere
#### Timestamp massaging
@ -351,6 +426,8 @@ imports and similar behaviour).
#### Server admin style permissions
{{% changed-in v="1.17" %}}
The homeserver needs to give the application service *full control* over
its namespace, both for users and for room aliases. This means that the
AS should be able to manage any users and room alias in its namespace. No additional API
@ -367,33 +444,59 @@ achieved by including the `as_token` on a `/register` request, along
with a login type of `m.login.application_service` to set the desired
user ID without a password.
POST /_matrix/client/v3/register
Authorization: Bearer YourApplicationServiceTokenHere
```http
POST /_matrix/client/v3/register
Authorization: Bearer YourApplicationServiceTokenHere
```
Content:
{
type: "m.login.application_service",
username: "_irc_example"
}
```json
{
"type": "m.login.application_service",
"username": "_irc_example"
}
```
Similarly, logging in as users needs API changes in order to allow the AS to
log in without needing the user's password. This is achieved by including the
`as_token` on a `/login` request, along with a login type of
`m.login.application_service`:
{{% boxes/note %}}
{{% added-in v="1.17" %}}
Servers MUST still allow application services to use the `/register` endpoint
with a login type of `m.login.application_service` even if they don't support
the [Legacy Authentication API](/client-server-api/#legacy-api).
In that case application services MUST set the `"inhibit_login": true` parameter
as they cannot use it to log in as users. If the `inhibit_login` parameter is
not set to `true`, the server MUST return a 400 HTTP status code with an
`M_APPSERVICE_LOGIN_UNSUPPORTED` error code.
{{% /boxes/note %}}
Similarly, logging in as users using the [Legacy authentication API](/client-server-api/#legacy-api)
needs API changes in order to allow the AS to log in without needing the user's
password. This is achieved by including the `as_token` on a `/login` request,
along with a login type of `m.login.application_service`:
{{% added-in v="1.2" %}}
POST /_matrix/client/v3/login
Authorization: Bearer YourApplicationServiceTokenHere
```http
POST /_matrix/client/v3/login
Authorization: Bearer YourApplicationServiceTokenHere
```
Content:
{
type: "m.login.application_service",
"identifier": {
"type": "m.id.user",
"user": "_irc_example"
}
}
```json
{
"type": "m.login.application_service",
"identifier": {
"type": "m.id.user",
"user": "_irc_example"
}
}
```
{{% boxes/note %}}
{{% added-in v="1.17" %}}
Application services MUST NOT use the `/login` endpoint if the server doesn't
support the Legacy authentication API. If `/login` is called with the
`m.login.application_service` login type the server MUST return a 400 HTTP
status code with an `M_APPSERVICE_LOGIN_UNSUPPORTED` error code.
{{% /boxes/note %}}
Application services which attempt to create users or aliases *outside*
of their defined namespaces, or log in as users outside of their defined
@ -403,6 +506,21 @@ an application service-defined namespace will receive the same
`M_EXCLUSIVE` error code, but only if the application service has
defined the namespace as `exclusive`.
If `/register` or `/login` is called with the `m.login.application_service`
login type, but without a valid `as_token`, the endpoints will return an error
with the `M_MISSING_TOKEN` or `M_UNKNOWN_TOKEN` error code and 401 as the HTTP
status code. This is the same behavior as invalid auth in the client-server API
(see [Using access tokens](/client-server-api/#using-access-tokens)).
#### Pinging
{{% added-in v="1.7" %}}
This is the client-server API companion endpoint for the
[pinging](#pinging) mechanism described above.
{{% http-api spec="client-server" api="appservice_ping" %}}
#### Using `/sync` and `/events`
Application services wishing to use `/sync` or `/events` from the
@ -411,16 +529,48 @@ via the query string). It is expected that the application service use
the transactions pushed to it to handle events rather than syncing with
the user implied by `sender_localpart`.
#### Application service room directories
#### Published room directories
Application services can maintain their own room directories for their
defined third party protocols. These room directories may be accessed by
Application services can maintain their own published room directories for
their defined third-party protocols. These directories may be accessed by
clients through additional parameters on the `/publicRooms`
client-server endpoint.
{{% http-api spec="client-server" api="appservice_room_directory" %}}
### Referencing messages from a third party network
#### Device management
{{% added-in v="1.17" %}}
Application services need to be able to create and delete devices to manage the
encryption for their users without having to rely on `/login`, which also
generates an access token for the user, and which might not be available for
homeservers that only support the [OAuth 2.0 API](/client-server-api/#oauth-20-api).
##### Creating devices
Application services can use the [`PUT /_matrix/client/v3/devices/{deviceId}`](/client-server-api/#put_matrixclientv3devicesdeviceid)
endpoint to create new devices.
##### Deleting devices
The following endpoints used to delete devices MUST NOT require [User-Interactive
Authentication](/client-server-api/#user-interactive-authentication-api) when
used by an application service:
* [`DELETE /_matrix/client/v3/devices/{deviceId}`](/client-server-api/#delete_matrixclientv3devicesdeviceid)
* [`POST /_matrix/client/v3/delete_devices`](/client-server-api/#post_matrixclientv3delete_devices)
#### Cross-signing
{{% added-in v="1.17" %}}
Appservices need to be able to verify themselves and replace their cross-signing
keys, so the [`POST /_matrix/client/v3/keys/device_signing/upload`](/client-server-api/#post_matrixclientv3keysdevice_signingupload)
endpoint MUST NOT require [User-Interactive Authentication](/client-server-api/#user-interactive-authentication-api)
when used by an application service, even if cross-signing keys already exist.
### Referencing messages from a third-party network
Application services should include an `external_url` in the `content`
of events it emits to indicate where the message came from. This

View file

@ -0,0 +1,8 @@
---
title: Changelog
type: docs
layout: changelog-index
weight: 1000
---
<!-- This page will be redirected to the latest version's changelog -->

View file

@ -1,23 +1,15 @@
---
title: Changelog
title: Historical versions
type: docs
weight: 1000
outputs:
- html
---
{{% changelog/changelog-description %}}
Before version 1.1, versioning was applied at the level of individual API specifications.
This section includes links to these versions of the APIs.
{{% changelog/changelog-changes %}}
## Client-Server API
<!-- DO NOT REMOVE OR CHANGE - Release script puts next release here -->
{{% changelog/changelog-rendered p="changelogs/v1.3.md" %}}
{{% changelog/changelog-rendered p="changelogs/v1.2.md" %}}
{{% changelog/changelog-rendered p="changelogs/v1.1.md" %}}
<h2 id="historical-versions" class="no-numbers">Historical versions</h2>
Before version 1.1, versioning was applied at the level of individual API specifications. This section includes links to these versions of the APIs.
* **Client-Server API**
- [r0.6.1](https://matrix.org/docs/spec/client_server/r0.6.1.html)
- [r0.6.0](https://matrix.org/docs/spec/client_server/r0.6.0.html)
- [r0.5.0](https://matrix.org/docs/spec/client_server/r0.5.0.html)
@ -31,22 +23,26 @@ Before version 1.1, versioning was applied at the level of individual API specif
The last draft before the spec was formally released in version
r0.0.0.
* **Server-Server API**
## Server-Server API
- [r0.1.4](https://matrix.org/docs/spec/server_server/r0.1.4.html)
- [r0.1.3](https://matrix.org/docs/spec/server_server/r0.1.3.html)
- [r0.1.2](https://matrix.org/docs/spec/server_server/r0.1.2.html)
- [r0.1.1](https://matrix.org/docs/spec/server_server/r0.1.1.html)
- [r0.1.0](https://matrix.org/docs/spec/server_server/r0.1.0.html)
* **Application Service API**
## Application Service API
- [r0.1.1](https://matrix.org/docs/spec/application_service/r0.1.1.html)
- [r0.1.0](https://matrix.org/docs/spec/application_service/r0.1.0.html)
* **Identity Service API**
## Identity Service API
- [r0.3.0](https://matrix.org/docs/spec/identity_service/r0.3.0.html)
- [r0.2.1](https://matrix.org/docs/spec/identity_service/r0.2.1.html)
- [r0.2.0](https://matrix.org/docs/spec/identity_service/r0.2.0.html)
- [r0.1.0](https://matrix.org/docs/spec/identity_service/r0.1.0.html)
* **Push Gateway API**
## Push Gateway API
- [r0.1.0](https://matrix.org/docs/spec/push_gateway/r0.1.0.html)

View file

@ -1,20 +1,15 @@
<!--
This is a header file for the generated changelog.
---
title: v1.1 Changelog
linkTitle: v1.1
type: docs
layout: changelog
outputs:
- html
- checklist
date: 2021-11-09
---
Variables:
v1.1 = Replaced by the version number (eg: v1.2)
November 09, 2021 = Replaced by the date (eg: April 01, 2021)
-->
## v1.1
<table class="release-info">
<tr><th>Git commit</th><td><a href="https://github.com/matrix-org/matrix-doc/tree/v1.1">https://github.com/matrix-org/matrix-doc/tree/v1.1</a></td>
<tr><th>Release date</th><td>November 09, 2021</td>
</table>
<!-- Intentionally blank line to ensure headers work in the concatenated changelog -->
### Client-Server API
## Client-Server API
<strong>Breaking Changes</strong>
@ -107,7 +102,7 @@ Variables:
- Fix documentation errors around `threepid_creds`. ([#3471](https://github.com/matrix-org/matrix-doc/issues/3471))
### Server-Server API
## Server-Server API
<strong>New Endpoints</strong>
@ -133,7 +128,7 @@ Variables:
- Tweak the example PDU diagram to better demonstrate situations with multiple `prev_events`. ([#3340](https://github.com/matrix-org/matrix-doc/issues/3340))
### Application Service API
## Application Service API
<strong>Spec Clarifications</strong>
@ -142,7 +137,7 @@ Variables:
- Fix various typos throughout the specification. ([#2888](https://github.com/matrix-org/matrix-doc/issues/2888))
### Identity Service API
## Identity Service API
<strong>New Endpoints</strong>
@ -165,7 +160,7 @@ Variables:
- Describe how [MSC2844](https://github.com/matrix-org/matrix-doc/pull/2844) affects the `/versions` endpoint. ([#3459](https://github.com/matrix-org/matrix-doc/issues/3459))
### Push Gateway API
## Push Gateway API
<strong>Spec Clarifications</strong>

View file

@ -0,0 +1,93 @@
---
title: v1.10 Changelog
linkTitle: v1.10
type: docs
layout: changelog
outputs:
- html
- checklist
date: 2024-03-22
---
## Client-Server API
**Backwards Compatible Changes**
- Allow `/versions` to optionally accept authentication, as per [MSC4026](https://github.com/matrix-org/matrix-spec-proposals/pull/4026). ([#1728](https://github.com/matrix-org/matrix-spec/issues/1728))
- Add local erasure requests, as per [MSC4025](https://github.com/matrix-org/matrix-spec-proposals/pull/4025). ([#1730](https://github.com/matrix-org/matrix-spec/issues/1730))
- Use the `body` field as optional media caption, as per [MSC2530](https://github.com/matrix-org/matrix-spec-proposals/pull/2530). ([#1731](https://github.com/matrix-org/matrix-spec/issues/1731))
- Add server support discovery endpoint, as per [MSC1929](https://github.com/matrix-org/matrix-spec-proposals/pull/1929). ([#1733](https://github.com/matrix-org/matrix-spec/issues/1733))
- Add support for multi-stream VoIP, as per [MSC3077](https://github.com/matrix-org/matrix-spec-proposals/pull/3077). ([#1735](https://github.com/matrix-org/matrix-spec/issues/1735))
- Specify that the `Retry-After` header may be used to rate-limit a client, as per [MSC4041](https://github.com/matrix-org/matrix-spec-proposals/pull/4041). ([#1737](https://github.com/matrix-org/matrix-spec/issues/1737))
- Add support for recursion on the `GET /relations` endpoints, as per [MSC3981](https://github.com/matrix-org/matrix-spec-proposals/pull/3981). ([#1746](https://github.com/matrix-org/matrix-spec/issues/1746))
**Spec Clarifications**
- The [strike](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/strike) element is deprecated in the HTML spec. Clients should prefer [s](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/s) instead. ([#1629](https://github.com/matrix-org/matrix-spec/issues/1629))
- Clarify that read receipts should be batched by thread as well as by room. ([#1685](https://github.com/matrix-org/matrix-spec/issues/1685))
- Clarify that threads can be created based on replies. ([#1687](https://github.com/matrix-org/matrix-spec/issues/1687))
- Clarify in the reply fallbacks example that the prefix sequence should be repeated for each line. ([#1690](https://github.com/matrix-org/matrix-spec/issues/1690))
- Clarify the format of account data objects for secret storage. ([#1695](https://github.com/matrix-org/matrix-spec/issues/1695), [#1734](https://github.com/matrix-org/matrix-spec/issues/1734))
- Clarify that the key backup MAC is implemented incorrectly and does not pass the ciphertext through HMAC-SHA-256. ([#1712](https://github.com/matrix-org/matrix-spec/issues/1712))
- Clarify one-time key and fallback key types in examples. ([#1715](https://github.com/matrix-org/matrix-spec/issues/1715))
- Clarify that the HKDF calculation for SAS uses base64-encoded keys rather than the raw key bytes. ([#1719](https://github.com/matrix-org/matrix-spec/issues/1719))
- Clarify how to perform the ECDH exchange in step 12 of the SAS process. ([#1720](https://github.com/matrix-org/matrix-spec/issues/1720))
- Document the deprecation policy of HTML tags, as per [MSC4077](https://github.com/matrix-org/matrix-spec-proposals/pull/4077). ([#1732](https://github.com/matrix-org/matrix-spec/issues/1732))
- The [font](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/font) element is deprecated in the HTML spec. Clients should prefer [span](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/span) with the `data-mx-bg-color` and `data-mx-color` attributes instead. ([#1739](https://github.com/matrix-org/matrix-spec/issues/1739))
- Disambiguate uses of `PublicRoomsChunk` in the `GET /hierarchy` endpoint. ([#1740](https://github.com/matrix-org/matrix-spec/issues/1740))
- Clarify that `sdpMid` and `sdpMLineIndex` are not required in `m.call.candidates`. ([#1742](https://github.com/matrix-org/matrix-spec/issues/1742))
- Fix various typos throughout the specification. ([#1748](https://github.com/matrix-org/matrix-spec/issues/1748))
- Clearly indicate that each `Content-Type` may have distinct behaviour on non-JSON requests/responses. ([#1756](https://github.com/matrix-org/matrix-spec/issues/1756))
- Clarify that the `m.push_rules` account data type cannot be set using the `/account_data` API, as per [MSC4010](https://github.com/matrix-org/matrix-spec-proposals/pull/4010). ([#1763](https://github.com/matrix-org/matrix-spec/issues/1763))
## Server-Server API
**Spec Clarifications**
- Clarify Server-Server API request signing example by using the `POST` HTTP method, as `GET` requests don't have request bodies. ([#1721](https://github.com/matrix-org/matrix-spec/issues/1721))
- Disambiguate uses of `PublicRoomsChunk` in the `GET /hierarchy` endpoint. ([#1740](https://github.com/matrix-org/matrix-spec/issues/1740))
- Clarify that the `children_state`, `room_type` and `allowed_room_ids` properties in the items of the `children` array of the response of the `GET /hierarchy` endpoint are not required. ([#1741](https://github.com/matrix-org/matrix-spec/issues/1741))
## Application Service API
**Spec Clarifications**
- Clarify that the `/login` and `/register` endpoints should fail when using the `m.login.application_service` login type without a valid `as_token`. ([#1744](https://github.com/matrix-org/matrix-spec/issues/1744))
## Identity Service API
No significant changes.
## Push Gateway API
No significant changes.
## Room Versions
**Spec Clarifications**
- For room versions 7 through 11: Clarify that `invite->knock` is not a legal transition. ([#1717](https://github.com/matrix-org/matrix-spec/issues/1717))
## Appendices
No significant changes.
## Internal Changes/Tooling
**Spec Clarifications**
- Update the spec release process. ([#1680](https://github.com/matrix-org/matrix-spec/issues/1680))
- Minor clarifications to the contributing guide. ([#1697](https://github.com/matrix-org/matrix-spec/issues/1697))
- Update Docsy to v0.8.0. ([#1699](https://github.com/matrix-org/matrix-spec/issues/1699), [#1762](https://github.com/matrix-org/matrix-spec/issues/1762))
- Fix npm release script for `@matrix-org/spec`. ([#1713](https://github.com/matrix-org/matrix-spec/issues/1713))
- Add some clarifications around implementation requirements for MSCs. ([#1718](https://github.com/matrix-org/matrix-spec/issues/1718))
- Update HTML templates to include links to object schema definitions. ([#1724](https://github.com/matrix-org/matrix-spec/issues/1724))
- Factor out all the common parameters of the various `/relations` apis. ([#1745](https://github.com/matrix-org/matrix-spec/issues/1745))
- Add support for `$ref` URIs containing fragments in OpenAPI definitions and JSON schemas. ([#1751](https://github.com/matrix-org/matrix-spec/issues/1751), [#1754](https://github.com/matrix-org/matrix-spec/issues/1754))

161
content/changelog/v1.11.md Normal file
View file

@ -0,0 +1,161 @@
---
title: v1.11 Changelog
linkTitle: v1.11
type: docs
layout: changelog
outputs:
- html
- checklist
date: 2024-06-20
---
## Client-Server API
**Deprecations**
- Authentication using a query string is now deprecated, as per [MSC4126](https://github.com/matrix-org/matrix-spec-proposals/issues/4126). The `Authorization` header should be used instead. ([#1808](https://github.com/matrix-org/matrix-spec/issues/1808))
- Use of the `/_matrix/media/*` endpoints is now deprecated. New, authenticated, endpoints are available instead. ([#1858](https://github.com/matrix-org/matrix-spec/issues/1858))
**New Endpoints**
- [`GET /_matrix/client/v1/media/config`](/client-server-api/#get_matrixclientv1mediaconfig) ([#1858](https://github.com/matrix-org/matrix-spec/issues/1858))
- [`GET /_matrix/client/v1/media/download/{serverName}/{mediaId}`](/client-server-api/#get_matrixclientv1mediadownloadservernamemediaid) ([#1858](https://github.com/matrix-org/matrix-spec/issues/1858))
- [`GET /_matrix/client/v1/media/download/{serverName}/{mediaId}/{fileName}`](/client-server-api/#get_matrixclientv1mediadownloadservernamemediaidfilename) ([#1858](https://github.com/matrix-org/matrix-spec/issues/1858))
- [`GET /_matrix/client/v1/media/preview_url`](/client-server-api/#get_matrixclientv1mediapreview_url) ([#1858](https://github.com/matrix-org/matrix-spec/issues/1858))
- [`GET /_matrix/client/v1/media/thumbnail/{serverName}/{mediaId}`](/client-server-api/#get_matrixclientv1mediathumbnailservernamemediaid) ([#1858](https://github.com/matrix-org/matrix-spec/issues/1858))
**Backwards Compatible Changes**
- Add support for muting in VoIP calls, as per [MSC3291](https://github.com/matrix-org/matrix-spec-proposals/pull/3291). ([#1755](https://github.com/matrix-org/matrix-spec/issues/1755))
- Add optional `animated` query string option to `GET /thumbnail`, as per [MSC2705](https://github.com/matrix-org/matrix-spec-proposals/pull/2705). ([#1757](https://github.com/matrix-org/matrix-spec/issues/1757))
- Specify terms of services at registration, as per [MSC1692](https://github.com/matrix-org/matrix-spec-proposals/pull/1692). ([#1812](https://github.com/matrix-org/matrix-spec/issues/1812))
- Add support for mathematical messages, as per [MSC2191](https://github.com/matrix-org/matrix-spec-proposals/pull/2191). ([#1816](https://github.com/matrix-org/matrix-spec/issues/1816))
- Do not require UIA when first uploading cross-signing keys, as per [MSC3967](https://github.com/matrix-org/matrix-spec-proposals/pull/3967). ([#1828](https://github.com/matrix-org/matrix-spec/issues/1828))
- Add the new `unsigned.membership` property to events, as per [MSC4115](https://github.com/matrix-org/matrix-spec-proposals/pull/4115). ([#1847](https://github.com/matrix-org/matrix-spec/issues/1847))
- Media downloads and thumbnails are now authenticated, as per [MSC3916](https://github.com/matrix-org/matrix-spec-proposals/pull/3916). ([#1858](https://github.com/matrix-org/matrix-spec/issues/1858))
- Some media endpoints are now consistently under `/_matrix/client/{version}/media/*` instead of `/_matrix/media/*`, as per [MSC3916](https://github.com/matrix-org/matrix-spec-proposals/pull/3916). ([#1858](https://github.com/matrix-org/matrix-spec/issues/1858))
**Spec Clarifications**
- Add `/logout` and clarify the endpoints which do not take a JSON request body. ([#1644](https://github.com/matrix-org/matrix-spec/issues/1644))
- Clarify that the `type` of the `POST /login` request must be one of the types returned by the `GET /login` response. ([#1776](https://github.com/matrix-org/matrix-spec/issues/1776))
- Link to existing grammar where possible in types. ([#1813](https://github.com/matrix-org/matrix-spec/issues/1813))
- Rename "recovery key" to "backup decryption key". ([#1819](https://github.com/matrix-org/matrix-spec/issues/1819))
- Clarify that the device's Ed25519 signing key should be used in QR code verification (as opposed to the device's Curve25519 identity key). ([#1829](https://github.com/matrix-org/matrix-spec/issues/1829))
- Fix various typos throughout the specification. ([#1832](https://github.com/matrix-org/matrix-spec/issues/1832), [#1841](https://github.com/matrix-org/matrix-spec/issues/1841), [#1852](https://github.com/matrix-org/matrix-spec/issues/1852), [#1853](https://github.com/matrix-org/matrix-spec/issues/1853))
- Specify the encoding to be used when generating QR codes for device verification. ([#1839](https://github.com/matrix-org/matrix-spec/issues/1839))
- Clarify that an access token is optional on the `POST /account/password` and `POST /account/deactivate` endpoints. ([#1843](https://github.com/matrix-org/matrix-spec/issues/1843))
- Use RFC 2119 keywords more consistently. ([#1846](https://github.com/matrix-org/matrix-spec/issues/1846), [#1861](https://github.com/matrix-org/matrix-spec/issues/1861))
- Move size limits for user, room and event IDs into the appendix and clarify that the length is to be measured in bytes. ([#1850](https://github.com/matrix-org/matrix-spec/issues/1850))
- Clarify that relations recursion should be capped at a certain depth. ([#1854](https://github.com/matrix-org/matrix-spec/issues/1854))
- Add missing secrets, third-party invites and room tagging modules to feature profiles table. ([#1860](https://github.com/matrix-org/matrix-spec/issues/1860))
- Clarify when server name is used and link to the definition. ([#1862](https://github.com/matrix-org/matrix-spec/issues/1862))
- Clarify where keys reside when checking an `m.room.encrypted` event. ([#1863](https://github.com/matrix-org/matrix-spec/issues/1863))
- Clarify that `/media/v3/upload/{serverName}/{mediaId}` requires authentication. ([#1872](https://github.com/matrix-org/matrix-spec/issues/1872))
## Server-Server API
**Deprecations**
- Use of the Client-Server API `/_matrix/media/*` endpoints is now deprecated. New, authenticated, endpoints are available instead. ([#1858](https://github.com/matrix-org/matrix-spec/issues/1858))
**New Endpoints**
- [`GET /_matrix/federation/v1/media/download/{mediaId}`](/server-server-api/#get_matrixfederationv1mediadownloadmediaid) ([#1858](https://github.com/matrix-org/matrix-spec/issues/1858))
- [`GET /_matrix/federation/v1/media/thumbnail/{mediaId}`](/server-server-api/#get_matrixfederationv1mediathumbnailmediaid) ([#1858](https://github.com/matrix-org/matrix-spec/issues/1858))
**Backwards Compatible Changes**
- Media downloads and thumbnails are now authenticated, as per [MSC3916](https://github.com/matrix-org/matrix-spec-proposals/pull/3916). ([#1858](https://github.com/matrix-org/matrix-spec/issues/1858), [#1869](https://github.com/matrix-org/matrix-spec/issues/1869))
**Spec Clarifications**
- Link to existing grammar where possible in types. ([#1813](https://github.com/matrix-org/matrix-spec/issues/1813))
- Clarify that whitespace around commas is allowed in the `X-Matrix` `Authorization` header value params list. ([#1818](https://github.com/matrix-org/matrix-spec/issues/1818))
- Clarify that the `event` field of the `/v2/send_join` response is only required when the event is signed by the resident server. ([#1834](https://github.com/matrix-org/matrix-spec/issues/1834), [#1840](https://github.com/matrix-org/matrix-spec/issues/1840))
- Replace references to RFC 7235 and RFC 7230 that are obsoleted by RFC 9110. ([#1844](https://github.com/matrix-org/matrix-spec/issues/1844))
- Fix various typos throughout the specification. ([#1877](https://github.com/matrix-org/matrix-spec/issues/1877))
## Application Service API
**Spec Clarifications**
- Clarify that appservices should be notified of events relating to the `sender_localpart` user. ([#1810](https://github.com/matrix-org/matrix-spec/issues/1810))
## Identity Service API
**Deprecations**
- Authentication using a query string is now deprecated, as per [MSC4126](https://github.com/matrix-org/matrix-spec-proposals/issues/4126). The `Authorization` header should be used instead. ([#1808](https://github.com/matrix-org/matrix-spec/issues/1808))
## Push Gateway API
No significant changes.
## Room Versions
**Spec Clarifications**
- Clarify that redaction events are still subject to all applicable auth rules. ([#1824](https://github.com/matrix-org/matrix-spec/issues/1824))
- Fix various typos throughout the specification. ([#1827](https://github.com/matrix-org/matrix-spec/issues/1827), [#1848](https://github.com/matrix-org/matrix-spec/issues/1848))
- Fix the rendering of the event format for room versions 1 and 2. ([#1883](https://github.com/matrix-org/matrix-spec/issues/1883))
- Generate the Table of Contents with Hugo rather than JavaScript. ([#1884](https://github.com/matrix-org/matrix-spec/issues/1884))
## Appendices
**Deprecations**
- Deprecate linking to events in rooms identified by alias, as per [MSC4132](https://github.com/matrix-org/matrix-spec-proposals/pull/4132). ([#1823](https://github.com/matrix-org/matrix-spec/issues/1823))
**Spec Clarifications**
- Define 'Opaque Identifier Grammar'. ([#1791](https://github.com/matrix-org/matrix-spec/issues/1791))
- Define common cryptographic key representation. ([#1819](https://github.com/matrix-org/matrix-spec/issues/1819))
- Move size limits for user, room and event IDs into the appendix and clarify that the length is to be measured in bytes. ([#1850](https://github.com/matrix-org/matrix-spec/issues/1850))
## Internal Changes/Tooling
**Spec Clarifications**
- Update the spec release process and related documentation. ([#1759](https://github.com/matrix-org/matrix-spec/issues/1759))
- Fix npm release script for `@matrix-org/spec`. ([#1765](https://github.com/matrix-org/matrix-spec/issues/1765))
- Formatting fixes in `CONTRIBUTING.rst`. ([#1769](https://github.com/matrix-org/matrix-spec/issues/1769))
- Improve rendering on mobile devices. ([#1770](https://github.com/matrix-org/matrix-spec/issues/1770), [#1771](https://github.com/matrix-org/matrix-spec/issues/1771))
- Fix the OpenAPI definition of the security schemes. ([#1772](https://github.com/matrix-org/matrix-spec/issues/1772))
- Simplify uses of `resolve-refs` partial. ([#1773](https://github.com/matrix-org/matrix-spec/issues/1773))
- Fix Hugo warnings. ([#1775](https://github.com/matrix-org/matrix-spec/issues/1775), [#1788](https://github.com/matrix-org/matrix-spec/issues/1788))
- Fix `github-labels.rst`. ([#1781](https://github.com/matrix-org/matrix-spec/issues/1781))
- Update dependencies. ([#1786](https://github.com/matrix-org/matrix-spec/issues/1786), [#1803](https://github.com/matrix-org/matrix-spec/issues/1803), [#1804](https://github.com/matrix-org/matrix-spec/issues/1804))
- Solve `allOf` recursively in OpenAPI and JSON Schemas. ([#1787](https://github.com/matrix-org/matrix-spec/issues/1787))
- Fix property type resolution in `render-object-table` partial. ([#1789](https://github.com/matrix-org/matrix-spec/issues/1789))
- Factor out common definition of `Tag` type. ([#1793](https://github.com/matrix-org/matrix-spec/issues/1793))
- Update the version of Hugo used to render the spec to v0.124.1. ([#1794](https://github.com/matrix-org/matrix-spec/issues/1794))
- Add support for pattern formats for `patternProperties`. ([#1796](https://github.com/matrix-org/matrix-spec/issues/1796))
- Clean up unnecessary `allOf`s in OpenAPI definitions. ([#1797](https://github.com/matrix-org/matrix-spec/issues/1797))
- Show information about "Additional Properties" in object tables. ([#1798](https://github.com/matrix-org/matrix-spec/issues/1798))
- Fix anchors for schemas under `oneOf`. ([#1799](https://github.com/matrix-org/matrix-spec/issues/1799))
- Use reference to `OneTimeKeys` schema in OpenAPI definitions. ([#1800](https://github.com/matrix-org/matrix-spec/issues/1800))
- Do not use the `title` of objects containing only `additionalProperties` or `patternProperties`. ([#1801](https://github.com/matrix-org/matrix-spec/issues/1801))
- Add anchors in `definition` shortcode. ([#1802](https://github.com/matrix-org/matrix-spec/issues/1802))
- Set python version for the Towncrier CI job. ([#1805](https://github.com/matrix-org/matrix-spec/issues/1805))
- Replace `set-output` with environment files in CI. ([#1806](https://github.com/matrix-org/matrix-spec/issues/1806))
- Render response headers. ([#1809](https://github.com/matrix-org/matrix-spec/issues/1809))
- Use `patternProperties` in more places with supported formats. ([#1813](https://github.com/matrix-org/matrix-spec/issues/1813))
- Add support for rendering string formats. ([#1814](https://github.com/matrix-org/matrix-spec/issues/1814))
- Refactor the OpenAPI definitions of the content repository endpoints. ([#1822](https://github.com/matrix-org/matrix-spec/issues/1822))
- Clean up pull request template. ([#1831](https://github.com/matrix-org/matrix-spec/issues/1831))
- Do not add empty arrays to examples. ([#1849](https://github.com/matrix-org/matrix-spec/issues/1849))
- Generate the Table of Contents with Hugo rather than JavaScript. ([#1851](https://github.com/matrix-org/matrix-spec/issues/1851), [#1885](https://github.com/matrix-org/matrix-spec/issues/1885))
- Fix syntax errors in the spec release issue template. ([#1856](https://github.com/matrix-org/matrix-spec/issues/1856))
- Use environment variables for Netlify build job. ([#1865](https://github.com/matrix-org/matrix-spec/issues/1865))
- Render added/changed in info on request and response content types. ([#1876](https://github.com/matrix-org/matrix-spec/issues/1876))
- Fix validation errors in generated HTML. ([#1880](https://github.com/matrix-org/matrix-spec/issues/1880))
- Ensure most generated HTML IDs are unique. ([#1881](https://github.com/matrix-org/matrix-spec/issues/1881))
- Allow to specify a prefix for generated HTML IDs of API endpoints. ([#1882](https://github.com/matrix-org/matrix-spec/issues/1882))

113
content/changelog/v1.12.md Normal file
View file

@ -0,0 +1,113 @@
---
title: v1.12 Changelog
linkTitle: v1.12
type: docs
layout: changelog
outputs:
- html
- checklist
date: 2024-10-07
---
## Client-Server API
**Deprecations**
- Deprecate the `server_name` query parameter on `POST /_matrix/client/v3/join/{roomIdOrAlias}` and `POST /_matrix/client/v3/knock/{roomIdOrAlias}`, as per [MSC4156](https://github.com/matrix-org/matrix-spec-proposals/pull/4156). ([#1933](https://github.com/matrix-org/matrix-spec/issues/1933))
**Removed Endpoints**
- Remove references to device-specific push rules. ([#1842](https://github.com/matrix-org/matrix-spec/issues/1842))
- Remove the deprecated name attribute on HTML anchor elements, as per [MSC4159](https://github.com/matrix-org/matrix-spec-proposals/pull/4159). ([#1870](https://github.com/matrix-org/matrix-spec/issues/1870))
**Backwards Compatible Changes**
- Add 403 responses on `GET /_matrix/client/v3/profile/{userId}/avatar_url` and `GET /_matrix/client/v3/profile/{userId}/displayname`, as per [MSC4170](https://github.com/matrix-org/matrix-spec-proposals/pull/4170). ([#1867](https://github.com/matrix-org/matrix-spec/issues/1867))
- Add support for marking rooms as unread, as per [MSC2867](https://github.com/matrix-org/matrix-spec-proposals/pull/2867). ([#1895](https://github.com/matrix-org/matrix-spec/issues/1895), [#1941](https://github.com/matrix-org/matrix-spec/issues/1941))
- Add `via` query parameter on `POST /_matrix/client/v3/join/{roomIdOrAlias}` and `POST /_matrix/client/v3/knock/{roomIdOrAlias}`, as per [MSC4156](https://github.com/matrix-org/matrix-spec-proposals/pull/4156). ([#1933](https://github.com/matrix-org/matrix-spec/issues/1933))
- Add account locking, as per [MSC3939](https://github.com/matrix-org/matrix-spec-proposals/pull/3939). ([#1934](https://github.com/matrix-org/matrix-spec/issues/1934))
- Guest accounts can now download/thumbnail media from the new authenticated endpoints, as per [MSC4189](https://github.com/matrix-org/matrix-spec-proposals/pull/4189). ([#1959](https://github.com/matrix-org/matrix-spec/issues/1959))
**Spec Clarifications**
- Rename and sort the modules in the feature profiles table for easier skimming. ([#1855](https://github.com/matrix-org/matrix-spec/issues/1855))
- Clarify that room avatars cannot be encrypted. ([#1871](https://github.com/matrix-org/matrix-spec/issues/1871))
- Document the acronyms and alternate names for the "Secrets" section. ([#1875](https://github.com/matrix-org/matrix-spec/issues/1875))
- Improve recommendation for how to form transaction IDs. ([#1888](https://github.com/matrix-org/matrix-spec/issues/1888))
- Clarify that the deprecated `dont_notify` and `coalesce` push rule actions MUST be ignored, not rejected. ([#1890](https://github.com/matrix-org/matrix-spec/issues/1890))
- Fix various typos throughout the specification. ([#1892](https://github.com/matrix-org/matrix-spec/issues/1892))
- Add missing references to `m.set_displayname`, `m.set_avatar_url`, and `m.3pid_changes` in capabilities table. ([#1897](https://github.com/matrix-org/matrix-spec/issues/1897))
- Clarify that the fallback login page calls `window.matrixLogin.onLogin` instead of `window.onLogin`. ([#1899](https://github.com/matrix-org/matrix-spec/issues/1899))
- Remove confusing description of restricted rooms with no valid conditions. ([#1903](https://github.com/matrix-org/matrix-spec/issues/1903))
- Clarify that `window.matrixLogin.onLogin` is called with the response body of `POST /_matrix/client/v3/login`. ([#1905](https://github.com/matrix-org/matrix-spec/issues/1905))
- Document the `m.get_login_token` capability, as per [MSC3882](https://github.com/matrix-org/matrix-spec-proposals/pull/3882). ([#1908](https://github.com/matrix-org/matrix-spec/issues/1908))
- Clarify that the `User identifier` object in `POST /_matrix/client/v3/login` contains additional properties that depend on the identification type. ([#1909](https://github.com/matrix-org/matrix-spec/issues/1909))
- Don't mention that `GET /_matrix/client/v3/profile/{userId}` can return additional properties because this is true for almost every endpoint. ([#1910](https://github.com/matrix-org/matrix-spec/issues/1910))
- Improve wording of the unauthenticated media deprecation box. Contributed by @HarHarLinks. ([#1916](https://github.com/matrix-org/matrix-spec/issues/1916))
- Additional properties in `GET /.well-known/matrix/client` don't have to be objects. ([#1920](https://github.com/matrix-org/matrix-spec/issues/1920))
- Document that the spec uses [RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119) keywords. Contributed by @HarHarLinks. ([#1928](https://github.com/matrix-org/matrix-spec/issues/1928))
- Specify `Content-Type` and `Content-Disposition` usage in the media repo, as per [MSC2701](https://github.com/matrix-org/matrix-spec-proposals/pull/2701) and [MSC2702](https://github.com/matrix-org/matrix-spec-proposals/pull/2702). ([#1935](https://github.com/matrix-org/matrix-spec/issues/1935))
- Additional keys in `GET /_matrix/client/v3/capabilities` don't have to be objects. ([#1945](https://github.com/matrix-org/matrix-spec/issues/1945))
## Server-Server API
**Backwards Compatible Changes**
- Add 403 response on `GET /_matrix/federation/v1/query/profile`, as per [MSC4170](https://github.com/matrix-org/matrix-spec-proposals/pull/4170). ([#1867](https://github.com/matrix-org/matrix-spec/issues/1867))
**Spec Clarifications**
- Remove `origin` field from PDU example because it doesn't exist in the schema anymore. ([#1918](https://github.com/matrix-org/matrix-spec/issues/1918))
- Document that the spec uses [RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119) keywords. Contributed by @HarHarLinks. ([#1928](https://github.com/matrix-org/matrix-spec/issues/1928))
- Fix required fields in `GET /_matrix/key/v2/server` response schema. ([#1930](https://github.com/matrix-org/matrix-spec/issues/1930))
- Use "server name" instead of "DNS name" to avoid confusion with the "DNS name" component of "server names" as defined in the appendices. ([#1946](https://github.com/matrix-org/matrix-spec/issues/1946))
## Application Service API
**Spec Clarifications**
- Document that the spec uses [RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119) keywords. Contributed by @HarHarLinks. ([#1928](https://github.com/matrix-org/matrix-spec/issues/1928))
## Identity Service API
**Spec Clarifications**
- Document that the spec uses [RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119) keywords. Contributed by @HarHarLinks. ([#1928](https://github.com/matrix-org/matrix-spec/issues/1928))
## Push Gateway API
**Spec Clarifications**
- Document that the spec uses [RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119) keywords. Contributed by @HarHarLinks. ([#1928](https://github.com/matrix-org/matrix-spec/issues/1928))
## Room Versions
**Spec Clarifications**
- Fix a formatting issue in state resolution v2. ([#1896](https://github.com/matrix-org/matrix-spec/issues/1896))
- Document that the spec uses [RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119) keywords. Contributed by @HarHarLinks. ([#1928](https://github.com/matrix-org/matrix-spec/issues/1928))
## Appendices
**Spec Clarifications**
- Document that the spec uses [RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119) keywords. Contributed by @HarHarLinks. ([#1928](https://github.com/matrix-org/matrix-spec/issues/1928))
## Internal Changes/Tooling
**Spec Clarifications**
- The Matrix.org Foundation no longer requires "real" or "legally identifiable" names in order to contribute to projects. ([#1886](https://github.com/matrix-org/matrix-spec/issues/1886), [#1914](https://github.com/matrix-org/matrix-spec/issues/1914))
- Document the `removal` changelog category. ([#1907](https://github.com/matrix-org/matrix-spec/issues/1907))
- Use dedicated fonts for better support of mathematical symbols. ([#1919](https://github.com/matrix-org/matrix-spec/issues/1919))
- Document that the spec uses [RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119) keywords. Contributed by @HarHarLinks. ([#1928](https://github.com/matrix-org/matrix-spec/issues/1928))
- Provide markdown checklists for changelogs under `/changelog/$VERSION/checklist.md`. ([#1937](https://github.com/matrix-org/matrix-spec/issues/1937), [#1954](https://github.com/matrix-org/matrix-spec/issues/1954))
- Add the `deprecated` field to properties of OpenAPI definitions and JSON Schemas. ([#1940](https://github.com/matrix-org/matrix-spec/issues/1940))
- Use relative permalink to redirect to latest changelog. ([#1956](https://github.com/matrix-org/matrix-spec/issues/1956))

108
content/changelog/v1.13.md Normal file
View file

@ -0,0 +1,108 @@
---
title: v1.13 Changelog
linkTitle: v1.13
type: docs
layout: changelog
outputs:
- html
- checklist
date: 2024-12-19
---
## Client-Server API
**New Endpoints**
- Add `POST /_matrix/client/v3/rooms/{roomId}/report`, as per [MSC4151](https://github.com/matrix-org/matrix-spec-proposals/pull/4151). ([#1938](https://github.com/matrix-org/matrix-spec/issues/1938), [#2028](https://github.com/matrix-org/matrix-spec/issues/2028))
**Backwards Compatible Changes**
- Add error codes to requestToken endpoints, as per [MSC4178](https://github.com/matrix-org/matrix-spec-proposals/pull/4178). ([#1944](https://github.com/matrix-org/matrix-spec/issues/1944))
- Remove reply fallbacks, as per [MSC2781](https://github.com/matrix-org/matrix-spec-proposals/issues/2781). ([#1994](https://github.com/matrix-org/matrix-spec/issues/1994))
- Clarify the allowed HTTP methods in CORS responses, as per [MSC4138](https://github.com/matrix-org/matrix-spec-proposals/pull/4138). ([#1995](https://github.com/matrix-org/matrix-spec/issues/1995), [#2011](https://github.com/matrix-org/matrix-spec/issues/2011))
- Add new `M_USER_SUSPENDED` error code behaviour, as per [MSC3823](https://github.com/matrix-org/matrix-spec-proposals/pull/3823). ([#2014](https://github.com/matrix-org/matrix-spec/issues/2014))
**Spec Clarifications**
- The `reason` parameter in `POST /_matrix/client/v3/rooms/{roomId}/report/{eventId}` can be omitted instead of left blank, as per [MSC2414](https://github.com/matrix-org/matrix-spec-proposals/pull/2414). ([#1938](https://github.com/matrix-org/matrix-spec/issues/1938))
- Correct OpenAPI specification for query parameters to `GET /_matrix/client/v3/thirdparty/location/{protocol}` endpoint. ([#1947](https://github.com/matrix-org/matrix-spec/issues/1947))
- Sort VoIP events semantically. ([#1967](https://github.com/matrix-org/matrix-spec/issues/1967))
- Clarify that servers must forward custom keys in `PusherData` when sending notifications to the push gateway. ([#1973](https://github.com/matrix-org/matrix-spec/issues/1973))
- Clarify formats of string types. ([#1978](https://github.com/matrix-org/matrix-spec/issues/1978), [#1979](https://github.com/matrix-org/matrix-spec/issues/1979), [#1980](https://github.com/matrix-org/matrix-spec/issues/1980))
- Clarify that the async upload endpoint will return 404 in some cases. ([#1983](https://github.com/matrix-org/matrix-spec/issues/1983))
- Remove distinction between `StateFilter` and `RoomEventFilter`. ([#2015](https://github.com/matrix-org/matrix-spec/issues/2015))
- Add hyperlinks throughout the specification. ([#2016](https://github.com/matrix-org/matrix-spec/issues/2016))
- Use `json` instead of `json5` for syntax highlighting. ([#2017](https://github.com/matrix-org/matrix-spec/issues/2017))
- Specify order that one-time keys are issued by `/keys/claim`, as per [MSC4225](https://github.com/matrix-org/matrix-spec-proposals/pull/4225). ([#2029](https://github.com/matrix-org/matrix-spec/issues/2029))
## Server-Server API
**Backwards Compatible Changes**
- Make ACLs apply to EDUs, as per [MSC4163](https://github.com/matrix-org/matrix-spec-proposals/pull/4163). ([#2004](https://github.com/matrix-org/matrix-spec/issues/2004))
**Spec Clarifications**
- Add 403 error response to `/_matrix/federation/v1/state_ids/{roomId}`. ([#1926](https://github.com/matrix-org/matrix-spec/issues/1926))
## Application Service API
**Backwards Compatible Changes**
- Allow sending ephemeral data to application services, as per [MSC2409](https://github.com/matrix-org/matrix-spec-proposals/pull/2409). ([#2018](https://github.com/matrix-org/matrix-spec/issues/2018))
## Identity Service API
No significant changes.
## Push Gateway API
**Spec Clarifications**
- Document the schema of `PusherData`. ([#1968](https://github.com/matrix-org/matrix-spec/issues/1968))
- The path of HTTP pusher URLs is fixed to `/_matrix/push/v1/notify`. ([#1974](https://github.com/matrix-org/matrix-spec/issues/1974))
## Room Versions
**Spec Clarifications**
- Clarify rule 4.3.1 of the auth rules in room version 11 to state which event's `sender` the `state_key` needs to match. ([#2024](https://github.com/matrix-org/matrix-spec/issues/2024))
## Appendices
**Spec Clarifications**
- Remove note about reference implementations. ([#1966](https://github.com/matrix-org/matrix-spec/issues/1966))
## Internal Changes/Tooling
**Spec Clarifications**
- Add `x-weight` property for sorting events rendered with the `event-group` shortcode. ([#1967](https://github.com/matrix-org/matrix-spec/issues/1967))
- Enforce consistent vertical spacing between paragraphs in endpoint definitions. ([#1969](https://github.com/matrix-org/matrix-spec/issues/1969), [#2005](https://github.com/matrix-org/matrix-spec/issues/2005))
- Remove `boxes/added-in-paragraph` shortcode. ([#1970](https://github.com/matrix-org/matrix-spec/issues/1970))
- Remove `withVersioning` parameter of `rver-fragment` shortcode. ([#1971](https://github.com/matrix-org/matrix-spec/issues/1971))
- Remove `span` element from `added-in` and `changed-in` shortcodes. ([#1972](https://github.com/matrix-org/matrix-spec/issues/1972))
- Fix formatting of `added-in` and `changed-in` shortcodes by using `%` delimiter. ([#1975](https://github.com/matrix-org/matrix-spec/issues/1975))
- Remove CSS workaround for scroll-anchoring. ([#1976](https://github.com/matrix-org/matrix-spec/issues/1976))
- Rename `custom-formats.yaml` to `string-formats.yaml` and update its docs. ([#1977](https://github.com/matrix-org/matrix-spec/issues/1977))
- Fix relative URLs when serving the specification with a custom `baseURL`. ([#1984](https://github.com/matrix-org/matrix-spec/issues/1984), [#1997](https://github.com/matrix-org/matrix-spec/issues/1997))
- Rename `.htmltest.yaml` to `.htmltest.yml`. ([#1985](https://github.com/matrix-org/matrix-spec/issues/1985))
- Improve the JS script to highlight the current ToC entry. ([#1991](https://github.com/matrix-org/matrix-spec/issues/1991), [#2002](https://github.com/matrix-org/matrix-spec/issues/2002))
- Upgrade docsy to 0.11.0 and hugo to 0.139.0. ([#1996](https://github.com/matrix-org/matrix-spec/issues/1996), [#2007](https://github.com/matrix-org/matrix-spec/issues/2007))
- Improve the quality of the rendered diagrams ([#1999](https://github.com/matrix-org/matrix-spec/issues/1999))
- Update the Inter font and allow the browser to render the page before it is loaded ([#2000](https://github.com/matrix-org/matrix-spec/issues/2000))
- Use a proper Matrix favicon ([#2001](https://github.com/matrix-org/matrix-spec/issues/2001))
- Clean up unused CSS classes in `openapi/render-operation` partial. ([#2003](https://github.com/matrix-org/matrix-spec/issues/2003))
- Fix `changed-in` partial when used with multiple paragraphs. ([#2006](https://github.com/matrix-org/matrix-spec/issues/2006))
- Optimize generated CSS by removing unused selectors. ([#2008](https://github.com/matrix-org/matrix-spec/issues/2008))
- Remove trailing slash on void HTML elements. ([#2009](https://github.com/matrix-org/matrix-spec/issues/2009))
- Remove `type` and `language` attributes of `script` element. ([#2021](https://github.com/matrix-org/matrix-spec/issues/2021))
- Change the accessible role of info boxes to `note`. ([#2022](https://github.com/matrix-org/matrix-spec/issues/2022))

View file

@ -0,0 +1,93 @@
---
title: v1.14 Changelog
linkTitle: v1.14
type: docs
layout: changelog
outputs:
- html
- checklist
date: 2025-03-27
---
## Client-Server API
**New Endpoints**
- Add `POST /_matrix/client/v3/users/{userId}/report`, as per [MSC4260](https://github.com/matrix-org/matrix-spec-proposals/pull/4260). ([#2093](https://github.com/matrix-org/matrix-spec/issues/2093))
**Removed Endpoints**
- Remove `server_name` parameter from `/_matrix/client/v3/join/{roomIdOrAlias}` and `/_matrix/client/v3/knock/{roomIdOrAlias}`, as per [MSC4213](https://github.com/matrix-org/matrix-spec-proposals/pull/4213). ([#2059](https://github.com/matrix-org/matrix-spec/issues/2059))
**Spec Clarifications**
- The `POST /_matrix/client/v3/rooms/{roomId}/initialSync` endpoint is no longer deprecated, as it is still used for peeking. ([#2036](https://github.com/matrix-org/matrix-spec/issues/2036))
- Clarify wording in the `/join` endpoints' summaries and descriptions. Contributed by @HarHarLinks. ([#2038](https://github.com/matrix-org/matrix-spec/issues/2038))
- Clarify formats of string types. ([#2046](https://github.com/matrix-org/matrix-spec/issues/2046))
- Fix various typos throughout the specification. ([#2047](https://github.com/matrix-org/matrix-spec/issues/2047), [#2048](https://github.com/matrix-org/matrix-spec/issues/2048), [#2080](https://github.com/matrix-org/matrix-spec/issues/2080), [#2091](https://github.com/matrix-org/matrix-spec/issues/2091))
- Document the `instance_id` field of `Protocol Instance` in the responses to `GET /_matrix/client/v3/thirdparty/protocols` and `GET /_matrix/client/v3/thirdparty/protocol/{protocol}`. ([#2051](https://github.com/matrix-org/matrix-spec/issues/2051))
- Applying redactions is a SHOULD for clients. ([#2055](https://github.com/matrix-org/matrix-spec/issues/2055))
- Clarify which rooms are returned from `/hierarchy`. ([#2064](https://github.com/matrix-org/matrix-spec/issues/2064))
- Clients can choose which history visibility options they offer to users when creating rooms. ([#2072](https://github.com/matrix-org/matrix-spec/issues/2072))
## Server-Server API
**Spec Clarifications**
- Remove the `origin` field in `PUT /send_join` responses, because it was never sent in the first place. ([#2050](https://github.com/matrix-org/matrix-spec/issues/2050))
- Clarify that `m.join_rules` should be in the `auth_events` of an `m.room.member` event with a `membership` of `knock`. ([#2063](https://github.com/matrix-org/matrix-spec/issues/2063))
- Remove an erroneous `room_id` field in a few examples. ([#2076](https://github.com/matrix-org/matrix-spec/issues/2076))
## Application Service API
No significant changes.
## Identity Service API
No significant changes.
## Push Gateway API
No significant changes.
## Room Versions
**Backwards Compatible Changes**
- Update the default room version to 11, as per [MSC4239](https://github.com/matrix-org/matrix-spec-proposals/pull/4239). ([#2105](https://github.com/matrix-org/matrix-spec/issues/2105))
**Spec Clarifications**
- For room versions 6 and 7, clarify in the authorization rules that `m.federate` must be checked and that events with rejected auth events must be rejected, for parity with all the other room versions. ([#2065](https://github.com/matrix-org/matrix-spec/issues/2065))
- Fix various typos throughout the specification. ([#2066](https://github.com/matrix-org/matrix-spec/issues/2066))
- Refactor PDU definitions to reduce duplication. ([#2070](https://github.com/matrix-org/matrix-spec/issues/2070))
- Clarify the maximum `depth` value for room versions 6, 7, 8, 9, 10, and 11. ([#2114](https://github.com/matrix-org/matrix-spec/issues/2114))
## Appendices
**Spec Clarifications**
- Clarify that arbitrary unicode is allowed in user/room IDs and room aliases. ([#1506](https://github.com/matrix-org/matrix-spec/issues/1506))
## Internal Changes/Tooling
**Spec Clarifications**
- Generate the changelog release info with Hugo, rather than the changelog generation script. ([#2033](https://github.com/matrix-org/matrix-spec/issues/2033))
- Update release steps documentation. ([#2041](https://github.com/matrix-org/matrix-spec/issues/2041))
- Remove unused `release_date` from Hugo config. ([#2042](https://github.com/matrix-org/matrix-spec/issues/2042))
- Clarify that v1.0 of Matrix was a release prior to the current global versioning system. ([#2045](https://github.com/matrix-org/matrix-spec/issues/2045))
- Fix syntax highlighting and click-to-copy buttons for code blocks by purging less CSS. ([#2049](https://github.com/matrix-org/matrix-spec/issues/2049))
- Fix the version of the Identity Service API when Matrix 1.0 was introduced. ([#2061](https://github.com/matrix-org/matrix-spec/issues/2061))
- Fix parsing of nested slices in `resolve-refs` and `resolve-allof` partials. ([#2069](https://github.com/matrix-org/matrix-spec/issues/2069))
- Deduplicate the definition of `RoomKeysUpdateResponse`. ([#2073](https://github.com/matrix-org/matrix-spec/issues/2073))
- Deduplicate the definitions of `Invite3pid`. ([#2074](https://github.com/matrix-org/matrix-spec/issues/2074))
- Support more locations for examples in OpenAPI definitions and JSON schemas. ([#2076](https://github.com/matrix-org/matrix-spec/issues/2076))
- Add link to the git commit for the unstable changelog. ([#2078](https://github.com/matrix-org/matrix-spec/issues/2078))

Some files were not shown because too many files have changed in this diff Show more