Compare commits
152 Commits
Author | SHA1 | Date |
---|---|---|
Richard van der Hoff | dac867dd6a | 5 days ago |
Kévin Commaille | b0df8e7fb5 | 2 weeks ago |
Richard van der Hoff | df1e799c51 | 2 weeks ago |
Andrew Morgan | f4b34ba962 | 2 weeks ago |
Kévin Commaille | 98d85cf421 | 2 weeks ago |
Richard van der Hoff | 48f4c4954f | 2 weeks ago |
Matthias Ahouansou | eea3dfa969 | 3 weeks ago |
Kévin Commaille | 2d18aac201 | 3 weeks ago |
Kévin Commaille | 1fc25d8d48 | 3 weeks ago |
Kévin Commaille | 85ad0c767c | 3 weeks ago |
Kévin Commaille | 625999a039 | 3 weeks ago |
Kévin Commaille | ae70b5fcf3 | 3 weeks ago |
Kévin Commaille | d3eca87389 | 3 weeks ago |
Kévin Commaille | d6b1d7300f | 3 weeks ago |
Kévin Commaille | b0115a9613 | 3 weeks ago |
Kévin Commaille | a0bc6e7f83 | 3 weeks ago |
Kévin Commaille | 7201042894 | 4 weeks ago |
Kévin Commaille | 2edfb21d5d | 4 weeks ago |
Kévin Commaille | 26ce3929b4 | 4 weeks ago |
Kévin Commaille | 1095179374 | 4 weeks ago |
Richard van der Hoff | 2b5f990f60 | 1 month ago |
Kévin Commaille | e82829d4a2 | 1 month ago |
Richard van der Hoff | 073ce659df | 1 month ago |
Kévin Commaille | f4e7b2aa97 | 1 month ago |
Kévin Commaille | 521e555cf6 | 1 month ago |
Kévin Commaille | a81b720151 | 1 month ago |
Richard van der Hoff | becc667672 | 1 month ago |
Kévin Commaille | 2678370f2c | 1 month ago |
Kévin Commaille | 2ea8e0f514 | 1 month ago |
Kévin Commaille | efe72d3b26 | 1 month ago |
Johannes Marbach | ee1a169121 | 1 month ago |
Kévin Commaille | e74c7c1540 | 1 month ago |
Travis Ralston | d547154c91 | 2 months ago |
Johannes Marbach | 8ff3623e37 | 2 months ago |
Kévin Commaille | eb7ac353e2 | 2 months ago |
Richard van der Hoff | c25ff9e012 | 2 months ago |
Michael Telatynski | 083e6ef25d | 2 months ago |
Travis Ralston | bd122b35b0 | 2 months ago |
Travis Ralston | 4e51970c55 | 2 months ago |
Travis Ralston | f7452e2bad | 2 months ago |
Patrick Cloke | 7c19d24e3a | 2 months ago |
Travis Ralston | eb22fac5dc | 2 months ago |
Kévin Commaille | 6700f5ddd1 | 2 months ago |
Will Hunt | e5aa5235fe | 2 months ago |
Kévin Commaille | 4247cff2fa | 2 months ago |
Travis Ralston | 15663d405e | 2 months ago |
Kévin Commaille | 44c16918fd | 2 months ago |
Kévin Commaille | 575c84d431 | 2 months ago |
David Baker | 848c1e0348 | 2 months ago |
David Baker | bb4003afa8 | 2 months ago |
Kévin Commaille | 38796de79a | 2 months ago |
Tulir Asokan | 5c96f45556 | 2 months ago |
Kévin Commaille | 4d7e33ec26 | 2 months ago |
Hubert Chathi | 0b43b5a343 | 2 months ago |
Johannes Marbach | 6634f73bff | 2 months ago |
Kévin Commaille | 9068c336f4 | 2 months ago |
Kévin Commaille | 9fdc7ac38f | 2 months ago |
Kévin Commaille | a1210ff6d1 | 2 months ago |
Kévin Commaille | 542a219623 | 2 months ago |
Kévin Commaille | 4e1b364015 | 3 months ago |
Richard van der Hoff | 976ebdca2f | 3 months ago |
Kévin Commaille | afda8b8f74 | 3 months ago |
reivilibre | 2cb70e6e3d | 3 months ago |
Kévin Commaille | 38260aabcc | 3 months ago |
Kévin Commaille | b136b357e0 | 3 months ago |
Cadence Ember | e2dc5a3826 | 3 months ago |
Kévin Commaille | 4cfe2fbf8d | 3 months ago |
Sumner Evans | 9a1f0ad532 | 3 months ago |
Sumner Evans | 6096a28984 | 3 months ago |
kegsay | c4e69d8cb1 | 3 months ago |
Hubert Chathi | 170626da67 | 3 months ago |
Michael Telatynski | 650e691a22 | 4 months ago |
Sumner Evans | 9a5cacda90 | 4 months ago |
Samuel Loury | 1d35e7aac6 | 4 months ago |
Richard van der Hoff | 4a80df364a | 5 months ago |
Richard van der Hoff | 37ab151aad | 5 months ago |
Andy Balaam | a843cad285 | 5 months ago |
Andy Balaam | 3b2146c875 | 6 months ago |
Travis Ralston | 59f8d632a3 | 6 months ago |
Travis Ralston | d50929d46b | 6 months ago |
Travis Ralston | 0c099e3b79 | 6 months ago |
Hubert Chathi | 62c377e19c | 6 months ago |
Andy Balaam | 6fe2ff4fa7 | 6 months ago |
Travis Ralston | 634b24fb25 | 6 months ago |
No | 25a9157f0a | 6 months ago |
Patrick Cloke | 161a4a2cfb | 6 months ago |
Matthew Hodgson | 7b72c42ba6 | 6 months ago |
No | 91724e4aef | 6 months ago |
Val Lorentz | 7c19500da7 | 7 months ago |
Kévin Commaille | 9fe119370b | 7 months ago |
Kévin Commaille | 560d98ba9b | 7 months ago |
Kévin Commaille | c71b528148 | 7 months ago |
наб | 7fb9e99071 | 7 months ago |
Kévin Commaille | 72517c0f9c | 7 months ago |
Kévin Commaille | 242b62ed55 | 8 months ago |
Kévin Commaille | c3098cc55c | 8 months ago |
Kévin Commaille | 9a9221d8ef | 8 months ago |
tsufeki | 92cf662e3a | 8 months ago |
Kévin Commaille | e40d9ca186 | 8 months ago |
Kévin Commaille | 5672bdbab7 | 8 months ago |
Michael Telatynski | f11c5600a2 | 8 months ago |
Kévin Commaille | 99e2ff4927 | 8 months ago |
Kévin Commaille | df3f0af5d4 | 8 months ago |
Kévin Commaille | 96f88e035c | 8 months ago |
Mohit Kumar Patel | 46447e0287 | 8 months ago |
Kévin Commaille | 044a78730e | 8 months ago |
Paarth Shah | 838dec272c | 9 months ago |
Patrick Cloke | 5e938f2b83 | 9 months ago |
heinrich5991 | a1b832960c | 9 months ago |
Travis Ralston | ca456a4f53 | 9 months ago |
Travis Ralston | 529cbf4ffc | 9 months ago |
Travis Ralston | 7f8606eb6c | 9 months ago |
Travis Ralston | 7aaeac0760 | 9 months ago |
Weblate | f65007476b | 9 months ago |
Travis Ralston | 06298e4d8d | 9 months ago |
Travis Ralston | 86ab57ec4f | 9 months ago |
Mohit Kumar Patel | 4f8b8a746c | 9 months ago |
Michael Telatynski | c0babbfc13 | 9 months ago |
Patrick Cloke | 4abea9a6ca | 9 months ago |
Will Hunt | 1b69e03793 | 9 months ago |
Richard van der Hoff | 05ca6c7392 | 9 months ago |
Richard van der Hoff | f5035b8e02 | 10 months ago |
Martin Fischer | 1a11a7b998 | 10 months ago |
Martin Fischer | 4f39ad2a24 | 10 months ago |
Kévin Commaille | 639caf057d | 10 months ago |
Kévin Commaille | 50fe89d74b | 10 months ago |
Vladimir Panteleev | 746524928c | 10 months ago |
Michael Telatynski | 3ae6bb47d8 | 10 months ago |
Kévin Commaille | 1405184765 | 11 months ago |
Hubert Chathi | 67c9f814e0 | 11 months ago |
Kévin Commaille | bed9223610 | 11 months ago |
Patrick Cloke | 6521411547 | 11 months ago |
Tony Garnock-Jones | e9acece3ec | 11 months ago |
cheb | 414cc1ea52 | 11 months ago |
Richard van der Hoff | 42114406af | 11 months ago |
Travis Ralston | 903b206e3b | 11 months ago |
Richard van der Hoff | b2ab339ba6 | 11 months ago |
Kévin Commaille | a6eb381ebb | 11 months ago |
Kévin Commaille | 30845e189f | 11 months ago |
Midnight Veil | b79fa06cfb | 11 months ago |
Kévin Commaille | 564444d43e | 11 months ago |
Kévin Commaille | 4a9bda9bed | 11 months ago |
Kévin Commaille | 49957be1e3 | 11 months ago |
Kévin Commaille | adff3faa35 | 11 months ago |
Kévin Commaille | 7a142936f5 | 11 months ago |
Kévin Commaille | 3c5355a278 | 11 months ago |
Kévin Commaille | f4aa7c0327 | 12 months ago |
Kévin Commaille | 45b6aaf07a | 12 months ago |
Andrew Morgan | c64a616d54 | 12 months ago |
Eric Eastwood | dd6af5bfb1 | 12 months ago |
David Robertson | 48459dee9b | 12 months ago |
Travis Ralston | 48ee507489 | 12 months ago |
@ -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,4 +0,0 @@
|
||||
[submodule "themes/docsy"]
|
||||
path = themes/docsy
|
||||
url = https://github.com/matrix-org/docsy.git
|
||||
branch = master
|
@ -0,0 +1 @@
|
||||
Define 'Opaque Identifier Grammar'.
|
@ -0,0 +1 @@
|
||||
Define common cryptographic key representation.
|
@ -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.
|
@ -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".
|
@ -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).
|
@ -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 @@
|
||||
Fix Hugo warnings.
|
@ -0,0 +1 @@
|
||||
Fix `github-labels.rst`
|
@ -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 Hugo warnings.
|
@ -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.
|
@ -0,0 +1 @@
|
||||
Update most CI actions.
|
@ -0,0 +1 @@
|
||||
Update typos CI action.
|
@ -0,0 +1 @@
|
||||
Set python version for the Towncrier CI job.
|
@ -0,0 +1 @@
|
||||
Replace `set-output` with environment files in CI.
|
@ -0,0 +1 @@
|
||||
Render response headers.
|
@ -0,0 +1 @@
|
||||
Add support for rendering string formats.
|
@ -1,39 +1,66 @@
|
||||
[tool.towncrier]
|
||||
version = "unused"
|
||||
filename = "../rendered.md"
|
||||
issue_format = "[#{issue}](https://github.com/matrix-org/matrix-spec/issues/{issue})"
|
||||
title_format = "### {name}" # Matches rendered spec, even if awkward
|
||||
underlines = " " # 3 spaces intentionally to hide RST headings
|
||||
|
||||
# Note: The names below have the <strong> tag built-in so the rendered spec *and* the generated
|
||||
# changelog can benefit from sane headings.
|
||||
filename = "rendered.md"
|
||||
template = "template.md.jinja"
|
||||
|
||||
[[tool.towncrier.type]]
|
||||
directory = "breaking"
|
||||
name = "<strong>Breaking Changes</strong>"
|
||||
name = "Breaking Changes"
|
||||
showcontent = true
|
||||
|
||||
[[tool.towncrier.type]]
|
||||
directory = "deprecation"
|
||||
name = "<strong>Deprecations</strong>"
|
||||
name = "Deprecations"
|
||||
showcontent = true
|
||||
|
||||
[[tool.towncrier.type]]
|
||||
directory = "new"
|
||||
name = "<strong>New Endpoints</strong>"
|
||||
name = "New Endpoints"
|
||||
showcontent = true
|
||||
|
||||
[[tool.towncrier.type]]
|
||||
directory = "removal"
|
||||
name = "<strong>Removed Endpoints</strong>"
|
||||
name = "Removed Endpoints"
|
||||
showcontent = true
|
||||
|
||||
[[tool.towncrier.type]]
|
||||
directory = "feature"
|
||||
name = "<strong>Backwards Compatible Changes</strong>"
|
||||
name = "Backwards Compatible Changes"
|
||||
showcontent = true
|
||||
|
||||
[[tool.towncrier.type]]
|
||||
directory = "clarification"
|
||||
name = "<strong>Spec Clarifications</strong>"
|
||||
name = "Spec Clarifications"
|
||||
showcontent = true
|
||||
|
||||
[[tool.towncrier.section]]
|
||||
name = "Client-Server API"
|
||||
path = "client_server"
|
||||
|
||||
[[tool.towncrier.section]]
|
||||
name = "Server-Server API"
|
||||
path = "server_server"
|
||||
|
||||
[[tool.towncrier.section]]
|
||||
name = "Application Service API"
|
||||
path = "application_service"
|
||||
|
||||
[[tool.towncrier.section]]
|
||||
name = "Identity Service API"
|
||||
path = "identity_service"
|
||||
|
||||
[[tool.towncrier.section]]
|
||||
name = "Push Gateway API"
|
||||
path = "push_gateway"
|
||||
|
||||
[[tool.towncrier.section]]
|
||||
name = "Room Versions"
|
||||
path = "room_versions"
|
||||
|
||||
[[tool.towncrier.section]]
|
||||
name = "Appendices"
|
||||
path = "appendices"
|
||||
|
||||
[[tool.towncrier.section]]
|
||||
name = "Internal Changes/Tooling"
|
||||
path = "internal"
|
||||
|
@ -0,0 +1 @@
|
||||
Fix the OpenAPI definition of the security schemes.
|
@ -0,0 +1 @@
|
||||
Use `patternProperties` in more places with supported formats.
|
@ -0,0 +1 @@
|
||||
Clarify that whitespace around commas is allowed in the `X-Matrix` `Authorization` header value params list.
|
@ -0,0 +1,24 @@
|
||||
{% for section_name, section in sections.items() %}
|
||||
{% if section_name %}
|
||||
|
||||
### {{section_name}}
|
||||
{% endif %}
|
||||
|
||||
{% if section %}
|
||||
{% for category, val in definitions.items() if category in section %}
|
||||
**{{ definitions[category]['name'] }}**
|
||||
|
||||
{% for content, issues in section[category].items() %}
|
||||
- {{ content }} (
|
||||
{%- for issue in issues %}
|
||||
[{{issue}}](https://github.com/matrix-org/matrix-spec/issues/{{issue|trim('#')}}){% if not loop.last %}, {% endif %}
|
||||
{%- endfor %}
|
||||
)
|
||||
{% endfor %}
|
||||
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
No significant changes.
|
||||
|
||||
{% endif %}
|
||||
{% endfor %}
|
@ -0,0 +1,102 @@
|
||||
---
|
||||
date: 2024-03-22T09:59:45-06:00
|
||||
---
|
||||
<!--
|
||||
This is a header file for the generated changelog.
|
||||
|
||||
Variables:
|
||||
v1.10 = Replaced by the version number (eg: v1.2)
|
||||
March 22, 2024 = Replaced by the date (eg: April 01, 2021)
|
||||
-->
|
||||
|
||||
## v1.10
|
||||
|
||||
<table class="release-info">
|
||||
<tr><th>Git commit</th><td><a href="https://github.com/matrix-org/matrix-spec/tree/v1.10">https://github.com/matrix-org/matrix-spec/tree/v1.10</a></td>
|
||||
<tr><th>Release date</th><td>March 22, 2024</td>
|
||||
</table>
|
||||
|
||||
<!-- Intentionally blank line to ensure headers work in the concatenated changelog -->
|
||||
|
||||
### Client-Server API
|
||||
|
||||
**Backwards Compatible Changes**
|
||||
|
||||
- Allow `/versions` to optionally accept authentication, as per [MSC4026](https://github.com/matrix-org/matrix-spec-proposals/pull/4026). ([#1728](https://github.com/matrix-org/matrix-spec/issues/1728))
|
||||
- Add local erasure requests, as per [MSC4025](https://github.com/matrix-org/matrix-spec-proposals/pull/4025). ([#1730](https://github.com/matrix-org/matrix-spec/issues/1730))
|
||||
- Use the `body` field as optional media caption, as per [MSC2530](https://github.com/matrix-org/matrix-spec-proposals/pull/2530). ([#1731](https://github.com/matrix-org/matrix-spec/issues/1731))
|
||||
- Add server support discovery endpoint, as per [MSC1929](https://github.com/matrix-org/matrix-spec-proposals/pull/1929). ([#1733](https://github.com/matrix-org/matrix-spec/issues/1733))
|
||||
- Add support for multi-stream VoIP, as per [MSC3077](https://github.com/matrix-org/matrix-spec-proposals/pull/3077). ([#1735](https://github.com/matrix-org/matrix-spec/issues/1735))
|
||||
- Specify that the `Retry-After` header may be used to rate-limit a client, as per [MSC4041](https://github.com/matrix-org/matrix-spec-proposals/pull/4041). ([#1737](https://github.com/matrix-org/matrix-spec/issues/1737))
|
||||
- Add support for recursion on the `GET /relations` endpoints, as per [MSC3981](https://github.com/matrix-org/matrix-spec-proposals/pull/3981). ([#1746](https://github.com/matrix-org/matrix-spec/issues/1746))
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- The [strike](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/strike) element is deprecated in the HTML spec. Clients should prefer [s](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/s) instead. ([#1629](https://github.com/matrix-org/matrix-spec/issues/1629))
|
||||
- Clarify that read receipts should be batched by thread as well as by room. ([#1685](https://github.com/matrix-org/matrix-spec/issues/1685))
|
||||
- Clarify that threads can be created based on replies. ([#1687](https://github.com/matrix-org/matrix-spec/issues/1687))
|
||||
- Clarify in the reply fallbacks example that the prefix sequence should be repeated for each line. ([#1690](https://github.com/matrix-org/matrix-spec/issues/1690))
|
||||
- Clarify the format of account data objects for secret storage. ([#1695](https://github.com/matrix-org/matrix-spec/issues/1695), [#1734](https://github.com/matrix-org/matrix-spec/issues/1734))
|
||||
- Clarify that the key backup MAC is implemented incorrectly and does not pass the ciphertext through HMAC-SHA-256. ([#1712](https://github.com/matrix-org/matrix-spec/issues/1712))
|
||||
- Clarify one-time key and fallback key types in examples. ([#1715](https://github.com/matrix-org/matrix-spec/issues/1715))
|
||||
- Clarify that the HKDF calculation for SAS uses base64-encoded keys rather than the raw key bytes. ([#1719](https://github.com/matrix-org/matrix-spec/issues/1719))
|
||||
- Clarify how to perform the ECDH exchange in step 12 of the SAS process. ([#1720](https://github.com/matrix-org/matrix-spec/issues/1720))
|
||||
- Document the deprecation policy of HTML tags, as per [MSC4077](https://github.com/matrix-org/matrix-spec-proposals/pull/4077). ([#1732](https://github.com/matrix-org/matrix-spec/issues/1732))
|
||||
- The [font](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/font) element is deprecated in the HTML spec. Clients should prefer [span](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/span) with the `data-mx-bg-color` and `data-mx-color` attributes instead. ([#1739](https://github.com/matrix-org/matrix-spec/issues/1739))
|
||||
- Disambiguate uses of `PublicRoomsChunk` in the `GET /hierarchy` endpoint. ([#1740](https://github.com/matrix-org/matrix-spec/issues/1740))
|
||||
- Clarify that `sdpMid` and `sdpMLineIndex` are not required in `m.call.candidates`. ([#1742](https://github.com/matrix-org/matrix-spec/issues/1742))
|
||||
- Fix various typos throughout the specification. ([#1748](https://github.com/matrix-org/matrix-spec/issues/1748))
|
||||
- Clearly indicate that each `Content-Type` may have distinct behaviour on non-JSON requests/responses. ([#1756](https://github.com/matrix-org/matrix-spec/issues/1756))
|
||||
- Clarify that the `m.push_rules` account data type cannot be set using the `/account_data` API, as per [MSC4010](https://github.com/matrix-org/matrix-spec-proposals/pull/4010). ([#1763](https://github.com/matrix-org/matrix-spec/issues/1763))
|
||||
|
||||
|
||||
### Server-Server API
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Clarify Server-Server API request signing example by using the `POST` HTTP method, as `GET` requests don't have request bodies. ([#1721](https://github.com/matrix-org/matrix-spec/issues/1721))
|
||||
- Disambiguate uses of `PublicRoomsChunk` in the `GET /hierarchy` endpoint. ([#1740](https://github.com/matrix-org/matrix-spec/issues/1740))
|
||||
- Clarify that the `children_state`, `room_type` and `allowed_room_ids` properties in the items of the `children` array of the response of the `GET /hierarchy` endpoint are not required. ([#1741](https://github.com/matrix-org/matrix-spec/issues/1741))
|
||||
|
||||
|
||||
### Application Service API
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Clarify that the `/login` and `/register` endpoints should fail when using the `m.login.application_service` login type without a valid `as_token`. ([#1744](https://github.com/matrix-org/matrix-spec/issues/1744))
|
||||
|
||||
|
||||
### Identity Service API
|
||||
|
||||
No significant changes.
|
||||
|
||||
|
||||
### Push Gateway API
|
||||
|
||||
No significant changes.
|
||||
|
||||
|
||||
### Room Versions
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- For room versions 7 through 11: Clarify that `invite->knock` is not a legal transition. ([#1717](https://github.com/matrix-org/matrix-spec/issues/1717))
|
||||
|
||||
|
||||
### Appendices
|
||||
|
||||
No significant changes.
|
||||
|
||||
|
||||
### Internal Changes/Tooling
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Update the spec release process. ([#1680](https://github.com/matrix-org/matrix-spec/issues/1680))
|
||||
- Minor clarifications to the contributing guide. ([#1697](https://github.com/matrix-org/matrix-spec/issues/1697))
|
||||
- Update Docsy to v0.8.0. ([#1699](https://github.com/matrix-org/matrix-spec/issues/1699), [#1762](https://github.com/matrix-org/matrix-spec/issues/1762))
|
||||
- Fix npm release script for `@matrix-org/spec`. ([#1713](https://github.com/matrix-org/matrix-spec/issues/1713))
|
||||
- Add some clarifications around implementation requirements for MSCs. ([#1718](https://github.com/matrix-org/matrix-spec/issues/1718))
|
||||
- Update HTML templates to include links to object schema definitions. ([#1724](https://github.com/matrix-org/matrix-spec/issues/1724))
|
||||
- Factor out all the common parameters of the various `/relations` apis. ([#1745](https://github.com/matrix-org/matrix-spec/issues/1745))
|
||||
- Add support for `$ref` URIs containing fragments in OpenAPI definitions and JSON schemas. ([#1751](https://github.com/matrix-org/matrix-spec/issues/1751), [#1754](https://github.com/matrix-org/matrix-spec/issues/1754))
|
@ -0,0 +1,122 @@
|
||||
---
|
||||
date: 2023-08-23T09:23:53-06:00
|
||||
---
|
||||
<!--
|
||||
This is a header file for the generated changelog.
|
||||
|
||||
Variables:
|
||||
v1.8 = Replaced by the version number (eg: v1.2)
|
||||
August 23, 2023 = Replaced by the date (eg: April 01, 2021)
|
||||
-->
|
||||
|
||||
## v1.8
|
||||
|
||||
<table class="release-info">
|
||||
<tr><th>Git commit</th><td><a href="https://github.com/matrix-org/matrix-spec/tree/v1.8">https://github.com/matrix-org/matrix-spec/tree/v1.8</a></td>
|
||||
<tr><th>Release date</th><td>August 23, 2023</td>
|
||||
</table>
|
||||
|
||||
<!-- Intentionally blank line to ensure headers work in the concatenated changelog -->
|
||||
|
||||
### Client-Server API
|
||||
|
||||
**Backwards Compatible Changes**
|
||||
|
||||
- Require callers to be joined to the room to report its events, as per [MSC2249](https://github.com/matrix-org/matrix-spec-proposals/pull/2249). ([#1517](https://github.com/matrix-org/matrix-spec/issues/1517))
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Fix missing `type` property in the JSON schema definition of the `m.reaction` event. Contributed by @chebureki. ([#1552](https://github.com/matrix-org/matrix-spec/issues/1552))
|
||||
- Make sure examples types match schema in definitions. ([#1563](https://github.com/matrix-org/matrix-spec/issues/1563))
|
||||
- Allow `null` in `room_types` in `POST /publicRooms` endpoints schemas. ([#1564](https://github.com/matrix-org/matrix-spec/issues/1564))
|
||||
- Fix broken header formatting. Contributed by @midnightveil. ([#1578](https://github.com/matrix-org/matrix-spec/issues/1578))
|
||||
- Render binary request and response bodies. ([#1579](https://github.com/matrix-org/matrix-spec/issues/1579))
|
||||
- Fix description of MAC calculation in SAS verification. ([#1590](https://github.com/matrix-org/matrix-spec/issues/1590))
|
||||
- Update link to SAS emoji definition data. ([#1593](https://github.com/matrix-org/matrix-spec/issues/1593))
|
||||
- Fix various typos throughout the specification. ([#1597](https://github.com/matrix-org/matrix-spec/issues/1597))
|
||||
|
||||
|
||||
### Server-Server API
|
||||
|
||||
**Deprecations**
|
||||
|
||||
- Deprecate `matrix` SRV lookup steps during server discovery, as per [MSC4040](https://github.com/matrix-org/matrix-spec-proposals/pull/4040). ([#1624](https://github.com/matrix-org/matrix-spec/issues/1624))
|
||||
|
||||
**Backwards Compatible Changes**
|
||||
|
||||
- Add `matrix-fed` SRV lookup steps to server discovery, as per [MSC4040](https://github.com/matrix-org/matrix-spec-proposals/pull/4040). ([#1624](https://github.com/matrix-org/matrix-spec/issues/1624))
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Document why `/state_ids` can respond with a 404. ([#1521](https://github.com/matrix-org/matrix-spec/issues/1521))
|
||||
- Fix response definition for `POST /_matrix/federation/v1/user/keys/claim`. ([#1559](https://github.com/matrix-org/matrix-spec/issues/1559))
|
||||
- Fix examples in server keys definition. ([#1560](https://github.com/matrix-org/matrix-spec/issues/1560))
|
||||
- Make sure examples types match schema in definitions. ([#1563](https://github.com/matrix-org/matrix-spec/issues/1563))
|
||||
- Allow `null` in `room_types` in `POST /publicRooms` endpoints schemas. ([#1564](https://github.com/matrix-org/matrix-spec/issues/1564))
|
||||
- Fix broken header formatting. Contributed by @midnightveil. ([#1578](https://github.com/matrix-org/matrix-spec/issues/1578))
|
||||
- Remove spurious mention of a "default port" with respect to SRV record lookup. ([#1615](https://github.com/matrix-org/matrix-spec/issues/1615))
|
||||
- Switch to ordered list for server name resolution steps. ([#1623](https://github.com/matrix-org/matrix-spec/issues/1623))
|
||||
|
||||
|
||||
### Application Service API
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Fix type of custom `fields` in thirdparty lookup queries. ([#1584](https://github.com/matrix-org/matrix-spec/issues/1584))
|
||||
|
||||
|
||||
### Identity Service API
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Make sure examples types match schema in definitions. ([#1563](https://github.com/matrix-org/matrix-spec/issues/1563))
|
||||
|
||||
|
||||
### Push Gateway API
|
||||
|
||||
No significant changes.
|
||||
|
||||
|
||||
### Room Versions
|
||||
|
||||
**Backwards Compatible Changes**
|
||||
|
||||
- Add room version 11 as per [MSC3820](https://github.com/matrix-org/matrix-spec-proposals/pull/3820). ([#1604](https://github.com/matrix-org/matrix-spec/issues/1604))
|
||||
- Move `redacts` from top level to `content` on `m.room.redaction` events in room version 11, as per [MSC2174](https://github.com/matrix-org/matrix-spec-proposals/pull/2174). ([#1604](https://github.com/matrix-org/matrix-spec/issues/1604))
|
||||
- Remove `creator` from `m.room.creator` events in room version 11, as per [MSC2175](https://github.com/matrix-org/matrix-spec-proposals/pull/2175). ([#1604](https://github.com/matrix-org/matrix-spec/issues/1604))
|
||||
- Remove remaining usage of `origin` from events in room version 11, as per [MSC3989](https://github.com/matrix-org/matrix-spec-proposals/pull/3989). ([#1604](https://github.com/matrix-org/matrix-spec/issues/1604))
|
||||
- Update the redaction rules in room version 11, as per [MSC2176](https://github.com/matrix-org/matrix-spec-proposals/pull/2176) and [MSC3821](https://github.com/matrix-org/matrix-spec-proposals/pull/3821). ([#1604](https://github.com/matrix-org/matrix-spec/issues/1604))
|
||||
|
||||
|
||||
### Appendices
|
||||
|
||||
**Backwards Compatible Changes**
|
||||
|
||||
- Allow `+` in Matrix IDs, as per [MSC4009](https://github.com/matrix-org/matrix-spec-proposals/pull/4009). ([#1583](https://github.com/matrix-org/matrix-spec/issues/1583))
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Clarify spec re canonical JSON to handle negative-zero; also, give an example of negative-zero and a large power of ten. ([#1573](https://github.com/matrix-org/matrix-spec/issues/1573))
|
||||
|
||||
|
||||
### Internal Changes/Tooling
|
||||
|
||||
**Backwards Compatible Changes**
|
||||
|
||||
- Upgrade Swagger data to OpenAPI 3.1. ([#1310](https://github.com/matrix-org/matrix-spec/issues/1310))
|
||||
- Create `@matrix-org/spec` npm package to ship the SAS Emoji data definitions & translations. ([#1620](https://github.com/matrix-org/matrix-spec/issues/1620))
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Update the CI to validate the file extension of changelog entries. ([#1542](https://github.com/matrix-org/matrix-spec/issues/1542))
|
||||
- Disclosure sections now only display their title when collapsed. ([#1549](https://github.com/matrix-org/matrix-spec/issues/1549))
|
||||
- Fix the sidebar in recent versions of Hugo. ([#1551](https://github.com/matrix-org/matrix-spec/issues/1551))
|
||||
- Bump jsonschema to validate JSON Schemas against Draft 2020-12. ([#1556](https://github.com/matrix-org/matrix-spec/issues/1556))
|
||||
- Use Redocly CLI to validate OpenAPI definitions. ([#1558](https://github.com/matrix-org/matrix-spec/issues/1558))
|
||||
- Use tag name as the OpenAPI definition version. ([#1561](https://github.com/matrix-org/matrix-spec/issues/1561))
|
||||
- Make sure version in `x-changedInMatrixVersion` is a string. ([#1562](https://github.com/matrix-org/matrix-spec/issues/1562))
|
||||
- Clarify usage of ABNF for grammar in the documentation style guide. ([#1582](https://github.com/matrix-org/matrix-spec/issues/1582))
|
||||
- Remove unnecessary `oneOf`s in JSON schemas. ([#1585](https://github.com/matrix-org/matrix-spec/issues/1585))
|
||||
- Update the version of Hugo used to render the spec to v0.113.0. ([#1591](https://github.com/matrix-org/matrix-spec/issues/1591))
|
||||
- Fix rendered changelog with new version of towncrier. ([#1598](https://github.com/matrix-org/matrix-spec/issues/1598))
|
||||
- Improve the layout of tables on desktop displays. Contributed by Martin Fischer. ([#1601](https://github.com/matrix-org/matrix-spec/issues/1601))
|
@ -0,0 +1,93 @@
|
||||
---
|
||||
date: 2023-11-29T10:04:26-07:00
|
||||
---
|
||||
<!--
|
||||
This is a header file for the generated changelog.
|
||||
|
||||
Variables:
|
||||
v1.9 = Replaced by the version number (eg: v1.2)
|
||||
November 29, 2023 = Replaced by the date (eg: April 01, 2021)
|
||||
-->
|
||||
|
||||
## v1.9
|
||||
|
||||
<table class="release-info">
|
||||
<tr><th>Git commit</th><td><a href="https://github.com/matrix-org/matrix-spec/tree/v1.9">https://github.com/matrix-org/matrix-spec/tree/v1.9</a></td>
|
||||
<tr><th>Release date</th><td>November 29, 2023</td>
|
||||
</table>
|
||||
|
||||
<!-- Intentionally blank line to ensure headers work in the concatenated changelog -->
|
||||
|
||||
### Client-Server API
|
||||
|
||||
**Backwards Compatible Changes**
|
||||
|
||||
- Add the `m.rule.suppress_edits` default push rule, as per [MSC3958](https://github.com/matrix-org/matrix-spec-proposals/pull/3958). ([#1617](https://github.com/matrix-org/matrix-spec/issues/1617))
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Fix `m.call.negotiate` schema and example. ([#1546](https://github.com/matrix-org/matrix-spec/issues/1546))
|
||||
- Clarify that the `via` property is required for `m.space.parent` and `m.space.child` as per [MSC1772](https://github.com/matrix-org/matrix-spec-proposals/pull/1772). Contributed by @PaarthShah. ([#1618](https://github.com/matrix-org/matrix-spec/issues/1618))
|
||||
- Add a note to the `/publicRooms` API that the server name is case sensitive. ([#1638](https://github.com/matrix-org/matrix-spec/issues/1638))
|
||||
- Clarify that an `m.room.name` event with an absent `name` field is not expected behavior. ([#1639](https://github.com/matrix-org/matrix-spec/issues/1639))
|
||||
- Fix schemas used for account data and presence events in `GET /initialSync`. ([#1647](https://github.com/matrix-org/matrix-spec/issues/1647))
|
||||
- Fix various typos throughout the specification. ([#1658](https://github.com/matrix-org/matrix-spec/issues/1658), [#1661](https://github.com/matrix-org/matrix-spec/issues/1661), [#1665](https://github.com/matrix-org/matrix-spec/issues/1665))
|
||||
- Fix `.m.rule.suppress_notices` push rule not being valid JSON. ([#1671](https://github.com/matrix-org/matrix-spec/issues/1671))
|
||||
- Add missing properties for `event_property_is` and `event_property_contains` push conditions to `PushConditions` object. ([#1673](https://github.com/matrix-org/matrix-spec/issues/1673))
|
||||
- Indicate that fallback keys should have a `fallback` property set to `true`. ([#1676](https://github.com/matrix-org/matrix-spec/issues/1676))
|
||||
- Clarify that thread roots are not considered within the thread. ([#1677](https://github.com/matrix-org/matrix-spec/issues/1677))
|
||||
|
||||
|
||||
### Server-Server API
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Fix schema of `m.receipt` EDU. ([#1636](https://github.com/matrix-org/matrix-spec/issues/1636))
|
||||
- Fix various typos throughout the specification. ([#1661](https://github.com/matrix-org/matrix-spec/issues/1661))
|
||||
- Clarify that federation requests for non-local users are invalid. ([#1672](https://github.com/matrix-org/matrix-spec/issues/1672))
|
||||
|
||||
|
||||
### Application Service API
|
||||
|
||||
No significant changes.
|
||||
|
||||
|
||||
### Identity Service API
|
||||
|
||||
No significant changes.
|
||||
|
||||
|
||||
### Push Gateway API
|
||||
|
||||
No significant changes.
|
||||
|
||||
|
||||
### Room Versions
|
||||
|
||||
No significant changes.
|
||||
|
||||
|
||||
### Appendices
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Clarify timestamp specification with respect to leap seconds. ([#1627](https://github.com/matrix-org/matrix-spec/issues/1627))
|
||||
- Fix various typos throughout the specification. ([#1652](https://github.com/matrix-org/matrix-spec/issues/1652))
|
||||
|
||||
|
||||
### Internal Changes/Tooling
|
||||
|
||||
**Backwards Compatible Changes**
|
||||
|
||||
- Add more CI checks for OpenAPI definitions and JSON Schemas. ([#1656](https://github.com/matrix-org/matrix-spec/issues/1656))
|
||||
- Generate server-server OpenAPI definition. ([#1657](https://github.com/matrix-org/matrix-spec/issues/1657))
|
||||
|
||||
**Spec Clarifications**
|
||||
|
||||
- Replace all mentions of Swagger by OpenAPI. ([#1633](https://github.com/matrix-org/matrix-spec/issues/1633))
|
||||
- Fix enum types in JSON schemas. ([#1634](https://github.com/matrix-org/matrix-spec/issues/1634))
|
||||
- Fix schema of `m.mentions` object. ([#1635](https://github.com/matrix-org/matrix-spec/issues/1635))
|
||||
- Fix rendering of `m.receipt` event in Client-Server API. ([#1637](https://github.com/matrix-org/matrix-spec/issues/1637))
|
||||
- Remove required `fieldname` in appservice Protocol definition. ([#1646](https://github.com/matrix-org/matrix-spec/issues/1646))
|
||||
- Fix github action workflow responsible for releasing of @matrix-org/spec package. ([#1648](https://github.com/matrix-org/matrix-spec/issues/1648))
|
||||
- Upgrade GitHub actions. ([#1660](https://github.com/matrix-org/matrix-spec/issues/1660))
|
@ -0,0 +1,4 @@
|
||||
|
||||
Events in rooms of this version have the following structure:
|
||||
|
||||
{{% definition path="api/server-server/definitions/pdu_v11" %}}
|
@ -0,0 +1,30 @@
|
||||
|
||||
Upon receipt of a redaction event, the server must strip off any keys
|
||||
not in the following list:
|
||||
|
||||
- `event_id`
|
||||
- `type`
|
||||
- `room_id`
|
||||
- `sender`
|
||||
- `state_key`
|
||||
- `content`
|
||||
- `hashes`
|
||||
- `signatures`
|
||||
- `depth`
|
||||
- `prev_events`
|
||||
- `auth_events`
|
||||
- `origin_server_ts`
|
||||
|
||||
The content object must also be stripped of all keys, unless it is one
|
||||
of the following event types:
|
||||
|
||||
- [`m.room.member`](/client-server-api#mroommember) allows keys `membership`, `join_authorised_via_users_server`.
|
||||
Additionally, it allows the `signed` key of the `third_party_invite` key.
|
||||
- [`m.room.create`](/client-server-api#mroomcreate) allows all keys.
|
||||
- [`m.room.join_rules`](/client-server-api#mroomjoin_rules) allows keys `join_rule`, `allow`.
|
||||
- [`m.room.power_levels`](/client-server-api#mroompower_levels) allows keys
|
||||
`ban`, `events`, `events_default`, `invite`, `kick`, `redact`, `state_default`,
|
||||
`users`, `users_default`.
|
||||
- [`m.room.history_visibility`](/client-server-api#mroomhistory_visibility)
|
||||
allows key `history_visibility`.
|
||||
- [`m.room.redaction`](/client-server-api#mroomredaction) allows key `redacts`.
|
@ -0,0 +1,285 @@
|
||||
---
|
||||
title: Room Version 11
|
||||
type: docs
|
||||
weight: 100
|
||||
---
|
||||
|
||||
This room version builds on [version 10](/rooms/v10) while clarifying redaction
|
||||
rules.
|
||||
|
||||
## Client considerations
|
||||
|
||||
### Redactions
|
||||
|
||||
{{< added-in this=true >}} The top-level `origin`, `membership`, and `prev_state` properties
|
||||
are no longer protected from redaction. The [`m.room.create`](/client-server-api#mroomcreate)
|
||||
event now keeps the entire `content` property. The [`m.room.redaction`](/client-server-api#mroomredaction)
|
||||
event keeps the `redacts` property under `content`. The
|
||||
[`m.room.power_levels`](/client-server-api#mroompower_levels) event keeps the
|
||||
`invite` property under `content`.
|
||||
|
||||
The full redaction algorithm follows.
|
||||
|
||||
{{% rver-fragment name="v11-redactions" withVersioning="true" %}}
|
||||
|
||||
### Event format
|
||||
|
||||
Clients should no longer depend on the `creator` property in the `content` of
|
||||
[`m.room.create`](/client-server-api#mroomcreate) events. In all room versions,
|
||||
clients can rely on `sender` instead to determine a room creator.
|
||||
|
||||
The format of [`m.room.redaction`](/client-server-api#mroomredaction)
|
||||
events has been modified. Client should look for the `redacts` key under `content`
|
||||
instead of a top-level event property.
|
||||
|
||||
The `third_party_invite` key of [`m.room.member`](/client-server-api#mroommember)
|
||||
events is no longer redacted, *but* will only contain the `signed` key after redaction.
|
||||
|
||||
## Server implementation components
|
||||
|
||||
{{% boxes/warning %}}
|
||||
The information contained in this section is strictly for server
|
||||
implementors. Applications which use the Client-Server API are generally
|
||||
unaffected by the intricacies contained here. The section above
|
||||
regarding client considerations is the resource that Client-Server API
|
||||
use cases should reference.
|
||||
{{% /boxes/warning %}}
|
||||
|
||||
This room version updates the redaction algorithm and modifies how servers should
|
||||
create `m.room.create` and `m.room.redaction` events.
|
||||
|
||||
Room version 11 is based upon room version 10 with the following considerations.
|
||||
|
||||
### Redactions
|
||||
|
||||
[See above](#redactions).
|
||||
|
||||
### Event format
|
||||
|
||||
The core event format is the same as [room version 10](/rooms/v10#event-format).
|
||||
However, this room version changes some properties of some event types.
|
||||
|
||||
{{% rver-fragment name="v11-event-format" %}}
|
||||
|
||||
#### Remove the `creator` property of `m.room.create` events
|
||||
|
||||
The `content` of a `m.room.create` event no longer has a `creator` property,
|
||||
which previously was always equivalent to the `sender` of the event.
|
||||
|
||||
#### Moving the `redacts` property of `m.room.redaction` events to a `content` property
|
||||
|
||||
The `redacts` property of `m.room.redaction` events is moved from a top-level
|
||||
event property to a property under the event `content`.
|
||||
|
||||
For backwards-compatibility with older clients, servers should add a `redacts` property
|
||||
to the top level of `m.room.redaction` events in when serving such events over the
|
||||
Client-Server API.
|
||||
|
||||
For improved compatibility with newer clients, servers should add a `redacts` property
|
||||
to the `content` of `m.room.redaction` events in *older* room versions when serving
|
||||
such events over the Client-Server API.
|
||||
|
||||
### Authorization rules
|
||||
|
||||
Events must be signed by the server denoted by the `sender` property.
|
||||
|
||||
`m.room.redaction` events are not explicitly part of the auth rules.
|
||||
They are still subject to the minimum power level rules, but should always
|
||||
fall into "10. Otherwise, allow". Instead of being authorized at the time
|
||||
of receipt, they are authorized at a later stage: see the
|
||||
[Redactions](#redactions) section below for more information.
|
||||
|
||||
The types of state events that affect authorization are:
|
||||
|
||||
- [`m.room.create`](/client-server-api#mroomcreate)
|
||||
- [`m.room.member`](/client-server-api#mroommember)
|
||||
- [`m.room.join_rules`](/client-server-api#mroomjoin_rules)
|
||||
- [`m.room.power_levels`](/client-server-api#mroompower_levels)
|
||||
- [`m.room.third_party_invite`](/client-server-api#mroomthird_party_invite)
|
||||
|
||||
{{% boxes/note %}}
|
||||
Power levels are inferred from defaults when not explicitly supplied.
|
||||
For example, mentions of the `sender`'s power level can also refer to
|
||||
the default power level for users in the room.
|
||||
{{% /boxes/note %}}
|
||||
|
||||
The rules are as follows:
|
||||
|
||||
1. {{< changed-in this="true" >}}
|
||||
If type is `m.room.create`:
|
||||
1. If it has any `prev_events`, reject.
|
||||
2. If the domain of the `room_id` does not match the domain of the
|
||||
`sender`, reject.
|
||||
3. If `content.room_version` is present and is not a recognised
|
||||
version, reject.
|
||||
4. Otherwise, allow.
|
||||
2. Considering the event's `auth_events`:
|
||||
1. If there are duplicate entries for a given `type` and `state_key` pair,
|
||||
reject.
|
||||
2. If there are entries whose `type` and `state_key` don't match those
|
||||
specified by the [auth events
|
||||
selection](/server-server-api#auth-events-selection)
|
||||
algorithm described in the server specification, reject.
|
||||
3. If there are entries which were themselves rejected under the [checks
|
||||
performed on receipt of a
|
||||
PDU](/server-server-api/#checks-performed-on-receipt-of-a-pdu), reject.
|
||||
4. If there is no `m.room.create` event among the entries, reject.
|
||||
3. If the `content` of the `m.room.create` event in the room state has the
|
||||
property `m.federate` set to `false`, and the `sender` domain of the event
|
||||
does not match the `sender` domain of the create event, reject.
|
||||
4. If type is `m.room.member`:
|
||||
1. If there is no `state_key` property, or no `membership` property in
|
||||
`content`, reject.
|
||||
2. If `content` has a `join_authorised_via_users_server`
|
||||
key:
|
||||
1. If the event is not validly signed by the homeserver of the user ID denoted
|
||||
by the key, reject.
|
||||
3. If `membership` is `join`:
|
||||
1. {{< changed-in this="true" >}}
|
||||
If the only previous event is an `m.room.create` and the
|
||||
`state_key` is the sender, allow.
|
||||
2. If the `sender` does not match `state_key`, reject.
|
||||
3. If the `sender` is banned, reject.
|
||||
4. If the `join_rule` is `invite` or `knock` then allow if
|
||||
membership state is `invite` or `join`.
|
||||
5. If the `join_rule` is `restricted` or `knock_restricted`:
|
||||
1. If membership state is `join` or `invite`, allow.
|
||||
2. If the `join_authorised_via_users_server` key in `content`
|
||||
is not a user with sufficient permission to invite other
|
||||
users, reject.
|
||||
3. Otherwise, allow.
|
||||
6. If the `join_rule` is `public`, allow.
|
||||
7. Otherwise, reject.
|
||||
4. If `membership` is `invite`:
|
||||
1. If `content` has a `third_party_invite` property:
|
||||
1. If *target user* is banned, reject.
|
||||
2. If `content.third_party_invite` does not have a `signed`
|
||||
property, reject.
|
||||
3. If `signed` does not have `mxid` and `token` properties,
|
||||
reject.
|
||||
4. If `mxid` does not match `state_key`, reject.
|
||||
5. If there is no `m.room.third_party_invite` event in the
|
||||
current room state with `state_key` matching `token`,
|
||||
reject.
|
||||
6. If `sender` does not match `sender` of the
|
||||
`m.room.third_party_invite`, reject.
|
||||
7. If any signature in `signed` matches any public key in
|
||||
the `m.room.third_party_invite` event, allow. The public
|
||||
keys are in `content` of `m.room.third_party_invite` as:
|
||||
1. A single public key in the `public_key` property.
|
||||
2. A list of public keys in the `public_keys` property.
|
||||
8. Otherwise, reject.
|
||||
2. If the `sender`'s current membership state is not `join`,
|
||||
reject.
|
||||
3. If *target user*'s current membership state is `join` or
|
||||
`ban`, reject.
|
||||
4. If the `sender`'s power level is greater than or equal to
|
||||
the *invite level*, allow.
|
||||
5. Otherwise, reject.
|
||||
5. If `membership` is `leave`:
|
||||
1. If the `sender` matches `state_key`, allow if and only if
|
||||
that user's current membership state is `invite`, `join`,
|
||||
or `knock`.
|
||||
2. If the `sender`'s current membership state is not `join`,
|
||||
reject.
|
||||
3. If the *target user*'s current membership state is `ban`,
|
||||
and the `sender`'s power level is less than the *ban level*,
|
||||
reject.
|
||||
4. If the `sender`'s power level is greater than or equal to
|
||||
the *kick level*, and the *target user*'s power level is
|
||||
less than the `sender`'s power level, allow.
|
||||
5. Otherwise, reject.
|
||||
6. If `membership` is `ban`:
|
||||
1. If the `sender`'s current membership state is not `join`,
|
||||
reject.
|
||||
2. If the `sender`'s power level is greater than or equal to
|
||||
the *ban level*, and the *target user*'s power level is less
|
||||
than the `sender`'s power level, allow.
|
||||
3. Otherwise, reject.
|
||||
7. If `membership` is `knock`:
|
||||
1. If the `join_rule` is anything other than `knock` or
|
||||
`knock_restricted`, reject.
|
||||
2. If `sender` does not match `state_key`, reject.
|
||||
3. If the `sender`'s current membership is not `ban`, `invite`,
|
||||
or `join`, allow.
|
||||
4. Otherwise, reject.
|
||||
8. Otherwise, the membership is unknown. Reject.
|
||||
5. If the `sender`'s current membership state is not `join`, reject.
|
||||
6. If type is `m.room.third_party_invite`:
|
||||
1. Allow if and only if `sender`'s current power level is greater
|
||||
than or equal to the *invite level*.
|
||||
7. If the event type's *required power level* is greater than the
|
||||
`sender`'s power level, reject.
|
||||
8. If the event has a `state_key` that starts with an `@` and does not
|
||||
match the `sender`, reject.
|
||||
9. If type is `m.room.power_levels`:
|
||||
1. If any of the properties `users_default`, `events_default`, `state_default`,
|
||||
`ban`, `redact`, `kick`, or `invite` in `content` are present and
|
||||
not an integer, reject.
|
||||
2. If either of the properties `events` or `notifications` in `content`
|
||||
are present and not an object with values that are integers,
|
||||
reject.
|
||||
3. If the `users` property in `content` is not an obiect with keys that
|
||||
are valid user IDs with values that are integers, reject.
|
||||
4. If there is no previous `m.room.power_levels` event in the room,
|
||||
allow.
|
||||
5. For the properties `users_default`, `events_default`, `state_default`,
|
||||
`ban`, `redact`, `kick`, `invite` check if they were added,
|
||||
changed or removed. For each found alteration:
|
||||
1. If the current value is higher than the `sender`'s current
|
||||
power level, reject.
|
||||
2. If the new value is higher than the `sender`'s current power
|
||||
level, reject.
|
||||
6. For each entry being changed in, or removed from, the `events` or
|
||||
`notifications` properties:
|
||||
1. If the current value is greater than the `sender`'s current
|
||||
power level, reject.
|
||||
7. For each entry being added to, or changed in, the `events` or
|
||||
`notifications` properties:
|
||||
1. If the new value is greater than the `sender`'s current power
|
||||
level, reject.
|
||||
8. For each entry being changed in, or removed from, the `users` property,
|
||||
other than the `sender`'s own entry:
|
||||
1. If the current value is greater than or equal to the `sender`'s
|
||||
current power level, reject.
|
||||
9. For each entry being added to, or changed in, the `users` property:
|
||||
1. If the new value is greater than the `sender`'s current power
|
||||
level, reject.
|
||||
10. Otherwise, allow.
|
||||
10. Otherwise, allow.
|
||||
|
||||
{{% boxes/note %}}
|
||||
Some consequences of these rules:
|
||||
|
||||
- Unless you are a member of the room, the only permitted operations
|
||||
(apart from the initial create/join) are: joining a public room;
|
||||
accepting or rejecting an invitation to a room.
|
||||
- To unban somebody, you must have power level greater than or equal
|
||||
to both the kick *and* ban levels, *and* greater than the target
|
||||
user's power level.
|
||||
{{% /boxes/note %}}
|
||||
|
||||
## Unchanged from v10
|
||||
|
||||
The following sections have not been modified since v10, but are included for
|
||||
completeness.
|
||||
|
||||
### Handling redactions
|
||||
|
||||
{{% rver-fragment name="v3-handling-redactions" %}}
|
||||
|
||||
### Event IDs
|
||||
|
||||
{{% rver-fragment name="v4-event-ids" %}}
|
||||
|
||||
### State resolution
|
||||
|
||||
{{% rver-fragment name="v2-state-res" %}}
|
||||
|
||||
### Canonical JSON
|
||||
|
||||
{{% rver-fragment name="v6-canonical-json" %}}
|
||||
|
||||
### Signing key validity period
|
||||
|
||||
{{% rver-fragment name="v5-signing-requirements" %}}
|
@ -0,0 +1,66 @@
|
||||
{
|
||||
"Pin": "سنجاق",
|
||||
"Folder": "پوشه",
|
||||
"Headphones": "هدفون",
|
||||
"Anchor": "لنگر",
|
||||
"Bell": "زنگ",
|
||||
"Trumpet": "شیپور",
|
||||
"Guitar": "گیتار",
|
||||
"Ball": "توپ",
|
||||
"Trophy": "جام",
|
||||
"Rocket": "موشک",
|
||||
"Aeroplane": "هواپیما",
|
||||
"Bicycle": "دوچرخه",
|
||||
"Train": "قطار",
|
||||
"Flag": "پرچم",
|
||||
"Telephone": "تلفن",
|
||||
"Hammer": "چکش",
|
||||
"Key": "کلید",
|
||||
"Lock": "قفل",
|
||||
"Scissors": "قیچی",
|
||||
"Paperclip": "گیره کاغذ",
|
||||
"Pencil": "مداد",
|
||||
"Book": "کتاب",
|
||||
"Light Bulb": "لامپ",
|
||||
"Gift": "هدیه",
|
||||
"Clock": "ساعت",
|
||||
"Hourglass": "ساعت شنی",
|
||||
"Umbrella": "چتر",
|
||||
"Thumbs Up": "لایک",
|
||||
"Santa": "بابا نوئل",
|
||||
"Spanner": "آچار",
|
||||
"Glasses": "عینک",
|
||||
"Hat": "کلاه",
|
||||
"Robot": "ربات",
|
||||
"Smiley": "خنده",
|
||||
"Heart": "قلب",
|
||||
"Cake": "کیک",
|
||||
"Pizza": "پیتزا",
|
||||
"Corn": "ذرت",
|
||||
"Strawberry": "توت فرنگی",
|
||||
"Apple": "سیب",
|
||||
"Banana": "موز",
|
||||
"Fire": "آتش",
|
||||
"Cloud": "ابر",
|
||||
"Moon": "ماه",
|
||||
"Globe": "زمین",
|
||||
"Mushroom": "قارچ",
|
||||
"Cactus": "کاکتوس",
|
||||
"Tree": "درخت",
|
||||
"Flower": "گل",
|
||||
"Butterfly": "پروانه",
|
||||
"Octopus": "اختاپوس",
|
||||
"Fish": "ماهی",
|
||||
"Turtle": "لاکپشت",
|
||||
"Penguin": "پنگوئن",
|
||||
"Rooster": "خروس",
|
||||
"Panda": "پاندا",
|
||||
"Rabbit": "خرگوش",
|
||||
"Elephant": "فیل",
|
||||
"Pig": "خوک",
|
||||
"Unicorn": "تک شاخ",
|
||||
"Horse": "اسب",
|
||||
"Lion": "شیر",
|
||||
"Cat": "گربه",
|
||||
"Dog": "سگ"
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
{
|
||||
"Thumbs Up": "Polegar para cima",
|
||||
"Pin": "Pionés",
|
||||
"Folder": "Pasta",
|
||||
"Headphones": "Fones",
|
||||
"Anchor": "Âncora",
|
||||
"Bell": "Sino",
|
||||
"Trumpet": "Trompete",
|
||||
"Guitar": "Guitarra",
|
||||
"Ball": "Bola",
|
||||
"Trophy": "Troféu",
|
||||
"Rocket": "Foguetão",
|
||||
"Aeroplane": "Avião",
|
||||
"Bicycle": "Bicicleta",
|
||||
"Train": "Comboio",
|
||||
"Flag": "Bandeira",
|
||||
"Telephone": "Telefone",
|
||||
"Hammer": "Martelo",
|
||||
"Key": "Chave",
|
||||
"Lock": "Cadeado",
|
||||
"Scissors": "Tesoura",
|
||||
"Paperclip": "Clipe",
|
||||
"Pencil": "Lápis",
|
||||
"Book": "Livro",
|
||||
"Light Bulb": "Lâmpada",
|
||||
"Gift": "Presente",
|
||||
"Clock": "Relógio",
|
||||
"Hourglass": "Ampulheta",
|
||||
"Umbrella": "Guarda-chuva",
|
||||
"Santa": "Pai Natal",
|
||||
"Spanner": "Chave inglesa",
|
||||
"Glasses": "Óculos",
|
||||
"Hat": "Chapéu",
|
||||
"Robot": "Robô",
|
||||
"Smiley": "Sorriso",
|
||||
"Heart": "Coração",
|
||||
"Cake": "Bolo",
|
||||
"Pizza": "Piza",
|
||||
"Corn": "Milho",
|
||||
"Strawberry": "Morango",
|
||||
"Apple": "Maçã",
|
||||
"Banana": "Banana",
|
||||
"Fire": "Fogo",
|
||||
"Cloud": "Nuvem",
|
||||
"Moon": "Lua",
|
||||
"Globe": "Globo",
|
||||
"Mushroom": "Cogumelo",
|
||||
"Cactus": "Cato",
|
||||
"Tree": "Árvore",
|
||||
"Flower": "Flor",
|
||||
"Butterfly": "Borboleta",
|
||||
"Octopus": "Polvo",
|
||||
"Fish": "Peixe",
|
||||
"Turtle": "Tartaruga",
|
||||
"Penguin": "Pinguim",
|
||||
"Rooster": "Galo",
|
||||
"Panda": "Panda",
|
||||
"Rabbit": "Coelho",
|
||||
"Elephant": "Elefante",
|
||||
"Pig": "Porco",
|
||||
"Unicorn": "Unicórnio",
|
||||
"Horse": "Cavalo",
|
||||
"Lion": "Leão",
|
||||
"Cat": "Gato",
|
||||
"Dog": "Cão"
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue