* 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>
* 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>
* 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>
* Spaces Summary
* MSC2946
* Clarity
* More clarity
* Clarify what no room data means for clients
* Federation API
* Update 2946-spaces-summary.md
* auto_join filter
* Blurb on auth for fed api
* Update to reflect MSC1772 changes
* Mention auth chain on federation api
* Add 'version' field
* Stripped state; remove room versions
* Update 2946-spaces-summary.md
* Update proposals/2946-spaces-summary.md
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
* Replace with link to draft doc.
* Add a preamble and copy the current draft API.
* Switch to using stable identifiers (and add an unstable identifiers section).
* Updates / clarifications.
* Fix typo.
* Clean-ups.
* Update proposals/2946-spaces-summary.md
Co-authored-by: Travis Ralston <travpc@gmail.com>
* Drop unstable identifiers from MSC1772.
* Various updates and clarifications.
* Include the origin_server_ts in the response, as needed by MSC1772.
* Rename a parameter for clarity.
* Fix typo.
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
* Various clarifications based on feedback.
* Add auth / rate-limiting info.
* Combine some double spaces.
* Use only GET endpoints.
* Add notes about DoS potential.
* Tweaks from review.
* Add context about why stripped events are returned.
* Remove some implementation details.
* Add notes on ordering.
* Remove unnecessary data.
* Clarify the server-server API.
* More clarifications.
* Remove obsolete note.
* Some clarifications to what accessible means.
* Update notes about sorting to include the origin_server_ts of the m.space.child event.
This reverts commit af8c7b04d9f87bb2c4292a549b7db36ae6ef2324.
* Only consider `m.space` rooms and do not return links to nowhere.
* Updates based on MSC3173 merging and updates to MSC3083.
* Updates per MSC2403.
* Remove field which is not part of the C-S API.
* Rewrite the proposal.
* Handle todo comments.
* Update URLs.
* Rename field.
* Updates based on implementation.
* Clarify the state which is persisted.
* Expand notes about errors.
* Update MSC with pagination parameter.
* Fix wrong endpoint.
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
* Clarifications based on implementation.
* Remove empty section.
* Fix typo.
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Rename field in example.
* Clarify error code.
* Clarify ordering changes.
* Clarify wording.
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Fix typos.
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
* Clarify that rooms do not belong to servers.
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
* Fix example to use correct URL.
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
* Clarify using local vs. remote data.
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
* Clarify bits aboud stripped state.
* Clarify access control of federation responses.
* Clarify error code.
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
* Be less prescriptive about expiring data.
* Limit must be non-zero.
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Rate limiting.
Co-authored-by: Travis Ralston <travisr@matrix.org>
* Add a note about room upgrades.
* Update stable URLs per MSC2844.
* Clarify federation return values.
* Clarify `origin_server_ts`.
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
* Tweak wording around `inaccessible_children`.
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <richard@matrix.org>
Co-authored-by: Patrick Cloke <patrickc@matrix.org>
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
* add room type in store invite
* update dev identifier purpose
* Added clarification if type not present, and on email generation
* Update proposals/3288-pass_room_type_in_3pid_invite.md
Co-authored-by: Travis Ralston <travpc@gmail.com>
* Update proposals/3288-pass_room_type_in_3pid_invite.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update proposals/3288-pass_room_type_in_3pid_invite.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update proposals/3288-pass_room_type_in_3pid_invite.md
Co-authored-by: Travis Ralston <travpc@gmail.com>
* Update proposals/3288-pass_room_type_in_3pid_invite.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update proposals/3288-pass_room_type_in_3pid_invite.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Update 3288-pass_room_type_in_3pid_invite.md
fix typo
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Cut/paste room version spec to its own page
* Move grammar to bottom + add feature matrix
The version grammar is not as interesting as the actual room versions, so this moves that whole section to the bottom.
* Fix all links to room versions
As "unstable" changes and "latest" becomes no more, these sorts of links should be updated to reference the approximate section they intended to reference at the time of writing.
This change tries to link up the relevant bits for the time of the proposal, though it's not a perfect match. Some MSCs were brought into the spec before an API version could be assigned to the "old" text, so github permalinks are used instead.
* Refresh tokens MSC
* MSC2918: minor changes
* MSC2918: access token expiration as milliseconds
* MSC2918: account registration API changes
* MSC2918: fix `expires_in_ms` example
* MSC2918: add precision about token revocation
* MSC2918: specify error codes for the refresh API
* MSC2918: clarify that the change also applies to ASes
* Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* MSC2918: clarify what problem this MSC solves
* MSC2918: minor formatting and rephrasing
* MSC2918: clarify ratelimiting, masquerading and authentication on refresh token API
* MSC2918: make expires_in_ms/refresh_token optional
* MSC2918: soft logout in refresh token API
* MSC2918: add detailed rationale
While not exhaustive, it outlines a few attack vectors this MSC tries to
mitigate.
* MSC2918: minor fix
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
* MSC2918: clarifications on backward compatibility
* MSC2918: advertise support in the request body
* MSC2918: clarify on what happen when token expire
* MSC2918: remove redundant precision about token expiration and lifetime
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* MSC2918: minor clarification
* MSC2918: soft logout when using expired token
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
* Proposal for token authenticated registration
Signed-off-by: Callum Brown <callum@calcuode.com>
* Hard-wrap lines
Signed-off-by: Callum Brown <callum@calcuode.com>
* Link to released version of spec
Signed-off-by: Callum Brown <callum@calcuode.com>
* Fix unstable prefix wording
Signed-off-by: Callum Brown <callum@calcuode.com>
* Tokens should only be invalidated after registration
Signed-off-by: Callum Brown <callum@calcuode.com>
* Change auth type to m.login.registration_token
This is consistent with the other UIAA auth types, and does not suggest
that other `m.login.*` types cannot be used for registration.
Signed-off-by: Callum Brown <callum@calcuode.com>
* Add proposal for checking the validity of a token
Signed-off-by: Callum Brown <callum@calcuode.com>
* Fix validity checking endpoint
Signed-off-by: Callum Brown <callum@calcuode.com>
* Limit allowed characters and length of token
This allows tokens to be used easily in query parameters
Signed-off-by: Callum Brown <callum@calcuode.com>
* Give reason for limiting token length and chars
Signed-off-by: Callum Brown <callum@calcuode.com>
* Note all stages must be complete for registration
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
* Fix mistake in MSC number
Signed-off-by: Callum Brown <callum@calcuode.com>
* Validity checking should be rate limited
Signed-off-by: Callum Brown <callum@calcuode.com>
* Change v1 to r0
Signed-off-by: Callum Brown <callum@calcuode.com>
* Include `.` and `~` in allowed characters for registration tokens
For consistency with the unreserved URL characters in RFC3986
https://www.ietf.org/rfc/rfc3986.html#section-2.3
Co-authored-by: Richard van der Hoff <1389908+richvdh@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>