* Part 1: Invites
* Part 2: Knocks
* Use correct schema and examples; Remind readers often about formats
* changelogs
* Add schema warning
* Name the objects
* Move changed-in and expand upon it
* Rename the example
* address review feedback
* Placeholder
* i++
* Room version 12
Template out a v12 room version
Make v12 default, per MSC4304
Update PDU checks and auth event selection per MSC4291
Describe new room_id format per MSC4291
Move v6 depth definition to a component for easier referencing
Move room_id to a component to prep for v12, per MSC4291
Create and use a new room_id component for v12+ per MSC4291
Reflect auth events selection change onto all room versions per MSC4291
The MSC asks the `description` of `auth_events` to be adjusted, however this feels like a better representation of the change.
Add `room_id` format rules and renumber per MSC4291
Reflect change to rule 1.2 per MSC4291
Insert same room_id check to v1-12 auth rules per MSC4307 and MSC4291
Deprecate `predecessor.event_id` per MSC4291
Insert auth rule to validate `additional_creators` per MSC4289
Insert rule for `users` validation of creators and renumber per MSC4289
Define "room creator(s)" per MSC4289
Spec `additional_creators` on create events per MSC4289
Spec `additional_creators` on `/upgrade` per MSC4289
The MSC doesn't mention how to handle unsupported room versions, but the Synapse implementation used for FCP ignores the field in such room versions. This feels like a good approach, and will need clarifying in the MSC too (if accepted at the spec level).
Add notes to `/upgrade` behaviour per MSC4289 and MSC4291
Describe how additional creators work during room creation per MSC4289
Fix default user power level descriptions per MSC4289
Describe tombstone power level changes per MSC4289
Warn clients about event format changes in v12 per MSC4289 and MSC4291
Flag additional room creators support for client reference per MSC4289
Remove TODO now that it's fully addressed
Copy state res into v12 as-is for modification
Apply Modification 1 to SR2.1 per MSC4297
Apply Modification 2 to SR2.1 per MSC4297
Add summary box to the top of SR2.1 for ease of developer reference
Modification 2 was split into items 2 and 3 for further ease of understanding.
Add all the changelogs
`x` is used until a real PR number can be assigned.
Some changelogs are duplicated to the Client-Server API to increase visibility of the changes to v12.
Review: Minor phrasing adjustments in changelogs
Review: Clarify that v12 isn't quite the default yet in the changelog
Review: Clarify to clients that creators are immutable
Review: Improve 'how to parse a domain' advice for legacy apps
Review: Add a bit more detail as to why a room ID might be required
Apply suggestions from code review
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
Clarify that clients can override the tombstone default
Mention creatorship UI label by finishing the Permissions section
We probably should have removed the WIP note in v1.0, but alas.
Add changelog for tombstone changes
Use assigned spec PR number in changelogs
(cherry picked from commit ec81eea7e4532fd398b8013071d6981c97117d9e)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
Co-authored-by: Kim Brose <2803622+HarHarLinks@users.noreply.github.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
... as this may be non-obvious when implementing behaviour that is triggered by an incoming invite
event.
See https://github.com/matrix-org/matrix-spec/issues/2062 for more context.
Co-authored-by: Kévin Commaille <76261501+zecakeh@users.noreply.github.com>
We used to only look for examples in a few (sometimes arbitrary) places, and we didn't support showing several examples in most cases. This is intended to fix this. In the process we try to deduplicate code to make sure that we use the same logic everywhere.
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
First of all, all PDU definitions were based on the v1 PDU definition with a few fields overwritten to change the format with needed.
While that works when rendering the spec, this is semantically incorrect because it means that the objects must match both schemas, which is impossible.
So now we make a base with only the common fields, and we add the others as needed by the room version.
Note that there is no more "unsigned PDU" definition since it is not used directly, and hashes and signatures are the same across all versions.
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
* Remove the `origin` field on PUT /send_join responses
This is a spec bug as it has actually never been sent by Synapse, going back to 2014.
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
* Add changelog
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
---------
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
* 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
* 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>
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.
* 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>
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>