Compare commits

...

498 Commits
v1.2 ... main

Author SHA1 Message Date
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>
5 days ago
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>
2 weeks ago
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>
2 weeks ago
Andrew Morgan f4b34ba962
Note that whitespace around `Authorization` param commas is allowed (#1818) 2 weeks ago
Kévin Commaille 98d85cf421
Add support for rendering string formats (#1814)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 weeks ago
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.
2 weeks ago
Matthias Ahouansou eea3dfa969
Mention notifying AS for sender_localpart events (#1810)
Signed-off-by: Matthias Ahouansou <matthias@ahouansou.cz>
3 weeks ago
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>
3 weeks ago
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>
3 weeks ago
Kévin Commaille 85ad0c767c
Render response headers (#1809)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
3 weeks ago
Kévin Commaille 625999a039
Deprecate authentication via a query string (#1808)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
3 weeks ago
Kévin Commaille ae70b5fcf3
Replace `set-output` with environment files in CI (#1806)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
3 weeks ago
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>
3 weeks ago
Kévin Commaille d6b1d7300f
Update most CI actions (#1803)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
3 weeks ago
Kévin Commaille b0115a9613
Update typos CI action (#1804)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
3 weeks ago
Kévin Commaille a0bc6e7f83
Add anchors in `definition` shortcode (#1802)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
3 weeks ago
Kévin Commaille 7201042894
Fix anchors for schemas under `oneOf` (#1799)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
4 weeks ago
Kévin Commaille 2edfb21d5d
Add support for pattern formats for `patternProperties` (#1796)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
4 weeks ago
Kévin Commaille 26ce3929b4
Clean up unecessary `allOf`s (#1797)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
4 weeks ago
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>
4 weeks ago
Richard van der Hoff 2b5f990f60
Factor out common definition of `Tag` type (#1793)
... and remove spurious `additionalProperties: true`
1 month ago
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>
1 month ago
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.
1 month ago
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>
1 month ago
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>
1 month ago
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>
1 month ago
Richard van der Hoff becc667672
Update github-labels.rst (#1781)
Fix formatting
1 month ago
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>
1 month ago
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.
1 month ago
Kévin Commaille efe72d3b26
Fix security schemes in OpenAPI definitions (#1772) 1 month ago
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>
1 month ago
Kévin Commaille e74c7c1540
Fix Hugo warnings (#1775) 1 month ago
Travis Ralston d547154c91
Spec `?animated` on `/thumbnail` (#1757)
* Spec `?animated` on `/thumbnail`

* v3*

* v1.11
2 months ago
Johannes Marbach 8ff3623e37
Reduce whitespace on mobile viewports (#1770)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2 months ago
Kévin Commaille eb7ac353e2
Add support for muting in VoIP calls (#1755)
As per MSC3291.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 months ago
Richard van der Hoff c25ff9e012
Formatting fixes in CONTRIBUTING.rst (#1769)
* Formatting fix in CONTRIBUTING.rst

* Fix link

* Create 1769.clarification
2 months ago
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
2 months ago
Travis Ralston bd122b35b0 Return to unstable 2 months ago
Travis Ralston 4e51970c55 Upgrade Hugo version on the historical spec 2 months ago
Travis Ralston f7452e2bad Matrix 1.10 2 months ago
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>
2 months ago
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
2 months ago
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>
2 months ago
Will Hunt e5aa5235fe
MSC4041 - Add Retry-After header notice. (#1737) 2 months ago
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>
2 months ago
Travis Ralston 15663d405e Changelog normalization for Matrix 1.10 2 months ago
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>
2 months ago
Kévin Commaille 575c84d431
Fix `event-group` shortcode for changes in `resolve-refs` partial (#1754)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 months ago
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>
2 months ago
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>
2 months ago
Kévin Commaille 38796de79a
Add support for multi-stream VoIP (#1735)
As per MSC3077.
2 months ago
Tulir Asokan 5c96f45556
Specify that appservice login and register fail on incorrect as_tokens (#1744)
Signed-off-by: Tulir Asokan <tulir@maunium.net>
2 months ago
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>
2 months ago
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>
2 months ago
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>
2 months ago
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>
2 months ago
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>
2 months ago
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>
2 months ago
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>
2 months ago
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>
3 months ago
Richard van der Hoff 976ebdca2f
Update HTML templates to link to object definitions (#1724) 3 months ago
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>
3 months ago
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
3 months ago
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>
3 months ago
Kévin Commaille b136b357e0
Update docsy to v0.8.0 (#1699)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
3 months ago
Cadence Ember e2dc5a3826
strike element is deprecated, s replaces it (#1629)
* strike element is deprecated, s replaces it

* Add newsfragment
3 months ago
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>
3 months ago
Sumner Evans 9a1f0ad532
sas: clarify ECDH process in step 12 (#1720)
Co-authored-by: Denis Kasak <dkasak@termina.org.uk>
3 months ago
Sumner Evans 6096a28984
sas: clarify HKDF calculation uses base64-encoded keys (#1719) 3 months ago
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
3 months ago
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
3 months ago
Michael Telatynski 650e691a22
Fix npm release script (#1713)
* Fix npm release script

* Create 1713.misc
4 months ago
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>
4 months ago
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>
4 months ago
Richard van der Hoff 4a80df364a
Wording tweak in CONTRIBUTING.rst (#1697) 5 months ago
Richard van der Hoff 37ab151aad
Clarify secret storage format (#1695) 5 months ago
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>
5 months ago
Andy Balaam 3b2146c875
Batch receipts by thread as well as room (#1685) 6 months ago
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
6 months ago
Travis Ralston d50929d46b Become unstable 6 months ago
Travis Ralston 0c099e3b79 Matrix 1.9 6 months ago
Hubert Chathi 62c377e19c
fallback keys should have a "fallback: true" property (#1676)
* fallback keys should have a "fallback: true" property

* add changelog
6 months ago
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>
6 months ago
Travis Ralston 634b24fb25 Normalize changelog for 1.9 6 months ago
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>
6 months ago
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.
6 months ago
Matthew Hodgson 7b72c42ba6 put the e back into erik 6 months ago
No 91724e4aef
Fix .m.rule.suppress_notices push rule not being valid JSON (#1671)
Signed-off-by: tusooa <tusooa@kazv.moe>
6 months ago
Val Lorentz 7c19500da7
server-server-api: Fix grammar in server discovery (#1665) 7 months ago
Kévin Commaille 9fe119370b
Update typos action and fix typos (#1661)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
7 months ago
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>
7 months ago
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>
7 months ago
наб 7fb9e99071
annotion (#1658)
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
7 months ago
Kévin Commaille 72517c0f9c
Generate server-server OpenAPI definition (#1657)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
7 months ago
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>
8 months ago
Kévin Commaille c3098cc55c
Remove required 'fieldname' in Protocol definition (#1646)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
8 months ago
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>
8 months ago
tsufeki 92cf662e3a
Fix typo in canonical JSON grammar (#1652)
Signed-off-by: Benedykt Błaszkiewicz <tsufeki@gmail.com>
8 months ago
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>
8 months ago
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>
8 months ago
Michael Telatynski f11c5600a2
Fix npm package release automation (#1648) 8 months ago
Kévin Commaille 99e2ff4927
Replace all mentions of Swagger by OpenAPI (#1633)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
8 months ago
Kévin Commaille df3f0af5d4
Fix schema of `m.mentions` object (#1635)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
8 months ago
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>
8 months ago
Mohit Kumar Patel 46447e0287
add "case sensitive" to `/publicRooms` (#1638) 8 months ago
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>
8 months ago
Paarth Shah 838dec272c
Clarify that `via` is required for `m.space.parent` and `m.space.child` as per MSC1772. (#1618) 9 months ago
Patrick Cloke 5e938f2b83
Document .m.rule.suppress_edits push rule (MSC3958). (#1617) 9 months ago
heinrich5991 a1b832960c
Clarify that Unix timestamps disregard leap seconds since 1970 (#1627)
Fixes #1626.
9 months ago
Travis Ralston ca456a4f53 Reset for development 9 months ago
Travis Ralston 529cbf4ffc Matrix 1.8 changelog 9 months ago
Travis Ralston 7f8606eb6c Matrix 1.8 9 months ago
Travis Ralston 7aaeac0760 Update data-definitions
Following f65007476b
9 months ago
Weblate f65007476b Merge branch 'origin/main' into Weblate. 9 months ago
Travis Ralston 06298e4d8d Normalize changelog for Matrix 1.8
See https://github.com/matrix-org/matrix-spec/issues/1614
9 months ago
Travis Ralston 86ab57ec4f
Specify IANA-registered service name (MSC4040) (#1624)
* Specify MSC4040

* add changelog

* Fix flow of steps 4 and 5
9 months ago
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
9 months ago
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 :((
9 months ago
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>
9 months ago
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>
9 months ago
Richard van der Hoff 05ca6c7392
Remove mention of default port with SRV records (#1615) 9 months ago
Richard van der Hoff f5035b8e02
Fix up attribution
Per request at https://github.com/matrix-org/matrix-spec/pull/1601#discussion_r1269035798
10 months ago
Martin Fischer 1a11a7b998
Use auto table-layout on desktop (#1601)
Signed-off-by: Martin Fischer <martin@push-f.com>
10 months ago
Martin Fischer 4f39ad2a24
Add comment about Docsy fork to .gitmodules (#1600) 10 months ago
Kévin Commaille 639caf057d
Fix rendered changelog with new version of towncrier (#1598)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
10 months ago
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>
10 months ago
Vladimir Panteleev 746524928c
Fix grammar in client-server-api intro (#1597) 10 months ago
Michael Telatynski 3ae6bb47d8
Update end_to_end_encryption.md (#1596) 10 months ago
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>
11 months ago
Hubert Chathi 67c9f814e0
fix description of MAC calculation (#1590) 11 months ago
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>
11 months ago
Patrick Cloke 6521411547
Allow + in Matrix IDs. (#1583) 11 months ago
Tony Garnock-Jones e9acece3ec
Cope with negative-zero, and give an example of negative-zero and a large power of ten (#1573) 11 months ago
cheb 414cc1ea52
Add missing type enum for m.reaction (#1552) 11 months ago
Richard van der Hoff 42114406af
Update link to SAS emoji data (#1593) 11 months ago
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>
11 months ago
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.
11 months ago
Kévin Commaille a6eb381ebb
Fix the sidebar in recent versions of Hugo (#1551)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
11 months ago
Kévin Commaille 30845e189f
Remove unnecessary `oneOf`s 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>
11 months ago
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>
11 months ago
Kévin Commaille 564444d43e
Render binary request and response bodies (#1579)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
11 months ago
Kévin Commaille 4a9bda9bed
Use tag name as the OpenAPI definition version (#1561)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
11 months ago
Kévin Commaille 49957be1e3
Allow `null` in `room_types` for `POST /publicRooms` endpoints (#1564)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
11 months ago
Kévin Commaille adff3faa35
Make sure version in x-changedInMatrixVersion is a string (#1562) 11 months ago
Kévin Commaille 7a142936f5
Fix level of examples in server keys definition (#1560) 11 months ago
Kévin Commaille 3c5355a278
Use Redocly CLI to validate OpenAPI definitions (#1558) 11 months ago
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>
12 months ago
Kévin Commaille 45b6aaf07a
Upgrade Swagger data to OpenAPI 3.1 (#1310)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
12 months ago
Andrew Morgan c64a616d54
Update the changelog entry checker script to check newsfragment file extension (#1542) 12 months ago
Eric Eastwood dd6af5bfb1
Document why `/state_ids` can respond with a 404 (#1521) 12 months ago
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
12 months ago
Travis Ralston 48ee507489 Build unstable 12 months ago
Travis Ralston 8b51f1c011 Matrix 1.7 12 months ago
Travis Ralston 65d70e90b8 Tag Matrix 1.7 12 months ago
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
12 months ago
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>
1 year ago
Kévin Commaille bdf574eeb2
Fix typo in VoIP module (#1540)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
1 year ago
Travis Ralston db0fd30744 Fix stray localhost link 1 year ago
Travis Ralston d028dc4b82 Normalize changelog for v1.7 1 year ago
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>
1 year ago
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
1 year ago
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>
1 year ago
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>
1 year ago
Tulir Asokan 9dd9639dd7
Add spec for MSC2659: application service ping endpoint (#1516) 1 year ago
Kévin Commaille f564c07e60
Fixes and clarifications around m.reaction (#1531)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
1 year ago
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>
1 year ago
Richard van der Hoff cad4f78711
Update 1473.clarification
fix formatting
1 year ago
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
1 year ago
Patrick Cloke 466acdfc46
Update spec for MSC3952: intentional mentions (#1508)
See MSC3952.
1 year ago
Richard van der Hoff 9766b142f1
event_replacements: fix rationale box (#1525)
This was missing its %s
1 year ago
Richard van der Hoff c1ac9a9ad7
Update transaction ID scope (#1526) 1 year ago
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.
1 year ago
Hubert Chathi dc5d95c242
Clarify signatures upload endpoint (#1495)
* clarify signatures upload endpoint

* add changelog
1 year ago
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>
1 year ago
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
1 year ago
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.
1 year ago
Richard van der Hoff 283c5877fe
Spec asynchronous uploads (#1499)
Spec for matrix-org/matrix-spec-proposals#2246
1 year ago
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
1 year ago
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
1 year ago
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.
1 year ago
Richard van der Hoff cdbf44eef0
Fix rendering of properties with a list of types (#1487) 1 year ago
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>
1 year ago
Richard van der Hoff 715f6a301d
Spec annotations (#1475) 1 year ago
Richard van der Hoff a225025cab
Remove fictitious `token` parameter on `/keys/query` (#1485) 1 year ago
Richard van der Hoff 64c61c2de2
Properly separate Room ID and Event ID grammars (#1484) 1 year ago
Richard van der Hoff e9fc66cf77
Remove references to groups from appendices (#1483) 1 year ago
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.
1 year ago
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>
1 year ago
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>
1 year ago
Richard van der Hoff ac8d34bc81
Cleanups to github actions workflow (#1476) 1 year ago
Kim Brose a21b23dda8
Fix typo in registration.yaml (#1474) 1 year ago
Val Lorentz a847ee3b57
Remove leftover {key_id} from /_matrix/key/v2/server/ (#1473)
The parameter was removed in v1.6 (specifically in
9e45037129)
1 year ago
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.
1 year ago
Stuart Mumford d6f38f157d
Add a sentence about what canonical JSON is (#1468)
Signed-off-by: Stuart Mumford <stuart@cadair.com>
1 year ago
Richard van der Hoff acb631d3d6
Change the server aggregation for edits (#1440)
per matrix-org/matrix-spec-proposals#3925
1 year ago
Stuart Mumford bdc87784a1
Clarify that Persistent data unit is PDU (#1466)
Signed-off-by: Stuart Mumford <stuart@cadair.com>
1 year ago
Stuart Mumford 09e2250a8d
Spec implicit filter event limit (#1463)
Signed-off-by: Stuart Mumford <stuart@cadair.com>
1 year ago
Andrew Morgan 35f5439e00
Correct a small typo in the push rules spec (#1465 1 year ago
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.
1 year ago
Travis Ralston a481d6aafb
Add mention of private sign off to contributing guidelines (#1462) 1 year ago
Patrick Cloke afae1083aa
Clarify what key content-specific rules match against. (#1441) 1 year ago
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>
1 year ago
Andrew Morgan c0955a6aee
Add a hyphen between third and party when used as an adjective (#1447) 1 year ago
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.
1 year ago
Hugh Nimmo-Smith 10844fef8c
Clarification to transaction identifier idempotent semantics (#1449) 1 year ago
David Robertson f9ea0f9d9b
Only include endpoint path in `<summary>` (#1446) 1 year ago
Richard van der Hoff a45138c3b4
Minor updates to documentation style (#1456)
i.e. has full-stops
1 year ago
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
1 year ago
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>
1 year ago
Richard van der Hoff 77d0f20226
Remove spurious 'weight: 340' (#1442) 1 year ago
Jonas Platte 71b2235868
Clarify that reply chain fallback for threads may not be present (#1439) 1 year ago
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>
1 year ago
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>
1 year ago
Travis Ralston 377e301c61 Fix MSC naming reference 1 year ago
Travis Ralston 49b7414080 Return to unstable 1 year ago
Travis Ralston 029e988835 Matrix 1.6 1 year ago
Travis Ralston 97e353d26b Tag Matrix 1.6 1 year ago
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>
1 year ago
Andy Balaam b5566dbadb
Clarify which events will be included in Stripped State (#1409)
Signed-off-by: Andy Balaam andy.balaam@matrix.org
1 year ago
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.
1 year ago
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>
1 year ago
Hubert Chathi e9a463d871
Send heroes for nameless rooms on send_join (#1425)
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
1 year ago
Travis Ralston 5c485ade2e Prepare changelogs for v1.6 1 year ago
Richard van der Hoff a7790fcbbf
Clarify room version grammar (#1422)
Apparently the SHOULD is confusing
1 year ago
Richard van der Hoff 05620913d5
Fix anchor for room-knocking heading (#1423)
Fixes #1407
1 year ago
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>
1 year ago
Kim Brose d4586eba2e
Improve formatting of definitions in the Push Notifications section (#1415)
Signed-off-by: Kim Brose <2803622+HarHarLinks@users.noreply.github.com>
1 year ago
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>
1 year ago
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>
1 year ago
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>
1 year ago
Richard van der Hoff b8411b5159
Spec `omit_members` for `/v2/send_join` (#1393)
Per MSC3706
1 year ago
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>
1 year ago
Hubert Chathi eb2456c7d4
Improve documentation around one-time keys and key types (#1381) 1 year ago
Hubert Chathi 94465fe93b
Add spec for getting events by timestamp (#1366) 1 year ago
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.
1 year ago
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
1 year ago
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
1 year ago
Richard van der Hoff f386c903c0
Clarify that CNAMEs are permissible for server names (#1376)
Fixes https://github.com/matrix-org/matrix-spec/issues/606.
1 year ago
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
1 year ago
Richard van der Hoff 9555cbe5a9
Fix incorrect default "Invite level" (#1371) 1 year ago
Hubert Chathi 5d40118116
Merge pull request #1363 from zecakeh/fix-typos
Fix various typos
1 year ago
Kévin Commaille 2e789736cc
Add newsfragment
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
1 year ago
Kévin Commaille 60544a362b
Reference relations were added in v1.5
According to the changelog

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
1 year ago
Kévin Commaille 7af45a36fc
Fix `read_markers`
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
1 year ago
Kévin Commaille 6ffc5e6ed0
Fix `and` -> `an`
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
1 year ago
Johannes Becker e481fd011a
Add link to the unstable spec to the README (#1357) 2 years ago
Kévin Commaille 8d4a3bb912
Clarify what fields are required when deleting a pusher (#1321)
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 years ago
Sumner Evans 84fbb611db
Clarify that /context always returns 'event' even if limit is zero (#1239)
Signed-off-by: Sumner Evans <me@sumnerevans.com>
2 years ago
Johannes Becker 3f3b5c39f0
Remove duplicated "Note:" from `m.room.power_levels` (#1355)
Remove duplicated "Note:"

Signed-off-by: Johannes Becker <j.becker@famedly.com>
2 years ago
David Robertson 07442876ce
Improve presentation of push rules kinds and actions (#1348) 2 years ago
Kévin Commaille 4534124742
Include examples inline instead of using a reference for invite endpoint definitions (#1349)
The OpenAPI 3 spec doesn't allow building examples by composition.
Either the whole example must be a reference, or it has to be included.

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

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 years ago
Johannes Becker b2c4abf567
Clarify the power levels integer range (#1169)
Signed-off-by: Johannes Becker <j.becker@famedly.com>
2 years ago
David Baker 24b95cbb89
Merge pull request #1353 from HarHarLinks/patch-1
add missing description to m.call.answer schema
2 years ago
Kim Brose 8830314401
Create 1353.clarification 2 years ago
Kim Brose 8d378cfd51
add missing description to m.call.answer schema 2 years ago
Travis Ralston 3a84ea7cf6 Return to unstable 2 years ago
Travis Ralston 5f2fac89af Matrix 1.5 2 years ago
Travis Ralston 887344a16c Tag Matrix 1.5 2 years ago
Hubert Chathi 684ead8ab6
Merge pull request #1294 from uhoreg/rhul_clarifications
add some e2ee clarifications
2 years ago
Hubert Chathi 2fcc92c2fb
improve documentation of ephemeral events (#1284) 2 years ago
Hubert Chathi 64922771d4
Clarify that verifications without a request only happens over to-device (#1345) 2 years ago
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.
2 years ago
Andrew Morgan cb2d5653ee
Add Event Replacements, Threading and Reference Relations modules to module summary table (#1344) 2 years ago
Hubert Chathi 0f0caf582d more clarifications 2 years ago
Hubert Chathi 9fafadf311
Upgraded refusal to verify to a MUST
Co-authored-by: Denis Kasak <dkasak@termina.org.uk>
2 years ago
Andrew Morgan b5005e64f7
Document that non-spec changes should get an 'internal' changelog entry (#1342) 2 years ago
Richard van der Hoff f0246a5f12
Disable RSS for spec (#1346)
This should really fix #1336
2 years ago
Hubert Chathi 19e29e36af more clarifications 2 years ago
Richard van der Hoff 3c9139bd5d
Unpack spec into right place for htmltest (#1338)
Hopefully, fixes https://github.com/matrix-org/matrix-spec/issues/1336
2 years ago
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.
2 years ago
Hubert Chathi d0cbd4c8dd
Apply suggestions from code review
Co-authored-by: Denis Kasak <dkasak@termina.org.uk>
2 years ago
David Baker 678f8b96f0
Merge pull request #1341 from matrix-org/dbkr/add_read_receipt_example
Add example read receipt to sync example
2 years ago
David Baker d620ff7a7c
Better newsfragment
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2 years ago
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.
2 years ago
David Baker 26528c05c5 Newsfragment 2 years ago
David Baker 312a0e9b05 Add example read receipt to sync example
Fixes https://github.com/matrix-org/matrix-spec/issues/120
2 years ago
Richard van der Hoff ac1c5ad2bb
Merge pull request #1331 from zecakeh/swagger-preview
Update instructions to preview Swagger definitions
2 years ago
Richard van der Hoff 12b4d8ad95
Update README.md 2 years ago
Kévin Commaille b38cd08fbd
Add newsfragment
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 years ago
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>
2 years ago
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
2 years ago
Richard van der Hoff b9952f1a74
Merge pull request #1329 from matrix-org/rav/htmltest
Add link checker to CI
2 years ago
Richard van der Hoff 44c7eb5b88
Merge pull request #1330 from matrix-org/rav/fix_dead_links
Fix broken links
2 years ago
David Baker f53da89996
Merge pull request #1318 from zecakeh/pushrules-set-sound
Replace `set_sound` push rule action by `set_tweak`
2 years ago
BramvdnHeuvel 6879f96c90
Require refresh_token on refresh token endpoint (#1323)
Signed-off-by: Bram van den Heuvel matrix-spec@noordstar.me
2 years ago
Kévin Commaille 8526e4fcd9
Clarify the behavior of `PUT /pushrules/{scope}/{kind}/{ruleId}` (#1319)
This is based on the behavior of Synapse and Dendrite. Conduit's implementation is already non-compliant in regards to what was already defined in the spec.

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

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

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

Work around this by manually setting a few anchors, linking to other nearby
bits of text, or just changing heading titles.
2 years ago
Richard van der Hoff 3e074ed6d3 Add htmltest github action 2 years ago
Richard van der Hoff 4d0c912acf changelogs 2 years ago
Richard van der Hoff 6cbb88f9df Fix broken links
A bunch of broken links I found
2 years ago
Andrew Morgan fd41d9d4ed
Update docsy (hugo theme) git submodule (#1295) 2 years ago
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/.
2 years ago
Kévin Commaille fc624328df
Change newsfragment
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 years ago
Richard van der Hoff 1945589acf
Clarifications to AS spec, including MSC3905 (#1305)
Primarily this is the spec for MSC3905, but I've also taken the opportunity to clean up the section a bit and move the definition out to a .yaml file.
2 years ago
Kévin Commaille f428ba1499
Add newsfragment
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 years ago
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>
2 years ago
Kévin Commaille 306d1aac5d
Add newsfragment
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 years ago
Kévin Commaille 392794950b
Replace set_sound push rule action by set_tweak
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 years ago
Hubert Chathi 830f80f56a
Merge pull request #1271 from uhoreg/add_verification_request_msgtype
add in-room m.key.verification.request msgtype
2 years ago
Hubert Chathi 82d2dd4ab0
Merge pull request #1283 from uhoreg/fix_event_subtype
improve display of event subtypes
2 years ago
Hubert Chathi dd0f867fad make examples agree with schema 2 years ago
Hubert Chathi 2395dd87c0 more clarifications, and move event definitions to yaml 2 years ago
Hubert Chathi d0d7bdb807 apply changes from code review 2 years ago
Alexandre Franke 39f79fe521
Update link to API viewer (#1308)
* Update link to API viewer

Fixes #2
2 years ago
Hubert Chathi 60d9518a63 pass the desired example name to the template 2 years ago
Andrew Morgan c8242eeb35
Replace misuses of 'plaintext' with 'cleartext' and clarify spoiler docs (#1306) 2 years ago
Hubert Chathi d6345f0df2 apply changes from code review 2 years ago
Hubert Chathi fbbf3b81c5 add some e2ee clarifications 2 years ago
Travis Ralston b2cc836649
Spec reference relationships (#1206)
* Spec reference relationships

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

* Apply suggestions from code review

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

* Edits per code review

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

* Changelog

* Adjust changelog

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

* Refer to appendices

Co-authored-by: Travis Ralston <travpc@gmail.com>
2 years ago
Hubert Chathi f76ff36545 add links 2 years ago
Hubert Chathi 76bf60a12f set the title of m.key.verification.request in-room event 2 years ago
Hubert Chathi 089f1fee7d add changelog 2 years ago
Hubert Chathi 99cd692ed0 improve display of event subtypes 2 years ago
Hubert Chathi c0d54ab4d9
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Richard van der Hoff 11cef5417a
Clarify auth rules for `m.room.power_levels` events (#1269) 2 years ago
Andrew Morgan 3808a679c1
Fix up description of `knock_room_state` field, which implied the required field was optional (#1276) 2 years ago
Richard van der Hoff c4505665e0
Various clarifications to auth rules text (#1270) 2 years ago
Andrew Morgan 43a48314ac
Remove reference to a `room_id` key for typing events (#1265) 2 years ago
Erik Johnston 4bda06a886
Merge pull request #1266 from matrix-org/erikj/clarfiy_otks 2 years ago
Hubert Chathi 9d8e17fb22 add changelog 2 years ago
Hubert Chathi 191450ea73 add in-room m.key.verification.request msgtype 2 years ago
Travis Ralston 1cdfbd3cd8
v1.4 patch release cleanup (#1268)
* Add missing steps to patch release guidelines

* Update from v1.4 patch
2 years ago
Erik Johnston b8e7c4e133 Newsfile 2 years ago
Erik Johnston dc0882012b Fix naming of `device_one_time_keys_count` in /sync
Fixes #671
2 years ago
Kévin Commaille d3d4afdbfd
Receipts: Add `thread_id` to the `/receipt` endpoint (#1261)
* Receipts: Add thread_id to the /receipt endpoint

It seems to have been omitted in #1255

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

* changelog

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

* Fix missing backtick

* Apply suggestion for error description

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

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
Co-authored-by: Travis Ralston <travpc@gmail.com>
2 years ago
Andrew Morgan 098aabd22a Add a missing 'the' 2 years ago
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>
2 years ago
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
2 years ago
Travis Ralston 434f1b0672 Go back to unstable 2 years ago
Travis Ralston 7a591366c1 v1.4 changelog 2 years ago
Travis Ralston c8a1046e84 v1.4 2 years ago
Travis Ralston 227757d499
Threads: Read receipts & notifications (#1255)
* Spec MSC3771: Threaded read receipts

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

* Spec MSC3773: Threaded notifications

* changelog

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

Other threading MSCs to follow

* Spec MSC3856: Threads list API

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

* changelog

* Apply suggestions from code review

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

* Update changelogs/client_server/newsfragments/1254.feature

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

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

* Create 1238.clarification

* Update changelogs/client_server/newsfragments/1238.clarification

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

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
2 years ago
Andrew Morgan e7e376142e
Fix typos in the spec related to account data (#1243) 2 years ago
Richard van der Hoff 58e6900891
Spec event edits (#1211)
Per matrix-org/matrix-spec-proposals#2676
2 years ago
Hubert Chathi bd4593ff73
Merge pull request #1240 from clokep/enum-commas
Render commas between enum values.
2 years ago
Patrick Cloke 1c0101ce4c Put commas between enum values. 2 years ago
Travis Ralston e406bd94f6
Spec MSC2285: Private read receipts (#1216)
* Convert `m.receipt.yaml` to traditional YAML

* Spec MSC2285 (private read receipts)

* Add some obvious copyright headers

* Add changelog entries

* Appease the linter

Apparently it hates it when you do this.

* Allow m.fully_read on /receipts

* Apply suggestions from code review

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

Co-authored-by: Matthew Hodgson <matthew@matrix.org>
2 years ago
David Robertson a6990ff27c
Fix spacing of mapping types (#1230)
* Fix spacing of mapping types

* Changelog
2 years ago
Will Hunt 8df0cfeae0
s/room/rooms (#1215)
* s/room/rooms

Fixes #979

* Create 1215.clarification
2 years ago
Andrew Morgan 5572d33453
Require `access_token`, `device_id` and `user_id` fields in `/login` response (#1210) 2 years ago
Richard van der Hoff 1930824898
include CS-api modules with `{{<` (#1205)
... because that fixes everything. Or at least, #1204.
2 years ago
Travis Ralston afc0e6a026
Add CORP headers to media repo (#1197)
* Add CORP headers to media repo

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

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

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

* Remove test paragraph

* Refine prose

* spelling is key
2 years ago
Travis Ralston b14759a27b
Add `room_types` and `room_type` to `/publicRooms` (#1199)
MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/3827
Incorporates https://github.com/matrix-org/matrix-spec-proposals/pull/3858
2 years ago
Travis Ralston 9506ecea59
Add missing annotation for v1.4 on ACL push rule (#1201)
* Add missing annotation for v1.4 on ACL push rule

* changelog
2 years ago
Travis Ralston 6dc7b95e18
Use auth header instead of query param for hs->as comms (#1200)
* Use auth header instead of query param for hs->as comms

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

* Fix for OpenAPI 2
2 years ago
Richard van der Hoff ef384f1afd
Give rendered-data sections a background and some padding (#1195)
Gives definition sections for APIs, events, etc a background and a small indent, which I find very helpful to guide the eye.
2 years ago
Travis Ralston 9093a5f16f
Copy room `type` on upgrade too (#1198)
MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/3818
2 years ago
Travis Ralston 3c45c0aeb4
Remove unused policy room sharing mechanism, as per MSC3844 (#1196)
MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/3844
2 years ago
Richard van der Hoff dc4fd9bdd6
Render HTML anchors for definition blocks (#1191)
It's handy to be able to link to these.
2 years ago
Travis Ralston 569e139ac5
Add an "internal changes" changelog section (#1194)
* Add an "internal changes" changelog section

* update changelog number
2 years ago
Travis Ralston b36d4eff7d
Remove declared-invalid `invite->knock` restriction from auth rules (#1175)
* Remove declared-invalid `invite->knock` restriction from auth rules

* Changelog

* real changelog
2 years ago
Richard van der Hoff f24cad1653
Add push rule for `m.room.server_acl` (#1190)
* Add push rule for `m.room.server_acl`

... per MSC3786.

* Update changelogs/client_server/newsfragments/1190.feature

Co-authored-by: Travis Ralston <travisr@matrix.org>
2 years ago
Richard van der Hoff b58c7a5839
Reinstate margin between tables (#1192) 2 years ago
Richard van der Hoff 737260edbe
Move newsfragment check to a separate workflow (#1193)
... to make sure we still get a preview even if there is no newsfragment.
2 years ago
David Robertson 69ff51c017
Tweak style of `<code>` samples in rendered tables (#1179)
* Tweak style of `<code>` samples in rendered tables

This has been subtly irritating me for aaaaaaages

* Changelogs
2 years ago
Richard van der Hoff 91aebd62c4
CSS hack to fix scroll anchoring (#1183)
Disable explicit `height` setting for the top-level div, which breaks scroll
anchoring
2 years ago
Richard van der Hoff 3dc3150f6d
fix typo 2 years ago
Richard van der Hoff b232148821
Clarify the use of JSON in requests and responses (#1185)
Fixes #1182
2 years ago
Hubert Chathi 119197e798
Merge pull request #1180 from DMRobertson/dmr/other-error-codes-typo
Remove a stray fullstop in "Other error codes"
2 years ago
David Robertson 077f414cd0
Update changelogs/client_server/newsfragments/1180.clarification
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2 years ago
David Robertson 494f903f71
Changelog 2 years ago
David Robertson 4be2916047
Remove a stray fullstop in "Other error codes" 2 years ago
Richard van der Hoff ea42cd3c7b
Move various e2e defintions out to yaml files (#1166)
We have code to generate tables, which we should use in the e2e section.
2 years ago
Richard van der Hoff 5f3b34448d
Add HTML ids for object definitions in the formatted specification (#1174)
* Remove redundant call to resolve-allof

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

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

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

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

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

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

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

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

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

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

* newsfiles
2 years ago
Travis Ralston 16eb4cb961
Disable blank issue reporting (#1172)
Folks who want to report a blank issue can still get at the form if they try hard enough, but in general everything should have a label to make triage easier.
2 years ago
David Robertson f9028acf8e
Describe return codes for account data endpoints + minor clarifications (#1155) 2 years ago
Travis Ralston 56400ab9a0
Add missing "added in" spec version to some key backup endpoints (#1170)
* Add missing version to some key backup endpoints

* Create 1170.clarification
2 years ago
Brad Murray ead437578b
Fix typo in m.secret.request device event name (#1135)
* Fix typo in m.secret.request device event name

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

* Add changelog

* Update changelogs/client_server/newsfragments/1135.clarification

* Update changelogs/client_server/newsfragments/1135.clarification

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
2 years ago
David Florness adaef611dc
Fix typo (#1161)
Signed-off-by: David Florness <david@florness.com>
2 years ago
DeepBlueV7.X 5bf35327c6
Fix wording for globs in policy lists (#1165)
* Fix wording for globs in policy lists

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

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

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

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

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

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

* Add changelog

Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
2 years ago
Hubert Chathi adf8f4817d
Merge pull request #1164 from uhoreg/fix_olm_algorithm
Fix the olm algorithm name in an example
2 years ago
Hubert Chathi 577eb5db59 add changelog 2 years ago
Hubert Chathi 8d45231c64 fix the olm algorithm name in an example 2 years ago
Richard van der Hoff 848294ea37
events with rejected_auth_events must be rejected (#1137)
This might be kinda obvious, but didn't seem to be spelt out anywhere.
2 years ago
David Robertson cc7cc4a44d
Fix unintentional stateres change added in #1042 (#1158)
* Fix unintentional stateres change added in #1042

* Changelog
2 years ago
Will Hunt cf6544c028
Clarify that /invite will respond with 200 if the user is already invited to the room (#1084)
* Clarify that /invite will respond with 200 if the user is already in the room

* Create 1084.clarification

* Update changelogs/client_server/newsfragments/1084.clarification

Co-authored-by: Travis Ralston <travpc@gmail.com>
2 years ago
Finn Behrens 83055f2f54
Update idp-brands.md (#1140)
update apple link
2 years ago
Aaron Raimist 0cec7c7f1b
Pin typos to v1.10.2 and run on pushes to main (#1143)
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2 years ago
Travis Ralston 66a5920804
Remove matrix-doc changelog hack (#1134) 2 years ago
Travis Ralston 0dd3fa481b Fix changelog 2 years ago
Travis Ralston 203b9756f5 Return to unstable 2 years ago
Travis Ralston 98db9a6d04 v1.3 changelog generation 2 years ago
Travis Ralston 1474427599 v1.3 2 years ago
David Robertson 6af499361e
Revert "Note a more efficient computation of the auth difference. (#1119)" (#1132)
* Revert "Note a more efficient computation of the auth difference. (#1119)"

This reverts commit a707266e50.

* Changelog

* Delete 1132.misc

Co-authored-by: Travis Ralston <travpc@gmail.com>
2 years ago
David Robertson 2ee2172cf5
Better description of the mainline of a PL event. (#1107) 2 years ago
David Robertson a707266e50
Note a more efficient computation of the auth difference. (#1119) 2 years ago
Alexey Rusakov 6792b7a9d6
Use type: integer, format: int64 for timestamps (#1129)
* Use type: integer / format: int64 for timestamps

Closes #749.

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

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

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

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

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

* Changelog
2 years ago
Alexey Rusakov 980d9cd6e9
openapi_extensions.md: fix typos and leftovers (#1128)
* openapi_extensions.md: fix typos and leftovers

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

* Changelog
2 years ago
Neil Alexander 1a994f6119
Add `m.federate` into the auth rules (#1103)
* Add section about `m.federate` into the auth rules

* Add changelog entry

* Update changelog, add to room version 10 event auth rules
2 years ago
David Robertson 580be61df7
Conflicted state set is a set of events (#1120)
In #1042 I incorrectly wrote that the conflicted state set is a set of
pairs (K, V). We later take the union of the conflicted state set and
the auth difference. The latter is a set of events (V) only.

Fix this by making the conflicted state set a set of events rather than
a set of pairs. That is, the conflicted state set is a a `Set[Event]`
instead of a `Set[((type, state key), event)]`.
2 years ago
Alexey Rusakov cbdd889fa8
auth_data.yaml: formally allow it to be non-object (#1115)
Closes #716.

Signed-off-by: Alexey Rusakov Kitsune-Ral@users.sf.net
2 years ago
Hubert Chathi 10615c5385
Merge pull request #1113 from zecakeh/refresh-token-inhibit
`refresh_token` is omitted if `inhibit_login` is true
2 years ago
Hubert Chathi 3fbaced8be
Merge changelog with changelog for #1056 2 years ago
Kévin Commaille 86f984b1b6
Changelog
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 years ago
Kévin Commaille c665f7fcb6
refresh_token is omitted if inhibit_login is true
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2 years ago
Travis Ralston 926c6bad61
Deprecate the `sender_key` and `device_id` on Megolm events (#1101)
* Deprecate the `sender_key` and `device_id` on Megolm events

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

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

* changelog

* Apply wording changes

* Remove incorrect example

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

* Move rich replies to a module

* Add remainder of MSC2674

* Pivot away from MSC3440: Threads

* Add changelog entries so far

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

* Outright remove threads references

Apparently this breaks the table of contents

* Define MSC2675

* Define MSC3666

* Add note for rich replies?

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

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

* Clarify how ignoring works for aggregations.

* Try to clarify redactions a bit

* Clarify using parent/child language

* Add missing bits of MSC2675

* Add changelog for aggregations

* Appease the linters

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

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

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* Try to clarify the return of /relations

* Fix required attribute

* Fix wording round 1

* Try to fix pagination

* Copy/paste the endpoint to make Open API happy

* Fix code block examples for rich replies

* Apply suggestions from code review

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

* Apply suggestions on all 3 endpoints

* Fix description of relationships API

* Fix warning about server-side aggregation/bundling

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

* Revert "Clarification on historical power level handling"

This reverts commit f443b3d5a9.

* Clean up

* Let us try this again not using VS Code

* Markdown is full of mysteries

* Move stringy power levels to room versions

* Describe range

* Fix minor issues with previous room version stuff

* Copy/paste v9 into v10

* Describe deprecated formatting

* Paste unmodified auth rules from v8 into v10

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

* Add knock_restricted to v10 auth

* Misc cleanup and clarification for fragments

* Describe `knock_restricted` client changes

* Changelogs

* spelling

* Apply suggestions from code review

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

* Apply code review suggestions manually

* Fix v9 redactions

* Fix auth rules clarity issues

* Apply suggestions from code review

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

* Remove false integer requirements

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

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

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

* Add changelog

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

* Also make room_type and allowed_room_ids optional in the openapi

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

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

* Fix copy and paste error of newsfragment

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

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

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

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

* Update changelogs/client_server/newsfragments/1097.clarification

Co-authored-by: Travis Ralston <travpc@gmail.com>
2 years ago
Hubert Chathi 91b2a49b6f apply suggestions from review, and other clarifications 2 years ago
Hubert Chathi 84747f90e8 Merge branch 'main' into refresh_token_spec 2 years ago
Travis Ralston 10bd1b5038
Re-add timestamp massaging (#1094)
* Re-add timestamp massaging

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

* changelog
2 years ago
Travis Ralston a91030f27b
Re-add paragraph about how some state keys are reserved (#1100)
* Re-add paragraph about how some state keys are reserved

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

* changelog
2 years ago
Travis Ralston 515269b2e3
Unify & standardize the v1.3 changelog (#1102)
* Reference MSCs where MSCs were not being referenced.
* Alter language to appear consistent and from a single voice.
* Bundle and group various changes together (will affect the final changelog - the rendered one still doesn't bundle appropriately).
* Move entries to the spec area they are intended to be in.
2 years ago
Hubert Chathi 2780055198
clarify federation Authorization header an add destination property (#1067)
* clarify federation Authorization header an add destination property

* add changelogs

* some clarifications

* more clarifications, fixes

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

* Apply suggestions from code review

Co-authored-by: Travis Ralston <travpc@gmail.com>
2 years ago
David Robertson 3f7b0e80a3
Minor drive-by state res clarifications (#1042)
* Opinionated rewrite of unconflicted state map

* Define auth chain
2 years ago
David Robertson 25a9dcfd3c
Clarify that the resident server should sign the restricted join (#1093)
* Clarify that server should sign the restricted join

* Changelog

* Changelog
2 years ago
Alexey Rusakov e38c4e6f17 Revert accidentally pushed commits
This reverts commits:
c11991f9de.
f8bf0fa0ac.
7abdd45c06.
92db4e20da.
2 years ago
Alexey Rusakov 92db4e20da /password: formalise 'default' for logout_devices 2 years ago
Alexey Rusakov 7abdd45c06 notifications.yaml: Use int64 for timestamp 2 years ago
Alexey Rusakov f8bf0fa0ac profile.yaml: require displayname/avatar_url
This makes a deliberate choice for the question stated in #2717.
2 years ago
Alexey Rusakov c11991f9de openapi_extensions.md: add a clarification for oneOf 2 years ago
Richard van der Hoff bb47f08ee7
Remove broken "token-based" link (#1081)
This used to link to a section in the UIA docs (https://matrix.org/docs/spec/client_server/r0.6.1#token-based), 
but that was removed in 7c6636a5.
2 years ago
David Robertson c4e54509db
PDU check 5 should consult state before an event (#1070) 2 years ago
Hubert Chathi 58f960e5cc
Merge pull request #1055 from progval/valid_until_ts
Clarify that valid_until_ts is in milliseconds, like other timestamps used in Matrix
2 years ago
Michael Telatynski 573dbb3b74
Fix error code typo (#1059)
* Fix error code typo

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

* Create 1059.clarification
2 years ago
David Robertson 9ede29a01d
Attempt to define a valid event (#1045)
* Attempt to define a valid event

Resolves #1044.

Well, maybe.

* Changelog

* link to /rooms, thanks Travis

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

Co-authored-by: Travis Ralston <travpc@gmail.com>
2 years ago
Alexey Rusakov 61e7a73a4f
Drop lifetime from the call answer event example (#1054)
* Drop lifetime from the call answer event example

* Changelog
2 years ago
David Robertson 29e7036043
Auth rules: PDU content definitions cross-refs (#1050)
* Auth rules: PDU content definitions cross-refs

* Changelog

* Apparently v6 & v7 auth rules aren't in fragments
2 years ago
David Robertson 81d61d87f4
Italicise primes and brackets in state res desc (#1043)
* Italicise primes and brackets in state res desc

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

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

Resolves #774.
An alternative to #1040.

* Changelog
2 years ago
Hubert Chathi 4b5c6ff1fd Merge branch 'main' into refresh_token_spec 2 years ago
Travis Ralston 72c047d336 Move changelog to correct directory 2 years ago
Hubert Chathi d692062e3a add changelog 2 years ago
Hubert Chathi 1f81587154 add spec for refresh tokens 2 years ago
Valentin Lorentz 34589078fd Clarify that valid_until_ts is in milliseconds, like other timestamps used in Matrix
Signed-off-by: Valentin Lorentz <progval+git@progval.net>
2 years ago
Travis Ralston fd2d5b8a49
Fix a few more instances of matrix-doc being used; Fix changelog support for repo split (#1051)
* Use spec-proposals repo for links in spec text and current changelog

* Make the changelog repo-aware

* Changelog
2 years ago
Andrew Morgan 8a5955e98f Remove 'room_id' field from `m.typing`, `m.receipt` and `m.fully_read` examples and schema (#3679)
The spec had an erroneous `room_id` field in a m.typing EDU entry of /sync, `m.read` receipts in `/sync`, and `m.fully_read` room account data objects in the spec. None of these are necessary nor used in practice.

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

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

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

The field was initially introduced in 0f28f83.
2 years ago
Aaron Raimist c657932830 Update the default room version to 9 (#3739)
* Update the default room version to 9

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

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

* Add changelog

Signed-off-by: Aaron Raimist <aaron@raim.ist>
2 years ago
Aaron Raimist ac4a296e4c Remove unenforced size limit on room names (#3669)
Fixes #3641

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

Signed-off-by: Aaron Raimist <aaron@raim.ist>
2 years ago
Jonas Platte 71601a5ff5 Fix broken link in end_to_end_encryption.md (#3708) 2 years ago
Alexandre Franke 632c224ec3 Warn of untagged operations (#3699)
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
2 years ago
Tulir Asokan 9b0bd0917d Fix join membership auth rules when `join_rule` is knock (#3737)
Fixes #3736
2 years ago
Travis Ralston fd2340a4da Fix membership state table and diagram (#3730)
* Fix membership state table and diagram

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

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

* Changelog

* Make the graph prettier

* Update changelogs/client_server/newsfragments/3730.clarification

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

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Travis Ralston b6f2b172a6 Clarify that the X-Matrix validation uses the parsed request body (#3727) 2 years ago
Travis Ralston 2997c9089d
Merge pull request #1035 from thomaslantern/thomasws_branch
removed m.room.message.feedback
2 years ago
Travis Ralston 3c4b65849e Move changelog to the correct place 2 years ago
Travis Ralston 0cb0ff3f98
Update changelogs/client_server/newsfragments/3582.clarification 2 years ago
Richard van der Hoff a164302164
Get rid of the `proprosal-in-review` label (#1036)
Everything is in review. We may as well just use the draft state for WIP stuff.
2 years ago
thomaslantern 823b373601 added changelog 2 years ago
Travis Ralston 39d472fac0
Merge pull request #1038 from dkasak/dkasak/fix-hs-name-in-example
Fix origin server name in S2S Request Authentication example.
2 years ago
Travis Ralston d8bab31f76
Merge pull request #1037 from DMRobertson/dmr/state-res-bold-defs
Stateres v2: Use bold to introduce definitions.
2 years ago
Denis Kasak 2857511a02 Changelog 2 years ago
Denis Kasak c67df81202 Fix origin server name in S2S Request Authentication example.
The JSON payload listed a different origin HS name from the one
mentioned in the Authorization header.
2 years ago
David Robertson 05da3dc621
Changelog 2 years ago
David Robertson 5181de4080
Stateres v2: Use bold to introduce definitions.
Otherwise they are inline into the paragraph without punctuation, and
hard to read.

I'm guessing that pandoc did a poor job of converting a LaTeX
`begin{description}...\end{description}` or `\paragraph{...} ...` to
Markdown.
2 years ago
thomaslantern 842106d9d8 removed m.room.message.feedback 2 years ago
Richard van der Hoff 614680675f
Fix broken links to `matrix-doc` (#1032)
The spec has moved to https://github.com/matrix-org/matrix-spec, so there were
a lot of broken links here.
2 years ago
Catalan Lover 188eba6969
Correct several occurances of the old repo (#1031)
This PR aims to correct several occurances of the old repo link in proposals.md 

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

I also changed the line about related MSCs or Doc issues to be Spec issues since i think this is a clear enough case for me to be willing to guess what is appropriate.
2 years ago
Andrew Morgan b9500a7548
Update the 'unstable' copy of the site every night at 2am UTC (#1028) 2 years ago
Richard van der Hoff 136b5c9231
Correct the default for `invite` in `m.room.power_levels` (#1021)
Per #860, this has been wrong in the spec forever.
2 years ago
Richard van der Hoff 03cdea4b57
Style tweak for API rendering (#1012)
Tighter bound on the `max-width` property for paragraphs inside rendered
APIs. AFAICT it's only meant to apply to the summary.
2 years ago
Richard van der Hoff dfb1bf2a5d
Fix `x-changedInMatrixVersion` for API parameters (#1011) 2 years ago
Jonas Platte f6da709857
Mark `from` parameter as optional for `/messages` (#1002)
As per MSC3567, the `from` parameter is now optional for the `/messages` endpoint to allow fetching first or latest room content without having to rely on `/sync`

https://github.com/matrix-org/matrix-doc/pull/3567
2 years ago
Jonas Platte ac9bee3f88
Remove origin from unsigned_pdu_base.yaml (#998)
It doesn't serve a useful purpose, is not enforced to be present by Synapse
and already being omitted by at least one homeserver implementation.
2 years ago
Richard van der Hoff d38663f65d
Fix syntax highlighting in rendered spec (#1008)
* Configure syntax highlighter to use CSS classes

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

* Configure response headers for Hugo dev server

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

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

* Create 3711.clarification

* Update 3711.clarification

* Update changelogs/3711.clarification

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

Co-authored-by: Travis Ralston <travisr@matrix.org>
2 years ago
Richard van der Hoff f989d323c0
Update v1.2 changelog with missed PR (#3705) 2 years ago
Andrew Morgan 868949908c
Use `yaml.safe_load` in `check-swagger-sources.py` (#3719) 2 years ago
Andrew Morgan 0d634b1935
Use yaml.safe_load instead of yaml.load in `check-event-schema-examples.py` (#3716) 2 years ago
Hubert Chathi d06f05571f move changelog to the right place 2 years ago
Richard van der Hoff 1913812a90
Clarify send_join response (#3703) 2 years ago
Andrew Morgan e7adfd5ed1
Fix missed rst->md numbered list syntax for `m.room.server_acl` (#3681)
* Fix missed rst->md numbered list syntax
2 years ago
Richard van der Hoff c400dc99c0
Update dependencies (#3707)
https://github.com/advisories/GHSA-566m-qj78-rww5 is a thing. I don't think
it's directly relevant to us, but upgrading is good.
2 years ago
Travis Ralston 956a22da11 return to unstable 2 years ago
Travis Ralston e488a7fb6d v1.2 changelog 2 years ago
Travis Ralston 4b78d22e8c release steps: fastforward main 2 years ago

@ -0,0 +1 @@
* @matrix-org/spec-core-team

@ -1,4 +1,4 @@
blank_issues_enabled: true
blank_issues_enabled: false
contact_links:
- name: Matrix Spec Discussion
url: "https://matrix.to/#/#matrix-spec:matrix.org"

@ -0,0 +1,35 @@
---
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)):
* [ ] 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
Known release blockers:
* [ ] <!-- Issue/PR link -->

@ -1,19 +0,0 @@
---
name: Proposal ready for review
about: A proposal that is ready for review by the core team and community.
title: ''
labels: proposal, proposal-in-review
assignees: ''
---
<!-- Put your "rendered" link here -->
### Pull Request Checklist
<!-- Please read CONTRIBUTING.rst before submitting your pull request -->
* [ ] Pull request includes a [changelog file](https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst#adding-to-the-changelog)
* [ ] Pull request includes a [sign off](https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst#sign-off)
* [ ] Pull request includes ['Rendered' link](https://matrix.org/docs/spec/proposals#process) above.
* [ ] Pull request title and file name include this PR's number as the MSC number.

@ -11,6 +11,6 @@ assignees: ''
<!-- Please read CONTRIBUTING.rst before submitting your pull request -->
* [ ] Pull request includes a [changelog file](https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst#adding-to-the-changelog)
* [ ] Pull request includes a [sign off](https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst#sign-off)
* [ ] Pull request is classified as ['other changes'](https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst#other-changes)
* [ ] Pull request includes a [changelog file](https://github.com/matrix-org/matrix-spec/blob/master/CONTRIBUTING.rst#adding-to-the-changelog)
* [ ] Pull request includes a [sign off](https://github.com/matrix-org/matrix-spec/blob/master/CONTRIBUTING.rst#sign-off)
* [ ] Pull request is classified as ['other changes'](https://github.com/matrix-org/matrix-spec/blob/master/CONTRIBUTING.rst#other-changes)

@ -1,20 +0,0 @@
---
name: WIP Proposal
about: A proposal that isn't quite ready for formal review yet.
title: '[WIP] Your Proposal Title'
labels: proposal
assignees: ''
---
<!-- Put your "rendered" link here -->
### Pull Request Checklist
<!-- Please read CONTRIBUTING.rst before submitting your pull request -->
* [ ] Pull request includes a [changelog file](https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst#adding-to-the-changelog)
* [ ] Pull request includes a [sign off](https://github.com/matrix-org/matrix-doc/blob/master/CONTRIBUTING.rst#sign-off)
* [ ] A ['Rendered' link](https://matrix.org/docs/spec/proposals#process) above.
* [ ] Update the title and file name of your proposal to match this PR's number (after opening).
* [ ] Ask in [#matrix-spec:matrix.org](https://matrix.to/#/#matrix-spec:matrix.org) to get this marked as ready for review, once it is ready for review.

@ -1,5 +1,5 @@
[files]
extend-exclude = ["/themes", "/attic", "/data-definitions", "*.css", "package-lock.json"]
extend-exclude = ["/themes", "/attic", "/data-definitions", "*.css", "syntax.scss", "package-lock.json"]
[default]
check-filename = true
@ -10,3 +10,4 @@ au1ba7o = "au1ba7o"
[default.extend-words]
Appy = "Appy"
fo = "fo"
Iy = "Iy"

@ -0,0 +1,18 @@
# workflow steps that ought to pass on a PR, but shouldn't block a preview.
name: "Checks"
on:
pull_request:
jobs:
check-newsfragments:
name: "🔎 Check that new newsfragments are valid"
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: scripts/check-newsfragments
env:
PULL_REQUEST_NUMBER: ${{ github.event.number }}

@ -7,6 +7,10 @@ on:
- v*
pull_request:
workflow_dispatch:
schedule:
# Run this workflow every day at 2am. This helps keep the page of
# current spec proposals up-to-date.
- cron: '0 2 * * *'
jobs:
validate-openapi:
@ -14,32 +18,71 @@ 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: '3.9'
cache: 'pip'
cache-dependency-path: scripts/requirements.txt
- name: " Install dependencies"
run: |
pip install -r scripts/requirements.txt
- name: "🔎 Run validator"
run: |
python scripts/check-event-schema-examples.py
check-openapi-examples:
name: "🔎 Check OpenAPI definitions examples"
runs-on: ubuntu-latest
steps:
- name: "📥 Source checkout"
uses: actions/checkout@v4
- name: " Setup Python"
uses: actions/setup-python@v5
with:
python-version: '3.9'
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: '3.9'
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-json-schemas.py
calculate-baseurl:
name: "⚙️ Calculate baseURL for later jobs"
@ -56,76 +99,122 @@ 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
- name: "📦 Asset creation"
uses: actions/checkout@v4
- name: " Setup Python"
uses: actions/setup-python@v5
with:
python-version: '3.9'
cache: 'pip'
cache-dependency-path: scripts/requirements.txt
- name: " Install dependencies"
run: |
python3 -m venv env && . env/bin/activate
pip install -r scripts/requirements.txt
- name: "📦 Asset creation"
run: |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
export RELEASE="${GITHUB_REF/refs\/tags\//}"
else
export RELEASE="unstable"
fi
# The output path matches the final deployment path at spec.matrix.org
scripts/dump-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
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: '3.9'
- 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/vUNSTABLE.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.85.0'
hugo-version: '0.113.0'
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"
@ -135,11 +224,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.yaml
build-historical-spec:
name: "📖 Build the historical backup spec"
runs-on: ubuntu-latest
@ -147,18 +264,17 @@ 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.85.0'
# Cannot build the spec with Hugo 0.125.0 because of https://github.com/google/docsy/issues/1930
hugo-version: '0.124.1'
extended: true
- name: "📥 Source checkout"
uses: actions/checkout@v2
with:
submodules: 'recursive'
uses: actions/checkout@v4
- name: "⚙️ npm"
run: |
npm i
@ -170,7 +286,7 @@ jobs:
hugo --config config.toml,historical.toml --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"
@ -180,7 +296,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

@ -32,10 +32,10 @@ jobs:
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 +46,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"

@ -0,0 +1,42 @@
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
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"
- 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
id: npm-publish
uses: JS-DevTools/npm-publish@19c28f1ef146469e409470805ea4279d47c3d35c # v3.1.1
with:
token: ${{ secrets.NPM_TOKEN }}
package: packages/npm
access: public
ignore-scripts: false

@ -1,5 +1,9 @@
name: Spell Check
on: [pull_request]
on:
push:
branches:
- main
pull_request:
jobs:
run:
@ -7,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@master
uses: crate-ci/typos@f2c1f08a7b3c1b96050cb786baaa2a94797bdb7d # v1.20.10
with:
config: ${{github.workspace}}/.github/_typos.toml
config: ${{github.workspace}}/.github/_typos.toml

2
.gitignore vendored

@ -2,7 +2,7 @@ node_modules
/data/msc
/env*
/resources
/scripts/swagger
/scripts/openapi
/scripts/tmp
/hugo-config.toml
/public

4
.gitmodules vendored

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

@ -0,0 +1,6 @@
# config file for htmltest. This is used by one of the checks in Github
# Actions.
IgnoreDirectoryMissingTrailingSlash: true
DirectoryPath: spec
CheckExternal: false

@ -1,5 +1,5 @@
Contributing to matrix-doc
==========================
Contributing to matrix-spec
===========================
Everyone is welcome to contribute to the Matrix specification!
@ -9,14 +9,10 @@ Code style
----------
The documentation style is described at
https://github.com/matrix-org/matrix-doc/blob/master/meta/documentation_style.rst.
https://github.com/matrix-org/matrix-spec/blob/main/meta/documentation_style.rst.
Python code within the ``matrix-doc`` project should follow the same style as
synapse, which is documented at
https://github.com/matrix-org/synapse/tree/master/docs/code_style.md.
Matrix-doc workflows
--------------------
Matrix-spec workflows
---------------------
Specification changes
~~~~~~~~~~~~~~~~~~~~~
@ -27,9 +23,7 @@ server before they can be documented in the specification. This process can take
some time to complete.
Changes to the protocol (new endpoints, ideas, etc) need to go through the
`proposals process <https://matrix.org/docs/spec/proposals>`_. Other changes,
such as fixing bugs, typos, or clarifying existing behaviour do not need a proposal.
If you're not sure, visit us at `#matrix-spec:matrix.org`_ and ask.
`proposals process <https://matrix.org/docs/spec/proposals>`_.
Other changes
~~~~~~~~~~~~~
@ -42,12 +36,12 @@ following:
* Addition of features which have been in use in practice for some time, but
have never made it into the spec (including anything with the `spec-omission
<https://github.com/matrix-org/matrix-doc/labels/spec-omission>`_ label).
<https://github.com/matrix-org/matrix-spec/labels/spec-omission>`_ label).
* Likewise, corrections to the specification, to fix situations where, in
practice, servers and clients behave differently to the specification,
including anything with the `spec-bug
<https://github.com/matrix-org/matrix-doc/labels/spec-bug>`_ label.
<https://github.com/matrix-org/matrix-spec/labels/spec-bug>`_ label.
(If there is any doubt about whether it is the spec or the implementations
that need fixing, please discuss it with us first in `#matrix-spec:matrix.org`_.)
@ -55,7 +49,7 @@ following:
* Clarifications to the specification which do not change the behaviour of
Matrix servers or clients in a way which might introduce compatibility
problems for existing deployments. This includes anything with the
`clarification <https://github.com/matrix-org/matrix-doc/labels/clarification>`_
`clarification <https://github.com/matrix-org/matrix-spec/labels/clarification>`_
label.
For example, areas where the specification is unclear do not require a proposal
@ -78,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/hawkowl/towncrier) in the
form of "news fragments". The news fragments for the client-server API are stored
under ``changelogs/client_server/newsfragments``.
The changelog is managed by `Towncrier <https://github.com/twisted/towncrier>`_ in the
form of "news fragments". Depending on which API you changed, an entry should be added to
each relevant API's ``newsfragments`` directory. A directory exists for each API under
``changelogs/``. For instance, news fragments for the client-server API are stored
under ``changelogs/client_server/newsfragments``. Any changes to the repository that do
not affect the spec content itself, such as changes to the build script, formatting, CSS,
etc. should be documented under ``changelogs/internal/newsfragments``.
To create a changelog entry, create a file named in the format ``prNumber.type`` in
the ``newsfragments`` directory. The ``type`` can be one of the following:
@ -105,13 +103,10 @@ 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
--------
We ask that everybody who contributes to their project signs off their
We ask that everybody who contributes to this project signs off their
contributions, as explained below.
We follow a simple 'inbound=outbound' model for contributions: the act of
@ -121,11 +116,10 @@ license - in our case, this is Apache Software License v2 (see LICENSE).
In order to have a concrete record that your contribution is intentional
and you agree to license it under the same terms as the project's license, we've adopted the
same lightweight approach that the Linux Kernel
(https://www.kernel.org/doc/Documentation/SubmittingPatches), Docker
(https://github.com/docker/docker/blob/master/CONTRIBUTING.md), and many other
projects use: the DCO (Developer Certificate of Origin:
http://developercertificate.org/). This is a simple declaration that you wrote
same lightweight approach used by the `Linux Kernel <https://www.kernel.org/doc/html/latest/process/submitting-patches.html>`_,
`Docker <https://github.com/docker/docker/blob/master/CONTRIBUTING.md>`_, and many other
projects: the `Developer Certificate of Origin <http://developercertificate.org/>`_
(DCO). This is a simple declaration that you wrote
the contribution or otherwise have the right to contribute it to Matrix::
Developer Certificate of Origin
@ -173,3 +167,15 @@ include the line in your commit or pull request comment::
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 :)
Private sign off
~~~~~~~~~~~~~~~~
If you would like to provide your legal name privately to the Matrix.org
Foundation (instead of in a public commit or comment), you can do so by emailing
your legal name and a link to the pull request to dco@matrix.org. It helps to
include "sign off" or similar in the subject line. You will then be instructed
further.
Once private sign off is complete, doing so for future contributions will not
be required.

@ -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,7 +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.
* `/proposals`: Matrix Spec Change (MSC) proposals. See <https://spec.matrix.org/unstable/proposals/>.
* `/packages`: Various packages for shipping spec files like OpenAPI bindings and data definitions.
## Authoring changes to the spec
@ -61,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.74 is required.
v0.113.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
@ -87,18 +86,16 @@ 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
Specification issues are tracked on github at <https://github.com/matrix-org/matrix-doc/issues>.
Specification issues are tracked on github at <https://github.com/matrix-org/matrix-spec/issues>.
See [meta/github-labels.rst](./meta/github-labels.rst) for information on what the labels mean.

@ -18,8 +18,19 @@ 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:
*
* hugo gen chromastyles --style=tango > assets/scss/syntax.scss
*/
@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 {
@ -29,10 +40,17 @@ 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 {
@ -41,6 +59,11 @@ Custom SCSS for the Matrix spec
}
/* Styles for the sidebar nav */
.td-sidebar {
/* don't attempt to use the sidebar (or things in it) as a scroll anchor. */
overflow-anchor: none;
}
.td-sidebar-nav {
scroll-behavior: smooth;
overscroll-behavior: contain;
@ -49,9 +72,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)
@ -60,12 +82,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 {
@ -84,12 +114,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 */
@ -146,18 +175,19 @@ footer {
}
/* Adjust heading anchors for site header */
.td-content {
&> h2,
&> h3,
&> h4,
&> h5,
&> h6,
.rendered-data h1 {
scroll-margin-top: 5rem;
/* 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 * {
scroll-margin-top: 5.5rem;
}
/* Styles for the table of contents */
#toc {
padding-top: .5rem;
@ -247,17 +277,47 @@ 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 {
margin: 1rem 0 3rem 0;
.td-content .rendered-data {
background-color: $secondary-lightest-background;
padding: 0.85rem;
margin: 0.85rem 0;
details {
summary {
padding: .5rem 0;
list-style-position: outside;
h1 {
margin: 0;
/* Ensure the disclosure control is vertically centred with the header text. */
vertical-align: middle;
}
}
p {
max-width: 80%;
}
}
@ -291,27 +351,52 @@ footer {
margin: 1.5rem 0 .75rem 0;
}
h2 + table, h3 + table, h3 + div.highlight {
margin-top: 0;
}
hr {
border-bottom: 2px solid $dark;
margin-bottom: 1.5rem;
}
p {
max-width: 80%;
}
p code, table code {
background-color: $white;
background-color: transparent;
}
table {
table-layout: fixed;
width: 100%;
margin: 4rem 0;
@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%;
.col-name, .col-type, .col-status {
width: 25%;
}
.col-description {
width: 50%;
}
.col-status-description {
width: 75%;
}
}
// add some space between two tables when they are right next to each other
& + table {
margin-top: 4rem;
}
caption {
caption-side: top;
@ -322,42 +407,61 @@ footer {
th, td, caption {
padding: 1rem;
border-top: 1px $table-border-color solid;
}
th {
background-color: $white;
}
&.object-table, &.response-table, &.content-type-table {
border: 1px $table-border-color solid;
caption, tr {
background-color: $table-row-default;
}
caption {
// the caption is outside the table's border box,
// so we have to give it its own border.
border: 1px $table-border-color solid;
tr:nth-child(even) {
background-color: $table-row-alternate;
// ... but avoid double border between caption and table
border-bottom: 0;
background-color: $secondary-lighter-background;
}
tbody tr {
--bs-table-striped-bg: #{$secondary-lighter-background};
}
}
&.basic-info, &.basic-info th, &.basic-info td {
table-layout: fixed;
margin: 1rem 0 .5rem 0;
background-color: $white;
}
&.basic-info th {
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;
}
}
}
pre {
@ -402,12 +506,18 @@ 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 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;
@ -421,8 +531,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;
}
}

@ -20,7 +20,7 @@ $dark: #333;
$gray-100: #FBFBFB;
$secondary-background: #E5F5FB;
$secondary-lighter-background: #F4FaFC;
$secondary-lighter-background: #F4FAFC;
$secondary-lightest-background: #FBFDFD;
@ -30,12 +30,25 @@ $note: $secondary;
$note-background: $secondary-background;
$warning-background: #FFE0E0;
$table-row-alternate: $secondary-lightest-background;
$table-row-default: $secondary-lighter-background;
// colours for definition tables.
// the border colour matches that used for "highlight" divs
$table-border-color: rgba(black, .125);
$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
* Replace the default font with Inter.
*
* 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
* and adds "Inter" to the front.
*
* The font itself is loaded via stylesheet link layouts/partials/hooks/head-end.html.
*/
$web-font-path: "../css/fonts/Inter.css";
$google_font_name: "Inter";
$font-family-sans-serif: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", 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;

@ -0,0 +1,82 @@
/* Background */ .chroma { background-color: #f8f8f8 }
/* Other */ .chroma .x { color: #000000 }
/* Error */ .chroma .err { color: #a40000 }
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc }
/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
/* Keyword */ .chroma .k { color: #204a87; font-weight: bold }
/* KeywordConstant */ .chroma .kc { color: #204a87; font-weight: bold }
/* KeywordDeclaration */ .chroma .kd { color: #204a87; font-weight: bold }
/* KeywordNamespace */ .chroma .kn { color: #204a87; font-weight: bold }
/* KeywordPseudo */ .chroma .kp { color: #204a87; font-weight: bold }
/* KeywordReserved */ .chroma .kr { color: #204a87; font-weight: bold }
/* KeywordType */ .chroma .kt { color: #204a87; font-weight: bold }
/* Name */ .chroma .n { color: #000000 }
/* NameAttribute */ .chroma .na { color: #c4a000 }
/* NameBuiltin */ .chroma .nb { color: #204a87 }
/* NameBuiltinPseudo */ .chroma .bp { color: #3465a4 }
/* NameClass */ .chroma .nc { color: #000000 }
/* NameConstant */ .chroma .no { color: #000000 }
/* NameDecorator */ .chroma .nd { color: #5c35cc; font-weight: bold }
/* NameEntity */ .chroma .ni { color: #ce5c00 }
/* NameException */ .chroma .ne { color: #cc0000; font-weight: bold }
/* NameFunction */ .chroma .nf { color: #000000 }
/* NameFunctionMagic */ .chroma .fm { color: #000000 }
/* NameLabel */ .chroma .nl { color: #f57900 }
/* NameNamespace */ .chroma .nn { color: #000000 }
/* NameOther */ .chroma .nx { color: #000000 }
/* NameProperty */ .chroma .py { color: #000000 }
/* NameTag */ .chroma .nt { color: #204a87; font-weight: bold }
/* NameVariable */ .chroma .nv { color: #000000 }
/* NameVariableClass */ .chroma .vc { color: #000000 }
/* NameVariableGlobal */ .chroma .vg { color: #000000 }
/* NameVariableInstance */ .chroma .vi { color: #000000 }
/* NameVariableMagic */ .chroma .vm { color: #000000 }
/* Literal */ .chroma .l { color: #000000 }
/* LiteralDate */ .chroma .ld { color: #000000 }
/* LiteralString */ .chroma .s { color: #4e9a06 }
/* LiteralStringAffix */ .chroma .sa { color: #4e9a06 }
/* LiteralStringBacktick */ .chroma .sb { color: #4e9a06 }
/* LiteralStringChar */ .chroma .sc { color: #4e9a06 }
/* LiteralStringDelimiter */ .chroma .dl { color: #4e9a06 }
/* LiteralStringDoc */ .chroma .sd { color: #8f5902; font-style: italic }
/* LiteralStringDouble */ .chroma .s2 { color: #4e9a06 }
/* LiteralStringEscape */ .chroma .se { color: #4e9a06 }
/* LiteralStringHeredoc */ .chroma .sh { color: #4e9a06 }
/* LiteralStringInterpol */ .chroma .si { color: #4e9a06 }
/* LiteralStringOther */ .chroma .sx { color: #4e9a06 }
/* LiteralStringRegex */ .chroma .sr { color: #4e9a06 }
/* LiteralStringSingle */ .chroma .s1 { color: #4e9a06 }
/* LiteralStringSymbol */ .chroma .ss { color: #4e9a06 }
/* LiteralNumber */ .chroma .m { color: #0000cf; font-weight: bold }
/* LiteralNumberBin */ .chroma .mb { color: #0000cf; font-weight: bold }
/* LiteralNumberFloat */ .chroma .mf { color: #0000cf; font-weight: bold }
/* LiteralNumberHex */ .chroma .mh { color: #0000cf; font-weight: bold }
/* LiteralNumberInteger */ .chroma .mi { color: #0000cf; font-weight: bold }
/* LiteralNumberIntegerLong */ .chroma .il { color: #0000cf; font-weight: bold }
/* LiteralNumberOct */ .chroma .mo { color: #0000cf; font-weight: bold }
/* Operator */ .chroma .o { color: #ce5c00; font-weight: bold }
/* OperatorWord */ .chroma .ow { color: #204a87; font-weight: bold }
/* Punctuation */ .chroma .p { color: #000000; font-weight: bold }
/* Comment */ .chroma .c { color: #8f5902; font-style: italic }
/* CommentHashbang */ .chroma .ch { color: #8f5902; font-style: italic }
/* CommentMultiline */ .chroma .cm { color: #8f5902; font-style: italic }
/* CommentSingle */ .chroma .c1 { color: #8f5902; font-style: italic }
/* CommentSpecial */ .chroma .cs { color: #8f5902; font-style: italic }
/* CommentPreproc */ .chroma .cp { color: #8f5902; font-style: italic }
/* CommentPreprocFile */ .chroma .cpf { color: #8f5902; font-style: italic }
/* Generic */ .chroma .g { color: #000000 }
/* GenericDeleted */ .chroma .gd { color: #a40000 }
/* GenericEmph */ .chroma .ge { color: #000000; font-style: italic }
/* GenericError */ .chroma .gr { color: #ef2929 }
/* GenericHeading */ .chroma .gh { color: #000080; font-weight: bold }
/* GenericInserted */ .chroma .gi { color: #00a000 }
/* GenericOutput */ .chroma .go { color: #000000; font-style: italic }
/* GenericPrompt */ .chroma .gp { color: #8f5902 }
/* GenericStrong */ .chroma .gs { color: #000000; font-weight: bold }
/* GenericSubheading */ .chroma .gu { color: #800080; font-weight: bold }
/* GenericTraceback */ .chroma .gt { color: #a40000; font-weight: bold }
/* GenericUnderline */ .chroma .gl { color: #000000; text-decoration: underline }
/* TextWhitespace */ .chroma .w { color: #f8f8f8; text-decoration: underline }

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

@ -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.]]

@ -0,0 +1 @@
Define 'Opaque Identifier Grammar'.

@ -0,0 +1 @@
Define common cryptographic key representation.

@ -1 +0,0 @@
Describe "Common Namespaced Identifier Grammar" as per [MSC2758](https://github.com/matrix-org/matrix-doc/pull/2758).

@ -1 +0,0 @@
Describe the `matrix:` URI scheme as per [MSC2312](https://github.com/matrix-org/matrix-doc/pull/2312).

@ -0,0 +1 @@
Fix the OpenAPI definition of the security schemes.

@ -0,0 +1 @@
Clarify that appservices should be notified of events relating to the sender_localpart user.

@ -1 +0,0 @@
Distinguish between "federation" event format as exchanged by the Federation API, and the "client" event formats as used in the client-server and AS APIs.

@ -1 +0,0 @@
Fix the rendering of the responses for various API endpoints.

@ -1 +0,0 @@
Correct the documentation for the response value for `GET /_matrix/app/v1/thirdparty/protocol/{protocol}`.

@ -0,0 +1 @@
Add support for muting in VoIP calls, as per [MSC3291](https://github.com/matrix-org/matrix-spec-proposals/pull/3291).

@ -0,0 +1 @@
Add optional `animated` query string option to `GET /_matrix/media/v3/thumbnail`, as per [MSC2705](https://github.com/matrix-org/matrix-spec-proposals/pull/2705).

@ -0,0 +1 @@
Fix the OpenAPI definition of the security schemes.

@ -0,0 +1 @@
Clarify that the `type` of the `POST /login` request must be one of the types returned by the `GET /login` response.

@ -0,0 +1 @@
Deprecate authentication via a query string, as per [MSC4126](https://github.com/matrix-org/matrix-spec-proposals/issues/4126).

@ -0,0 +1 @@
Specify terms of services at registration, as per [MSC1692](https://github.com/matrix-org/matrix-spec-proposals/pull/1692).

@ -0,0 +1 @@
Use `patternProperties` in more places with supported formats.

@ -0,0 +1 @@
Rename "recovery key" to "backup decryption key".

@ -1 +0,0 @@
Extend `/_matrix/client/r0/login` to accept a `m.login.appservice`, as per [MSC2778](https://github.com/matrix-org/matrix-doc/pull/2778).

@ -1 +0,0 @@
Add support for `restricted` rooms as per [MSC3083](https://github.com/matrix-org/matrix-doc/pull/3083), [MSC3289](https://github.com/matrix-org/matrix-doc/pull/3289), and [MSC3375](https://github.com/matrix-org/matrix-doc/pull/3375).

@ -1 +0,0 @@
Make `AesHmacSha2KeyDescription` consistent with `KeyDescription` in marking `name` as optional.

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

@ -1 +0,0 @@
Explicitly mention RFC5870 in the definition of `m.location` events

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

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

@ -1 +0,0 @@
The `prev_content` field is now returned inside the `unsigned` property of events, rather than at the top level, as per [MSC3442](https://github.com/matrix-org/matrix-doc/pull/3442).

@ -1 +0,0 @@
Add `403 M_FORBIDDEN` error code to `/profile/{userId}` as per [MSC3550](https://github.com/matrix-org/matrix-doc/pull/3550).

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

@ -1 +0,0 @@
Clarify the description of the `/sync` API, including a fix to an ASCII art diagram.

@ -1 +0,0 @@
Clarify that `base_url` in client `well_known` may or may not include trailing slash.

@ -1 +0,0 @@
Clarify which signature to check when decrypting `m.olm.v1.curve25519-aes-sha2` messages.

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

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

@ -1 +0,0 @@
Add `is_guest` to `/account/whoami` as per [MSC3069](https://github.com/matrix-org/matrix-doc/pull/3069).

@ -1 +0,0 @@
Expand guest access to sending any room event and state event as per [MSC3419](https://github.com/matrix-org/matrix-doc/pull/3419).

@ -1 +0,0 @@
Clarify what "Stripped State" is and what purpose it serves, as per [MSC3173](https://github.com/matrix-org/matrix-doc/pull/3173).

@ -1 +0,0 @@
Add Spaces and room types as per [MSC1772](https://github.com/matrix-org/matrix-doc/pull/1772) and [MSC2946](https://github.com/matrix-org/matrix-doc/pull/2946).

@ -1 +0,0 @@
Add the Space Hierarchy API (`GET /_matrix/client/v1/rooms/{roomId}/hierarchy`) as per [MSC2946](https://github.com/matrix-org/matrix-doc/pull/2946).

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

@ -1 +0,0 @@
Add new `m.set_displayname`, `m.set_avatar_url`, and `m.3pid_changes` capabilities as per [MSC3283](https://github.com/matrix-org/matrix-doc/pull/3283).

@ -1 +0,0 @@
Add support for fallback keys (optional keys used once one-time keys run out), as per [MSC2732](https://github.com/matrix-org/matrix-doc/pull/2732).

@ -1 +0,0 @@
Add token-authenticated registration support as per [MSC3231](https://github.com/matrix-org/matrix-doc/pull/3231).

@ -1 +0,0 @@
Add `/_matrix/client/v1/register/m.login.registration_token/validity` as per [MSC3231](https://github.com/matrix-org/matrix-doc/pull/3231).

@ -1 +0,0 @@
The `aliases` property from the chunks returned by `/publicRooms`, as per [MSC2432](https://github.com/matrix-org/matrix-doc/pull/2432).

@ -1 +0,0 @@
Clarify how to interpret missing one-time key counts.

@ -1 +0,0 @@
Correct the schema for the responses for various API endpoints.

@ -1 +0,0 @@
Clarify that group mentions are no longer in the specification.

@ -1 +0,0 @@
Distinguish between "federation" event format as exchanged by the Federation API, and the "client" event formats as used in the client-server and AS APIs.

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

@ -1 +0,0 @@
Fix the rendering of the responses for various API endpoints.

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

@ -9,7 +9,7 @@ Variables:
## VERSION
<table class="release-info">
<tr><th>Git commit</th><td><a href="https://github.com/matrix-org/matrix-doc/tree/VERSION">https://github.com/matrix-org/matrix-doc/tree/VERSION</a></td>
<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>

@ -0,0 +1 @@
Fix the OpenAPI definition of the security schemes.

@ -0,0 +1 @@
Deprecate authentication via a query string, as per [MSC4126](https://github.com/matrix-org/matrix-spec-proposals/issues/4126).

@ -1 +0,0 @@
Add the `room_type` to stored invites as per [MSC3288](https://github.com/matrix-org/matrix-doc/pull/3288).

@ -1 +0,0 @@
Fix the rendering of the responses for various API endpoints.

@ -0,0 +1 @@
Fix npm release script for `@matrix-org/spec`.

@ -0,0 +1 @@
Formatting fixes in CONTRIBUTING.rst.

@ -0,0 +1 @@
Reduce whitespace on mobile viewports

@ -0,0 +1 @@
Arrange rows in `.basic-info` tables vertically when horizontal space is constrained.

@ -0,0 +1 @@
Simplify uses of `resolve-refs` partial.

@ -0,0 +1 @@
Upgrade jsonschema and python-jsonpath CI scripts dependencies.

@ -0,0 +1 @@
Solve `allOf` recursively in OpenAPI and JSON Schemas.

@ -0,0 +1 @@
Fix property type resolution in `render-object-table` partial.

@ -0,0 +1 @@
Factor out common definition of `Tag` type.

@ -0,0 +1 @@
Update the version of Hugo used to render the spec to v0.124.1.

@ -0,0 +1 @@
Add support for pattern formats for `patternProperties`.

@ -0,0 +1 @@
Clean up unnecessary `allOf`s in OpenAPI definitions.

@ -0,0 +1 @@
Show information about "Additional Properties" in object tables.

@ -0,0 +1 @@
Fix anchors for schemas under `oneOf`.

@ -0,0 +1 @@
Use reference to `OneTimeKeys` schema in OpenAPI definitions.

@ -0,0 +1 @@
Do not use the `title` of objects containing only `additionalProperties` or `patternProperties`.

@ -0,0 +1 @@
Add anchors in `definition` shortcode.

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

Loading…
Cancel
Save