* C2S: Deprecate now-legacy endpoints
* C2S: Fix MXC URI code block while we're here
* C2S: Describe the authentication and deprecation requirements
* C2S: Intro the upload/download endpoints differently
* C2S: Literally copy/paste the `content-repo.yaml` spec
* C2S: Drop `/upload` and `/create` because we aren't replacing them today
* C2S: Fix notes while we're here
* C2S: Update metadata for new endpoints
* C2S: Add authentication to new endpoints
* C2S: Drop `allow_remote` and `allow_redirect` on new endpoints
* C2S: Append backwards compatibility notes
* C2S: Decorate old media endpoints with pointers to the new ones
The server-server spec might have a harder time linking to these, but that can be fixed with verbiage.
* C2S: Annotate IdP icon spec with media auth implications
* S2S: Modernize section text
* S2S: Create content repository API
This is largely a copy/paste of the new authed content repo API in the Client-Server API, though some keywords (like "client") have been changed. Paths and response formats have also been changed to support the federation-specific requirements.
* C2S & S2S: Add plethora of changelogs
* Reference RFC 1341
* Upgrade keywords in changed text
* Mention caching
* Cross-reference IdP icons
* Update content/client-server-api/modules/content_repo.md
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>
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.
* 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>
* 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
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.
... 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>
* 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>
* 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>