As far as I can tell, these header files only encourage people to create
badly-formatted PRs.
Also we only have one template so let's give it the default name.
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>
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>
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>
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>
* 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>
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>
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.
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>
* 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>
* 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
* 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
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>
* 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>
* 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>
* 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>
* 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>
* 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>
* Disambiguate uses of PublicRoomsChunk
Make sure that different objects don't share the same title.
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
* 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>
* 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>
* 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
* 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>
* 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>
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.
* 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>
... 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>
* 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
* 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>
* 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>
* 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>
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>
* 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>
* 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
* 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>
* 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>
* 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>
* 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
* 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.
* "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>
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.
* 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>
* 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>
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.
* `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>
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.
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>
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>
* 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>
* 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>
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.
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
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>
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.
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.
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.
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
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.
* 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>
* 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
* 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>
* 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>
* 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
* 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
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.
* 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>
* 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>
* 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>
* 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
* 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
* openapi_extensions.md: fix typos and leftovers
dump-swagger had to substitute things in the past - these days it
just merges definitions.
* Changelog
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)]`.
* 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>
* 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>
* 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>
* 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>
* 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.
* 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>
* 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
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.
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>
* 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>
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.
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.
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
* 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.
* 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>
* Fix knock->leave transition in auth rules
This was an oversight from knocking being added.
For safety, this has been verified as at least intended by Synapse to work:
f5e2cde3f5/synapse/event_auth.py (L390-L391)
* changelog
* MSC3676: Transitioning away from reply fallbacks
* msc number
* md fails
* typoe
* Update proposals/3676-transitioning-away-from-reply-fallbacks.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* incorporate feedback
* consolidate justification
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Fixes#3305Fixes#3380
The idea here is to better distinguish between a 'raw' event (as we send over the wire), and the
'serialised' format, as sent in responses to the C-S api and in `PUT /_matrix/app/v1/transactions/{txnId}`.
It's made more complicated by the fact that there are _two_ serialisation formats, one used by `/sync`
and `/notifications`, and one by everything else (the difference being whether `room_id` is included).
In an ideal world, we wouldn't repeat `SerialisedEvent` every time it's used, and instead just link to the
first reference, but that's a job for another day.
Another job for another day is to get rid of things like `sync_state_event.yaml` (which is now used
only in one place, so should be inlined.)
* Update documentation style & fix room version heading order
Also add a missing signing key section to v6.
This additionally contains various edits to the fragments to have them make a little bit more sense in context.
Finally, this updates various aspects of the documentation style which haven't previously been considered - they're added here considering we're in the area.
* changelog
* enhanced changelogs
* Minor wording adjustments
* Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update several spots where C-S API was still using r0 APIs
Signed-off-by: Aaron Raimist <aaron@raim.ist>
* Add changelog
Signed-off-by: Aaron Raimist <aaron@raim.ist>
Fixes#2237.
Corrects the response schemas for:
```
PUT /user/{user_id}/account_data/{account_dataType}
PUT /user/{user_id}/rooms/{roomId}/account_data/{type}
PUT /directory/list/room/{roomId}
PUT /sendToDevice/{eventType}/{txnId}
POST /account/3pid
POST /account/3pid/add
POST /account/3pid/bind
```
* Room versions 8 and 9: Restricted rooms
MSCs:
* https://github.com/matrix-org/matrix-doc/pull/3083
* https://github.com/matrix-org/matrix-doc/pull/3289
* https://github.com/matrix-org/matrix-doc/pull/3375
* Changelogs
* Capitalization
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
* Remove verbiage for spaces because they don't exist
* Iterations on text
* Another clarification
* Make error code descriptions consistent
* Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Incorporate from merge
* Misc language update per review
* Update accuracy before splitting auth rules
* fix wtf moment
* Fix up v8 and v9 to match "fully specify room versions"
* Scope auth events selection to room version
* Apply consistency
* Add changelogs
* Review part 1
* Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Split out redaction sections
* Clarify general case of join conditions
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* First iteration of specifying Spaces
MSCs:
* https://github.com/matrix-org/matrix-doc/pull/3288
* https://github.com/matrix-org/matrix-doc/pull/2946
* https://github.com/matrix-org/matrix-doc/pull/1772
Note that this makes modifications to the underlying MSCs as well. These are intended to be minor edits to aid clarity/accuracy of the MSCs, as per the proposal process. Functionally, clients and servers might need to change their behaviour slightly as is expected of implementing this stuff early. Synapse has these changes (alongside backwards compatibility) here: https://github.com/matrix-org/synapse/pull/11667
* add changelogs
* Accuracy per review
* Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* fully prefix new endpoints
* Fully prefix endpoint in 3616 too
* Fix ordering example
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Initial cut of MSC to standardize from being optiona on /messages requests.
* Fix typo.
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Clarifications of start/end.
* Add information about back-paginating excluded events.
Co-authored-by: Travis Ralston <travisr@matrix.org>
* initial version of serverside aggregations proposal
* fix MSC numbers
* clarification
* add e2ee section from 2674 here, as it is only needed for server-side aggregations
* move edge case wrt to calling /context on a relation here from 2674
* fix typo
* clarify which APIs should bundle relations
* move stale_events over to future extensions section
* summarize stale_events and make tone conditional to mark that is not part of the MSC
* casing and wording
* clarify in summary an API for requesting relations is also proposed
* remove proposal for batch get event api as is unused and unimplemented
* attempt to clarify relations vs aggregations
* clarify pagination and align it with synapse impl already in the wild
* conciseness
* better headers
* clarify that relations are always returned, contrary to aggregations
* document the limitation of the event type not being known in e2ee rooms
* specify that redacted relations are not aggregated
* remove type in (non-binding) example as synapse doesn't do this
* mention that these are just examples
* clarify that this is a non-normative example
* Update proposals/2675-aggregations-server.md
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
* add http method for endpoint list
* line break
* remove "unbundled relations" term, it's just confusing
instead use relation events,
with the bundled form now called aggregation
also restructure the headings so we have on section about aggregations
and another one about querying relation events
* some more restructuring of text after changing doc structure
* mention original_event for m.replace relations
* remove dir param as it is unused and unimplemented
* clarify that relating pending events should happen by transaction_id
* remove unimplemented /aggregations/{eventID}//{eventType}/{key}
endpoint
* Update proposals/2675-aggregations-server.md
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
* mention that the server might not be aware of all the relations
* clarify that redacted events should still return their relations and aggregations respectively
* remove /context edge case, it should not be special-cased
* Update proposals/2675-aggregations-server.md
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
* Update proposals/2675-aggregations-server.md
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
* Update proposals/2675-aggregations-server.md
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
* bad example, replies doesn't use relations
* clarify that we dont bundle discrete events
* clarify that we dont bundle discrete events, again
* improve example
* clarify this MSC does not use a prefix
* better english
* clarify pagination in example
* better english
* remove contradication: m.reference doesn't support pagination but example mentions it
* double punctuation
* clarify that only the bundled aggregation limit for truncation can't be set by the client, /aggregations does have a limit param
* move e2ee limitation to limitations section
* clarify prefixes
* mention that state events never bundle aggregations
* Update proposals/2675-aggregations-server.md
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
* add that the visibility of relations can derive from that of the target
* typsos
* be more explicit
* moar rewording
* keep related parts together
* don't make a relation invisible because the target event isn't
also clarify what to do with relations for which the target is invisible
* Update proposals/2675-aggregations-server.md
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
* better words
* Update proposals/2675-aggregations-server.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update proposals/2675-aggregations-server.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update proposals/2675-aggregations-server.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update proposals/2675-aggregations-server.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* be more precise when clients should ensure the key is shared
* mention that ignored users can cause different aggregations for users
* move visibility rule changes to MSC3570
* don't overspecify visibility limitation, allow for unspecified behaviour
as synapse includes the invisible events in the aggregation
* Update proposals/2675-aggregations-server.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update proposals/2675-aggregations-server.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update proposals/2675-aggregations-server.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update proposals/2675-aggregations-server.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update proposals/2675-aggregations-server.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* move non-normative note to below example
* make rel_type mandatory as the response structure doesn't allow for mixing types
* fix typo/thinko
* make pagination forward only as there is no use case for backwards
* Update proposals/2675-aggregations-server.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* add non-normative aggregation examples
* Update proposals/2675-aggregations-server.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* use relation type rather than rel_type
the former is already define as the latter in MSC 2674
* change trailing slashes remark to event_type, rel_type is mandatory now
* reword and split out client-side aggregation section
* rename parent event to target event, the term used elsewhere
* apply suggestion
* apply suggestion
* remove pagination
* remove mentions of /aggregations endpoint after removing pagination
* add note about not bundling into state events
* restructure headers so more of the aggregations stuff is under section
* make rel_type mandatory for /relations and better wording
* remove confusion that aggregations contain more info than relations
* Update proposals/2675-aggregations-server.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update proposals/2675-aggregations-server.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* mention that tokens from /sync, /messages can be used on /relations
* try not to be overly prescriptive
* remove edge case of ignoring events without target event, as ignoring is not always safe
* clarify limitation for encrypted rooms
* make rel_type optional again for /relations
* Update proposals/2675-aggregations-server.md
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
* Update proposals/2675-aggregations-server.md
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
* Update proposals/2675-aggregations-server.md
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
* Update proposals/2675-aggregations-server.md
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
* Update proposals/2675-aggregations-server.md
Co-authored-by: Matthew Hodgson <matthew@arasphere.net>
* mention requires auth and rate-limited on /relations
* replace hypothetical examples for bundled aggregations with non-normative ones
* move to MSC 2676 as it's specific to edits
* dont repeat how local echo using transaction_id works
Co-authored-by: Bruno Windels <bruno@windels.cloud>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Matthew Hodgson <matthew@arasphere.net>
Now that we've dropped the old build pipeline (and an assets directory does not exist in the repo any longer, we can rename the hugo version of the assets (assets-hugo) created during the build tools migration back to simply assets.
* Add registration token UIA type
MSC: https://github.com/matrix-org/matrix-doc/pull/3231
**Note**: This introduces the endpoint as v1 rather than r0 given the global versioning changes landed between the acceptance of the MSC and now.
* Fix swagger
* Changelogs
* Update data/api/client-server/registration_tokens.yaml
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
* Fix rendering of response examples
Fixes the autogeneration of JSON examples for array objects. This fixes a
number of "Specification error: Example invalid or not present" errors in the
rendered spec.
* Unbreak examples for non-objects/arrays
The previous change had broken auto-generated examples for everything that
wasn't an object or array; fix it up again.
* Remove conditions on $example
Everything should now have a generated example, so the condition is
redundant. Furthermore it was suppressing examples for APIs where the example
was an empty dict.
* Copy spec PR near-verbatim from past PR
With light review being addressed.
https://github.com/matrix-org/matrix-doc/pull/3168
* Alter for modern day
* Add changelog
* specify that we're using the grammar
* Add HTTP 403 to possible profile responses
Some servers may not allow profile lookup over federation, and thus
respond to GET /_matrix/client/v3/profile/{userId} with an HTTP 403.
For example, Synapse can be configured to behave in this way by setting:
allow_profile_lookup_over_federation=false
Thus, this behavior already exists in the wild, and may cause issues for
clients such as https://github.com/vector-im/element-web/issues/17269.
Synapse could alter its behavior and return an HTTP 404 in these cases,
but amending the Spec seems preferable to align with extant behavior.
Further, allowing HTTP 403 gives clients more specific information as to
why a request has failed, enabling more precise error handling.
Signed-off-by: Dan Callahan <danc@element.io>
* Update changelogs/client_server/newsfragments/3530.clarification
Co-authored-by: Travis Ralston <travpc@gmail.com>
* Annotate misc data about error
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubertc@matrix.org>
Co-authored-by: Travis Ralston <travisr@matrix.org>
Fixes#3465. The change adds a line explicitly warning developers that the base_url of client well_known may or may not include a trailing slash and to be prepared to handle both cases.
* Add a release branch to avoid orphaned commits.
* Specify a patch process.
* Match reality and reference the internal deployment process.
This is largely what we do in practice now, including a created `release/v1.1` branch.
Switch to upstream and use a more recent version.
Fixes failure to edit on empty descriptions.
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>
* MSC3419 - Guest state events
Let guests send state events. Needed for guests to work with native
group voip in #3401
* typo
* Update 3419-guest-state-events.md
incorporate @clokep clarification
* also let guests send non-m.room.message events in general.
* Update proposals/3419-guest-state-events.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update proposals/3419-guest-state-events.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* wordwrap
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
The documentation for the `/notifications` API had its own special definition
of what an Event was, which was used nowhere else.
The common definition isn't perfect, but it *is* common, so it gives us a
better starting place for improvement.
* Clarify that E0 and E1 are not returned
* Clarify that ASCII art diagram 2 refers to diagram 1
* Correct third ASCII art diagram
To match the spacing in. Borked in the move to new docs format.
55aed1d296/specification/client_server_api.rst (L1610-L1615)
* Make ASCII art 3 follow from ASCII art 2
* Explain how to fill the gap
* Create 3543.clarification
* Update content/client-server-api/_index.md
Co-authored-by: Travis Ralston <travisr@matrix.org>
Remove a bunch of fields from the `unsigned` property of PDUs. These things
shouldn't be passed over the Federation API, and they *really* shouldn't be
trusted if they are sent by another server.
* `replaces_state` *is* returned by Synapse, but probably shouldn't
be.
* `redacted_because`, `prev_sender` and `prev_content` are not sent by Synapse.
* initial version of event relationship MSC
* fix MSC numbers
* clarifications
* mention multiple relations per event might be useful, but postpone for a future MSC
* mention MSC 3051 for proposed multiple relations
* remove send_relation endpoint
* move e2ee section under sending relations
* mention limitation of leaving server-side aggregations out for now
* remove mentions of m.reference, we'll sort that out in another MSC
* whitespace
* argument why m.relates_to should be preserved by redactions more general
but still give example of redacted edits
* deal with this in the comments
* clarify the conditions to meet for a relation
* mention specifically that this does not replace replies (yet)
* clarify how general rel_types should be
* clarify that gaps may cause clients to be unaware of some relations
* Update proposals/2674-event-relationships.md
Co-authored-by: DeepBlueV7.X <nicolas.werner@hotmail.de>
* Update proposals/2674-event-relationships.md
Co-authored-by: DeepBlueV7.X <nicolas.werner@hotmail.de>
* make wording clearer and move to bottom of section
* remove this as references are not defined here anymore
* clearer wording
* move edge cases to other relevant mscs
* clarify that a goal of sticking to this format is backwards compat.
* mention MSC 3267, to which m.reference has been extracted
* Update proposals/2674-event-relationships.md
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
* Update proposals/2674-event-relationships.md
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
* Update proposals/2674-event-relationships.md
Co-authored-by: Matthew Hodgson <matthew@arasphere.net>
* Update proposals/2674-event-relationships.md
Co-authored-by: Matthew Hodgson <matthew@arasphere.net>
* Update proposals/2674-event-relationships.md
Co-authored-by: Travis Ralston <travpc@gmail.com>
* wrap lines
* better wording
* this is singular, really
* add example of event shape
* specify how invalid relations should be treated by the redaction algorithm
* fix typo
* split up redactions changes in separate MSC
* also add new msc to introduction
* reword why not adopt m.in_reply_to
* remove guidelines how to pick rel_type
* mention that the target event must exist in the same room
* spell out the conscious (subject, object, verb) triple idea.
* Spelling
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* remove paragraph saying what server should accept
* Revert "remove paragraph saying what server should accept"
This reverts commit e0271331b2e7dee236349aa63eec3cec7369e361.
* further specify that a server should reject invalid relations through the cs api
* linebreak
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Bruno Windels <bruno@windels.cloud>
Co-authored-by: DeepBlueV7.X <nicolas.werner@hotmail.de>
Co-authored-by: Matthew Hodgson <matthew@arasphere.net>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Split the text about event IDs and event formats into separate sections. This
is largely to make it easier to link to, but I think the resulting text makes
more sense too.
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.
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,18 +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/.
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"
Alternatively, use the Docker image at
https://hub.docker.com/r/klakegg/hugo/. (The "extended edition" is required
to process the SCSS.)
2. Run `npm i` to install the dependencies. Note that this will require NodeJS to be installed.
3. Run `npm run get-proposals` to seed proposal data. This is merely for populating the content of the "Spec Change Proposals"
page and is not required.
5. Run `hugo serve` (or `docker run --rm -it -v $(pwd):/src -p 1313:1313
klakegg/hugo serve`) to run a local webserver which builds whenever a file
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
@ -85,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.
Remove unimplemented `m.login.oauth2` and `m.login.token` user-interactive authentication mechanisms as per [MSC2610](https://github.com/matrix-org/matrix-doc/pull/2610) and [MSC2611](https://github.com/matrix-org/matrix-doc/pull/2611).
Document `curve25519-hkdf-sha256` key agreement method for SAS verification, and deprecate old method as per [MSC2630](https://github.com/matrix-org/matrix-doc/pull/2630).
Add `m.key.verification.ready` and `m.key.verification.done` to key verification framework as per [MSC2366](https://github.com/matrix-org/matrix-doc/pull/2366).
Deprecate starting verifications that don't start with `m.key.verification.request` as per [MSC3122](https://github.com/matrix-org/matrix-doc/pull/3122).