Compare commits

...

4617 Commits

Author SHA1 Message Date
Richard van der Hoff 712dd41e4f
MSC4115: membership information on events (#4115)
* Proposal for membership information on events

* unstable prefix

* typo

* Update proposals/4115-membership-on-events.md

Co-authored-by: Matthew Hodgson <matthew@matrix.org>

* Update MSC4115

 * Make the new property *optional*.
 * Describe linear-DAG situation.
 * Mention client-side calculation as an alternative.

* spleling

* Return state *after* the event

This is much easier to calculate in Synapse.

* Clarificatoins to scope of MSC

* List of endpoints is incomplete

* RFC2119 keywords

* Remove non-issue potential issue

* Expand on why doing it client side doesn't work

* Update proposals/4115-membership-on-events.md

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>

* Update proposals/4115-membership-on-events.md

* Update proposals/4115-membership-on-events.md

* fix formatting

---------

Co-authored-by: Matthew Hodgson <matthew@matrix.org>
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
5 days ago
Hugh Nimmo-Smith b9cdd782b9
MSC3967: Do not require UIA when first uploading cross signing keys (#3967)
* Placeholder

* MSC3967: Do not require UIA when first uploading cross signing keys

* Lint length

* Apply suggestions from code review

Co-authored-by: Denis Kasak <dkasak@termina.org.uk>

* Suggestion from review

* Issue with Synapse compliance is being tracked elsewhere

* Line length

* Update 3967-device-signing-upload-uia.md

* Update proposals/3967-device-signing-upload-uia.md

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update 3967-device-signing-upload-uia.md

* Update 3967-device-signing-upload-uia.md

* Update 3967-device-signing-upload-uia.md

* Update proposals/3967-device-signing-upload-uia.md

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update 3967-device-signing-upload-uia.md

* Update 3967-device-signing-upload-uia.md

* Update proposals/3967-device-signing-upload-uia.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

---------

Co-authored-by: Denis Kasak <dkasak@termina.org.uk>
Co-authored-by: kegsay <7190048+kegsay@users.noreply.github.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
3 weeks ago
Doug 2534644dec
MSC4132: Deprecate Linking to an Event Against a Room Alias (#4132)
* Deprecate Linking to an Event Against a Room Alias

* Pin the spec links

Co-authored-by: Travis Ralston <travpc@gmail.com>

* Address feedback.

* Address comments about via and the URIs that should be used.

* Rewording.

---------

Co-authored-by: Travis Ralston <travpc@gmail.com>
4 weeks ago
Brendan Abolivier 8eb75fe64a
MSC3939: Account locking (#3939)
* MSCXXXX: Account locking

* MSC number

* Switch to 401 + soft_lougout

* FCP updates/clarity

* Mention appeals/information

* v1.10

* Clarify why not 403

* Update proposals/3939-account-locking.md

Co-authored-by: David Baker <dbkr@users.noreply.github.com>

* Clarify UI expectations

* Update proposals/3939-account-locking.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3939-account-locking.md

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>

* Update proposals/3939-account-locking.md

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>

---------

Co-authored-by: Mathieu Velten <mathieuv@matrix.org>
Co-authored-by: Travis Ralston <travisr@matrix.org>
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: Hubert Chathi <hubert@uhoreg.ca>
4 weeks ago
Kévin Commaille d6edcbd946
Upgrade typos CI action (#4135) 1 month ago
Travis Ralston 72e694ba0b
MSC4126: Deprecation of query string auth (#4126)
* MSC: Deprecation of query string auth

* Update proposals/4126-deprecate-query-string-auth.md

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>
2 months ago
Travis Ralston 2daf5b3c35 Spelling 2 months ago
Travis Ralston 781ab5dc18 MSC2870: Protect server ACLs from redaction (#2870)
* Protect server ACLs from redaction

* Update proposals/2870-protect-acls-from-redaction.md

* Incorporate clarifying review
2 months ago
Hubert Chathi ba00632b3a MSC2191: Markup for mathematical messages (#2191)
* add proposal for using LaTeX for maths display

* rename to match MSC number

* change title

* update based on feedback

* up to clients how to deal with potentially-dangerous commands

* fix typo

Co-authored-by: Travis Ralston <travpc@gmail.com>

* small typo fix

---------

Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2 months ago
Travis Ralston 03cc2087a5 MSC1692: Terms of service at registration (#1692)
* Terms of service API proposal

* Alter structures to support multiple languages

This also introduces an ID for clients to internally reference the policies.

* Alter the login process to reflect login's lack of UI auth

* Add a note about MSC2140

* Add a flag to the sync response to indicate the sync is withheld

* Use the soft logout MSC

* Fix headings

* Move non-registration bits out

* Reference MSC3012

* Adjust wording for new scope

* Rewrite to newer modern standards; address feedback from last FCP

* Update proposals/1692-terms-at-registration.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update references

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 months ago
Hugh Nimmo-Smith 1a82fca4eb
Upgrade actions/checkout to v4 (#4122)
This eliminates reported by Action runs:

> **Spell Check with Typos**
> Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
2 months ago
Richard van der Hoff 8c818a271c
MSC4041: add missing paren (#4118) 3 months ago
Patrick Cloke 15e87d5b9c
MSC4010: Push rules and account data (#4010)
* Clarify how m.push_rules works with account_data.

* Typo fix.

* Fix typo.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Add info on MSC3391.

* Clarify potential issues.

* Clarify returned value

* Fix typo.

Co-authored-by: David Vo <auscompgeek@users.noreply.github.com>

* Add information on Conduit.

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>

* More consistent wording.

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: David Vo <auscompgeek@users.noreply.github.com>
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
3 months ago
Travis Ralston 1da8babace
MSC4077: Improved process for handling deprecated HTML features (#4077)
* MSC: Improved process for handling deprecated HTML features

* <3 spellcheck

* Apply suggestions from code review

Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>

---------

Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
3 months ago
Travis Ralston 676939659c Fix comments from review & trim trailing spaces 4 months ago
kegsay 94de0bde0f
Clarify that invite->knock is not legal. (#4091)
Reverts https://github.com/matrix-org/matrix-spec-proposals/pull/3850
4 months ago
Tulir Asokan ef5baec8a4 MSC2530: Body field as media caption (#2530)
* Proposal to use body field as media caption

* Add paragraph about relation-based captions being difficult for bridges

* Clarify how to treat body when filename is not present

* Refactor proposal text

* Fix heading size

* Add problem statement

* Add links to and quotes from current spec

* Adjust wording and quote m.audio body spec

* Clarify that m.location and m.sticker are out of scope for this proposal

* Add examples and summary of changes

* Fix JSON syntax in example
4 months ago
Travis Ralston 9eaf81f715 home server -> homeserver
https://github.com/matrix-org/matrix-spec-proposals/pull/4041#discussion_r1480455030
4 months ago
Thomas Halwax 555b5d76d9
MSC4041: http header Retry-After for http code 429 (#4041)
* http header Retry-After for http code 429

* MSC id

* Update proposals/4041-retry-after-header-rate-limiting.md

Thanks for the advice! What a stupid mistake!

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>

* notes on backward compatibility

* fixes https://github.com/matrix-org/matrix-spec-proposals/pull/4041#discussion_r1299385626

* fixed typos

* made calculation of the Retry-After header value less explicit

* Update proposals/4041-retry-after-header-rate-limiting.md

Co-authored-by: Will Hunt <will@half-shot.uk>

* retry_after_ms gets deprecated

* explicit advice for server and client

* * moved deprecation into proposal
* made Retry-After is a delay

---------

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
Co-authored-by: Will Hunt <will@half-shot.uk>
4 months ago
Travis Ralston 1c38196798 MSC2705: Animated thumbnails for media (#2705)
* Proposal to support animated thumbnails

* add implementation note

* Apply suggestions from code review

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>

* Clean up the MSC

* Appease the keepers of mimetypes

---------

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
4 months ago
Janne Mareike Koschinski 4b00da27a1
MSC3981: `/relations` recursion (#3981)
* Initial Draft for MSC 3981: /relations recursion

Signed-off-by: Janne Mareike Koschinski <jannemk@element.io>

* fix accidentally copy-pasted title

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Remove unnecessarily specific sentence

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>

* Add warning to avoid unlimited recursion

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>

* Clean-up links in MSC

* Apply reviewer suggestions

* More clarifications on examples

* Address feedback on formatting

Signed-off-by: Janne Mareike Koschinski <janne.koschinski@matrix.org>

* Address feedback on linking related specs

Signed-off-by: Janne Mareike Koschinski <janne.koschinski@matrix.org>

* Rephrase technical definition of the parameter

Signed-off-by: Janne Mareike Koschinski <janne.koschinski@matrix.org>

* Correct mistake in examples

Signed-off-by: Janne Mareike Koschinski <janne.koschinski@matrix.org>

* Rephrase paragraph on O(n+1) issue

Signed-off-by: Janne Mareike Koschinski <janne.koschinski@matrix.org>

* fix: correct mixup between event type and rel type

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>

* feat: add clarification for why this was needed

Signed-off-by: Janne Mareike Koschinski <janne.koschinski@matrix.org>

* feat: add clarification for how it affects intermediate events

Signed-off-by: Janne Mareike Koschinski <janne.koschinski@matrix.org>

* feat: add clarification for how it affects intermediate events

Signed-off-by: Janne Mareike Koschinski <janne.koschinski@matrix.org>

* Add /version unstable feature flag

* feat: improve phrasing of unstable prefix section

Signed-off-by: Janne Mareike Koschinski <janne.koschinski@matrix.org>

* feat: add clarification for how clients can make use of this

Signed-off-by: Janne Mareike Koschinski <janne.koschinski@matrix.org>

* Clarify unstable features map

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Attempt at resolving the discussion threads for 3981.

Largely removes the talk about topological vs chronological ordering as I
don't really see what it was trying to express either, other than the fact
that a client fetching relations by recursing manually would give no ordering
information, which is what I've reduced it to.

* Add note that security is discussed elsewhere.

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Add recursion_depth response parameter.

* Note that recursion_depth is sent un-prefixed.

* Add summary of security discussions

---------

Signed-off-by: Janne Mareike Koschinski <jannemk@element.io>
Signed-off-by: Janne Mareike Koschinski <janne.koschinski@matrix.org>
Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Michael Weimann <michaelw@element.io>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
4 months ago
Travis Ralston c015c5bb56 MSC2701: Clarifying `Content-Type` usage in the media repo (#2701)
* Proposal to clarify how Content-Type works with media

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Modernize wording

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
4 months ago
Travis Ralston 209a99a658 MSC2702: Specifying semantics for Content-Disposition on media (#2702)
* Proposal to introduce sane Content-Disposition semantics

* Update proposals/2702-media-content-disposition.md

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Update for the year 2023

* Clarify thumbnails receiving Content-Disposition header

* Clarify layering

* Update proposals/2702-media-content-disposition.md

Co-authored-by: David Baker <dbkr@users.noreply.github.com>

* Fix wording

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Clarify wording

* Add clarifying words

* Adjust security section

---------

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
4 months ago
Denis Kasak fe587a7d33
Stop typos from correcting the "OT" in "OTK". (#4093) 5 months ago
Lilith Orion Hafner abe7045be7
fix typo in readme (#4087)
Signed-off-by: Lilith Orion Hafner <lilithhafner@gmail.com>
5 months ago
Travis Ralston 902caeaf2b
Fix MSC3930's unstable prefix references (#4082) 6 months ago
Travis Ralston e5eb721d37
MSC3381: Polls (mk II) (#3381)
* Polls (mk II)

* m.poll.start

* m.poll.* types

* Allow multiple selections

* Give moderators access to closing polls

* Mention freeform edits

* Mention how edits are a security issue

* Enforce minimum and maximum length

* Rename open and secret

* Mention message pinning

* Update unstable definition for polls

* Rework responses into aggregations/annotations

* Note how answer IDs should be unique

* Mention MSC3523

* Revert change to annotations

* Mention how to handle invalid closure events

* Only count the first closure

* Add push rules

* spelling

* Clarify the extensible events structure

* Fix wording of answer handling in start event

* Clarify how the push rules work, and add one for ending polls

* WIP rewrite of polls to consider content blocks system

* Finish the polls rewrite

* Remove notifications

* Update links and MSC1767 behaviour

* Remove excess artifact

* Note UISI problems in potential issues section

* Note why MSC3523 is a bad idea

* Update proposals/3381-polls.md

Co-authored-by: Maxime NATUREL <46314705+mnaturel@users.noreply.github.com>

* Update MSC

* Update proposals/3381-polls.md

Co-authored-by: Kévin Commaille <76261501+zecakeh@users.noreply.github.com>

* Typo: event layering

* Minor clarifications from non-blocking review feedback

---------

Co-authored-by: Maxime NATUREL <46314705+mnaturel@users.noreply.github.com>
Co-authored-by: Kévin Commaille <76261501+zecakeh@users.noreply.github.com>
6 months ago
Will Hunt d4df1d9d43
MSC1929: Homeserver Admin Contact and Support page (#1929)
* Create 1929-admin-contact.md

* Update 1929-admin-contact.md

* recommended

* clarify backup contact address

* Update 1929-admin-contact.md

* s/mxid/matrix_id/

* s/email/email_address/

* Update proposals/1929-admin-contact.md

Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>

* Cleanup

* Clarify hostname in endpoint definition.

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>

* Fix contact formatting

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update admins -> contacts

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Mark that role is required and namespaced.

* Use `m.` prefix

* Apply suggestions from code review

---------

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
Co-authored-by: Travis Ralston <travisr@matrix.org>
6 months ago
Andrew Morgan cf3f0d58be
Add an "MSC Checklist" document and link to it from various places (#4061) 8 months ago
Aminda Suomalainen 4623228eef
add simple .editorconfig (#4054)
Signed-off-by: Aminda Suomalainen <suomalainen+git@mikaela.info>
9 months ago
Shay 294b051579
MSC4026: Allow `/versions` to optionally accept authentication (#4026) 9 months ago
Travis Ralston 2a73041f06
MSC3930: Polls push rules/notifications (#3930)
* Split poll notifications out to their own MSC

* Assign number

* Update proposals/3930-polls-notifications.md

* Change sync behaviour; Add links; Account for room versions

* spelling

* Update proposals/3930-polls-notifications.md

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Clarity around rule order

* spelling

* Use modern push rule practices

* More using of modern push rule practices

---------

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
10 months ago
Travis Ralston 02682041b3
MSC4040: Update SRV service name to IANA registration (#4040)
* Update SRV service name to IANA registation

* rrrrrrrrrr

* Clarify step 3 changes

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Fix security considerations

* Update SRV steps per https://github.com/matrix-org/matrix-spec/pull/1615

---------

Co-authored-by: Hubert Chathi <hubertc@matrix.org>
10 months ago
Hubert Chathi 6a3ab1d64c MSC3061: Sharing room keys for past messages (#3061)
* initial version

* use MSC number

* address comments from review

* fix list

* fix markdown

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>
10 months ago
Patrick Cloke 43c374e361
MSC3958: Suppress notifications from message edits (#3958)
* Suppress message edits.

* Fix typo.

Co-authored-by: Sumner Evans <me@sumnerevans.com>

* Add @room.

* Match MSC title to PR.

* Add a potential issue.

* Clarify rule placement.

* Change link text.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Fix typo.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Add a note about mobile clients.

* Update from anoa's feedback.

* Updates for Matrix 1.7

* Update more spec links.

* Minor clarifications.

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Add downside about "all messages"

* Clarify again that this *does* work with all messages.

---------

Co-authored-by: Sumner Evans <me@sumnerevans.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
10 months ago
Šimon Brandner 7ad992abe5 MSC3291: Muting in VoIP calls (#3291)
* MSC: Muting in VoIP calls

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Update MSC number

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Missing :

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Fix MSC number in prefix

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Fix unstable prefix table

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Reword pottential issues

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Add an Alternatives section

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Remove trailing comma

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Fix a typo

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Fix missing word

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Link to MSC for holding

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Update unstable prefixes

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Simplify things

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Be explicit about deps

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Be clearer about how things work

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Update proposals/3291-muting.md

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* `disabled` -> `enabled`

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Fix client mention

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Improve explaination

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Be more precise

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Fix negation

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Don't refer to something that doesn't exist

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

---------

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.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>
10 months ago
Andrew Morgan f7b3903e3b
Clarify how to make use of unstable prefixes in your MSC (#4024)
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
11 months ago
Travis Ralston 0c09204d10
Local user erasure requests (#4025) 11 months ago
Travis Ralston ac57d94151
MSC3820: Room version 11 (#3820)
* Room version 11 rough cut

* Cut a different set of MSCs

* v10 is specified
12 months ago
Šimon Brandner 641faf2e5d MSC3077: Support for multi-stream VoIP (#3077)
* Draft of multi-stream MSC

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Remove unnecessary article and don't use CamelCase

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Fix naming and MSC number

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Make it prefixy

Co-authored-by: Tulir Asokan <tulir@maunium.net>

* Be more descriptive about keys

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Add more info about usermedia and screenshare

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Simplifie backwards compatibility

I would be tempted to skip the capability advertisement for this and just say that the absence of stream metadata means clients just take the first or whatever MSC2746 says. I can't think of anything the capability advertisement caters for specifically? - Dave

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Reword parts of backwards compatibility section

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Improve explanation of backwards compatibility

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Add missing spaces to unstable perifix table

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Remove support for stream-replacement

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Apply suggestions from code review

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Fix concerns

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Link to specific spec version

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Be more readable

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Clarify

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Don't ref non-existing thing

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Remove confusing words

---------

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
Co-authored-by: Tulir Asokan <tulir@maunium.net>
Co-authored-by: David Baker <dbkr@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>
12 months ago
Travis Ralston 08b3b62e03
MSC3821: Update the redaction rules, again (#3821)
* Start an MSC2176 2.0

* Remove scary warning about unstable implementation

* Update spec links

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Rewrite words into order that sense make

* Update intro & unstable prefix history

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
12 months ago
Travis Ralston bab39e28ce
MSC3989: Redact `origin` property on events (#3989)
* Redact `origin` field on events

* Provide context and remove hunt for more useless fields

* spelling: actually

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Slight wording alterations

* Property

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
12 months ago
Patrick Cloke 9466833900
MSC4009: Expanding the Matrix ID grammar to enable E.164 IDs (#4009)
* E.164 Matrix IDs.

* Fix typo.

* small typo fixes

* Expand examples.

Another reasonable way around this is to use a prefix,
instead of character mapping.

The downsides are essentially the same.

* Updates from feedback.

* Fix typos.

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Add note about re-using IDs.

---------

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubertc@matrix.org>
12 months ago
Nick Mills-Barrett a3778b3f82
MSC3860: Media Download Redirects (#3860)
* Add media download redirect proposal

* Add urls

* Rename

* Wrap content

* Add note about MSC proposal and implementation work

* Add missing sections to MSC

* Rework to be opt-in via query param

* Fix typos

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Clarify security considerations

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Clarify that unstable prefix should be used

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Add 308 status code for redirects

Co-authored-by: Travis Ralston <travpc@gmail.com>

* Add clarification about no/false redirect param

* Add link to current spec media endpoints

* Add note about additional benefit of not proxying untrusted homeserver media

* Expand issues section to cover possible homeserver abuse

* fix a typo

---------

Signed-off-by: Sumner Evans <sumner@beeper.com>
Co-authored-by: Sumner Evans <sumner@beeper.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
1 year ago
Tulir Asokan 3fb2a604e4
MSC2659: Application service ping endpoint (#2659)
* Proposal for an application service ping endpoint

Signed-off-by: Tulir Asokan <tulir@maunium.net>

* Apply suggestions from code review

Co-authored-by: Travis Ralston <travpc@gmail.com>

* Change unstable prefix and add appserviceId parameter to path

Signed-off-by: Tulir Asokan <tulir@maunium.net>

* Redo MSC to use dedicated endpoint

Signed-off-by: Tulir Asokan <tulir@maunium.net>

* Re-add appservice ID path parameter and txn ID body field

* Add some alternatives

* Fix path in unstable prefix

* Add some optional extra behavior to endpoints

* Specify transaction_id type and mention it in both endpoints

* Add note about homeservers not calling ping randomly

* Make it more explicit which request duration is being measured

* Add example of full ping flow

* Fix markdown list

* Add /versions endpoint under alternatives

* Add MSC number to title

Co-authored-by: Travis Ralston <travpc@gmail.com>

* Rename duration field

* Document unstable_features flags

---------

Signed-off-by: Tulir Asokan <tulir@maunium.net>
Co-authored-by: Travis Ralston <travpc@gmail.com>
1 year ago
Will Hunt 126ca8589b MSC2249: Require users to have visibility on an event when submitting reports (#2249)
* Add MSC2247

* 2247 -> 2249

* Fill out MSC some more

* Remove proposal

* add "with"

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>

* Update MSC to M_NOT_FOUND

---------

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
Co-authored-by: Travis Ralston <travisr@matrix.org>
1 year ago
Hugh Nimmo-Smith ff99748dc2
MSC3882: Allow an existing session to sign in a new session (#3882)
* Allow an existing session to sign in a new session

* MSC3882

* Line length

* Resolve TODOs

* Document unstable prefixes

* Add docs on data returned by request

* Reference to MSC3906

* Incorporate review feedback

* Apply suggestions from code review

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Add note on rate limiting

* Revision 1 of proposal

- /_matrix/client/v3/login/token => /_matrix/client/v1/login/get_token
- expires_in => expires_in_ms
- Security clarifications

* Update proposals/3882-login-token-request.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Refer to spec about not requiring auth

* Expose availability via capabilities

* Update proposals/3882-login-token-request.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Use GET /login when unauthenticated

* Apply suggestions from code review

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.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: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
1 year ago
Andrew Morgan 2c4de1a169
Update max line width for proposals to 120 characters (#4008) 1 year ago
David Baker adb11d6e1d
Fix typos in MSC2746. (#4007)
This was causing the spell checker to fail on every other proposal.
1 year ago
Andrew Morgan aa06d461fb Fix typos in MSC2746 to appease spellcheck ci 1 year ago
David Baker ea715b7a3f MSC2746: Improved VoIP Signalling (#2746) 1 year ago
Patrick Cloke 564638f4cf
MSC3987: Push actions clean-up (#3987) 1 year ago
Patrick Cloke 8b6e2afcea
MSC3952: Intentional Mentions (#3952) 1 year ago
Richard van der Hoff 0907871400
fix spelling error 1 year ago
Tulir Asokan 8962f0a383 MSC2246: Asynchronous media uploads (#2246)
* Proposal for asynchronous media uploads

Signed-off-by: Tulir Asokan <tulir@maunium.net>

* Add security consideration and mention possible /create request body

Signed-off-by: Tulir Asokan <tulir@maunium.net>

* Expand on security consideration

* Change error code for existing media PUT

Co-Authored-By: Travis Ralston <travpc@gmail.com>

* Add spam prevention error, example response and auth requirements

* Add query parameters to control downloading

* Rename max_stall to max_stall_ms

* Specify /create request body content

* Update links, versions and prefixes

* Add recommended maximum delay for starting upload

* Explicitly deny uploading to other users' media IDs

* Prevent spam by ratelimiting instead of limiting number of IDs

* Remove streaming requirement

It's complicated

* Add unstable prefixes for new error codes

* Add missing words

* Change /create endpoint to use v1

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Reorganize /upload spec and integrate feedback

* Explicitly specify that M_NOT_FOUND should be used for expired media
* Explicitly specify that M_FORBIDDEN should be used when a user other
  than the one who created the media ID tries to upload to it
* Remove content-length failure note

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Rename max_stall_ms -> timeout_ms

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Mention that maximum value for timeout_ms should be imposed by the server

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Mention that the timeout_ms can be ignored if the media exists already

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Change M_NOT_YET_UPLOADED to use 504 status code

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Remove retry_after_ms optional field

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Make unused_expires_at the deadline for the upload to complete rather than start

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Add notes about suggested rate-limiting techniques

Namely, allowing a limited number of concurrent uploads

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Recommend 24 hours instead of 1 minute

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Clarify that rate limiting can apply on /create and /upload

Signed-off-by: Sumner Evans <sumner@beeper.com>

* Clarify that unused_expires_at is a POSIX millisecond timestamp

Signed-off-by: Sumner Evans <sumner@beeper.com>

---------

Signed-off-by: Tulir Asokan <tulir@maunium.net>
Signed-off-by: Sumner Evans <sumner@beeper.com>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Sumner Evans <sumner@beeper.com>
1 year ago
Hugh Nimmo-Smith 7975ae8634
MSC3970: Scope transaction IDs to devices (#3970)
* MSC3970: Scope transaction IDs to devices

* Line length

* Correction to claims from Synapse

* 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>

* Update proposals/3970-device-scope-txnid.md

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Make section on recommended transaction ID format make sense

* Make it clearer in the intro section what the problem is

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubertc@matrix.org>
1 year ago
Patrick Cloke bf8a50c93e
MSC3980: Dotted Field Consistency (#3980)
* MSC for consistency between push rules and filters.

* Update proposals/3980-dotted-fields-consistency.md

Co-authored-by: Travis Ralston <travisr@matrix.org>

---------

Co-authored-by: Travis Ralston <travisr@matrix.org>
1 year ago
Travis Ralston 71cd257460 Spelling 1 year ago
Hubert Chathi e51a61a2eb MSC2677: Annotations and reactions (#2677)
* initial version of reactions proposal

* fix MSC numbers

* add security consideration

* remove event type from aggregation grouping criteria because of e2ee

* Apply suggestions from code review

Co-authored-by: David Baker <dbkr@users.noreply.github.com>

* Update intro and add background

* Corrections and clarifications to the main text

In particular: we *do* aggregate based on event `type` as well as key.

* Clarify counting rules and interactions with edits

* Error code for deduplicating annotations

* Clarify eligible target events

* Notes on encryption

* Clarify variation-16

* Update 2677-reactions.md

* No server-side aggregation for reactions

---------

Co-authored-by: Bruno Windels <bruno@windels.cloud>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <richard@matrix.org>
1 year ago
Travis Ralston 5a310fbf1a
MSC3923: Bringing Matrix into the IETF process (#3923)
* First cut of an MSC+IETF spec process

* Rewrite for process considerations

* Update links

* Don't forget affected MSCs

* Apply suggestions from code review

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Clarify what kind of server-specific behaviour is trapped in the CS API

---------

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
1 year ago
Travis Ralston 4881ab5410
Add mention of private sign off to contributing guidelines (#3976)
also fix headings because I can never remember what the next symbol is when using the underline syntax
1 year ago
Travis Ralston c8688eccd9
Fix typo in example of MSC3758 (#3974) 1 year ago
Patrick Cloke d0b48b9ec9
MSC3966: `event_property_contains` push rule condition (#3966)
* Add proposal for exact_event_property_contains push condition.

* Fix incorrect word.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Fix broken link.

* Fix typo.

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Update condition name.

---------

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubertc@matrix.org>
1 year ago
Johannes Marbach 618d34b793
MSC3873: event_match dotted keys (#3873)
* Add proposal

* Insert MSC number

* Fix spelling

* Clarifications & remove backwards compatibility.

* Mention how this blocks features.

* Fix typos.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Clarify tense.

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>

---------

Co-authored-by: Patrick Cloke <patrickc@matrix.org>
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: Alexey Rusakov <Kitsune-Ral@users.sf.net>
1 year ago
Nick Mills-Barrett cde17d4548
MSC3758: Add `event_property_is` push rule condition kind (#3758)
* Create xxxx-expand-push-rule-conditions.md

* Rename to proper MSC number

* Add PR number to title & wrap

* Remove list matching part of MSC3758, will propose in a new MSC

* Link through to the spec for current match type

* Switch to `value` instead of `pattern` for match key

* Expand missing sections

* Fix typo.

* Clarifications from review.

* Update title in MSC to match PR.

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>

* Update the name of the push rule condition.

---------

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
1 year ago
Travis Ralston 6b2e763f5b spelling 1 year ago
Matthew Hodgson 01654eb2de MSC1767: Extensible event types & fallback in Matrix (v2) (#1767)
* first cut of MSC1767 for extensible events (replaces MSC1225)

* tabs->spaces

* fix markdown

* fix markdown

* GFM needs two spaces after ##?

* delta from msc1225

* 2021 refresh

* Refactor to be just text messaging + schema

* Update MSC numbers

* Touchups for FCP

* *ahem*

* Rewrite MSC to be understandable?

* Update proposals/1767-extensible-events.md

* Rewrite MSC, again

* Clarify Andy's blog state

* Relax m.markup's requirements

* Misc clarifications

* Revert "Relax m.markup's requirements"

This reverts commit 5f15b9f552.

* Clarify push rules handling

* Fix example

* Update extensible events MSCs list

* Update Andy's blog post reference

* Update per review feedback

* Move emotes, notices, and encryption out to dedicated MSCs
* Clarify text throughout

* Cover all the bases

* Clarify mixins are exactly what they're assumed to be

* Clarify fallback and number of datums per event

* Fix description of plain text baseline

* Clarify SCT's role in feature scope & cut "mixed" events (not mixins)

* Fix description of mixins

* Update proposals/1767-extensible-events.md

Co-authored-by: David Baker <dbkr@users.noreply.github.com>

* Expand on how unknown events are handled

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Trim line length post-suggestions

* Mention that extensible events might appear in other room versions early

* Remove duplicated unknown parse order being an implementation detail

* Note difference between optional content blocks and mixins

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/1767-extensible-events.md

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>

* Clarify that clients are still strongly encouraged to validate HTML

* Fix mention of mixing legacy event types

* Update proposals/1767-extensible-events.md

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Link to MSC3765

* Rename `m.markup` to `m.text`

---------

Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
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: Alexey Rusakov <Kitsune-Ral@users.sf.net>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
1 year ago
benkuly 13935ec33b
MSC3925: m.replace aggregation with full event (#3925)
* init m.replace aggregation with full event

Signed-off-by: benkuly <kontakt@folivo.net>

* Rename tmp.md to 3925-replace-aggregation-with-full-event.md

Signed-off-by: benkuly <kontakt@folivo.net>

* Update 3925-replace-aggregation-with-full-event.md

typos

Signed-off-by: benkuly <kontakt@folivo.net>

* Update 3925-replace-aggregation-with-full-event.md

added MSC number

Signed-off-by: benkuly <kontakt@folivo.net>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
Signed-off-by: benkuly <kontakt@folivo.net>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
Signed-off-by: benkuly <kontakt@folivo.net>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* redact instead of delete

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* word wrap 80

* remove immutable argument

* add alternative from https://github.com/matrix-org/matrix-spec/issues/1299#issuecomment-1290332433

* add json example

* shorter version of the actual proposal

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* describe the actual reason, why encrypted events cannot be replaced

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* mention discussion

* typo

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* clarify inconsistent behavior with replaced contents

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3925-replace-aggregation-with-full-event.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* clarify inconsistent behavior and put it into introduction

* remove superfluous event content field

* add some details to potential issues
suggested by @richvdh

---------

Signed-off-by: benkuly <kontakt@folivo.net>
Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
1 year ago
David Robertson 26f5effe45
MSC3943: Partial joins to nameless rooms should include heroes' memberships (#3943)
* Draft

* Assign MSC number

* Fix underscores inside backticks

* typo fix

Co-authored-by: Erik Johnston <erikj@jki.re>

Co-authored-by: Erik Johnston <erikj@jki.re>
1 year ago
Hubert Chathi 9b3f01b019
MSC3783: Fixed base64 for SAS verification (#3783)
* proposal for using fixed base64 encoding

* use MSC number

* add missing word

* add links to spec and clarifications
1 year ago
Catalan Lover b5bf09ea1c
MSC3904: Room version 10 as the default room version (#3904)
* Initial Commit for Room version 10 as default

* fix filename

* Give file and filename its MSC number

* Add update progress information

* Update 3904-room-version-10-as-a-default.md
1 year ago
Richard van der Hoff 006ca6a95a
remove keyId from /keys endpoints (#3938) 1 year ago
Richard van der Hoff 9a80bcffb6
MSC3706: Extensions to `/_matrix/federation/v2/send_join/{roomId}/{eventId}` for partial state (#3706) 1 year ago
Travis Ralston 4093b15124 Spelling 2 years ago
Eric Eastwood 8e46b7c5c8 MSC3030: Jump to date API endpoint (#3030)
* Initial MSC draft for jump to date

* Update with alternate /timestamp_to_event endpoint

* Add origin_server_ts for quick remote to local comparison

As discussed at https://github.com/matrix-org/synapse/pull/9445#discussion_r757098009

* Add origin_server_ts to client endpoint

* Wrap lines

* Use stable when discussing MSC and document unstable

* Describe the direction parameter

* Add server support detection

* Fix typos

* Explain what happens when an event can't be found

Fix https://github.com/matrix-org/matrix-doc/pull/3030#discussion_r787002549

* Add context behind why we chose /timestamp_to_event vs alternatives

Fix https://github.com/matrix-org/matrix-doc/pull/3030#discussion_r785425438

* Add comments about authentication and rate-limiting

Fix https://github.com/matrix-org/matrix-doc/pull/3030#discussion_r786351083

* Return pagination token directly in future iteration

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r787297190

* Abuse /timestamp_to_event to get create event

As suggested by @turt2live,
https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r846444317

* Unrenderable events

As proposed by @turt2live,
https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r846447351

* Add some complication thoughts around alternatives

Context: https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r846449709

* Backfill event so we can get pagination token

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r846578171

* Heuristic for which server to try first

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r967574944

* Give a suggestion on where to backfill from

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r967574843

* Add alternative suggestion from @alphapapa

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r868478333

* Better wording and fix typo

Co-authored-by: Travis Ralston <travisr@matrix.org>

* No difference in homeservers

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r992858188

* Fix typos

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Fix extra word typo

* Summarizing discussion around why `dir` instead of closest

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r849310414

* Adjust to just suggest the right way

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r999099294

* Great simplification with the same meaning 🌟

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Perfect is the enemy of good

See https://github.com/matrix-org/matrix-spec-proposals/pull/3030#discussion_r1004651959

Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Andrew Morgan 7e91b8eb71
Encourage MSC authors to write their own spec PRs (#3921) 2 years ago
Patrick Cloke 0ff35b275a
MSC3743: Standardized error response for unknown endpoints (#3743)
* Add an MSC for unknown endpoints.

* Fix typo.

* Fix typo.

Co-authored-by: Val Lorentz <progval+github@progval.net>

* Minor clarifications.

* Updates due to reality.

* Fix footnotes.

* Fix typo.

* Check additional things.

* Formatting & note about why the entire prefix.

* Clarify unknown endpoint vs unknown method.

Co-authored-by: Val Lorentz <progval+github@progval.net>
2 years ago
Eric Eastwood f8da206fc7
MSC3905: Application services should only be interested in local users (#3905)
* MSC so appservices only interested in local users

Fix https://github.com/matrix-org/matrix-spec/issues/1272

* Add MSC number

* Fix typo

* Fix title

* Add example implementation

See https://github.com/matrix-org/matrix-spec-proposals/pull/3905#discussion_r993004036

* `rooms` and `aliases` not affected

See https://github.com/matrix-org/matrix-spec-proposals/pull/3905#discussion_r993003476

* Add historical context

See https://github.com/matrix-org/matrix-spec-proposals/pull/3905#discussion_r993005189

* Document how to do unstable

See https://github.com/matrix-org/matrix-spec-proposals/pull/3905#discussion_r992960361

* fix some typos

* Add link to spec

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

Co-authored-by: Andrew Morgan <andrew@amorgan.xyz>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Andrew Morgan 1676be343d
Update the README with details on the Matrix spec process + unstable prefixes (#3891)
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Travis Ralston 85e0444735
Misc clarifications to threading MSCs (#3899)
* Thread bundles exclude ignored users

Per implementation: https://github.com/matrix-org/synapse/pull/12235

* Clarify that the threads list API returns a 403 too

Per implementation: https://github.com/matrix-org/synapse/pull/13394

* Reference a token that actually exists
2 years ago
Patrick Cloke aa51353fde
MSC3856: Threads List API (#3856)
* Initial MSC3856 draft.

* s/filter/include/g

* Fix typo.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Add link to the current spec.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Link to MSC3440 for related_by_rel_types.

* Rework and clarify intro.

* Clarify what is returned by the API.

* Add a note on dir.

* Add info on ignored users.

* Clarifications from review.

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Add notes about MSC2836.

* Add a comma to enum values.

Co-authored-by: Erik Johnston <erik@matrix.org>

* Simplify pagination.

* Fix typos.

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Erik Johnston <erik@matrix.org>
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
2 years ago
Patrick Cloke 3b43d871c5
MSC3771: Read receipts for threads (#3771)
* Add initial MSC for read receipts for threads.

* Fix events in diagram.

* Add sync response.

* Link to the spec.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Clarify sentence.

* Some clarifications.

* Simplification.

* Fix JSON key format.

Co-authored-by: Tulir Asokan <tulir@maunium.net>

* Add information on clearing notifications.

* Fix example.

* Update with current understanding.

* Clarify introduction.

* MSC3773 is not yet accepted.

* Updates from feedback.

* Update from learnings from the proof of concept.

* Add link to the current spec.

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Clarify that false positives are deliberate in the design.

* Receipts must move forward.

* More info on unthreaded receipts.

* Reflow.

* Clarify the proposal to explain why both threaded and unthreaded receipts need to exist and what the main timeline is.

* Add information about validating that an event is part of a thread.

* Remove section on second-order relations.

* Use proper syntax highlighting.

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Clarify unthreaded vs. main timeline receipts.

* Fix typos.

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Clarify wording.

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Clarify example.

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Fix alternatives section.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Tulir Asokan <tulir@maunium.net>
Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubertc@matrix.org>
2 years ago
Patrick Cloke 39f804004b
MSC3715: Add a pagination direction parameter to `/relations` (#3715)
* Add MSC for dir & filter on /relations.

* Fix typo.

* Simplify additional parameters.

* Add alternative.

* Add an unstable prefix.

* Move note about backwards compat.

* Add a link.

* Clarify proposal.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Re-title MSC

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Document another alternative.

* Add note about prev_batch token.

* Clarifications from review.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Flesh out description.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Patrick Cloke 9d80dcb6bd
MSC3773: Notifications for threads (#3773)
* Add initial MSC for notfications for threads.

* No longer depends on MSC3664.

* Fix events in diagram.

* Major simplification.

* Add missing words.

* Add a note about reactions.

* Clarify homeserver behavior when processing push rules.

* Link to a spec version instead of latest.

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Update 3773-notifications-for-threads.md

typoe

* Clarify wording.

* Update how homeservers are to partition threads.

Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
2 years ago
Travis Ralston 4e1b56247b
Add description of `m.receipt` behaviour to MSC2285 (#3875)
This appears to have been missed/edited out as part of one or more refactors of the MSC.
2 years ago
Richard van der Hoff c3eb6ac6da
Update CONTRIBUTING.md
simplify links
2 years ago
Travis Ralston f139eee50d
Clarify that MSC3827 also affects federation endpoints (#3858)
https://github.com/matrix-org/synapse/pull/13031 originally added support for the feature to Synapse, which although doesn't include an obvious federation route it does end up sending the field over federation.

[Here](a6895dd576/synapse/federation/transport/client.py (L481)) the server copies the search filter just before it goes over the wire, which is supplied by through a chain of function calls originating [here](c6d6176411/synapse/rest/client/room.py (L456)). 

Additionally, it is clear that this sort of feature would have included federation given the filtering is able to be proxied directly like this (as demonstrated by Synapse above).

As such, this is determined to be a clarification/minor edit to the MSC, not requiring a second MSC to add the functionality.
2 years ago
Travis Ralston dbc7937cd0
Clarify accidentally-legal `invite->knock` membership transition (#3850) 2 years ago
Travis Ralston 0d1605283c Minor spelling fixes 2 years ago
Aminda Suomalainen 43a3620edf
MSC3818: Copy room type on upgrade (#3818)
* add proposal xxxx-copy-room-type-on-upgrade.md

Signed-off-by: Aminda Suomalainen <suomalainen+git@mikaela.info>

* MSC 3818: add MSC number

Signed-off-by: Aminda Suomalainen <suomalainen+git@mikaela.info>

* msc3818: remove template text from beginning

Signed-off-by: Aminda Suomalainen <suomalainen+git@mikaela.info>

* 3818-copy-room-type-on-upgrade: refer to the current version of spec and what to change

Signed-off-by: Aminda Suomalainen <suomalainen+git@mikaela.info>

* Update proposals/3818-copy-room-type-on-upgrade.md

Signed-off-by: Aminda Suomalainen <suomalainen+git@mikaela.info>

Co-authored-by: Andy Balaam <mail@artificialworlds.net>

* Update proposals/3818-copy-room-type-on-upgrade.md

Signed-off-by: Aminda Suomalainen <suomalainen+git@mikaela.info>

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>

* 3818-copy-room-type-on-upgrade.md: specify v1.2 in links

Signed-off-by: Aminda Suomalainen <suomalainen+git@mikaela.info>

* 3818-copy-room-type-on-upgrade.md: correct link for MSC3588

Signed-off-by: Aminda Suomalainen <suomalainen+git@mikaela.info>

* MSC3818: note potential issue when state events are needed

* MSC3818: note an alternative of all room types needing an MSC

Co-authored-by: Andy Balaam <mail@artificialworlds.net>
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2 years ago
Šimon Brandner 0f067f1548
Specify how servers detect support for MSC3827 (#3854)
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2 years ago
Travis Ralston 1ec0d5824f
MSC3844: Remove unused policy room sharing mechanism (#3844) 2 years ago
Robert Long d15a6a34d6
MSC3828: Content Repository CORP Headers (#3828) 2 years ago
Šimon Brandner 129e5e982e
MSC3827: Filtering of `/publicRooms` by room type (#3827) 2 years ago
Hubert Chathi 1bfa09cc2a MSC2676: Message editing (#2676)
* initial version of message editing proposal

* fix MSC numbers

* Fix JSON in example

Co-authored-by: Alexandre Morignot <erdnaxeli@gmail.com>

* clarifications

* remove obsolete "XXX:", and fix a typo

* Initial cleanup and restructuring

* Clarify algorithm for replacing content

* background

* More clarifications on applying edits

* Clarify behaviour of redactions

* Minor grammar fixes

* Move the section on `msgtype` down

It clutters up the initial description - let's move it down into a more
detailed section.

* Clarify how edits are ordered

- we use event_id as a tiebreaker.

We also have a section in "Future considerations" about this, so I don't think
we need the braindump in "Edge cases".

* Spec the behaviour for encrypted events

* Requirements for an edit event to be considered valid

* Collect "client behaviour" and "sever behaviour" together

... and clarify these sections.

* Clarify permalinks section

* Notes on edits of replies

* Clarify that `m.relates_to` within `m.new_content` is ignored

* Clarifications from review

* event ids are sorted lexicographically

* Clarify aggregation section

* minor clarifications

* Clarify which endpoints support edits

* move definition of latest edit

* Apply suggestions from code review

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>

* fix typo

* Attempt to clarify encrypted events

Co-authored-by: Alexandre Morignot <erdnaxeli@gmail.com>
Co-authored-by: Richard van der Hoff <richard@matrix.org>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Travis Ralston 17e3cc17bf MSC2285: Private read receipts (#2285)
* What if we let people hide their read receipts?

* Add unstable prefix

* Update proposals/2285-hidden-read-receipts.md

Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Use a separate `receiptType` for hidden read receipts  (#3750)

* Update the way MSC2285 works

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Update proposals/2285-hidden-read-receipts.md

Co-authored-by: Travis Ralston <travpc@gmail.com>

* Clarify notification behaviour and other things

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>

* Mention adding `m.fully_read` to `/receipt`

* Rename MSC to `Private read receipts`

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Apply suggestions from review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Apply suggestions from review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Remove trailing comma

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Apply suggestions from review

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Apply suggestions from review

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* `r0` -> `v3`

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Describe how to determine server support while stable

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Be more precise about the failure mode

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Improve wording

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Improve wording

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Improve wording

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Be more explicit

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Be more explicit around server support

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Simplify text

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Be more explicit about detecting server support

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Add note about consistency

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Clarify how exactly to detect support

* Try to fix clarity around precedence

* Be clearer about alternatives

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Add sentence about `/receipt` federation

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Be more explicit about adding `m.read.private` to `/receipt`

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Fix wrong RR type

Co-authored-by: Kévin Commaille <76261501+zecakeh@users.noreply.github.com>

Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.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: Kévin Commaille <76261501+zecakeh@users.noreply.github.com>
2 years ago
Tulir Asokan 5788b7d4e8 MSC2832: HS -> AS authorization header (#2832)
* Proposal to fix homeserver -> appservice authorization

Signed-off-by: Tulir Asokan <tulir@maunium.net>

* Remove query parameter entirely instead of deprecating it

Signed-off-by: Tulir Asokan <tulir@maunium.net>

* Update title

Co-authored-by: Jonathan de Jong <jonathandejong02@gmail.com>

Co-authored-by: Jonathan de Jong <jonathandejong02@gmail.com>
2 years ago
Bruno Windels 3a05bd637a MSC3267: Reference relations (#3267)
* initial draft of reference relations msc

* change MSC number

* Apply formatting

* Convert to point at present rather than ideal

* Clarify that multiple relations is a thing we don't have and won't fix here

* Fix wording to match reality, again

* fix a typo

Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Andrew Morgan <andrewm@element.io>
2 years ago
Šimon Brandner 6abe71386b
MSC3786: Add a default push rule to ignore `m.room.server_acl` events (#3786)
* Add a default push rule to ignore `m.room.server_acl` events

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Update MSC number

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Add prefix `.`

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Link to spec

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Be more explicit about why the rule is needed

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Clarify push rule ordering

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Don't rely on unmerged MSCs for ordering

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Be even more explicit about why we need this

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

* Improve wording

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Improve wording

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Improve wording

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Add missing period

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Add spec link

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Remove `when merged`

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Remove `dont_notify`

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Check `state_key`

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Aaron Raimist 3ab1638b56
Upgrade typos to v1.10.2 and run on pushes to main (#3838)
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2 years ago
Travis Ralston 540fb185d5
Update MSC2175 "removed auth rule" note (#3832) 2 years ago
Richard van der Hoff 6f411413af
clarification to MSC2675 (#3829)
because this is confusing enough without outright lies
2 years ago
Patrick Cloke f6f3299b0d
MSC3816: Clarify Thread Participation (#3816)
* Clarify the current_user_participated flag from MSC3440.

* Add a better link to the definition.

* Clarifications from 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>
2 years ago
Travis Ralston 46ae23744e
MSC3604: Room Version 10 (#3604)
* WIP: Template out v10

* Add opt1 room version prefix

* Update 3604-rooms-v10.md

* Upgrade MSC3667

* Cut a v10

* Move MSC2176 to "not feasible" section
2 years ago
Travis Ralston d27e9e4acf
Minor clarifications to MSC2675 (#3826)
To improve understanding for purposes of spec writing.
2 years ago
Travis Ralston 0e9020aeb2
Allowing knocks to restricted rooms (#3787)
Combinatorials part 2
2 years ago
Travis Ralston 09fc322915 Trim MSC3440's lines 2 years ago
Travis Ralston 71a6e9adb4 Fix MSC3440's wording for spec release 2 years ago
Travis Ralston ffc689db27
Add an unstable room version to MSC2174 (#3788)
* Add an unstable room version to MSC2174

* Associate room version
2 years ago
Travis Ralston ebd57df4e5
Add MSC2176's undocumented unstable room version (#3789) 2 years ago
Patrick Cloke 7521fea369
Clarify serialization properties of the latest thread event. (#3785) 2 years ago
Richard van der Hoff 2a9e23308d
Pull request templates (#3777)
Mostly lifted from
188eba6969/.github/PULL_REQUEST_TEMPLATE,
where they were misplaced.
2 years ago
Richard van der Hoff 533e6c5e0c
CONTRIBTUTING: missing paren 2 years ago
Richard van der Hoff ac93bec56a
README and CONTRIBUTING (#3776)
... to help people who stumble on this repo.
2 years ago
Jan Christian Grünhage 8aaf3c5129
MSC3383: Include destination in X-Matrix Auth Header (#3383)
* add proposal for adding the dest to federation auth headers

Signed-off-by: Jan Christian Grünhage <jcgruenhage@famedly.com>

* address compatibility concern regarding fed auth headers

The MSC already addressed old implementations receiving events from
newer implementations sending the additional field, but not the other
way around, which is added in here

* clarify the problem MSC3383 aims to solve

* clarify which verification msc3383 talks about

* clarify what happens with unknown destinations in msc3383
2 years ago
Patrick Cloke 919ca2f65a
MSC3666: Bundled aggregations for server side search (#3666)
* Initial commit.

* MSC number.

* Link to the current specification.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Clarify that this is a change (and not part of MSC2675).

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Remove extra work.

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Add missing slashes and some links.

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2 years ago
Erik Johnston d375720b1f
MSC3700: Deprecate plaintext sender key (#3700)
* Initial deprecate sender key MSC

* Formatting

* Deprecate 'sender_key' in 'm.room_key_request'

* Update proposals/3700-deprecate-sender-key.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update proposals/3700-deprecate-sender-key.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Formatting

* Update language around looking up sessions

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Travis Ralston e1aa00a75d Fix numbering 2 years ago
Neil Alexander 03f8ce9c44
MSC3667: Enforce integer power levels (#3667)
* Create mscxxxx-enforce-integer-power-levels.md

* Update MSC number

* Update MSC to mention implementation

* Update proposals/msc3667-enforce-integer-power-levels.md

@uhoreg suggestion

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>

* Update proposals/msc3667-enforce-integer-power-levels.md

Co-authored-by: Erik Johnston <erik@matrix.org>

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
Co-authored-by: Erik Johnston <erik@matrix.org>
2 years ago
Aaron Raimist 32ce58932f
Put back Typos CI (#3753)
Was removed in 161be7e7c0

Signed-off-by: Aaron Raimist <aaron@raim.ist>
2 years ago
Germain 489f8d8544
MSC3440: Threading via `m.thread` relation (#3440)
* Threading  via  relation

* Add explainer on how to handle m.in_reply_to

* Clarify wording on threading MSC

* Mention MSC3051 in the alternative section of MSC3440

* Clarify updates to MSC2675 for MSC3440

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>

* Line wrap the MSC

* More line wrapping for MSC3440

* Clarify single-layer event aggregation section

* Update thread-as-rooms advantages

* Clarify backwards compatibility and incremental support

* Clarify wording and correct typos

* Splitting Cerulean and MSC2836 in alternatives section

* Add dependencies for threads MSC

* Clarify intro to threads as rooms

* Add currentUserParticipated flag

* snake_case over camelCase

* Adding dependency to MSC3567

* Add threads capability

* Fix typo

* Update syntax highlighting to use jsonc

* Add limitations when fetching thread content by relation type

* Add reply chain fallback via m.in_reply_to

* Clarity in wording and fix typo

Co-authored-by: James Salter <jamess@element.io>
Co-authored-by: Matthew Hodgson <matthew@matrix.org>

* Cosmetic changes based on pull request feedback

* Add note to allow clients to omit fallback for rich replies

* fix typo

* Clarify wording to not confuse thread answers with quote-replies

* move relations justification to alternatives section

* Clarify handling of m.in_reply_to missing rel_type:m.thread

* Fix typo

* Fix typo

* Declare MSC2781 as a dependency

* Use rich reply over quote reply

* Depend on MSC3676 rather than MSC2781

Rather than relying on fallbacks being removed outright (and all the notification complications that causes in #2781), instead depend on #3676 which makes fallbacks best effort.

* Remove full stop typo

Co-authored-by: Erik Johnston <erik@matrix.org>

* Clarify new filtering parameters.

* Fix typo.

* Update wording for client side considerations

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Add m.in_reply_to mixin to thread fallback

* Add guidance for clients and servers for thread invalid relations

* update thread root wording

* Add better definition to reply target event

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Add note regarding forward compatibility

* link to MSC2674

* Update proposals/3440-threading-via-relations.md

Co-authored-by: Hubert Chathi <hubertc@matrix.org>

* Clarification on responsibilities for the reply fallback

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update `/messages` API endpoint version on example

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Apply wording suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Add notes on server-side invalid relation filtering

* Fix typo

* reword paragraph about forwarding m.thread relation

* Add unstable prefix for capability endpoint

* Re-order alternatives to match intro paragraph

* rework relation_senders and relation_types definition

* Apply wording suggestions from code review

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Kim Brose <kim.brose@rwth-aachen.de>

* Clarify fallback mechanism

* Rename filter property names

* Change m.render_in to m.display_reply_fallback

* Clarify what endpoints support the new filter

* Switch from /capabilities to /versions

* remove references to Cerulean

* Update latest_event description

* Clarity in wording and fix typo

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* rename m.display_reply_fallback to hide_reply

* remove redundant paragraph about forward compat

* Improve bundled relationship example

* Explain context on why a thread-unaware client might want to send m.thread

* Clarify `hide_reply`

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Rename hide_reply to show_reply

* rename show_reply to is_falling_back

* Add note about stable support.

* Update proposals/3440-threading-via-relations.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
Co-authored-by: James Salter <jamess@element.io>
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
Co-authored-by: Erik Johnston <erik@matrix.org>
Co-authored-by: Patrick Cloke <patrickc@matrix.org>
Co-authored-by: Hubert Chathi <hubertc@matrix.org>
Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Kim Brose <kim.brose@rwth-aachen.de>
2 years ago
Tulir Asokan daf940a128 MSC3316: Add timestamp massaging to the spec (#3316)
* Proposal to add timestamp massaging to the spec

Signed-off-by: Tulir Asokan <tulir@maunium.net>

* Update unstable prefix

Signed-off-by: Tulir Asokan <tulir@maunium.net>
2 years ago
Richard van der Hoff 161be7e7c0 remove github magic irrelevant to matrix-spec-proposals 2 years ago
Richard van der Hoff b655688d30 Remove content unrelated to proposals 2 years ago
Andrew Morgan b26aa7fcf5
Remove 'room_id' field from `m.typing`, `m.receipt` and `m.fully_read` examples and schema (#3679)
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.
2 years ago
Aaron Raimist 419d8cbd94
Update the default room version to 9 (#3739)
* Update the default room version to 9

Spec PR for [MSC3589](https://github.com/matrix-org/matrix-doc/pull/3589)

Signed-off-by: Aaron Raimist <aaron@raim.ist>

* Add changelog

Signed-off-by: Aaron Raimist <aaron@raim.ist>
2 years ago
Aaron Raimist 2e63733beb
Remove unenforced size limit on room names (#3669)
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>
2 years ago
Jonas Platte d7d52e8074
Fix broken link in end_to_end_encryption.md (#3708) 2 years ago
Alexandre Franke 1afbffb98e
Warn of untagged operations (#3699)
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
2 years ago
Tulir Asokan be3b8e3a3c
Fix join membership auth rules when `join_rule` is knock (#3737)
Fixes #3736
2 years ago
Travis Ralston 7afac76e18
Fix membership state table and diagram (#3730)
* 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>
2 years ago
Travis Ralston 23b0e11409
MSC3589: Room version 9 as the default room version (#3589)
* Room version 9 as a default room version

* Update statistics and notes about maturity

* Adjust wording for Conduit

* Update to stable link
2 years ago
Hubert Chathi e9fed105c6
MSC3582: Remove m.room.message.feedback (#3582)
* proposal to remove m.room.message.feedback

* use MSC number
2 years ago
Travis Ralston 8851974d03
Another changelog fix (#3731) 2 years ago
Travis Ralston 8a0a799a4b
Clarify that the X-Matrix validation uses the parsed request body (#3727) 2 years ago
Richard van der Hoff 9e4b170643
Skip building the docs site for MSCs (#3729)
If only the `proposals` directory has changed, there's no point building the
docs site and offering a preview.
2 years ago
Travis Ralston 7aeea64797
Fix location of some changelogs (#3728)
They were seemingly put in the wrong place. They are only on unstable and do not affect a release.
2 years ago
Richard van der Hoff ca466b5a57
Attempt to clarify how `event_match` works (#3690)
Fixes #3082, #2637, #3075.
2 years ago
Will Hunt c420fc49a0
Fix m.login.appservice -> m.login.application_service (#3711)
* 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>
2 years ago
Richard van der Hoff f989d323c0
Update v1.2 changelog with missed PR (#3705) 2 years ago
Andrew Morgan 868949908c
Use `yaml.safe_load` in `check-swagger-sources.py` (#3719) 2 years ago
Andrew Morgan 0d634b1935
Use yaml.safe_load instead of yaml.load in `check-event-schema-examples.py` (#3716) 2 years ago
Hubert Chathi d06f05571f move changelog to the right place 2 years ago
Richard van der Hoff 1913812a90
Clarify send_join response (#3703) 2 years ago
Andrew Morgan e7adfd5ed1
Fix missed rst->md numbered list syntax for `m.room.server_acl` (#3681)
* Fix missed rst->md numbered list syntax
2 years ago
Richard van der Hoff c400dc99c0
Update dependencies (#3707)
https://github.com/advisories/GHSA-566m-qj78-rww5 is a thing. I don't think
it's directly relevant to us, but upgrading is good.
2 years ago
Travis Ralston 956a22da11 return to unstable 2 years ago
Travis Ralston e488a7fb6d v1.2 changelog 2 years ago
Travis Ralston 4b78d22e8c release steps: fastforward main 2 years ago
Travis Ralston fb2aa688db prep for v1.2 2 years ago
Alexandre Franke de9cf76a57
Dump additional apis (#3684)
*  Allow JSON generation for all API

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 👷 Export AS API JSON

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

*  Handle missing security definitions

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 👷 Export Push Gateway API JSON

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 🎨 Improve identation

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 🐛 Fix successive reference handling

Fixes #3689

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 👷 Export Server-Server API JSON

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 📝 Remove obsolete comment

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 🐛 Make properties objects, as they MUST be

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* Revert "👷 Export Server-Server API JSON"

This reverts commit 061f91c2cb.

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
2 years ago
Travis Ralston 0f9eadd1a1
Fix knock->leave transition in auth rules (#3694)
* 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
2 years ago
Matthew Hodgson 2cd2a7122c
MSC3676: Transitioning away from reply fallbacks (#3676)
* 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>
2 years ago
devonh dd32431b85
Fix broken link in server-server signing events section (#3528)
Co-authored-by: Andrew Morgan <andrew@amorgan.xyz>
2 years ago
devonh fc5ba959ca
Separate PDU terms from their definitions (#3527)
Co-authored-by: Andrew Morgan <andrew@amorgan.xyz>
2 years ago
Richard van der Hoff 36b02edfc2
Distinguish 'client' from 'federation' events (#3658)
Fixes #3305 
Fixes #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.)
2 years ago
Travis Ralston d4c74d37a9
Update documentation style & fix room version heading order (#3683)
* 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>
2 years ago
Aaron Raimist 990dfec94b
Update several spots where C-S API was still using r0 APIs (#3671)
* 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>
2 years ago
Alexandre Franke d3e39567f4
Responses schema fixes (#3650)
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
```
2 years ago
Travis Ralston 2e5cc42666
Update node-fetch dependency & lockfile version (#3670)
Modern versions of node and npm should be compatible with this format.

Supersedes https://github.com/matrix-org/matrix-doc/pull/3668
2 years ago
Travis Ralston df1d150142 Add missing changelog 2 years ago
Travis Ralston 59f4d7ffed Revert fix to appendices 2 years ago
Matthew Hodgson 20aa44bd13
typoes (#3680)
* typoes

* Appease the faulty spellcheck on the json too

Co-authored-by: Travis Ralston <travisr@matrix.org>
2 years ago
Richard van der Hoff 4a9c236572 Changelogs for #3674 2 years ago
Richard van der Hoff c3b53d5ae6
comments on resolve-allof (#3657) 2 years ago
Richard van der Hoff 783624d2cd
Fix rendering of responses with empty bodies (#3674) 2 years ago
Richard van der Hoff 39a41a18ba
Fix the response for `GET /_matrix/app/v1/thirdparty/protocol/{protocol}` (#3675)
This should return a single protocol, not all of them.

Fixes #2286.
2 years ago
Matthew Hodgson c151353956 s/master/main/g otherwise we link to stale content 2 years ago
Travis Ralston 4a597ace51
Re-add knock's `otherwise, reject` per MSC2403 (#3661)
* Re-add knock's `otherwise, reject` per MSC2403

Fixes https://github.com/matrix-org/matrix-doc/issues/3648

* changelog + changelog for 3432
2 years ago
Patrick Cloke fff5f87c3d
Fix the type of children in the /hierarchy S-S API. (#3660)
* Fix the type of children in the /hierarchy S-S API.

* Newsfragment
2 years ago
Alexandre Franke b6b98410c1
🐛 openapi: prepend basePath to all paths (#3642) 2 years ago
Travis Ralston 6c4aabd053
Room versions 8 and 9: Restricted rooms (#3387)
* 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>
2 years ago
Travis Ralston 3475ef62ab
Remove straggling case of "groups" (#3652)
* Remove straggling case of "groups"

* changelog
2 years ago
Travis Ralston fc3f7d60eb
Remove `aliases` from `/publicRooms` response (#3624)
Through attempting to land [Synapse#11667](https://github.com/matrix-org/synapse/pull/11667) it was found that Synapse doesn't return the `aliases` property on `/publicRooms` as it was [removed](https://github.com/matrix-org/synapse/pull/6970) by a [tracking issue](https://github.com/matrix-org/synapse/issues/6898) referencing [MSC2432](https://github.com/matrix-org/matrix-doc/pull/2432) as its base. Though MSC2432 does not make mention of this, the [document](https://docs.google.com/document/d/1NNDkobiFLeUkJtyj0H6qvKIedgvIkZnFKo78-03cGEk/edit) the MSC is based upon makes deliberate effort to mention the endpoint and the removal of `aliases`. Thus, it is determined as a likely accidental omission from the formal MSC and therefore the formal spec.

This has been corrected here by amending the MSC (per the process) and removing the field, basing itself off of the [spec PR for spaces](https://github.com/matrix-org/matrix-doc/pull/3610) for diff clarity.
2 years ago
Travis Ralston 97a8b0bb13 spelling 2 years ago
Travis Ralston 9af83dfd41
Add Spaces to the spec (#3610)
* 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>
2 years ago
Patrick Cloke 21882b6006
MSC3567: Allow requesting events from the start/end of the room history (#3567)
* 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>
2 years ago
Hubert Chathi 16ec511e9c MSC2675: Serverside aggregations of message relationships (#2675)
* 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>
2 years ago
Hubert Chathi 6fb684397a
Clarify how to interpret missing one time key counts (#3636) 2 years ago
Richard van der Hoff 2a5e33a760
Revert "add node_modules (#3632)" (#3633)
This reverts commit cf73fb97bc.

this was a duplicate of an existing entry
2 years ago
Jonathan de Jong cf73fb97bc
add node_modules (#3632) 2 years ago
Andrew Morgan a8f7723fe5 Rename assets-hugo directory to assets (#3259)
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.
2 years ago
Alexandre Franke 7e92964dc5
🚚 Rename OpenAPI artifact (#3621)
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>
2 years ago
Travis Ralston 56532dd688
Describe and hoist stripped state to a first-class citizen (#3606)
* Describe and hoist stripped state to a first-class citizen

Fixes https://github.com/matrix-org/matrix-doc/issues/3413
MSC: https://github.com/matrix-org/matrix-doc/pull/3173

* Add changelog

* may->can for clarity

* Update text per review
2 years ago
Travis Ralston 224773dc6a
Specify fallback keys (#3615)
* Specify fallback keys

MSC: https://github.com/matrix-org/matrix-doc/pull/2732

* changelog

* Appease spell check

* Fine, let's appease the spellcheck this way

* Apply suggestions from code review

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>

* Fix intro

* word wrap

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2 years ago
Travis Ralston 26e0765159
Add guest changes to spec: MSC3069 and MSC3419 (#3605)
* Add MSC3069 support

https://github.com/matrix-org/matrix-doc/pull/3069

* Add MSC3419 support

https://github.com/matrix-org/matrix-doc/pull/3419

* Normalize and fix guest access endpoints list

* Changelogs
2 years ago
Travis Ralston 00169abcdb
Specify module order manually to work around hugo issues (#3612) 2 years ago
Travis Ralston 0ee58100c4
Add capabilities described by MSC3283 (#3614)
* Add capabilities described by MSC3283

MSC: https://github.com/matrix-org/matrix-doc/pull/3283

* changelog
2 years ago
Travis Ralston e4057072bd
Add registration token UIA type (#3616)
* 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>
2 years ago
Travis Ralston 20bd445602
Add a changelog for the appendices (#3609)
As a document which is versioned, we should have a changelog for it. It might be empty most of the time but oh well.
2 years ago
Lukas Lihotzki 4415e36a74 dump-swagger.py: include untagged operations (#3326) 2 years ago
Richard van der Hoff 3be746c9d3
Fix rendering of response examples (#3584)
* 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.
2 years ago
Richard van der Hoff 355e06eaa6
Clarification for `/event_auth` (#3583)
The description on this endpoint implied it returned the auth chain for the
full state of the room, which is incorrect.
2 years ago
Travis Ralston 592cbd537c
Describe `matrix:` URI scheme (#3608)
* 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
2 years ago
Travis Ralston 1e9dd4d22e
Avoid use of the word "clobber" (#3611)
* Avoid use of the word "clobber"

Fixes https://github.com/matrix-org/matrix-doc/issues/1328

* changelog
2 years ago
Travis Ralston 4734f40098 Add hugo build lock to gitignore 2 years ago
Travis Ralston afc5298f11
Replace s2s join sequence diagram for legibility (#3603)
Without the vertical lines it's a bit difficult to parse. A different tool was used to generate the graph this time.
2 years ago
Dan Callahan 48d8f7202d
Add HTTP 403 to possible profile responses (#3530)
* 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>
2 years ago
Travis Ralston dfec7d687e Remove extraneous slash 2 years ago
Alexandre Franke 6972342611
🐛 Fix base URL for OpenAPI definition (#3602)
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
2 years ago
Travis Ralston afb6867232 Decorate the rest of the appservice login stuff too 2 years ago
Travis Ralston 76aaf39811 Decorate Matrix version on appservice login 2 years ago
Will Hunt a05706780d Add m.login.appservice to the spec (#3324)
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>
2 years ago
Travis Ralston 3ebe4e801b Fix historical spec build 2 years ago
Alexandre Franke b55cc15772
Fix links in OpenAPI description nodes (#3598)
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>
2 years ago
Travis Ralston 00ee4d7010 Add changelog 2 years ago
Aaron Raimist 01cd41de68
Add GitHub Action to check spelling (#3591)
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2 years ago
Travis Ralston d2fd90579b Add changelog 2 years ago
homersimpsons 9efe1887a4
instant_messaging: fix intra docs anchors (#3601)
Signed-off-by: homersimpsons <guillaume.alabre@gmail.com>
2 years ago
Shay 3ce9c1d288
MSC3550: Allow HTTP 403 as a response to profile lookups (#3550)
* add 403 proposal

* add msc number to file and filename

* correctly use markdown

* requested changes

* add links

* specify error code

* Update proposals/3550-allow-403-response-profile-lookup.md

Co-authored-by: Travis Ralston <travisr@matrix.org>

* fix formatting typo

Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2 years ago
Shay 87fcb7c8b0
Clarify that `base_url` in client `well_known` may or may not include trailing slash (#3562)
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.
2 years ago
Alexandre Franke 71ff06fd7a
⚰️ Remove leftover CircleCI config (#3579)
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>
3 years ago
Travis Ralston 336194aee4
Patch the release process docs (#3568)
* 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.
3 years ago
Hubert Chathi 71988263f3
clarify which signature to check (#3573) 3 years ago
Travis Ralston 0fbc6bdab6
Definition of "Standard Identifier Format" (#3171)
Spec for https://github.com/matrix-org/matrix-doc/pull/2758
3 years ago
Richard van der Hoff 4b866adac1
Bump `validator` dependency to 13.7.0 (#3566)
`validator` 13.6 has a security advisory:
https://github.com/advisories/GHSA-qgmg-gppg-76g5

I don't think it really affects us but it's making annoying noise in the repo.
3 years ago
Alexandre Franke d25fa13e6d
💚 Update PR description editing action (#3558)
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>
3 years ago
Alexandre Franke 806ae22da7
🚀 Make OpenAPI definition available (#3542)
* 🚀 Make OpenAPI definition available

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 💚 Fix artifact name

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 💚 Introduce dependency between jobs

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* 🚀 Make historical definitions available

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
3 years ago
Matthew Hodgson 87822fa105
MSC3419: Allow guests to send more event types (#3419)
* 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>
3 years ago
Richard van der Hoff 86fb65a4bd
GHA: url-encode branch name in pull-request search (#3541) 3 years ago
Richard van der Hoff 83b24dd54d
Remove definition of Event for `/notifications` (#3525)
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.
3 years ago
Richard van der Hoff 7f200c53e8
Move `prev_content` to unsigned (#3524) 3 years ago
David Robertson 1e12b45f97
Clarifications to /sync description (#3534)
* 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>
3 years ago
Alexandre Franke a26f2f8ca9
Fix typo (#3535)
* Fix typo

* Add changelog

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
3 years ago
Richard van der Hoff dce06f6dc2
Remove C-S `unsigned` data from PDU definitions (#3522)
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.
3 years ago
Hubert Chathi 9654bf19b3 MSC2674: Event Relationships (#2674)
* 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 e0271331b2.

* 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>
3 years ago
Ankur ac98c8c08c
OpenAPI: Add missing `required` flag in `getRoomKeys` (#3509) 3 years ago
Matthew Hodgson 8d9a67d9f6
add an explicit dependencies block. 3 years ago
Richard van der Hoff f4a0c1aac5
Clarify event format text in room version specs (#3501)
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.
3 years ago
Richard van der Hoff 92b29cf8e6
Add a changelog directory for room versions (#3504) 3 years ago
Richard van der Hoff d74a43f7cf
update docker instructions in README (#3502)
you need the fancy hugos.
3 years ago
Richard van der Hoff 0d8f466f39
Replace remaining CircleCI jobs with GHA (#3505)
Apparently the `build-docs` step is already happening, so we just need to port
the schema and example validation jobs.
3 years ago
Jonas Kress 0982d5c55f MSC3283: Expose capabilities for profile actions (#3283)
* Create 3278-enable_set_displayname-capabilities.md

* Apply suggestions from code review

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>

* Apply suggestions from code review

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>

* Update and rename 3278-enable_set_displayname-capabilities.md to 3279-enable_set_displayname-capabilities.md

* Update and rename 3279-enable_set_displayname-capabilities.md to 3282-enable_set_displayname-capabilities.md

* Update and rename 3282-enable_set_displayname-capabilities.md to 3283-enable_set_displayname-capabilities.md

* Update proposals/3283-enable_set_displayname-capabilities.md

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>

* Update proposals/3283-enable_set_displayname-capabilities.md

Co-authored-by: Will Hunt <will@half-shot.uk>

* Update proposals/3283-enable_set_displayname-capabilities.md

Co-authored-by: Will Hunt <will@half-shot.uk>

* Update 3283-enable_set_displayname-capabilities.md

* Update 3283-enable_set_displayname-capabilities.md

* Update proposals/3283-enable_set_displayname-capabilities.md

Co-authored-by: Dirk Klimpel <5740567+dklimpel@users.noreply.github.com>

* Update proposals/3283-enable_set_displayname-capabilities.md

Co-authored-by: Dirk Klimpel <5740567+dklimpel@users.noreply.github.com>

* Update 3283-enable_set_displayname-capabilities.md

* Update 3283-enable_set_displayname-capabilities.md

* Update 3283-enable_set_displayname-capabilities.md

* Update 3283-enable_set_displayname-capabilities.md

Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
Co-authored-by: Will Hunt <will@half-shot.uk>
Co-authored-by: Dirk Klimpel <5740567+dklimpel@users.noreply.github.com>
3 years ago
Andrew Morgan 82254deaa1
Remove gilesbot config (#3503) 3 years ago
Ankur a8cf4d4a56
Open API: Changed RoomKeys to RoomKey (#3500) 3 years ago
Will Hunt 51d8560da9
Explicitly link to geo URI spec (#3492)
* Explicitly link to geo URI spec

* move RFC location

Co-authored-by: Travis Ralston <travisr@matrix.org>

* Create 3492.clarification

Co-authored-by: Travis Ralston <travisr@matrix.org>
3 years ago
Ankur a034d45e45
typos: Corrected typos in message_pagination.yaml (#3495) 3 years ago
Patrick Cloke 9a6c86ac8d
Fix example response in MSC2946. (#3493) 3 years ago
Hubert Chathi 1ad5ff4179
Key name is supposed to be optional, as per MSC2874 (#3481) 3 years ago
Hubert Chathi 033038917d
remove extra `type` property (#3482) 3 years ago
Travis Ralston 67d73438ea Backport typo fix 3 years ago
Travis Ralston 2227a812a2 Reset to unstable 3 years ago
Travis Ralston 195b8a54c5 v1.1 changelog 3 years ago
Travis Ralston 8fb782c324 Matrix 1.1 3 years ago
Travis Ralston a5a27f69af
Hide room version fragments from table of contents (#3479)
The entries were text-less and not really helping anyone. They are included as pages because we need them for templating, but we don't need people to be able to land on them directly.
3 years ago
Travis Ralston 8f2e8f03d0
Normalize changelog entries (#3476)
* Remove entries which don't affect the rendered spec (sorry people using the swagger schemas - we'll have to figure out a changelog for you). See https://github.com/matrix-org/matrix-doc/issues/3475
  * Note that a breaking change is removed by this commit: key backup was introduced in this release cycle, so is not breaking.
* Use uniform references to MSCs ("as per MSC0000").
* General rewording to be consistent with the overall voice of the changelog.
* Condensing of entries where needed to make them fit in the changelog.
* Rewording to collapse entries into fewer lines.
* Spell "deprecation" correctly in file extension.
3 years ago
DeepBlueV7.X 938354b8b4
Rename threepidCreds to threepid_creds and get rid of array (#3471)
This fixes the behaviour to match what synapse implements in practice.
If you use threepidCreds, you will just get an error about a missing
threepid_creds field. Synapse also treats this as an object. All clients
also seem to send threepid_creds, if they work on Synapse. Since
matrix.org requires an email currently for registration, most clients
that implement registration, will hit this issue.

a0f48ee89d/synapse/handlers/ui_auth/checkers.py (L145)

fixes #3156
fixes #2189

Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
3 years ago
Travis Ralston 241e01c332
Fully specify room versions (#3432)
* Fully specify room versions

* Misc typo clarifications

* Try to clarify redactions a bit

* Update content/client-server-api/_index.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update content/rooms/v6.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Update content/rooms/v6.md

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Better describe client considerations

* Doc template params

* Move redaction "new stuff" to v3

* Remove unhelpful sentences about "here follows unchanged stuff"

* Simplify event signing text

* Clean up handling redactions sections

* Move v4's event schema to unchanged section

* Update content/rooms/v4.md

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>
3 years ago
kegsay b873ba984c MSC2946: Spaces Summary (#2946)
* 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 af8c7b04d9.

* 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>
3 years ago
Travis Ralston ae2d00b164 Update sas-emoji.json 3 years ago
Element Translate Bot 6f87c203b1
Translations update from Weblate (#3461)
* Added translation using Weblate (Indonesian)

* Translated using Weblate (Indonesian)

Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/id/

* Added translation using Weblate (Vietnamese)

* Translated using Weblate (Vietnamese)

Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/vi/

* Added translation using Weblate (Albanian)

* Translated using Weblate (Albanian)

Currently translated at 98.4% (63 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/sq/

Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Dinh Quang Tuyen <tuyen.dinh@aarenet.com>
Co-authored-by: Besnik Bleta <besnik@programeshqip.org>
Co-authored-by: Weblate <noreply@weblate.org>
3 years ago
Andrew Morgan 00bf1b3f2f fix typo: word plural 3 years ago
Travis Ralston aa31247165
Add github action to build release tags (#3449)
* Build release tags of the spec

* Update .github/workflows/main.yml

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

* Move historical (future old) job out to its own thing

* Update for new baseurl setup

* Use hugo config overrides instead

* Remove mistakenly re-added matrix.org poke

* Restore npm stuff to main branch representations

* [2] Restore npm stuff to main branch representations

* Update .github/workflows/main.yml

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>
3 years ago
Travis Ralston 5ea6d5610f
Update identity server spec to use global versioning (#3459)
* Update identity server spec to use global versioning

* changelog
3 years ago
Richard van der Hoff 4a581a8048
remove unused buildkite pipeline (#3453)
the buildkite build is archived
3 years ago
Richard van der Hoff d6f73d2df3
Stop rebuilding matrix.org (#3454)
the matrix.org site no longer uses anything from this build, so let's stop
rebuilding it.
3 years ago
Travis Ralston 88e181ac1d MSC3069: Allow guests to use /account/whoami (#3069)
* Allow guests to use /account/whoami

* speling
3 years ago
Richard van der Hoff d42fce333e
proposal to move prev_content (#3442) 3 years ago
Valere 70d6a0fbeb MSC3288: Add room type to `/_matrix/identity/v2/store-invite` API (#3288)
* 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>
3 years ago
Richard van der Hoff 2803a374cb netlify.yaml: gah outputs syntax 3 years ago
Richard van der Hoff ae78375c6a netlify.yaml: gah quotes 3 years ago
Richard van der Hoff d094a70d3a netlify.yaml: increased magic 3 years ago
Richard van der Hoff f5fcde09f8 netlify.yaml: add some debugging 3 years ago
Richard van der Hoff 5be335e01b netlify.yaml: remember to unpack spec 3 years ago
Richard van der Hoff 5bd103be49 netlify.yaml: fix up run_id 3 years ago
Richard van der Hoff 17198c7e05
Deploy previews to netlify (#3455) 3 years ago
Travis Ralston e8674688e6
Release process: changelog generation and docs (#3446)
* Remove extra pyprojects and update changelog docs

* Add script for rendering the changelog

* Add docs for how to release the spec

* Move legacy changelogs out of the way
3 years ago
Richard van der Hoff 61ac438871
Remove the old templating system (#3445)
* Inline resolve_references in dump-swagger

Since this is the only bit of the old templating system we still use, let's
inline it.

OrederedLoader and OrderedDict are now redundant, because all dicts in Python
preserve insertion order.

* Remove the old templating system

We've now replaced the old templates with hugo, so we can get rid of this mess.
3 years ago
Richard van der Hoff 265ebef584
Fix `dump-swagger.py` for PyYAML 6.0. (#3443)
PyYAML 6.0 was released yesterday, and it finally drops support for `yaml.load`
without a `loader` argument, which has been deprecated since 2017.

We don't use any fancy yaml objects, so `safe_load` should be fine.
3 years ago
dependabot[bot] 6062e5052d
Bump ansi-regex from 5.0.0 to 5.0.1 (#3444)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v5.0.0...v5.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
Travis Ralston 5be0df02c5
Start annotating which version of the spec added a thing (#3425)
* Introduce a new "added-in" template and use it on endpoints

* Use "added-in" on schema properties too

* Annotate sections of the spec with their added versions

* Demo of "added-in" on a room version (to be fleshed out)

* Use clearer versioning semantics

* Update and fix validator for Swagger custom properties

* Fix docs
3 years ago
Travis Ralston 649fc2bdd2
Move room version spec to `/rooms` (#3423)
* 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
3 years ago
Travis Ralston f295e828dc
Fix non-permanent links in MSCs to withstand time (#3422)
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.
3 years ago
Travis Ralston 95d850c418
Update client-server API endpoints to move from r0 to v3 (plus whitespace fixes) (#3421)
* Blind find & replace all on client major version -> v3

* Fix up bad replacements

* Fix anchors for r0->v3

* Changelog
3 years ago
Travis Ralston 2d98cd3084
Describe new global specification versioning (#3420)
* Update versioning specification for Matrix

As per [MSC2844](https://github.com/matrix-org/matrix-doc/pull/2844)

* Mention vX versioning in /versions

* Changelog
3 years ago
Andy Balaam 2fc3982568
Remove extra 'an' from spec index (#3433)
Signed-off-by: Andy Balaam <andyb@element.io>
3 years ago
Andrew Fargo 43a71c0092
Remove all references to speculator (#3430)
Signed-off-by: DCFargo <drew.fargo@gmail.com>
3 years ago
Andrew Fargo f1a4a58755
Fix "invite_state" to "knock_state" (#3428) 3 years ago
Alexandre Franke 26c0c88882
🐛 Fix OpenAPI definition generation (#3418)
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
3 years ago
Travis Ralston 6226a47543
Remove defunct swagger Circle CI build (#3416)
* Remove defunct swagger Circle CI build

* Update config.yml
3 years ago
Quentin Gliech 84ccbeacca MSC2918: Refresh tokens (#2918)
* 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>
3 years ago
Alexandre Franke 0ee4c5eeef 💚 Hardcode the master branch for matrix.org
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>
3 years ago
Alexandre Franke 26d972a997 💚 Fix branch ref
Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>
3 years ago
Alexandre Franke 423d22ed23
Add API Server config for RapiDoc (#3415)
*  Add API Server config for RapiDoc

Signed-off-by: Alexandre Franke <alexandre.franke@matrix.org>

* Update scripts/dump-swagger.py

Co-authored-by: Alexandre Franke <alexandre.franke@matrix.org>
Co-authored-by: Travis Ralston <travisr@matrix.org>
3 years ago
Callum Brown 0c3b488805 MSC3231: Token authenticated registration (#3231)
* 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>
3 years ago
Travis Ralston b7e6104713
Remove extraneous mimetype from EncryptedFile examples, per MSC2582 (#3412)
* Remove extraneous mimetype from EncryptedFile examples, per MSC2582

MSC: https://github.com/matrix-org/matrix-doc/pull/2582

* changelog
3 years ago
Travis Ralston 7e67aa2e23
Clarify how redacted_because actually works for events (#3411)
* Clarify how redacted_because actually works for events

* changelog

* mention federation

* Fix wording

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>
3 years ago
Jonas Platte 6e78cde3eb
Fix wrong matrix.to URL in spec appendices (#3409) 3 years ago
Alexandre Franke 08b67761f9
💚 Trigger website rebuild (#3408)
Signed-off-by: Alexandre Franke <alexandre.franke@gmail.com>
3 years ago
Alexandre Franke 845e4c87db
🐛 Fix handling of postponed proposals (#3397)
Fixes #3396

Signed-off-by: Alexandre Franke <alexandre.franke@gmail.com>
3 years ago
Patrick Cloke fa479afa97
MSC3375: Room version 9. (#3375)
* Room version 9.

* Fix text which was swapped.

* Update stability.
3 years ago
Patrick Cloke d2cb13cc8c
Add proto-MSC on the design of URL previews. (#3378) 3 years ago
Alexandre Franke 89b0ad8051
Port CI to Github Actions (#3363)
This is intended to replace the existing Buildkite one, but the latter can be removed at a later point when all the bits are in place.
3 years ago
Alexandre Franke cbe3081685
🐛 Handle empty bodies when fetching MSCs (#3374)
Signed-off-by: Alexandre Franke <alexandre.franke@gmail.com>
3 years ago
Denis Kasak ed08c1cb9e Tweak PDU diagram demonstrating `prev_events`. (#3340)
This tweaks the DAG to be simpler, with two linear event chains E4 -> E3
-> E2 -> E1 and E6 -> E5 -> E2 -> E1. The extremities of the DAG are now
the first and only point in the DAG where multiple event parents occur.
Since the point of the diagram is to demonstrate this very situation,
it's better didactically if there is only one such situation in the
diagram.
3 years ago
Sorunome d9dd37de0c MSC2582: Remove mimetype from EncryptedFile object (#2582)
* add proposal

* Update proposals/2582-remove-mimetype-from-encrypted-file.md

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>

* Update proposals/2582-remove-mimetype-from-encrypted-file.md

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>

Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
3 years ago
Alexandre Franke 72888c9a89 Revert per room spell check language MSC
This reverts commit 70192e8e11.
This reverts commit 1b8f4e22b6.
3 years ago
Alexandre Franke c7c3a76c42 Fix MSC number 3 years ago
Alexandre Franke 3eb383c120 Add per room spell check language MSC 3 years ago
Richard van der Hoff 35277ff041 Trigger the matrix.org rebuild when the main branch builds 3 years ago
Richard van der Hoff f8b83b7fb1 Replace "Pagination" section in C-S API with text in appendices (#3366)
The Pagination section in the C-S API was, basically, full of rubbish. I think that anything of any value it contained was repeated either directly on the API definitions or in the text specific to syncing at https://spec.matrix.org/unstable/client-server-api/#syncing.

The conventions I've added to the Appendices are based on the discussions in #1898. They are there because I don't want to have to go through it all again next time we add a paginated API.

Fixes: #1898
Fixes: #2268
3 years ago
Travis Ralston 3662a1cf14 Merge pull request #3365 from aaronraimist/fix-404
Fix two links on the CS API page
3 years ago
Neil Alexander 3d278b891d Add clarification on binary data and base64 encoding to Appendices (#3362)
* Add clarification on binary data and base64 encoding (closes #3341)

* Add changelog fragment

* Delete 3362.clarification
3 years ago
Aaron Raimist 525728971b Fix two links on the CS API page
Signed-off-by: Aaron Raimist <aaron@raim.ist>
3 years ago
Travis Ralston 2c249fc6a1 Merge pull request #3364 from ColonisationCaptain/patch-1
Insert missing space
3 years ago
Richard van der Hoff 6bd7b6cbb5 Clarifications to pagination parameters for various APIs (#3353) 3 years ago
ColonisationCaptain 7c58999c6a Insert missing space
Insert missing space
3 years ago
Richard van der Hoff 4b2bbbabcc Start a 'conventions' section in the Appendices (#3350)
I wanted a section for "here's what new APIs ought to do", which isn't really
very useful for consumers of the existing APIs.
3 years ago
Richard van der Hoff cafb9ff5a8 Update documentation_style.rst (#3352) 3 years ago
Richard van der Hoff a187996383 Notes on how to use `hugo` from docker (#3349)
... and the minimum version required.
3 years ago
Richard van der Hoff 6afe10409e Update documentation_style.rst (#3351)
hugo tales commonmark.
3 years ago
Alexey Rusakov 6d2c388144 Merge pull request #3336 from lukaslihotzki/include-peek-events
OpenAPI: include peekEvents
3 years ago
Denis Kasak 14ed131761 Add newsfragment for #3339. (#3342) 3 years ago
Lukas Lihotzki 8a8db03a13 OpenAPI: include peekEvents
Disambiguate from getEvents by a trailing space in path (like inviteUser).

Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Denis Kasak 3fb4fcaad9 Merge pull request #3339 from matrix-org/dkasak/fix-typo-indentity
Fix typo in /_matrix/client/r0/account/3pid/delete (indentity -> identity).
3 years ago
Hubert Chathi b231220bbd Merge pull request #3337 from uhoreg/room_create_canonical_alias
room creation: create canonical alias event if alias specified
3 years ago
Denis Kasak ddbbd76b32 Fix typo in /_matrix/client/r0/account/3pid/delete. 3 years ago
Alexey Rusakov fbf4259a83 Merge pull request #3330 from lukaslihotzki/add-titles
OpenAPI: add titles
3 years ago
Hubert Chathi 8536cd3e16 drop initial state check 3 years ago
Alexey Rusakov 5749325fc3 Merge pull request #3329 from lukaslihotzki/missing-tags
OpenAPI: improve tags
3 years ago
Lukas Lihotzki 13f7df1379 OpenAPI: add titles 3 years ago
Hubert Chathi f814f86031 add changelog 3 years ago
Hubert Chathi 89089e8913 Merge pull request #3332 from lukaslihotzki/required-bodies
OpenAPI: require all bodies in cross_signing
3 years ago
Lukas Lihotzki 39e70a2902 OpenAPI: split User data tag
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Alexey Rusakov 3bf7e48e13 Merge pull request #3327 from lukaslihotzki/unique-ids
OpenAPI: fix key_backup
3 years ago
Hubert Chathi ee92c94cfe Mention that a canonical alias event should be created if alias specified 3 years ago
Hubert Chathi 88479ca851 Merge pull request #3331 from lukaslihotzki/add-uia
OpenAPI: add auth property in uploadCrossSigningKeys
3 years ago
Lukas Lihotzki 1a81a46865 OpenAPI: require all bodies in cross_signing
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Lukas Lihotzki 97ebe5aec2 OpenAPI: add missing tags
peekEvents remains untagged, because it is explicitly excluded.

Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Andrew Morgan ff2c93af1c Use `changelogs/release.yaml` for the version number source everywhere (#3310)
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
3 years ago
Lukas Lihotzki e3070bcdda OpenAPI: fix key_backup operation IDs 3 years ago
Alexey Rusakov 19a96c2484 Merge pull request #3236 from lukaslihotzki/format-uri
Use format: uri
3 years ago
Lukas Lihotzki c58d423aba OpenAPI: add auth property in uploadCrossSigningKeys
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Niels Basjes cf5b519963 Explain the reasons why `<hostname>` TLS certificate is needed rather than `<delegated_hostname>` for SRV delegation. (#3322)
Signed-off-by: Niels Basjes <niels@basjes.nl>
3 years ago
Travis Ralston 8b1e4d6a79 Merge pull request #3289 from matrix-org/clokep/room-v8
MSC3289: Room version 8
3 years ago
Lukas Lihotzki 91b232df48 OpenAPI: use uri format
In avatar_url, pusher url, wellknown base_url, getUrlPreview, and submit_url.

Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Travis Ralston cdcc24af11 Merge pull request #3238 from lukaslihotzki/required-bodies
OpenAPI: require all bodies in client-server
3 years ago
Patrick Cloke 268cc65198 Revert "Update redaction rules."
This reverts commit 203c107e9e.
3 years ago
Neil Alexander af0ebc7414 `/_matrix/federation/v1/user/devices/{userId}`: Rename `self_signing_keys` to `self_signing_key` (#3312)
Apparently, in response to a /_matrix/federation/v1/user/devices/{userId} request, Synapse actually returns a key called "self_signing_key" instead of "self_signing_keys".
3 years ago
Lukas Lihotzki ad0ff78316 OpenAPI: require all bodies in client-server
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Patrick Cloke 0b60680d33 Update redaction rules. 3 years ago
Travis Ralston f31adf19ce Merge pull request #3299 from matrix-org/clokep/restricted-rooms-redaction
Update MSC3083 with a note about redacting the allow key.
3 years ago
Matthew Hodgson 377aac16fa Update 3289-rooms-v8.md 3 years ago
Travis Ralston b84d11911f Merge pull request #3083 from matrix-org/clokep/restricted-rooms
MSC3083: Restricting room membership based on membership in other rooms
3 years ago
Patrick Cloke e229706ae4 Add note about redacting the allow key. 3 years ago
Patrick Cloke c4d2f94ef8 Add proposal for room version 8. 3 years ago
Alexey Rusakov c5631b30b8 sso_login_redirect: Fix a copy-pasted operationId 3 years ago
Patrick Cloke 7ff569f252 Note unstable prefix. 3 years ago
Travis Ralston c516ffd5ab Merge pull request #2778 from matrix-org/hs/proposal-appservice-login
MSC2778: Providing authentication method for appservice users
3 years ago
Patrick Cloke dcd6de59cd De-indent section. 3 years ago
Patrick Cloke fd0c909644 Clarifications.
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
3 years ago
Patrick Cloke 7cecb84afe Rename MSC. 3 years ago
Patrick Cloke c79d1ac350 Clarify error conditions.
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
3 years ago
Patrick Cloke d399653cab Fix typos.
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
3 years ago
Patrick Cloke 72961e6f29 More review comments. 3 years ago
Patrick Cloke 977146baf5 Include an additional error situation. 3 years ago
Patrick Cloke 58ccb86a34 Move changes to make/send_join out of auth rules section. 3 years ago
Patrick Cloke c6f0119b13 Move back section about errors for make/send_join & some review comments. 3 years ago
Patrick Cloke 67e558da52 Review feedback. 3 years ago
Patrick Cloke 27bee1bad8 Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
3 years ago
Patrick Cloke d329c216c4 Clarify if a resident server cannot issue a join vs. if they're unsure if the user is allowed to join. 3 years ago
Patrick Cloke 6b6aa2449a Add information about errors over federation. 3 years ago
Patrick Cloke cff5a8728e Add a note about resident servers. 3 years ago
Patrick Cloke 2bc4e86cb4 Updates from review. 3 years ago
Patrick Cloke 248cb8b310 Update the information on signature checking. 3 years ago
Patrick Cloke 72f564c236 Add note about including the authorising server in the content. 3 years ago
Patrick Cloke c42e89a4d4 Reflow. 3 years ago
Patrick Cloke 04c88f584c Clarify users must be joined to an allowed room.
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
3 years ago
Patrick Cloke 12a39f66df Reword intro. 3 years ago
Patrick Cloke aed1e23131 Add domains to the example room aliases. 3 years ago
Patrick Cloke e93accf198 Remove extraneous paragraph. 3 years ago
Patrick Cloke 7aeca9ccb6 Fix typo.
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
3 years ago
Patrick Cloke 1f7481bfbd Fix typo.
Co-authored-by: Travis Ralston <travisr@matrix.org>
3 years ago
Patrick Cloke 48674a3353 Fix typo.
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
3 years ago
Patrick Cloke 84178b1d39 Add notes about the via key and authorised servers being out of sync. 3 years ago
Patrick Cloke 75fc073bfc Clarify implications of signing events. 3 years ago
Patrick Cloke 750be83313 Clarify what happens if a homeserver cannot verify membership. 3 years ago
Patrick Cloke 2749a95251 Use a different room version to specify changes in join rules. 3 years ago
Patrick Cloke 289c64035f Pull note about ban & ACLs out of each join rule description. 3 years ago
Patrick Cloke ba63bedec0 Clarify that signature checks only apply to joining users. 3 years ago
Patrick Cloke 2171d175e8 Clarify soft-failure is extension of current algorithm.
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
3 years ago
Patrick Cloke 3377d55c28 Fix typos.
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
3 years ago
Patrick Cloke f4e2d925e3 Clarifications / simplifications. 3 years ago
Patrick Cloke 53bae34457 Remove the authorised servers list. 3 years ago
Patrick Cloke d445b07855 Clarifications.
Co-authored-by: Jonathan de Jong <jonathandejong02@gmail.com>
3 years ago
Travis Ralston e30a68a49e Remove what appears to be leftover notes 3 years ago
Patrick Cloke cd78eed3f1 Add a note about ensuring each allowed room has at least one server in it. 3 years ago
Travis Ralston 24fedc2299 Merge branch 'master' into hs/proposal-appservice-login 3 years ago
Patrick Cloke e3692edd09 Remove via field. 3 years ago
Patrick Cloke 066f25fd82 Add a list of trusted servers. 3 years ago
Patrick Cloke d63e39c4af Handle feedback from Travis. 3 years ago
Patrick Cloke 4afe946def Clarify security concerns. 3 years ago
Patrick Cloke 51650b63f2 Clarify auth rules for restrictedjoin rules. 3 years ago
Patrick Cloke 06f0d622a9 Clarify membership checking over federation. 3 years ago
Patrick Cloke 5d1bebedf0 Re-iterate that ban and server-acls matter. 3 years ago
Patrick Cloke 486026a711 Namespace the allow type. 3 years ago
Patrick Cloke 955160c750 Add a type field. 3 years ago
Patrick Cloke 5c6e76a63b Space -> room. 3 years ago
Patrick Cloke 963aa40665 A bit less passive. 3 years ago
Patrick Cloke 31cdf835b8 Many clarifications. 3 years ago
Patrick Cloke 084e6225c5 Clarify an edge case. 3 years ago
Patrick Cloke 6919bbf80c Remove bit about user IDs being listed directly. 3 years ago
Patrick Cloke 959c6aa816 Fix broken backlink. 3 years ago
Patrick Cloke 7994a1e85a Remove spaces summary changes. 3 years ago
Patrick Cloke ef02f82afb Add more notes about edge-cases. 3 years ago
Patrick Cloke 6686696e66 Spacing. 3 years ago
Patrick Cloke 4051810241 Fill in the TODO about what how to mark access via spaces for the summary API. 3 years ago
Patrick Cloke 35ce0b8f91 More wrapping. 3 years ago
Patrick Cloke 933c50480c Add notes from @madlittlemods. 3 years ago
Patrick Cloke 0992a4d60f Update dependencies to include MSC3173. 3 years ago
Patrick Cloke 85003eb784 Clarify link. 3 years ago
Patrick Cloke b2b21e986d Rework bits about peeking. 3 years ago
Patrick Cloke ebae487451 Update a placeholder. 3 years ago
Patrick Cloke 4143f9ddcb Document the error response. 3 years ago
Patrick Cloke f71e48c0ac Include the proposed MSC. 3 years ago
Patrick Cloke 82c2ed6a47 Add pointer to draft. 3 years ago
Travis Ralston 5d4713f168 Changelog for https://github.com/matrix-org/matrix-doc/pull/3225 3 years ago
Travis Ralston f433e07763 Merge pull request #3225 from sideshowbarker/client-server-api-Access-Control-Allow-Headers-drop-Options-Accept
Drop Origin & Accept from Access-Control-Allow-Headers value
3 years ago
Travis Ralston efbccb6edd Merge pull request #3228 from ilovecommits/patch-1
Correct 'once-off' to 'one-off'
3 years ago
Michael[tm] Smith d7cf63d981 Drop Origin & Accept from Access-Control-Allow-Headers value
This change drops the Origin and Accept header names from the
recommended value for the CORS Access-Control-Allow-Headers header. Per
the CORS protocol, it’s not necessary or useful to include them.

Per-spec at https://fetch.spec.whatwg.org/#forbidden-header-name, Origin
is a “forbidden header name” set by the browser and that frontend
JavaScript code is never allowed to set.

So the value of Access-Control-Allow-Headers isn’t relevant to Origin or
in general to other headers set by the browser itself — the browser
never ever consults the Access-Control-Allow-Headers value to confirm
that it’s OK for the request to include an Origin header.

And per-spec at https://fetch.spec.whatwg.org/#cors-safelisted-request-header,
Accept is a “CORS-safelisted request-header”, which means that browsers
allow requests to contain the Accept header regardless of whether the
Access-Control-Allow-Headers value contains "Accept".

So it’s unnecessary for the Access-Control-Allow-Headers to explicitly
include Accept. Browsers will not perform a CORS preflight for requests
containing an Accept request header.

Related: Related: https://github.com/matrix-org/synapse/pull/10114

Signed-off-by: Michael[tm] Smith <mike@w3.org>
3 years ago
Travis Ralston e5b907021c changelog for https://github.com/matrix-org/matrix-doc/pull/3254 3 years ago
ilovecommits 175e3c157d Correct 'once-off' to 'one-off' 3 years ago
Christian Paul 86b53be3d1 Add "knock" membership to /members endpoint (#3254) 3 years ago
Travis Ralston 87d22392ac Merge pull request #3173 from matrix-org/clokep/stripped-state
MSC3173: Expose stripped state events to any potential joiner
3 years ago
Travis Ralston 2ebae1cddd Merge pull request #3251 from matrix-org/dependabot/npm_and_yarn/postcss-7.0.36
Bump postcss from 7.0.32 to 7.0.36
3 years ago
Patrick Cloke c027957f01 Remove unstable prefixes. 3 years ago
Travis Ralston 6ba9ff5303 Merge pull request #3250 from matrix-org/jryans/mobile-toc-overlap
Fix sidebar overlap for small width devices
3 years ago
dependabot[bot] a58966ad6e Bump postcss from 7.0.32 to 7.0.36
Bumps [postcss](https://github.com/postcss/postcss) from 7.0.32 to 7.0.36.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/7.0.32...7.0.36)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
Patrick Cloke b9daaa3a3f Rework this (again) to remove the API based on conversations with the SCT. 3 years ago
Travis Ralston 3e186da139 Merge pull request #2732 from uhoreg/fallback_keys
MSC2732: Olm fallback keys
3 years ago
J. Ryan Stinnett ae227b7070 Fix sidebar overlap for small width devices
This resolves a jarring text overlap issue with the sidebar by only adjusting
the `max-height` at larger widths, which matches the original rule being
overridden.

Fixes https://github.com/matrix-org/matrix-doc/issues/3049
3 years ago
Patrick Cloke 4933ecd176 Add federation and reword a bit. 3 years ago
Patrick Cloke 8082b2f813 Clarify examples. 3 years ago
Patrick Cloke c37512343e Include an API endpoint. 3 years ago
Patrick Cloke 7daf3376b2 Clarify what changes are being proposed. 3 years ago
Patrick Cloke 2522ed5eae Fix typo.
Co-authored-by: Travis Ralston <travpc@gmail.com>
3 years ago
Patrick Cloke 1672ce2b0c Fix awkward wording. 3 years ago
Patrick Cloke 1c34a466ed Various clarifications based on feedback. 3 years ago
Patrick Cloke 086095f72e Also include the room topic. 3 years ago
Patrick Cloke 12abecf5b5 Wrap text. 3 years ago
Patrick Cloke 56b1b04544 Rename encrypted status to encryption information.
Co-authored-by: Travis Ralston <travpc@gmail.com>
3 years ago
Patrick Cloke 517174b19d Re-arrange security impact of knocking. 3 years ago
Patrick Cloke bf41af7c15 Remove security considerations (moved to MSC3083). 3 years ago
Patrick Cloke 34f006ce8b Strip whitespace. 3 years ago
Patrick Cloke c2a3b5d079 Wrapping. 3 years ago
Patrick Cloke 36a0251c9a Update MSC number. 3 years ago
Patrick Cloke 34cd85829b Wording. 3 years ago
Patrick Cloke b16b1a24d9 Add current proposals. 3 years ago
Travis Ralston b0223b8bb8 Merge pull request #3233 from matrix-org/hs/explicit-room-id-for-tombstones
Explicitly call replacement_room a room ID
3 years ago
Travis Ralston 153df04953 Merge pull request #3218 from matrix-org/dependabot/npm_and_yarn/browserslist-4.16.6
Bump browserslist from 4.14.0 to 4.16.6
3 years ago
Travis Ralston 4f03180b90 Merge pull request #3241 from matrix-org/dependabot/npm_and_yarn/glob-parent-5.1.2
Bump glob-parent from 5.1.1 to 5.1.2
3 years ago
Will Hunt 7fac138d9a Create 3233.clarification 3 years ago
Travis Ralston 30654f70ee Merge pull request #3176 from matrix-org/travis/clarification/lowercasing
Case fold instead of lowercase
3 years ago
dependabot[bot] 933624e28a Bump browserslist from 4.14.0 to 4.16.6
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.14.0 to 4.16.6.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.14.0...4.16.6)

Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
dependabot[bot] a8541d02de Bump glob-parent from 5.1.1 to 5.1.2
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: glob-parent
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
Will Hunt 2794fc8e29 Explicitly call replacement_room a room ID
Fixes https://github.com/matrix-org/matrix-doc/issues/3232
3 years ago
Hubert Chathi 221375b105 Merge pull request #3207 from toadjaune/patch-2
Fix a typo in event soft rejection schema
3 years ago
Travis Ralston 81da7ba480 Update 3167.clarification 3 years ago
Hubert Chathi c4e9e904e2 Merge pull request #3199 from uhoreg/deprecate_verification_start_spec
Deprecate verifications that don't begin with a request.
3 years ago
Hubert Chathi 53fedb2c61 Add changelog 3 years ago
Travis Ralston 8b40972872 iterate 3 years ago
Travis Ralston 96b86b0282 Merge pull request #3195 from matrix-org/travis/msc1772-7E
Change space's valid `order` range to 0x7E
3 years ago
Hubert Chathi b3b6fb3e10 add changelog 3 years ago
Hubert Chathi 586c4d865a Fix broken ASCII art 3 years ago
Travis Ralston 21a132d3a5 Merge branch 'master' into travis/clarification/lowercasing 3 years ago
Andrew Morgan fca6992cd9 Clarify that implementations can use stable prefixes once an MSC has merged (#3179)
Fixes #3146.

This PR changes the Matrix Spec Proposals page to clarify that implementations **do not** need to wait until a spec release to use stable prefixes, but that they can do so after the corresponding MSC has been merged. The justification is that once an MSC has been merged, it's fairly guaranteed that it will land in the spec. Yet it will take time for the spec release process to run its course, and we shouldn't make implementations wait for that.

The exception to this is if implementating a feature in a backwards-compatible way requires a new spec version to indicate to clients/servers that a feature has been added/changed. This situation is rare though, and most implementations won't fall into this category.
3 years ago
Travis Ralston eecdcf43ab Change space's valid `order` range to 0x7E
0x7F is DEL, which is clearly not intended by the proposal text.
3 years ago
Hubert Chathi f9c9fce1ad Deprecate verifications that don't begin with a request. 3 years ago
Arnaud Venturi 0d275cc739 Fix a typo in event soft rejection schema
Signed-off-by: Arnaud Venturi <github@toadjaune.eu>
3 years ago
Travis Ralston 7a013a53e5 Changelogs 3 years ago
Travis Ralston d7f01de1e6 Update i18n 3 years ago
Travis Ralston 4cb667ca27 Case fold instead of lowercase
Fixes https://github.com/matrix-org/matrix-doc/issues/3175
3 years ago
Travis Ralston e3f2836756 Merge pull request #3191 from RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1
Translations update from Weblate
3 years ago
Travis Ralston e97bfac552 Merge pull request #3190 from matrix-org/dependabot/npm_and_yarn/lodash-4.17.21
Bump lodash from 4.17.20 to 4.17.21
3 years ago
Weblate 0794722d82 Merge branch 'origin/master' into Weblate. 3 years ago
Travis Ralston c254aac25d Merge pull request #3186 from lukaslihotzki/fix-typo
Fix Typo
3 years ago
dependabot[bot] 685819049a Bump lodash from 4.17.20 to 4.17.21
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
Szimszon 1282e8a91c Translated using Weblate (Hungarian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/hu/
3 years ago
Travis Ralston 71a0f9f9a2 Merge pull request #3185 from matrix-org/travis/clarify/1772
Mention expected client behaviour of unknown types on MSC1772
3 years ago
Lukas Lihotzki 6c46933fbc Fix Typo
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Szimszon 0ea5f72c83 Added translation using Weblate (Hungarian) 3 years ago
Travis Ralston 2fbd3e6210 Merge pull request #3181 from lukaslihotzki/fix-add3pid-tag
OpenAPI: fix tags of add3PID
3 years ago
Travis Ralston 6012ddcdec Mention expected client behaviour of unknown types on MSC1772
This was discussed in various places, but never quite made it to the MSC.
3 years ago
Travis Ralston 86661bbfbb Merge pull request #3122 from uhoreg/deprecate_verification_start
MSC3122: Deprecate starting verifications without requesting first
3 years ago
Lukas Lihotzki 2fa7b59e1a OpenAPI: fix tags of add3PID
The tag needs to be set to include add3PID in scripts/swagger/api-docs.json.

Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
3 years ago
Andrew Morgan 5d0d5a3981 Clarify what happens when a concern is raised during FCP (#3180)
It wasn't entirely clear what should happen to the FCP timer (and state) when a concern is raised during FCP. After some discussion, we agreed that when a concern is raised:

1. FCP will continue to not conclude until at least 5 days have passed, but once those 5 days are up it *still* won't conclude until all concerns raised during FCP are resolved.
2. If a concern warrants a large enough change in the document, then the Spec Core Team may consider cancelling FCP and restarting the timer in order for people to have some time to think about and review the new changes.
3 years ago
Travis Ralston a5fea91d86 Merge pull request #3177 from matrix-org/travis/spec/spaces-groups-rm
Remove group identifiers
3 years ago
Travis Ralston fb3dde1c2c Merge pull request #3167 from matrix-org/travis/spec/msc2265-lower-3pid
Specify that email handling converts to lowercase first
3 years ago
Travis Ralston 3d217e0de0 Merge pull request #3101 from matrix-org/travis/spec/MSC2320-identity-versions
Add identity service versions API
3 years ago
Hubert Chathi adbe95259f add link to relevant spec 3 years ago
Travis Ralston 6917c708c9 Merge pull request #1772 from matrix-org/matthew/msc1772
MSC1772: Matrix spaces
3 years ago
Travis Ralston 3c01fa4681 Remove group identifiers
Groups are replaced by https://github.com/matrix-org/matrix-doc/pull/1772 and this probably shouldn't have made it into the spec in the first place without the remaining context of Groups.
3 years ago
Travis Ralston d41658e714 Merge pull request #3166 from matrix-org/travis/spec/msc2033-whoami-deviceid
Spec device_id on whoami
3 years ago
Travis Ralston c11efb35fe Merge pull request #3163 from matrix-org/travis/spec/msc2858-multisso
Describe social-sign-on (multiple SSO providers)
3 years ago
Hubert Chathi 620278786d Update proposals/3122-deprecate-starting-verifications-without-request.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
3 years ago
Andrew Morgan ad93aa6546 Update client_secret examples so that they are valid (#2985)
The regex of allowed characters for a `client_secret` parameter is `[0-9a-zA-Z.=_-]`.

This PR updates the `client_secret` spec examples, which currently include an invalid character (an apostrophe).
3 years ago
Travis Ralston fbec7a1bcb Merge pull request #3169 from matrix-org/travis/spec/msc2284-is-optional
Downgrade identity server failure to FAIL_PROMPT instead of FAIL_ERROR
3 years ago
Hubert Chathi fbbdd0f6cc I should pay attention when my editor says that things are misspelled 3 years ago
Travis Ralston 466911b253 Merge pull request #3170 from matrix-org/travis/spec/msc2713-rm-v1-id
Remove v1 identity service API
3 years ago
Hubert Chathi e0ec01a999 use MSC number 3 years ago
Hubert Chathi ca3c42d865 deprecate starting verifications without first requesting 3 years ago
Travis Ralston 53833d49a5 Spelling 3 years ago
Travis Ralston c1d1f88a55 Update data/api/identity/versions.yaml
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
3 years ago
Travis Ralston c5eaa59c79 Changelog 3 years ago
Travis Ralston 2c3d7b1682 Apply suggestions from code review
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
3 years ago
Travis Ralston 457f3995af Merge pull request #3154 from matrix-org/travis/spec/knock-knock-whos-there
Add knocking to the spec
3 years ago
Travis Ralston 21a0a97134 changelog 3 years ago
Travis Ralston 67d5d9eb49 Changelog 3 years ago
Travis Ralston 94ca646fb7 changelog 3 years ago
Travis Ralston 57f609cf1b Typo fixes 3 years ago
Travis Ralston 3b2c0ff233 Spec device_id on whoami
Spec for https://github.com/matrix-org/matrix-doc/pull/2033
3 years ago
Travis Ralston 3683d334f7 Clarify render approach 3 years ago
Hubert Chathi ec9ea2b6e3 Merge pull request #3149 from uhoreg/qr_codes_spec
Add spec for verification by QR codes.
3 years ago
Travis Ralston 01a7f06ce4 Add missing endpoint changelog 3 years ago
Travis Ralston 49a5ca3553 Downgrade identity server failure to FAIL_PROMPT instead of FAIL_ERROR
Spec for https://github.com/matrix-org/matrix-doc/pull/2284
3 years ago
Travis Ralston 37c3a3f855 Remove v1 identity service API
Spec for https://github.com/matrix-org/matrix-doc/pull/2713
3 years ago
Travis Ralston 7cef7d0fcf Specify that email handling converts to lowercase first
Spec for https://github.com/matrix-org/matrix-doc/pull/2265
3 years ago
Travis Ralston fc6aa30000 Merge branch 'master' into travis/spec/MSC2320-identity-versions 3 years ago
Travis Ralston 3aa517a868 Clarify provider naming 3 years ago
Hubert Chathi e9e0d8ee47 Merge pull request #3151 from uhoreg/single_ssss_spec
Document Single SSSS.
3 years ago
Travis Ralston 57f4347b5d Fix general wording 3 years ago
Travis Ralston de19b86eed Changelog 3 years ago
Travis Ralston cbd761df17 Apply suggestions from code review
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
3 years ago
Hubert Chathi 3084f3d32f Merge pull request #3150 from uhoreg/verification_fixes
Make SAS outline fit with key verification in DM flow.
3 years ago
Travis Ralston 8bbcee39a5 Update data/api/server-server/knocks.yaml
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
3 years ago
Travis Ralston be86e638c5 Add identity service versions API
Specs [MSC2320](https://github.com/matrix-org/matrix-doc/pull/2320)
Built upon https://github.com/matrix-org/matrix-doc/pull/3094
3 years ago
Travis Ralston c124462747 Move brand registry out of structured data directory
Markdown is not structured data.
3 years ago
Hubert Chathi 194fef8022 Merge pull request #3147 from uhoreg/cross_signing_backup_ssss
Add information about using SSSS for cross-signing and key backup.
3 years ago
Travis Ralston ee3ca86b6c Declare required properties correctly 3 years ago
Travis Ralston d9bb8f46d1 Add changelogs 3 years ago
Travis Ralston 2d39ed69c3 Add changelogs 3 years ago
Travis Ralston 3b426846fe Describe social-sign-on (multiple SSO providers)
Spec for [MSC2858](https://github.com/matrix-org/matrix-doc/pull/2858)
3 years ago
Travis Ralston fa6cc8a1ff Add knocking to the spec
Spec for https://github.com/matrix-org/matrix-doc/pull/2998
Spec for https://github.com/matrix-org/matrix-doc/pull/2403

This deliberately does not help towards fixing https://github.com/matrix-org/matrix-doc/issues/3153 in order to remain consistent with prior room versions, and to keep the diff smaller on this change. A future change will address room version legibility.
3 years ago
Weblate 1c94fb1aab Merge branch 'origin/master' into Weblate. 3 years ago
Hubert Chathi 1a1f01234d Apply suggestions from code review
Co-authored-by: Travis Ralston <travpc@gmail.com>
3 years ago
Hubert Chathi b2cb2a3c20 add changelog 3 years ago
Hubert Chathi 7a960375cc Update content/client-server-api/modules/end_to_end_encryption.md
Co-authored-by: Travis Ralston <travpc@gmail.com>
3 years ago
Travis Ralston 4b40ecc53d Update i18n 3 years ago
Hubert Chathi 21fa486b3b add changelog 3 years ago
Travis Ralston 6ffbc5d269 Merge pull request #2713 from matrix-org/travis/msc/remove-v1-identity
MSC2713: Remove deprecated v1 Identity Service API
3 years ago
Hakim Oubouali 0b823e0b03 Translated using Weblate (Central Atlas Tamazight)
Currently translated at 40.6% (26 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/tzm/
3 years ago
Hubert Chathi c85f98bdab add changelog 3 years ago
Hubert Chathi ca37ada9e2 Document Single SSSS. 3 years ago
Hubert Chathi c3a234843b add changelog 3 years ago
Travis Ralston cd89f77e2b Merge remote-tracking branch 'RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1' 3 years ago
Hubert Chathi bb06dbdb2a Add information about using SSSS for cross-signing and key backup. 3 years ago
Hubert Chathi 8019699dc5 Merge pull request #3139 from uhoreg/verification_in_dms_spec
spec verification in DMs and m.key.verification.ready/done
3 years ago
Hakim Oubouali 4183893ec2 Added translation using Weblate (Central Atlas Tamazight) 3 years ago
Hubert Chathi f9dce3dfed Add spec for verification by QR codes. 3 years ago
Hubert Chathi fd5da297d8 Make SAS outline fit with key verification in DM flow. 3 years ago
Hubert Chathi 1638d2f32e Apply suggestions from code review
Co-authored-by: Travis Ralston <travpc@gmail.com>
3 years ago
Thibault Martin 8a7a023d3c Translated using Weblate (French)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/fr/
3 years ago
Hubert Chathi de1a468630 add changelog 3 years ago
Hubert Chathi b5bdfffa53 spec verification in DMs and m.key.verification.ready/done 3 years ago
Travis Ralston 5e80d36511 Merge pull request #3114 from matrix-org/travis/rm-old-api
Remove legacy directories
3 years ago
Travis Ralston becd2257c0 Remove legacy spec docs 3 years ago
Travis Ralston 9c8a0e9ca3 Merge pull request #2241 from uhoreg/e2e_verification_in_dms
MSC2241: Key verification in DMs
3 years ago
Andrew Morgan 665c31e224 Switch code formatting note about changelogs from RST to MD (#3103) 3 years ago
Travis Ralston 8f5c039273 Update readme for docs 3 years ago
Travis Ralston 8d73a17f5b Cut out legacy build scripts 3 years ago
Travis Ralston eb7337044d Merge pull request #3128 from DevinR528/direct-examp-fix
Fix user ID examples in direct_to_device schema
3 years ago
Travis Ralston d0d6b77053 Merge pull request #3099 from matrix-org/travis/spec/MSC2801-untrusted-bodies
Sprinkle some DANGER: UNSAFE warnings over the spec about event bodies
3 years ago
Richard van der Hoff 726be04841 remove documentation of non-existent directory 3 years ago
Travis Ralston a855ed338b Fix event size restriction (#3127)
Fixes https://github.com/matrix-org/matrix-doc/issues/3126
3 years ago
Travis Ralston 5e211480bf add changelog 3 years ago
Travis Ralston 208a0806dd Merge pull request #3098 from matrix-org/travis/spec/r2-MSC2010-MSC2422-MSC2557-color-spoilers
Incorporate spoilers and `color` tag allowance
3 years ago
Travis Ralston 5d2cb50c58 Apply suggestions from code review
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
3 years ago
Travis Ralston 52cd88f070 Rewrite readme and update contributor docs
Incorporates https://github.com/matrix-org/matrix-doc/pull/3025/
3 years ago
Travis Ralston 8792da2ee0 Merge pull request #3116 from matrix-org/clokep/bleecker
Use the same domain for room ID and avatar URL.
3 years ago
Devin Ragotzy cfc55b243d Fix user ID examples in direct_to_device schema 3 years ago
Travis Ralston 45973a830f Merge pull request #3100 from matrix-org/travis/spec/MSC2184-details-tag
Allow <details> and <summary> in suggested HTML subset
3 years ago
Travis Ralston 4fd262a237 Changelog 3 years ago
Travis Ralston 06d23f04aa Changelog 3 years ago
Travis Ralston 456353c8b4 Add changelogs 3 years ago
Travis Ralston 18c336080f Merge pull request #3094 from matrix-org/travis/cutover-1
Cut over to the new spec authoring platform
3 years ago
Travis Ralston 334fc56681 Changelog 3 years ago
Travis Ralston a0345ea0bb Incorporate spoilers and `color` tag allowance
Specs [MSC2010](https://github.com/matrix-org/matrix-doc/pull/2010)
Specs [MSC2557](https://github.com/matrix-org/matrix-doc/pull/2557)
Specs [MSC2422](https://github.com/matrix-org/matrix-doc/pull/2422)
Obsoletes https://github.com/matrix-org/matrix-doc/pull/2549
Built upon https://github.com/matrix-org/matrix-doc/pull/3094
3 years ago
Travis Ralston 30f37f1e66 Sprinkle some DANGER: UNSAFE warnings over the spec about event bodies
Specs [MSC2801](https://github.com/matrix-org/matrix-doc/pull/2801)
Based on https://github.com/matrix-org/matrix-doc/pull/3094
3 years ago
Patrick Cloke cee03d7625 Use the same domain for room ID and avatar URL. 3 years ago
Travis Ralston 2603ea6339 goodbye legacy config 3 years ago
Travis Ralston 228fcb8175 Allow <details> and <summary> in suggested HTML subset
Specs [MSC2184](https://github.com/matrix-org/matrix-doc/pull/2184)
Based on https://github.com/matrix-org/matrix-doc/pull/3094
3 years ago
Travis Ralston 7e6ab07f96 Line length and words 3 years ago
Travis Ralston a2280c7815 s 3 years ago
Travis Ralston b518e4ade0 Finish sentence 3 years ago
Travis Ralston b455fc73f1 Reference drafts properly 3 years ago
Travis Ralston 62896cdea9 Apply suggestions from code review
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
3 years ago
Weblate b0621f568b Merge branch 'origin/master' into Weblate. 3 years ago
Travis Ralston aab72c3d14 Move drafts to attic to reduce confusion 3 years ago
Travis Ralston f0e0477a3e Update i18n 3 years ago
Travis Ralston 283e3acdde Merge pull request #3091 from aaronraimist/mxc-example
Fix example MXC URI for m.presence
3 years ago
Samu Voutilainen 4b001c524c Translated using Weblate (Finnish)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/fi/
3 years ago
Travis Ralston 64ad52ddd0 Merge pull request #3093 from RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1
Translations update from Weblate
3 years ago
Travis Ralston dfdb5bc1a9 Run i18n 3 years ago
Aaron Raimist d540273625 Add changelog
Signed-off-by: Aaron Raimist <aaron@raim.ist>
3 years ago
Travis Ralston 28acb483f2 Merge pull request #3092 from RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1
Translations update from Weblate
3 years ago
Aaron Raimist d8d84b64d5 Fix example MXC URI for m.presence
Signed-off-by: Aaron Raimist <aaron@raim.ist>
3 years ago
Travis Ralston 005d6b7802 Merge pull request #2312 from quotient-im/kitsune/matrix-uri
MSC2312: Matrix URI scheme proposal
3 years ago
Weblate 24d36bdacc Merge branch 'origin/master' into Weblate. 3 years ago
Travis Ralston 8fc8a6daad Merge pull request #3085 from matrix-org/dependabot/npm_and_yarn/y18n-4.0.1
Bump y18n from 4.0.0 to 4.0.1
3 years ago
xiao chi 464651e39a Translated using Weblate (Japanese)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/ja/
3 years ago
Travis Ralston af5580cda0 Merge pull request #2403 from Sorunome/soru/knock
MSC2403: Add "knock" feature
3 years ago
dependabot[bot] 41aa1d65ac Bump y18n from 4.0.0 to 4.0.1
Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
Travis Ralston 4318c18682 Merge pull request #2557 from matrix-org/travis/msc/spoiler-fallback
MSC2557: Proposal to clarify spoilers
3 years ago
Travis Ralston c9440665e8 Merge pull request #2801 from matrix-org/rav/proposal/untrusted_event_data
MSC2801: Make it explicit that event bodies are untrusted data
3 years ago
Travis Ralston 95dbd51f6a Merge pull request #2320 from matrix-org/babolivier/identity-versions
MSC2320: Versions information for identity servers
3 years ago
Travis Ralston a064779ceb Merge pull request #2874 from uhoreg/single_ssss
MSC2874: Single SSSS
3 years ago
Travis Ralston 39e82409ab Merge pull request #2184 from ananace/html_details
MSC2184: Allow the use of the HTML <details> tag
3 years ago
Travis Ralston fa71522c09 Merge pull request #2858 from matrix-org/t3chguy/msc/multi-sso
MSC2858: Multiple SSO Identity Providers
3 years ago
Andrew Morgan 97f8e1248b Attempt to fix broken breadcrumb links
Apparently this is a bug when canonifyURLs = true, which is a required option
to fix relative urls on spec pages.
3 years ago
Travis Ralston 1399cdfd5c Update sas-emoji.json for translations 3 years ago
Travis Ralston f37e5787b9 Merge pull request #3040 from RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1
Translations update from Weblate
3 years ago
Weblate f393c6ec4c Merge branch 'origin/master' into Weblate. 3 years ago
Andrew Morgan 888658dbff Write font files as binary instead of text (#3039)
This caused the font files to be corrupt and rejected by the browser's
sanitising engine.
3 years ago
Andrew Morgan e77c2e3e10 Opt for serving new spec JS/CSS dependencies locally instead of downloading from CDNs (#3036)
This PR does two things:

* Updates the git submodule for the new spec hugo theme ([google/docsy](https://github.com/google/docsy)) to our fork ([matrix-org/docsy](https://github.com/matrix-org/docsy)) which has a couple changes to load JS from local sources instead of remote, as well as allowing sites to override the URL that font CSS files are loaded from. Note that my definition of "font CSS" files here as CSS files that contain settings and point to locations of where font files (`.woff2`) are located.
* Adds a script (and the files generated as a result of running that script) that can take a google fonts URL, download the fonts it points to and spit out those fonts as well as a font CSS file pointing to them for local distribution. We then use the resulting font CSS file in our project variables.

This brings the benefit of not serving files from a CDN which can track users across the web, as well as inadvertently pinning docsy to a specific commit. The downside is that we need to remember to update [matrix-org/docsy](https://github.com/matrix-org/docsy) when needed (and apply the patches on top, though they're quite small).
3 years ago
Andrew Morgan ecfd57c504 Set canonifyURLs to true (#3037)
This fixes absolute path links when we're hosting the site under a
different path other than /.
3 years ago
Travis Ralston b139312532 Merge pull request #2998 from matrix-org/anoa/room_version_7
MSC2998: Room Version 7
3 years ago
Andrew Morgan ee1f85ca8b Update prod build's baseURL to /unstable (#3035)
Since we're deploying to https://spec.matrix.org/unstable now. This only updates the `baseURL` for our buildkite build. The default is still `/` when doing a local build.
3 years ago
Andrew Morgan a17023962c Update CircleCI and Buildkite configs to build the new spec (#3017)
This PR attempts to update the CI of matrix-doc to build [the new spec redesign](https://github.com/matrix-org/matrix-doc/issues/2906). It does so by additionally building the new spec in parallel to the old. The plan is to continue to host the old spec at https://matrix.org/docs/spec, while the new spec will be at https://spec.matrix.org. Eventually we will retire the old version of the spec, and have the old URL redirect to the new one.

In detail, this PR:
* Adds a new step to CircleCI to build the new spec with `hugo`. This step uses alpine, grabs some dependencies, and then builds the HTML.
  * We needed to hand some specific options to hugo for CircleCI in order to continue allowing CircleCI to host temporary builds of the spec after each CI run. This required changing some assumptions related to relative paths.
  * CircleCI's artifacts hosting is also quite limited. Specifically it will not automatically resolve `/some/path` to `/some/path/index.html`, which our hugo theme relied on. Fixes were implemented for this, but we may want to consider switching away from CircleCI artifacts as a host, and using something like [netlify](https://www.netlify.com/) instead.
* Modifies the existing Buildkite pipeline step to build both the new spec in a separate step. It additionally modifies the old spec to be built with alpine. (Separate out into another PR)
  * We'd like to separate out the deployment of matrix.org from the new spec. Therefore a new step, with a separate artifact build (`spec.tar.gz`). We will eventually remove the old step and the matrix.org build trigger.
* Modifies `pyproject.toml` to update the config of [giles](https://github.com/OpenAstronomy/baldrick/blob/master/baldrick/plugins/circleci_artifacts.py), which is what creates the "docs", "swagger" links in the CI steps for matrix-docs PRs.
  * A new step was added for the new spec. The old spec was renamed to "legacy".
3 years ago
Andrew Morgan 6ffa13d480 Update legacy doc buildkite step with comments and latest versions (#3033) 3 years ago
Andrew Morgan 25605b65a3 Don't generate matrix assets on CircleCI (#3034)
We already do this in the buildkite pipeline, so doing so in CircleCI is just
duplicate work.
3 years ago
Travis Ralston 5d275ab79e Merge pull request #3024 from matrix-org/travis/gh-tmpl
Override issue templates from org
3 years ago
Travis Ralston 3cb3b52753 Merge pull request #3003 from wbamberg/block-sizes
More consistent widths
3 years ago
Travis Ralston 7da1ed51a3 Update idea.md 3 years ago
Travis Ralston 551c22247d Override issue templates from org
We don't need OS information for a bug report here.
3 years ago
wbamberg 54a4f689a0 Merge pull request #3002 from wbamberg/fix-h7-h8
Remove h7 and h8 headings
3 years ago
Will 88e81b9c82 More consistent widths 3 years ago
wbamberg 1bfc3de6d6 Merge pull request #2992 from wbamberg/support-changelogs
Support changelogs
3 years ago
wbamberg 94f6cd21e3 Clarify the current situation wrt key derivation algorithms
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
3 years ago
wbamberg f1711ff3e4 Merge pull request #3000 from wbamberg/add-proposals-tables
Support rendering of proposal tables
3 years ago
Will a974bdaf45 Remove h7 and h8 headings 3 years ago
wbamberg d5f975edaf Merge pull request #2999 from wbamberg/stop-scroll-overflow
Prevent sidebar scroll from overflowing
3 years ago
Will 25924a498c Fix tab/spaces mix 3 years ago
wbamberg e88a18ca5d Merge pull request #2988 from wbamberg/support-rendered-data
Support rendered data
3 years ago
Will 2371a7a804 Prevent sidebar scroll from overflowing 3 years ago
Will 643cdd19c8 Support rendering of proposal tables 3 years ago
wbamberg 07c66616ac Fix typo in comment
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
3 years ago
wbamberg 6fc1f52f2f Fix typo in comment
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
3 years ago
wbamberg 942f865f64 Fix typo in comment
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
3 years ago
Will a0316f6794 Update path to Swagger files 3 years ago
Will 3e03e7b17a A few small fixes in /data and /content 3 years ago
Will 9a179038cc Fix links to rendered APIs 3 years ago
Will 72ff5b92cb Update content to call the new template for event definitions 3 years ago
Will 52f5e73a39 Update content to call the new template for HTTP APIs 3 years ago
Will 1d629bae40 Add styles for rendered data 3 years ago
Will 5f45a897ef Add templates used to render data 3 years ago
Will 06983e1eb1 Remove RST comment, add bullets into list 3 years ago
Will 215b625d81 Replace csv table with GFM table 3 years ago
Will 873e8b30eb Fix links in data 3 years ago
Will 27f8867aa0 Change RST code formatting markup to Markdown 3 years ago
Will c7cf90abfa Remove RST alert directives, replace with simple Markdown formatting 3 years ago
Will 00c6a866e2 Move raw API and event schemas into /data directory
Historical note: this was originally a series of several commits, spread out
over several weeks. They have been squashed together to make `git annotate`
work properly.

The original commits were:
 * 91ab3934 <Will> 2021-01-25 21:16:42 -0800 Add raw API end event schemas into /data directory
 * aae22f47 <Will> 2021-01-25 21:33:06 -0800 Remove non-data files
 * 1092d4ca <Will> 2021-01-26 20:41:33 -0800 Add data-compatiuble extension (.yaml) to all data files that currently omit one
 * 21060109 <Will> 2021-01-26 20:57:28 -0800 Remove symlink to event-schemas, and update openAPI schema paths accordingly
 * 4f633845 <Travis Ralston> 2021-04-12 21:54:54 -0600 Fix event schema examples too
 * 301c7b2f <Will> 2021-02-05 10:15:42 -0800 Restore docs describing OpenAPI extensions that we use
3 years ago
wbamberg a26c352d78 Merge pull request #1 from matrix-org/anoa/support-rendered-data
Reinstate and fix schema validation files
3 years ago
Andrew Morgan 3c66e149f3 Move validator.js to scripts/ directory, update calls 3 years ago
Andrew Morgan 64231f079d Update checker scripts to work correctly from the scripts/ dir
check-swagger-sources also had a bug which caused it to fail while validating the directory
structure of /data/api. This was fixed by @KitsuneRal - thank you!
3 years ago
Andrew Morgan b8dafe86f4 Move and more aptly name check_examples.py scripts 3 years ago
Travis Ralston fb091fed03
Apply suggestions from code review
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
Co-authored-by: penn5 <penn5@users.noreply.github.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
3 years ago
Will Hunt f9a5b34099
Clarify /register / /login 3 years ago
Will Hunt 16290a0fe5
it's 3 years ago
Will Hunt 93dd264c30
words 3 years ago
Will Hunt c8e0ed6062
Hopefully improve words around M_EXCLUSIVE 3 years ago
Will Hunt b8ab3d0c87
Remove point about Element showing unexpected devices 3 years ago
Will Hunt 538ac0940e
Update Alternatives section 3 years ago
Will Hunt 0c26298b93
Update proposals/2778-appservice-login.md
Co-authored-by: Christian Paul <christianp@matrix.org>
3 years ago
Christian Paul 4ca319db09
Update proposals/2778-appservice-login.md 3 years ago
Patrick Cloke 97737596e7 Remove cycle breaking algorithm to be specced in the future, if necessary. 3 years ago
Matthew Hodgson c2d0d1efa0 include m.room.create in knock_state (will be overtaken by MSC3173) 3 years ago
Will Hunt e781b75847 Mention that /register provides a token but it's not helpful 3 years ago
Will Hunt bf9cc0a562 M_EXCLUSIVE 3 years ago
Will Hunt 03491c5cfd Add security considerations 3 years ago
Matthew Hodgson 757218c082 relax requirements on cycle-cutting and link to valere's alg 3 years ago
Matthew Hodgson 413e346363 note the rationale behind using the # sigil 3 years ago
Matthew Hodgson acdf9851e9 incorporate uhoreg feedback 3 years ago
Matthew Hodgson 2981baad3d
Update proposals/1772-groups-as-rooms.md
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
3 years ago
Matthew Hodgson 7432d254c6 incorporate travis feedback 3 years ago
Matthew Hodgson 0d71150424 remove confusing mention of peeking & dependent MSCs 3 years ago
Matthew Hodgson 1e2ed52b7e add more justification for immutable room types 3 years ago
Matthew Hodgson 37e04f72ae tiebreak ordered spaces sensibly 3 years ago
Matthew Hodgson f07e82e34b clarify the charsets of our lexicographic orderings 3 years ago
Matthew Hodgson 00912f9c1e clarify how to deterministically cut cycles 3 years ago
Will Hunt cb7bbf3787 I don't think this is a concern 3 years ago
Will Hunt 2c817cb1c5 Add another advantage 3 years ago
Will Hunt c9b7e9f22d Reword need for token 3 years ago
Will Hunt 7a3b7b38a5 Add implementations section 3 years ago
Patrick Cloke 12d08ca83d Consistency and update links. 3 years ago
Patrick Cloke 6d007e83ca Defer a TODO to the future. 3 years ago
Hubert Chathi 609641636d decouple from MSC1849/MSC2674 3 years ago
Alexey Rusakov 8935503470 Fix a left-over spotted in the last moment 3 years ago
Alexey Rusakov d27ea07bcb Minor brush-ups and cleanup 3 years ago
Alexey Rusakov 67635b0dd7 Be even clearer about user confirmations 3 years ago
Alexey Rusakov 037ebbf1ca Be even clearer about the authority part 3 years ago
Alexey Rusakov 9dd0854aee Add a link to CS API 3 years ago
Richard van der Hoff e7041525bf Include `create` in invite_room_state 3 years ago
Andrew Morgan a8f4ada8a8 Make join_rules field of PublicRoomChunk an optional value 3 years ago
Andrew Morgan 9ebfd98a7a
Apply suggestions from code review
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
3 years ago
Andrew Morgan 10267df76e Add missing 403/404 response codes 3 years ago
Andrew Morgan 11996fb436 clarify some words 3 years ago
Hubert Chathi 0841f31ce4
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
3 years ago
Andrew Morgan a1a40c6346 Be consistent about event auth rules 3 years ago
Andrew Morgan 7f0b2d66a0 Update unstable endpoints from i.e xyz.amorgan/knock -> xyz.amorgan.knock
I'm doing this for two reasons:

1) If I ever wanted to create another knock-related MSC, it would be nice to be able
to give it a different namespace for endpoints, such as xyz.amorgan.knock2/knock. If
we were only using xyz.amorgan as the namespace for endpoints, that restricts that
namespace to only work for one MSC which attempts to use /knock as part of an endpoint.

2) I accidentally made the implementation use xyz.amorgan.knock/knock :)
3 years ago
Richard van der Hoff 52dfaaabd4
Update proposals/2801-untrusted-event-data.md
Co-authored-by: Jonathan de Jong <jonathandejong02@gmail.com>
3 years ago
Richard van der Hoff 065b0990e6
Update proposals/1772-groups-as-rooms.md 3 years ago
Richard van der Hoff 5e7ed2b9c4 Tweak wording about lexicographic ordering 3 years ago
Richard van der Hoff 9ca94235c6 Suggested rooms 3 years ago
Richard van der Hoff c0c51383e9 Move "via" problem to a "potential issue" 3 years ago
Richard van der Hoff 8a61ce9032 remove 'present' flag 3 years ago
Richard van der Hoff 6c9d469d56 add an issue about lost parent links 3 years ago
Richard van der Hoff 0bdbec238b Accept m.space.parent links if there is a reverse link 3 years ago
Richard van der Hoff 2e6d7d1c54 spaces are *primarily* referred to by their room ID. 3 years ago
Richard van der Hoff acdb6f1c3d Move "auto-join" out to "future extensions"
we're not doing this bit yet.
3 years ago
Richard van der Hoff 7d757ce8fa minor wording tweaks 3 years ago
Richard van der Hoff dcb18f03dc Move security consideration to MSC2962
I think the peeking thing is specific to access control.
3 years ago
Richard van der Hoff 469b64c5cd rip out m.room.description
if/when we need it, we should follow MSC2875
3 years ago
Richard van der Hoff 62b9154fa7 Remove lost footnotes
These should have been part of MSC2962.
3 years ago
Richard van der Hoff bc1466206d related MSCs 3 years ago
Richard van der Hoff 1cfe6bc0ae MSC1840 is out again. 3 years ago
Richard van der Hoff a8a7acce1e update UIA 3 years ago
Richard van der Hoff 49f7624d55 update brand descriptions 3 years ago
Richard van der Hoff d5166ebc1a
Update proposals/2858-Multiple-SSO-Identity-Providers.md 3 years ago
Andrew Morgan 68d2d7cfdb Note that homeservers should pass down invites to the client if they fail on autojoin 3 years ago
Richard van der Hoff 7871da7565
Update proposals/2858-Multiple-SSO-Identity-Providers.md
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
3 years ago
Richard van der Hoff 1ba0c39b14 Change the brand identifiers again 3 years ago
Richard van der Hoff 178cbe1c3a
Update proposals/2858-Multiple-SSO-Identity-Providers.md
Co-authored-by: Travis Ralston <travpc@gmail.com>
3 years ago
Andrew Morgan 8bfef19a39 Remove further traces of old /rooms/roomId/knock CS endpoint 3 years ago
Andrew Morgan ef840c1b53 Split the 'Membership change to ' section into rejecting/rescinding knocks 3 years ago
Andrew Morgan 6556b95233 Move API endpoint sections up to the top of the proposal 3 years ago
Andrew Morgan c915b6442b Update alternatives section 3 years ago
Andrew Morgan 09018be96c Link to existing spec documentation on the public rooms directory 3 years ago
Andrew Morgan 53ad7e3f66 Ensure we return the room_id after knocking via the CS API 3 years ago
Andrew Morgan c575f88d13 Move endpoint extras under endpoint's header 3 years ago
Andrew Morgan c9f34e818e Link to /join/roomIdOrAlias 3 years ago
HelaBasa 885e203886 Translated using Weblate (Sinhala)
Currently translated at 6.2% (4 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/si/
3 years ago
Richard van der Hoff a596efdf8b Get rid of the registry for now
it should just be a proposal. We can add the registry later.
3 years ago
Richard van der Hoff 62cc76f28b Move sequence diagram into doc 3 years ago
Richard van der Hoff 9a4e821ddc
fix link 3 years ago
Richard van der Hoff 2d4da148d8
more fix markdown 3 years ago
Richard van der Hoff 434d686b2d
fix up markdown 3 years ago
Richard van der Hoff dce9c9f09a Move the idp `brand` assignments out to a registry 3 years ago
HelaBasa 9d01d166cb Added translation using Weblate (Sinhala) 3 years ago
Michael Telatynski ba3e204a48
Update proposals/2858-Multiple-SSO-Identity-Providers.md
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
3 years ago
Richard van der Hoff 6badb3b6d8 Notes on OAuth2 and unknown idps 3 years ago
Ricardo e32d9a9af3 Translated using Weblate (Spanish)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/es/
3 years ago
Andrew Morgan 49a72862a9 Allow knock->knock transitions 3 years ago
Andrew Morgan 2acc0a697b Clarify prose 3 years ago
b068931cc450442b63f5b3d276ea4297 79d02c49ca Translated using Weblate (German)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/de/
3 years ago
Andrew Morgan e790ad2120
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
3 years ago
Travis Ralston fadee276d2 Alter to reserve v7 instead of declare v7 3 years ago
zer0-x ec98621bb1 Translated using Weblate (Arabic)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/ar/
3 years ago
Kateřina Churanová 86415178c7 Translated using Weblate (Czech)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/cs/
3 years ago
zer0-x 146c7ba304 Added translation using Weblate (Arabic) 3 years ago
Kateřina Churanová f1e952ec93 Added translation using Weblate (Czech) 3 years ago
Andrew Morgan 24f61c283c Note that implementations may choose to auto-accept knock-related invites 3 years ago
Andrew Morgan eda65847a3 Comment on push rules 3 years ago
Andrew Morgan 248a3da5ca Switch /send_knock/ from v2 to v1; leave a note as to why 3 years ago
Andrew Morgan 97109d4268 Remove MSC2175, MSC2174 due to lack of implementation 3 years ago
Alexey Rusakov b4269a54e8 Use abbreviated type specifiers
As per the review, this commit introduces Reddit-style type specifiers
for user ids (u/), room aliases (r/), and event ids (e/).
3 years ago
Andrew Morgan 74f3b12a17 Note experimental room version ID 3 years ago
Andrew Morgan 04cd6b3d3e
fix typo
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
3 years ago
Andrew Morgan 337c87b949 Add 404 on make_knock if unknown room ID 3 years ago
Andrew Morgan 8400877574 Make ver a required parameter for make_knock 3 years ago
Andrew Morgan d5a2a284c5 Note clients should try to prevent impersonation attacks during knocking 3 years ago
Hubert Chathi ddbcba454c
Fix typo
Co-authored-by: Sorunome <mail@sorunome.de>
3 years ago
Hubert Chathi 356d1fe3e3 add example 3 years ago
Andrew Morgan 5c620de273 typo fix 3 years ago
Andrew Morgan 6a0d07c799 Public rooms directory backwards compatibility note 3 years ago
Will ee87cf2b63
Undo support for patch versions; use an opaque version string 3 years ago
Andrew Morgan 51a7778217 typo 3 years ago
Andrew Morgan e99649cb84 Foreshadow power level requirements for approval/denial of knock 3 years ago
Andrew Morgan 336e5a2c7a
v6 -> v7
Co-authored-by: Travis Ralston <travpc@gmail.com>
3 years ago
Andrew Morgan 1f07f0dc9a MSC2998 3 years ago
Andrew Morgan 3735def108 Define room version 7 3 years ago
Will 108b323e10
Current version should still point to the old spec 3 years ago
Will b79d489f91
Fix comment in changelog template 3 years ago
Will 9f3df1950f
Add changelog page and templates 3 years ago
Will 415199bd3d
Use Markdown in changelog descriptions 3 years ago
Andrew Morgan 42e01b8e91 Add join_rules to room chunks returned on a public room dir query 3 years ago
Travis Ralston 315cf67f6b
Merge pull request #2366 from uhoreg/key_verification_accept
MSC2366: Key verification flow additions: m.key.verification.ready and m.key.verification.done
3 years ago
wbamberg 7fed40ad04
Merge pull request #2980 from wbamberg/all-spec-pages
Migrate all spec pages
3 years ago
Will 68370677ef
Use italics instead of code formatting 3 years ago
Richard van der Hoff ba08c9fe36 notes on and alternatives 3 years ago
Richard van der Hoff 84346055e9
Update proposals/2858-Multiple-SSO-Identity-Providers.md
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
3 years ago
Richard van der Hoff 09d41c59b9 add 'brand' 3 years ago
Richard van der Hoff 0c18f83636 grammar clarifications 3 years ago
Richard van der Hoff 277ff682d6 Formatting tweaks 3 years ago
Zachinquarantine 42eda716fe Translated using Weblate (Croatian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/hr/
3 years ago
Hubert Chathi de65f4e1fe
Add link to keys upload endpoint
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
3 years ago
Zachinquarantine 9c531867f9 Added translation using Weblate (Croatian) 3 years ago
Will ea9fced092
Formatting fixes for the authentication section 3 years ago
Will fd658f674f
Fix mangling of sub/superscript in e2e module 3 years ago
Will 183ecfda03
Replace sas-emojis template 3 years ago
Will 86152613b1
Remove changelog sections 3 years ago
Will 47f37d5ab5
Remove {{apis}} template 3 years ago
Alexey Rusakov 246a97e2be Add clarification as per review 3 years ago
Alexey Rusakov eca999382d Grammar 3 years ago
Will 79036a34cc
Update proposals document 3 years ago
Will 965f573c9e
Add example that went missing 3 years ago
Will 3864c11c33
Add content for rooms list page 3 years ago
Will 52745160f3
Use GFM table syntax instead of raw HTML 3 years ago
Will afa62628e8
Extend blockquote style 3 years ago
Will f0a4f59bb0
Fix broken Markdown lists 3 years ago
Will 02a41edc76
Fix heading levels 3 years ago
Will 4e39200cfa
Fix internal links 3 years ago
Will 338434bfcd
Support alerts (notes, warnings, rationales) 3 years ago
Will ab64bda76d
Add syntax highlighting 3 years ago
Will 6c6bd57ebf
Fix ASCII diagrams 3 years ago
Will 55aed1d296
Remove 'unstable' warning 3 years ago
Will 228c737f56
Add support for modules 3 years ago
Will 74adbfc1ec
Remove 'Table of Contents' 3 years ago
Will 9d4803c8af
Remove duplicate titles 3 years ago
Will 19836aa949
Fix headings for Appendices 3 years ago
Will c924b3246f
Add page content as raw Pandoc output 3 years ago
Will ebc6db233b
Add empty page placeholders 3 years ago
Kitsune Ral 3988979f82 Fix leftovers 3 years ago
Kitsune Ral 43e6470aca Drop 'group' in anticipation of #1772 3 years ago
Kitsune Ral a32d7f5027 Apply suggestions from code review 3 years ago
Hubert Chathi d9edb3fdf3
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
3 years ago
wbamberg 636974948d
Merge pull request #2959 from wbamberg/first-page
Basic machinery for the new spec platform
3 years ago
Michael Telatynski 1d90cacf6e Merge branch 't3chguy/msc/multi-sso' of github.com:matrix-org/matrix-doc into t3chguy/msc/multi-sso 3 years ago
Michael Telatynski 85ccf93c6a Remove UIA stuff 3 years ago
Michael Telatynski 8be6540eaf
Update proposals/2858-Multiple-SSO-Identity-Providers.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
3 years ago
Will 9fd35dad78
Use a different directory for assets 3 years ago
Will 985d681645
Use GFM table style 3 years ago
Will 9b2d9cf6b7
Add copyright statements to SCSS and JS; fix indentation for JS 3 years ago
wbamberg 1dadff5701
Set `author` and `private` in package.json
Co-authored-by: Travis Ralston <travpc@gmail.com>
3 years ago
Michael Telatynski c7063a4eec Iterate PR based on feedback 3 years ago
Travis Ralston 5800dcb654
Merge pull request #2844 from matrix-org/travis/msc/global-versioning
MSC2844: Global version number for the whole spec
3 years ago
Slobodan Simić 3bed1ada3d Translated using Weblate (Serbian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/sr/
3 years ago
Slobodan Simić f5fd69ecfb Added translation using Weblate (Serbian) 3 years ago
Matthew Hodgson ff85e61be9 fix dev identifier 3 years ago
Matthew Hodgson a709671d03 tie break on multiple parents 3 years ago
Matthew Hodgson a0f89bd522 add XXX about via propagation 3 years ago
Matthew Hodgson b10856d49d let's create spaces with `events_default` PL100 3 years ago
Matthew Hodgson 91fe7a79b6 switch to allowing multiple parents
to accomodate @Sorunome's use cases for secret rooms to exist in multiple spaces.
also remote , as we always have  now we use room ids
3 years ago
Matthew Hodgson 97103c44cd clarify that auto-joins are not force joins 3 years ago
Matthew Hodgson 343e1f676b incorporate @joepie91's clarification on secret rooms 3 years ago
Matthew Hodgson f8fb32518d replace m.room.parent with m.space.parent for symmetry 3 years ago
Matthew Hodgson b8e3a0b45d include invite state notes 3 years ago
Matthew Hodgson a0d06c7bd7 factor out ACLs into a separate MSC 3 years ago
Matthew Hodgson 302d5d87b4 clarify autojoin and mention 'suggested' rooms 3 years ago
Matthew Hodgson 2de3dc4f70 more plurality fixing 3 years ago
Matthew Hodgson 42c332bd88 fix parent claiming plurality 3 years ago
Matthew Hodgson 803e70a8b3 typo 3 years ago
Matthew Hodgson 037894a641 replace 'default' with 'auto_join' 3 years ago
Will 9547ba1314
Ignore node_modules 3 years ago
Will 0abbb1857f
Comments for all the layout templates 3 years ago
Will 55eae7b70b
Render a single page of the spec in Hugo 3 years ago
Travis Ralston 46d843e8fa Make deprecation industry standard 3 years ago
Travis Ralston 124c8d43d3
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
3 years ago
Travis Ralston 22acbea0ed
Apply suggestions from code review
Co-authored-by: Kitsune Ral <Kitsune-Ral@users.sf.net>
3 years ago
Travis Ralston 7b4e702a69 Remove patch versions, policy stuff, etc 3 years ago
Hubert Chathi 2b32508964
Merge pull request #2951 from uhoreg/cross-signing-msc-clarifications
clarifications to cross-signing MSC
3 years ago
Hubert Chathi 7678884376 clarifications to cross-signing MSC 3 years ago
gkkulik db563171b6 Added translation using Weblate (Silesian) 3 years ago
Richard van der Hoff 69897584e1
Update proposals/1772-groups-as-rooms.md
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
3 years ago
Travis Ralston 7aded5be4d
Merge pull request #2928 from matrix-org/anoa/require_messages_in_sendtodevice
Make 'messages' a required JSON body field in /sendToDevice
3 years ago
Andrew Morgan ba7c0d7f8d Changelog 3 years ago
Andrew Morgan 0a53c86397 Make 'messages' a required JSON body field in /sendToDevice 3 years ago
Hubert Chathi f352de90c3
Merge pull request #2536 from uhoreg/cross-signing-spec
initial spec for cross-signing
4 years ago
Hubert Chathi c56c6a2e2b
Update api/client-server/cross_signing.yaml
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
4 years ago
Travis Ralston b07618cc3f Make clarifications to the spec 4 years ago
Travis Ralston 8d6642aaa7 Merge branch 'master' into travis/msc/global-versioning 4 years ago
Hubert Chathi affa240543 use `reason` for human-readable cancel reason
for consistency with non-DM version
4 years ago
Travis Ralston ba6a72f65f Merge remote-tracking branch 'p-e-w/spelling-grammar' 4 years ago
Travis Ralston 6ccc548912 Revert "Merge branch 'travis/msc/1337-joined-rooms'"
This reverts commit 0961c7b0f7.
4 years ago
Travis Ralston e659572183 Add changelogs for 2888 4 years ago
Travis Ralston 0961c7b0f7 Merge branch 'travis/msc/1337-joined-rooms' 4 years ago
Hubert Chathi 4a779784ef
Update proposals/2241-e2e-verification-in-dms.md
Co-authored-by: poljar <poljar@termina.org.uk>
4 years ago
Travis Ralston 734be5165b
Apply suggestions from code review
Co-authored-by: Kitsune Ral <Kitsune-Ral@users.sf.net>
4 years ago
Travis Ralston 942e8b36e4 Convert to markdown verbatim 4 years ago
Philipp Emanuel Weidmann aab2d587f3
Fix spelling and grammar issues
Signed-off-by: Philipp Emanuel Weidmann <pew@worldwidemann.com>
4 years ago
Travis Ralston 8d4d6a12e8 Add missing changelog 4 years ago
Travis Ralston b0a33e97b1
Merge pull request #2885 from naosia/patch-1
Fix typo in moderation_policies.rst
4 years ago
Will Hunt 5c00004317
Add notice about identifer 4 years ago
Will Hunt 7d9304fdde
Clarify _bridge_alice
Co-authored-by: Tulir Asokan <tulir@maunium.net>
4 years ago
Emelie b1d403083c
Fix typo in moderation_policies.rst
deliberatly -> deliberately
4 years ago
Andrew Morgan 7dcff8f2e1 Disallow invite->knock membership changes 4 years ago
Richard van der Hoff 51aa5e2c40
Update proposals/1772-groups-as-rooms.md
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
4 years ago
Michael Telatynski 153c55788d Add more explanation 4 years ago
Travis Ralston f3c625ee3a
Merge pull request #2878 from deepbluev7/fix-extensible-events-link
Update link to extensible events MSC
4 years ago
Nicolas Werner a0f4ae6b38 Add newsfragment
Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
4 years ago
Nicolas Werner 0fd1654879 Update link to extensible events MSC
Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
4 years ago
Travis Ralston bce1bf3210
Merge pull request #1544 from uhoreg/qr_key_verification
MSC1544: Key verification using QR codes
4 years ago
Hubert Chathi 11d6e42ee1 use MSC number 4 years ago
Hubert Chathi f7a397dc90 add proposal for Single SSSS 4 years ago
Travis Ralston 11daaf6ea9 Add a small note about widgets 4 years ago
Travis Ralston 8cc3d44c2a Generally wording changes; Change deprecation 4 years ago
Travis Ralston 09c569f1a7 Cover a case of no-op versions 4 years ago
Hubert Chathi 9db8cc98d9
Update proposals/1543-qr_code_key_verification.md
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
4 years ago
Andrew Morgan 6c75b83b99 Address Travis and Patrick's feedback 4 years ago
Richard van der Hoff 6cc3995ce8 explain a bit 4 years ago
Richard van der Hoff 45f260836d No cross-room auth 4 years ago
Travis Ralston 74746634af
Apply suggestions from code review
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
4 years ago
Michael Telatynski 8ac23599b2 Iterate MSC based on feedback 4 years ago
Hubert Chathi 0b97ac59bf event IDs use $ 4 years ago
Peter Gervai 39af7f3249
Update 1772-groups-as-rooms.md (#2866)
Typo.
4 years ago
Richard van der Hoff d4abe40677 one parent per room 4 years ago
Richard van der Hoff 1f1e3c9a0f MSC1840 is in 4 years ago
Michael Telatynski f444273a42 be stricter on the icon url 4 years ago
Michael Telatynski 874e32d69d Merge remote-tracking branch 'origin/t3chguy/msc/multi-sso' into t3chguy/msc/multi-sso 4 years ago
Michael Telatynski a391a4a05d Iterate the MSC 4 years ago
Travis Ralston d079d7d2d3 Answer question about confusing deprecation with not 4 years ago
Travis Ralston 1310c7c8bf Finish up the last few sections 4 years ago
Michael Telatynski 20645365f4
Update proposals/2858-Multiple-SSO-Identity-Providers.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
4 years ago
Travis Ralston 940bb49027
Merge pull request #2774 from matrix-org/travis/msc/widget-id
MSC2774: Expose the widget ID to the widget
4 years ago
Richard van der Hoff fbad757ceb update dependencies links 4 years ago
Richard van der Hoff e6a6941845 rename allowed_join again 4 years ago
Richard van der Hoff 3b2825f21d Descope autokick and rename allowed_spaces 4 years ago
Richard van der Hoff 4e3b0ed05f add a length limit to `order` 4 years ago
Richard van der Hoff b40f7da8d2 Record alternatives
make sure we have records of dismissed alternatives
4 years ago
Richard van der Hoff ae71a6219a Restricting room membership via spaces 4 years ago
Travis Ralston 4dee8dbeab Versioning WIP 4 years ago
Travis Ralston 973ee1438c Progress checkpoint on room versions 4 years ago
Richard van der Hoff 29b07c11ad update power level mappings 4 years ago
Richard van der Hoff 06b5c8342f notes on children and recursion 4 years ago
Richard van der Hoff 109c31c2c8 Avoiding abuse via false `parent` claims 4 years ago
Travis Ralston c6441176b8 Update i18n 4 years ago
Travis Ralston 83fd17f30c Merge remote-tracking branch 'RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1' 4 years ago
Weblate 8300ec5659 Merge branch 'origin/master' into Weblate. 4 years ago
Richard van der Hoff 839ea0e946 inheriting join rules 4 years ago
Richard van der Hoff a73dd9c371 clarification 4 years ago
Richard van der Hoff e323ade5f7 Switch to room IDs 4 years ago
Richard van der Hoff 1aede33b35 clarify introduction 4 years ago
Michael Telatynski a7eba773be Fix MSC number 4 years ago
Michael Telatynski 204732099b Multiple SSO Identity Providers 4 years ago
Richard van der Hoff d42da585e5
Apply suggestions from code review
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
4 years ago
Travis Ralston 7ff9be4fee
Merge pull request #2857 from wbamberg/fix-capabilities-api-typo
Fix typo in Capabilities API title
4 years ago
Will 42bb5127be
Fix typo in API title 4 years ago
Travis Ralston c4d01b90e9
Merge pull request #2765 from matrix-org/travis/msc/widget-avatars
MSC2765: Widget avatars
4 years ago
Auri B. P 4a1d49ae4a Translated using Weblate (Catalan)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/ca/
4 years ago
Auri Botines Puertas 30448b988c Added translation using Weblate (Catalan) 4 years ago
Hubert Chathi 8284e78d92
Merge pull request #2826 from matrix-org/uhoreg/keys_withheld
add spec for reporting that keys are withheld
4 years ago
Hubert Chathi 267eead50f apply changes from review 4 years ago
Nikolai Zahariev a5e3652d26 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/bg/
4 years ago
Travis Ralston 5f8b7167a5 What if we versioned the whole spec? 4 years ago
Richard van der Hoff 11bb604c5e add an xxx 4 years ago
Richard van der Hoff 2f557daac1 Clarifications to room/space relationship 4 years ago
Richard van der Hoff e746aa3aad
Apply suggestions from code review
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
4 years ago
Nikolai Zahariev 3fed0dd17f Added translation using Weblate (Bulgarian) 4 years ago
Richard van der Hoff 15f34e5be9 supporting trad PLs 4 years ago
Richard van der Hoff 5db56391f3
spelling 4 years ago
Richard van der Hoff c145d398f7 Notes on propagating PLs etc 4 years ago
Richard van der Hoff 52853b57e1 more updates 4 years ago
Richard van der Hoff 4040254001 Update for new terminology and current thinking 4 years ago
Travis Ralston 4ee990e26f
Merge pull request #2758 from matrix-org/rav/proposals/textual_identifier_grammar
MSC2758: Proposal for a common identifier grammar
4 years ago
Travis Ralston ee55d9d35b
Update proposals/2765-widget-avatars.md
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
4 years ago
Richard van der Hoff 49ce93f3e2
Update 2758-textual-id-grammar.md 4 years ago
Richard van der Hoff 0baf49abe8 We are not considering hidden-membership rooms yet 4 years ago
Richard van der Hoff 6464e90fd6 Merge branch 'master' into matthew/msc1772 4 years ago
Richard van der Hoff 96cd76c868 remove 'one big event' proposal 4 years ago
Richard van der Hoff 417501d8cc various minor edits 4 years ago
Hubert Chathi 7b4ea94f22 add changelog 4 years ago
Hubert Chathi 38350002a6 add spec for reporting that keys are withheld 4 years ago
Hubert Chathi 7b3c98cd98 we're using the binary format 4 years ago
Hubert Chathi a5ebedc131 apply suggestions from review 4 years ago
Travis Ralston deaa82c653 Rebuild sas-emoji.json 4 years ago
Travis Ralston 651e73dfda Merge remote-tracking branch 'RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1' 4 years ago
Weblate e0a6024cd6 Merge branch 'origin/master' into Weblate. 4 years ago
Travis Ralston a402da4edc
Merge pull request #2814 from aaronraimist/m.room.redaction
Clarify m.room.redaction, remove duplicate entry
4 years ago
random 39fbda7251 Translated using Weblate (Italian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.element.io/projects/matrix-doc/sas-emoji-v1/it/
4 years ago
random 404158fe39 Added translation using Weblate (Italian) 4 years ago
Aaron Raimist a82b657a0a
Attempt to differentiate between m.room.redaction event PL and redact PL
Signed-off-by: Aaron Raimist <aaron@raim.ist>
4 years ago
Travis Ralston 48d4e95dd3
Merge pull request #2817 from aaronraimist/room-v1
Improve wording of room version 1 warnings
4 years ago
Travis Ralston 5ce774629b
Update specification/rooms/v1.rst 4 years ago
Aaron Raimist bc085fd75d
Remove extra space
Signed-off-by: Aaron Raimist <aaron@raim.ist>
4 years ago
Aaron Raimist 15805761be
Describe what a state reset is
Signed-off-by: Aaron Raimist <aaron@raim.ist>
4 years ago
Aaron Raimist 8005467628
Put back first warning, reword "most popular"
Signed-off-by: Aaron Raimist <aaron@raim.ist>
4 years ago
Aaron Raimist 4414d44f34
Remove duplicate description of who can redact a message and correct that description
Signed-off-by: Aaron Raimist <aaron@raim.ist>
4 years ago
Aaron Raimist 954099efc6
Improve wording of room version 1 warnings
Signed-off-by: Aaron Raimist <aaron@raim.ist>
4 years ago
Aaron Raimist 206b4dfb29
Add changelog
Signed-off-by: Aaron Raimist <aaron@raim.ist>
4 years ago
Aaron Raimist 445b0a3a01
Clarify m.room.redaction, remove duplicate entry
Signed-off-by: Aaron Raimist <aaron@raim.ist>
4 years ago
Matthew Hodgson 62cfc8c472 m.message->m.room.message; fixes #2761 4 years ago
Travis Ralston 411202f2bf
spelling
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
4 years ago
Andrew Morgan 815dae6eae Note that redactions of knocks are not a concern 4 years ago
Travis Ralston d323738db5 Add changelog for 2809 4 years ago
Travis Ralston 9a1badee45 Merge remote-tracking branch 'jcgruenhage/patch-1' 4 years ago
Travis Ralston 2887c715bb
Merge pull request #2795 from matrix-org/travis/spec/msc2367-reason
Add membership reasons to the spec for all membership events
4 years ago
Travis Ralston 9ea7b2f5df
Merge pull request #2796 from matrix-org/travis/spec/msc2663-push-errors
Add 404 error responses to push rule endpoints
4 years ago
Hubert Chathi cb44b6ea7b
Merge pull request #2808 from wbamberg/msc2689-guest-allow-members
Allow guests to get the members for a room (MSC2689)
4 years ago
Jan Christian Grünhage 9e29f59bdb
fix content type in upload example 4 years ago
Will dbf74ea85c
Add changelog entry 4 years ago
Will 1fe9cab30b
Allow guests to get the members for a room (MSC2689) 4 years ago
Travis Ralston e865f59c65
Merge pull request #2807 from wbamberg/msc2414-reporting-content-parameters
Make score and reason optional in content reporting API (MSC2414)
4 years ago
Will 89d53fd688
Add changelog entry 4 years ago
Will 6c9b25a397
Make score and reason parameters optional in content reporting API (MSC2414) 4 years ago
Travis Ralston 9e66d32225
Merge pull request #2414 from iinuwa/master
MSC2414: Make reason and score parameters optional for reporting content
4 years ago
Travis Ralston ea5c8ba649
Merge pull request #2806 from wbamberg/remove-toc-bullets
Suppress bullets inside table of contents
4 years ago
Will deef4f5e7c
Suppress bullets inside table of contents 4 years ago
Travis Ralston e20121cbab
Merge pull request #2803 from matrix-org/travis/spec/v6
Update the default recommended room version to v6
4 years ago
Travis Ralston 56e0ee700a Update the default recommended room version to v6
No changelog required - this is the index

MSC: https://github.com/matrix-org/matrix-doc/pull/2788
4 years ago
Andrew Morgan a924f5b3d5 Fix incorrect assumptions about the sender field of a knock event
Got a bit confused with the sender and state_key being different in invite
membership events. In case of a knock, even if the knock event is being
inserted into the room by another homeserver over federation, the sender
of the event is still the knocking user, just like the state_key.
4 years ago
Andrew Morgan 525d1d33e0 Some clarifications and wording fixes 4 years ago
Travis Ralston 82a4a028bd
Merge pull request #2788 from matrix-org/travis/msc/v6-default
MSC2788: Room version 6 as the default room version
4 years ago
Hubert Chathi 48b0196ac6 update property name 4 years ago
iinuwa 02512f0f69
Use endpoint instead of API
Co-authored-by: Jonas Platte <jplatte@users.noreply.github.com>
4 years ago
Travis Ralston 51b278e015 Mention the endpoint 4 years ago
Richard van der Hoff 12da19f927 Words on e2ee events 4 years ago
Richard van der Hoff 46440b0e75 On why you should never trust an event. 4 years ago
Andrew Morgan 6f7bcb6052 Explicitly state what changes to the auth rules are necessary 4 years ago
Andrew Morgan 5097fad4e7 Fix unstable prefix bullet points 4 years ago
Kitsune Ral 11d2529a5e Allow custom query items 4 years ago
Andrew Morgan 6b99228386 Remove section duplicated by membership change section 4 years ago
Andrew Morgan fd8176b93d Clarify endpoint calls clients and servers need to use to handle knocks 4 years ago
Andrew Morgan 9e5ac042ac Explicitly state that the hs that received the knock must put in the room 4 years ago
Andrew Morgan e58e207bbf Go into more depth about membership changes surrounding knocking 4 years ago
Kitsune Ral a2fa637396 Refactor of non-normative sections
Including a few more words regarding the "minimal encoded"
(aka "keep sigils") alternative.
4 years ago
Kitsune Ral 758c57b021 More cleanup 4 years ago
Travis Ralston 5e60ff8bfd Add 404 error responses to push rule endpoints
MSC: https://github.com/matrix-org/matrix-doc/pull/2663
4 years ago
Travis Ralston 5a7bda4bf8 Changelog 4 years ago
Travis Ralston 2d047e312f Add membership reasons to the spec for all membership events
MSC: https://github.com/matrix-org/matrix-doc/pull/2367
4 years ago
Kitsune Ral 6f082bbe12 Be clearer about percent-en/decoding 4 years ago
Kitsune Ral bbc8bfc1c0 Rework the path grammar for better clarity 4 years ago
Kitsune Ral 907bd2e2a2 Rewording, clarifications, minor fixes 4 years ago
Kitsune Ral 438e5a368f Add URI operations and construction algorithm 4 years ago
Hubert Chathi f831162563 add clarifications, examples, etc 4 years ago
iinuwa 07dbdab898
Fix typos 4 years ago
iinuwa 9be28c5ade
Add proposal to remove score; reorganize 4 years ago
Travis Ralston 2ccdcead9c Fix number 4 years ago
Travis Ralston 9f06c0a2e2 What if we make v6 as the default? 4 years ago
Travis Ralston 561043663f
Merge pull request #1960 from matrix-org/travis/msc/integrations/openid
MSC1960: OpenID information exchange with widgets
4 years ago
Travis Ralston 81c7893a6e sync translations for sas emoji 4 years ago
Will Hunt 4751785a8c Some spelling fixes 4 years ago
Will Hunt 3a649839c2 2778 4 years ago
Will Hunt 61a8866683 initial proposal 4 years ago
Andrew Morgan 340f888de3 Mention unstable prefixes for sync, join_rules and membership events 4 years ago
Andrew Morgan 6e47e86f01 Add unstable endpoint replacements 4 years ago
Travis Ralston b3116e4a3c Proposal to have widgets aware of their widget ID 4 years ago
Travis Ralston 89a3663372
Delete SECURITY.md 4 years ago
Travis Ralston c25121974e
Create SECURITY.md 4 years ago
Travis Ralston c9e8326783 Reword following widget spec 4 years ago
Travis Ralston a085fabd42
Merge pull request #2763 from matrix-org/travis/fix-push-tweaks
Add a link to the push module in the push gateway spec
4 years ago
Andrew Morgan fd9d57b8c4 Match state events sent to a remote server when inviting a user 4 years ago
Andrew Morgan 630f7c458c Allow users to knock over and over, removing CS complexity 4 years ago
Travis Ralston 614e95289a
Merge pull request #2766 from RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1
Update from Weblate
4 years ago
Weblate 6ad347e3d6 Merge branch 'origin/master' into Weblate. 4 years ago
Andrew Morgan 61fea58ce0 Merge branch 'soru/knock' of github.com:sorunome/matrix-doc into soru/knock 4 years ago
Andrew Morgan 703fa07028 Remove extraneous text 4 years ago
Travis Ralston 70e69a110a Move the avatar up a level 4 years ago
Travis Ralston d8bc158a3b Renumber 4 years ago
Travis Ralston 1f734cd4a9 Proposal to support widget avatars 4 years ago
Andrew Morgan 58cb299dde
Update proposals/2403-knock.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
4 years ago
Andrew Morgan c9a7b442ff Merge branch 'soru/knock' of github.com:sorunome/matrix-doc into soru/knock
* 'soru/knock' of github.com:sorunome/matrix-doc:
  Federation knock_room_state and minor cleanup
4 years ago
Travis Ralston 2877459553 Add a link to the push module in the push gateway spec 4 years ago
Richard van der Hoff 998dec2980
Update proposals/2758-textual-id-grammar.md 4 years ago
Andrew Morgan e93a19f62d Indicate that this proposal requires a new room version 4 years ago
Richard van der Hoff 49e4e61e80
fix typos
Co-authored-by: Matthew Hodgson <matthew@matrix.org>
4 years ago
Richard van der Hoff b3f40fb553 fix a couple of typos 4 years ago
Richard van der Hoff 1688f12d08 Proposal for a common identifier grammar 4 years ago
Travis Ralston c89e5bfe27
Merge pull request #2754 from matrix-org/travis/ll/clarification
Attempt to clarify how the `state` restriction works for lazy-loading
4 years ago
Travis Ralston 1bac9fb6e3 Changelog 4 years ago
Travis Ralston 1c7a6a9c7f Attempt to clarify how the `state` restriction works for lazy-loading 4 years ago
Andrew Morgan 5bfd65c59f Federation knock_room_state and minor cleanup 4 years ago
LinAGKar d6b59621a3 Translated using Weblate (Swedish)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/sv/
4 years ago
Andrew Morgan ae8ec6603c Spec how a client is notified of pending knock progress 4 years ago
Travis Ralston e304109289 fix widget example 4 years ago
Travis Ralston 4cb7e96b11
Apply suggestions from code review
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
4 years ago
Andrew Morgan 965c47ba08 Remove unnecessary sentence 4 years ago
Andrew Morgan 651e73b2db It's possible to fight against spam 4 years ago
Andrew Morgan f3fc5399fc Move client recommendations into its own section
Hopefully leading to less duplication in recommendations as well
4 years ago
Andrew Morgan aad6ff4a05 Remove remaining traces of [200, {}] response format 4 years ago
Andrew Morgan bc90f1ce47 Fix typo 4 years ago
linsui 1e0d497f45 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/zh_Hans/
4 years ago
LinAGKar 0e64c4de72 Translated using Weblate (Swedish)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/sv/
4 years ago
Travis Ralston 3943e63ae2
Merge pull request #2738 from matrix-org/revert-2737-revert-2033-travis/msc/whoami-device
TBD: MSC2033: Adding a device_id to /account/whoami
4 years ago
Marcelo Filho 2e8733c368 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/pt_BR/
4 years ago
Andrew Morgan 105108428f Switch from Power Levels -> Join Rules 4 years ago
Andrew Morgan d6d5858b67 knock->knock and rescinding of knocks are not allowed 4 years ago
Andrew Morgan 716db4e656 Spell out some possible abuse vectors and how to mitigate them 4 years ago
Andrew Morgan 74a341ab8d Mention that knock -> ban is possible 4 years ago
Travis Ralston 80214998f6 Various clarifications to structure 4 years ago
Andrew Morgan 39c21689ce small grammar 4 years ago
Marcelo Filho a8328404ce Added translation using Weblate (Portuguese (Brazil)) 4 years ago
Travis Ralston df74c7dbe3 Merge branch 'master' into travis/msc/integrations/openid 4 years ago
Travis Ralston 6490fda6ee
Apply suggestions from code review
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
4 years ago
Travis Ralston 6b64281af7 Update sas-emoji.json for i18n 4 years ago
Travis Ralston cd5e3d9f52 Merge remote-tracking branch 'RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1' 4 years ago
Peter Vágner 14da11eaa5 Translated using Weblate (Slovak)
Currently translated at 96.9% (62 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/sk/
4 years ago
Peter Vágner aafec58871 Added translation using Weblate (Slovak) 4 years ago
Travis Ralston 3e3c2c704b Deleted translation using Weblate (Slovak) 4 years ago
Bruno Windels 93a614c272 Translated using Weblate (Spanish)
Currently translated at 76.6% (49 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/es/
4 years ago
Dagfinn Ilmari Mannsåker 700c63f9ea Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/nb_NO/
4 years ago
reivilibre 70e047e484 Translated using Weblate (French)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/fr/
4 years ago
q-b c52c5e5f4a Translated using Weblate (French)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/fr/
4 years ago
Tuomas Hietala dfae4c4325 Translated using Weblate (Finnish)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/fi/
4 years ago
Tirifto 8eb0f9414f Translated using Weblate (Esperanto)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/eo/
4 years ago
Bruno Windels 0966341c27 Translated using Weblate (Dutch)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/nl/
4 years ago
tusooa f1c8fc2196 Translated using Weblate (Chinese (Simplified))
Currently translated at 9.4% (6 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/zh_Hans/
4 years ago
Peter Vágner a72a5ccda1 Added translation using Weblate (Slovak) 4 years ago
LinAGKar 0565766d1c Translated using Weblate (Swedish)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/sv/
4 years ago
Tuomas Hietala a23b8c1fc4 Added translation using Weblate (Finnish) 4 years ago
Bruno Windels 573ea497d9 Added translation using Weblate (Dutch) 4 years ago
tusooa 46549f3f9f Added translation using Weblate (Chinese (Simplified)) 4 years ago
Dagfinn Ilmari Mannsåker cd8f0c8991 Added translation using Weblate (Norwegian Bokmål) 4 years ago
Tirifto 8197761b29 Added translation using Weblate (Esperanto) 4 years ago
Priit Jõerüüt 2c375ae080 Translated using Weblate (Estonian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/et/
4 years ago
LinAGKar 7920960d33 Added translation using Weblate (Swedish) 4 years ago
Priit Jõerüüt fdbaca662f Added translation using Weblate (Estonian) 4 years ago
Richard van der Hoff c00710d91a Revert "Merge pull request #1598 from matrix-org/rav/proposals/id_grammar"
This reverts commit d9135ef902, reversing
changes made to f714aaadd0.

People are getting confused by the fact this has been merged.
4 years ago
Travis Ralston 9080c5f87f
Revert "Revert "MSC2033: Adding a device_id to /account/whoami"" 4 years ago
Travis Ralston a4b5ec8fec
Merge pull request #2737 from matrix-org/revert-2033-travis/msc/whoami-device
Revert "MSC2033: Adding a device_id to /account/whoami"
4 years ago
Travis Ralston ddc0d78e0c
Revert "MSC2033: Adding a device_id to /account/whoami" 4 years ago
Travis Ralston 0228cf8361
Merge pull request #2033 from matrix-org/travis/msc/whoami-device
MSC2033: Adding a device_id to /account/whoami
4 years ago
Andrew Morgan de038f5601 Fix the response format of send_knock
This aligns with the current v2 federation endpoints. However, we're still using v1
as a prefix here as it is still the first version of this endpoint.
4 years ago
Andrew Morgan 38d67083eb Note that spam is a preventable, but real possibility as a result 4 years ago
Andrew Morgan c92752d1b8 Reflow text to <79 chars 4 years ago
Andrew Morgan d47cb1fec3 Small grammatical fixes 4 years ago
Hubert Chathi 94465e06c2 use MSC number 4 years ago
Hubert Chathi 7595a63fb2 initial version of olm fallback keys 4 years ago
Travis Ralston f0ba7f014b Update i18n for emoji 4 years ago
Travis Ralston 38431dca1c Merge remote-tracking branch 'RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1' 4 years ago
Alexey Murz Korepov 76280f215c Translated using Weblate (Russian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/ru/
4 years ago
aWeinzierl 7da3b37524 Translated using Weblate (German)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/de/
4 years ago
Brendan Abolivier c04bf46800 Translated using Weblate (French)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/fr/
4 years ago
Richard van der Hoff 05f5373a4a Translated using Weblate (French)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/fr/
4 years ago
aWeinzierl c5335a8922 Added translation using Weblate (German) 4 years ago
Alexey Murz Korepov 589b9a3f77 Added translation using Weblate (Russian) 4 years ago
strix aluco 5b9cbfb7bf Translated using Weblate (Ukrainian)
Currently translated at 100.0% (64 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/uk/
4 years ago
Will Hunt c78ce90dfa Translated using Weblate (Spanish)
Currently translated at 31.2% (20 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/es/
4 years ago
reivilibre 5daf0fbb7b Translated using Weblate (Japanese)
Currently translated at 25.0% (16 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/ja/
4 years ago
reivilibre 1e401c8ae3 Translated using Weblate (French)
Currently translated at 42.2% (27 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/fr/
4 years ago
Will Hunt 299492b173 Added translation using Weblate (Spanish) 4 years ago
reivilibre ae44ecdafc Added translation using Weblate (Japanese) 4 years ago
reivilibre 7e6bba3256 Added translation using Weblate (French) 4 years ago
Travis Ralston fb48d1ab30
Merge pull request #2729 from RiotTranslateBot/weblate-matrix-doc-sas-emoji-v1
Update from Weblate
4 years ago
strix aluco 41fa1886db Added translation using Weblate (Ukrainian) 4 years ago
Travis Ralston d37f7a25b4
Make translations for SAS emoji available in-tree (#2728)
* add a base file

* Fix directory name

* Added translation using Weblate (English)

* Translated using Weblate (English)

Currently translated at 1.6% (1 of 64 strings)

Translation: matrix-doc/SAS Emoji v1
Translate-URL: https://translate.riot.im/projects/matrix-doc/sas-emoji-v1/en_EN/

* add english files

* delete english files

* Added translation using Weblate (English)

* Added translation using Weblate (English)

* Do manual translations

* Deleted translation using Weblate (English)

* Deleted translation using Weblate (English)

* Add a script to update the definitions with the translations

* update i18n

* Add a note to the spec about translations

* changelog

* Ensure translations end with json
4 years ago
Travis Ralston 8eb1c53144 Merge branch 'clokep/login-fallback-changes' 4 years ago
Travis Ralston d41ad7638e re-add note about the login process 4 years ago
Travis Ralston 65c6d545b8 assign number 4 years ago
Travis Ralston 1be21b85b6 Proposal to remove deprecated identity service endpoints 4 years ago
Travis Ralston 5c0f999503
Merge pull request #2689 from Awesome-Technologies/fix_guest_e2ee
MSC2689: Fix E2EE for guests
4 years ago
Travis Ralston 0973e88c7c
Merge pull request #2663 from matrix-org/rei/pushrules_define_enabled
MSC2663: Errors for dealing with non-existent push rules
4 years ago
Patrick Cloke 4daecd0d94 Remove broken formatting. 4 years ago
Patrick Cloke 4353f346b6 Rename changelog file. 4 years ago
Patrick Cloke e261faf70b
Review comments.
Co-authored-by: Travis Ralston <travpc@gmail.com>
4 years ago
Patrick Cloke 9a40d7bf47 Add information from MSC2604: Parameters for Login Fallback to the spec. 4 years ago
Travis Ralston 012f0b1882
Merge pull request #2609 from matrix-org/rav/remove_oauth2
Remove `m.login.token` and `m.login.oauth2` UIA types
4 years ago
Travis Ralston 24d124df50
Update changelogs/client_server/newsfragments/2609.removal 4 years ago
Travis Ralston a96a014512
Merge pull request #2610 from matrix-org/rav/proposal/remove-oauth2-auth-type
MSC2610: Remove `m.login.oauth2` User-Interactive Authentication type from the specification
4 years ago
Travis Ralston 5990d98525
Merge pull request #2611 from matrix-org/rav/proposal-remove-token-auth-type
MSC2611: Remove `m.login.token` User-Interactive Authentication type from the specification
4 years ago
Kitsune Ral b4b917c6c8 Another wording fix 4 years ago
Kitsune Ral c3329fe644
Wording/grammar fixes from code review
Co-authored-by: Denis Kasak <dkasak@termina.org.uk>
4 years ago
Kitsune Ral eeb5ce222c Intro: rephrase a paragraph as per review 4 years ago
Kitsune Ral c60368338c
Apply suggestions from code review
Co-authored-by: Mayeul Cantan <mayeul.cantan@gmail.com>
4 years ago
Kitsune Ral 7b574448db
Fix a broken link
Co-authored-by: Denis Kasak <dkasak@users.noreply.github.com>
4 years ago
Kitsune Ral 294f30f3ab
Reword, as per review
Co-authored-by: Mayeul Cantan <mayeul.cantan@gmail.com>
4 years ago
Michael Albert 78f3c3dac8
Update proposals/2689-fix-e2ee-for-guests.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
4 years ago
Hubert Chathi 53e2b999b9
Merge pull request #2687 from uhoreg/sas2_spec
document new key agreement method for SAS verification and deprecate old method
4 years ago
Kitsune Ral bcf5585e55
Remove authority from the example for unfederated room
Co-authored-by: Mayeul Cantan <mayeul.cantan@gmail.com>
4 years ago
Kitsune Ral 5a699f2650
Merge pull request #2518 from matrix-org/kitsune/cleanup
Assorted cleanup pieces
4 years ago
Kitsune Ral 812df4c9c1 Out of WIP; early feedback incorporated
- Authority part semantics are no more prescribed; authority part has
  defined syntax but reserved for future use.
- Moved away non-normative parts to "Discussion" and/or "Alternatives"
- Added `action=chat`
- Extended `via=` applicability to non-roomid cases to compensate
   dropping the authority part semantics.
- Added a reference algorithm to parse a URI.
- Closed outstanding questions/discussion points.
- Added more cases for future evolution.
- Added "minimal syntax" options to the discussion of possible
  alternatives
4 years ago
Hubert Chathi 33ed9fc2dd apply changes from review 4 years ago
Olivier Wilkinson (reivilibre) 3dd5bc42a7 inexistent may or may not be a non-existent word
Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
4 years ago
Richard van der Hoff 125614f3a4
Make use of `highlight` tweak consistent (#2670)
* remove redundant 'highlight: false' tweaks

their inconsistent usage is super-confusing.

* Remove redundant 'value: true' on highlight tweaks

again, the inconsistency was super-confusing.

* changelog
4 years ago
Richard van der Hoff 1b74e96b7e fix RST in changelog 4 years ago
Richard van der Hoff 6da06383e8
Allow `/make_join` to return a 404 (#2688)
Specify that `GET /_matrix/federation/v1/make_join/{roomId}/{userId}` can
return a 404 if the room is unknown.
4 years ago
Michael Albert 250f0e47c1 Fix typos 4 years ago
Michael Albert adc867dc99 Fix E2EE for guests 4 years ago
Hubert Chathi 793dae1ece add changelog 4 years ago
Hubert Chathi 0f13ebe3ed document new key agreement method and deprecate old method 4 years ago
Travis Ralston e207dfc0ea
Merge pull request #2630 from uhoreg/sas2
MSC2630: checking public keys in SAS verification
4 years ago
Travis Ralston adf9443df4
Merge pull request #2669 from matrix-org/rei/bug_type_actions
Fix spec bug concerning the type of a push rule's array of actions
4 years ago
Richard van der Hoff 868ca45729
move changelogs to the right directory (#2671)
looks like these ended up in the wrong place.
4 years ago
Olivier Wilkinson (reivilibre) 2e72da2343 Fix spec bug concerning the type of a push rule's array of actions
Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
4 years ago
Olivier Wilkinson (reivilibre) 90a37cdb30 Write MSC2663 4 years ago
Aaron Raimist f8ff2ad6a9
Reword "UI Authorization" to "User-Interactive Authentication" (#2667)
Signed-off-by: Aaron Raimist <aaron@raim.ist>
4 years ago
Olivier Wilkinson (reivilibre) fee59be2b3 Start MSC2663 proposal
Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
4 years ago
Hubert Chathi a91c6446bc
Merge pull request #2639 from uhoreg/backup_version_required
various key backups fixes
4 years ago
Patrick Cloke 782aed7383
Add proposal for accepting query parameters to the login fallback endpoint. (#2604) 4 years ago
Hubert Chathi b770cfee8b
Merge pull request #2653 from uhoreg/spec-fixes-20200623
Various small fixes in e2e spec
4 years ago
Hubert Chathi 3e3eafc6ce add changelog 4 years ago
Hubert Chathi 72ad26ec92 fix changelog 4 years ago
Hubert Chathi 8e2ba5ad2a remove nonexistent field in verification and fix types in secret storage 4 years ago
Isaiah Inuwa bbad4c453f Add backwards-compatibility notes. 4 years ago
Hubert Chathi c8e816d854 Add link to MSC in changelog entries. 4 years ago
Hubert Chathi 83e4d8c413
Merge pull request #2597 from uhoreg/ssss_spec
initial spec of SSSS
4 years ago
Hubert Chathi 902444ceb5
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
4 years ago
Travis Ralston 465ed38416
Merge pull request #2647 from jplatte/event-titles
Make event's title fields UpperCamelCase and distinguish /sync ones
4 years ago
Jonas Platte 763e5654cc
Make event's title fields UpperCamelCase and distinguish /sync ones 4 years ago
Travis Ralston 11a808aefd
Merge pull request #2646 from jplatte/unsigned-data
Consistently use the title UnsignedData for the unsigned object
4 years ago
Jonas Platte 049275c33b
Consistently use the title UnsignedData for the unsigned object 4 years ago
Kitsune Ral c76d53c11a
Apply suggestions from code review 4 years ago
Hubert Chathi b44ebaa32e add changelog 4 years ago
Hubert Chathi 24427242f7 fix more mistakes in key backup spec, and factor out room key backups 4 years ago
Hubert Chathi af6e1157d9 version is required when getting keys. Also add some full stops. 4 years ago
Richard van der Hoff 5cb4b086c7
Clarifications to the push module (#2634)
* Minor clarifications to the push spec
* move conditions before defaults
4 years ago
Hubert Chathi efebba62de result may also include signatures 4 years ago
Brendan Abolivier f1e3118317 Revert "MSCXXXX: Ability for clients to request homeservers to resync device lists"
This reverts commit 79dc04515e562847774e2f722fb14401bfb90583.
4 years ago
Brendan Abolivier 9b7a883b50
MSCXXXX: Ability for clients to request homeservers to resync device lists 4 years ago
Hubert Chathi be01eebf8f use the right key ID 4 years ago
Travis Ralston ffd739137e
Merge pull request #2399 from uhoreg/reporting_no_key
MSC2399: Reporting that decryption keys are withheld
4 years ago
Travis Ralston 97191b9348
Merge pull request #2629 from deepbluev7/sync-example-fixes
Remove room_id from /sync examples
4 years ago
Hubert Chathi 6ca3996bef FluffyChat doesn't include any verification yet 4 years ago
Hubert Chathi 1961a215e8
Fix the title 4 years ago
Hubert Chathi d9dc3dc180 rename to match MSC number 4 years ago
Hubert Chathi 0fbb1b9bf9 add information on fixed implementations 4 years ago
Hubert Chathi 269e83c233 more clarifications 4 years ago
Nicolas Werner e3d12d6769 Remove room_id from /sync examples
Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
4 years ago
Richard van der Hoff ac982410b9
Apply suggestions from code review
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
4 years ago
Kitsune Ral e310736adb
Merge pull request #2626 from matrix-org/kitsune/structures
Use public_rooms_response.yaml instead of replicating the same definition
4 years ago
Kitsune Ral 57f0c8346f message_pagination.yaml: more $ref cleanup 4 years ago
Hubert Chathi d261084f5b apply changes from review 4 years ago
Kitsune Ral d3b41941aa key_backup.yaml: make body parameters required
Along the same lines as c72d3051.
4 years ago
Kitsune Ral 8e7c0dfb93 Merge remote-tracking branch 'origin/master' into kitsune/cleanup 4 years ago
Richard van der Hoff 4aa778cdee
Put the MSC number in the proposal template (#2622)
this seems to be our convention.
4 years ago
Hubert Chathi c741049760 more clarifications 4 years ago
Travis Ralston 34f2d482be
Merge pull request #2265 from matrix-org/babolivier/msc_email_case
MSC2265: Proposal for mandating case folding when processing e-mail address localparts
4 years ago
Kitsune Ral 49ccfa09a8
Merge pull request #2592 from matrix-org/kitsune/fix-room-versions
capabilities.yaml: drop an extraneous title
4 years ago
Richard van der Hoff da740bfbca
Clarifications to SSO login/UIA (#2608)
including a bunch of text about security
4 years ago
Kitsune Ral 97809c5eae
Update changelogs/client_server/newsfragments/2592.clarification
Co-authored-by: Travis Ralston <travpc@gmail.com>
4 years ago
Richard van der Hoff 1e049481fe Proposal to remove `m.login.token` ui auth type 4 years ago
Richard van der Hoff 7549b86192 Proposal to remove `m.login.oauth2` 4 years ago
Richard van der Hoff d9f9706fdb changelog 4 years ago
Richard van der Hoff 7c6636a520 Remove `m.login.token` and `m.login.oauth2` UIA types
AFAIK these have never been implemented. oauth2 lacks enough info to be
sensibly implemented, and `m.login.token` just doesn't make sense.
4 years ago
Richard van der Hoff f632f4a20f
Clarify link to OpenID Connect specification (#2605)
OpenID Connect and OpenID are different things. This seems to be talking about
the former.
4 years ago
Kitsune Ral ea02029f89 Add a changelog 4 years ago
Travis Ralston 29f23a5eda
Merge pull request #2599 from matrix-org/travis/typos
Fix typos and clarify the user ID in login sections
4 years ago
Hubert Chathi f8e4bdfbaf credit David Wong 4 years ago
Travis Ralston 9281d0ca13
Merge pull request #2591 from matrix-org/travis/unsigned
Fix a number of issues with unsigned event objects
4 years ago
Travis Ralston 7fc811d4bd
Update event-schemas/schema/core-event-schema/unsigned_prop.yaml
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
4 years ago
Hubert Chathi cf37688b7c
Merge pull request #2387 from uhoreg/key_backup_spec
initial version of spec for key backups
4 years ago
Hubert Chathi a36284810d more clarifications and fixes 4 years ago
Travis Ralston bcce6b9a7c changelog 4 years ago
Travis Ralston d9a1de1d30 Fix typos and clarify the user ID in login sections 4 years ago
Travis Ralston 8532cfd706 Clarify which transaction ID 4 years ago
Hubert Chathi 40c50c80ea
Apply suggestions from code review
Co-authored-by: Travis Ralston <travpc@gmail.com>
4 years ago
Hubert Chathi df695167e8 Add changelog. 4 years ago
Hubert Chathi 07856ec7a2 initial spec of SSSS 4 years ago
Travis Ralston 185e3e4001
Merge pull request #2594 from Dominaezzz/patch-1
Fix Typo
4 years ago
Dominic Fischer 9535540161
Add changelog 4 years ago
Dominic Fischer c02ca21a94
Fix Typo 4 years ago
Kitsune Ral bda05a0d44 capabilities.yaml: drop an extraneous title
AvailableRoomVersions sticks itself as a property type, preempting
the mention of RoomVersionStability in the generated text.
4 years ago
Travis Ralston 33309fb68e Add changelog 4 years ago
Travis Ralston 0f9ffdf01a Make server ACL example inherit from state events 4 years ago
Travis Ralston 33d738e665 Document the m.room.member unsigned object in full 4 years ago
Travis Ralston 1c1e351778 Move m.room.member's unsigned data to the top level 4 years ago
Travis Ralston ffea5d5e61 Document top-level UnsignedData objects 4 years ago
Hubert Chathi ec0b9badc7 Merge remote-tracking branch 'origin/master' into cross-signing-spec 4 years ago
Hubert Chathi 67edc3e229 add clarifications and diagrams 4 years ago
Travis Ralston 3fc5540755 Fix r0.1.4 changelog reference 4 years ago
Kitsune Ral 3b5340539d c2s: Make allOf and description siblings throughout the PR
The overall mess with allOf will be addressed separately; this PR just
puts $ref under allOf to fix the glaring misuse of $ref objects.
4 years ago
Kitsune Ral 48af2e5b47 joining.yaml: put descriptions next to their properties
Fixing the problem described in https://github.com/matrix-org/matrix-doc/pull/2518#issuecomment-621684187
4 years ago
Kitsune Ral 040a91f42d api/: More cleanup in descriptions
(and a fix in one example).
4 years ago
Kitsune Ral f299f60e17 Use public_rooms_response.yaml instead of replicating the same definition
Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
4 years ago
Kitsune Ral b789f3e10b dump-swagger.py: fix a typo in the help string 4 years ago
Kitsune Ral 67a8176903 Clarify officially that we use multiple API files
This is not something endorsed by the OpenAPI spec, just our practice.
4 years ago
Kitsune Ral 6cfb94562e c2s: clean up $ref objects
* Most of the changes: align to the $ref object definition
  (https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03#section-3)
  that says that any attribute other than $ref be ignored.
* Remove extraneous leading ./ in $ref paths
* Fix an apparent typo in registration.yaml:
  /account/password/msisdn/requestToken used a file from ../identity/*
  instead of its c2s namesake.
4 years ago
Travis Ralston 07d4606352
Merge pull request #2585 from matrix-org/client_server/release-r0.6.1
Client-Server r0.6.1
4 years ago
Travis Ralston 32133e6ec3
Merge pull request #2584 from matrix-org/server_server/release-r0.1.4
Server-Server r0.1.4
4 years ago
Travis Ralston 09986af8fc Server-Server r0.1.4
Includes a link to r0.1.3 because we forgot
4 years ago
Travis Ralston 19a97c62e2 Client-Server r0.6.1 4 years ago
Travis Ralston e14cf35c80
Merge pull request #2563 from matrix-org/travis/spec/2240-and-assoc--r-v6
Room Version 6
4 years ago
Travis Ralston db72e7caea
Merge pull request #2575 from matrix-org/travis/clarification/send-join
Clarify the auth_chain and state requirements for /send_join
4 years ago
Travis Ralston c3289614da
Merge pull request #2562 from matrix-org/travis/spec/2432-alias-semantics
Add spec for new alias handling (client-server)
4 years ago
Travis Ralston 4b64d80437 Remove v6 TODO
To avoid the conflict, hopefully.
4 years ago
Travis Ralston 65c6435093
Merge pull request #2570 from matrix-org/travis/clarification/s2s-auth
Clarify which server names to sign requests with
4 years ago
Travis Ralston 47c531adff
Clarify exactly which servers
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
4 years ago
Travis Ralston 04a26dafd0
Merge pull request #2546 from matrix-org/travis/spec/1466-softlogout
Spec soft-logout per MSC1466
4 years ago
Travis Ralston a5cb9c655c
It's important to say who
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
4 years ago
Travis Ralston bea6b321a5
Change the nots order
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
4 years ago
Travis Ralston d4c19a0e80
Federation
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
4 years ago
Travis Ralston 9bdafab2a4
Merge pull request #2571 from matrix-org/travis/clarification/createRoom-events
Clarify that a creation event and member event are needed for createRoom
4 years ago
Travis Ralston 25f4a30b18
Merge pull request #2577 from matrix-org/travis/clarification/spelling
Fix more typos throughout the specification
4 years ago
Travis Ralston 9792921357
Merge pull request #2576 from matrix-org/travis/clarification/server-names
Clarify that server names are at least 1 character
4 years ago
Travis Ralston 56ba0c7862
Merge pull request #2574 from matrix-org/travis/clarification/member-profiles
Remove claim that profile info is exclusively managed by the server
4 years ago
Travis Ralston 2cf68945d3
Merge pull request #2572 from matrix-org/travis/clarification/1179-forward-link
Update MSC1779 to forward link to matrix.org/foundation
4 years ago
Travis Ralston 669377888e Fix more typos throughout the specification
Fixes https://github.com/matrix-org/matrix-doc/issues/2193
4 years ago
Travis Ralston e9998c5335 Clarify that server names are at least 1 character
Fixes https://github.com/matrix-org/matrix-doc/issues/2460
4 years ago
Travis Ralston 67d46fa881 Clarify the auth_chain and state for send_join
Fixes https://github.com/matrix-org/matrix-doc/issues/2467
Fixes https://github.com/matrix-org/matrix-doc/issues/2464

This is based on looking at Synapse, not actually testing it. Within the send_join handling functions, an "event context" is acquired [here](d14c4d6b6d/synapse/handlers/federation.py (L1472)) which then later uses the previous state (populated [here](d14c4d6b6d/synapse/state/__init__.py (L286-L289)) in the event context) [here](d14c4d6b6d/synapse/handlers/federation.py (L1494-L1501)) to return a response. Within the event context, the previous state IDs are populated [here](d14c4d6b6d/synapse/state/__init__.py (L351)).
4 years ago
Kitsune Ral c72d30513e c2s: Add required: true to request bodies 4 years ago
Hubert Chathi a1177cbd61
Merge pull request #2566 from uhoreg/remove_string_string_string
E2E clarifications/improvements
4 years ago
Travis Ralston 06b0c1762a Move the send_join response to its own definition
Both APIs need clarification, so dedupe the changes.

We should also probably deprecate some of this stuff so we can eventually remove it.
4 years ago
Travis Ralston e8548f3c3b Remove claim that profile info is exclusively managed by the server
Fixes https://github.com/matrix-org/matrix-doc/issues/2496
4 years ago
Travis Ralston ac187904bb Update MSC1779 to forward link to matrix.org/foundation 4 years ago
Travis Ralston 200212ffd7 Clarify that a creation event and member event are needed for createRoom
Fixes https://github.com/matrix-org/matrix-doc/issues/2494
4 years ago
Travis Ralston b876ac5893 Clarify which server names to sign requests with
Fixes https://github.com/matrix-org/matrix-doc/issues/2512
4 years ago
Travis Ralston 730d164df7 Add changelogs 4 years ago
Travis Ralston 36ed6e94a2 Re-introduce signature schemas 4 years ago
Travis Ralston 93f68866c5 Fix spec generation not using titles on pseudo objects 4 years ago
Travis Ralston e9e9366804
Merge pull request #2209 from lucavb/master
MSC2209: Alter auth rules to check notifications in m.room.power_levels
4 years ago
Travis Ralston 5b0e94c6e0
Merge pull request #2240 from matrix-org/travis/msc/rooms-v6
MSC2240: Room version 6
4 years ago
Travis Ralston e422bad0ab
Merge pull request #2540 from matrix-org/clokep/json-validation-room-ver
MSC2540: Stricter event validation: JSON compliance
4 years ago
Travis Ralston bdd8f03fef Add changelog 4 years ago
Travis Ralston b5ba9a008f Merge remote-tracking branch 'tulir/fix-receipts-typo' 4 years ago
Tulir Asokan 5270ed0c0a Fix typo in read markers module
Signed-off-by: Tulir Asokan <tulir@maunium.net>
4 years ago
Hubert Chathi 6a8ba9b1d6 improve description of key object in CS and include a link in Fed 4 years ago
Hubert Chathi 5b38c04e19 make definition of signatures fields more consistent 4 years ago
Hubert Chathi 40ec1ae1a9
clarification 4 years ago
Hubert Chathi 64b1ea3323
clarify which key again 4 years ago
Hubert Chathi 915e698c23
clarify which key 4 years ago
Travis Ralston e264124faa
Merge pull request #2472 from uhoreg/symmetric_ssss
MSC2472: Symmetric SSSS
4 years ago
Travis Ralston 12ecf9f383
Merge pull request #2561 from matrix-org/travis/doc-2xx-format
Mention that we use OpenAPI 3's response code format
4 years ago
Travis Ralston ab62b6293c
Merge pull request #2560 from matrix-org/travis/clarify-txn-send
Fix the response format of the `/send` endpoint
4 years ago
Travis Ralston 899db411a3
Merge pull request #2433 from matrix-org/travis/spec/msc2324-early-releases
Attempt to convert MSC2324 (facilitating early releases of implementations) to reality
4 years ago
Travis Ralston 98416bf948 Add changelog for client-server API 4 years ago
Travis Ralston 66ab480967 Incorporate MSC2540 (Canonical JSON validation)
MSC: https://github.com/matrix-org/matrix-doc/pull/2540
4 years ago
Travis Ralston 74c51b05a4 Incorporate MSC2209 (`notifications` auth rules)
MSC: https://github.com/matrix-org/matrix-doc/pull/2209

The changes are slightly difficult to word without dumping the text in and playing a game of spot the difference, so we now use our pre-existing pygments support to render a representation of the difference. The difference is shown in markdown-like format instead of RST for ease of understanding. It's also not rendered HTML for largely complexity reasons.
4 years ago
Travis Ralston a1324aa9dc Move MSC2432 (alias handling) to v6 4 years ago
Travis Ralston be35311559 s/should/must for redaction algorithm
This feels like it was a mistake some time ago considering the redaction algorithm is used in very strict algorithms like event signing.
4 years ago
Travis Ralston 0300a3cab4 Move redaction algorithm into room version specification
We stick it in a client section of v1 as the earliest version to define the algorithm is v1, and the client-server spec tells clients to use this algorithm.
4 years ago
Travis Ralston 2b6086d87c Add changelog entries
It's a bit awkward that this shows up as a backwards compatible change, but it's also not breaking.
4 years ago
Travis Ralston b11cf560b5 Add spec for new alias handling (client-server)
MSC: https://github.com/matrix-org/matrix-doc/pull/2432

This commit does not deal with areas which will be covered by the room version specifications (namely the redaction algorithm).

It feels a bit overly cruel to completely obliterate all mentions of `m.room.aliases` from the spec as client/server developers may encounter the event type in the wild. To ensure that CTRL+F still works, a brief mention that they do nothing has been put in place, leaving no other references (except the redaction algorithm - see previous paragraph).
4 years ago
Travis Ralston 1388742a52 Mention that we use OpenAPI 3's response code format
See comments of https://github.com/matrix-org/matrix-doc/pull/2238
4 years ago
Travis Ralston 8220de58bd Drop loudly and instead encourage 4 years ago
Travis Ralston 04e8244dbc
Clarify various bits of wording
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
4 years ago
Travis Ralston 74b627ac0b Fix the response format of the `/send` endpoint
Fixes https://github.com/matrix-org/matrix-doc/issues/2236
4 years ago
Travis Ralston 3875d50de8 Add missing changelog 4 years ago
Patrick Cloke 07716711f1
Give more guidance on how invalid events should be handled.
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
4 years ago
Kegsay 86d4a6f786
Merge pull request #2559 from matrix-org/kegan/backfill-wording
Make backfill wording clearer
4 years ago
Kegsay fc91946e5a
Update api/server-server/backfill.yaml
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
4 years ago
Kegan Dougal 9765116c47 Make backfill wording clearer 4 years ago
Patrick Cloke f5ebe33a9c Reword how bad values are handled. 4 years ago
Travis Ralston 10e4ad72ca
Clarify retention of information for soft logout
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
4 years ago
Travis Ralston 05e83f2e7d Fix more describes -> describe 4 years ago
Travis Ralston df41947369
Spell words correctly
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
4 years ago
Travis Ralston 0e771c7b07
Merge pull request #2547 from matrix-org/travis/spec/1802-fix-200
Spec v2 send_join and send_leave endpoints
4 years ago
Travis Ralston 7c0046ffc7 describes -> describe 4 years ago
Travis Ralston d419e3b38a Remove extraneous spaces 4 years ago
Travis Ralston 77d83b9ce5 Clarify that soft logout is about client state 4 years ago
Travis Ralston 249421fa62 Assign MSC number 4 years ago
Travis Ralston 6eecee7d3c Proposal to clarify spoilers
Original MSC: https://github.com/matrix-org/matrix-doc/pull/2010

*Per the proposal process, MSC2010 has been modified to match this MSC.*
4 years ago
Hubert Chathi 2e0ef11640
Wording fixes 4 years ago
Travis Ralston c2d5516517 Clobber changelogs 4 years ago
Travis Ralston 749be9ddf2
Merge pull request #2554 from deepbluev7/number-fixes
Fix some numbers in the spec text.
4 years ago
Travis Ralston f9af712e1b
Merge pull request #2526 from uhoreg/e2e_delete_backup
MSC2526: Add ability to delete key backups
4 years ago
Travis Ralston ddeb695b97
Use 'several' in place of counting 4 years ago
Nicolas Werner a7e7496cd6 Fix some numbers in the spec text.
Odds were not written as an exponent.
Special tag names count was not updated.

Fixes #2550

Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
4 years ago
Matthew Hodgson b8f13ac35e
Merge pull request #2553 from Dominaezzz/patch-1
Fix Typo
4 years ago
Dominic Fischer c3582e5fc6
Add changelog 4 years ago
Dominic Fischer 28d460fb62
Fix Typo 4 years ago
Travis Ralston 19cac03305
Update specification/client_server_api.rst
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
4 years ago
Travis Ralston a2a1694c35 Spec v2 send_join and send_leave endpoints
MSC: https://github.com/matrix-org/matrix-doc/pull/1802

Fixes https://github.com/matrix-org/matrix-doc/issues/2541

This also adds the v2 invite endpoint to the ACL protected list as that appears to be an omission.
4 years ago
Travis Ralston 54102b8d36 Clarify wording per review suggestions 4 years ago
Travis Ralston a15fe3723d Merge master into MSC2342 spec 4 years ago
Travis Ralston b4beb05dde Remove excess whitespace 4 years ago
Travis Ralston bd26a41114 off by one error 4 years ago
Travis Ralston d24f15a3a9 Spec soft-logout per MSC1466
MSC: https://github.com/matrix-org/matrix-doc/issues/1466
4 years ago
Hubert Chathi fae1165e1c spec what to do if you try to delete a backup that's already deleted 4 years ago
Hubert Chathi bac9afa124 document error codes and remove a statement that isn't true 4 years ago
Patrick Cloke e5fa76c8ed
Clarify range a bit more. 4 years ago
Patrick Cloke 007c8b5799
Clarify the range of valid values. 4 years ago
Patrick Cloke 0b6301ac80
Fix grammar and typos from review.
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
4 years ago
Hubert Chathi c196cbcf42 add introduction and discourage new implementations from using old method 4 years ago
Travis Ralston 560eb6df71
Fix MSC reference 4 years ago
Patrick Cloke 6757c60d35
Specify the current stable room versions.
Co-authored-by: Travis Ralston <travpc@gmail.com>
4 years ago
Hubert Chathi bd95568c8c remove duplicate key 4 years ago
Hubert Chathi 1bae8ea633 we actually don't support the GET /room_key/versions/ with trailing slash 4 years ago
Travis Ralston 7eafe5a1d9
Merge pull request #2538 from matrix-org/travis/spec/clarify-num-ev-limit
Clarify the limits of prev_events and auth_events
4 years ago
Hubert Chathi 9ccfe61674 add some clarifications and add sharing withheld reason with other devices 4 years ago
Patrick Cloke 03588cbf0d Be clearer about errors and what to do with current room versions. 4 years ago
Patrick Cloke bbbd9c4c33
Update wording to avoid demand-style language.
Co-authored-by: Travis Ralston <travpc@gmail.com>
4 years ago
Hubert Chathi a6ae757e7a
Fix typo 4 years ago
Travis Ralston d8e6e17bd3 Incorporate integers MSC 4 years ago
Patrick Cloke 11587a5384 Small clarification. 4 years ago
Patrick Cloke 7797c18727 Add MSC2540 for stricter validation of event JSON. 4 years ago
Travis Ralston 05228bf40b ``s -> s`` 4 years ago
Travis Ralston 9599c3bc99 changelog 4 years ago
Travis Ralston 42ae5c966a Clarify the limits of prev_events and auth_events
Fixes https://github.com/matrix-org/matrix-doc/issues/2307

These restrictions are due to a Synapse change which never made it to the spec prior to the MSC process. This is therefore documenting an omission.

Synapse's numbers are verified here: 207b1737ee/synapse/handlers/federation.py (L1183-L1213)

... and Synapse's handling of the backfill endpoint is described here: 207b1737ee/synapse/handlers/federation.py (L829-L837)

This also includes a mention that https://github.com/matrix-org/matrix-doc/pull/1594 should render the `auth_events` limitation unnecessary. 

No changes are required to the the "checks on receipt of a PDU" section of the server-server spec as it starts with "must be a valid event", to which an event is invalid if it contains too many prev or auth events.
4 years ago
Hubert Chathi f97b394591 add changelogs 4 years ago
Travis Ralston f156938821 Update v6 room proposal for modern activity 4 years ago
Travis Ralston 29d0d97b25 Merge branch 'master' into travis/msc/rooms-v6 4 years ago
Hubert Chathi a8910fe323 initial spec for cross-signing 4 years ago
Travis Ralston 3556b8457f Add changelog for 2527 4 years ago
Travis Ralston d69e5af7ab Merge remote-tracking branch 'Gnuxie/patch-1' 4 years ago
Travis Ralston 10293d6951
Merge pull request #2532 from matrix-org/clokep/sso-login
Add MSC2454 to the specification.
4 years ago
Patrick Cloke e85f6c31a3
Fix a typo found in review.
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
4 years ago
Hubert Chathi 86d0d04ed1 don't include unrelated changes 4 years ago
Patrick Cloke 78f8d1322f Add MSC2454 to the specification. 4 years ago
Kitsune Ral ff59fc1905 /keys/query: Add a title in the response
The device keys structure in queryKeys is not the same as the one
defined in device_keys.yaml (it adds things on top of it).

Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
4 years ago
Kitsune Ral 77783b8fc3 Remove extraneous quotes, fix a typo
filter.yaml: quotes under |- were taken literally.
notifications.yaml: it's a number in the example, not a string
4 years ago
Ben Parsons c704da1449 remove proposal 4 years ago
Ben Parsons 9065d1aa14 proposal to use existing events as captions for images 4 years ago
Richard van der Hoff 6613cd89a6
2454-ui-interactive-auth-for-sso.md: markup fix 4 years ago
Hubert Chathi a896729ac2 some more clarifications and indentation fixes 4 years ago
Gnuxie 6b8b31ce63
correct use of required annotation in json-schema
https://tools.ietf.org/html/draft-handrews-json-schema-validation-02#section-6.5.3
4 years ago
Hubert Chathi 0145191d43 add links to endpoints and add delete endpoint 4 years ago
Hubert Chathi 0b39308a13 rename to use msc number 4 years ago
Hubert Chathi fffed943bc proposal to add endpoint to delete backups 4 years ago
Hubert Chathi 3d1c33ed1b move API definitions into backup section 4 years ago
Hubert Chathi 5f3ee44cfb add more suggestions from review 4 years ago
Hubert Chathi 8ff1c26ef2 fix indentation 4 years ago
Hubert Chathi e0b4a3c912
Apply suggestions from code review
Co-authored-by: Travis Ralston <travpc@gmail.com>
4 years ago
Hubert Chathi 0d2924841b
Merge pull request #2524 from uhoreg/e2e_misc_fixes_202005
misc fixes in e2ee spec
4 years ago
Hubert Chathi 6ede023b35 make the changelog match others so they get combined 4 years ago
Hubert Chathi 9980b83dd4 add changelog 4 years ago
Travis Ralston 4cd4e19bf8
Merge pull request #2454 from matrix-org/clokep/ui-interactive-auth-for-sso
MSC2454: Support UI interactive auth for SSO
4 years ago
Travis Ralston bc0c81f062
Merge pull request #2525 from matrix-org/poljar/event-id-required
client-server: Mark the event_id when putting room events as required.
4 years ago
Travis Ralston b0e8fd648d
Apply suggestions from code review 4 years ago
Damir Jelić 3054ac572f changelogs: Fragment for the event id when putting room events clarification. 4 years ago
Damir Jelić 6e33954256 client-server: Mark the event_id when putting room events as required. 4 years ago
Hubert Chathi 9dc6e00335 draft of proposal for SAS 4 years ago
Hubert Chathi e89521d195 some fixes (spelling, RST, and naming) 4 years ago
Travis Ralston 8b4cfc643f
Merge pull request #2523 from matrix-org/clokep/passwd-invalidation-spec
Add an additional parameter to the modify password API per MSC2457.
4 years ago
Patrick Cloke 1e330c9423 Clarify revocation behavior. 4 years ago
Patrick Cloke 0c582ea8c7
Apply suggestions from code review
Co-authored-by: Travis Ralston <travpc@gmail.com>
4 years ago
Patrick Cloke 958e1b4a2e Make the spec changes for MSC 2457. 4 years ago
Travis Ralston 8ba6d0157b
Merge pull request #2457 from matrix-org/clokep/modify-password-invalid-sessions
MSC2457: Invalidating devices during password modification
4 years ago
Travis Ralston 411b3f432b Update changelog 4 years ago
Travis Ralston 0207242e23 Merge remote-tracking branch 'auscompgeek/push-username-highlight' 4 years ago
David Vo b8efb5ac47 Add changelog for 2519
Signed-off-by: David Vo <david@vovo.id.au>
4 years ago
David Vo 0ae597626a Fix .m.rule.contains_user_name push rule to highlight
Signed-off-by: David Vo <david@vovo.id.au>
4 years ago
Kitsune Ral 202bf8abb1 Cleanup summaries and descriptions 4 years ago
Kitsune Ral c441e74b27 README.rst: fix the contributor's surname 4 years ago
Travis Ralston a3385126a7
Merge pull request #2507 from matrix-org/travis/proposal-buckets
Add some words about what categories are
4 years ago
Travis Ralston 16905a2f5b Make the spec core team the Spec Core Team 4 years ago
Travis Ralston 97b23da9f6 Update changelog entry for 2510 clarification 4 years ago
Travis Ralston b8f68cb874 Merge remote-tracking branch 'valkum/patch-1' 4 years ago
Rudi Floren 2bc798dcfa
Add changelog newsfragment 4 years ago
Rudi Floren b5868a59d6
Fix typo in Fed. API request auth python example
Fixes the typo in the Request Authentication python example. It seems like a copy paste error.

Closes: #2509
Signed-off-by: Rudi Floren <rudi.floren@gmail.com>
4 years ago
Travis Ralston 3c34d83082 Add some words about what categories are 4 years ago
Hubert Chathi 32aecc506f
Merge pull request #2503 from uhoreg/msc-fixes-2020-04
minor clarifications and corrections
4 years ago
Hubert Chathi 9103a0a398 minor clarifications and corrections 4 years ago
Hubert Chathi 91f51bb23e use .ready to accept a verification, plus some clarification 4 years ago
Hubert Chathi 4672a7083e make .ready required, and add .done 4 years ago
Patrick Cloke f6879c897b
Fix minor grammatical fixes.
Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>
4 years ago
Travis Ralston be1669dd5b Merge branch 'fix-iv' 4 years ago
Travis Ralston b908b8e777 Add changelog 4 years ago
Lukas Lihotzki af7cf84083 Fix iv parameter description
Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
4 years ago
Ben Parsons 57f3c8494f
Merge pull request #2491 from matrix-org/benp/proposals-scraper-fix
fix pagination in proposals scraper
4 years ago
Ben Parsons 7c037d2490 improve capture and add example 4 years ago
Ben Parsons 5ae8a8bcfd fix pagination in scraper 4 years ago
Patrick Cloke 4cfcda57fb Clarify that the only new item here is the new authentication type. 4 years ago
Hubert Chathi 4a3f9ec63a add information to check the key 4 years ago
Hubert Chathi 943d9386bb remove requirement to sign the key, since it is no longer used to trust it 4 years ago
Travis Ralston 78a0843758
Merge pull request #2482 from aaronaxvig/master
Improve Windows steps
4 years ago
aaronaxvig 2f5d8a4a27
Removed PowerShell stuff
Clarified to use Command Prompt as recommended is pull request #2479, removed all PowerShell stuff.
4 years ago
aaronaxvig 5da5d5eeb9
Merge pull request #1 from matrix-org/master
Updating my fork
4 years ago
Aaron Axvig edd75703e2 Improved steps for building docs on Windows 4 years ago
Patrick Cloke 745f8c09df Fix incorrect statement about the current spec's guidance. 4 years ago
Patrick Cloke eb48863c40
Markdown formatting.
Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>
4 years ago
Travis Ralston 2313f1e281
Merge pull request #2432 from matrix-org/rav/proposal/alt_canonical_aliases
MSC2432: Updated semantics for publishing room aliases
4 years ago
Hubert Chathi 4b21e44e5f use the MSC number 4 years ago
Hubert Chathi 76dd16b854 add proposal to switch to symmetric crypto 4 years ago
Hubert Chathi f7ebda040e update some examples to use new algorithm name 4 years ago
Hubert Chathi eb17e5d826 switch to symmetric algorithm 4 years ago
Travis Ralston b8b0e0d792
Merge pull request #2422 from deepbluev7/master
MSC2422: Allow color on font tag
4 years ago
Travis Ralston e05aa78604
Merge pull request #2471 from matrix-org/travis/changelog-removals
Support a 'removed endpoints' changelog type
4 years ago
Travis Ralston f7ce75d36c Support a 'removed endpoints' changelog type 4 years ago
Travis Ralston b6d97c5983
Merge pull request #2470 from matrix-org/clokep/remove-query-auth
Remove query_auth from the specification per MSC2451.
4 years ago
Travis Ralston 4f0ac741a2
Update changelogs/server_server/newsfragments/2470.removal 4 years ago
Patrick Cloke 9944decacf Add changelog entry. 4 years ago
Patrick Cloke fc03f7faa6 Remove query_auth from the specification per MSC2451. 4 years ago
Travis Ralston ef1032ee32
Merge pull request #2451 from matrix-org/clokep/remove-old-fed-endpoint
MSC2451: Remove `query_auth` federation endpoint.
4 years ago
Hubert Chathi 9e7bcaac9c
Merge pull request #2465 from uhoreg/state_res_clarification
clarify first run of iterative auth checks
4 years ago
Travis Ralston 522210bb5f
Merge pull request #2469 from aaronaxvig/issue2173
Fix italics in redact API description
4 years ago
Aaron Axvig 4d808762da Change formatting from italics to code 4 years ago
Hubert Chathi 30586ed98c remove extra space 4 years ago
Hubert Chathi e67ba0cd05 add note indicating similarity between key backup format and key exports
also copy description of forwarding_curve25519_key_chain from key exports, since
it's a better description
4 years ago
DeepBlueV7.X 28dc6a0515
Update proposals/2422-allow-color-attribute-on-font-tag.md
Apply typo fix as suggested.

Co-Authored-By: David Vo <auscompgeek@users.noreply.github.com>
4 years ago
Hubert Chathi a0fcb7d9e1 make code required, and some more details about no_olm 4 years ago
Hubert Chathi 2b71234f3c clarify first run of iterative auth checks 4 years ago
Richard van der Hoff 7917d087f3 clarifications 4 years ago
Patrick Cloke 2d2731efff
Remove duplicated word.
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
4 years ago
Patrick Cloke 61b306f8a8 Remove concerns about backwards compatibility. 4 years ago
Patrick Cloke 1facf7ff12 Add an MSC proposal for how to handle sessions when modifying a password. 4 years ago
Patrick Cloke 78e08c1987 Attempt to clarify the proposed changes. 4 years ago
Patrick Cloke 570398e045 Remove section on the how the authentication currently works and just reference the specification. 4 years ago
Patrick Cloke 4d177753e1 Move proposal to proper proposal number. 4 years ago
Patrick Cloke f48bbd3278 Attempt to clarify the MSC. 4 years ago
Patrick Cloke c69a747bae Convert the initial Google Doc to Markdown. 4 years ago
Travis Ralston 79b2e5263d
Update specification/proposals_intro.rst
Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
4 years ago
DeepBlueV7.X 2d85422a2f
Update proposals/2422-allow-color-attribute-on-font-tag.md
Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
4 years ago
Nicolas Werner b760ec2d74 Add comments why alternatives to MSC2422 weren't chosen 4 years ago
Travis Ralston 7666b9fea7 Add changelog for name correction
https://github.com/matrix-org/matrix-doc/pull/2453
4 years ago
Travis Ralston 8e83256493
Merge pull request #2453 from Runster/patch-1
Correct name of Phil Zimmermann
4 years ago
Runster e6c7eac023
Correct name of Phil Zimmermann 4 years ago
Travis Ralston da795e5824
Apply suggestions from code review
Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
4 years ago
DeepBlueV7.X 6b2752c4c2
Update proposals/2422-allow-color-attribute-on-font-tag.md
Co-Authored-By: Travis Ralston <travpc@gmail.com>
4 years ago
DeepBlueV7.X 438ff8fc1d
Update proposals/2422-allow-color-attribute-on-font-tag.md
Co-Authored-By: Travis Ralston <travpc@gmail.com>
4 years ago
Patrick Cloke 61715f6452 Update and expand the proposal based on feedback and additional info. 4 years ago
Patrick Cloke 68357a7d23
Fix a typo in -> and.
Co-Authored-By: Matthew Hodgson <matthew@matrix.org>
4 years ago
Patrick Cloke 6754d5ba5f Move filename based on MSC #. 4 years ago
Patrick Cloke c3420770ad Clarify history of endpoint. 4 years ago
Patrick Cloke 420180a69d MSC: Remove query_auth federation endpoint. 4 years ago
Richard van der Hoff 4e123ca121
Update proposals/2432-revised-alias-publishing.md
Co-Authored-By: Kitsune Ral <Kitsune-Ral@users.sf.net>
4 years ago
Hubert Chathi a7279d99f0
Update proposals/1543-qr_code_key_verification.md
Co-Authored-By: Travis Ralston <travpc@gmail.com>
4 years ago
Matthew Hodgson 0ce8e5ae1d
Merge pull request #2445 from 29ki/typo-upgrades
Fix typo for upgrade
4 years ago
Örjan Fors e151ba96ac Fix typo for upgrade
Signed-off-by: Örjan Fors <orion@29k.org>
4 years ago
Richard van der Hoff 8b9ea10e11 server admins can list aliases 4 years ago
Richard van der Hoff 98a6cd0f45
fix table 4 years ago
Richard van der Hoff 30d762cc72 document unstable prefixes/feature flags 4 years ago
Richard van der Hoff 645dbcc091 make room alias lists peekable 4 years ago
Hubert Chathi ea0abe9de9 remove incorrect stuff 4 years ago
Hubert Chathi c77d04c709 add base64 option 4 years ago
Hubert Chathi 405ac1e2b5 add base32 option 4 years ago
Travis Ralston f823118a69
Merge pull request #2434 from matrix-org/travis/spec/2313-moderation-policies
Spec moderation policy rooms (MSC2313)
4 years ago
Richard van der Hoff 786772f764
Update proposals/2432-revised-alias-publishing.md
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
4 years ago
Travis Ralston 6d475ebd57
Remove whitespace
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
4 years ago
Travis Ralston 7a878bb6c3 Fix location of changelog entries and synergize them 4 years ago
Travis Ralston da047523e3 Changelog 4 years ago
Travis Ralston c7942d1cec Spec moderation policy rooms (MSC2313)
MSC: https://github.com/matrix-org/matrix-doc/pull/2313
4 years ago
Travis Ralston 3ee9a7d654 Attempt to convert MSC2324 to reality
We've been using this in practice for a while now, so we should document it more officially. 

MSC: https://github.com/matrix-org/matrix-doc/pull/2324
4 years ago
Richard van der Hoff 95ff26679b
Apply suggestions from code review
Co-Authored-By: Matthew Hodgson <matthew@matrix.org>
Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>
4 years ago
Richard van der Hoff 6bd4b3c08a MSC: Updated semantics for publishing room aliases 4 years ago
Hubert Chathi 41072fcaa9
Apply suggestions from code review
Co-Authored-By: Matthew Hodgson <matthew@arasphere.net>
4 years ago
Sorunome 5ae462d558
address issues 4 years ago
Hubert Chathi c79ed36fcb
Merge pull request #2430 from deepbluev7/mmaster
Fix key export format example
4 years ago
Hubert Chathi 78b8133142 use binary encoding of keys to reduce size of QR code 4 years ago
Nicolas Werner 6911171e83 Fix key export format example
Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
4 years ago
Brendan Abolivier 3c49ba9eb5
Remove reference to second endpoint 4 years ago
Brendan Abolivier 0d4e2e75c7
Remove unstable_features endpoint 4 years ago
Brendan Abolivier 2e2f1c1174
Extend the scope of casefolding to the whole address 4 years ago
Hubert Chathi 7f93084242 request can be transaction_id 4 years ago
Hubert Chathi 21ddf8507a make other_user_key optional for one flow of self-verification 4 years ago
Hubert Chathi fcfd5d99a1 add examples for self-verification 4 years ago
Hubert Chathi 0b4411eadb more words 4 years ago
Hubert Chathi be9c37e959 more clarifications, add comparison with SAS 4 years ago
Hubert Chathi a8c7fda187 add some clarifications 4 years ago
Nicolas Werner b47de28da5 MSC2422: Allow color on font tag
Signed-off-by: Nicolas Werner <nicolas.werner@hotmail.de>
4 years ago
Hubert Chathi 379bb79b00
Update proposals/1543-qr_code_key_verification.md 4 years ago
Hubert Chathi 4f83bd3e36
Update proposals/1543-qr_code_key_verification.md
Co-Authored-By: Travis Ralston <travpc@gmail.com>
4 years ago
Sorunome 53435d400d
update with new endpoints 4 years ago
Matthew Hodgson 6e3946f7bc
Merge pull request #2415 from iinuwa/spelling
Fix spelling mistakes.
4 years ago
Isaiah Inuwa 715d2d674b Add changelog for spelling. 4 years ago
Isaiah Inuwa 8e888b916c Fix spelling mistakes. 4 years ago
Isaiah Inuwa 2563711ceb Rename proposal with proper ID. 4 years ago
Isaiah Inuwa 72bc0e0f6c Add proposal to make reason option on content reporting 4 years ago
Isaiah Inuwa 692d039a2b Merge branch 'master' of github.com:iinuwa/matrix-doc 4 years ago
Sorunome 776436a5f0
forgot to update one json example 4 years ago
Sorunome f0411a3cc5
make clear displayname and avatar_url are optional, add status codes 4 years ago
Sorunome 13964988f4
remove question regarding federation api version, as it has to be v2 4 years ago
Sorunome 1ef7c17b93
remove stray heading 4 years ago
Sorunome bee4e9e269
move to correct msc number 4 years ago
Sorunome 501d7ecfd5
add knock proposal 4 years ago
Hubert Chathi 654a9574be rename to match MSC number 4 years ago
Hubert Chathi c87802587a fix typos, add information 4 years ago
Matthew Hodgson 4808b60cdd
Merge pull request #2396 from aaronraimist/v4-event-id-link
Fix link to v4 event ID format in identity service spec
4 years ago
Aaron Raimist 82a626a98a Fix link to v4 event ID format in identity service spec
Signed-off-by: Aaron Raimist <aaron@raim.ist>
4 years ago
Travis Ralston 6c48e77878
Merge pull request #2395 from matrix-org/travis/tags-push
Add missing tags to push rules endpoints
5 years ago
Travis Ralston f59aa563dd Add missing tags to push rules endpoints
Without the tags, the endpoints don't end up in the swagger. No changelog for this because it doesn't affect the spec itself.
5 years ago
Travis Ralston 224a103355
Merge pull request #2392 from matrix-org/travis/s2s/fix-auth
Move auth events selection to a more appropriate section of the spec
5 years ago
Travis Ralston 912b3cbc95 Move auth events selection to a more appropriate section of the spec
This was pretty buried, and feels like a common question.
5 years ago
iinuwa 6005c16b60
Merge pull request #1 from matrix-org/master
Merge from origin
5 years ago
Hubert Chathi a62c817745
Apply suggestions from code review
Co-Authored-By: Matthew Hodgson <matthew@arasphere.net>
5 years ago
Hubert Chathi 90bf2b3b46 add changelog 5 years ago
Hubert Chathi 4cde800ea1 fix validation errors 5 years ago
Hubert Chathi 59e337187b remove duplicated line 5 years ago
Hubert Chathi e658b17070 initial version of spec for key backups 5 years ago
Hubert Chathi e2e83b130d initial proposal for reporting of withheld keys 5 years ago
Travis Ralston f11f77f33b
Merge pull request #2386 from carbeer/patch-1
Change state_type to event_type
5 years ago
Carolin Beer 3aba6e3eeb
Change state_type to event_type
I couldn't find any other reference to a state_type within the entire specification. I assume this is supposed to be the event_type? This aligns with the description of changes resulting from a state update.
5 years ago
Travis Ralston c823bdbf70
Merge pull request #2384 from matrix-org/travis/pr-templates
Add some github stuff (PR templates, funding)
5 years ago
Travis Ralston 47b94b62c4 Add some github stuff (PR templates, funding) 5 years ago
Travis Ralston 21b50d749a
Merge pull request #2369 from iinuwa/token-auth-doc-tweaks
Rename nonce to txn_id. Reorganize for clarity.
5 years ago
Travis Ralston ccc7bcabbc id -> ID while we're here 5 years ago
Travis Ralston 7cfc4b09a6 Changelog 5 years ago
Travis Ralston b556ef3605
Merge pull request #2381 from Cadair/patch-1
Clarify description of user directory
5 years ago
Travis Ralston 4d0bd5b9e2 Changelog 5 years ago
Stuart Mumford c2ffef051f
Clarify description of user directory
Signed off by Stuart Mumford <stuart@cadair.com>
5 years ago
Hubert Chathi 22f7eaae0c add example 5 years ago
Hubert Chathi d7263861d8
Merge pull request #2371 from uhoreg/add_unstable_prefix_template
add unstable prefix section to proposal template
5 years ago
Travis Ralston 1cf322bc2a MSC2324: Facilitating early releases of software dependent on spec (#2324) 5 years ago
Hubert Chathi 75a6a28c6c
Merge pull request #2372 from matrix-org/jryans/clarify-cross-signing-examples
Clarify cross-signing examples
5 years ago
Travis Ralston e4deb4ca27
Merge pull request #2367 from matrix-org/erikj/invite_reject_reasons
MSC2367: Add reason field to all membership events
5 years ago
J. Ryan Stinnett 71faffc9ed Update example to show keys wrapped by user ID 5 years ago
J. Ryan Stinnett c549bf201b Clarify POST instead of GET for federation key query 5 years ago
Hubert Chathi 17abe054f2 send m.key.verification.cancel to other devices when one device is ready 5 years ago
Hubert Chathi b7234c7fd3 add unstable prefix section to proposal template 5 years ago
Isaiah Inuwa ad383351c2 Rename nonce to txn_id. Reorganize for clarity.
Signed-Off-By: Isaiah Inuwa <isaiah.inuwa@gmail.com>
5 years ago
Hubert Chathi 5742c30a96 s/accept/ready/ because we already have an m.key.verification.accept 5 years ago
Hubert Chathi 5f5f99fcc1 wording tweaks 5 years ago
Travis Ralston f37aa30c43
Merge pull request #1756 from uhoreg/cross-signing2
MSC1756: cross-signing devices using a master identity key
5 years ago
Erik Johnston f054ffe760 Add note about using PUT /state/m.room.member/ 5 years ago
Erik Johnston 29745d04fb erikj/msc_membership_reasons 5 years ago
Hubert Chathi abbba4788c rename to match MSC number 5 years ago
Hubert Chathi 33df2d1414 initial proposal of `m.key.verification.accept` 5 years ago
Travis Ralston 2a82a5c27c
Merge pull request #2313 from matrix-org/msc2313
MSC2313: Moderation policies as rooms (ban lists)
5 years ago
Hubert Chathi 82260689c9 add link to migrating from device verifications 5 years ago
Hubert Chathi 3b2f897c7e
Apply suggestions from code review
Co-Authored-By: Matthew Hodgson <matthew@arasphere.net>
5 years ago
Travis Ralston c7b3d99853 m.policy.rule won the debate 5 years ago
Hubert Chathi 1590ae224c make hash commitment always include the m.relates_to 5 years ago
Travis Ralston f1ff31d2cb
Merge pull request #2284 from matrix-org/travis/msc/optional-is-discover
MSC2284: Making the identity server optional during discovery
5 years ago
Travis Ralston f610235cd6 Rename the MSC to be better targeted 5 years ago
Travis Ralston e89d81c587
Merge pull request #2351 from MurzNN/patch-2
Typo: later user » later use
5 years ago
Travis Ralston d93d8fe9b5 Add a changelog 5 years ago
Travis Ralston 605f3390c7
Merge pull request #1946 from uhoreg/ssss
MSC1946: Secure Secret Storage and Sharing
5 years ago
Travis Ralston 037894d6f7
Merge pull request #2244 from tulir/mass_redactions
MSC2244: Mass redactions
5 years ago
Hubert Chathi fc793557f8 make the default key event an object 5 years ago
Alexey Murz Korepov daa610659b
Typo: later user » later use 5 years ago
Travis Ralston dcbdb94693
Add explanation 5 years ago
Hubert Chathi e8ce135a41 add clarification and examples 5 years ago
Hubert Chathi 5cc5908dd5
Update proposals/1946-secure_server-side_storage.md
Co-Authored-By: Matthew Hodgson <matthew@arasphere.net>
5 years ago
Travis Ralston 11a7d799a3
Merge pull request #2349 from matrix-org/identity_service/release-r0.3.0
Identity Service r0.3.0 release
5 years ago
Travis Ralston 96bc8354d5
Merge pull request #2350 from matrix-org/client_server/release-r0.6.0
Client Server r0.6.0 release
5 years ago
Travis Ralston 5b6d6fe498
Update changelogs/client_server.rst
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
5 years ago
Brendan Abolivier 52cd69eb75
Split into two non-versioned endpoints 5 years ago
Travis Ralston 7351c0cd1e Add missing versions to identity spec 5 years ago
Travis Ralston 50647e646e Add r0.6.0 to the list of spec versions. 5 years ago
Travis Ralston f361c756d2 Client Server r0.6.0 release 5 years ago
Travis Ralston df202dd493 Identity Service r0.3.0 release 5 years ago
Travis Ralston 14d609e766
Merge pull request #2344 from matrix-org/travis/spec/fix-2338
Add filter query param to /context
5 years ago
Travis Ralston 9f01850f7a Add some words about where the filter is applied 5 years ago
Travis Ralston a1e5a96cf8
Update api/client-server/event_context.yaml
Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
5 years ago
Travis Ralston 8e6e47ae7d
Merge pull request #2343 from matrix-org/travis/spec/fix-2120
Recommend that clients don't preview URLs in encrypted rooms
5 years ago
Travis Ralston cca92ea4f5
Merge pull request #2347 from matrix-org/travis/spec/v5-default
Make room version 5 the default room version.
5 years ago
Travis Ralston 3e035c9172 Make room version 5 the default room version.
As per [MSC2334](https://github.com/matrix-org/matrix-doc/pull/2334)
5 years ago
Travis Ralston fed0b955c8
Merge pull request #2334 from aaronraimist/MSC2333-default-room-version-v5
MSC2334 - Change default room version to v5
5 years ago
Travis Ralston e59bb20dc3 Try to clarify the filter information on /context 5 years ago
Travis Ralston ef957b990d
Merge pull request #2341 from matrix-org/travis/spec/fix-2298
Clarify that submit_url is without authentication
5 years ago
Travis Ralston f012da17a1 Explain why e2e previews are bad 5 years ago
Hubert Chathi a514485bcb add note about displaying other events 5 years ago
Hubert Chathi f4bad37c10 add notes about redactions/edits 5 years ago
Travis Ralston a50e828509
Merge pull request #2342 from matrix-org/travis/spec/fix-1982
Clarify what format the `country` is on phone number inputs
5 years ago
Travis Ralston a85d72a1ee
Merge pull request #2345 from matrix-org/travis/spec/fix-2269
Clarify that the room ID is the object key in /sync responses
5 years ago
Travis Ralston 3d954f93b5 Clarify that the room ID is the object key in /sync responses
Fixes https://github.com/matrix-org/matrix-doc/issues/2269
5 years ago
Travis Ralston 021c056efc Add filter query param to /context
This was missed as part of lazy-loading.

Fixes https://github.com/matrix-org/matrix-doc/issues/2338
5 years ago
Travis Ralston b662a33081 Recommend that clients don't preview URLs in encrypted rooms
Any stronger of a recommendation would probably require a MSC due to the behaviour change. 

Fixes https://github.com/matrix-org/matrix-doc/issues/2120
5 years ago
Travis Ralston 284b15495b Clarify what format the `country` is on phone number inputs
Fixes https://github.com/matrix-org/matrix-doc/issues/1982
5 years ago
Travis Ralston 1dfe2ade08 Changelog 5 years ago
Travis Ralston e95eafb2ba Clarify that submit_url is without authentication
The request is authorized by its parameters, not by an additional access token.

Fixes https://github.com/matrix-org/matrix-doc/issues/2298
5 years ago
Tulir Asokan 30106aaaac Add section about backwards compatibility
Signed-off-by: Tulir Asokan <tulir@maunium.net>
5 years ago
Hubert Chathi a51805cfe7
Apply suggestions from code review
Co-Authored-By: Kitsune Ral <Kitsune-Ral@users.sf.net>
5 years ago
Hubert Chathi 3e42cf528b
Apply suggestions from code review
Co-Authored-By: David Baker <dbkr@users.noreply.github.com>
5 years ago
Hubert Chathi 7466955744 add note that verifying yourself may want to use to_device instead 5 years ago
Richard van der Hoff ae163ab818
remove some lies about markdown being bad (#2337) 5 years ago
Aaron Raimist 14c32cc4bf Wrap lines 5 years ago
Aaron Raimist 6270983b7f MSC2334 - Change default room version to v5
Signed-off-by: Aaron Raimist <aaron@raim.ist>
5 years ago
Travis Ralston f281ac69cd
Merge pull request #2328 from matrix-org/travis/spec/2290-new-bind
Spec MSC2290: 3PID binding split
5 years ago
Travis Ralston ce286dac02
Merge pull request #1538 from uhoreg/e2e_backup
MSC1219: storing megolm keys serverside
5 years ago
Travis Ralston 2bca44a2e5 Remove extraneous backwards compatibility note 5 years ago
Hubert Chathi a6977f19c5
Update proposals/1219-storing-megolm-keys-serverside.md
Co-Authored-By: aditsachde <23707194+aditsachde@users.noreply.github.com>
5 years ago
Hubert Chathi 4fadace9c8
Update proposals/1946-secure_server-side_storage.md
Co-Authored-By: David Baker <dbkr@users.noreply.github.com>
5 years ago
Hubert Chathi 86eccc3bc8 change how we mark the default key, and make sure clients trust keys 5 years ago
Travis Ralston f5f12a29e0 Spec MSC2290: 3PID binding split 5 years ago
Hubert Chathi b27f6985b2 more clarifications 5 years ago
Hubert Chathi 9dfca61ae7
Apply suggestions from code review
Co-Authored-By: David Baker <dbkr@users.noreply.github.com>
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
Co-Authored-By: Erik Johnston <erikj@jki.re>
5 years ago
Hubert Chathi 788e98711e Merge branch 'e2e_verification_in_dms' of github.com:uhoreg/matrix-doc into e2e_verification_in_dms 5 years ago
Hubert Chathi 1d165eec29 add clarifications 5 years ago
Hubert Chathi 06ee66d6b0
Apply suggestions from code review
Co-Authored-By: Kitsune Ral <Kitsune-Ral@users.sf.net>
Co-Authored-By: David Baker <dbkr@users.noreply.github.com>
5 years ago
Brendan Abolivier 4517506d57
Incorporate review 5 years ago
Brendan Abolivier 6bd2876688
MSC number 5 years ago
Brendan Abolivier ba8880546d
Proposal for versions information on the identity server API 5 years ago
Kitsune Ral 644bb3e4d4 Follow-ups on review comments 5 years ago
Travis Ralston 7236f1c741
Merge pull request #1983 from matrix-org/travis/msc/leave-reason
MSC1983: Supporting a reason for leaving rooms
5 years ago
Hubert Chathi 5799c433fe add HTTP status codes for errors and move key format to the right spot 5 years ago
Hubert Chathi 576177b579 make version optional in versions update 5 years ago
Hubert Chathi 1f1d22f667 fix a couple of missed m.reference changes 5 years ago
Hubert Chathi ab3ed738e4 drop the recommendation that requests highlight the user 5 years ago
Hubert Chathi 7469198d8b add from_device fields and a FIXME 5 years ago
Travis Ralston 156fbfb4c7
Merge pull request #2311 from matrix-org/travis/fix-changelog-again
Fix client-server typos changelog
5 years ago
Andrew Morgan 6274a66ae5
Merge pull request #2176 from matrix-org/rav/proposals/update-redaction
MSC2176: Update the redaction rules
5 years ago
Travis Ralston f608c48f8a
Merge pull request #2290 from matrix-org/anoa/msc_separate_hs_api
MSC2290: Separate Endpoints for Threepid Binding
5 years ago
Kitsune Ral 008185dfcb
Fix path grammar
Co-Authored-By: David Vo <auscompgeek@users.noreply.github.com>
5 years ago
Matthew Hodgson eddce00390 MSC2313: Ban lists 5 years ago
Travis Ralston 3d60e04c6a
Merge pull request #2310 from matrix-org/travis/spec/2263-deprecate-id-server
Deprecate id_server and make it optional
5 years ago
Hubert Chathi 54e73e4729
Apply suggestions from code review
Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
5 years ago
Kitsune Ral f2850c7f6a Initial draft of the Matrix URI scheme proposal
A remake of MSC455.
5 years ago
Travis Ralston 500db6fa2c
Merge pull request #2245 from quotient-im/kitsune-map-to-enum-support
Render enums inside additionalProps as one more table
5 years ago
Travis Ralston b59998fd2b Fix client-server typos changelog
Note: .misc is not a valid changelog entry.
5 years ago
Travis Ralston 2e84465c13 Changelog 5 years ago
Travis Ralston 48b8a95df6 Deprecate id_server and make it optional
As per [MSC2263](https://github.com/matrix-org/matrix-doc/pull/2263)
5 years ago
Kitsune Ral 6b37bb1dd9 Merge remote-tracking branch 'remotes/origin/master' into kitsune-map-to-enum-support 5 years ago
Kitsune Ral 79f16d40a9
Add a full stop
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
Andrew Morgan 46e7137252 Don't remove id_server and id_access_token 5 years ago
Andrew Morgan ec7e795112 reflow 5 years ago
Andrew Morgan 0332d531e9 Merge branch 'anoa/msc_separate_hs_api' of github.com:matrix-org/matrix-doc into anoa/msc_separate_hs_api 5 years ago
Andrew Morgan 1a51a24768 UIAA on /account/3pid/add 5 years ago
Andrew Morgan 219ebff6d3
typo fix
Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>
5 years ago
Hubert Chathi e19fca7d54 make some fixes, add a clarification, add a message to indicate completion 5 years ago
Travis Ralston 1a8fbfedc9
Merge pull request #2305 from matrix-org/travis/spec/ss-search
Add s2s POST /publicRooms per MSC2197
5 years ago
Travis Ralston 6d60b0458a
Merge pull request #2304 from matrix-org/travis/fix-ref
Point to the new v2 identity endpoint
5 years ago
Andrew Morgan 9311e89941
Update proposals/2229-rebind-existing-3pid.md
Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>
5 years ago
Travis Ralston 5cb7599196 Changelog 5 years ago
Travis Ralston 8d865ca53a Add s2s POST /publicRooms per MSC2197
See https://github.com/matrix-org/matrix-doc/pull/2197
5 years ago
Travis Ralston eebcaaef02 Point to the new v2 identity endpoint 5 years ago
Hubert Chathi 332b5605c1 simplify protocol by embedding Alice's key in Bob's QR code 5 years ago
Brendan Abolivier 6b0a8505ec
Propose case folding instead of lowercasing 5 years ago
Andrew Morgan 40420d9633
Update proposals/2290-separate-threepid-bind-hs.md
Co-Authored-By: Kitsune Ral <Kitsune-Ral@users.sf.net>
5 years ago
Hubert Chathi 10b6fd6c8e add more crypto magic, clarify things, add examples 5 years ago
Andrew Morgan bd64ffc442 Homeservers shouldn't proxy to user-provided identity servers anymore 5 years ago
Richard van der Hoff 5d6113db1e
Update the MSC template (#2296)
Tradeoffs->Alternatives, and kill the Conclusions section
5 years ago
Andrew Morgan 87d641c7c1 Describe what the IS and HS are doing in the examples 5 years ago
Andrew Morgan e50bb3df25 Mention that homeserver's should remember binds done through them 5 years ago
Andrew Morgan 53519f98d0 Pin a spec version when we link to it 5 years ago
Andrew Morgan 169174e00b Suggest the use of a unstable flag 5 years ago
Andrew Morgan 1e69a7f3f2 be assertive 5 years ago
Andrew Morgan 3eda9f7b28 Merge branch 'anoa/msc_separate_hs_api' of github.com:matrix-org/matrix-doc into anoa/msc_separate_hs_api 5 years ago
Andrew Morgan 0b67f34578 Address review comments 5 years ago
Andrew Morgan c57250b393
Apply suggestions from code review
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
Andrew Morgan 2a55310754 Clarify why MSC2229 was made obselete 5 years ago
Andrew Morgan af2467606e parameter, not endpoint 5 years ago
Andrew Morgan 4bc005ac84 Remove threepid explanation 5 years ago
Andrew Morgan f06ba491fe Assign meaning to bind and add 5 years ago
Travis Ralston 2c88f02daa
Merge pull request #2287 from matrix-org/travis/spec/lookup-v2
Spec the v2 lookup API
5 years ago
Andrew Morgan f36ed9a271 typos 5 years ago
Andrew Morgan 7b656e9013
Update proposals/2290-separate-threepid-bind-hs.md
Co-Authored-By: Matthew Hodgson <matthew@matrix.org>
5 years ago
Andrew Morgan 196f27efb2
Update proposals/2290-separate-threepid-bind-hs.md
Co-Authored-By: Matthew Hodgson <matthew@matrix.org>
5 years ago
Andrew Morgan 1fc1e3c6ce run on sentence 5 years ago
Andrew Morgan 5b259bfb52 Fix homeserver binding example 5 years ago
Andrew Morgan cb7c072edb Two new endpoints instead of one 5 years ago
Andrew Morgan 5193c319e7 Cleaner API endpoints 5 years ago
Andrew Morgan f5b10c689f cleanup 5 years ago
Andrew Morgan 7096092da9 init 5 years ago
Andrew Morgan fdea3e34a8 wip 5 years ago
Travis Ralston c00fe02fd1
Merge pull request #1802 from matrix-org/babolivier/standardised-federation-response-format
MSC1802: Remove the '200' value from some federation responses
5 years ago
Travis Ralston 7a391bf938
Merge pull request #2282 from matrix-org/travis/spec/is-unbind
Spec client-server IS unbind API
5 years ago
Travis Ralston d813b8e12c Mention M_INVALID_PARAM 5 years ago
Hubert Chathi 8123c4ef0f additional clarification 5 years ago
Travis Ralston b3e2326d8b changelog 5 years ago
Travis Ralston 6cfd761204 Spec the v2 lookup API
Spec for [MSC2134](https://github.com/matrix-org/matrix-doc/pull/2134)
5 years ago
Hubert Chathi cf953c47fd clarifications, change "hash" to "etag" 5 years ago
Hubert Chathi 60f0ad5b24 lowercase 5 years ago
Hubert Chathi 7644085274 wording fixes and clarifications 5 years ago
Travis Ralston 642be6c677 Fix unbind wording 5 years ago
Travis Ralston 30a9de7e02 Merge branch 'master' into travis/spec/is-unbind 5 years ago
Travis Ralston a24bcc2c0a
Merge pull request #2258 from matrix-org/travis/spec/is-terms
Spec IS terms of service
5 years ago
Travis Ralston f7e00b19e9
Merge pull request #2255 from matrix-org/travis/spec/is-auth
Spec the v2 IS auth APIs
5 years ago
Travis Ralston 54fb5eb5cf
Merge pull request #2281 from matrix-org/travis/spec/identity-server-storage
Spec m.identity_server account data
5 years ago
Travis Ralston 6baeb6c218 Assign number 5 years ago
Travis Ralston 738fa6833e Proposal to make the identity server optional during discovery 5 years ago
Travis Ralston 1881a255c2 Clarify that id_access_token is optional for r0.5 5 years ago
Hubert Chathi 0007498b4c remove empty tradeoffs section 5 years ago
Travis Ralston 6488c79cc3
Merge pull request #2283 from cvarley100/patch-1
Minor typo in index.rst
5 years ago
Brendan Abolivier 48e8c55138 Merge branch 'master' into babolivier/standardised-federation-response-format 5 years ago
Brendan Abolivier 620e5dd74d Merge branch 'babolivier/standardised-federation-response-format' of github.com:matrix-org/matrix-doc into babolivier/standardised-federation-response-format 5 years ago
Brendan Abolivier cb2b71c0be
Remove /send + rename 5 years ago
Brendan Abolivier fc26230007
Update proposals/1802-standardised-federation-response-format.md
Co-Authored-By: Matthew Hodgson <matthew@matrix.org>
5 years ago
Charlie Varley 4d835c1753
Update index.rst 5 years ago
Travis Ralston 185c564a13 Spec client-server IS unbind API
As per [MSC2140](https://github.com/matrix-org/matrix-doc/pull/2140)

Note: this modifies the endpoint in MSC2140 to be more in line with the remainder of the proposal.
5 years ago
Travis Ralston 358c49ff6e Merge branch 'travis/spec/is-auth' into travis/spec/is-unbind 5 years ago
Travis Ralston 2d784d93ef Merge branch 'master' into travis/spec/is-auth 5 years ago
Travis Ralston 6ec7d4cd89 changelog 5 years ago
Travis Ralston 958cffd330 Spec m.identity_server account data
As per [MSC2230](https://github.com/matrix-org/matrix-doc/pull/2230)
5 years ago
Travis Ralston 675cabc33d
Merge pull request #2263 from matrix-org/travis/msc/id-server-optional
MSC2263: Give homeservers the ability to handle their own 3PID registrations/password resets
5 years ago
Travis Ralston a7c3c295b8
Merge pull request #2264 from matrix-org/travis/msc/feature-flag-2140
MSC2264: Add an unstable feature flag to MSC2140 for clients to detect support
5 years ago
Travis Ralston b8971f46ab
Merge pull request #2280 from Cadair/giles2
Update to the new deployment of Giles
5 years ago
Stuart Mumford 9574f3c8d0
update to the new deployment of Giles
Signed-off-by: Stuart Mumford <stuart@cadair.com>
5 years ago
Travis Ralston 5a434ea7ac
Merge pull request #2279 from matrix-org/travis/spec/is-no-bind
Remove bind_* params on /register as per MSC2140
5 years ago
Travis Ralston 001c51a740 /3pid/delete and /deactivate don't take an id_access_token 5 years ago
Travis Ralston caf46db6e7 Changelog 5 years ago
Travis Ralston 52e6868f50 Remove bind_* params on /register as per MSC2140
See https://github.com/matrix-org/matrix-doc/pull/2140
See https://github.com/matrix-org/matrix-doc/issues/2253
5 years ago
Travis Ralston afd5018494 Spec the terms of service handling for identity servers
Part of MSC2140

Convert status codes to strings if there is a string status code. Fixes a build error when we mix 4xx and 403 in the same definition. We also have to correct stringified numbers to pass the build.
5 years ago
Travis Ralston b7e84cf4ce Merge branch 'travis/spec/is-auth' into travis/spec/is-terms 5 years ago
Travis Ralston 8f48b4e717 Merge branch 'master' into travis/spec/is-auth 5 years ago
Travis Ralston 2b8c8ad512 MSC1779 is actually merged now 5 years ago
Ben Parsons d346099cf7 deduplicate MSC1779 ref in proposals list 5 years ago
Brendan Abolivier 520c76a1cb
Spell out that the proposal also concerns homeservers 5 years ago
Brendan Abolivier 997360995c
Wording
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
5 years ago
Brendan Abolivier bddadfeb18
Typo
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
5 years ago
Brendan Abolivier 552f71a9f9
Wording
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
5 years ago
Brendan Abolivier 524ec52f73
Wording
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
5 years ago
Brendan Abolivier aad6f7138c Merge branch 'master' into babolivier/msc_email_case 5 years ago
Tulir Asokan b2ce6f87bc Merge branch 'master' into mass_redactions 5 years ago
Tulir Asokan 7ba4564ac3 Remove soft fail auth rule option
Signed-off-by: Tulir Asokan <tulir@maunium.net>
5 years ago
Matthew Hodgson 1f2acbcf29 RST is not MD 5 years ago
Matthew Hodgson a805d2b779 oops, premature merge 5 years ago
Matthew Hodgson 6d71a41e22 Proposal for ignoring invites 5 years ago
Tulir Asokan e6f85cacff Specify that "existing auth rules" means room v5 5 years ago
Travis Ralston c9fcf9021c
Merge pull request #2266 from matrix-org/travis/fix-ci
Fix CI by bumping golang version
5 years ago
Travis Ralston 5acac5a44e Try bumping golang version 5 years ago
Travis Ralston b36fe24f1b Let's not doubly remove things 5 years ago
Brendan Abolivier 60354f8cf9
MSC number 5 years ago
Brendan Abolivier d1efd488b7
Proposal for mandating lowercasing when processing e-mail address localparts 5 years ago
Richard van der Hoff 62cc11eee6 add missing github-labels file 5 years ago
Travis Ralston 9f41ae50b1 let's try and fix the CI 5 years ago
Travis Ralston f8780e2395 add note about edit 5 years ago
Travis Ralston 1a6eb9a413
Update proposals/2263-homeserver-pw-resets.md
Co-Authored-By: J. Ryan Stinnett <jryans@gmail.com>
5 years ago
Travis Ralston 6d5e90b1d6
Apply suggestions from code review
Co-Authored-By: Matthew Hodgson <matthew@matrix.org>
5 years ago
Travis Ralston 16bb3bd8b5 Add an unstable feature flag to MSC2140 for clients to detect support 5 years ago
Travis Ralston 4e43024039 Assign number 5 years ago
Travis Ralston 1d6501b6ec What if we allowed homeservers to deal with their own business? 5 years ago
Tulir Asokan c909a7c423 Move omitting redacted_because into proposal and add security consideration
Signed-off-by: Tulir Asokan <tulir@maunium.net>
5 years ago
Travis Ralston 91f862d9e8 Use the right error code for 401 errors 5 years ago
Travis Ralston fad9974383 Add missed changelog from prior PR 5 years ago
Travis Ralston aa98137514 Add changelog 5 years ago
Travis Ralston 0408373cf9 Litter the client-server API with id_access_token 5 years ago
Travis Ralston 4d0ea64121 Define authentication, ripping off the client-server API description 5 years ago
Travis Ralston e40d9e296d Split OpenID token info out verbatim 5 years ago
Travis Ralston ef5d3b9f30 Correct token reference in MSC2140 5 years ago
Travis Ralston 03641d9e48
Merge pull request #2254 from matrix-org/travis/spec/is-v2
Deprecate the v1 IS API and replace most of it with v2
5 years ago
Travis Ralston ca4d9d8636 Deprecate the v1 IS API 5 years ago
Travis Ralston b0acaeddfa Reference the v2 API where possible 5 years ago
Travis Ralston a47c5aeb42 v2-ify the v2 api
Note that ping and pubkey doesn't require auth - see MSC2140 for more information.
5 years ago
Tulir Asokan 79a5663ec3 Fix typos, inline links and move image into tree
Signed-off-by: Tulir Asokan <tulir@maunium.net>
5 years ago
Tulir Asokan 238b78bbaf Add potential issue with redacted_because field
Signed-off-by: Tulir Asokan <tulir@maunium.net>
5 years ago
Tulir Asokan cd75d0f220 Fix authenticity/authorization terminology
Co-authored-by: Kitsune Ral <Kitsune-Ral@users.sf.net>
Signed-off-by: Tulir Asokan <tulir@maunium.net>
5 years ago
Travis Ralston 5b53b3d0b8 Clone v1 APIs verbatim 5 years ago
Tulir Asokan 984e0af7b2 Re-word auth rule section on handling each target separately
Co-authored-by: Jason Volk <jason@zemos.net>
Signed-off-by: Tulir Asokan <tulir@maunium.net>
Signed-off-by: Jason Volk <jason@zemos.net>
5 years ago
Travis Ralston b8a3f970ee Add security definition for access token 5 years ago
Travis Ralston b5529ff6a3
Merge pull request #2250 from matrix-org/travis/deprecated-toc
List deprecated endpoints as deprecated
5 years ago
Travis Ralston de3802cd5c List deprecated endpoints as deprecated
Affects the title and the table of contents. We can't realistically alter just the table of contents, but the table of contents is generated from this header.

Fixes https://github.com/matrix-org/matrix-doc/issues/1800
5 years ago
Hubert Chathi 03ae5614b0 remove unnecessary space 5 years ago
Hubert Chathi e1b0042e7b clarifications, minor fixes, formatting 5 years ago
Hubert Chathi 9aade7291a make it agree with what we actually did with key requests 5 years ago
Hubert Chathi cafe49d36d some clarifications 5 years ago
Travis Ralston 356350de91
Merge pull request #2140 from matrix-org/dbkr/tos_2
MSC2140: Terms of Service for ISes and IMs
5 years ago
Travis Ralston 808eda404a
Merge pull request #2247 from matrix-org/poljar/key_request_fix
Fix the action of a room key request cancellation.
5 years ago
Damir Jelić 35eb1993d9 Add a changelog fragment for the room key request action fix. 5 years ago
Travis Ralston 7a36016cbb
Merge pull request #2230 from matrix-org/dbkr/is_in_account_data
MSC2230: Store Identity Server in Account Data
5 years ago
Damir Jelić a96a2f3fce Fix the action of a room key request cancellation.
The spec states that the action of a room key request cancellation
should be "cancel_request" but every known implementation uses
"request_cancellation" instead.

This patch fixes the spec to reflect the implementations.
5 years ago
Travis Ralston 0265817c56
Merge pull request #1957 from matrix-org/travis/msc/integrations/discovery
MSC1957: Integration manager discovery
5 years ago
Hubert Chathi 4e2fe124d2 wording fixes/clarifications 5 years ago
Kitsune Ral 31c132ec82 Add changelog 5 years ago
Hubert Chathi 0e6286f5d0 write more stuff 5 years ago
Kitsune Ral 65cd10249c Render enums inside additionalProps as one more table
Closes #2242.
5 years ago
Travis Ralston 4ad9bf7059
Merge pull request #1961 from matrix-org/travis/msc/integrations/auth
MSC1961: Integration manager authentication APIs
5 years ago
Tulir Asokan ec38013daa Proposal to allow multiple targets for one redaction event
Signed-off-by: Tulir Asokan <tulir@maunium.net>
5 years ago
Hubert Chathi fb724bc625 rename to match PR number 5 years ago
Hubert Chathi 4f655247b0 initial draft of verification in DMs 5 years ago
Travis Ralston b0f873785d Proposal for room version 6 5 years ago
Travis Ralston b6f0e8e8ed Clarify that the query string is because they are widgets 5 years ago
Travis Ralston 8b85fda52c Add a link to the widget MSC to try and stem questions 5 years ago
David Baker 4ea8f645d6 is_token -> id_access_token and add invite to proxy list 5 years ago
Travis Ralston 8ca50eaf9f
Merge pull request #2010 from Sorunome/soru/spoilers
MSC2010: Add client-side spoilers
5 years ago
David Baker 8bd9d7caeb
Add full stop
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
5 years ago
David Baker 69315417b5
Typo
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
5 years ago
David Baker 4073d940da
Typo
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
5 years ago
David Baker 1f8cfd5729 Update migration mechanism 5 years ago
Travis Ralston 53a2ffb12a
Merge pull request #2197 from reivilibre/rei/msc_filter_over_fed
MSC2197: Search Filtering in Federation /publicRooms
5 years ago
Travis Ralston 788796e1c6 Multiple clarifications 5 years ago
David Baker 9b2ca3cdfe
typoes / clarifications
Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
5 years ago
Travis Ralston 9e073e9647
Speeeeeeling
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
5 years ago
Andrew Morgan 997c5466a8
MSC2229: Allowing 3PID Owners to Rebind (#2229) 5 years ago
David Baker 6d0067320c clarify error proxying 5 years ago
David Baker 12377fbf50
/account/logout not /logout
Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>
5 years ago
David Baker e4bdc283fd
Apply suggestions from code review
Typos / spelling

Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>
5 years ago
Olivier Wilkinson (reivilibre) 76f9196ff3 Address @richvdh's comments 5 years ago
Travis Ralston 865d3da0f8 General clarity improvements 5 years ago
Travis Ralston 22c9692684 Disclose origin story better 5 years ago
Travis Ralston 475c64de8c Disclose origin story 5 years ago
Andrew Morgan 92c6f4c38e
Add M_USER_DEACTIVATED to list of error codes (#2234)
Spec PR for [MSC 2181](https://github.com/matrix-org/matrix-doc/pull/2181).

Adds the `M_USER_DEACTIVATED` error code and a short description to the client-server API.
5 years ago
Andrew Morgan 4059661c29
Update proposals/2229-rebind-existing-3pid.md
Co-Authored-By: Kitsune Ral <Kitsune-Ral@users.sf.net>
5 years ago
Olivier Wilkinson (reivilibre) 4219e272ec Drop the hard SHOULD
Adopts @turt2live's phrasing

Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
5 years ago
Olivier Wilkinson (reivilibre) 7e85b9d56a Acknowledge other potential error responses for fallback
Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
5 years ago
Olivier Wilkinson (reivilibre) 97f856d706 Domain name is potentially personally-identifying
Thanks to @turt2live

Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
5 years ago
David Baker b9b984ae60 clarify 5 years ago
David Baker 229cb67b01
Apply suggestions from code review
Use fewer formal MUST etc in proposal

Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
Andrew Morgan 7758e0701c Remove homeserver warning 5 years ago
David Baker 2c8d112089 assign number 5 years ago
Andrew Morgan 2e2a74a235 Merge branch 'anoa/rebind_3pids' of github.com:matrix-org/matrix-doc into anoa/rebind_3pids 5 years ago
Andrew Morgan 2547cc443c backticks 5 years ago
Andrew Morgan 01fc54faae
Update proposals/2229-rebind-existing-3pid.md
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
Andrew Morgan 5b1ea4ffcb
Update proposals/2229-rebind-existing-3pid.md
Co-Authored-By: J. Ryan Stinnett <jryans@gmail.com>
5 years ago
Andrew Morgan cb1e3b8373 Take into account the 1 is case 5 years ago
Andrew Morgan f313b49c26 Add bind def. 5 years ago
Andrew Morgan be77b5823c fix up 5 years ago
Andrew Morgan 6ed0ae36ba rename msc # 5 years ago
Andrew Morgan ed4d805d2f flesh out 5 years ago
David Baker 6330fff5a4 Draft for IS URL in account data 5 years ago
Travis Ralston 87590cd778
Merge pull request #2223 from matrix-org/travis/fix-tombstone
Check for a state_key on the tombstone push rule
5 years ago
Andrew Morgan 783fd78a6f wip 5 years ago
Richard van der Hoff 353b6cd198 clarification 5 years ago
Hubert Chathi 7ed5367516 clarifications, fix formatting 5 years ago
Olivier Wilkinson (reivilibre) 60cbc4567b Addresses some of Andrew's comments
Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
5 years ago
Travis Ralston a171d5f6fd Check for a state_key on the tombstone push rule
This is an oversight from the proposal.
5 years ago
Travis Ralston 3087c76452
Merge pull request #2134 from matrix-org/hs/hash-identity
MSC2134: Identity Hash Lookups
5 years ago
Olivier Wilkinson (reivilibre) 493bb062af MSC2197: update with privacy perspective
Includes recommendations for client developers.

Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
5 years ago
Matthew Hodgson 1df4ece112
Merge pull request #2215 from Dominaezzz/patch-1
Fix some typos
5 years ago
Dominic Fischer a63fab20ee Fix some typos
Signed-off-by: Dominic Fischer <dominicfischer7@gmail.com>
5 years ago
Travis Ralston a71757f1ee
Merge pull request #2174 from matrix-org/rav/proposals/move_redacts_key
MSC2174: Move the `redacts` key to a sane place
5 years ago
Luca Becker 25e3602bbe
3rd draft of MSC2209 5 years ago
Andrew Morgan 3edf5e3c16 Make hashes real values 5 years ago
Luca Becker 42dbeee7d3 MSC2209: 2nd draft @uhoregs changes 5 years ago
Luca Becker ec37fe4427 first draft of MSC2209 5 years ago
Andrew Morgan 96e06b6f5f Add line, britishise 5 years ago
Andrew Morgan 3877724774 fix speeling 5 years ago
Andrew Morgan c401a4d47b punctuation 5 years ago
Andrew Morgan acf8d34474 Merge branch 'hs/hash-identity' of github.com:matrix-org/matrix-doc into hs/hash-identity 5 years ago
Andrew Morgan 3789d828fd Incorporate solution analysis from the context of attacks 5 years ago
Olivier Wilkinson (reivilibre) 36e43ee326 Rewrap lines in MSC2917 to 80 chars wide
Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
5 years ago
Hubert Chathi 80adbaff4c switch to MSC1946 for storing recovery key 5 years ago
Hubert Chathi 825757ffd8 add information about verifying backup by entering key 5 years ago
Hubert Chathi bd9efcdf53 add some information and an example 5 years ago
Hubert Chathi d47e13c6d9 this FIXME will be addressed in the key backup MSC 5 years ago
Hubert Chathi 395d40314b fix typos and make valid JSON 5 years ago
Andrew Morgan 136eea8578 Merge branch 'master' of github.com:matrix-org/matrix-doc 5 years ago
Andrew Morgan 28596a6c74 Add missing changelog for #2204. 5 years ago
Andrew Morgan af60889eee
Clarify that /rooms/{roomId}/event/{eventId}'s 404 should be M_NOT_FOUND (#2204)
No error code is specified for this endpoint's 404. State that it should be an `M_NOT_FOUND`.
5 years ago
Andrew Morgan f989263872
MSC2181: Add an Error Code for Signaling a Deactivated User (#2181) 5 years ago
Richard van der Hoff 0c7c48bd12 MSC2175: Remove the `creator` field from `m.room.create` events (#2175)
Fixes #1193
5 years ago
Andrew Morgan 33d22c3320 hashes are not stream ciphers 5 years ago
Andrew Morgan 9913f5bc29 Slightly clarify pepper value 5 years ago
Andrew Morgan 57de107ea9 Move medium back behind the address 5 years ago
Travis Ralston d4ce3a0181
Merge pull request #2201 from matrix-org/push_gateway/release-r0.1.1
Push r0.1.1 release
5 years ago
Travis Ralston cfc502a2f1
Merge pull request #2202 from matrix-org/application_service/release-r0.1.2
Appservices r0.1.2 release
5 years ago
Travis Ralston acde333acc
Merge pull request #2203 from matrix-org/server_server/release-r0.1.3
Server-server r0.1.3 release
5 years ago
Travis Ralston 26c2ce8a92 Server-server r0.1.3 changelog 5 years ago
Travis Ralston 0b49112399 Appservices r0.1.2 changelog 5 years ago
Travis Ralston 40e6f82cbd Push r0.1.1 changelog 5 years ago
Travis Ralston 0631595484
Merge pull request #2200 from matrix-org/travis/changelogs
Fix/add changelogs
5 years ago
Richard van der Hoff f1f293678b
Apply suggestions from code review
Co-Authored-By: Travis Ralston <travpc@gmail.com>
Co-Authored-By: Kitsune Ral <Kitsune-Ral@users.sf.net>
5 years ago
Travis Ralston 62f7a4f82c Fix/add changelogs
The push spec one was missed in https://github.com/matrix-org/matrix-doc/pull/2151
5 years ago
Olivier Wilkinson (reivilibre) 4c22eb86b5 MSC for Search Filtering in Federation /publicRooms
Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net>
5 years ago
Andrew Morgan c8527b7af8 Merge branch 'hs/hash-identity' of github.com:matrix-org/matrix-doc into hs/hash-identity 5 years ago
Andrew Morgan 4d1f2ea4f4
Apply suggestions from code review
Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>
5 years ago
Andrew Morgan 6660768d85 Don't repeat fast hash bit 5 years ago
Andrew Morgan 027c2d7260 Merge branch 'hs/hash-identity' of github.com:matrix-org/matrix-doc into hs/hash-identity 5 years ago
Andrew Morgan a17c74f592 switch medium and address around, space between address and pepper 5 years ago
Andrew Morgan 5580a2a1a9
Update proposals/2134-identity-hash-lookup.md
Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>
5 years ago
Andrew Morgan ffbfde8a09
Update proposals/2134-identity-hash-lookup.md
Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>
5 years ago
Andrew Morgan 87a54e8d8d Merge branch 'hs/hash-identity' of github.com:matrix-org/matrix-doc into hs/hash-identity 5 years ago
Andrew Morgan 6119b9a50d *@hobnobbob.com is unlikely to be guessed 5 years ago
Andrew Morgan 20c72a3649
Update proposals/2134-identity-hash-lookup.md
Co-Authored-By: David Baker <dbkr@users.noreply.github.com>
5 years ago
Andrew Morgan 0ac70b268a Clarify peppering should not happen on none algo 5 years ago
Andrew Morgan da876bb340 missing word 5 years ago
Andrew Morgan c6dd5951a1 Clients can cache the hash details if they want to 5 years ago
Travis Ralston 2a2dddab94
Merge pull request #2151 from reivilibre/push_id_event_id
Fix Push Gateway API example: Field renamed to event_id
5 years ago
Andrew Morgan 8f3e588708 pepper is not a secret val. Still needs to be around. 5 years ago
Travis Ralston bf9f2cd1b6
Merge pull request #2183 from lucavb/master
Spec clarification regarding authorisation rules in v1
5 years ago
Luca Becker f4d6b6c261
Fixed broken indentations 5 years ago
Luca Becker c7a23557d4
Last cosmetic changes
switched back to the use of `.. NOTE::`
5 years ago
Andrew Morgan 3b8c57e06c Don't require servers/clients to support "none" 5 years ago
Andrew Morgan 3031df79cc Add example for none algo 5 years ago
Andrew Morgan 9fd6bd3184 Add details about why this proposal should exist 5 years ago
Andrew Morgan b26a9ed1fd Expand on why we can't trust dirty homeservers 5 years ago
Andrew Morgan 577021f12b resolve some comments 5 years ago
Luca Becker d43111cdd2
Incorporated @turt2live suggestions.
Used **Note** to describe notes around the authorisation rules. Otherwise restored the original state for the consequences from the auth rules.
Moved the clarification regarding default power levels up above the auth rules. Removed third sentence. And followed @turt2live's example, but opted for "for users in that room" because the default user power level is applied to all users.
5 years ago
Richard van der Hoff 9e264fedc9 Updates
* preserve *all* of `create`
* don't preserve `notifications` or `algorithm`, and add some justifcation.
5 years ago
Andrew Morgan 887cd5e7d0 I really hope someone doesn't invest none-hash 5 years ago
Andrew Morgan 0444c8016b review comments 5 years ago
Richard van der Hoff 4503327450 Add some compatibility hacks. 5 years ago
Luca Becker 094005dca1
Incorporated @turt2live suggestions.
Added missing added and removed to the rule, because these keys are not required for m.room.power_levels. Also moved the note down to the Note section.
5 years ago
Luca Becker 8aece4f644
Incorporated @richvdh suggestions 5 years ago
Alexander "Ace" Olofsson 99bd46c9e7
Allow the use of the HTML <details> tag
Signed-off-by: Alexander Olofsson <ace@haxalot.com>
5 years ago
Richard van der Hoff d324cac847 preserve powerlevel 5 years ago
Richard van der Hoff b49a950245
Update proposals/2176-update-redaction-rules.md
fix typo

Co-Authored-By: Kitsune Ral <Kitsune-Ral@users.sf.net>
5 years ago
Luca Becker 15994c61a5
Clarification regarding authorisation rules
The rules for m.room.power_levels power were somewhat unclear regarding the behaviour towards the always present keys, such as kick and ban. Additionally, it is now also clarified that in the users and events dictionary also added and removed keys are taken into consideration.
5 years ago
Sorunome 9ebcff5758
fix typo, add section on html details element 5 years ago
Andrew Morgan 36cb8ed894 none -> m.none 5 years ago
Sorunome 1f786ae6dc
commit image into repo, fix typo 5 years ago
David Baker d9269b084f Exclude pubkey endpoints from auth 5 years ago
David Baker a1de6ff634 Hopefully clarify some bits 5 years ago
Richard van der Hoff cd5549d483 Proposal to update the redaction algorithm 5 years ago
Richard van der Hoff b09d48a9f7 Spec link 5 years ago
Richard van der Hoff 78d46b2890 Proposal to move the `redacts` key to a sane place 5 years ago
David Baker 25a47afa32
unnecessary capital mk. 2
Co-Authored-By: J. Ryan Stinnett <jryans@gmail.com>
5 years ago
David Baker 6e061b1baf
unnecessary capital
Co-Authored-By: J. Ryan Stinnett <jryans@gmail.com>
5 years ago
David Baker f474b31f5f
typo
Co-Authored-By: J. Ryan Stinnett <jryans@gmail.com>
5 years ago
Andrew Morgan 3514437d24 Ability for client/server to decide on no hashing 5 years ago
David Baker 9bb6ad80d1 typo 5 years ago
Travis Ralston 7b0f5ea77b
Merge pull request #2159 from jimmycuadra/reference-hash-purpose
Clarify the purpose of reference hashes.
5 years ago
Jimmy Cuadra a3d2d14dae Rephrase explanation of the purpose of reference hashes and link to the
room version spec.

Signed-off-by: Jimmy Cuadra <jimmy@jimmycuadra.com>
5 years ago
Andrew Morgan 52643a92c6
Less confusing wording on Application Service's Legacy Routes (#2160)
https://matrix.org/docs/spec/application_service/r0.1.1#legacy-routes

The "becomes" wording made it a little bit confusing for which was the new route and which was the old.
5 years ago
Jimmy Cuadra 5df86dabe0 Clarify the purpose of reference hashes.
The server-server specification describes a "reference hash" of an event
and how to calculate it, but is otherwise not mentioned anywhere else in
the document. This change adds a sentence to explain that they are used
for event identifiers in later room versions, which are described in
other documents.

Signed-off-by: Jimmy Cuadra <jimmy@jimmycuadra.com>
5 years ago
Hubert Chathi ee04b778cf
Merge pull request #2157 from a-andreyev/aa13q/api-client-server-device-keys
Client-server: Fix upload keys example request
5 years ago
Alexey Andreyev 9ed19a37ad
Client-server: Fix upload keys example request
Contributes to #1733

Signed-off-by: Alexey Andreyev <aa13q@ya.ru>
5 years ago
Andrew Morgan ed67e26037 pepper must not be an empty string, append medium 5 years ago
Andrew Morgan 1963a24832 fix attacks paragraph 5 years ago
Andrew Morgan dd8a6549c9 Address review comments 5 years ago
David Baker 701d340da1 Remove exception for request/submitToken 5 years ago
David Baker bf8a1e5d5f Add way to get the HS to bind/unbind existing 3pids 5 years ago
Andrew Morgan 3702669424 update from comments 5 years ago
David Baker 30dcc28f9b try & clarify that HS signature isn't the only acceptable auth for unbind 5 years ago
Andrew Morgan f4a1e02884 simple method once more 5 years ago
Hubert Chathi 4d31ddc8c9 additions and clarifications
- indicate how to use MSC 1946 to store/share private keys
- add signing by devices to enable migrating from device verifications
- add information about signature upload failures and M_INVALID_SIGNATURE code
- add security consideration
5 years ago
Travis Ralston db5ce0c69e
Merge pull request #2152 from matrix-org/jryans/room-one-to-one-push-rule
Clarify `.m.rule.room_one_to_one` push rule
5 years ago
J. Ryan Stinnett 9208c5cd13 Add changelog 5 years ago
J. Ryan Stinnett 4c65660b96 Clarify `.m.rule.room_one_to_one` push rule
This clarifies the `.m.rule.room_one_to_one` push rule by adding a condition on
event type. Some parts of the spec already had this info, while others were
missing it. Synapse has had this behaviour since the push rule appeared.

Fixes https://github.com/matrix-org/matrix-doc/issues/2150
5 years ago
reivilibre 8033ab1c86 Fix Push Gateway API example: Field renamed to event_id
I believe this was forgotten in:
71cb646541
5 years ago
Andrew Morgan 53bd384f2e Clarify salting 5 years ago
Hubert Chathi 3aaf181db2 rename some things and add clarification 5 years ago
David Baker 1a669348d8 http status code 5 years ago
David Baker d15c9df115
fullstop
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
David Baker e28f7aad72
slash
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
David Baker 4c72c37b80
slash
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
David Baker 10858bf83b set account data after registration 5 years ago
David Baker 79dbad2914 remove acceptance token mention 5 years ago
David Baker ac6b9bdb7c s/deprecate/remove/ 5 years ago
David Baker 7f65364804
Typo
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
David Baker 03e6ab0103 re-word double openid 5 years ago
David Baker d00dfb7822 exclude submittoken too 5 years ago
David Baker f02e4c2e9c
both registers are excluded from auth
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
David Baker 5374030cc0 Drop application/x-form-www-urlencoded in v2 5 years ago
David Baker 2d11217d4e
Typo
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
David Baker 8af35be13f
Typo
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
Andrew Morgan 922a20ba26 small fixes 5 years ago
Andrew Morgan 6f81d3774b New hashing method 5 years ago
David Baker fe14d3c9f0 Spec terms response 5 years ago
David Baker 786d5bc281 rewrite UI auth tradeoffs 5 years ago
David Baker 45d630951c back to M_TERMS_NOT_SIGNED 5 years ago
David Baker 83bb3861ba line wrap 5 years ago
Travis Ralston 8897ea4bb1 Merge branch 'master' into travis/msc/integrations/discovery 5 years ago
Travis Ralston a2a7b7ff13 Merge branch 'master' into travis/msc/integrations/auth 5 years ago
Travis Ralston bfd8e52c23 Formatting 5 years ago
Travis Ralston d8283b9cdf Add option to use query string 5 years ago
Travis Ralston e80753e56c Add .well-known discovery 5 years ago
David Baker 4be283ccb3
Typing
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
David Baker f95197b422 make the many-anded sentence a list 5 years ago
David Baker 10a6a59a12 Deprecate `bind_email` / `bind_msisdn` 5 years ago
David Baker b5326de1c4 Exclude requestToken endpoints from auth requirement 5 years ago
Sorunome 540aab82a1
accidentally formatted the wrong entry 5 years ago
Sorunome 6260871a21
spoiler fallback to uploaded media 5 years ago
David Baker 21b9eaf8de No custom HTTP headers
Use the obvious way: in the same place as the ID server address
5 years ago
David Baker 2694bb1090 Add really horrible custom HTTP header
for giving the IS token to the HS
5 years ago
David Baker 58cf083a6a backwards compat 5 years ago
David Baker 6273868323 Clarify v1 API deprecation 5 years ago
David Baker 4edf826c93 Capitalise on our identifiers 5 years ago
David Baker ba7047ce77
Clarify we must be accepting HS auth
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
David Baker 1d75828c71 Clarify what to do if no (new) docs 5 years ago
David Baker af691b5a8a
Clarify this applies to 2134
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
David Baker 57094276ce
Typing hard is
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
Andrew Morgan 7549c5dd76 Merge branch 'hs/hash-identity' of github.com:matrix-org/matrix-doc into hs/hash-identity 5 years ago
Andrew Morgan 0fd4fe2542 Add algo/pepper to err resp 5 years ago
Andrew Morgan dfb37fcce1 update with feedback 5 years ago
Andrew Morgan df88b13ce1
Update proposals/2134-identity-hash-lookup.md
Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>
5 years ago
David Baker 9e0d8b9cb2 Use M_CONSENT_NOT_GIVEN
No idea where I got the other one from: we already have one in the
spec, so use it.
5 years ago
Travis Ralston ad5d46d331
Merge pull request #2148 from matrix-org/anoa/typooo
Fix a small typo
5 years ago
Andrew Morgan e88a074c9f Add changelog 5 years ago
Andrew Morgan 4997abc4b7 as as -> as 5 years ago
David Baker 0dae2d5812 GET terms must be unauthed.
Detail process for new auth (don't register until consent given).

Specifically mention the authentication header.
5 years ago
Sorunome 4f83cc1c24
moved client spoiler conversion to potential issues 5 years ago
David Baker 6f374dc981 Re-write for OpenID auth 5 years ago
David Baker 2c09580e27 line wrap 5 years ago
Andrew Morgan 96e43aaf45 Define what characters lookup_pepper can consist of 5 years ago
Andrew Morgan f951f312e1 Fix terrible wording 5 years ago
Andrew Morgan fae6883cc0 Update with review comments 5 years ago
Andrew Morgan 0a4c83ddb9 no plural. 3pid -> 3PID 5 years ago
Andrew Morgan 36a35a33cc Clarify how the spec defines hashing algs 5 years ago
Andrew Morgan ee10576d60 Update with feedback 5 years ago
David Baker abb407145a HS docs must be added too
also, unbind must not error when called by HSes and proxy terms token
5 years ago
David Baker 8ae47557c9 s/Third Party/Accepted/ 5 years ago
David Baker 2555801458 m.third_party_terms -> m.accepted_terms
as it will have the HS's terms too
5 years ago
David Baker 4ba9b2a599 perfix 5 years ago
David Baker a63e4420eb
Linkify
Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
5 years ago
Andrew Morgan 02ac0f3b33 Give the user control! 5 years ago
Andrew Morgan acdb2b1b42 Merge branch 'hs/hash-identity' of github.com:matrix-org/matrix-doc into hs/hash-identity 5 years ago
Andrew Morgan e3ff80291f http err codes and hash wording fixes 5 years ago
Travis Ralston 21e93a123e Naming and capitalization 5 years ago
Andrew Morgan 53f025edfc Specify optional pepper rotation period 5 years ago
Andrew Morgan 2383a55720 404 for deprecated endpoint 5 years ago
Andrew Morgan c63edc7b97 Clean up wording around peppers and hashes 5 years ago
Andrew Morgan e3b2ad38b5 pepper -> lookup_pepper 5 years ago
Andrew Morgan 1fea604ba9 Don't define error message 5 years ago
David Baker 9ca3ccc81c Add requirments section for de-duping between services. 5 years ago
David Baker d4ca0c237a Specify ID grammar and add comma 5 years ago
David Baker 276e2b6843
Typo
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
David Baker cf48030d1f One more tradeoff 5 years ago
David Baker 32c7fc638d you have a number now 5 years ago
David Baker 23af87e9fc Proposal for IS & IM TOS API 5 years ago
Andrew Morgan 1343e19a6d Specify hash algorithm and fallback considerations 5 years ago
Andrew Morgan f28476f0f3 line wrap and fix wording 5 years ago
Andrew Morgan 3ee27d3818 salt->pepper. 1 pepper/is. add multi-hash idea 5 years ago
Travis Ralston ace94f02b7
Merge pull request #2132 from jimmycuadra/clarify-m.key.verification.start
Clarify the distinction between *m.key.verification.start* and its *m.sas.v1* variant.
5 years ago
Jimmy Cuadra 8246383330 Fix typos in changelog entry. 5 years ago
Andrew Morgan f41ed02c9e remove sec concerns 5 years ago
Andrew Morgan 6bb4a9e911 Add per-is salt consideration 5 years ago
Andrew Morgan 5049e552e7 Drop /api from the new endpoint 5 years ago
Andrew Morgan bc9b6c3659 Add salt to example and signal link 5 years ago
Travis Ralston 204601d9a4
Merge pull request #2133 from matrix-org/travis/fix-olm-2
Fix link to Olm signing specification
5 years ago
Andrew Morgan 063b9f60e0 Require a salt to defend against rainbow tables 5 years ago
Andrew Morgan d2b47a585d Allow for changing the hashing algo and add at-rest details 5 years ago
Travis Ralston ffdd8dfe01
Merge pull request #2137 from matrix-org/identity_service/release-r0.2.1
Identity r0.2.1
5 years ago
Travis Ralston d09af5b191 Identity r0.2.1 5 years ago
Will Hunt f8dbf2b360
Update proposals/2134-identity-hash-lookup.md
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
5 years ago
Travis Ralston 954a5607c3
Merge pull request #2136 from ma1uta/master
Fix typo.
5 years ago
Travis Ralston c63b5aff69
Create 2136.clarification 5 years ago
Anatoly Sablin 802b90d113 Typo. 5 years ago
Jimmy Cuadra 8affb23e5e Address feedback from code review.
* Switch "an SAS" back to "a SAS"
* Remove the `next_method` field from m.key.verification.start$m.sas.v1
  but add additional clarification to its description on
  m.key.verification.start that it is never present for methods that
  verify keys both ways.
5 years ago
Will Hunt 12431f1a4e Base64 potential issue 5 years ago
Will Hunt 8b92df74ab s/medium/address 5 years ago
Will Hunt a8c26d208b Wrap 5 years ago
Will Hunt 3eff76b00a MSC 2134 5 years ago
Travis Ralston 6f460ad70a minus spec
according to the apache .htaccess we use
5 years ago
Travis Ralston 33ca891e71 Fix link to Olm signing specification
See https://github.com/matrix-org/matrix.org/issues/478
5 years ago
Jimmy Cuadra 5384b61d95 Fix style issues brought up during code review.
Signed-off-by: Jimmy Cuadra <jimmy@jimmycuadra.com>
5 years ago
Jimmy Cuadra bc71dacaf4 Clarify the distinction between *m.key.verification.start* and its *m.sas.v1* variant.
Currently the *m.key.verification.start* event appears twice with the
exact same title, in the "Key verification framework" section and the
"Short Authentication (SAS) verification" section. It's not immediately
clear that the first occurrence describes the format of the event in
general terms and that the second occurrence describes the fields when
the *m.sas.v1* verification method is being used. This is a similar
relationship to the *m.room.message* event and its various *msgtype*
variants.

This commit does three things:

* It tweaks the generation of the documentation to change the title
  of the second occurrence of *m.key.verification.start* to
  distinguish it from the first.
* It updates the language in the description of the two versions of the
  event to better describe the relationship between the two.
* It adds the optional `next_method` field to the schema of the
  *m.sas.v1* variant, as specified in the general form of
  *m.key.verification.start*.

Signed-off-by: Jimmy Cuadra <jimmy@jimmycuadra.com>
5 years ago
Travis Ralston b807e1cbe5
Merge pull request #2129 from jimmycuadra/conditionally-required-url-fields
Remove the "required" designation from the `url` field of certain m.room.message msgtypes.
5 years ago
Matthew Hodgson aadf1cc733
Merge pull request #2131 from jimmycuadra/e2ee-easier-typo
Fix typo in key verification framework section.
5 years ago
Jimmy Cuadra b885714d94 Remove the "required" designation from the `url` field of certain
m.room.message msgtypes.

Now that content referenced by the *m.audio*, *m.file*, *m.image*, and
*m.video* message types can be encrypted, the `url` field is required
*only* if the content is unencrypted. The "required" designation in the
event schemas (which prefixes the field description with "Required" in
bold in the generated HTML) is used to indicate fields which must always
be present, and this is no longer the case.

Signed-off-by: Jimmy Cuadra <jimmy@jimmycuadra.com>
5 years ago
Jimmy Cuadra 2dd0da7d50 Fix typo in key verification framework section.
Signed-off-by: Jimmy Cuadra <jimmy@jimmycuadra.com>
5 years ago
Travis Ralston 50dee76fa7
Merge pull request #2122 from matrix-org/travis/fix-changelog
Fix changelog generation
5 years ago
Travis Ralston cac72ff873
Merge pull request #2126 from matrix-org/travis/403-id-unbind
Add 403 error to IS unbind
5 years ago
Travis Ralston 8bfc42b284
Merge pull request #2128 from matrix-org/travis/fix-contributing
Fix contributing guide to say we're stable
5 years ago
Travis Ralston decb75555c
We're stable now 🎉 5 years ago
Travis Ralston a9297f9e6c
Merge pull request #2125 from jimmycuadra/m.notice-format
Add missing format fields to m.room.message$m.notice schema.
5 years ago
Jimmy Cuadra e670fb1f5a Add missing format fields to m.room.message$m.notice schema.
Signed-off-by: Jimmy Cuadra <jimmy@jimmycuadra.com>
5 years ago
Travis Ralston 2cafa7e1e8
Merge pull request #2124 from matrix-org/travis/fix-id-server-param
Remove incorrect id_server param from IS spec
5 years ago
Travis Ralston 67ea3b9ce8 Add 403 error to IS unbind
Fixes https://github.com/matrix-org/matrix-doc/issues/2117
5 years ago
Travis Ralston b8f1f37927 Remove incorrect id_server param from IS spec
Fixes https://github.com/matrix-org/matrix-doc/issues/2118
5 years ago
Travis Ralston d26cf7da92
Merge pull request #2123 from matrix-org/travis/fix-historical-ids
Exclude DEL from historical user IDs
5 years ago
Travis Ralston 18eca90022 Exclude DEL from historical user IDs
The range is inclusive, so don't include 7F
5 years ago
Travis Ralston e60d2defbd Fix changelog generation
Only include the target version, not all versions. Additionally, make sure the appservice spec isn't hardcoded as "unstable".
5 years ago
Sorunome 26349417ba
update spoiler render idea 5 years ago
Travis Ralston 19a3d574b7 Fix HKDF rationale 5 years ago
Travis Ralston ba5479e46f Reference Canonical JSON 5 years ago
Travis Ralston 8f1f8b4fe5 Fix references to filtering
We can't have two different backlinks for the same text, so use LL as the label
5 years ago
Travis Ralston 98c9d93b20
Merge pull request #2113 from matrix-org/client_server/release-r0.5.0
Client-Server r0.5.0
5 years ago
Travis Ralston 497c6875ac
Merge pull request #2112 from matrix-org/server_server/release-r0.1.2
Federation r0.1.2
5 years ago
Travis Ralston 67d12165e8
Merge pull request #2111 from matrix-org/identity_service/release-r0.2.0
Identity r0.2.0
5 years ago
Travis Ralston 1e9308cbc9
Merge pull request #2109 from matrix-org/application_service/release-r0.1.1
Appservice r0.1.1
5 years ago
Travis Ralston 1ca60bf5d7 Client-Server r0.5.0 5 years ago
Travis Ralston 8e6ccf0a0e Federation r0.1.2 5 years ago
Travis Ralston 34ad81e81b Identity r0.2.0 5 years ago
Travis Ralston 4f915f2760 Appservice r0.1.1 5 years ago
Travis Ralston f44483a8cf
Merge pull request #2099 from matrix-org/travis/1.0/1.0-notice
Declare Matrix 1.0 in the index
5 years ago
Travis Ralston 2d18f81807
Merge pull request #2087 from matrix-org/travis/1.0/events-are-extensible
Reorganize event structure in c2s spec and clarify event capabilities
5 years ago
Travis Ralston c9345ba6a3 Never forget the past 5 years ago
Travis Ralston 8ac555f870
Merge pull request #2083 from matrix-org/travis/1.0/key-object
Clarify the key object definition for the key management API
5 years ago
Travis Ralston 8b7887dfc2 Link to key algorithms section 5 years ago
Travis Ralston 19f017f9bd
Merge pull request #2035 from matrix-org/travis/1.0/msc688-msc1227-lazy-loading
Spec lazy-loading room members
5 years ago
Travis Ralston fbdb56a29f
Merge pull request #2101 from matrix-org/anoa/hs_3pid_tokens
Add submit_url field to requestToken responses, clarify HS's can send tokens themselves
5 years ago
Travis Ralston 56745c76aa Clarify that submit_url being not present only matters for r0.5 5 years ago
Travis Ralston 85f34f942f Fix invalid doc error
Another annoying case of Swagger fighting us
5 years ago
Travis Ralston f7aa2adfb4 Fix indentation 5 years ago
Travis Ralston 6d60258e25
Merge pull request #2080 from matrix-org/travis/1.0/msc2076-msc2077-v5-rooms
Spec v5 rooms: Key validity
5 years ago
Travis Ralston b32f0e768f clarify that UIA can now be done by the HS 5 years ago
Travis Ralston ca8b539b2f humans prefer to be treated as people 5 years ago
Travis Ralston 370ae8b9fe
Merge pull request #2068 from matrix-org/travis/1.0/mxc
Refactor documentation for content/media repository
5 years ago
Travis Ralston 04930c6ddf Don't enforce MXC URIs, but also don't confuse people 5 years ago
Travis Ralston ad3aa5edf0
Merge pull request #2104 from matrix-org/travis/1.0/event-ids
Clarify that the common identifier format can be broken
5 years ago
Travis Ralston b7378a860a
Merge pull request #2097 from matrix-org/travis/1.0/common-themes
Specify some of the common concepts for Matrix in the index
5 years ago
Travis Ralston c1c26859e2
Merge pull request #2096 from matrix-org/travis/1.0/read-notifs
Clarify how notification counts are calculated in /sync
5 years ago
Travis Ralston 39b79fe453
Merge pull request #2088 from matrix-org/travis/1.0/duplicate-state-endpoint
Merge GET/PUT /state/:event_type endpoints
5 years ago
Andrew Morgan 5f24f63338 Better wording 5 years ago
Andrew Morgan 1a22508e15 identity server -> the server 5 years ago
Andrew Morgan 572d29348c
Update changelogs/client_server/newsfragments/2101.breaking
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
Travis Ralston fc1d8f184d
Merge pull request #2078 from matrix-org/anoa/msc2078
MSC2078: Sending Third-Party Request Tokens via the Homeserver
5 years ago
Travis Ralston ad2eefdde9 Shuffle and clarify identifier grammar
Specifically, make it clearer that event IDs are the weird exception in this section.
5 years ago
Travis Ralston 32761fc108
Merge pull request #2098 from matrix-org/travis/1.0/modules-update
Clarify what a "module" is and update feature profiles for clients
5 years ago
Travis Ralston 37e2d81d58 Hardcode the state event fields table into the spec
See comment for why.
5 years ago
Travis Ralston 51698a5dd5 Clarify that people must own the namespace to use it 5 years ago
Travis Ralston 19c827e581 Remove trailing slashes section 5 years ago
Travis Ralston 49831fb74f Clarifications about namespaces 5 years ago
Travis Ralston 1886a2346a Move explanation of notifications to notifications module 5 years ago
Travis Ralston cf19f52576 Enforce 7 day validity requirement everywhere
also misc formatting fixes
5 years ago
Travis Ralston 56e1640bea
Merge pull request #2106 from matrix-org/matthew/1.0/msc688-msc1227-lazy-loading
incorporate LL review from matthew
5 years ago
Matthew Hodgson 0506d09cf7 incorporate LL review from matthew 5 years ago
Travis Ralston 36659ca266
Merge pull request #2091 from matrix-org/travis/1.0/mxid-register
Clarify that /register must produce valid Matrix User IDs
5 years ago
Travis Ralston f047e235df Merge branch 'master' into travis/1.0/event-ids 5 years ago
Travis Ralston 65c3935419
Merge pull request #2076 from matrix-org/rav/proposal/enforce_key_validity_periods
MSC2076: Enforce key-validity periods when validating event signatures
5 years ago
Travis Ralston 19575eb4d4
Merge pull request #2077 from matrix-org/rav/proposal/room_v5
MSC2077: room v5
5 years ago
Travis Ralston 6d62a1b444
Merge pull request #2084 from matrix-org/travis/1.0/s2s-swagger-touchups
Touchups on the s2s swagger definitions
5 years ago
Travis Ralston 7fe7d365e2
Merge pull request #2089 from matrix-org/travis/1.0/cors
Clarify when and where CORS headers should be returned
5 years ago
Andrew Morgan 2068cba598 Clients should submit a POST request 5 years ago
Andrew Morgan 7116f9334e More consolidation 5 years ago
Andrew Morgan d1fde0837a Consolidate id_server into ref. id_server/next_link are ignored 5 years ago
Andrew Morgan 0f82056ca2 Highlight breaking change 5 years ago
Andrew Morgan ab0c1bc054 Add changelog, update imperative check, rename sid.yaml 5 years ago
Travis Ralston 29340c6eb8 Clarify that the common identifier format can be broken
We already reference in the Event IDs section that the format depends on the room version, so we just need to link there.

Fixes https://github.com/matrix-org/matrix-doc/issues/2103
5 years ago
Andrew Morgan fe23de7d7f A SMS -> An SMS 5 years ago
Andrew Morgan 046a834488 Slight code cleanup 5 years ago
Andrew Morgan 2551ff6ce0 Actually check in code 5 years ago
Andrew Morgan 525bedf8e1 Fix refs 5 years ago
Andrew Morgan fba61941af Move submit_url responses to ref 5 years ago
Andrew Morgan 0ded484276 Address review comments 5 years ago
Andrew Morgan 1776ba28d3 Address review comments 5 years ago
Matthew Hodgson 3438ea50a2
Merge pull request #1779 from matrix-org/matthew/msc1779
MSC1779: Proposal for Open Governance for Matrix.org (v2)
5 years ago
Matthew Hodgson 950415c72a
Merge branch 'master' into matthew/msc1779 5 years ago
Matthew Hodgson be568ba9ab link to the legalified version of MSC1779 5 years ago
Andrew Morgan a8edb066aa Clear up some wording 5 years ago
Andrew Morgan 8a6ef187db more object! 5 years ago
Travis Ralston a38af2009f
Apply suggestions from code review
Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
5 years ago
Travis Ralston 4b6e2cc956
Merge pull request #2072 from matrix-org/travis/1.0/msc1717-msc1267-sas-verification
Spec SAS verification and the common key verification framework
5 years ago
Travis Ralston 46747e897e ing 5 years ago
Travis Ralston 00588efd3f
Merge pull request #2086 from matrix-org/travis/1.0/fed-content-type
Clarify that the default s2s transport is JSON over HTTP
5 years ago
Travis Ralston ac27728c0a
Merge pull request #2082 from matrix-org/travis/1.0/v4-default
Make v4 the "default" room version
5 years ago
Travis Ralston 906d3cd447
Merge pull request #2055 from matrix-org/travis/1.0/registration-clarification
Clarify guest accounts and `auth` usage on /register
5 years ago
Travis Ralston e4339fd687 More clarity 5 years ago
Travis Ralston 6a4a6db1bd
Merge pull request #2081 from matrix-org/travis/1.0/pdu-signatures
Clarify which servers are supposed to sign events
5 years ago
Andrew Morgan 62910a28cc Merge branch 'master' into anoa/hs_3pid_tokens
* master:
  Update example
  Fix 404s in links from room v1 spec
  Provide a more complete example of a "minimally-sized event"
  Revert signature change for redactable event test
  Clarify how many PDUs are in a given transaction object
  Clarify that the server shouldn't process retries for UIA
  Clarify when authorization and rate-limiting are not applicable
  Skip over partial event definitions in examples
  Rename example to invite_room_state
  Shorten references to StrippedState in s2s spec
  Fix examples of StrippedState in s2s spec
  Clarify exactly what StrippedState is
  Clarify that UIA stages cannot be attempted twice
  Fix test vectors with invalid JSON and signature
  Spec 3PID unbind API
  Spec MSISDN UIA support
5 years ago
Andrew Morgan 3148184052 HS' can send 3PID token. Add a new submit_url field 5 years ago
Travis Ralston 4c82553df4
Merge pull request #2047 from matrix-org/travis/1.0/test-vectors
Fix test vectors with invalid JSON and signature
5 years ago
Travis Ralston 360ac0b900
Update specification/server_server_api.rst
Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
5 years ago
Travis Ralston a0e8201816
Apply suggestions from code review
Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
5 years ago
Travis Ralston 77c4c4b07c Add general clarity 5 years ago
Travis Ralston 5ec1a50b94 Linefeeds and other clarifications 5 years ago
Travis Ralston 3877896a4c Clarify how we now expect verification to be done 5 years ago
Travis Ralston d49c7fb3b0
Apply suggestions from code review
Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
5 years ago
Travis Ralston 00fee74636 Update example 5 years ago
Travis Ralston f4e85853d4
Merge pull request #2054 from matrix-org/travis/1.0/uia-clarifications
Clarify that UIA stages cannot be attempted twice
5 years ago
Travis Ralston 9cf03325b9
Merge pull request #2046 from matrix-org/travis/1.0/msc1915-unbind
Spec 3PID unbind API
5 years ago
Travis Ralston 70da564e2b
Merge pull request #2067 from matrix-org/travis/1.0/stripped-state
Clarify exactly what StrippedState is
5 years ago
Andrew Morgan 45e271c0f7 be super explicit 5 years ago
Andrew Morgan 7f65704ebc Update wording and answer review comments 5 years ago
Richard van der Hoff e4de464476
Merge pull request #2100 from JJJollyjim/master
Fix 404s in links from room v1 spec
5 years ago
Jamie McClymont d7858354f2 Fix 404s in links from room v1 spec 5 years ago
Travis Ralston 7f01346bba Provide a more complete example of a "minimally-sized event"
Using all the required fields of a v1 event.
5 years ago
Travis Ralston ae9abe798e Revert signature change for redactable event test
The previous signature was calculated on the unredacted event, which means the signature produced was wrong.
5 years ago
Travis Ralston 4f665f06e6 Clarify what Matrix 1.0 is further
And add a table for minimum versions.
5 years ago
Travis Ralston 06ee60f004 Clarify what compliant implementations are 5 years ago
Travis Ralston 49dbb3ee4f Declare Matrix 1.0 in the index
Fixes https://github.com/matrix-org/matrix-doc/issues/2044
5 years ago
Travis Ralston 87d8d97074 Remove incomplete and weird sentence 5 years ago
Travis Ralston cd6b012523 Clarify what a "module" is and update feature profiles for clients
Fixes https://github.com/matrix-org/matrix-doc/issues/2009
5 years ago
Travis Ralston d9170b4b3a
Merge pull request #2095 from matrix-org/travis/1.0/txn-obj-s2s
Clarify how many PDUs are in a given transaction object
5 years ago
Travis Ralston b9c9396c11 Specify some of the common concepts for Matrix in the index
See https://github.com/matrix-org/matrix-doc/pull/2061
Fixes https://github.com/matrix-org/matrix-doc/issues/1468
Fixes https://github.com/matrix-org/matrix-doc/issues/1528

The section is not referenced by the specifications yet - they do a fairly good job of explaining it over and over. In future, it would be good to point all the references to the index.
5 years ago
Travis Ralston f0eb495cee Clarify how notification counts are calculated in /sync
Fixes https://github.com/matrix-org/matrix-doc/issues/2015
5 years ago
Travis Ralston 9bf0103ef3 Clarify how many PDUs are in a given transaction object
Fixes https://github.com/matrix-org/matrix-doc/issues/2093
5 years ago
Travis Ralston afead2eb1b Clarify LL in /sync a bit more 5 years ago
Travis Ralston e644227f4b Clarify that the server shouldn't process retries for UIA 5 years ago
Travis Ralston e1266b859f
Merge pull request #2030 from matrix-org/travis/1.0/bind-msisdn
Spec MSISDN UIA support
5 years ago
Travis Ralston eb06e131df
Merge pull request #2090 from matrix-org/travis/1.0/more-auth
Clarify when authorization and rate-limiting are not applicable
5 years ago
Travis Ralston 976f32fcab Clarify that /register must produce valid Matrix User IDs
Fixes https://github.com/matrix-org/matrix-doc/issues/1793
5 years ago
Travis Ralston 79bbb47d9f Clarify when authorization and rate-limiting are not applicable
Fixes https://github.com/matrix-org/matrix-doc/issues/1971
5 years ago
Travis Ralston bbc7401973 Clarify when and where CORS headers should be returned
Fixes https://github.com/matrix-org/matrix-doc/issues/1736
Fixes https://github.com/matrix-org/matrix-doc/issues/2013
5 years ago
Travis Ralston c8a3850598 Merge GET/PUT /state/:event_type endpoints
Clarifying that the state key is optional, and how that works.

Fixes https://github.com/matrix-org/matrix-doc/issues/1182
5 years ago
Travis Ralston 8fd5b15594 Reorganize event structure in c2s spec and clarify event capabilities
Fixes https://github.com/matrix-org/matrix-doc/issues/1166
Fixes https://github.com/matrix-org/matrix-doc/issues/1527
Fixes https://github.com/matrix-org/matrix-doc/issues/1827

Note: In order to fix the "state events have the following fields: [no words]" bug (1827) we need to resolve references on common event types. When doing this we ultimately end up with more fields than may be required to explain the section, however this commit alters the section descriptions to just say "these fields" instead of "these additional fields".

This is also preferable over trying to get the inheritance reversed in the common event types, as the `/sync` endpoint has a high amount of reliance on partial events definitions.
5 years ago
Travis Ralston 500f3d3bf1 Clarify that the default s2s transport is JSON over HTTP
Fixes https://github.com/matrix-org/matrix-doc/issues/1713
5 years ago
Travis Ralston e115e3439d Touchups on the s2s swagger definitions
Duplicate properties, wrong types, etc.
5 years ago
Travis Ralston a19eb59f13 Clarify the key object definition for the key management API
Fixes https://github.com/matrix-org/matrix-doc/issues/1907


One too far
5 years ago
Travis Ralston 80aa5a24dc Make v4 the "default" room version
As per [MSC2002](https://github.com/matrix-org/matrix-doc/pull/2002). This was missed in https://github.com/matrix-org/matrix-doc/pull/2019

Fixes https://github.com/matrix-org/matrix-doc/issues/2071
5 years ago
Travis Ralston 7ce1ff2135 Clarify which servers are supposed to sign events
Fixes https://github.com/matrix-org/matrix-doc/issues/2074
5 years ago
Travis Ralston a6314df44c Spec v5 rooms: Key validity
Proposals:
* [MSC2076](https://github.com/matrix-org/matrix-doc/pull/2076)
* [MSC2077](https://github.com/matrix-org/matrix-doc/pull/2077)

Implementation references:
* 00bf99fa62
* https://github.com/matrix-org/synapse/pull/5354
* https://github.com/matrix-org/synapse/pull/5321

No known differences from the proposals are included here - alterations are accidental.
5 years ago
Andrew Morgan 3e23dde341 Be clear that any 3PID token request can now be done by the hs 5 years ago
Andrew Morgan 9000247008 Merge branch 'anoa/msc2078' of github.com:matrix-org/matrix-doc into anoa/msc2078
* 'anoa/msc2078' of github.com:matrix-org/matrix-doc:
  Update proposals/2078-homeserver-password-resets.md
5 years ago
Andrew Morgan d3f21e0360 Address review comments 5 years ago
Travis Ralston fc4965f274 Stronger spec words 5 years ago
Travis Ralston 9ac89cc915
Merge pull request #2056 from matrix-org/travis/1.0/membership-table
Add a table to show how changes in membership should be interpreted
5 years ago
Travis Ralston de725c26cc Add more clarity to the media repo 5 years ago
Andrew Morgan e49518099d Be explicit with request/responses 5 years ago
Andrew Morgan 395acf8e06
Update proposals/2078-homeserver-password-resets.md
Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>
5 years ago
Andrew Morgan 6bb48723e8 The HS can send any URL 5 years ago
Andrew Morgan 6e0af5e64c If no submit_url, just send it to the IS as before 5 years ago
Andrew Morgan 4174b61279 submit_url only if the user has to enter the code somewhere 5 years ago
Andrew Morgan 8259ae292a Capitalise SMS 5 years ago
Andrew Morgan 7e18c5d5a8 Add new submit_url response field 5 years ago
Travis Ralston aa110b2be2
Merge pull request #2025 from matrix-org/travis/1.0/3rdpartysigned
Fix third party signed definitions for join APIs
5 years ago
Travis Ralston e8d6a57a2e
Merge pull request #2052 from matrix-org/travis/1.0/pushrules-kind
Change reference for definition of push rule condition kinds
5 years ago
Andrew Morgan 8cba7adcdf Clarify conditions for attack 5 years ago
Andrew Morgan 085c5667a4 wrap lines 5 years ago
Andrew Morgan 1956f1a916 Revert "Remove attacker bit"
This reverts commit c9711acbc5.
5 years ago
Andrew Morgan c9711acbc5 Remove attacker bit 5 years ago
Andrew Morgan 4e692735f5 Update some wording 5 years ago
Andrew Morgan cf932ad4f8 msc2078 - proposal for homeservers sending passwords reset requests 5 years ago
Richard van der Hoff 40b10f254b clarifications 5 years ago
Richard van der Hoff 3347a480eb fix typo 5 years ago
Richard van der Hoff d2ccd6b268 MSC2077: room v5 5 years ago
Richard van der Hoff 37b1e171fc MSC2076: Enforce key-validity periods when validating event signatures 5 years ago
Travis Ralston a3364ff357 Spec SAS verification and the common key verification framework
Reference implementations:
* 94f664e725
* https://github.com/matrix-org/matrix-react-sdk/pull/2461
* https://github.com/matrix-org/matrix-js-sdk/pull/818
* https://github.com/matrix-org/matrix-react-sdk/pull/2596
* https://github.com/matrix-org/matrix-js-sdk/pull/837

Proposals:
* [MSC1717](https://github.com/matrix-org/matrix-doc/pull/1717)
* [MSC1267](https://github.com/matrix-org/matrix-doc/issues/1267)

No alterations to either proposal have been made intentionally here.
5 years ago
Travis Ralston 9cb60fa468
Merge pull request #2059 from matrix-org/travis/1.0/msc1719-olm-unwedge
Add Olm unwedging
5 years ago
Travis Ralston b92b147797
Merge pull request #1719 from uhoreg/olm_unwedging
MSC1719: olm session unwedging
5 years ago
Travis Ralston 9dd171a718
Merge pull request #2069 from matrix-org/bwindels/messages-chunk-order
Clarify the order events in chunk are returned in for /messages
5 years ago
Travis Ralston 042455d954
Update changelog to appease style guidelines 5 years ago
Bruno Windels 8b28972a2d PR feedback 5 years ago
Travis Ralston 39144942da
Fix title ordering 5 years ago
Travis Ralston 010757c01d
Merge pull request #2057 from matrix-org/anoa/clarify_email_sending
Clarify what the client should receiving on email resending
5 years ago
Andrew Morgan 13e7dbd53a Merge branch 'anoa/clarify_email_sending' of github.com:matrix-org/matrix-doc into anoa/clarify_email_sending 5 years ago
Andrew Morgan 49b9bfc9f6 Move changelog to the right place 5 years ago
Andrew Morgan 0b42a17352
Update api/identity/definitions/request_email_validation.yaml
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
Bruno Windels 53aa8fe8ec clarify the order events in chunk for /messages 5 years ago
Travis Ralston dc6d89caca Split download endpoints back apart
Apparently you can't have an optional path parameter.
5 years ago
Travis Ralston 1f86e8e31b Refactor documentation for content/media repository
Fixes https://github.com/matrix-org/matrix-doc/issues/2060
Fixes https://github.com/matrix-org/matrix-doc/issues/772
Fixes https://github.com/matrix-org/matrix-doc/issues/888
5 years ago
Travis Ralston 86019c9ade Skip over partial event definitions in examples 5 years ago
Travis Ralston 0b45f3795b Rename example to invite_room_state
This is a better representation of what it actually is
5 years ago
Travis Ralston 237d585e07 Shorten references to StrippedState in s2s spec 5 years ago
Travis Ralston b9c4a2561f Fix examples of StrippedState in s2s spec 5 years ago
Travis Ralston 7a07a6b358 Clarify exactly what StrippedState is
Fixes https://github.com/matrix-org/matrix-doc/issues/2066

The expectation everywhere is that the `sender` is required. `/initialSync` references StrippedState through a `m.room.member` event reference, and does not need editing.
5 years ago
Hubert Chathi fee2ebf682
fix typo
Co-Authored-By: Shamil K <me@noteness.in>
5 years ago
Travis Ralston dda7afa845
Merge pull request #1717 from uhoreg/e2e_verification
MSC1717: common definitions for key verification methods
5 years ago
Travis Ralston 57e3b152b0 Move section to under Olm stuff 5 years ago
Travis Ralston 754b19bb92
typo
Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>
5 years ago
Hubert Chathi da5ce919f2 add sharing secrets, and a bunch of cleanups 5 years ago
Travis Ralston ad07d8e6ff
Merge pull request #2051 from matrix-org/travis/1.0/fix-examples
Use consistent event examples throughout the Client-Server API
5 years ago
Travis Ralston d7f37f92eb Merge branch 'master' into travis/1.0/fix-examples 5 years ago
Travis Ralston ff768ec75f
Merge pull request #2036 from matrix-org/travis/1.0/wk-fail-error
Clarify that FAIL_ERROR is not limited to just homeservers.
5 years ago
Travis Ralston 41e07ff7d6 Fix incorrect state of leave->leave
As mentioned in PR review, it is possible for moderators in a room to race at kicking someone, resulting in multiple leave events.
5 years ago
Travis Ralston d48265f49b typo 5 years ago
Travis Ralston 54f74cd877 Add Olm unwedging
As per [MSC1719](https://github.com/matrix-org/matrix-doc/pull/1719)

No known alterations have been made to the proposal.

Implementation proof: https://github.com/matrix-org/matrix-js-sdk/pull/780
5 years ago
Travis Ralston 9d7289f4f2
Merge pull request #2049 from matrix-org/travis/1.0/store-invite-params
Add missing aesthetic parameters to /store-invite
5 years ago
Travis Ralston a2f955b50d
Merge pull request #2053 from matrix-org/travis/1.0/required-urls
Make url required for m.file-like messages
5 years ago
Travis Ralston ff33b470a4
Merge pull request #2039 from matrix-org/travis/1.0/more-changelogs
Fix more changelog entries
5 years ago
Andrew Morgan dda8976d25 Add changelog 5 years ago
Andrew Morgan c0c4629993
Slight word change 5 years ago
Andrew Morgan 6ae7e49522
Clarify what the client should receiving on email resending
It was a little unclear what the client should do when asked to send a validation email and provides a `send_attempt` value that is not greater than previous attempts. As this is intended to be for when a client mistakenly sends the request twice, it makes logical sense that the implication was to simply resend a success value so the client doesn't error even when an email may have been sent on the first attempt.

This behaviour was also mimicked in Synapse/Sydent.
5 years ago
Travis Ralston f3c0c5232f Add a table to show how changes in membership should be interpreted
Fixes https://github.com/matrix-org/matrix-doc/issues/876
5 years ago
Travis Ralston 2ed37f5bf4 Clarify guest accounts and `auth` usage on /register
Fixes https://github.com/matrix-org/matrix-doc/issues/1980
Fixes https://github.com/matrix-org/matrix-doc/issues/1984
5 years ago
Travis Ralston 0f623113f1 Clarify that UIA stages cannot be attempted twice
Fixes https://github.com/matrix-org/matrix-doc/issues/1987

Note: Synapse currently does not care, however the spirit of the text in the spec implies that completed == done forever, so we're just reinforcing it here.
5 years ago
Travis Ralston 41a036a453
Merge pull request #2050 from matrix-org/travis/1.0/clarify-proposals
Synchronize proposals_intro.rst and CONTRIBUTING.rst
5 years ago
Travis Ralston 464845feb0 Make url required for m.file-like messages
Fixes https://github.com/matrix-org/matrix-doc/issues/2008

This also removes `filename` from `m.file` because it has never been used in practice.
5 years ago
Travis Ralston 792bb8faa4 Renumber changelog to match PR 5 years ago
Travis Ralston f9472bae41 Change reference for definition of push rule condition kinds
Fixes https://github.com/matrix-org/matrix-doc/issues/1970
5 years ago
Travis Ralston d2232aca97
Merge pull request #2042 from matrix-org/travis/1.0/ordered-flows
Clarify that login flows must be completed in order
5 years ago
Travis Ralston d6d74c4cbe Switch to using $ instead of # for sub-types
# is reserved by the swagger validator as a way to include partial content from a JSON object (eg: "#/path" would include {"test": true} from the object {"path":{"test":true}}). Instead of trying to convince the validator that it is wrong, we'll just use a different character.

Note that our rendering tools do not care about #-style references to objects. It's still somewhat worth changing the character though.
5 years ago
Travis Ralston c25afa663e Use consistent event examples throughout the Client-Server API
Fixes https://github.com/matrix-org/matrix-doc/issues/1968
5 years ago
Travis Ralston 78d93432f4 Synchronize proposals_intro.rst and CONTRIBUTING.rst 5 years ago
Travis Ralston 15b8011f63 Add missing aesthetic parameters to /store-invite
Fixes https://github.com/matrix-org/matrix-doc/issues/2048
5 years ago
Hubert Chathi 6929579360 add some clarifications 5 years ago
Hubert Chathi ffb70a2fab
fix typo
Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
5 years ago
Travis Ralston 4452ebf371
Merge pull request #2041 from matrix-org/travis/1.0/upload-mime-example
Fix example Content-Type for /media/upload request
5 years ago
Travis Ralston 6706d772c9 Fix test vectors with invalid JSON and signature
Fixes https://github.com/matrix-org/matrix-doc/issues/2023

The content hashes appear correct, however applying the algorithm defined in the spec never resulted in the signatures previously demonstrated.
5 years ago
Hubert Chathi 84f0d9d7e4 add clarification 5 years ago
Travis Ralston 0463084924 Spec 3PID unbind API
As per [MSC1915](https://github.com/matrix-org/matrix-doc/pull/1915)

Implementation proof: 
* https://github.com/matrix-org/synapse/pull/4982
* https://github.com/matrix-org/sydent/pull/160

The only alteration made which differs from the proposal is clarity on how to handle homeservers not knowing the `id_server`. All other differences are unintentional.
5 years ago
Travis Ralston c5fdd5cb0b Change note style 5 years ago
Travis Ralston 551806a8ad Add a reference to the filtering module to /sync 5 years ago
Travis Ralston 3ade2a9ae7 List the endpoints which support LL 5 years ago
Travis Ralston 76829ad988
Merge pull request #2037 from matrix-org/travis/1.0/appservice-hs-token
Clarify how homeservers are meant to auth themselves to appservices
5 years ago
Travis Ralston e2da3728a0 Only error if the token doesn't match 5 years ago
Travis Ralston a8f61697d1
Merge pull request #2032 from matrix-org/travis/1.0/redaction-effects
Clarify how redactions affect room state
5 years ago
Travis Ralston 8151aa331f
Update specification/client_server_api.rst
Co-Authored-By: Hubert Chathi <hubert@uhoreg.ca>
5 years ago
Travis Ralston 0580f51206 Clarify that failing to follow the flows == 401 5 years ago
Travis Ralston 2cf00fc5ca
Merge pull request #2031 from matrix-org/travis/1.0/voip-hangup
Add missing reason property to m.call.hangup
5 years ago
Travis Ralston 6f1cd03457
Merge pull request #2043 from matrix-org/travis/1.0/self-rr
Clarify that clients should not ack their own messages
5 years ago
Travis Ralston bf86b4b83c Fix incorrect PR reference on changelog 5 years ago
Travis Ralston 4e58414b26 Clarify that clients should not ack their own messages
Fixes https://github.com/matrix-org/matrix-doc/issues/567
5 years ago
Travis Ralston 572a6056ad Clarify that login flows must be completed in order
Fixes https://github.com/matrix-org/matrix-doc/issues/1134

Evidence of this being the case is shown here: https://github.com/matrix-org/synapse/pull/5174
5 years ago
Travis Ralston 62890d21b2 Fix example Content-Type for /media/upload request
Fixes https://github.com/matrix-org/matrix-doc/issues/1770
5 years ago
Travis Ralston 88d47fd57e Rename changelog entry to point to PR
We use the PR for every other entry, so here is no exception.
5 years ago
Travis Ralston d8eb294906 Fix s2s changelog entries 5 years ago
Travis Ralston d0fd20fdb4 Clarify how homeservers are meant to auth themselves to appservices
Fixes https://github.com/matrix-org/matrix-doc/issues/1765

Note that the swagger definitions already say that authorization is required. It just wasn't mentioned in the spec.
5 years ago
Travis Ralston 10648aa9e8 Clarify that FAIL_ERROR is not limited to just homeservers.
Fixes https://github.com/matrix-org/matrix-doc/issues/1735
5 years ago
Travis Ralston 699cafe670 v4 is v4, not v3 5 years ago
Travis Ralston bf8ca3abba
Merge pull request #2026 from matrix-org/travis/1.0/msc1452-server-notices
Add server notices support
5 years ago
Travis Ralston 9acd960cf6
Update specification/client_server_api.rst
Co-Authored-By: Kitsune Ral <Kitsune-Ral@users.sf.net>
5 years ago
Travis Ralston ade346f8cc Add m.server_notice to reserved tags 5 years ago
Travis Ralston 229893589a Move wording for reason definitions 5 years ago
Travis Ralston d14dc1d8e1 Clarify that redacted state events affect the room with default values 5 years ago
Travis Ralston b1dccda49d changelog 5 years ago
Travis Ralston 8330810e95 Specify the new room naming scheme 5 years ago
Travis Ralston b3d86f99b9 Add room summary spec 5 years ago
Travis Ralston e610f085a9
Merge pull request #2019 from matrix-org/travis/1.0/msc1884-msc2002-v4-rooms
Add version 4 rooms to the spec
5 years ago
Travis Ralston 40cf4620d5
Merge pull request #2027 from matrix-org/travis/1.0/pw-change-uia
Add rationale for UIA on change password, and how access tokens behave
5 years ago
Travis Ralston 1aa71f2436
Merge pull request #2029 from matrix-org/travis/1.0/delete-alias
Add M_NOT_FOUND definition for deleting non-existent aliases
5 years ago
Travis Ralston 7b266b33da Add membership params
Fixes https://github.com/matrix-org/matrix-doc/issues/1945
5 years ago
Travis Ralston ba520df004 Move lazy loading to a section in Filtering 5 years ago
Travis Ralston b67161cf97 List the endpoints which are lazy-loading aware 5 years ago
Travis Ralston 34d6c1f4ad Clarify wording further for how to handle redundant members
Note: This makes assumptions on what the TODO comment in Synapse means: e26e6b3230/synapse/handlers/pagination.py (L262)

Due to lack of implementation, it is assumed that using the same filter across multiple calls to /sync OR /messages will result in the redundant members being excluded in the next request. For example, calling /sync, then /messages which returns some members, then /sync again will exclude the members due to them being in /messages.
5 years ago
Travis Ralston d56df3238c Generalize wording to fit /messages and /sync 5 years ago
Travis Ralston e7ed8a23ce Move lazy loading filter options to event filter
The options also work on /messages
5 years ago
Travis Ralston f4ff8e5467 Clarify where the field appears 5 years ago
Travis Ralston df51acd7ae Proposal for adding a device_id to /account/whoami 5 years ago
Travis Ralston 23ab1c527a Clarify how redactions affect room state
Fixes https://github.com/matrix-org/matrix-doc/issues/1726
5 years ago
Travis Ralston 9e31aed6c7
Merge pull request #2028 from matrix-org/travis/1.0/access-token-devices
Clarify that logging out deletes devices too
5 years ago
Travis Ralston 00f97636a2 Add missing reason property to m.call.hangup
Fixes https://github.com/matrix-org/matrix-doc/issues/1689
5 years ago
Travis Ralston 1bda3fe2b2 Spec MSISDN UIA support
Fixes https://github.com/matrix-org/matrix-doc/issues/1702

1702 describes the lack of `bind_msisdn` parameter, however the whole login type was missing from UIA.
5 years ago
Travis Ralston a30dbc590d Clarify that e2e keys are also obliterated 5 years ago
Travis Ralston d52fcdacfa Add M_NOT_FOUND definition for deleting non-existent aliases
Fixes https://github.com/matrix-org/matrix-doc/issues/1675
5 years ago
Travis Ralston 221d9f24fd Clarify that logging out deletes devices too
Fixes https://github.com/matrix-org/matrix-doc/issues/1651
5 years ago
Travis Ralston 1d33adf62d Add rationale for UIA on change password, and how access tokens behave
Fixes https://github.com/matrix-org/matrix-doc/issues/680
5 years ago
Travis Ralston 5eea4a477f Add server notices support
As per [MSC1452](https://github.com/matrix-org/matrix-doc/issues/1452) 

Fixes https://github.com/matrix-org/matrix-doc/issues/1254

Although MSC1452 focuses on just the warnings part of the server notices, the base for notices has not been established in the spec. This commit adds the needed support to be able to handle notices.

No intentional divergences from the proposal are included in this changeset. There are a few additions which are used in practice although not defined in the proposal, such as who is responsible for aesthetics, sending notices, and other misc rules.
5 years ago
Travis Ralston 17a9524cad changelog 5 years ago
Travis Ralston 2b96d73305 Fix third party signed definitions for join APIs
Fixes https://github.com/matrix-org/matrix-doc/issues/1978
5 years ago
Travis Ralston 5c268ef21f
Merge pull request #2020 from matrix-org/travis/1.0/msc1930-tombstone-notif
Add a .m.rule.tombstone default push rule for room upgrades
5 years ago
Travis Ralston 434e238d54
Merge pull request #2016 from matrix-org/travis/1.0/msc1954-redaction-bug
Remove prev_content from the redaction essential keys list
5 years ago
Travis Ralston ceaccffdf7 Add a .m.rule.tombstone default push rule for room upgrades
As per [MSC1930](https://github.com/matrix-org/matrix-doc/pull/1930)

There are no known changes to this proposal since it was accepted.
5 years ago
Travis Ralston 3b0e194ff7 Add version 4 rooms to the spec
As per [MSC1884](https://github.com/matrix-org/matrix-doc/pull/1884) and [MSC2002](https://github.com/matrix-org/matrix-doc/pull/2002).

No known changes since the proposals were accepted.

Due to being in the area: This fixes https://github.com/matrix-org/matrix-doc/issues/1863
5 years ago
Travis Ralston 3c38956510 Remove prev_content from the redaction essential keys list
As per [MSC1954](https://github.com/matrix-org/matrix-doc/pull/1954)

No known changes since the proposal was accepted.
5 years ago
Travis Ralston 415212c3a0
Merge pull request #2014 from matrix-org/travis/1.0/changelogs
Add missing changelogs and make existing ones match conventions
5 years ago
Travis Ralston 9c2a789d34 Add missing changelogs and make existing ones match conventions
The conventions are not set in stone, however the changelog should not be a mixed bag of voices.
5 years ago
Hubert Chathi ac08c84612
remove duplicate consideration
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
5 years ago
Hubert Chathi dd74baa5d0 clarify wording 5 years ago
Hubert Chathi d39baba21b add a security note 5 years ago
Hubert Chathi 7705006260 1 hour seems to be fine 5 years ago
Sorunome 273af2a2e0
wrap long lines 5 years ago
Sorunome 6f3bcb56d3
add rendering idea 5 years ago
Sorunome ebb1351a9f
linebreak consistency 5 years ago
Sorunome d750115fdc
fix up some things 5 years ago
Sorunome 70d3fd809e
add spoiler msc 5 years ago
Hubert Chathi 7bad359b0d switch to the 3-key system, and some wording improvements 5 years ago
Matthew Hodgson 37871106c6 MSC2002: Proposal for adopting MSC1884 as v4 rooms (#2002) 5 years ago
David Baker cae07d9e56
Merge pull request #1999 from matrix-org/dbkr/dummy_auth_for_disambiguation
Words on using m.login.dummy for disambiguation
5 years ago
David Baker c38581fb86
Too many spaces
Co-Authored-By: Travis Ralston <travpc@gmail.com>
5 years ago
David Baker 383e02835e Words on using m.login.dummy for disambiguation
Add some text on how m.login.dummy can be used to distinguish
a flow that would otherwise be a subset of other flows.
5 years ago
Travis Ralston ba18a6e9fa
Merge pull request #1992 from matrix-org/anoa/missing_punctuation3
Add missing period
5 years ago
Travis Ralston 00b7b70c06
Create 1992.clarification 5 years ago
Travis Ralston 7e093e95fc
Merge pull request #1991 from matrix-org/anoa/missing_punctuation2
Add missing punctuation
5 years ago
Travis Ralston ce904f9750
Merge pull request #1990 from matrix-org/anoa/missing_punctuation
Add missing period
5 years ago
Travis Ralston c54a5fc3df
Merge pull request #1989 from matrix-org/anoa/typo2
Add missing 'as'
5 years ago
Travis Ralston 947fa57183
Merge pull request #1988 from matrix-org/anoa/typo
fix grammatical error
5 years ago
Andrew Morgan 713e4401b4 Add changelogs 5 years ago
Andrew Morgan abd770419b Add changelog 5 years ago
Andrew Morgan 20d2fdc288 Add changelog 5 years ago
Andrew Morgan 57cf1aaa96 Add missing period 5 years ago
Andrew Morgan 3c62b90dfb Add missing punctuation 5 years ago
Andrew Morgan 40482f7616 Add missing period 5 years ago
Andrew Morgan c233535de0 fix typo 5 years ago
Andrew Morgan da82a42308 fix grammatical error 5 years ago
Richard van der Hoff 7c7bc677fb Trigger matrix.org rebuild 5 years ago
Brendan Abolivier e71b3ac754 Add details to what an unrecognised request is 5 years ago
Travis Ralston 62748a026d
Rename 0000-leave-reasons.md to 1983-leave-reasons.md 5 years ago
Travis Ralston 97786da4ad
Create 0000-leave-reasons.md 5 years ago
Richard van der Hoff 4e9dc2098f
Fix comments which refer to jenkins. (#1981)
* Fix comments which refer to jenkins.

* Spelling

Co-Authored-By: turt2live <travpc@gmail.com>
5 years ago
Richard van der Hoff de3eb3218e
Merge pull request #1975 from matrix-org/rav/thumbnail_dimensions
Make thumbnail dimensions mandatory
5 years ago
Brendan Abolivier c1721cb6f7 Merge branch 'master' into babolivier/standardised-federation-response-format 5 years ago
Brendan Abolivier 661d69858e Add fallback 5 years ago
Richard van der Hoff dc09dcd64b
Merge pull request #1976 from matrix-org/rav/buildkite
jenkins is dead, long live buildkite
5 years ago
Richard van der Hoff 6cdc8982fa jenkins is dead, long live buildkite 5 years ago
Richard van der Hoff 14715468bb Make thumbnail dimensions mandatory
Fixes #1883
5 years ago
Richard van der Hoff 2ae122903f
Use the right name
Co-Authored-By: uhoreg <hubert@uhoreg.ca>
5 years ago
Andrew Morgan c230c2fd2f
Merge pull request #1967 from aqtusia/master
Replace /bind with /3pid/bind
5 years ago
Matthew Hodgson 5c62d6271c
Merge pull request #1969 from jplatte/patch-1
Fix a typo in m.call.invite
5 years ago
Andrew Morgan 5792e5f4de
Merge pull request #1954 from matrix-org/neilj/Remove-prev_content-from-the-essential-keys-list2
MSC1954: Proposal to remove prev_content from the essential keys list
5 years ago
Jonas Platte 043dddc490
Fix a typo in m.call.invite 5 years ago
Neil Johnson 911fb94ea0
typos 5 years ago
aqtusia 2eb9708f7f
Replace /unbind with /3pid/unbind 5 years ago
aqtusia 24e0ec4bce
Replace /bind with /3pid/bind 5 years ago
Neil Johnson b41fbc86b6 add further potential issues and security concerns 5 years ago
Travis Ralston 0bab70c14e Assign MSC number 5 years ago
Travis Ralston d6d0f9780d Proposal for basic integration manager authentication APIs 5 years ago
Travis Ralston bd0211be12 Assign MSC number 5 years ago
Travis Ralston e8de1423b1 Proposal for OpenID information exchange with widgets 5 years ago
Travis Ralston b12e92440e
Merge pull request #1930 from matrix-org/travis/msc/tombstone-notif
MSC1930: Add a push rule for m.room.tombstone events
5 years ago
Travis Ralston cecf75c9a9
Merge pull request #1884 from matrix-org/rav/proposal/no_slash_in_event_id
MSC1884: Proposal to replace slashes in event IDs
5 years ago
Travis Ralston 64d48855e2
Merge pull request #1955 from matrix-org/travis/spec/1704
Add permalink routing through ?via parameters on matrix.to URIs
5 years ago
J. Ryan Stinnett 13d63685d3
Spelling
Co-Authored-By: turt2live <travpc@gmail.com>
5 years ago
Travis Ralston 2dcda7d564 Add a mention that clients should re-query .well-known 5 years ago
Travis Ralston dffe19bb76 Rename file to match MSC number 5 years ago
Travis Ralston cc10444d4b Assign MSC number 5 years ago
Travis Ralston 29a9982447 Proposal for integration manager discovery 5 years ago
Travis Ralston 99cd064f26 Update original MSC as per proposal guidelines 5 years ago
Travis Ralston 8ad82ce3c0 Add permalink routing through ?via parameters on matrix.to URIs
Spec for [MSC1704](https://github.com/matrix-org/matrix-doc/pull/1704)

Reference implementations:
* Original: https://github.com/matrix-org/matrix-react-sdk/pull/2250
* Modern recommendations: 2ca281f6b7/src/matrix-to.js (L29-L70)

The only deviation from the original MSC is the recommendation for which servers to pick. The original MSC failed to consider server ACLs and IP addresses correctly, and during implementation it was realized that both of these cases should be handled. The core principles of the original MSC are left unaltered.
5 years ago
Neil Johnson 743eeca27a MSC to remove prev_content from the essential keys list 5 years ago
Matthew Hodgson efcbf2f807
Merge branch 'master' into matthew/msc1779 5 years ago
Matthew Hodgson 88f533f0db incorporate further feedback 5 years ago
Matthew Hodgson 417f3a3e8b incorporate further feedback from vdh 5 years ago
Hubert Chathi 9dcf2d6a28
Update proposals/1884-replace-slashes-in-event_ids.md
Co-Authored-By: ara4n <matthew@arasphere.net>
5 years ago
Matthew Hodgson 207d6cf851 update MSC1884 to reflect new conclusions following discussion on the PR 5 years ago
Hubert Chathi 979827bad3 rename to match MSC number 5 years ago
Hubert Chathi 63c6d030fd draft of secure server-side storage 5 years ago
Travis Ralston 1c5ec68cd0
Merge pull request #1876 from matrix-org/travis/v3-id-grammar
Clarify v3 event representation in identifier grammar
5 years ago
Hubert Chathi 4e95f8062a add examples for federation endpoints 5 years ago
Hubert Chathi 696e568fb2 add some clarifications 5 years ago
Hubert Chathi 0c87b22731
Merge pull request #1939 from matrix-org/uhoreg/fix_export_format
fix some errors in key export format
5 years ago
Hubert Chathi d224c4ff71 fix some errors in key export format
- empirically, we don't acatually wrap the array in an object
- fix an incorrect type
5 years ago
Travis Ralston b76b7cd178
Merge pull request #1915 from matrix-org/erikj/unbind_threepid_msc
MSC 1915 - Add a 3PID unbind API
5 years ago
Travis Ralston 0ec34039e8 URL encode all the things 5 years ago
Travis Ralston 42cf72c60f URL encode matrix.to URIs 5 years ago
Travis Ralston fa541fd99a
Merge pull request #1933 from Vikingat-RAGE/master
E2E typo fix in spec
5 years ago
Vikingat-RAGE 76ee13b9bb Fixed bad spacing. 5 years ago
Vikingat-RAGE 1a739ec97b E2E typo fix in spec 5 years ago
David Baker 410a5dbbff
Update proposals/1915-unbind-identity-server-param.md
Co-Authored-By: erikjohnston <erikj@jki.re>
5 years ago
Erik Johnston bd4fab7a15 Be more explicit identity server selection and errors 5 years ago
Travis Ralston 0e07a6d243 Proposal to have a push rule for m.room.tombstone events 5 years ago
Richard van der Hoff 1c4262e556
Apply suggestions from code review
Co-Authored-By: uhoreg <hubert@uhoreg.ca>
5 years ago
Richard van der Hoff 87824c1c96
Update proposals/1219-storing-megolm-keys-serverside.md
Co-Authored-By: uhoreg <hubert@uhoreg.ca>
5 years ago
Hubert Chathi 1749a91344 make MSC mentions into links 5 years ago
Hubert Chathi 4842a718d8 fill in some of the other sections 5 years ago
Hubert Chathi f9a00fc943 clarify that not understanding a verification method should not auto-cancel 5 years ago
Erik Johnston 60f1cf79de Update wording and add deactivate account API 5 years ago
David Baker 77110b46df
Update proposals/1915-unbind-identity-server-param.md
Co-Authored-By: erikjohnston <erikj@jki.re>
5 years ago
Erik Johnston ee6513d608 Add alternative sid/client_secret authentication 5 years ago
Erik Johnston f92925ed45 Add a 3PID unbind API 5 years ago
Travis Ralston c08d223cfe
Merge pull request #1889 from ma1uta/push_rules
Fix for the #1865
5 years ago
Anatoly Sablin 5303ba54b7 Add a clarification changelog. 5 years ago
Travis Ralston f1280ef305
Merge pull request #1910 from matrix-org/benpa/spelling-fix
in the appendices, thanks earfolds
5 years ago
Ben Parsons 99405418c9 in the appendices, thanks earfolds 5 years ago
Travis Ralston 324660073a
Merge pull request #1908 from matrix-org/travis/spec/unsupported-room-version
Describe M_UNSUPPORTED_ROOM_VERSION on invite and createRoom endpoints
5 years ago
Andrew Morgan 1c731630f8
Merge pull request #1909 from matrix-org/anoa/contrib_rst
Specify news fragments must be done in RST
5 years ago
Andrew Morgan 4049ca9208 Specify news fragments must be done in RST. 5 years ago
Travis Ralston adb721bc0b Fix unrelated changelog entry's RST representation 5 years ago
Travis Ralston baf8948eb5 Describe M_UNSUPPORTED_ROOM_VERSION on invite and createRoom endpoints
Spec for MSC1866: https://github.com/matrix-org/matrix-doc/pull/1866
5 years ago
Travis Ralston 23b2420520
Merge pull request #1866 from matrix-org/erikj/fed_invite_error_code
Add proposal for invite error code for unsupported room version
5 years ago
Travis Ralston 51995b2d9e
Merge pull request #1906 from ma1uta/fix_s2s_open_id
Fix #1904.
5 years ago
Anatoly Sablin 060c5c7b21 Add clarification changelog entry. 5 years ago
Anatoly Sablin d52918a892 Fix #1904. 5 years ago
Anatoly Sablin 4bec3d6dd8 Avoid duplicates. 5 years ago
Richard van der Hoff 9edf2a3271
Merge pull request #1900 from hvenev/spec-ident-port
Restrict identifier port numbers to 5 digits.
5 years ago
Hristo Venev e825224b5b Restrict identifier port numbers to 5 digits. 5 years ago
Travis Ralston 621437b0c5
Merge pull request #1891 from QMatrixClient/kitsune-drop-obsolete-text
Remove extended text about life without transaction IDs
5 years ago
Travis Ralston 49119ed345
Merge pull request #1875 from matrix-org/travis/clarify-upgrades
Clarify the recommendations for "transferable state"
5 years ago
Travis Ralston b82b16c3ae
Merge pull request #1846 from matrix-org/travis/fix-changelog
Fix changelog generation for non-default versions
5 years ago
Travis Ralston 2ffdda2824
Merge pull request #1890 from ma1uta/fix_link
Fix links.
5 years ago
Kitsune Ral 989d7ff192 Remove extended text about life without transaction IDs
Signed-off-by: Kitsune Ral <Kitsune-Ral@users.sf.net>
5 years ago
Anatoly Sablin befd76f853 Fix links. 5 years ago
Anatoly Sablin 17420c537a Fix links. 5 years ago
Anatoly Sablin d4b4d92b82 Fix the m.push_rules type (switch from the state event to the common event). 5 years ago
Anatoly Sablin 2de7ef9a3d #1865 Add the m.push_rules schema. 5 years ago
Richard van der Hoff 82258fc0fc Proposal for changing event ids. Again. 5 years ago
Hubert Chathi ca7aa8b0ba fill in more details, including federation bits 5 years ago
Travis Ralston 72242e4ebb
Merge pull request #1879 from matrix-org/travis/fix-capabilities
Correctly nest the capabilities response object
5 years ago
Travis Ralston d31d2f5e57 Correctly nest the capabilities response object
Everything is contained in a "capabilities" property, which is not represented by the schema. The example was correct.
5 years ago
Andrew Morgan 48569c2156
Merge pull request #1853 from matrix-org/anoa/3pid_typos
Replace "3pid" with "3PID"
5 years ago
Travis Ralston 26810bccef
Merge pull request #1873 from matrix-org/travis/spec/get-account-data
Add routes for retrieving account data
5 years ago
Travis Ralston a044145049
Merge pull request #1874 from matrix-org/travis/spec/resource-limit-error
Add M_RESOURCE_LIMIT_EXCEEDED
5 years ago
Andrew Morgan df7223f992 Add changelogs 5 years ago
Travis Ralston 22188ebfeb Further clarify why membership events are not to be transferred 5 years ago
Travis Ralston 946acbf380 Clarify v3 event representation in identifier grammar
Fixes https://github.com/matrix-org/matrix-doc/issues/1870
Fixes https://github.com/matrix-org/matrix-doc/issues/1869
Fixes https://github.com/matrix-org/matrix-doc/issues/1867
5 years ago
Travis Ralston f058a0f40a also power levels 5 years ago
Travis Ralston f67782230a changelog 5 years ago
Travis Ralston ef13aef8c3 Clarify the recommendations for "transferable state"
Fixes https://github.com/matrix-org/matrix-doc/issues/1843
5 years ago
Travis Ralston b1689a3036 Misc improvements 5 years ago
Travis Ralston b42310ab9d Merge branch 'master' into travis/fix-changelog 5 years ago
Travis Ralston 5721712eae Add M_RESOURCE_LIMIT_EXCEEDED
Original proposal: https://github.com/matrix-org/matrix-doc/issues/1504

No changes from the original proposal or implementations have been made intentionally here.
5 years ago
Travis Ralston 6bbf22cd04 Add routes for retrieving account data
Original proposal: https://github.com/matrix-org/matrix-doc/issues/1339

This contains no known differences to what was ultimately decided upon and implemented.
5 years ago
Erik Johnston 7eb8b5d7f3 Add proposal for invite error code 5 years ago
manuroe 0051c6a377 Key backup: Return {hash, count} for key upload requests
This is this tuple that allows the client to check if it has locally all keys of the backup
5 years ago
manuroe 7cde3193e5 Key backup: Explain `hash` better 5 years ago
manuroe 82ff866b58 Key backup: Add `hash` to represent stored keys
so that a matrix client A can check it is synchronised with the backup.
If not, that means that another client B has pushed keys client A does not have locally. Client A should then propose to the end user to retrieve  keys from the backup.
5 years ago
manuroe ed945d6744 Key backup: Expose the number of keys stored in the backup
so that matrix clients can compare it with the number of keys they have locally.
5 years ago
Hubert Chathi e7f7926023 add algorithm and version to the example
since they're marked as required
5 years ago
manuroe d43b595b5e Key backup: Fix PR remarks on `PUT /room_keys/version/{version}` 5 years ago
manuroe 2099308d4c Key backup: add `PUT /room_keys/version/{version}` to allow matrix clients to add signatures to an existing backup 5 years ago
Travis Ralston 3e06473305
Merge pull request #1859 from matrix-org/travis/fix-v2-scope
Change notice about room v2's scope to represent reality
5 years ago
Travis Ralston 1f05c44a0b
Merge pull request #1860 from matrix-org/travis/fix-spelling-1
Fix spelling mistake: endponts -> endpoints
5 years ago
Travis Ralston e14eb672e6
Merge pull request #1861 from matrix-org/travis/rver-toc
Add a table of contents to each room version spec
5 years ago
J. Ryan Stinnett 0ed0fee261
Update specification/rooms/v2.rst
Co-Authored-By: turt2live <travpc@gmail.com>
5 years ago
Travis Ralston 772ba8dc2a Add a table of contents to each room version spec
Fixes https://github.com/matrix-org/matrix-doc/issues/1852

We get clickable headers for free by doing this.
5 years ago
Travis Ralston 85578f9842 Fix spelling mistake: endponts -> endpoints
Fixes https://github.com/matrix-org/matrix-doc/issues/1677
5 years ago
Travis Ralston cf11965a8e Change notice about room v2's scope to represent reality
Fixes https://github.com/matrix-org/matrix-doc/issues/1851
5 years ago
Travis Ralston 375104127c Fix spec release process to match new changelog stuff
Also while we're here, make it accurate. 

Fixes https://github.com/matrix-org/matrix-doc/issues/1858
5 years ago
Travis Ralston 76946a8a7c Simplify changelog generation
We don'e need `{{server_server_changelog_r0.1.0}}` (for example), so don't go through the hassle of generating it. Instead, we'll generate the changelog for the requested versions of each API and put that in place. In the future, we may wish to consider bringing back more complicated variables when/if we start generating released versions of the spec on the fly rather than manually.
5 years ago
Travis Ralston 681a4f0387
Merge pull request #1857 from matrix-org/server_server/release-r0.1.1
s2s r0.1.1 release
5 years ago
Travis Ralston 8bd9ca4edd Prep for r0.1.1 of s2s 5 years ago
Travis Ralston 71f251c733
Merge pull request #1855 from matrix-org/travis/fix-wk-fallback
Fix contradiction in wellknown discovery for servers
5 years ago
Travis Ralston 4b68b5c939 Changelog 5 years ago
Travis Ralston bcef94ec70
Merge pull request #1847 from matrix-org/travis/s2s-unstable-warning
Add the "please use latest.html" warning to the s2s spec
5 years ago
Travis Ralston 80e6f7cbb5
Merge pull request #1845 from matrix-org/travis/fix-IS-generation
Use the real identity server version in the APIs table
5 years ago
Travis Ralston ad6064aca6
Merge pull request #1844 from matrix-org/travis/fix-tls-fingerprints
Remove wrong references to TLS fingerprints
5 years ago
manuroe e02b345c62 Revert "Key backup: add `PUT /room_keys/version/{version}` to allow matrix clients to add signatures to an existing backup"
This reverts commit c9b38cbe53.
5 years ago
manuroe c9b38cbe53 Key backup: add `PUT /room_keys/version/{version}` to allow matrix clients to add signatures to an existing backup 5 years ago
Travis Ralston c8428b1f8b Fix contradiction in wellknown discovery for servers
Fixes https://github.com/matrix-org/matrix-doc/issues/1854
5 years ago
Andrew Morgan 4ec3a43a85 Replace "3pid" with "3PID" 5 years ago
Travis Ralston 3581368f1f Add the "please use latest.html" warning to the s2s spec
Now that we have a release, we should be warning people who try and use the unstable spec as fact.
5 years ago
Travis Ralston 54ee861b5f Fix changelog generation for non-default versions
Currently if you generate a changelog for r0.1.1 of an API, you'd get "No significant changes" which is wrong. You should get a real changelog for the version.

This is now handled by generating a "preferred" changelog which acts as the default for version variables in the RST. Using a specific version's changelog is still supported for the rare cases where that is desired.
5 years ago
Travis Ralston f37a6d2ef5 Changelog 5 years ago
Travis Ralston 6067a4ad3c Use the real identity server version in the APIs table 5 years ago
Travis Ralston 3dd0601a96 Remove more TLS fingerprint talk 5 years ago
Travis Ralston e9bac1b011 Remove wrong references to TLS fingerprints
Also fix some styling in the server discovery section - this didn't feel like it needed its own commit.
5 years ago
Travis Ralston baf00ba6d1
Merge pull request #1839 from matrix-org/travis/improved-intro
Add a bit of text to ensure that the intro page isn't missed
5 years ago
Travis Ralston 1f5783b329 fix links and wording 5 years ago
Travis Ralston 9631e4bcb1 Add a bit of text to ensure that the intro page isn't missed 5 years ago
Travis Ralston 7181be1148
Merge pull request #1836 from matrix-org/server_server/release-r0.1.0
Release r0.1.0 of the server-server specification
5 years ago
Travis Ralston 8ace64bab7 r0.1.0 of the s2s specification 5 years ago
Travis Ralston 9364787b9c Remove stability warning 5 years ago
Matthew Hodgson b27bf59ae8
Merge pull request #1838 from aaronraimist/spell-check
Fix several spelling mistakes
5 years ago
Aaron Raimist fe7f582233
Fix several spelling mistakes
Signed-off-by: Aaron Raimist <aaron@raim.ist>
5 years ago
Travis Ralston 9923584c24
Merge pull request #1834 from matrix-org/travis/misc/event-formats
Represent event format changes more clearly in the spec
5 years ago
Travis Ralston 222957157f Add missing required flags 5 years ago
Travis Ralston 1d0156ad78 Fix more titles 5 years ago
Travis Ralston 985d02d95e Fix titles in schemas 5 years ago
Travis Ralston 82bed06d3f The event *format* changes, not the version 5 years ago
Travis Ralston f5134b2d8b
Merge pull request #1819 from matrix-org/neilj/msc-remove-presence-lists
MSC:1819 Remove Presence Lists
5 years ago
Travis Ralston 1cf9086c26
Merge pull request #1831 from matrix-org/travis/msc/wk-before-srv
MSC1831: Change the order of .well-known and SRV discovery techniques
5 years ago
Travis Ralston 890fb1a019 Fix examples for new schema
Fix missed example in make_join

Fix state array in response of send_join

Try removing examples from send_join?

Try printing more information about the error

Copy/paste known working examples

Try schema definitions in the response?
5 years ago
Travis Ralston 5d8fa65e6e De-duplicate state keys 5 years ago
Travis Ralston 33406e4662 Apply event format warnings to the remainder of the s2s spec 5 years ago
Travis Ralston d94a70f49d Warn clients about changes in event format 5 years ago
Travis Ralston 9b214ec16d Make the backfill response aware of event format changes 5 years ago
Travis Ralston e27c83d9f8
Merge pull request #1817 from matrix-org/neilj/remove_presence_lists
remove references to presence lists
5 years ago
Travis Ralston 41e50d553e
Merge pull request #1830 from matrix-org/travis/spec/x509-wk
Specify .well-known s2s discovery and X.509 validation
5 years ago
Travis Ralston 6421582bf2 Clarifications and alter the error handling of .well-known
Note that MSC1831 changes the order, so the changes to MSC1708 might not make sense when combining all the proposals together. However, independently the change should make sense.
5 years ago
Richard van der Hoff 39b71413be
Update specification/server_server_api.rst
Co-Authored-By: turt2live <travpc@gmail.com>
5 years ago
Travis Ralston 1c30f5eba9 Clarify certificate usage and ports 5 years ago
Travis Ralston df01acc6e2
Merge pull request #1828 from matrix-org/travis/spec/rooms-v3
Add specification for room version 3: Event IDs as hashes
5 years ago
Travis Ralston a6243da03f Wording changes and links 5 years ago
Travis Ralston 48912a7320 Fix auth rules of redactions in v3 5 years ago
Travis Ralston ad64af3f01 Clarify how reference hashes are done 5 years ago
Travis Ralston 01556e5b17 Clarifications and bug fixes in how v3 rooms work 5 years ago
Travis Ralston 3c17a0e53b Mention caching 5 years ago
Travis Ralston b971bcee7d Accurately represent the 3 proposals and provide more detail 5 years ago
Travis Ralston fb36757869
Merge pull request #1833 from matrix-org/travis/misc/domain-security
Document domain reuse concerns
5 years ago
Travis Ralston 48e4d6e412 Document domain reuse concerns
Fixes https://github.com/matrix-org/matrix-doc/issues/1783
5 years ago
Travis Ralston 0f3aa3fa8a
Merge pull request #1829 from matrix-org/travis/spec/c2s-caps
Specify how capabilities work in the c2s API
5 years ago
Travis Ralston d2f012f4ea Incorporate MSC1831
Original proposal: https://github.com/matrix-org/matrix-doc/pull/1831

Implementation proof: pending
5 years ago
Travis Ralston 00de03bddb Merge remote-tracking branch 'origin/travis/msc/wk-before-srv' into travis/msc/wk-before-srv 5 years ago
Travis Ralston 2fe6b2cb5c Plagiarize from richvdh for a better explanation 5 years ago
Travis Ralston ab7876cbef
Update 1831-srv-after-wellknown.md 5 years ago
Travis Ralston 0e90cf6a0c Proposal to change the order of .well-known and SRV discovery techniques 5 years ago
Travis Ralston c888f3f080 Make example strings more legible 5 years ago
Travis Ralston 0347e873ef Specify .well-known s2s discovery and X.509 validation
Original proposals:
* https://github.com/matrix-org/matrix-doc/pull/1708 (note: the JSON requirements were softened by https://github.com/matrix-org/matrix-doc/pull/1824)
* https://github.com/matrix-org/matrix-doc/pull/1711

Implementation proofs:
* https://github.com/matrix-org/synapse/pull/4489
* No explicit PRs for MSC1711 could be found, however Synapse is known to implement it.

There are no intentional changes which differ from the proposals in this commit, however the author has relied upon various historical conversations outside of the proposals to gain the required context. Inaccuracies introduced by the author are purely accidental.
5 years ago
Travis Ralston 9193d57dfd full stop 5 years ago
Travis Ralston ccce6c196d Specify how capabilities work in the c2s API
Original proposals:
* https://github.com/matrix-org/matrix-doc/pull/1753
* https://github.com/matrix-org/matrix-doc/pull/1804

Implementation proof:
* https://github.com/matrix-org/synapse/pull/4472
* https://github.com/matrix-org/matrix-js-sdk/pull/830

There is one change to MSC1753 which is included in this commit. MSC1804 remains unchanged. In the original proposal, the change password capability being present was an indication that password changes were possible. It was found that this doesn't really communicate the state very well to clients in that lack of a capability (or a 404, etc) would mean that users would erroneously not be able to change their passwords. A simple boolean flag was added to assist clients in detecting this capability.
5 years ago
Travis Ralston 72a2871021
Merge pull request #1804 from matrix-org/travis/msc/room-version-client-advertising
MSC1804: Advertising capable room versions to clients
5 years ago
Travis Ralston ff75996524 Add specification for room version 3: Event IDs as hashes
Original proposal: https://github.com/matrix-org/matrix-doc/pull/1659
Implementation proofs (some traversing of the PR tree may be required to get all of them):
* https://github.com/matrix-org/synapse/pull/4483
* https://github.com/matrix-org/synapse/pull/4499

This doesn't intentionally change anything from the proposal.

**Implementation details**:

The simple part of this is the introduction of a rooms/v3.html document. The somewhat unclear part is the stuff done to the s2s definitions. This pulls `unsigned_pdu` out to `unsigned_pdu_base` (all fields except `event_id`) where it can be reused in `pdu` and `pdu_v3` (for rooms v3). These definitions are further moved into the room version specifications where they can highlight the exact schemas in detail.

Version 1 has been updated to include the pre-existing event format, however the core principles of the room have not been changed. The same applies to room version 2. Room versions have immutable core principles once in the spec, otherwise these format changes would land in a pre-existing version.

The client-server API event formats will need updating, however that is being punted to a different commit to try and keep these changes reviewable.
5 years ago
Travis Ralston 4437c383bb
Merge pull request #1790 from matrix-org/travis/spec/login-redirect
Add a mechanism for redirecting clients after login
5 years ago
Erik Johnston 1c0742ed6a
MSC 1659 Proposal: Change Event IDs to Hashes (#1659) 5 years ago
Hubert Chathi ca0baa54df various fixes
- fix typo
- make property name plural since it may contain multiple items
- mention that users will appear in sync when they upload keys
5 years ago
Neil Johnson afd399d7d4 remove unused schema defs 5 years ago
Neil Johnson 2eae933ed6 hard wrap to 80 chars 5 years ago
Neil Johnson 4f13f5289e
Update 1819-remove-presence-lists.md
Add references to exactly what this proposal would remove
5 years ago
Richard van der Hoff 5151aa0aa7
Update proposals/1819-remove-presence-lists.md
Co-Authored-By: neilisfragile <neil@matrix.org>
5 years ago
Neil Johnson c09fa6845e
Update presence.rst 5 years ago
Travis Ralston d2b35e5150
Merge pull request #1821 from matrix-org/travis/spec/rver-make-memberships
Specify the room_version response property on /make_{leave|join}
5 years ago
Travis Ralston 2c3ba0b135
Merge pull request #1813 from matrix-org/erikj/make_membership_room_ver
MSC 1813 - Federation Make Membership Room Version
5 years ago
Travis Ralston 00adfdbf4a
Merge pull request #1820 from matrix-org/travis/spec/fed-v2-invite
Specification for v2 s2s invite API
5 years ago
Erik Johnston c0039c30f2
Minor wording changes from code review
Co-Authored-By: turt2live <travpc@gmail.com>
5 years ago
Andrew Morgan 3374d22b52
Merge pull request #1823 from matrix-org/anoa/majority_update
75% majority now required for FCP
5 years ago
Richard van der Hoff de57d3950f
Relax the requirement for a content-type on .well-known (#1824)
The main reason for this is that Apache etc won't stick a content-type on by
default, because they don't know it's JSON, so requiring it seems like it will
require unnecessary hoop-humping for everyone who wants to use a .well-known.
5 years ago
Andrew Morgan 0712fd36a2 75% majority now required for FCP 5 years ago
Travis Ralston d12593feea Specify the room_version response property on /make_{leave|join}
Original proposal: https://github.com/matrix-org/matrix-doc/pull/1813
Implementation proof: https://github.com/matrix-org/synapse/pull/4447

There are no changes from the original proposal.
5 years ago
Travis Ralston aca9437bf3 Specification for v2 s2s invite API
Original proposal: https://github.com/matrix-org/matrix-doc/pull/1794
Implementation proofs:
* https://github.com/matrix-org/synapse/pull/4402
* https://github.com/matrix-org/synapse/pull/4496

There are no changes from the original proposal.
5 years ago
Neil Johnson 9f517f33ce
Create 1819-remove-presence-lists.md 5 years ago
Neil Johnson ed68f940cd towncrier 5 years ago
Neil Johnson bf2b6e6daa remove references to presence lists 5 years ago
Matthew Hodgson a358e2d4d8 rst 5 years ago
Richard van der Hoff 9f443225ac fix incorrect spelling of homeserver 5 years ago
Travis Ralston 577edeb53b Say that !stable == unstable 5 years ago
Travis Ralston 6c7eea555a
Merge pull request #1773 from matrix-org/travis/spec/rooms
Add a room version specification
5 years ago
Travis Ralston 84a4ca62c3
Merge pull request #1786 from matrix-org/travis/spec/exp-caps
Add support for unstable feature advertising via /versions
5 years ago
Travis Ralston 052d68d83d
Merge pull request #1791 from matrix-org/travis/spec/rver-upgrades
Add room version upgrades
5 years ago
Travis Ralston 413bfaeb68 Add clarification that clients shouldn't use unstable things as stable 5 years ago
Travis Ralston 061f59547a Minor wording changes 5 years ago
Hubert Chathi 5cafcd103f
Fix copyright
> Since this is a copy-and-paste of old text, I think the copyright year should match when the original text was written, which according to git was 2017.

Co-Authored-By: turt2live <travpc@gmail.com>
5 years ago
Travis Ralston 50eba23669 Update MSC to match how room versions work
As per 1773.
5 years ago
Travis Ralston 0dfc64a9f4 Improve wording 5 years ago
Travis Ralston bd5e760a0d Simplify the description for room versions
Instead of trying to describe maturity, stability, and recommendedness in one list we should describe what is "safe" and "unsafe" to use. The default version is just something that servers should use, and is normally going to be stable.
5 years ago
Erik Johnston 3ec3adbc24 Proposal for add room_version to make_* fed APIs 5 years ago
Travis Ralston f308871ed9
Merge pull request #1794 from matrix-org/erikj/fed_invite_v2
MSC 1794 - Federation v2 Invite API
5 years ago
Hubert Chathi 41c14c9e7d
uhoreg tweaks
Co-Authored-By: ara4n <matthew@arasphere.net>
5 years ago
Matthew Hodgson 20b9a33b12 clarify 100% threshold for new spec core team additions 5 years ago
Hubert Chathi ebe887d931
Grammar
Co-Authored-By: turt2live <travpc@gmail.com>
5 years ago
Hubert Chathi f4fe318a85 update with user-signing and self-signing keys 5 years ago
Matthew Hodgson 86703ef952
Merge branch 'master' into matthew/msc1779 5 years ago
Matthew Hodgson 3b86fa0e3c incorporating delph & vdh reviews 5 years ago
Travis Ralston ba37f2d311 prompt->advertise 5 years ago
Travis Ralston 19e94815f9 Try and improve the understanding of room versions 5 years ago
Travis Ralston 0dde2489b6 Clarify what a Mandatory room version is 5 years ago
Travis Ralston 96d754f429 promote -> prompt 5 years ago
Travis Ralston a6f5d01586 Clarify that servers don't have to implement development/beta versions 5 years ago
Travis Ralston f5fa7e5924 Change wording to encourage servers to make reasonable decisions 5 years ago
Travis Ralston 2457438f1e Encourage servers to transfer whatever they can while being open-ended 5 years ago
Travis Ralston 4e0533a5f3 Soften UX requirements 5 years ago
Travis Ralston ecca4a049b
Merge pull request #1806 from matrix-org/travis/misc/fix-c2s-changelog
Clarify that changelog entries end with a full stop
5 years ago
Travis Ralston 5f12419afb Clarify that changelog entries end with a full stop 5 years ago
Travis Ralston fcc26d247e
Merge pull request #1789 from matrix-org/travis/spec/sso-login
Add a generic SSO login API
5 years ago
Travis Ralston 82ee3a6035 Adjust wording for SSO introduction 5 years ago
Travis Ralston 853d7ede30 Clarify the categories and the interaction between them 5 years ago
Travis Ralston 5da17d0114 Remove recommendation for clients to respect the spec over the server 5 years ago
Travis Ralston 7fee7373ea Proposal for advertising capable room versions to clients 5 years ago
Travis Ralston 166d4ada86 Fix room versions reference in appendices & s2s spec 5 years ago
Travis Ralston 3b47a5924b Remove extraneous changelog 5 years ago
Travis Ralston 71e6321f4d Rework how room versions are represented
Versions are actually on a scale of recommendations, and are expected to be created as needed. The scale presented here (develop/beta/default/recommended/mandatory) is a more wordy version of what was previously discussed/intended for room versions - the labels aren't final and may be changed.
5 years ago
Travis Ralston aeb524ef89 Remove CAS login and reference it against r0.4.0
The SSO module should cover what CAS provides, and r0.4.0 is good as a reference for how CAS could be implemented without us repeating it here.
5 years ago
Matthew Hodgson 80b9c83cce clarify dual-hatted guardians & spec core teamistas 5 years ago
Matthew Hodgson 8f4e1d9686 clarify guardian selection wording 5 years ago
Matthew Hodgson cc6b6ea021 clarify wording for trojan horsen 5 years ago
Matthew Hodgson 822d84e50c append fullstops to lists to make vdh happy 5 years ago
Matthew Hodgson 6ff0155a32 s/responsibilities/functions 5 years ago
Richard van der Hoff 9e435d6dab
scifi IANA
Co-Authored-By: ara4n <matthew@arasphere.net>
5 years ago
Brendan Abolivier 749b1777fa Propose a backward-compatible option instead of an incompatible one 5 years ago
Richard van der Hoff ebf37178b5
Update proposals/1794-federation-v2-invites.md
Co-Authored-By: erikjohnston <erikj@jki.re>
5 years ago
Travis Ralston fe4928c6a1
Merge pull request #1708 from matrix-org/rav/proposal/well-known-for-federation
MSC1708: .well-known support for server name resolution
5 years ago
Erik Johnston b90ee6baab 'invite_room_state' should be an array 5 years ago
Hubert Chathi c88c9c2941
Update proposals/1794-federation-v2-invites.md
Co-Authored-By: erikjohnston <erikj@jki.re>
5 years ago
Matthew Hodgson 811e65a4d1 kitsune review on when to add things to the spec 5 years ago
Matthew Hodgson 70be8393a3 clarify the technical note and guiding principles 5 years ago
Matthew Hodgson a38e1e6adf incorporate kitsune & dbkr review 5 years ago
Kitsune Ral 2f20679db5
deanonymise kitsune
Co-Authored-By: ara4n <matthew@arasphere.net>
5 years ago
Matthew Hodgson 09813fc3a0 improve wording around compensation for team members.
tweak Greater Benefit (particularly adding SnR and filtering goals
5 years ago
Brendan Abolivier d318ff95f3 MSC1802: Standardised federation response formats 5 years ago
Travis Ralston 87bb1a6a79
Merge pull request #1711 from matrix-org/rav/proposal/x509-for-federation
MSC1711: X.509 certificate verification for federation connections
5 years ago
Matthew Hodgson f3085812e9 more examples; remove widget MSC ref 5 years ago
Matthew Hodgson 156488384c add more examples for spec inclusion; add interoperability as a core value 5 years ago
Matthew Hodgson ddc3921318 un-todo code core team responsibilities 5 years ago
Matthew Hodgson d00a5eba93 consistent tenses 5 years ago
Hubert Chathi cccd62f035
grammar
Co-Authored-By: ara4n <matthew@arasphere.net>
5 years ago
Matthew Hodgson 107d96c50e spell out consensus ftw 5 years ago
Matthew Hodgson b758ceea5b add erik's quorum 5 years ago
Hubert Chathi ed820ca27b
s/core spec team/Spec Core Team/
Co-Authored-By: ara4n <matthew@arasphere.net>
5 years ago
Matthew Hodgson e584ae31f4 fix missing words 5 years ago
Matthew Hodgson 265a3dc49b clarify removing members 5 years ago
Matthew Hodgson 21a781b1d2 fix proprietary wording 5 years ago
Matthew Hodgson edaf3596f4 fix 'which features should go in the spec?' TODO and reword intro 5 years ago
Matthew Hodgson c053996a77 add new technical guidelines to proposals.rst
this was originally a todo for MSC1779, but belongs better in proposals.rst
5 years ago
Andrew Morgan be7a5012f8
Merge pull request #1798 from matrix-org/anoa/sticky_headers_fix
Fix sticky headers so they don't hide behind header bar on desktop
5 years ago
Andrew Morgan b7b96833d0 Fix sticky headers so they don't hide behind header bar on desktop 5 years ago
Richard van der Hoff 6e8739c989
Fix typo
Co-Authored-By: turt2live <travpc@gmail.com>
5 years ago
Erik Johnston 2109314c52
Apply suggestions from code review
Co-Authored-By: erikjohnston <erikj@jki.re>
5 years ago
Travis Ralston 576aa22880
Merge pull request #1704 from matrix-org/travis/msc/matrix.to-permalinks
MSC1704: Adding ?via= to matrix.to permalinks to help with routing
5 years ago
Richard van der Hoff afa0caee93 remove lying footnote 5 years ago
Erik Johnston b0adfc67d8 MSC 1794 - Federation v2 Invite API 5 years ago
Erik Johnston 1ea03da9b6 Add .vscode to .gitignore 5 years ago
Travis Ralston 5cbfafaab7 Fix link to module 5 years ago
Travis Ralston 56bfa76765 changelog 5 years ago
Travis Ralston b85f7bb248 Add room version upgrades
Implements https://github.com/matrix-org/matrix-doc/issues/1501
5 years ago
Matthew Hodgson 0380270171 spell out that hypothetical employees could come in any size 5 years ago
Travis Ralston fbd8861180 Changelog 5 years ago
Travis Ralston 510468a3b1 Changelog 5 years ago
Travis Ralston b067d671fb
Merge pull request #1784 from matrix-org/travis/msc-process/wip-tag
Recommend some kind of WIP tag for MSCs
5 years ago
Travis Ralston 0eabf108d9 Add a mechanism for redirecting clients after login
Implements https://github.com/matrix-org/matrix-doc/pull/1730
5 years ago
Travis Ralston d6c33ea0a5 Make CAS a subset of SSO 5 years ago
Andrew Morgan 59196bfd79
Merge pull request #1788 from matrix-org/anoa/proposals_sticky_headers
Sticky headers for proposals page
5 years ago
Andrew Morgan f738f671d1 Sticky headers for proposals page 5 years ago
Andrew Morgan ec97e1eedb
Merge pull request #1753 from matrix-org/rav/proposal/cs_capabilities
MSC1753: client-server capabilities API
5 years ago
Richard van der Hoff c10394d03f Clarifications thanks to @uhoreg 5 years ago
Travis Ralston 3e7a5f5ea4 Initial draft for SSO support 5 years ago
Hubert Chathi 09a547d67e add some cancellation codes, and mention existing verification MSCs 5 years ago
Hubert Chathi 38689a8215 add information about interacting with key requests and define cancellation codes 5 years ago
Hubert Chathi ff0b9eac76 add ability to start verifications that happen in two stages 5 years ago
Hubert Chathi c02ecb58ae mark which fields are required 5 years ago
Hubert Chathi 3b0073a9d1 allow for multiple keys to be verified, for cross-signing 5 years ago
Hubert Chathi ba39779375 add a conclusion 5 years ago
Hubert Chathi 517754bada use common key verification message types as per MSC1717 5 years ago
Matthew Hodgson 3a5d56467b reword lead renewals 5 years ago
Matthew Hodgson 2377a944c6 Merge branch 'matthew/msc1779' of git+ssh://github.com/matrix-org/matrix-doc into matthew/msc1779 5 years ago
Matthew Hodgson 5235293623 spell out the Core Team a bit more 5 years ago
Erik Johnston 0e246b1477
Update proposals/1779-open-governance.md
Co-Authored-By: ara4n <matthew@arasphere.net>
5 years ago
Matthew Hodgson c05000b38d broaden reasons for dysfunctional core spec teams 5 years ago
Matthew Hodgson 2047ba59da spell out domain spread requirement for spec core team 5 years ago
Matthew Hodgson 103d2f4ed2 clarify that the project lead doesn't have casting vote 5 years ago
Matthew Hodgson e730cc02a9 specify how to select a new spec core team lead 5 years ago
Matthew Hodgson 7831c04e4c clarify sytest responsibilities 5 years ago
Matthew Hodgson 4fcd38a3a0 clarify guardians' right to override spec core team membership 5 years ago
Matthew Hodgson 4994fa115e X=75 5 years ago
Richard van der Hoff b541c2a247 more formatting 5 years ago
Richard van der Hoff 5812450299 spec that we follow redirects 5 years ago
Richard van der Hoff f1ebbc358b document dismissed options 5 years ago
Richard van der Hoff fb171cadf4 formatting fix 5 years ago
Richard van der Hoff 12fc50cea7 clarify that a whitelist is useful for cjdns too 5 years ago
Richard van der Hoff f33a540e6d Do a SRV lookup before .well-known lookup
also other clarifications and corrections.
5 years ago
Travis Ralston 75c084e987 changelog 5 years ago
Richard van der Hoff 74b2db7937 Remove .well-known section
This really belongs in MSC1708.
5 years ago
Richard van der Hoff 367f61f14a cleanups and clarifications 5 years ago
Travis Ralston ccc1cdaead Add support for unstable feature advertising via /versions
Incorporates https://github.com/matrix-org/matrix-doc/issues/1497
5 years ago
Travis Ralston bc1303a1a0
Add a bit of rationale for WIP tags 5 years ago
Travis Ralston 671527360c
Recommend some kind of WIP tag for MSCs 5 years ago
Travis Ralston 258aba5fed Incorporate MSC1693
This is largely blatant copy/paste from the MSC with some formatting done to tidy it up a bit.
5 years ago
Matthew Hodgson b824906709 typoes 5 years ago
Matthew Hodgson de6a8b20ff grammar 5 years ago
Matthew Hodgson c073adac9b incorporate review from #1318 5 years ago
Matthew Hodgson e6fb403dd0 add TODO for clarifying features v. extensions 5 years ago
Matthew Hodgson 303e1081f8 unbreak wordwrap 5 years ago
Matthew Hodgson 4538745809 MSC1779: Open Governance for Matrix.org 5 years ago
Matthew Hodgson bd72ecfa58 oops, wrong branch 5 years ago
Matthew Hodgson c5de71843a MSC1779: Open Governance for Matrix.org 5 years ago
Matthew Hodgson 1bbe638927 typo 6 years ago
Matthew Hodgson 54bf339ae8 typo 6 years ago
Matthew Hodgson 88ff3de28a spell out deps 6 years ago
Matthew Hodgson 010246ea6d typo 6 years ago
Matthew Hodgson 19e94203fa flesh out state events split per state-key for defining groups 6 years ago
Matthew Hodgson cd5a8420a8
flesh out how flair could work 6 years ago
Travis Ralston ffe577371d Add a room version specification
The "Room Specification" (or "Room Version Specification") is the specification that defines which room versions do what and are intended to be documents which speak the truth about how rooms operate under the hood.

The approach taken here is a bit different than other specifications. For starters, the specification is versioned in this project instead of relying on the matrix.org repository to track compiled HTML. This is done for a couple reasons, the first being we're still developing the v1 specification while concurrently making a v2 spec and the second being trying to reduce the reliance on matrix.org's repository for specifications.

Because the room spec is built into versions, some changes needed to be made. The `targets.yaml` now has a special syntax for indicating what version something is at, and the changelog generator can handle rendering different versions of the same changelog (as parsed from the RST). Some additional work has been put in to the changelog parsing to allow us to reference the v1 room spec as "v1" without having to sacrifice clarity in the changelog headings.

Finally, this moves the state resolution algorithms into the versioned
spec as a result of MSC1759 (https://github.com/matrix-org/matrix-doc/pull/1759).

Note: this does not introduce the concept of versioned schemas (tabs) that I was previously working with. There's currently no use for them, so they are shelved elsewhere.
6 years ago
Matthew Hodgson e00eff567a add thought about splitting events 6 years ago
Matthew Hodgson 43ae6ad7c1 md 6 years ago
Matthew Hodgson a884fd8772 wordwrap fix 6 years ago
Matthew Hodgson 1e81fbd2d8 md 6 years ago
Matthew Hodgson 346f7ac113 add hyperlinks 6 years ago
Matthew Hodgson 6c499db3ba WIP groups as rooms MSC 6 years ago
Richard van der Hoff e0fa00fc34 Some HSes use more than one notary 6 years ago
Travis Ralston ca2e9260d4
Update proposals/1753-capabilities.md
r0/versions isn't a thing

Co-Authored-By: richvdh <1389908+richvdh@users.noreply.github.com>
6 years ago
Travis Ralston 4019678661
Update proposals/1753-capabilities.md
r0/versions isn't a thing

Co-Authored-By: richvdh <1389908+richvdh@users.noreply.github.com>
6 years ago
Travis Ralston 962565b159
Update proposals/1753-capabilities.md
r0/versions isn't a thing

Co-Authored-By: richvdh <1389908+richvdh@users.noreply.github.com>
6 years ago
Richard van der Hoff 7f5832044c Fix typos per review 6 years ago
Richard van der Hoff 8f1291a3e7
Merge pull request #1758 from QMatrixClient/kitsune/lazy-loading
Spec lazy_load_members and include_redundant_members
6 years ago
Andrew Morgan d9135ef902
Merge pull request #1598 from matrix-org/rav/proposals/id_grammar
MSC 1597: Better spec for matrix identifiers
6 years ago
Andrew Morgan f714aaadd0
Merge pull request #1693 from matrix-org/erikj/state_res_rejections
MSC1693: Specify how to handle rejected events in new state res
6 years ago
Andrew Morgan e7c6670c06
Merge pull request #1759 from matrix-org/erikj/rooms_v2
Room v2 proposal
6 years ago
Kitsune Ral 8c80669d7a Add the paragraph for sync.yaml forgotten in the previous commit 6 years ago
Richard van der Hoff 82f3b8a95a switch to GET 6 years ago
Richard van der Hoff 68ac2172ba Give examples of applications 6 years ago
Travis Ralston f767227e31
Merge pull request #1744 from matrix-org/travis/m.presence
Add missing status_msg to m.presence schema and example
6 years ago
Richard van der Hoff 958b956776
Merge pull request #1755 from matrix-org/erikj/event_checks
Document the checks made for incoming PDUs
6 years ago
Erik Johnston 8fb2bd2927 Fix typo 6 years ago
Hubert Chathi c0b0db9a55 document alternate API, and some other clarifications 6 years ago
Hubert Chathi d9eddcf7df change language to json in code blocks 6 years ago
Hubert Chathi e9aa4081bc fix sectioning and add a background 6 years ago
Travis Ralston 35de43de61
Merge pull request #1743 from matrix-org/dbkr/add_sandbox_to_csp
Add 'sandbox' to recommended CSP header
6 years ago
Erik Johnston 23c7533f8d Room v2 proposal 6 years ago
Richard van der Hoff 3fda4a3989
Merge pull request #1748 from matrix-org/rav/proposal/cs_api_in_login
MSC1730: Mechanism for redirecting to an alternative server during login (version 2)
6 years ago
Richard van der Hoff a451e007a4 Fix labels in proposals script 6 years ago
Hubert Chathi 2d3b5f4481 make text consistent with image 6 years ago
Hubert Chathi f3997cd09e graphviz-ify graphs and add some more structure 6 years ago
Erik Johnston 39df8291e9 Add TODO 6 years ago
Erik Johnston be625254b1 Fix up wording about auth rules to not lie 6 years ago
Erik Johnston c93bdcc59c Fix up headings 6 years ago
Richard van der Hoff cac150d567
Fix up wording
Co-Authored-By: erikjohnston <erikj@jki.re>
6 years ago
Erik Johnston 39f7c77971 Add dot for image file 6 years ago
Richard van der Hoff b95d5724a4 Add suggestion of returning a 401 for non-/login requests 6 years ago
Erik Johnston 48d271e58c Clarifications 6 years ago
Hubert Chathi de11738210 rename to match PR 6 years ago
Hubert Chathi d90aeda658 draft of alternate proposal for cross-signing 6 years ago
Richard van der Hoff 7fa2db4fe8
Merge pull request #1754 from matrix-org/rav/fix_proposal_states
Make the proposal labels match what happens in practice
6 years ago
Erik Johnston ee9c010c37 Document the checks made for incoming PDUs 6 years ago
Erik Johnston 463c71af82 Add a note about the examples 6 years ago
Erik Johnston b695eb0d17 Clarify example 6 years ago
Richard van der Hoff fa0b4f9e13 Make the proposal labels match what happens in practice 6 years ago
Erik Johnston bc9d205079 Make lines bold 6 years ago
Richard van der Hoff 0e156faaf1 MSC1753: client-server capabilities API 6 years ago
Travis Ralston 0f7e285f15
Merge pull request #1751 from QMatrixClient/kitsune/contains_url_default
Describe the actual implication of omitting contains_url
6 years ago
Kitsune Ral 1639f27ec5 Describe the actual implication of omitting contains_url
Closes #1750

Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Travis Ralston f7c7a74092 Revert "Merge pull request #1747 from matrix-org/revert-1730-rav/proposal/cs_api_in_login"
This reverts commit e30543a3fe.
6 years ago
Travis Ralston 828e3f83bd Merge branch 'm.org-master' into rav/proposal/cs_api_in_login 6 years ago
Travis Ralston e30543a3fe
Merge pull request #1747 from matrix-org/revert-1730-rav/proposal/cs_api_in_login
Revert "MSC1730: Mechanism for redirecting to an alternative server during login"
6 years ago
Travis Ralston 6dab287708
Revert "MSC1730: Mechanism for redirecting to an alternative server during login" 6 years ago
Travis Ralston a4bc79025b
Merge pull request #1730 from matrix-org/rav/proposal/cs_api_in_login
MSC1730: Mechanism for redirecting to an alternative server during login
6 years ago
Travis Ralston 9aff2583c5
Merge pull request #1745 from jryans/encrypted-rule-clarify
Clarify encrypted push rules
6 years ago
J. Ryan Stinnett d197a5761f Clarify encrypted push rules
Fix `.m.rule.encrypted_room_one_to_one` by moving a condition to the right block
of the rule.

Fix `.m.rule.encrypted` to state that it applies to group rooms.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
6 years ago
Erik Johnston a8bd2f32fd Update example 6 years ago
Erik Johnston 8a3e7b751c Add missing apostrophe 6 years ago
Richard van der Hoff 7782781442
Update wording to be betterer
Co-Authored-By: erikjohnston <erikj@jki.re>
6 years ago
Richard van der Hoff 612d8a66ef
Update proposals/1442-state-resolution.md
Co-Authored-By: erikjohnston <erikj@jki.re>
6 years ago
Richard van der Hoff f06455479d
Update proposals/1442-state-resolution.md
Co-Authored-By: erikjohnston <erikj@jki.re>
6 years ago
Richard van der Hoff 539ca4cf15
Update proposals/1442-state-resolution.md
Co-Authored-By: erikjohnston <erikj@jki.re>
6 years ago
Richard van der Hoff c581c6132e
Update proposals/1442-state-resolution.md
Co-Authored-By: erikjohnston <erikj@jki.re>
6 years ago
Richard van der Hoff eaaf36edf7
Update proposals/1442-state-resolution.md
Co-Authored-By: erikjohnston <erikj@jki.re>
6 years ago
Kitsune Ral 6d0def8b4c Spec lazy_load_members and include_redundant_members
Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Travis Ralston 7461cd7f68
Add changelog 6 years ago
Travis Ralston 1268b421ec
Update the m.presence schema to include status_msg 6 years ago
Travis Ralston f78bb72be8
Add status_msg to m.presence example 6 years ago
David Baker e318286404 Add 'sandbox' to recommended CSP header 6 years ago
Erik Johnston 6c9a433805 Add example of rejected events getting into state 6 years ago
Erik Johnston 55ebf7dc32
MSC 1466 - Soft Logout (#1467) 6 years ago
Richard van der Hoff 6f7b3198fb fix list which got lost in merge 6 years ago
Richard van der Hoff 275e516f93 Rename svg file to bust cache
github is serving up the old file for some reason
6 years ago
Richard van der Hoff a9c4ea690d Merge branch 'rav/msc1730/work' into rav/proposal/cs_api_in_login 6 years ago
Richard van der Hoff 9c9c5a8c65 more alternatives 6 years ago
Richard van der Hoff 57421cc59b attempt to clarify MSC1730 6 years ago
Ben Parsons 16f17855c9 link to CS API Swagger Viewer 6 years ago
Ben Parsons 43109a717f placeholder for proposals CSS 6 years ago
Andrew Morgan 1e9a7d968b
Merge pull request #1721 from matrix-org/rav/proposal/sso_login
MSC1721: Rename m.login.cas to m.login.sso
6 years ago
Richard van der Hoff 6fa754c447
Tradeoffs->rejected solutions
because apparently this was somehow confusing
6 years ago
Richard van der Hoff 94d83c0483 Update based on feedback
Mostly this is clarification of the problem domain; it also updates some of the
discussion points to reflect my current thinking.
6 years ago
Travis Ralston 6dd2120337
Merge pull request #1729 from QMatrixClient/kitsune/filling-spec-gaps
joining.yaml: add missing response schema details
6 years ago
Richard van der Hoff a39189c08b Update proposal
Notes on problems, workaround, and another alternative
6 years ago
Richard van der Hoff 6f2c2b2c7e MSC1730: Mechanism for redirecting to an alternative server during login 6 years ago
Kitsune Ral 6782b6399f
Update according to the comments 6 years ago
Richard van der Hoff b5a82a5eb1
no need to rename ticket endpoint 6 years ago
Kitsune Ral 96d7eed1c6 joining.yaml: add missing response schema details 6 years ago
Richard van der Hoff 0c4b09305e Proposal to rename m.login.cas to m.login.sso 6 years ago
Hubert Chathi 2b58052555 add note about re-requesting megolm keys 6 years ago
Hubert Chathi 495df02da6 we don't actually know which session got stuck, so rate-limit by device 6 years ago
Hubert Chathi d0bfdc13af rename to match MSC number 6 years ago
Hubert Chathi b535226d40 initial work on documenting olm unwedging 6 years ago
Hubert Chathi b45cf4483f providing an alternative to key sharing is currently a non-goal 6 years ago
Hubert Chathi 2dce23564f wording fixes 6 years ago
Travis Ralston ef33c175b5
Merge pull request #1718 from uhoreg/fix_proposal_heading
make heading level for "Security considerations" match the other headings
6 years ago
Hubert Chathi 58091fa3fe make heading level for "Security considerations" match the other headings
as much as I like that "Security considerations" gets to be bigger than the
other headers, we should probably make it consistent
6 years ago
Hubert Chathi ec2e02e8b5 rename to match MSC number 6 years ago
Hubert Chathi 8521c2d696 initial proposal for key verification methods 6 years ago
Richard van der Hoff e789eb186a link to MSC1711 6 years ago
Matthew Hodgson b1e79ac7ab
Update 1708-well-known-for-federation.md 6 years ago
Richard van der Hoff bc29015514
fix typo 6 years ago
Richard van der Hoff f9cf99f1fd
typo 6 years ago
Richard van der Hoff 6a3d68b7ed
Merge pull request #1712 from matrix-org/rav/update_issue_list
Change the labels the proposals list looks for
6 years ago
Richard van der Hoff 926cfe4f75 Change the labels the proposals list looks for
This is slightly complicated by the `proposal-wip` label going away, and
becoming implicit
6 years ago
Richard van der Hoff efc8056fb6 fix a couple of broken links 6 years ago
Richard van der Hoff f30e685112 proposal for requiring signed certs for federation 6 years ago
Richard van der Hoff 767af87744
Merge pull request #1701 from uhoreg/e2e_export
document megolm session export format
6 years ago
Richard van der Hoff 09d41464e7 Add problems section
xs
6 years ago
Richard van der Hoff c4e1949cf8 Clarifications about what `server` means 6 years ago
Hubert Chathi 189725659a clarifications and formatting fixes 6 years ago
Hubert Chathi 1be3bd602a add changelog 6 years ago
Richard van der Hoff e3f10a4fd2
Update 1708-well-known-for-federation.md
fix title
6 years ago
Richard van der Hoff 87330b9b9b Proposal for .well-known for server discovery 6 years ago
Erik Johnston a80ff2f69f Don't use rejected auth events 6 years ago
Erik Johnston b8a8d132b2 Note why convergence is desirable 6 years ago
Erik Johnston a6aab378f5 Typo 6 years ago
Erik Johnston 1f1ba28629 ACTUALLY! Let's just accept rejected events, because what's the worst that can happen?! 6 years ago
Hubert Chathi 3918ed3c38 distinguish between retrieving an empty backup and a nonexistent backup 6 years ago
Hubert Chathi 7713a0f402 snake-case for consistency 6 years ago
Erik Johnston 25fb09b991 Fix up formatting 6 years ago
Erik Johnston 40d943f584 Clarify 'auth difference' definition 6 years ago
Erik Johnston 4df346a12d Add metadata about update 6 years ago
Hubert Chathi 982abc168a add some examples 6 years ago
Hubert Chathi 7b4b4a2688 fix some English and some minor additions 6 years ago
Matthew Hodgson 179162379e spell out that shepherd cannot be author 6 years ago
Travis Ralston 017b448660
Proposal to add ?via to matrix.to permalinks 6 years ago
Erik Johnston 4271391214
Initial stab at documenting soft fail (#1641) 6 years ago
Hubert Chathi dc0dd18eeb note that version is optional for GET, and say what to do when no keys are found 6 years ago
Hubert Chathi c8eac3ee2d add details on how the encryption is done 6 years ago
Andrew Morgan f288facec8
Merge pull request #1697 from matrix-org/anoa/msc_update
The new and improved MSC process
6 years ago
Andrew Morgan f8ffa79b56 Update and clarify proposal labels 6 years ago
Richard van der Hoff 42f7a21fc8
Merge pull request #1502 from matrix-org/rav/room_upgrades
MSC 1501: Room version upgrades
6 years ago
Richard van der Hoff 21a45948ca Explain rationale for setting server_name when joining upgraded room 6 years ago
Andrew Morgan 2b259c6a7b Remove etiquette page from targets 6 years ago
Andrew Morgan 4b858a7993 DCO required for proposal and spec PR 6 years ago
Andrew Morgan 0afb122760 Clarification on FCPs 6 years ago
Andrew Morgan f00be6b0d8 Etiquette -> guiding principles 6 years ago
Hubert Chathi 9d51d1e8b7 expand the background 6 years ago
Hubert Chathi b45416e8b0 change version from string to integer, plus other minor improvements 6 years ago
Hubert Chathi 46fde9723c document megolm session export format 6 years ago
Matthew Hodgson c6e0a88b09 fix irc bridge example properly 6 years ago
Matthew Hodgson 7a86bc4a66 fix missing escapes on AS regexp 6 years ago
Andrew Morgan ea21e31a0c Merge branch 'anoa/msc_update' of github.com:matrix-org/matrix-doc into anoa/msc_update 6 years ago
Andrew Morgan 7bff4d288c be begin -> begin 6 years ago
Richard van der Hoff 14b98a0220 A couple of clarifications
- the body of the tombstone is defined by the server.
- the client can follow tombstones until it finds a live room
6 years ago
Travis Ralston b5e5a690f5 add version to example m.room.create event 6 years ago
Travis Ralston 5a2d28e7fd Reduce more abbreviations! 6 years ago
Travis Ralston 9625f11fd4 reduce abbreviations 6 years ago
Andrew Morgan d487c0974f Clarify how to get a shepherd (just ask) 6 years ago
Andrew Morgan 45c935d8d3 Clarify that MSCs aren't just issues anymore. 6 years ago
Andrew Morgan 1e939c50f5 Gather feedback 6 years ago
Andrew Morgan 748a81523c Rename proposal template to MSC #0000 6 years ago
Andrew Morgan 148f7d7b33 Minor proposal updates are allowed 6 years ago
Richard van der Hoff 97eaa189a0 A couple of minor tweaks and clarifications
Clarification about what we're doing with the `power_levels`. Restructure
slightly to fit better with the standard MSC template.
6 years ago
Andrew Morgan c430ca32af New proposal template about proposal templates about... 6 years ago
Andrew Morgan 5a1e735921 Fix sign off bullet 6 years ago
Andrew Morgan aeea060bb8 Specify where to find the MSC ID 6 years ago
Andrew Morgan 7753957d04 remove ambiguity 6 years ago
Andrew Morgan 2f0025c7a7 Fix up wording in proposal etiquette 6 years ago
Andrew Morgan 35c924308c core team -> Core Team 6 years ago
Andrew Morgan 8121bef771 Introduce the spec core team 6 years ago
Andrew Morgan c1ecb9e324 Fix up table with title and add corresponding GitHub labels 6 years ago
Andrew Morgan 889b46898c Move proposal etiquette to a separate document. 6 years ago
Andrew Morgan 49d017bdd5 your proposal -> the proposal 6 years ago
Andrew Morgan fb4c50ec8a No need to redefine MSC 6 years ago
Andrew Morgan 604091380f Attempt to fix contributing link 6 years ago
Andrew Morgan b3f90f5825 proposal passed = spec pr missing 6 years ago
Andrew Morgan 873641e4bc Proposal Created and In Review is a single phase 6 years ago
Andrew Morgan 11dbd5b56a Proposal WIP -> drafting/feedback gathering 6 years ago
Andrew Morgan 5ae3b50c6b Require link to implementation 6 years ago
Andrew Morgan f1d71bd6c4 Less complicated wording 6 years ago
Andrew Morgan 0e9ad9e95d Fix wording, fix earlier capatilization 6 years ago
Andrew Morgan f769084570 Put it in the proposals dir! 6 years ago
Andrew Morgan 67146e4bec MSC ALL the changes 6 years ago
Andrew Morgan 9432ed76d7 first-draft -> first draft 6 years ago
Andrew Morgan 80d1d4af9c Fix capatilization 6 years ago
Andrew Morgan d2e827e0c6 Note about earlier MSC process 6 years ago
Andrew Morgan 764c63f3e8 Add proposal template 6 years ago
Andrew Morgan a3144e6959 Move to the new and improved MSC process 6 years ago
Hubert Chathi de5120335f change "string or object" to just "object" 6 years ago
Hubert Chathi 72df5fe436 add details on recovery key format, and some cleanups/fixes 6 years ago
Erik Johnston 4790432e50 Update rejected events discussion 6 years ago
Erik Johnston 3d3b77ea7e Specify how to handle rejected events in new state res
It's possible for events in an an event's auth chain to be rejected due
to not having passed auth (based on the state at the time), so we need
to be explicit about how to handle that case.
6 years ago
Matthew Hodgson db4de5022b Merge branch 'master' of git+ssh://github.com/matrix-org/matrix-doc 6 years ago
Matthew Hodgson 1fc6465168 remove archaic port 8448 from matrix.org URL for swagger-ui 6 years ago
Richard van der Hoff 15eb69cc47
Merge pull request #1691 from matrix-org/rav/fix_make_join_doc
make_join and make_leave return their events under an `event` key
6 years ago
Richard van der Hoff 818b48cbbb make_leave returns an `event` field too 6 years ago
Richard van der Hoff e17dd12007 make_join returns its event under an `event` key 6 years ago
Hubert Chathi 846e9e8fdc add clarifications 6 years ago
Hubert Chathi 8777232987 various clarifications 6 years ago
Hubert Chathi 95280d8b09 switch QR code to URL, add introductory text, add clarifications, reorganize 6 years ago
Travis Ralston 16bbf46b2e
Merge pull request #1656 from turt2live/travis/s2s/simplified-pl-rules
Power levels always have a default of 50 for state_default
6 years ago
Travis Ralston e4a8fed0e8 Power levels always have a default of 50 for state_default
As per the proposal https://github.com/matrix-org/matrix-doc/issues/1304
6 years ago
Matthew Hodgson 6dab4b28f8
Merge pull request #1648 from matrix-org/matthew/device_list_update
document device list synchronisation over federation.
6 years ago
Matthew Hodgson 334c69bcda wording fix 6 years ago
Matthew Hodgson ccbc88ee5d reword to spell out to when device list updates should be sent 6 years ago
Matthew Hodgson bcd48ebbec
Merge pull request #1610 from uhoreg/reloaded
document new state resolution algorithm
6 years ago
Matthew Hodgson 8a949af23a
Merge pull request #1650 from mujx/use-example-org
Use example.org on examples instead of domain.com which is a real domain
6 years ago
Konstantinos Sideris 192a6c2ab9 Use example.org on examples instead of domain.com which is a real domain
Signed-off-by: Konstantinos Sideris <sideris.konstantin@gmail.com>
6 years ago
Matthew Hodgson ee5e519885 device list is 2 words 6 years ago
Matthew Hodgson e9e3afbd34 clarify who servers should send m.device_list_update EDUs to 6 years ago
Matthew Hodgson 9e82b18e24
Merge pull request #1649 from matrix-org/matthew/to-device
swaggerify to-device messages
6 years ago
Matthew Hodgson 928fc5cbe5 incorporate review 6 years ago
Matthew Hodgson 43f2819702 switch to travis' example 6 years ago
Matthew Hodgson 49f0a06238 experiment with additionalProperties some more 6 years ago
Matthew Hodgson f6326030ba backtick asterisk 6 years ago
Matthew Hodgson 7430c3b56f experiment with additionalProperties 6 years ago
Matthew Hodgson 337041610f one slash? 6 years ago
Matthew Hodgson b8608495e9 periods 6 years ago
Matthew Hodgson a842e0433d try escaping the asterisk 6 years ago
Matthew Hodgson 42b11e096f Review 6 years ago
Matthew Hodgson d25f4412d4 improve wording 6 years ago
Matthew Hodgson db302b66ca revert example which was corect first time; fix rst 6 years ago
Matthew Hodgson 2c0b45fd14 fix example? 6 years ago
Matthew Hodgson 0f9a23c471 swaggerify to-device 6 years ago
Matthew Hodgson 0ee2cf6286 fix device_list_update example hopefully 6 years ago
Matthew Hodgson 0afdcc59ea spell out stream_id and fix todo 6 years ago
Matthew Hodgson d377bedd76 fix path 6 years ago
Matthew Hodgson 30d56691b1 document device list synchronisation over federation.
untested
closes MSC1212
6 years ago
Matthew Hodgson d789564db7 only apply list CSS overrides to section classes 6 years ago
Travis Ralston bd78445756 Merge branch 'travis/general/changelogs' into m-master 6 years ago
Travis Ralston 735de03e07 Add r0 version links
These were missed in the release process.
6 years ago
Travis Ralston 3ba64f95e6
Merge pull request #1647 from matrix-org/client_server/release-r0.4.0
r0.4.0 release of the Client-Server specification
6 years ago
Travis Ralston 485928486a Client-server r0.4.0 changelog 6 years ago
Travis Ralston 17a6a4c2ee Merge branch 'travis/c2s/fix-changelog' into client_server/release-r0.4.0 6 years ago
Travis Ralston bb2835651f
Merge pull request #1637 from turt2live/travis/c2s/clarify-errors
List known client-server error codes; Clarify priority of error codes vs http status code
6 years ago
Travis Ralston 51883562b9
Merge pull request #1645 from matrix-org/identity_service/release-r0.1.0
Identity Service r0.1.0 release
6 years ago
Travis Ralston 680ab5e194 Misc formatting things
Consistency, make the renderer happy
6 years ago
Travis Ralston 247ae26ec4 Consistency 6 years ago
Travis Ralston d5af3bae43 This isn't a new endpoint 6 years ago
Travis Ralston 10fa5a3a01 Changelog for r0.1.0 IS spec 6 years ago
Travis Ralston 00578547c0
Merge pull request #1644 from matrix-org/rav/is_token_grammar
Spec grammars for IS things
6 years ago
Travis Ralston 30737cce96
Merge pull request #1643 from turt2live/travis/sanity/fix-naming
Fix all naming of "homeserver" and "identity server"
6 years ago
Travis Ralston f3825c5827 A couple more stragglers 6 years ago
Travis Ralston 218b86d6e8 Hopefully the last one 6 years ago
Richard van der Hoff 79974b152c s/identity service/identity server 6 years ago
Travis Ralston 2af09655ce Fix the stragglers 6 years ago
Richard van der Hoff 21f8898cd8 Merge remote-tracking branch 'origin/master' into rav/is_token_grammar 6 years ago
Richard van der Hoff a544b68298 Merge branch 'master' into rav/is_token_grammar 6 years ago
Travis Ralston 7d34995ece It's actually an "identity server implementing the Identity Service API"
Also add a note about appservices being special.
6 years ago
Travis Ralston c94f3619b7 Missed a rogue case of identity server 6 years ago
Travis Ralston 7ac76fa27c Actually we're going with "identity server" afterall 6 years ago
Travis Ralston ec248b436f Identity Service is lowercase 6 years ago
Travis Ralston cc0badaaa1 Fix all naming cases of "identity service"
Fixes https://github.com/matrix-org/matrix-doc/issues/1396

Includes some "homeserver" fixes too. This commit does not include historical documentation or notes.
6 years ago
Travis Ralston 683072e624
Merge pull request #1636 from turt2live/travis/c2s/id-server
Clean up and flesh out all three editions of the /requestToken API
6 years ago
Travis Ralston a1f655e5be Fix more error wording 6 years ago
Travis Ralston 108c623557
Merge pull request #1635 from turt2live/travis/c2s/read-markers
Add read markers
6 years ago
Richard van der Hoff 8773b9319b
Merge pull request #1599 from matrix-org/benpa/spec-tables-prettier
Benpa/spec tables prettier
6 years ago
Travis Ralston 84a2b7f3c0
Merge pull request #1632 from uhoreg/fix_room_member_state_key
fix handling of multi-line state key descriptions
6 years ago
Travis Ralston 1261da209d Fix wording for the homeserver not allowing a particular 3pid 6 years ago
Travis Ralston dfe6d0d3b8
Merge pull request #1642 from turt2live/travis/c2s/pagination
Generalize language for pagination
6 years ago
Travis Ralston 835f5de387 Generalize the token name even more 6 years ago
Richard van der Hoff cb1e687196 spec the format of an IS invite token 6 years ago
Richard van der Hoff 69c30ef156 spec the format of a client_secret 6 years ago
Richard van der Hoff dced3d5707 Notes on the format of IS session IDs and tokens 6 years ago
Travis Ralston f299fe023a English 6 years ago
Travis Ralston e49ed5d1ec Changelog 6 years ago
Travis Ralston f4c5c209f3 Generalize language for pagination
Previously the section was very strict in what pagination was, however this isn't the reality for the matrix specification. Several endpoints have their own pagination naming conventions and do not follow those mandated by this section.

This commit generalizes the language to cover those endpoints while also describing how pagination works. In particular, it describes the rough API shape to expect and how to deal with the responses.

This commit also removes the `M_BAD_PAGINATION` error as it is not used in the real world. Homeservers are instead encouraged to use the standard `M_INVALID_PARAM` or similar error code.

Fixes https://github.com/matrix-org/matrix-doc/issues/610
Fixes https://github.com/matrix-org/matrix-doc/issues/1523
6 years ago
Travis Ralston 824ce22caa Add additional clarity to the requestToken errors 6 years ago
Travis Ralston 5bb7eca8e8 English 6 years ago
Hubert Chathi c0dd7e0025
Merge pull request #1420 from Zil0/encrypted_attach
Document encrypted attachments
6 years ago
Travis Ralston 60dd9231e0 Don't explain how the IS might accept a 3pid
The IS is bound to it's own set of specifications, and if the client chose this API then they should be aware of the risks but not necessarily arbitrary alternatives.
6 years ago
Travis Ralston 63fdd72f73 Fix error description on /account/3pid/email/requestToken 6 years ago
Travis Ralston 25a461b86e
Merge pull request #1617 from turt2live/travis/c2s/rich-replies
Add rich replies
6 years ago
Travis Ralston 4b9fb99644 Take out unhelpful example 6 years ago
Travis Ralston 3146fc339a Merge remote-tracking branch 'matrix-org/master' into travis/c2s/clarify-errors 6 years ago
Travis Ralston f6d9e53f5c Clarify that homeserver must reject clients from setting m.fully_read 6 years ago
Travis Ralston 2e8151999e Clarify that read markers are fully read markers 6 years ago
Hubert Chathi f1f32d3a15 add more clarifications 6 years ago
Travis Ralston 679ddabb53 Merge remote-tracking branch 'matrix-org/master' into travis/c2s/read-markers 6 years ago
Travis Ralston a4c2b2b905 General clarity and spelling for the requestToken APIs 6 years ago
Travis Ralston 7f1b94c211 Merge remote-tracking branch 'matrix-org/master' into travis/c2s/id-server 6 years ago
Travis Ralston 567843e043 Add additional clarity to how rich replies are structured and used 6 years ago
Hubert Chathi e3daf10bb9 refactor encrypted file schema as "Extension to m.message" 6 years ago
Travis Ralston 9004be7bda Merge remote matrix-org/master 6 years ago
Travis Ralston 25778989a1
Merge pull request #1573 from turt2live/travis/c2s/sync-event-fields
Fix event schemas for /sync
6 years ago
Travis Ralston f013b7ef03
Merge pull request #1631 from turt2live/travis/general/unstable-warning
Render a warning if the spec is unstable
6 years ago
Travis Ralston ab00630ebc Don't include a second unstable warning in the s2s spec for now 6 years ago
Travis Ralston f72c821be4
Merge pull request #1619 from turt2live/travis/c2s/local-echo
Reference that transaction IDs may be used to echo
6 years ago
Travis Ralston e3ad253dca A sender is also required for the invite_state 6 years ago
Travis Ralston 2f824df8dd Define the real event types on the invite_state 6 years ago
Travis Ralston fc037b3a72 Fix merge 6 years ago
Travis Ralston 2e3e189ea2 Merge remote matrix-org/master 6 years ago
Travis Ralston 2e316ea80b
Merge pull request #1630 from matrix-org/application_service/release-r0.1.0
r0.1.0 for the Application Service specification
6 years ago
Travis Ralston 136ba15eb2
Merge pull request #1605 from turt2live/travis/c2s/clarify-html-again
Mention that clients should not be producing invalid HTML
6 years ago
Travis Ralston 38ae166e9d
Merge pull request #1505 from turt2live/travis/general/3pid_invite
Clarify how third party invites work
6 years ago
Travis Ralston afa16f1e4e
Merge pull request #1606 from turt2live/travis/c2s/room-tags
Update the room tagging documentation
6 years ago
Travis Ralston c127eed7e7
Merge pull request #1600 from turt2live/travis/c2s/media-csp
Specify the minimum CSP for media
6 years ago
Travis Ralston 73736d41db
Merge pull request #1569 from turt2live/travis/c2s/user-directory
Clarify the homeserver's behaviour for user searching
6 years ago
Travis Ralston 9646d99c9e
Merge pull request #1602 from turt2live/travis/general/redactions
Add the other fields the server is expected to keep on events
6 years ago
Ben Parsons c77b505441 capitali[zs]e path parameters 6 years ago
Ben Parsons 778fe2a47a css caption size tweak 6 years ago
Ben Parsons e8afab1fe5 many visual improvements 6 years ago
Erik Johnston 6235c2e720
Merge pull request #1594 from matrix-org/erikj/limit_auth_events
Reject events with superfluous auth_events entries
6 years ago
Erik Johnston 080845ac1c Add link to previous section 6 years ago
Erik Johnston bbca5ce43a Merge branch 'master' of github.com:matrix-org/matrix-doc into erikj/limit_auth_events 6 years ago
Erik Johnston b6ed25e4b4 Fix incorrect indent 6 years ago
Erik Johnston f3a13eed76
Merge pull request #1593 from matrix-org/erikj/auth_events
Update rules on which events to add to `auth_events`
6 years ago
Erik Johnston 86891ca7e4
Merge pull request #1625 from matrix-org/erikj/auth_rejections
Explain how to handle rejected events
6 years ago
Erik Johnston da3dd40e06
Merge pull request #1592 from matrix-org/erikj/spec_3pid_ruls
Spec third party invites in auth rules
6 years ago
Erik Johnston d91dc6fbf6 Fixup 6 years ago
Erik Johnston 4d653748d6 Add note back in 6 years ago
Erik Johnston 8e6c8ba59e Merge branch 'master' of github.com:matrix-org/matrix-doc into erikj/spec_3pid_ruls 6 years ago
Erik Johnston a1aedb386a Actually use proper sentences like a proper adult 6 years ago
Erik Johnston 0adfd1ebb0
Merge pull request #1591 from matrix-org/erikj/fixup_auth_rules
Fix up auth rules
6 years ago
Erik Johnston d63184ebac Fixup 6 years ago
Erik Johnston 3c53e1910d Fixup 6 years ago
Erik Johnston 1a45bc4a85 Reword 6 years ago
Erik Johnston 59f86ec8f2 Reindent as RST requires sublists to be three spaces 6 years ago
Erik Johnston f4706c8889 Require creator field 6 years ago
Erik Johnston f3aea32a24 Be consistent with 'If..., reject' 6 years ago
Erik Johnston 6c8a45c165 Full stops 6 years ago
Erik Johnston ebb044674f Remove duplicated explanation about event rejection 6 years ago
Travis Ralston ac56e76746 Changelog 6 years ago
Travis Ralston d57b40d0cc Clarify how the client should treat errors
This is based on observation and rough interpretation and may need additional review from people.

Fixes https://github.com/matrix-org/matrix-doc/issues/1188
6 years ago
Travis Ralston e6adf9f6b9 Document known client-server error codes
Covers part of https://github.com/matrix-org/matrix-doc/issues/603 (updating all the endpoints is being done as a separate PR/commit). 

Reference: 74854a9719/synapse/api/errors.py (L30-L61)
6 years ago
Travis Ralston 4bd23a9086 send_attempt is no longer optional 6 years ago
Travis Ralston 7f719b23e7
Merge pull request #1589 from turt2live/travis/c2s/inhibit-login
Document the inhibit_login registration option
6 years ago
Travis Ralston f3181bbedd Changelog 6 years ago
Travis Ralston dfaed5b525 Clean up and flesh out all three editions of the /requestToken API
Fixes https://github.com/matrix-org/matrix-doc/issues/1634

Addresses some of https://github.com/matrix-org/matrix-doc/issues/1396
6 years ago
Travis Ralston 2f55dd66da
Merge pull request #1441 from matrix-org/erikj/state_res_msc
State Resolution: Reloaded MSC
6 years ago
Travis Ralston ce14779af1
Merge pull request #1567 from turt2live/travis/c2s/3pid-binding
Document `validated_at`, `added_at`, and POST /3pid/delete
6 years ago
Travis Ralston 5da3072eef Wording change ('may not' has a special meaning) 6 years ago
Travis Ralston 4b7f308fc4
Merge pull request #1576 from turt2live/travis/s2s/key-mgmt
Add federation /user/keys/* endpoints
6 years ago
Travis Ralston 2a08a308f3 device_keys are required 6 years ago
Travis Ralston caaa688e37 Fix links to client-server spec 6 years ago
Travis Ralston 219b27b182 Merge remote matrix-org/master 6 years ago
Travis Ralston 7516af3df2 Changelog 6 years ago
Travis Ralston f923d08078 Add read markers
This is the spec for https://github.com/matrix-org/matrix-doc/issues/910

Fixes https://github.com/matrix-org/matrix-doc/issues/910

Some reverse engineering was required to work out the complete details as to how this works. In particular, the 405 for setting account data and the behaviour of m.read.

References:
* 405 for account data: d69decd5c7/synapse/rest/client/v2_alpha/account_data.py (L85-L90)
* m.read behaviour: d69decd5c7/synapse/rest/client/v2_alpha/read_marker.py (L45-L52)
6 years ago
Richard van der Hoff 492df88024
Merge pull request #1622 from matrix-org/rav/clarify_event_signing
Rewrite the section on signing events
6 years ago
Richard van der Hoff 0f84c69805
Merge branch 'master' into rav/clarify_event_signing 6 years ago
Travis Ralston 8bcd7d26e3 /3pid/delete returns an empty object 6 years ago
Travis Ralston 390f1c16f7 Remove mentions of identity services from /3pid/delete
This will be covered by https://github.com/matrix-org/matrix-doc/issues/1194

For now, we can accept that homeservers may try to unbind, however clients should not rely on it.
6 years ago
Travis Ralston 86c85aea71 Merge remote-tracking branch 'matrix-org/master' into travis/c2s/3pid-binding 6 years ago
Travis Ralston 98a445890c Render a warning if the spec is unstable
Fixes https://github.com/matrix-org/matrix-doc/issues/1499

This is done by using magic variables in the RST. The magic variables are generated based on the substitutions available, making them available for use at build-time. 

Magic variables were chosen because it allows people to continue working on the spec and release process without having to worry about removing a chunk of text from the top of the file. Originally, this was attempted by using jinja2 if-statements, however the substitutions are replaced *after* the template is executed, so the condition would never match. 

The format of the variable is to make the templating happy. Using colons or percent signs results in the templator thinking something else is going on, and then complaining about format.
6 years ago
Travis Ralston d57b977a55 Merge branch 'm-master' into travis/general/3pid_invite 6 years ago
Travis Ralston 1f6499d563 Fix typo 6 years ago
Travis Ralston 356626845c Remove unhelpful arrow from the 3rd party invite sequence dance
This doesn't add anything in terms of clarity.
6 years ago
Travis Ralston 5e6a2c30a2 Comment out the part where identity services can revoke their keys
They can't because otherwise 3rd party invites can be rejected by homeservers, as per https://github.com/matrix-org/matrix-doc/issues/1633
6 years ago
Travis Ralston cee0a5ac7b
Merge pull request #1557 from turt2live/travis/general/r0-prep
Prepare the identity service and server-server APIs for r0
6 years ago
Hubert Chathi a1b1054aa1 fix handling of multi-line state key descriptions 6 years ago
Travis Ralston 4630c06721 Appservice r0.1.0 changelog 6 years ago
Travis Ralston 951b442956
Merge pull request #1558 from turt2live/travis/c2s/fix-events
Fix client-server event schemas: move `age`, dedupe fields
6 years ago
Travis Ralston 429f302744 Add an `age` to the invite room state example 6 years ago
Travis Ralston 32cde24bcf Fix server-server link in IS spec 6 years ago
Travis Ralston e82c22b060
Merge pull request #1615 from turt2live/travis/is/touchups
Touch up more of the identity service specification
6 years ago
Travis Ralston b8f2c721dc Clarify which attributes should be valid 6 years ago
Travis Ralston 2d18b0d2d8 Merge remote-tracking branch 'matrix-org/master' into travis/c2s/clarify-html-again 6 years ago
Travis Ralston f09db16027 Merge remote-tracking branch 'matrix-org/master' into travis/s2s/key-mgmt 6 years ago
Travis Ralston 49c5677969 Merge remote-tracking branch 'matrix-org/master' into travis/c2s/user-directory 6 years ago
Travis Ralston 2753d24302 Merge remote-tracking branch 'matrix-org/master' into travis/general/r0-prep 6 years ago
Travis Ralston 440841d1ff Recommend a CSP rather than require it. 6 years ago
Travis Ralston 464f4f5f21 Correctly check for the 'core' folder 6 years ago
Travis Ralston c8a8f13623 Don't check the underlying definitions
Otherwise the script will try to find a schema for our templates, which don't exist.
6 years ago
Travis Ralston 31ea4279d1 Resolve references in the check_examples script 6 years ago
Travis Ralston 6aacec3178 Fix power level JSON example 6 years ago
Travis Ralston f04afaa9b9
Merge pull request #780 from mujx/missing-enum-fields
Add missing enum fields for the set_presence parameter
6 years ago
Travis Ralston 827033c128 Merge remote matrix-org/master 6 years ago
Travis Ralston 138419cdd4
fix indentation on release process doc 6 years ago
Travis Ralston 70f72b5b3b
Merge pull request #1628 from turt2live/travis/as/external_url
Clarify how external_url is supposed to work
6 years ago
Richard van der Hoff f649d04ae1
Merge pull request #1626 from matrix-org/rav/encoding
Set the encoding to UTF-8 on all file I/O
6 years ago
Travis Ralston cc1e496287
Merge pull request #1629 from turt2live/travis/as/route-versions
Version all appservice endpoints and provide a fallback
6 years ago
Richard van der Hoff 20c9829f56
Merge pull request #1627 from matrix-org/travis/general/dont-build-proposals
Don't generate proposals.rst in Circle CI
6 years ago
Travis Ralston 326ff6b1a1
Merge branch 'master' into travis/as/external_url 6 years ago
Travis Ralston 0f2e01f5b5
Merge pull request #1555 from turt2live/travis/as/cleanup
Application service spec cleanup; Security definitions; r0 prep
6 years ago
Travis Ralston 1a3f112337 Clarify that the external_url is unsafe 6 years ago
Travis Ralston be5c566028 Version all appservice endpoints and provide a fallback
Fixes https://github.com/matrix-org/matrix-doc/issues/1616
6 years ago
Travis Ralston a48f7b9278 Clarify how external_url is supposed to work
Fixes https://github.com/matrix-org/matrix-doc/issues/1624
6 years ago
Travis Ralston ecd3ce39e5 Don't generate proposals.rst in Circle CI 6 years ago
Travis Ralston 05b017276c Don't accidentally limit application services to one homeserver 6 years ago
Richard van der Hoff 4e90b32348 Set the encoding to UTF-8 on all file I/O
Hopefully this will resolve issues with building the spec on systems where the
default encoding is somthing other than UTF-8.
6 years ago
Ben Parsons f1ae872857 light zebra striping for tables 6 years ago
Travis Ralston ab14f33060 Add link to the client-server ACLs module 6 years ago
Erik Johnston 5c2b8e3569 Explain how to handle rejeceted events 6 years ago
Ben Parsons 9e1d6d7490 sanitise caption handling 6 years ago
Hubert Chathi db644ca522 add some clarifications 6 years ago
Travis Ralston 6b52e1df77
Merge pull request #1587 from turt2live/travis/s2s/clarify-state-ids-inclusion
Clarify that the requested event is excluded from /state and /state_ids
6 years ago
Travis Ralston 56f6640c07
Merge pull request #1618 from turt2live/travis/c2s/initalsync
Remove references to initialSync from account data and receipts module
6 years ago
Richard van der Hoff 55c4307f12 Rewrite the section on signing events
... for clarity and de-duplication. And to say a bit about validating the
signatures.
6 years ago
Travis Ralston 7ecf2406eb
Merge pull request #1590 from turt2live/travis/c2s/403-put-state
Document 403 error for sending state events
6 years ago
Richard van der Hoff 5c059a5e26 ISes use keys too 6 years ago
Richard van der Hoff 6ba50fe2f6
Merge pull request #1588 from matrix-org/rav/fix_server_name
Specify that server names cannot be %-encoded
6 years ago
Travis Ralston 3d99c8b5a8 Changelog 6 years ago
Travis Ralston bd93481013 Reference that transaction IDs may be used to echo
Fixes https://github.com/matrix-org/matrix-doc/issues/1462
6 years ago
Travis Ralston 78487a01ec Remove references to initialSync from account data and receipts module
Fixes https://github.com/matrix-org/matrix-doc/issues/695

Note: This commit leaves the /join endpoints alone because they say "and /sync" rather than just initialSync
6 years ago
Travis Ralston 38bb222461 Changelog 6 years ago
Travis Ralston e227095fb4 Add rich replies
Fixes https://github.com/matrix-org/matrix-doc/issues/1234

The notable parts of this are:
* The titles go to insane levels. Rich replies are fairly complex and need some splitting apart to be understandable.
* The allowed HTML tags now have an exception for `<mx-reply>`

Please note that the event example is intended to be fixed by a PR that fixes all event examples.
6 years ago
Travis Ralston b2092922e8 Don't define a variable for the appservice major version 6 years ago
Travis Ralston a5c3924492 Merge remote matrix-org/master 6 years ago
Travis Ralston fd7cb22a28 Fix event type example of m.forwarded_room_key 6 years ago
Hubert Chathi 4230e375fa
Merge pull request #1465 from Zil0/key_sharing
Document key sharing events
6 years ago
Travis Ralston dc602b74d2 Reference the server-server specification for /onbind 6 years ago
Travis Ralston 0387da51e2 Clarify how sessions work when establishing associations 6 years ago
Travis Ralston 039cefdbea Say that identity services should be nice to web browsers (CORS/OPTIONS) 6 years ago
Travis Ralston bbba7dedd6 Clean up identity service RST
* Title casing
* s/identity server/identity service
* Rough column limit enforcement
* Add some links (used by future commits)
6 years ago
Travis Ralston f030d19f3c Clean up identity service swagger
* Add `consumes` (swagger)
* Remove `http` as a supported scheme (the spec specifically says clients MUST use https)
* Clarify various descriptions
  * Full stops
  * Additional wording
  * s/older versions/previous drafts - we haven't had a release yet
* Indentation on examples
6 years ago
Hubert Chathi 0130620cc1
Merge pull request #1596 from uhoreg/e2e_sessions
specify how to handle multiple olm sessions with the same device
6 years ago
Hubert Chathi 9b94e588e6 document new state resolution algorithm 6 years ago
Travis Ralston c7a228bf7b Don't make the major version a variable
We are likely to want to maintain v1 when we release a v2, so we'll avoid a variable for now.
6 years ago
Travis Ralston e7a69a6a6d Merge remote-tracking branch 'matrix-org/master' into travis/general/r0-prep 6 years ago
Travis Ralston a46783eb24 Revert "Take out the reference to the current version from the changelog"
This reverts commit 2a20c11467.
6 years ago
Travis Ralston 4c9d672e1f
Merge pull request #1521 from matrix-org/push_gateway/r0.1.0_updates
r0.1.0 release of the Push Gateway specification
6 years ago
Travis Ralston 2a20c11467 Take out the reference to the current version from the changelog 6 years ago
Travis Ralston 2ab2f91088 Merge remote-tracking branch 'matrix-org/master' into travis/releases/push-gateway/r0.1.0 6 years ago
Travis Ralston 684d80c422 Revert changes to 3pid lookup types in the IS spec
The validator doesn't know what a "3PID Medium" is, for example, so it throws exceptions. This does reduce clarity in the spec though.
6 years ago
Richard van der Hoff 251bd90f4e add a note on what matrix-media-repo does 6 years ago
Richard van der Hoff da394da4b6 synapse uses a different format of media IDs for URL previews 6 years ago
Richard van der Hoff b19bc7381e address review feedback 6 years ago
Richard van der Hoff 646ca25481 descope aliases 6 years ago
Richard van der Hoff 196159be91 We should include the Host header if the port was explicit. 6 years ago
Travis Ralston abb91508be
Merge pull request #1556 from turt2live/travis/is/cleanup
Identity Service API cleanup
6 years ago
Travis Ralston 30ff020ac7 Changelog 6 years ago
Travis Ralston c03f2f8d79 Minor touchups to the room tagging API
Fixes some of https://github.com/matrix-org/matrix-doc/issues/1565
6 years ago
Kitsune Ral 9bc1470305 Elaborate the structure of m.tag events
...and corresponding structures in tag-related CS API calls

Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Travis Ralston f2d02c9559 Take out device management section for now
This will be handled by the implementation of https://github.com/matrix-org/matrix-doc/issues/1212
6 years ago
Travis Ralston 8950f0b2cc Spelling 6 years ago
Travis Ralston a6d42bf140
Merge pull request #1176 from matrix-org/notifications/room
spec notifications key on power level event and provide @room in example
6 years ago
Travis Ralston c83da453b5 s/number/integer 6 years ago
Travis Ralston 26d5a24b88 Merge remote matrix-org/master 6 years ago
Travis Ralston 60b97fcf26 Changelog 6 years ago
Travis Ralston 2234e0b097 Mention that clients should not be producing invalid HTML
Fixes https://github.com/matrix-org/matrix-doc/issues/1595
6 years ago
Matthew Hodgson 8e88d82a4b fix typo in anchor. fixes #1603 6 years ago
Travis Ralston 86f616bb31 Changelog 6 years ago
Travis Ralston 348b549f9f Add the other fields the server is expected to keep on events
Fixes https://github.com/matrix-org/matrix-doc/issues/839

Reference: d69decd5c7/synapse/events/utils.py (L44-L91)
6 years ago
Travis Ralston ec20c43220 Specify the minimum CSP for media
Fixes https://github.com/matrix-org/matrix-doc/issues/1066
6 years ago
Travis Ralston e401b7255c
Merge pull request #1584 from turt2live/travis/general/state-key-restriction
Update schemas and auth rules to cover the @ state key restriction
6 years ago
Travis Ralston 90fe395aeb Take out the @ state_key restriction from the auth rules
This is being handled in https://github.com/matrix-org/matrix-doc/pull/1591
6 years ago
Ben Parsons 380a53ecba adjust caption -> smaller, left align 6 years ago
Travis Ralston 73feee5d73
Merge pull request #1586 from turt2live/travis/as/comment-ts-section
Comment out the timestamp massaging section for now
6 years ago
Travis Ralston 25b34e1d7b Mention that ts massaging was in a draft, but not in the release 6 years ago
Ben Parsons 989b50a1a0 remove debug string 6 years ago
Ben Parsons 6e0fe70500 make spec tables prettier 6 years ago
Travis Ralston 62b1b8b660 Have unsigned.age appear on all room events
This is useful for a lot of things, like bridges (appservices), VoIP handling, and clients which generally may wish to do something with the field. Might as well include it on every event, despite the recommendation of https://github.com/matrix-org/matrix-doc/issues/1524
6 years ago
Travis Ralston 39ef845a53
Merge pull request #1547 from turt2live/travis/c2s/pills
Document how mentions (pills) work
6 years ago
Travis Ralston 5ff244f06b More clarification about how /state_ids works 6 years ago
Travis Ralston de36d97839 Clarify which event is actually be excluded from /state_ids 6 years ago
Richard van der Hoff 9e5b5d88ef WIP proposal for better grammars 6 years ago
Hubert Chathi 5019fb7c49
Merge pull request #1359 from uhoreg/well-known
.well-known discovery
6 years ago
Hubert Chathi 9d0fec3645 add changelog 6 years ago
Hubert Chathi 688c8ebcd3 specify how to handle multiple olm sessions with the same device 6 years ago
Erik Johnston d921b81c70 Reject events with superfluous auth_events entries 6 years ago
Erik Johnston 073ebb051b Spec third party invites in auth rules 6 years ago
Erik Johnston 5d40af7ecf Update rules on which events to add to `auth_events` 6 years ago
Erik Johnston 86b5486445 Add missing clauses to and fix authorization rules
They are still missing third party invites.
6 years ago
Erik Johnston 0b7b3bfcb0 Reindent auth rules section
RST expects sub lists to be indented by three or more spaces. By doing
so we can then rely on `#.` for automatic numbering.
6 years ago
Richard van der Hoff d493c82e82 even more clarification 6 years ago
Erik Johnston 7327656965
Merge pull request #1581 from matrix-org/erikj/limit_txn_size
Specify a limit on the number of EDUs and PDUs a transaction can contain
6 years ago
Richard van der Hoff 78d8118846 Further server_name clarification 6 years ago
Richard van der Hoff f15eafae7f Remove trailing spaces 6 years ago
Richard van der Hoff 08fba5de51 Link to grammar rather than duplicating. 6 years ago
Richard van der Hoff 120bb8dc8e s/host/hostname/ 6 years ago
Travis Ralston d1add1f58c Changelog 6 years ago
Travis Ralston d91395cf9f Document 403 error for sending state events
Fixes https://github.com/matrix-org/matrix-doc/issues/1399
6 years ago
Travis Ralston 5d0f77de3a changelog 6 years ago
Travis Ralston 1051aff108 Document the inhibit_login registration option
Fixes https://github.com/matrix-org/matrix-doc/issues/1351
6 years ago
Richard van der Hoff 8679a642b4 clarity 6 years ago
Richard van der Hoff 7f9524f801 s/--/—/ 6 years ago
Richard van der Hoff 6f3b42a457 Server names cannot be %-encoded
They aren't URLs; it was a thinko to refer to the URL spec for this.
6 years ago
Travis Ralston dad037170a Clarify that the requested event is excluded from /state and /state_ids
Fixes https://github.com/matrix-org/matrix-doc/issues/1564
6 years ago
Travis Ralston b402608b41 Don't reference the major version for the push gateway specification
If we ever have a v2 endpoint for the push gateway, we'd likely spec it alongside the v1 stuff, updating applicable references elsewhere.
6 years ago
Travis Ralston 4df67d9305 changelog 6 years ago
Travis Ralston 436544b8f8 Clarify behaviour of `?set_presence=unavailable` for /sync 6 years ago
Travis Ralston adef7babfa Merge remote-tracking branch 'matrix-org/master' into mujx/missing-enum-fields 6 years ago
Travis Ralston 85b9769cd9 Comment out the timestamp massaging section for now
Pending discussion on https://github.com/matrix-org/matrix-doc/issues/1585
6 years ago
Travis Ralston c297c6a35d Update schemas and auth rules to cover the @ state key restriction
Fixes https://github.com/matrix-org/matrix-doc/issues/1305

Also fixes an issue regarding the `_` being restricted previously, which is false.
6 years ago
Travis Ralston 132c5b0f48 Verbose building for go scripts 6 years ago
Travis Ralston e97a1b4af0 Actually add the dev scripts build to the workflow 6 years ago
Travis Ralston 349696fc1d Test building of the speculator and continuserv 6 years ago
Travis Ralston ad068bcd22 Fix the appservice directory visibility type parameter type 6 years ago
Travis Ralston 791a2f2b17 Run the validator on the spec 6 years ago
Travis Ralston b67f544026
Merge pull request #1583 from turt2live/travis/general/fix-build-1
The `rank` in search results is actually a floating point number
6 years ago
Travis Ralston 17ae84d064 Check the API examples too 6 years ago
Travis Ralston e9579a7840 The `rank` in search results is actually a floating point number
This was accidentally changed in https://github.com/matrix-org/matrix-doc/pull/1571 and appears to be the only instance.
6 years ago
Travis Ralston a4da7c8b69
Merge pull request #1582 from turt2live/travis/general/fix-build-1
Fix server ACL schema: The type is a string
6 years ago
Travis Ralston 80edda1666 Actually run the check-docs circle job 6 years ago
Travis Ralston ee3b0f42db Fix server ACL schema: The type is a string
It cannot be an enum otherwise the build starts screaming.
6 years ago
Erik Johnston fc1fdc95af Specify a limit on the number of EDUs and PDUs a transaction can contain 6 years ago
Travis Ralston 6cdb463829
Merge pull request #1571 from turt2live/travis/general/number-to-int
Replace applicable types of 'number' to 'integer'
6 years ago
Valentin Deniaud 28ced3b0a4 fixup! document encrypted attachments 6 years ago
Richard van der Hoff 4750b297b3
s/upgrade_room/upgrade 6 years ago
Travis Ralston 72c6fa2aaf More versioned links 6 years ago
Travis Ralston cff5b8b205 More versioned links 6 years ago
Travis Ralston 8e42f3ab3a Fix bad merge on brackets 6 years ago
Travis Ralston 4b05194a91 Fix bad merge 6 years ago
Travis Ralston 4278a9a516 Merge remote-tracking branch 'matrix-org/master' into travis/c2s/fix-events 6 years ago
Travis Ralston e4f8c23972
Merge pull request #1562 from turt2live/travis/c2s/html-formatting
Define the supported HTML subset for message events
6 years ago
Travis Ralston f9c7014a65
Merge pull request #1577 from turt2live/travis/c2s/search-filter
Specify the type of filter the search API expects
6 years ago
Travis Ralston efef3412a0 Take out the underscore restriction from state events
It's not needed anymore, and we should remove it while we're in the area.

Includes other misc changes to the schema layout.
6 years ago
Travis Ralston 03065b0584
Merge pull request #1572 from turt2live/travis/c2s/sync-left-account-data
Add `account_data` to left rooms in /sync
6 years ago
Travis Ralston 439b9d2925 Power levels are also integers 6 years ago
Travis Ralston f2332d242a Add some SHOULDs and MUSTs to the user directory requirements 6 years ago
Travis Ralston bb515d15a4 Clarify which collation to use for user directory searching 6 years ago
Travis Ralston 9527ce31f5
Merge pull request #1570 from turt2live/travis/c2s/sync-filtering
Update filtering API documentation
6 years ago
Travis Ralston ee2ebe6792
Merge pull request #1568 from turt2live/travis/c2s/invite-room-state
Move `invite_room_state` to the correct place in the client-server API
6 years ago
Travis Ralston 39e674ccb3 Clarify what matrix.to is and mention that room IDs are not routable
Also actually render the warning saying that this scheme is temporary.
6 years ago
Travis Ralston fa3e9a7609 Merge remote-tracking branch 'matrix-org/master' into travis/c2s/pills 6 years ago
Travis Ralston 6f80db5ddf Include the "other versions" section of the changelog 6 years ago
Travis Ralston 07153c22a9 Misc. cleanup of the appservice spec 6 years ago
Travis Ralston f01cfa2c7b Add security definitions to hs->as endpoints 6 years ago
Travis Ralston fa96d8629b Prepare the appservice spec for an r0 release
This puts the scaffolding in place for an r0 release to happen, such as the changelog and version variables.
6 years ago
Travis Ralston bba76c23d2
Merge pull request #1552 from turt2live/travis/as/normal-events
Specify that application services receive events in the CSAPI format
6 years ago
Travis Ralston 17e0ef4b91 Remove empty file and now-empty section from the appservice spec
This commit has approval under https://github.com/matrix-org/matrix-doc/pull/1555 although is being included in this branch/PR so the build passes, permitting a merge.
6 years ago
Travis Ralston 51193cac39 Merge remote-tracking branch 'matrix-org/master' into travis/as/normal-events 6 years ago
Travis Ralston 87133d8505
Merge pull request #1574 from turt2live/travis/c2s/fix-directory-put
Clean up PUT /directory/room
6 years ago
Travis Ralston 4e885c3f77
Merge pull request #1550 from turt2live/travis/general/acls
Server ACLs
6 years ago
Travis Ralston a0b17e6ed6
Merge pull request #1551 from turt2live/travis/c2s/push-rules
General improvements to the push rules module
6 years ago
Travis Ralston 090f852fdf
Merge pull request #1262 from matrix-org/anoa/document_as_options
Document new application service registration file options
6 years ago
Travis Ralston 97508d5dc5
Merge pull request #1554 from turt2live/travis/general/appservice-directories
Application service room directories (and other third party network things)
6 years ago
Travis Ralston 54032964fc Misc clarity for 3rd party appservice protocols/locations 6 years ago
Travis Ralston 32ac81c588 Spelling 6 years ago
Travis Ralston bac0392a2d General clarity for push rule defaults and where to get information
Include moving a roaming condition that was under the wrong rule.
6 years ago
Matthew Hodgson 313e6de48b
tweak wording to spell out that handling legacy/noncompliant servers. 6 years ago
Travis Ralston d7397ccd56 Provide additional rationale for kicking users when they are ACLd 6 years ago
Travis Ralston 76afef79f8 Clarify the rationale and motive for blanket IP banning and port exclusion 6 years ago
Travis Ralston 82be6077ff Add a note that ACLs don't operate at the auth level; Fix glob definition 6 years ago
Travis Ralston be2e0fc9d4 Clarify that ACLs are required to manually deny unsupported hosts 6 years ago
Travis Ralston 7b7933327a Changelog 6 years ago
Travis Ralston 5fa6b49365 Specify the type of filter the search API expects
Note: This is badly named until https://github.com/matrix-org/matrix-doc/pull/1570 lands

Fixes https://github.com/matrix-org/matrix-doc/issues/598
6 years ago
Travis Ralston d6b0cad9b8
Merge pull request #1563 from turt2live/travis/general/fix-build-1
Ensure the event examples and matrix.org assets are tested
6 years ago
Travis Ralston 72de8bec5c Remove unused algorithms for encrypted messages 6 years ago
Travis Ralston 438f5825ae Add more supported encryption algorithms to message events 6 years ago
Travis Ralston 17bdc0c740 Revert "Fix encrypted event examples"
This reverts commit be9f6042e5.
6 years ago
Travis Ralston be97e95dc1 Promote device management to be a dedicated section 6 years ago
Travis Ralston 8069981252 Add federation /user/* endpoints
Fixes https://github.com/matrix-org/matrix-doc/issues/1438
6 years ago
Travis Ralston 89daa3c5ce Clarify that clients aren't required to render all the tags
This commit also includes minor clarifications to surrounding text.
6 years ago
Travis Ralston 5bf99aeb34 Add a note that formatted_body is not forever 6 years ago
Travis Ralston c7822cc9a8 Link to the content repo when referencing MXC URIs in images 6 years ago
Travis Ralston d7d28f7e5b Remove nl as a supported HTML tag 6 years ago
Travis Ralston ce0befd7d0 Changelog 6 years ago
Travis Ralston e60b44e27f Clean up PUT /directory/room
Fixes https://github.com/matrix-org/matrix-doc/issues/933

The issue references two problems: a `roomInfo` and lack of a `room_id`. It appears the `room_id` has been fixed since reporting, however the `roomInfo` remained (and is now fixed).
6 years ago
Travis Ralston fd47184ce3 Changelog 6 years ago
Travis Ralston 55c0b968b5 Fix event schemas for /sync
This commit clarifies the required keys for each type of event that appears in sync, fixes the core event schema not declaring 'content' as required, and includes a mention that events may not have a room_id when appearing in /sync.

Fixes https://github.com/matrix-org/matrix-doc/issues/595
Fixes https://github.com/matrix-org/matrix-doc/issues/909
6 years ago
Travis Ralston e8edfba114 Changelog 6 years ago
Travis Ralston 008ebb8c1a Add `account_data` to left rooms in /sync
Fixes https://github.com/matrix-org/matrix-doc/issues/1392
6 years ago
Travis Ralston e75a1836b8 Changelog 6 years ago
Travis Ralston 667fa082af Replace applicable types of 'number' to 'integer'
`number` implies/represents a float where `integer` does not.

The only remaining `type: number` in the project appear on power levels: those have been left untouched pending clarification.

Fixes https://github.com/matrix-org/matrix-doc/issues/746
6 years ago
Travis Ralston b0fbd7be7c Changelog 6 years ago
Travis Ralston b68ed5d594 Define the default for the contains_url filter param
Fixes https://github.com/matrix-org/matrix-doc/issues/1553
6 years ago
Travis Ralston 1cbcaba2c7 Clean up examples in filter.yaml
Indentation, excess examples.
6 years ago
Travis Ralston 26a7a341f0 Mark the filter_id in the response of POST /filter as required 6 years ago
Travis Ralston 97e3dd443b Update room_event_filter.yaml to use the OpenAPI allOf definition
This is just maintenance.
6 years ago
Travis Ralston 7d08ef73d0 Fix naming of the Filter schemas
EventFilter !== Filter

Fixes https://github.com/matrix-org/matrix-doc/issues/1509
6 years ago
Travis Ralston e926b4a840 Changelog 6 years ago
Travis Ralston 1bc0f63bfb Clarify the homeserver's behaviour for user searching
The homeserver can implement its own algorithm, but is suggested to ensure the requesting user can reasonably see the other users.

The text is intentionally left vague for whether or not the API is local users only to give the homeserver some flexibility in this area.

General cleanup is also included in this commit.

Fixes https://github.com/matrix-org/matrix-doc/issues/1108
6 years ago
Travis Ralston 3b2bf18c67 Changelog 6 years ago
Travis Ralston 5ceb132110 Changelog 6 years ago
Travis Ralston e9e93b0eec Move `invite_room_state` to the correct place in the client-server API
Fixes https://github.com/matrix-org/matrix-doc/issues/1350
6 years ago
Travis Ralston b4be11af42 Document POST /account/3pid/delete
Fixes https://github.com/matrix-org/matrix-doc/issues/985

Includes documentation for https://github.com/matrix-org/synapse/pull/3667

Raises https://github.com/matrix-org/matrix-doc/issues/1566
6 years ago
Travis Ralston a803d9d077 Document `validated_at` and `added_at` on GET /3pid
Fixes https://github.com/matrix-org/matrix-doc/issues/661
6 years ago
Travis Ralston be9f6042e5 Fix encrypted event examples 6 years ago
Travis Ralston 0a6c1c4dda Ensure the event examples and matrix.org assets are tested
Otherwise we go nearly a week without realizing the build is failing due to bad schemas/examples. This also helps us ensure a PR is up to par.

This commit is expected to cause a build failure at this time. A future commit will actually fix the project and address concerns raised by the testing.
6 years ago
Travis Ralston e5a7dd1c45 Remove excess commas from JSON 6 years ago
Travis Ralston 3c472f70e3 Changelog 6 years ago
Travis Ralston aa294fac06 Define the supported HTML subset for message events
Also clarify that `m.notice` messages can support HTML.

Fixes https://github.com/matrix-org/matrix-doc/issues/1559
Fixes https://github.com/matrix-org/matrix-doc/issues/1560
6 years ago
Travis Ralston 312799ae78 General clarification for mention and how matrix.to URIs are meant to work 6 years ago
Travis Ralston 295b1322e2 Add back the unsigned.age property to voip event examples 6 years ago
Travis Ralston 32ce676eb6
Merge pull request #1561 from QMatrixClient/kitsune-fix-type-in-openid
openid.yaml: int is not a valid Swagger type
6 years ago
Valentin Deniaud d6f5d590f8 add encrypted attachments changelog 6 years ago
Valentin Deniaud b7577ea237 document encrypted attachments
Fix #461.
6 years ago
Valentin Deniaud faa13aaa40 fixup! add key sharing changelog 6 years ago
Valentin Deniaud f6b5aee3e2 explain how to use key sharing events 6 years ago
Valentin Deniaud 579f5ea928 fixup! document key sharing and m.room_key_request 6 years ago
Valentin Deniaud 8ae137e82e fixup! document m.forwarded_room_key 6 years ago
Valentin Deniaud 768f33dc2d fixup! document key sharing and m.room_key_request 6 years ago
Valentin Deniaud 337316445f fixup! document m.forwarded_room_key 6 years ago
Kitsune Ral c879eb950f client-server/openid.yaml: Fix a type'o
Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Travis Ralston 06d43aef17 Changelog 6 years ago
Travis Ralston 0f28f83270 Fix client-server event schemas: remove `age`, dedupe fields
This commit adds support for event schema examples to have references to help reduce the chance of fields being forgotten. This also helps reduce duplication of fields, allowing for a more consistent spec that uses the same values everywhere.

This also removes both `unsigned` and `age` from the examples as per:
* https://github.com/matrix-org/matrix-doc/issues/1524
* https://github.com/matrix-org/matrix-doc/issues/630

Finally, this replaces "localhost" in the examples with an example domain. This is really just a nitpick thing on my part where seeing a "real world" domain is preferred. 

Fixes https://github.com/matrix-org/matrix-doc/issues/1524
Fixes https://github.com/matrix-org/matrix-doc/issues/630
Step towards https://github.com/matrix-org/matrix-doc/issues/1530
6 years ago
Travis Ralston d370a2c6fd Prepare the identity service and server-server APIs for r0
* Create the changelog scaffolding
* Set up the variables for versioning
6 years ago
Travis Ralston dafea96621 Fix indentation and schema references in the identity service spec 6 years ago
Travis Ralston 4abd618147 Flag response fields in the Identity Service spec as required 6 years ago
Travis Ralston 811998735c Define common error codes in the Identity Service API
Fixes https://github.com/matrix-org/matrix-doc/issues/1407
6 years ago
Travis Ralston 9b19fc27de changelog 6 years ago
Travis Ralston 017d6db737 Document third party network/protocol directories (for appservices)
Fixes https://github.com/matrix-org/matrix-doc/issues/869
6 years ago
Travis Ralston 2d43ff1234 Update third party network schemas
Some information was missed when this was reviewed. This commit adds some additional documentation for how these objects interact with each other.
6 years ago
Travis Ralston 9eda1a6971 Move the third party network API to it's own section 6 years ago
Travis Ralston 5f06694b6f
Merge pull request #1516 from turt2live/travis/general/room-versions
Specify how room versioning works
6 years ago
Hubert Chathi 6e8ba1f7f8 add more details 6 years ago
Travis Ralston 6a91ea9c85 Specify that application services receive events in the CSAPI format
Fixes https://github.com/matrix-org/matrix-doc/issues/1269

This is also supposed to fix the 'age' problem, however that is a larger problem with the event schemas that is reserved for a future PR/commit.
Reference: https://github.com/matrix-org/matrix-doc/issues/1294
Reference: https://github.com/matrix-org/matrix-doc/issues/1524
6 years ago
Travis Ralston bbd33c1461 Move appservice transaction API to the right section
Part of https://github.com/matrix-org/matrix-doc/issues/1532
6 years ago
Travis Ralston dc94820450 Changelog 6 years ago
Travis Ralston a95d7092eb Changelog 6 years ago
Travis Ralston bce324818b Changelog 6 years ago
Travis Ralston ab0be04571 Fix titles 6 years ago
Travis Ralston 7ec3cc4343 General improvements to the push rules module
This commit does a few things:
* Add 3 undocumented push rules to the spec for encrypted events and at-room notifications.
* Require unrecognized conditions to not match, ensuring that future conditions do not cause clients to accidentally notify users.
* Clarify that push rules should be enabled when created.
* Document a new condition required for at-room notifications.

Fixes https://github.com/matrix-org/matrix-doc/issues/1163
Fixes https://github.com/matrix-org/matrix-doc/issues/1034
Fixes https://github.com/matrix-org/matrix-doc/issues/676
Fixes https://github.com/matrix-org/matrix-doc/issues/1033
Relates to https://github.com/matrix-org/matrix-doc/issues/1101
6 years ago
Travis Ralston ef41b5c2bf Server ACLs
Implements the proposal for https://github.com/matrix-org/matrix-doc/issues/1383
6 years ago
Travis Ralston 9835c98544 Document how mentions (pills) work
Implements the proposal over at https://github.com/matrix-org/matrix-doc/issues/1067

Includes some specification for how matrix.to is structured, and how it is intended to be replaced.
6 years ago
Valentin Deniaud 7355d23ea5 add key sharing changelog 6 years ago
Valentin Deniaud 019c290fa2 document m.forwarded_room_key 6 years ago
Valentin Deniaud 2d8a321b46 document key sharing and m.room_key_request 6 years ago
Travis Ralston 3869f68a5c Merge remote-tracking branch 'matrix-org/master' into travis/general/room-versions 6 years ago
Travis Ralston 6172d5986a
Merge pull request #1537 from turt2live/travis/as/user-alias-query
Clean up user and alias querying for application services
6 years ago
Travis Ralston 997562786b
Merge pull request #1534 from turt2live/travis/as/auth-impersonation
Encourage appservices to use the Authorization header
6 years ago
Travis Ralston 1102fc59b2 Spelling 6 years ago
Travis Ralston 389fa87e6e English 6 years ago
Travis Ralston e4f5c3d55e
Merge pull request #1518 from turt2live/travis/c2s/create-room-improvements
Add general clarity to the /createRoom endpoint
6 years ago
Travis Ralston 1d7ea314d4
Merge pull request #1482 from turt2live/travis/s2s/presence
Document how presence EDUs work between servers
6 years ago
Travis Ralston 339a2748e8 Take out groups for now; Move namespace mention
Groups aren't landing in the spec yet, so we shouldn't include them yet.
6 years ago
Travis Ralston a9aa2ada47
Merge pull request #1546 from turt2live/travis/s2s/depth-bandaid
Document the maximum value for depth
6 years ago
Travis Ralston 24edec67c3 Merge remote-tracking branch 'matrix-org/master' into anoa/document_as_options 6 years ago
Travis Ralston 06157c6336 Merge branch 'master' into anoa/document_as_options 6 years ago
Travis Ralston e500e2502a Document the maximum value for depth
Implements the proposal for https://github.com/matrix-org/matrix-doc/issues/1230
6 years ago
Hubert Chathi acd9a5d32f add note about Bob mashing the "Verify" button prematurely 6 years ago
Travis Ralston e141f61df3 Update release instructions to reference symlinks, what files to update, etc 6 years ago
Travis Ralston 5b73a0174d Clarify what the release branch is used for, and how it should be named 6 years ago
Hubert Chathi 3734471028 mention option of having the QR code be a URL 6 years ago
Hubert Chathi 3aba9b153b initial dump of proposal 6 years ago
Travis Ralston 7e5160c7c2 Merge remote-tracking branch 'matrix-org/master' into travis/as/user-alias-query 6 years ago
Travis Ralston a320c58e42 A path parameter is obviously URL encoded 6 years ago
Travis Ralston 13a1628f59 Improve wording about how masquerading works 6 years ago
Travis Ralston 7ad22b2454
Merge pull request #1533 from turt2live/travis/as/general
General/small improvements to the application service API specification
6 years ago
Travis Ralston 8dc6f092ef Define the type of the power_level_content_override field 6 years ago
Travis Ralston 7e6ca5fef8 Take out the room_alias response field
The argument is that this isn't really needed at this time.
6 years ago
Travis Ralston 1fd7c99461 Clarify that the creation event can have other keys in it 6 years ago
Travis Ralston 6c7a93d2f5 Move description about which preset to use when none is specified 6 years ago
Travis Ralston 7d14309b63 Move the power level event schema to where it was 6 years ago
Travis Ralston c8ba2e098c Wording improvements for appservices 6 years ago
Will Hunt 629d5f32ae
Merge pull request #1542 from matrix-org/hs/guests-can-fetch-events
Guests should support /context and /event
6 years ago
Will Hunt 4ab64e11af Add news frag 6 years ago
Travis Ralston 8b65da1cf6 Don't try and be fancy about titles 6 years ago
Will Hunt fca1c0b7f8
Guests should support /context and /event 6 years ago
Travis Ralston e712466dca Improve description for currently_active 6 years ago
Travis Ralston 9ec914956f
Merge pull request #1536 from turt2live/travis/as/user-namespace
Recommend that application services use an underscore for namespacing
6 years ago
Travis Ralston d468ae0fa3
Merge pull request #1535 from turt2live/travis/as/no-sync
Add a note that application services cannot /sync normally
6 years ago
Travis Ralston 26746cf785
Merge pull request #1517 from turt2live/travis/c2s/auth-header
Dedicate a section on how to use access tokens
6 years ago
Richard van der Hoff 5455cc4e4f fix endpoint path 6 years ago
Richard van der Hoff 0dd67f4d1e
Merge pull request #1531 from matrix-org/rav/sentence_case_for_headings
Sentence case for headings
6 years ago
Richard van der Hoff fe3f3b6aae
Merge pull request #1284 from Zil0/e2e_doc
Document missing parts of E2E
6 years ago
Richard van der Hoff 206f78cb48
Rename 1284.feature.rst to 1284.feature 6 years ago
Valentin Deniaud 98e2e8de71 changelog 6 years ago
Valentin Deniaud 9430f2c7f9 room ID is included in Megolm plaintext, not Olm 6 years ago
Valentin Deniaud 8ba19b51ab complete Olm documentation 6 years ago
Valentin Deniaud b2316ba782 enforce unique namespacing in new algorithms experiments 6 years ago
Valentin Deniaud f853856f21 add missing m.room.encrypted event properties 6 years ago
Valentin Deniaud 6c44233c42 require megolm algorithm in m.room.encryption 6 years ago
Valentin Deniaud eb8ea0e85a remove warning pointing at outdated doc 6 years ago
Valentin Deniaud 4e0f107ef7 document changed field behavior in e2e sync extension 6 years ago
Valentin Deniaud 248786681e fix typo 6 years ago
Valentin Deniaud 661176cb3a Olm m.room.encrypted example 6 years ago
Valentin Deniaud 8732378da2 add required room ids 6 years ago
Valentin Deniaud c60109d235 complete m.room_key documentation 6 years ago
Valentin Deniaud 3a8d13df60 add missing m.room.encryption properties 6 years ago
Valentin Deniaud e5005b2d0f document E2E events
This was written by Richard van der Hoff.
6 years ago
Valentin Deniaud 68b78dc5d8 complete Megolm documentation 6 years ago
Valentin Deniaud 669605b24a add Olm missing properties 6 years ago
Valentin Deniaud 76071bae98 explain how to verify sender_key ownership 6 years ago
Valentin Deniaud 8274f91b0b document device verification
This was written by Richard van der Hoff.
6 years ago
Valentin Deniaud a28f243ed7 document left parameter of device_lists in sync response
fix #1171
6 years ago
Valentin Deniaud 10c3307427 document device_one_time_keys_count in /sync/ response
fix #1157
6 years ago
Valentin Deniaud 8afc82c14b fix /keys/claim request example
It didn't correspond to the example response.
6 years ago
Valentin Deniaud 2686b99080 fix json indent 6 years ago
Valentin Deniaud 07e3de3c61 add megolm messaging algorithm subsection
This was written by Richard van der Hoff.
6 years ago
Valentin Deniaud 33802dbbaf add olm messaging algorithm subsection
This was written by Richard van der Hoff.
6 years ago
Valentin Deniaud e210f8b050 add e2e messaging algorithms section intro
This was written by Richard van der Hoff.
6 years ago
Valentin Deniaud ab3272045e add missing v1 to m.olm in /keys/upload 6 years ago
Hubert Chathi 1b81970a1e initial commit of e2e backup proposal 6 years ago
Travis Ralston 60b8e72a67 Minor text changes to the query APIs; Keep OpenMarket copyright
The bulk of these APIs were copied from OpenMarket's work - we should preserve the copyright header.
6 years ago
Travis Ralston 0863c5452e Take out the false third party network endpoints
Fixes https://github.com/matrix-org/matrix-doc/issues/800
6 years ago
Travis Ralston 95b2b7c2bc Move query APIs to the right heading
Fixes https://github.com/matrix-org/matrix-doc/issues/1325

Addresses some of https://github.com/matrix-org/matrix-doc/issues/1532
6 years ago
Travis Ralston 069a2f7481 Split the query user and room APIs out to their own files 6 years ago
Travis Ralston 954498bf78 Recommend that application services use an underscore for namespacing
Fixes https://github.com/matrix-org/matrix-doc/issues/689
6 years ago
Travis Ralston 205b326e4a Add a note that application services cannot /sync normally
Fixes https://github.com/matrix-org/matrix-doc/issues/1144
6 years ago
Travis Ralston 857bcc0fe7 Encourage appservices to use the Authorization header
This also throws in a mention about how to handle a request with a lack of user_id.

The request samples now encourage the use of the header over the query string, and have had their sample values added for some readability. 

Fixes https://github.com/matrix-org/matrix-doc/issues/1296
Fixes https://github.com/matrix-org/matrix-doc/issues/1424
6 years ago
Travis Ralston 7caad61b86 Clearly state how the users namespace relates to interest in events
Fixes https://github.com/matrix-org/matrix-doc/issues/1307
6 years ago
Travis Ralston fd101b6ac9 Misc language changes 6 years ago
Travis Ralston 5b5b4cfbed Explicitly say how appservices should detect state events
Fixes https://github.com/matrix-org/matrix-doc/issues/1014
6 years ago
Travis Ralston a4015d5c27 Spelling 6 years ago
Travis Ralston 750d4f9fda Rename the presence EDU files to be accurate to their types; Misc cleanup of titles 6 years ago
Richard van der Hoff c2ed79bd1a
Sentence case for headings 6 years ago
Hubert Chathi f5dc0eaed2
document msisdn-related endpoints in IS (#1507)
* add msisdn endpoints in Identity Server spec
* add in CS endpoints that use the IS msisdn endpoints
6 years ago
Hubert Chathi 6612dbecf1 tweak wording for validation 6 years ago
Travis Ralston ebca4c7d86 Merge remote-tracking branch 'matrix-org/master' into travis/s2s/presence 6 years ago
Travis Ralston 21dc6f823a
Merge pull request #1484 from turt2live/travis/s2s/read-receipts
Document how read receipts work over federation
6 years ago
Travis Ralston 3de50cbc7f Clarify how /isvalid is meant to always be truthful 6 years ago
Travis Ralston c492fe43b5 Add strict typing to the m.receipt EDU; Fix description of event_ids 6 years ago
Travis Ralston 44d1f8dbe5 s/timeline/event graph 6 years ago
Travis Ralston 8ac6cea58b
Merge pull request #1522 from turt2live/travis/c2s/http-push-gw-required-path
Require the push gateway URL to be of a specific path
6 years ago
Travis Ralston 96896fe5d6 Add a strict type the m.typing EDU 6 years ago
Travis Ralston a53fa9300d Merge remote-tracking branch 'matrix-org/master' into travis/s2s/presence 6 years ago
Travis Ralston 766402a702 Use strict types for the presence EDUs 6 years ago
Travis Ralston 549a25cad9 Add a mention about how currently_active works
Reference: d69decd5c7/synapse/handlers/presence.py (L66-L68)
6 years ago
Travis Ralston ff1afaa8f7 Add a note about how presence lists work 6 years ago
Travis Ralston e7aed3da26 Remove poll/unpoll from presence 6 years ago
Travis Ralston 49ec0a36a8
Merge pull request #1481 from turt2live/travis/s2s/authentication
Define authorization requirements on federation swagger APIs
6 years ago
Travis Ralston 4b9922b641
Merge pull request #1494 from turt2live/travis/general/openid
Document OpenID in the client-server and server-server APIs
6 years ago
Travis Ralston 5b30d33b89
Simpler language 6 years ago
Michael Telatynski 17a0dcc7d3
add newsfragment for #1176 6 years ago
Michael Telatynski 57571ea4ce
Merge branch 'master' of github.com:matrix-org/matrix-doc into notifications/room 6 years ago
Travis Ralston f359b30c6d
Merge pull request #1520 from turt2live/travis/s2s/fix-header
Fix header in server-server API
6 years ago
Travis Ralston c891e4a957 Require the push gateway URL to be of a specific path 6 years ago
Travis Ralston ba51d5960e r0.1.0 release of the Push Gateway specification
Because this is the first release, it has several moving parts to it:
* The version variables have been defined.
* The towncrier changelog has been prepared for future modifications.
* The templating has been updated to better support future versions of the specification.
* A release process document has been created.
6 years ago
Travis Ralston 2eab07ade4 Fix header in server-server API 6 years ago
Travis Ralston 2aa0e7b00f
Merge pull request #1483 from turt2live/travis/s2s/typing
Document how typing notifications work over federation
6 years ago
Travis Ralston 94091a12fb
Merge pull request #1506 from turt2live/travis/general/pushers
Improve documentation for pushers and push gateways
6 years ago
Travis Ralston ef7570e62d Changelog 6 years ago
Travis Ralston 45c68e323a Add general clarity to the /createRoom endpoint
This commit does a number of things:
* Minor formatting/alignment changes
* Document the room_alias response key. This could be deprecated now, or forfeited, if needed.
* Remove the guest_can_join parameter - it is not actually supported
* Document the previously undocumented power_level_content_override parameter
* Clarify that the room_id is required on the response
* More clearly spell out which events are created as part of the request
* Clarify how the room alias becomes the canonical alias
* Clarify how the `visibility` may be used to determine a default preset to apply
* Document the `m.federate` creation content parameter, adding an option for the homeserver to define a default value

References:
* Preset being inferred by the visibility: cd32c19a60/synapse/handlers/room.py (L172-L177)
* Power level content overrides:
  * https://github.com/matrix-org/synapse/blob/master/synapse/handlers/room.py#L198
  * https://github.com/matrix-org/synapse/blob/master/synapse/handlers/room.py#L335-L359
* Aliases becoming canonical: https://github.com/matrix-org/synapse/blob/master/synapse/handlers/room.py#L366-L370
* `m.federate` landing in the create event: https://github.com/matrix-org/synapse/blob/master/synapse/handlers/room.py#L311-L315

Fixes https://github.com/matrix-org/matrix-doc/issues/1243
Fixes https://github.com/matrix-org/matrix-doc/issues/1471
Inspired by https://github.com/matrix-org/matrix-doc/issues/1213
6 years ago
Travis Ralston d6c54b0278 unaccessible isn't a word 6 years ago
Travis Ralston ca87876f1b Clarify that the Authorization header is preferred 6 years ago
Travis Ralston b159f21857 changelog 6 years ago
Travis Ralston 25d01aa431 Dedicate a section on how to use access tokens
Fixes https://github.com/matrix-org/matrix-doc/issues/1042.
6 years ago
Travis Ralston ae02e8834d changelog 6 years ago
Travis Ralston 7751750396 changelog 6 years ago
Travis Ralston fde48e7ee8 Specify how room versioning works
This is the spec PR for https://github.com/matrix-org/matrix-doc/issues/1425

Room version upgrades are not part of MSC1425.

Documented aspects:
* room_version on the create event
* creating a room with a specific version (useful for testing)
* make_join behaviour
* error code documentation
* grammar of room versions

Based upon https://docs.google.com/document/d/1urKgReoHqxX8R_XtySB17dPi-DZcKhqTEL2_s895Wz0/edit
6 years ago
Travis Ralston de961fb7d6 Improve wording on push gateways 6 years ago
Hubert Chathi a264120b38 put server discovery as its own section 6 years ago
Hubert Chathi fcca80dad8 various minor fixes
- formatting fixes
- add examples to homeserver/identity server discovery schema
- replace DNS name with hostname
6 years ago
Hubert Chathi 6a3cf10be9 Merge remote-tracking branch 'origin/master' into well-known 6 years ago
Travis Ralston 6ad71f785e Improve documentation for pushers and push gateways
This fixes a number of formatting issues alongside a few documentation problems:
* The push gateway can actually expect less parameters than previously advertised. This is for user privacy.
* Introduction of the `m.email` pusher for email-capable homeservers.
* Fields not being flagged as required on some endpoints.
* Document the `event_id_only` format

Note: this does not attempt to document push rules, just pushers.

Fixes https://github.com/matrix-org/matrix-doc/issues/1374
Fixes https://github.com/matrix-org/matrix-doc/issues/1087
6 years ago
Travis Ralston a556e33eb9 Spec /3pid/onbind
Fixes https://github.com/matrix-org/matrix-doc/issues/1422
6 years ago
Travis Ralston 88b35d1be5 Clarify how third party invites work
This adds several diagrams to the Client-Server API about how invites
are handled, including what the server is expected to do. This helps
implementors know what they are supposed to do in the common cases,
and infer where needed to get the more complex cases correct.

Although lacking in some areas, this is how third party invites work
today.

A link to the now-improved client-server documentation for third party
invites has been added to the server-server specification. The existing
server-server specification needed no further changes on the subject.

Fixes https://github.com/matrix-org/matrix-doc/issues/1366
6 years ago
Travis Ralston 669d526ea7
Merge pull request #1503 from QMatrixClient/support_oneOf
Support oneOf
6 years ago
Richard van der Hoff 16072538f0 s/settings/events 6 years ago
Kitsune Ral b41eb26124 Document OpenAPI extension
Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Kitsune Ral 9be78f3aa7 Better support enums when they come among oneOf types 6 years ago
Kitsune Ral 88d97b06ae Support oneOf 6 years ago
Hubert Chathi cd4fed509c
convert IS endpoints to Swagger (#1427) 6 years ago
Hubert Chathi 292d334509
document new login identifier object (#1390) 6 years ago
Richard van der Hoff 256ad01fd2 proposal for room version upgrades 6 years ago
Travis Ralston efb1787391
Merge pull request #1478 from turt2live/travis/s2s/doc-cleanup
General clean up on the s2s spec
6 years ago
Travis Ralston 25c77ab2d0 Define authorization requirements on federation swagger APIs 6 years ago
Travis Ralston 50fc1c4d16 Move backfill/get events so that joins, leaves, and invites are together 6 years ago
Travis Ralston 83ea90f7ba Move the Authentication section higher in the spec
It forms the foundation for all the requests under it, so it should appear before the endpoints that need it.
6 years ago
Travis Ralston 32178bb07e Tidy up the specification
* Minor word choice changes
* Remove the now-empty "Protocol URLs" section
6 years ago
Travis Ralston 56dbeeb22a
Merge pull request #1469 from turt2live/travis/s2s/backfill
Improve documentation for backfilling rooms
6 years ago
Travis Ralston 721be47eb1 Describe how get_missing_events actually works
The original text wasn't far off, except for being wrong about what the fields actually do. This commit also adds a bit of clarity for how the server is expected to behave.
6 years ago
Travis Ralston c8a8fdfa8d
Merge pull request #1493 from turt2live/travis/s2s/media
Mention how the content repository works over federation
6 years ago
Travis Ralston 0a7e670715 Document how typing notifications work over federation
Relevant synapse code: d69decd5c7/synapse/handlers/typing.py (L221-L230)
6 years ago
Travis Ralston e03bfbc47b Document how read receipts work over federation
Federation format: d69decd5c7/synapse/handlers/receipts.py (L153-L166)

Population of the fields that the above uses to construct the EDU: d69decd5c7/synapse/handlers/receipts.py (L48-L56)
6 years ago
Travis Ralston 05a2427c73 Document how presence EDUs work between servers
It's worth noting that Synapse does not make use of the `poll` or `unpoll` fields, and therefore the wording has been updated to permit servers to reject users. In the case of synapse, it would automatically reject everyone in the list by nature of ignoring it.
6 years ago
Travis Ralston a77975ba68
Merge pull request #1450 from turt2live/travis/s2s/inviting-rooms
Improve documentation for how non-third party invites work
6 years ago
Travis Ralston 0f8954d839
Merge pull request #1463 from turt2live/travis/s2s/pdus-and-edus
Improve documentation around EDUs and PDUs
6 years ago
Travis Ralston 57eeddd849 Remove unused origin and destination on EDUs 6 years ago
Travis Ralston dcae88c290 Document OpenID in the server-server API
Part of https://github.com/matrix-org/matrix-doc/issues/857

Reference: d69decd5c7/synapse/federation/transport/server.py (L543-L557)
6 years ago
Travis Ralston 8ffac01efe Document OpenID in the client-server API
Part of https://github.com/matrix-org/matrix-doc/issues/857

Reference: d69decd5c7/synapse/rest/client/v2_alpha/openid.py (L31-L58)
6 years ago
Travis Ralston cdcd72c0e3 Fix stray hash on client-server API link
This shouldn't be here, and nothing appears to need it. Removing it now because it has been noticed.
6 years ago
Travis Ralston 0858e7bd23 Mention how the content repository works over federation
We might want to consider promoting the media repo to it's own API, and maybe consider calling it the Media Repo rather than Content Repo.

Source of information: experience.
6 years ago
Travis Ralston cfdbee5fc2 EDU origin and destinations aren't required 6 years ago
Travis Ralston 7ada91787a age_ts isn't real 6 years ago
Travis Ralston 521dcdd5d5 Merge remote-tracking branch 'matrix-org/master' into travis/s2s/backfill 6 years ago
Travis Ralston 35f15ba3d8
Merge pull request #1477 from turt2live/travis/s2s/public-rooms
Document the /publicRooms endpoint for federation
6 years ago
Travis Ralston d712bfc73d
Merge pull request #1479 from turt2live/travis/s2s/server-discovery
Federation: Document the Host header; Clarify how literal IP addresses are handled
6 years ago
Travis Ralston 8724ed99ad
Merge pull request #1480 from turt2live/travis/s2s/swagger-consumes-json
Specify which federation swagger APIs consume JSON
6 years ago
Travis Ralston e10770ae8b
Merge pull request #1475 from turt2live/travis/s2s/event-auth
Document /event_auth and /query_auth
6 years ago
Richard van der Hoff eb45419431
Merge pull request #1490 from matrix-org/dbkr/room_tag_grammar
Fix grammar in room tag spec
6 years ago
Matthew Hodgson f14640acf2
Merge pull request #1491 from florianjacob/1472-spelling-mistake
Fix minor spelling mistake in event retrieval endpoints
6 years ago
Florian Jacob e7cebf670e Fix minor spelling mistake from #1472
Signed-off-by: Florian Jacob <projects+git AT florianjacob )DOT( de>
6 years ago
David Baker 803ef536ba Fix grammar in room tag spec
Have removed the second clause about how the client interprets them:
I was trying to think how to rephrase it but I think in reality it's
probably just redundant.
6 years ago
Will Hunt 6dbbe1b838
Merge pull request #1486 from turt2live/travis/words
Fix wording from bad merge
6 years ago
Travis Ralston dcb39f8890 Fix wording from bad merge 6 years ago
Will Hunt 12692f62e7
Merge pull request #1382 from Half-Shot/hs/dns-to-be-hostname
Replace mentions of DNS name with hostname
6 years ago
Will Hunt c826edf23b Remove dns_name from S2S Api 6 years ago
Will Hunt 7a46bdae02
Spacing 6 years ago
Will Hunt 632101dcde
Merge branch 'master' into hs/dns-to-be-hostname 6 years ago
Travis Ralston db6d466fa1 Go one level deep when finding definitions
This is useful for when we start defining event schemas. This also has a sanity check for ensuring the directory exists, allowing the IS and push API paths to be uncommented.
6 years ago
Travis Ralston dea16e9bbd
Merge pull request #1443 from turt2live/travis/s2s/query
Combine all queries into their own section
6 years ago
Travis Ralston ef9d766dc3 Remove irrelevant TODO
We fixed the EDU, so we don't need this comment.
6 years ago
Travis Ralston 2e6d6e2790 Specify which swagger APIs consume JSON 6 years ago
Travis Ralston 8dd63388e0 invites consume JSON 6 years ago
Travis Ralston 13a2b54bf9 query_auth consumes JSON 6 years ago
Travis Ralston 6ac25d167c get_missing_events consumes JSON 6 years ago
Travis Ralston 5fbaa1deb5 Federation: Document the Host header; Clarify how literal IP addresses are handled
Fixes https://github.com/matrix-org/matrix-doc/issues/1161

The IP address clarification is to add an explicit mention of how to handle the case. The prior documentation assumed that all servers would be resolvable with DNS, and does technically have a fallback to use the fallback port, however making it clear feels like a good idea.
6 years ago
Travis Ralston 96f5510266 Ensure the example is always set to something 6 years ago
Travis Ralston 2ac80d38d7 Document the /publicRooms endpoint for federation
This intentionally doesn't document the third party network aspect of the endpoint. This is scheduled for a later area for dealing with third party network/IDs and is reported as https://github.com/matrix-org/matrix-doc/issues/1476

The client-server response has been broken out to a shared file: both the client-server and server-server /publicRoom endpoints return the same thing, with slightly different inputs.

The inputs (and behaviour) are based upon the docstring here: 43ecfe0b10/synapse/federation/transport/server.py (L583-L612)
6 years ago
Travis Ralston 73958ecbff Document /event_auth and /query_auth
/event_auth is a fairly easy endpoint to determine the use case of. /query_auth is a little harder to investigate and has a fairly interesting purpose: it appears to be used for the sending server to admit defeat and shop around for the right auth chain, correcting it's own perspective as it goes.

/query_auth is based off the following research points in synapse:
* 43ecfe0b10/synapse/handlers/federation.py (L1947-L1990)
* 43ecfe0b10/synapse/handlers/federation.py (L2049-L2187)
* 43ecfe0b10/synapse/handlers/federation.py (L1716-L1761)
* 43ecfe0b10/synapse/federation/federation_server.py (L393-L446)
* https://github.com/matrix-org/synapse/blob/master/synapse/federation/transport/server.py#L482-L487
6 years ago
Travis Ralston 6b67d501e4
Merge branch 'master' into travis/s2s/query 6 years ago
Travis Ralston 3a9fb11c9b
Merge branch 'master' into travis/s2s/backfill 6 years ago
Travis Ralston 329baa1b9d
Merge pull request #1472 from turt2live/travis/s2s/get-event
Document event retrieval endpoints in more detail
6 years ago
Travis Ralston 1578da453b
Merge branch 'master' into travis/s2s/get-event 6 years ago
Travis Ralston 86d7f42173
Merge pull request #1455 from turt2live/travis/s2s/leaving-rooms
Document how leaving rooms/rejecting invites over federation works
6 years ago
Travis Ralston d48f1e1713
Merge pull request #1461 from turt2live/travis/s2s/transactions
Improve documentation on how Transactions work
6 years ago
Erik Johnston dc499bc440 Expand on reverse topological power ordering 6 years ago
Erik Johnston 472f75d9a5 Mention hotel california 6 years ago
Travis Ralston cda88f3b3d Document /get_missing_events
Fixes https://github.com/matrix-org/matrix-doc/issues/1385
6 years ago
Travis Ralston e766606f24 join -> leave 6 years ago
Travis Ralston 0b313dbdd9 Don't explain what a 400 Bad Request is 6 years ago
Travis Ralston 05bb7e1050 Spelling and word choice 6 years ago
Travis Ralston 53d4003d3a manual merge of master into travis/s2s/query 6 years ago
Travis Ralston 48972addbf
Merge pull request #1428 from turt2live/travis/s2s/joining-rooms
Improve the documentation for joining rooms
6 years ago
Travis Ralston a9258ed195 an -> a 6 years ago
Travis Ralston 5596243add origin is required 6 years ago
Travis Ralston 8b7bc60367 list -> array 6 years ago
Travis Ralston 9d474bb819 Document event retrieval endpoints in more detail
This also adds a previously-undocumented endpoint: /state_ids

Backfill is technically not part of this section, however it is being left untouched to make the merge with #1469 easier (which moves it out of the file).

Reference material:
* Some calls to synapse on these endpoints with a relatively simple private room.
6 years ago
Travis Ralston 4b1955f395 Clarify what the auth_events on a PDU are 6 years ago
Erik Johnston fa70e3e486 Mention why auth difference are useful 6 years ago
Erik Johnston 9af5ecd080 Fixup definition of reverse topological power ordering 6 years ago
Erik Johnston 67757a3027 Wrap lines 6 years ago
Travis Ralston 5aef545128 Improve documentation for backfilling rooms
There's not a whole lot to improve here - most of the changes are about reorganization and minor clarifications.
6 years ago
Travis Ralston b96ee3e393
Merge pull request #1423 from turt2live/travis/s2s/keys
Improve the server key exchange portion of the s2s specification
6 years ago
Erik Johnston 3f891681ec Move proposal to have MSC number prefix 6 years ago
Andrew Morgan 54a88eebf0
Merge pull request #1414 from matrix-org/anoa/third_party_cleanup
Clarification on third party fields
6 years ago
Travis Ralston d0e8df8f3f prev_content is an object 6 years ago
Travis Ralston 5027a9a59a Improve documentation around EDUs and PDUs
Clarify fields, improve examples, and make the tables in the spec be generated rather than duplicated.
6 years ago
Travis Ralston ea307b5bdb Support rendering schema definitions in the spec 6 years ago
Ben Parsons 1d019c3757
Merge pull request #1340 from matrix-org/benparsons/prdefence
expect "#<pull-number>" or "/pull/<pull-number>" in PRs field
6 years ago
Ben Parsons d7919b6989 also scrape PRs when the full URL is pasted 6 years ago
Travis Ralston bc3e45d642
Merge pull request #1358 from uhoreg/ignore-emacs-tmp
ignore emacs temporary files
6 years ago
Travis Ralston f5af4d2fb5
Merge pull request #1457 from matrix-org/dbkr/fix_room_tags
Fix room tags spec
6 years ago
Travis Ralston 761b0e4819
Merge pull request #1459 from QMatrixClient/check_examples_windows
Make check_examples.py work on Windows
6 years ago
Travis Ralston 7679b4f1d1 Improve documentation on how Transactions work
The response is based upon various sections of the Synapse code in how it generates a response.

There are no new fields added to the transaction. Originally, `previous_ids` and `pdu_failures` were to be documented however neither of these are used in the real world.
6 years ago
user 5f8967c074 Move TODO. field1, field2... -> fields... 6 years ago
user a2e2ced03b Add reverse-lookup examples. 6 years ago
user d785ac78a3 Remove explode and replace with TODO, require auth on CS 6 years ago
Andrew Morgan 53137a3c53 c/p bug, fix operationIds, move rst docs to md 6 years ago
Andrew Morgan 3e4962f211 Document standardized extensions to OpenAPI v2 6 years ago
Andrew Morgan 273acb277c Change fields to use new extended query array syntax 6 years ago
Andrew Morgan 0ff882fb3b Field definitions for protocol metadata 6 years ago
Kitsune Ral 346db48588 Revert giving get() a default
As per the PR review.

Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Kitsune Ral c6bfac41c5 Bypass jsonschema references resolver
jsonschema's resolver doesn't work with local files on Windows.
resolve_references only works with the local files (on Windows as well)
but that's exactly what's needed for the case (as long as we don't have
remote references, that is).

Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Kitsune Ral d17ec7f184 Check that path starts with file://, not file:///
Because file:/// is not a thing on Windows.
6 years ago
Kitsune Ral 2c9f00d37a Follow PEP 8 6 years ago
Kitsune Ral 31687608dc Factor out common code 6 years ago
Travis Ralston 73b0a03b9b Remove more padding 6 years ago
David Baker 2dc51d416d Ignore stuff in `m.` you don't understand 6 years ago
David Baker 5ddf5374db Missing comma 6 years ago
David Baker f90ed4b77d Make non-namespaced tags verboten 6 years ago
David Baker e4fd088fcc Fix room tags spec 6 years ago
Travis Ralston cafd1a9ab3 Use more modern timestamps 6 years ago
Travis Ralston e27f4a69a0 Key versions must be [0-9a-zA-Z_] 6 years ago
Travis Ralston 8f1a4ae0ea Formatting 6 years ago
Travis Ralston bdccfca726 Timestamps should be in milliseconds 6 years ago
Travis Ralston cad1db2a14 Unpadded means unpadded 6 years ago
Travis Ralston 9dbb627d7b Undo accidental changes to the operation ID 6 years ago
Travis Ralston 2f71703427 Deprecate key ID querying 6 years ago
Travis Ralston 9fdd8a6f96 Document how leaving rooms/rejecting invites over federation works
Fixes https://github.com/matrix-org/matrix-doc/issues/1401

This is very similar to the joining rooms handshake, and much of it is a near copy/paste of the make_join and send_join API. The major difference is the send_leave API doesn't return anything.

References:
* Handling of make_leave: d69decd5c7/synapse/handlers/federation.py (L1285-L1310)
* send_leave route: d69decd5c7/synapse/federation/transport/client.py (L267)
* make_leave route: d69decd5c7/synapse/federation/transport/server.py (L396)
* send_leave returning nothing: d69decd5c7/synapse/handlers/federation.py (L1346)
6 years ago
Travis Ralston 1b374eafbc
Merge pull request #1454 from turt2live/travis/fix-proposals-blocked
Only get issues that are proposals when finding proposals
6 years ago
Travis Ralston 4f24d2101f Only get issues that are proposals when finding proposals
Otherwise we end up with not-proposals showing up in the list.
6 years ago
Travis Ralston fcaa299f81 Include information on how invite_room_state works
This is completely optional, and the events included are up to the sender. 

Sources:
* Structure: d69decd5c7/synapse/handlers/message.py (L896-L904)
* What events are recommended: d69decd5c7/synapse/config/api.py (L30-L40)
6 years ago
Travis Ralston f873bae0cc Improve documentation for how non-third party invites work
The details are fairly straightforward. An `event` has been added to the response body because that's what Synapse returns, despite the spec saying otherwise until now: d69decd5c7/synapse/federation/federation_server.py (L339)
6 years ago
Travis Ralston c2f1c6e78d Improve the joining rooms handshake documentation
There isn't a whole lot to this section that needed work. The section overall lost the table schema in favour of having the endpoints close by.

The directory query is improved in https://github.com/matrix-org/matrix-doc/pull/1443
6 years ago
Travis Ralston 8e97b0ca81 Improve the server key exchange portion of the s2s specification
Most of the text has been shuffled into the swagger definitions to bring it closer to where it matters.

This also attempts to clarify what is out in the wild. Most importantly, the first version of the key exchange is outright removed from the specification. Other research points/questions are:

* What is a "Key ID"?
  * 1241156c82/synapse/rest/key/v2/local_key_resource.py (L81-L83)
  * 1241156c82/synapse/rest/key/v2/local_key_resource.py (L88-L91)
* Returning a cached response if the server throws a 400, 500, or otherwise not-offline status code
  * 1241156c82/synapse/rest/key/v2/remote_key_resource.py (L227-L229)
* `minimum_valid_until_ts` default
  * This branch of the ladder: 1241156c82/synapse/rest/key/v2/remote_key_resource.py (L192)
* Returning empty arrays when querying offline/no servers
  * Queried by hand against matrix.org as a notary server with a fake domain name to query
* Returning all keys even when querying for specific keys
  * Queried by hand using matrix.org as a notary server against a server publishing multiple keys.

The examples and descriptions were also improved as part of this commit.
6 years ago
Travis Ralston d914c402e2 Improve the profile query to have more sane responses
This is a mix of Synapse and Dendrite behaviour, mostly Dendrite. Synapse returns `null` for field values that aren't set, however Dendrite just doesn't return them and instead opts for an empty object.

Further, synapse is lacking in error codes in this area. Dendrite does some additional validation on this API which introduces more errors for bad requests, instead of defaulting to empty objects/200 OK responses.

Likewise, Dendrite returns a 404 when the user is not found while Synapse returns 200 OK/empty object.
6 years ago
Travis Ralston 0ddf578b61 Combine all queries into their own section
This removes the Directory and Profile sections, instead opting to document them as Queries. 

The behaviour of profile queries is based on Synapse's behaviour. A few issues have been opened to improve the behaviour:
* https://github.com/matrix-org/matrix-doc/issues/1434
* https://github.com/matrix-org/matrix-doc/issues/1435
* https://github.com/matrix-org/matrix-doc/issues/1436
* https://github.com/matrix-org/matrix-doc/issues/1437

This fixes https://github.com/matrix-org/matrix-doc/issues/1404
6 years ago
Travis Ralston b0744aa1e9
Merge pull request #1413 from turt2live/travis/s2s/join-swagger
Convert joins/invites to swagger
6 years ago
Travis Ralston af0629a520 Full stop 6 years ago
Travis Ralston 6368b03280
Merge pull request #1449 from turt2live/travis/down-with-travis
Remove Travis CI configuration
6 years ago
Richard van der Hoff 17811bca27
Merge pull request #1448 from turt2live/travis/s2s/pdu-event-id
Add the event_id to unsigned PDUs
6 years ago
Will Hunt bdb881420c
Merge branch 'master' into hs/dns-to-be-hostname 6 years ago
Travis Ralston dcc4b0bfbc Remove Travis CI configuration
We're using Circle CI for testing a bunch of the spec, and so far it has the advantage of being faster. Also, it's not named the same as me.

We can also remove the Travis CI specific check in generate-matrix-org-assets because Circle CI doesn't touch this.
6 years ago
Travis Ralston 9f399a08fe Full stops
I'm never going to remember these
6 years ago
Travis Ralston 0d1b82a601 Add the event_id to unsigned PDUs
This went missing in the swagger conversion. The example already has an event_id.
6 years ago
Travis Ralston eaf175056f Full stops 6 years ago
Travis Ralston 797aca87bd Update the check_examples.py script to resolve references
The script previously wasn't chasing down valid references in examples.
6 years ago
Travis Ralston 7314405904 Update comment 6 years ago
Travis Ralston 45ec8269e6 Fill out the required fields in all the examples 6 years ago
Travis Ralston 9c1c541a38 Remove extra "required" declarations
"required" is something that is handled as an array, and these are invalid. The `type` in both cases is covered by a required array elsewhere
6 years ago
Travis Ralston 004998b98f Convert invites to swagger
The whole section reads like a description for the endpoint, and has been replaced by the swagger definition now (rather than at a later stage). All the same information should be kept.
6 years ago
Travis Ralston f09c4fd286 Convert joins to swagger 6 years ago
Travis Ralston 24e531a896
Merge pull request #1406 from turt2live/travis/s2s/transactions-swagger
Convert things that mention "Transaction" to swagger
6 years ago
Travis Ralston acf9632afc Enlist the examples 6 years ago
Travis Ralston 9fa838d3e8 Improve type naming 6 years ago
Travis Ralston 5ade15534d Remove extra branch in example generation 6 years ago
Travis Ralston 042772aaf5 Make nested titles better 6 years ago
Michael Telatynski 2790c1f069
Merge pull request #1289 from matrix-org/t3chguy/group_id
basic spec for group IDs, mostly copied from User IDs as they share grammar
6 years ago
Travis Ralston cb4fcd1d09 Merge remote-tracking branch 'matrix-org/master' into travis/s2s/transactions-swagger 6 years ago
Travis Ralston a4e5a461f9 Improve handing of lists appearing in items 6 years ago
Travis Ralston 88beaf4ad8 Completely remove /pull
It's not been in use for years - we can safely let it disappear
6 years ago
Travis Ralston 21c4af70a9 Fix schema definitions (spelling, attributes) 6 years ago
Will Hunt 26505533dd drop dns_name = host in favour of host 6 years ago
Ben Parsons 01d01cfbbb
Merge pull request #1440 from matrix-org/benp/clarifyintro
Improve discoverability of /docs/spec/intro/ document by including content in /docs/spec/
6 years ago
Ben Parsons 07aeaadef9 update links which used to point to docs/spec/intro 6 years ago
Matthew Hodgson 4fdc22dc90
Merge pull request #1447 from Cadair/gilesconfig
Fix typo in Giles config
6 years ago
Stuart Mumford 7c71b697e7
Fix typo in Giles config
Signed-off-by: Stuart Mumford <stuart@cadair.com>
6 years ago
Travis Ralston e6389e8ffc
Merge pull request #1445 from Cadair/gilesconfig
Add config for Giles
6 years ago
Stuart Mumford 03b74476f1
Add config for Giles
Signed-off-by: Stuart Mumford <stuart@cadair.com>
6 years ago
Travis Ralston 2aafde4549
Merge pull request #1419 from turt2live/travis/s2s/3pinvites-swagger
Convert third party invite exchange to swagger
6 years ago
Matthew Hodgson 4f97b80dcc
fix MD 6 years ago
Erik Johnston bbd909d09f State Resolution: Reloaded MSC 6 years ago
Travis Ralston 42447dafb4
Merge pull request #1439 from Cadair/swagger_circle
Correctly provide swagger UI as a build on Circle
6 years ago
Stuart Mumford 59bdcb5615
Clone and configure the swagger UI as a circle CI artifact
Signed-off-by: Stuart Mumford <stuart@cadair.com>
6 years ago
Ben Parsons e7c79f2bd4 avoid .rst link conflict warnings 6 years ago
Ben Parsons 54d6d58fff naively move content from intro.rst to index.rst 6 years ago
Travis Ralston 2db970ad6d
Merge pull request #1431 from turt2live/travis/swagger-py3
Use python3 in dump-swagger.py
6 years ago
Travis Ralston 2dae0c9c49 use python3 in dump-swagger.py 6 years ago
Travis Ralston a84a9a6af7
Merge pull request #1405 from turt2live/travis/s2s/keys-swagger
Convert server keys to swagger
6 years ago
Travis Ralston 89384c96c1 Full stops, language. 6 years ago
Travis Ralston e226b60c7f Merge remote-tracking branch 'matrix-org/master' into travis/s2s/transactions-swagger 6 years ago
Travis Ralston bafdcf3640 Full stops, spelling, and operation IDs. 6 years ago
Travis Ralston 7cb918407d Merge remote-tracking branch 'matrix-org/master' into travis/s2s/keys-swagger 6 years ago
Travis Ralston 2e5f530cca
Merge pull request #1373 from turt2live/travis/better-errors
Spell out rate limit error schema & give all errors schemas
6 years ago
Travis Ralston 9e6f2b2fd0 Add newsfragment 6 years ago
Travis Ralston 05fb94e195 Merge remote-tracking branch 'matrix-org/master' into travis/better-errors 6 years ago
Travis Ralston 3ff1b0ddea
Merge pull request #1389 from turt2live/travis/towncrier
Use Towncrier to generate the unstable changelog
6 years ago
Ben Parsons 57ce0c3691
Merge pull request #1393 from matrix-org/travis/proposals-pagination
Improve pagination handling in proposals.py
6 years ago
Travis Ralston 98c607bff5 Advertise python 3.4 support and use that in Travis CI
We also don't need to update virtualenv, or use python3.5 specific
packages.
6 years ago
Travis Ralston cfac4a1ab3 Use towncrier 18.6.0 final 6 years ago
Travis Ralston 272f3d8432 Fix documentation link 6 years ago
Travis Ralston cf93c88337 Convert third party invite exchange to swagger 6 years ago
Travis Ralston baf19cc741 Add newsfragment for 1379 6 years ago
Travis Ralston 25678f7fd6 Merge remote-tracking branch 'matrix-org/master' into travis/towncrier 6 years ago
Richard van der Hoff 7ba9979fa4
Merge pull request #1386 from Cadair/circleci
Add a config for circleci which builds the doc preview
6 years ago
Travis Ralston d2b0b1bbda
Merge pull request #1379 from turt2live/travis/preset-guests
Document guest_access in /createRoom presets; Make presets a table
6 years ago
Travis Ralston e001a94612
Merge pull request #1412 from turt2live/travis/s2s/query
Convert the general query API to swagger
6 years ago
Travis Ralston e5da1e1741 Improve upon the transaction schema and examples
Reduces data duplication and makes the objects more reusable for other areas of the spec
6 years ago
Travis Ralston 51faf8ed2e Convert the general query API to swagger
Includes "moving" the directory query API into the same area. This will make more sense once the other query types are specified.
6 years ago
Travis Ralston 1e500fd005 Add newsfragment for third party network endpoints
Specifying multiple entries for the same PR would be covered under: https://github.com/hawkowl/towncrier/pull/119
6 years ago
Travis Ralston 67665fa3a6 Merge remote-tracking branch 'matrix-org/master' into travis/towncrier 6 years ago
Travis Ralston 1829589d23 Convert 3pn errors to new definition 6 years ago
Travis Ralston 197c36c520 Merge remote-tracking branch 'matrix-org/master' into travis/better-errors 6 years ago
Travis Ralston 91c59e7384
Merge pull request #1353 from matrix-org/anoa/as_thirdparty_lookup
Thirdparty Entity Lookup API
6 years ago
Travis Ralston 0faae54fc1
Merge pull request #1400 from turt2live/travis/search-improvements
Clarify some of the properties on the search result
6 years ago
Travis Ralston bc29f2a8c8 Merge branch 'travis/towncrier2' into travis/towncrier 6 years ago
Travis Ralston 527a5a2fdc Require sudo
see also: https://github.com/travis-ci/travis-ci/issues/9875
6 years ago
Travis Ralston 8a4ba8c5ca Use Popen rather than run() 6 years ago
Travis Ralston af7460088f Use six for url quoting 6 years ago
Andrew Morgan 291a4dfc76 Third party lookup module. Fix wording 6 years ago
Travis Ralston 6e3993effe Merge remote-tracking branch 'matrix-org/master' into travis/preset-guests 6 years ago
Travis Ralston 84e07a0c10 Convert errors in presence.yaml 6 years ago
Travis Ralston 16125f16f5 Spec retry_after_ms on ratelimit errors 6 years ago
Travis Ralston 8b513b9f8e Merge remote-tracking branch 'matrix-org/master' into travis/better-errors 6 years ago
Andrew Morgan 8999887245 Path -> query params 6 years ago
Andrew Morgan 9bde78ac28 $ref needs to be under a schema: 6 years ago
Andrew Morgan 114bcf1a2e Use $ref, clean up, fix errors, AS is now a C-S module. 6 years ago
Travis Ralston 374ec00046 Convert things that mention "Transaction" to swagger
There's two kinds of transactions currently: one with EDUs and one without. The one with EDUs is only used on /send, however the schema is still somewhat worth splitting out for simplicity.

The examples are brought apart to make them slightly more reusable for when they get dumped into the relevant sections of the spec (see TODO in server_server_api.rst)

Further, the Transactions stuff introduces tuples to the spec. The units.py has been updated to support this.
6 years ago
Travis Ralston 3e13ec2841 Fix required properties in POST /query 6 years ago
Travis Ralston 96889f16e9 Split out and fix the /server and /query key APIs 6 years ago
Travis Ralston bd2c0b7c98 Convert server keys to swagger 6 years ago
Travis Ralston e164392d93 Merge remote-tracking branch 'matrix-org/master' into travis/towncrier 6 years ago
Travis Ralston a8461e647f Improve the error handling for towncrier
The changelog shows up via stdout, everything else via stderr. We dump as much information as we can into the changelog to make debugging errors easier.
6 years ago
Travis Ralston 808a82e811
Merge pull request #1397 from turt2live/travis/text-format
Document message formats as-is
6 years ago
Travis Ralston 905ef6dadd Have the towncrier generator complain if the output looks wrong 6 years ago
Travis Ralston ebc7db12fb Remove extraneous list casting 6 years ago
Travis Ralston 9e0fafbcd4 Remove debugging line 6 years ago
Travis Ralston b6f9e13d46 Add newsfragment 6 years ago
Travis Ralston fbee83d5cf Clarify some of the properties on the search result
Fixes https://github.com/matrix-org/matrix-doc/issues/773
6 years ago
Travis Ralston c999b7c2e2 Add newsfragment 6 years ago
Travis Ralston 55e4e90ab1 Document message formats as-is
This is likely to later be replaced by mixins, however this is being documented now so clients aren't left in the dark.

Fixes https://github.com/matrix-org/matrix-doc/issues/917
6 years ago
Travis Ralston e9f7d2096e Add changelog entry for CORS 6 years ago
Travis Ralston 8fe8fb9ba1 Merge remote-tracking branch 'matrix-org/master' into travis/towncrier 6 years ago
Travis Ralston c79010f0d6
Merge pull request #1365 from turt2live/travis/cors
Document the CORS/preflight headers
6 years ago
Travis Ralston 3a9cfd490f
Improve pagination handling in proposals.py
Previously if multiple pages were returned then the script would lose the results. 

A check to ensure the response is an array was also added. This helps avoid somewhat cryptic errors when iterating over non-lists (eg: error messages, bad output, etc)
6 years ago
Travis Ralston 423d5593f5 Generify how OPTIONS and CORS are handled 6 years ago
Travis Ralston 550f95570b Fix regex for some versions of python 6 years ago
Travis Ralston 7ada960206 Fix the Travis CI build to work on 3.5 6 years ago
Travis Ralston c65c6e2e70 Add changelog entries removed in the merge from master 6 years ago
Travis Ralston f418c20ff2 Merge remote-tracking branch 'matrix-org/master' into travis/towncrier 6 years ago
Travis Ralston 08f6912825 Ask Travis to install 3.5 explicitly 6 years ago
Travis Ralston 44db84f3d8
Merge pull request #1371 from turt2live/travis/all-the-auth
Getting presence requires authentication
6 years ago
Travis Ralston a4f8e0807a Print the python version being used in the CI build. 6 years ago
Travis Ralston f68c82bd6c Don't let the newsfragments wink out of existence 6 years ago
Travis Ralston 63b926a4aa Make Travis CI use python 3 6 years ago
Travis Ralston 34089e302c Add general documentation for maintainers 6 years ago
Travis Ralston c2f85788de Add documentation about how to add to the changelog 6 years ago
Travis Ralston ee9abc5fd7 Convert unstable changelog to towncrier 6 years ago
Travis Ralston 9277e4c52d Add initial towncrier support 6 years ago
Travis Ralston f54d5a4039 Convert build scripts to python 3 6 years ago
Travis Ralston d7a979da63 Merge remote-tracking branch 'matrix-org/master' into travis/all-the-auth 6 years ago
Travis Ralston 516000bdc3 Fix error reference in media repo 6 years ago
Travis Ralston dd9414472b Merge remote-tracking branch 'matrix-org/master' into travis/cors 6 years ago
Travis Ralston ab75fc4b20 Merge remote-tracking branch 'matrix-org/master' into travis/better-errors 6 years ago
Travis Ralston e1885e4cd3
Merge pull request #1362 from turt2live/travis/spec-reason
Explicitly declare that the kick/ban reason will be on the membership event
6 years ago
Travis Ralston e7a6ff1064
Merge branch 'master' into travis/spec-reason 6 years ago
Travis Ralston 1722734a51
Merge pull request #1364 from turt2live/travis/server-name-join
Document the server_name query parameter on /join/{roomIdOrAlias}
6 years ago
Will Hunt ff3c379339
Merge pull request #1189 from Half-Shot/hs/upload-limits
GET media/config 🎉
6 years ago
Will Hunt 77f4ac54aa
Wordy intro sentence for description 6 years ago
Will Hunt 2e6cc8045c
Better indent of description 6 years ago
Will Hunt d5ce87e956
Split summary up into description and summary 6 years ago
Stuart Mumford be5232914a
Maybe a swagger 6 years ago
Stuart Mumford b7c3a74022
artifacts 6 years ago
Stuart Mumford fe43b79e73
what's even the point 6 years ago
Stuart Mumford 86b0045195
virtualenvs are the worst 6 years ago
Stuart Mumford d1c8ec9e48
add circle config 6 years ago
Travis Ralston bbf63d116c Fix reference to error.yaml in forget room API 6 years ago
Travis Ralston 55c27d6212
Merge branch 'master' into travis/better-errors 6 years ago
Richard van der Hoff 3f8aa2eccd
Merge pull request #1369 from turt2live/travis/apis-unstable
Clearly say that the server/server API is unstable and subject to change
6 years ago
Richard van der Hoff f9a0a49e96 Add a bunch more people to the speculator trusted list 6 years ago
Travis Ralston 4485b2f025
Merge branch 'master' into travis/server-name-join 6 years ago
Travis Ralston 9abbbfb81e
Merge pull request #1378 from turt2live/travis/dont-forget-to-leave
Document that clients must leave before forgetting rooms
6 years ago
Travis Ralston c1c1f28c79
Merge branch 'master' into travis/dont-forget-to-leave 6 years ago
Travis Ralston 3935861445
Merge pull request #1380 from turt2live/travis/define-roomevent
Define RoomEvent on /rooms/{roomId}/messages
6 years ago
Travis Ralston f98f603048
Merge pull request #1381 from turt2live/travis/general-clarifications
Rename some titles to avoid confusion between request and response schemas
6 years ago
Andrew Morgan e81e0328c2 Fix single protocol metadata endpoint path, remove 500s 6 years ago
Travis Ralston 16860ddd22 De-quote 6 years ago
Travis Ralston 887a6fb18f
Merge pull request #1336 from remram44/patch-1
Consolidate backwards-compatible client changes
6 years ago
Andrew Morgan 4c38012122 I can spell 6 years ago
Andrew Morgan 8e22e9e85a Fix title underline length 6 years ago
Andrew Morgan e6218b56ab Switch properties to schema 6 years ago
Andrew Morgan a6dad76c01 Fix indentation 6 years ago
Andrew Morgan cc3724b54a fix indentation, error messages. add rest of PR 6 years ago
Will Hunt 92f3989f2b Dirty replace of DNS name -> hostname 6 years ago
Travis Ralston 0867ab2365 Add to changelog 6 years ago
Kitsune Ral dfdc5f9bef search.yaml: Rename some titles to avoid confusion between request and response schemas
Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Travis Ralston 436b410698 Document the error code when someone tries to forget a room they are in 6 years ago
Travis Ralston e0cdfd8897
Merge branch 'master' into patch-1 6 years ago
Travis Ralston 95e8f1bdde Add to changelog 6 years ago
Travis Ralston e409b40fad Add to changelog 6 years ago
Travis Ralston 9b1f3a1f47 Document guest_access in /createRoom presets; Make presets a table
Previously the presets ended up being rendered as one long string (the indentation was not respected). This was hard to read and wasn't very clear.

Now that there's a larger amount of information, it makes some sense to put it into a table. Tables don't work nicely when nested in another table, so the preset definitions have been moved into the general route description.

This commit also updates the documentation to reference `preset`, not `presets` given the param is singular.

Fixes https://github.com/matrix-org/matrix-doc/issues/881
6 years ago
Hubert Chathi ce1e2c0904 incorporate feedback from reviewers 6 years ago
Travis Ralston a19bbc8089 Add to changelog 6 years ago
Travis Ralston 9e796192e4 Document that clients must leave before forgetting rooms
Fixes https://github.com/matrix-org/matrix-doc/issues/1011
6 years ago
Hubert Chathi 5bc29eb11c remove accidentally-committed backup file 6 years ago
Travis Ralston 05c85fd840 Spec the 403 on GET /presence/{userId}/status 6 years ago
Travis Ralston 0779d81e52 Clarify which requests should have CORS headers
Spoilers: all of them.
6 years ago
Travis Ralston 67e74bd8c5 Merge remote-tracking branch 'matrix-org/master' into travis/cors 6 years ago
Kitsune Ral 981d1004bc Add a missing $ref 6 years ago
Travis Ralston 442ad99727
Merge pull request #1273 from QMatrixClient/content-repo-use-default
Add 'default' to formally enforce the description
6 years ago
Travis Ralston 705423086a Add to changelog 6 years ago
Travis Ralston caa6d4d9ad Give all errors a schema reference
This just helps keep an overall structure
6 years ago
Travis Ralston 7cd22f5690 Describe the rate limit error everywhere
Fixes https://github.com/matrix-org/matrix-doc/issues/1153
6 years ago
Travis Ralston b61fe20171 Add to changelog 6 years ago
Travis Ralston 1f12637d3f Getting presence requires authentication 6 years ago
Travis Ralston 2fc2926461 Clearly say that the server/server API is unstable and subject to change 6 years ago
Travis Ralston eb0a8c06ce
Merge pull request #1361 from turt2live/travis/spec-get-login
Document the GET version of /login
6 years ago
Travis Ralston 8bd1fe9908
Merge pull request #1357 from turt2live/travis/fix-windows
Use filepath.To/FromSlash instead of manually replacing slashes
6 years ago
Matthew Hodgson d02e9b875b
Merge pull request #1355 from matrix-org/benpa/travisci-ignore-proposals
don't run proposals.py step if in TravisCI environment
6 years ago
Matthew Hodgson 4ce61c9f04
Merge pull request #1360 from turt2live/travis/trust-more-people
Add uhoreg and myself as trusted speculator people
6 years ago
Travis Ralston a6b0125da6 Our swagger doesn't support explode yet 6 years ago
Travis Ralston b8c8d85926 Add to changelog 6 years ago
Travis Ralston 4ca54404fa Document the CORS/preflight headers
Fixes https://github.com/matrix-org/matrix-doc/issues/1006
6 years ago
Travis Ralston 625913d797 Add to changelog 6 years ago
Travis Ralston cbbdcbcf01 Show arrays in the query string as "[type]" rather than "array"
Otherwise the question "array of what?" is raised.
6 years ago
Travis Ralston d279fdafa6 Document the server_name query parameter on /join/{roomIdOrAlias}
Fixes https://github.com/matrix-org/matrix-doc/issues/904
6 years ago
Travis Ralston 5b6ad6f39d Add to changelog 6 years ago
Travis Ralston 7d94aaace8 Explicitly declare that the kick/ban reason will be on the membership event
Fixes https://github.com/matrix-org/matrix-doc/issues/798
6 years ago
Travis Ralston 17c9cde0ec Add to changelog 6 years ago
Travis Ralston 2409c84968 Document the GET version of /login
Fixes https://github.com/matrix-org/matrix-doc/issues/677
6 years ago
Travis Ralston aac7b848f7 Add uhoreg and myself as trusted speculator people 6 years ago
Hubert Chathi 0dd330962d initial draft of .well-known discovery 6 years ago
Hubert Chathi a2e0d0382c ignore emacs temporary files
and fix ignoring of dotfiles
6 years ago
Travis Ralston 85e1962f9c Use filepath.To/FromSlash instead of manually replacing slashes
see https://github.com/matrix-org/matrix-doc/pull/1356#discussion_r199897557
6 years ago
Travis Ralston 26a62bc07f
Merge pull request #1356 from turt2live/travis/windows-2.0
Make the builder happier with Windows environments
6 years ago
Travis Ralston eb21a71b70 Make the builder happier with Windows environments
There's two main issues with Windows environments:
* Slashes
* Windows still notifies about some directories we've ignored, therefore we need to filter them too

It's not super pretty, but it does work.
6 years ago
Ben Parsons 5803c9cace don't run proposals.py step if in TravisCI environment 6 years ago
Andrew Morgan d73b247688 3PE lookup service 6 years ago
Will Hunt a1309d636c
Remove "Clients should handle gracefully" sentence 6 years ago
Will Hunt 41c18bed0f
+repository 6 years ago
Will Hunt 21e957edfb
Better note for /config 6 years ago
Will Hunt 1820df02d9
media => content repository 6 years ago
Will Hunt 091b2a6771
Hard limit on requiring accessToken. Rephrased some sections 6 years ago
Will Hunt eeaf4385d7
Speling is my weakniss 6 years ago
Will Hunt 80935eadcf
Update content-repo.yaml 6 years ago
Will Hunt ddc152347b
Extending words and rate limiting 6 years ago
Matthew Hodgson c1b630e975
Merge pull request #1342 from fadeAce/patch-1
Update keys.yaml
6 years ago
Terrill Tsang f032d6d1c3
Update keys.yaml
Fixed an end to end document bug , a format misleading in an claim response
6 years ago
Ben Parsons e52d94bea9 ignore malformed PR items 6 years ago
Remi Rampin 20200264e1
Consolidate backwards-compatible client changes 6 years ago
Will Hunt 1140c0c05b Document StateEvent for /createRoom (#1329) 6 years ago
Richard van der Hoff 2605c75f92
typo 6 years ago
Richard van der Hoff c84066df89
do not use 'optional' in descriptions. 6 years ago
Richard van der Hoff dfa4af5c19
record that "identity server" has two words 6 years ago
Will Hunt 6d0a56d190
Suggestions by Travis tend to be sensible ones 6 years ago
Will Hunt 6b9640bcb4
upload_size => m.upload.size 6 years ago
Will Hunt 077cd04a6d
/limits => /config 6 years ago
Matthew Hodgson 4fcf7252b1
Merge pull request #1317 from turt2live/patch-1
Don't suggest reusing old issues for spec proposals
6 years ago
Travis Ralston d647169806
Add more strength to the suggestion to find existing issues
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston fc402c296b
Don't suggest reusing old issues for spec proposals
In practice this was confusing for people, so instead we should encourage people to create new issues and reference the existing ones.

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Matthew Hodgson 8fe88d2590
Merge pull request #1311 from matrix-org/anoa/small_fixes
Small grammatical and stylistic fixes
6 years ago
user 54c3003b74 newly joined -> newly-joined 6 years ago
user 5ab5fe08d1 Small grammatical and stylistic fixes 6 years ago
Michael Telatynski 39e33d0cbb
Merge pull request #1291 from matrix-org/anoa/fix_typo_events
Fix typo
6 years ago
Andrew Morgan 2e5cdaf51c
Fix typo
"To stream events all the events" -> "To stream all the events"
6 years ago
Michael Telatynski c3f66e1814
basic spec for group IDs, mostly copied from User IDs as they share grammar 6 years ago
Michael Kaye 5e1c7350ae
Merge pull request #1283 from matrix-org/michaelkaye/re_add_proposals
Add back proposals.rst with a link to the actual location
6 years ago
Michael Kaye 72282577bf Add back proposals.rst with a link to the actual location 6 years ago
Ben Parsons 77117ea8ee
Merge pull request #1282 from matrix-org/benparsons/proposalsCI
include proposals.py in matrix-doc CI
6 years ago
Ben Parsons 18ba0d6d81 remove propsals.rst as it will be regenerated 6 years ago
Ben Parsons 0c1ba33eba include proposals.py in matrix-doc CI 6 years ago
Ben Parsons a552c1853e update for MSC 701 6 years ago
Richard van der Hoff cefd1a832e
server_server_api: fix typo in auth section
fixes "destintation" typo
6 years ago
Ben Parsons ffb8037af2 update MSC list 6 years ago
Richard van der Hoff 92cf91dc69
Merge pull request #1278 from matrix-org/t3chguy/search_docs
Fix two issues with /search docs
6 years ago
Michael Telatynski 968ee0f613
add changelog 6 years ago
Michael Telatynski df5455de1f
re-arrange fields in example /search request to make them a valid request. 6 years ago
Michael Telatynski 64f97c5b78
add example of highlights field in /search response 6 years ago
Michael Telatynski 4ff5887c91
spec the highlights field in /search response 6 years ago
Ben Parsons ee98082a60 update MSC1270 6 years ago
Kitsune Ral 42fba1a87e Add 'default' to formally enforce the description
A quick follow up on #1265.

Signed-off-by: Alexey Rusakov <Alexey.Rusakov@pm.me>
6 years ago
Richard van der Hoff b00131a774
Merge pull request #1265 from turt2live/travis/clarify-routing-loops
Document the allow_remote query param on the media repo
6 years ago
Travis Ralston 3dc54b20c6
Merge branch 'master' into travis/clarify-routing-loops 6 years ago
Richard van der Hoff 9191b0fa82
Merge pull request #1264 from turt2live/travis/reporting
Document how to report content
6 years ago
Travis Ralston 8610effad7
Merge branch 'master' into travis/reporting 6 years ago
Richard van der Hoff f17195529b
Merge pull request #1263 from turt2live/travis/logout_all
Document /logout/all
6 years ago
Ben Parsons 7a44351a34 update following rvdh spec blitz 6 years ago
Ben Parsons cb00fc35ab git checkout master 6 years ago
Ben Parsons d1c27349b2 Merge branch 'master' of https://github.com/matrix-org/matrix-doc 6 years ago
Richard van der Hoff 419bf1e52c Fix continuserv instructions
As per f04b17f1c9

Also dedup continuserv readme
6 years ago
Ben Parsons 7a82a5d427 correct proposals.py 6 years ago
Ben Parsons 34090b24c4 prepare proposals.py for CI 6 years ago
user d6fb5afd16 Clarified group_id group visibility, url possibilities, regex starters
Changed Application Service capatalization to be consistent with the
rest of the document.
6 years ago
Travis Ralston 8cbd802650 Add allow_remote to the changelog
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 7cc15f3315 Document the allow_remote query param on the media repo
Fixes https://github.com/matrix-org/matrix-doc/issues/837

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 352f1b7776 Add report content API to changelog
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 9037f506ac Document how to report content
Fixes: https://github.com/matrix-org/matrix-doc/issues/739

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 59ea10b842 Add changelog entry for /logout/all
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 4278cd56a4 Document /logout/all
Fixes https://github.com/matrix-org/matrix-doc/issues/700

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Andrew Morgan 9ca62edda0 Document new application service registration file options. 6 years ago
Ben Parsons c3062b7db6 Include Proposals Page Title, update MSC1256 6 years ago
Ben Parsons 434e2949f9 include #1256 6 years ago
Ben Parsons 8d550d2166 force re-render 6 years ago
Ben Parsons 0b776b0e9c link to proposals page from index 6 years ago
Matthew Hodgson 4609220084
Merge pull request #1247 from matrix-construct/master
Fix typo.
6 years ago
Jason Volk 2a6895e759 Fix typo. 6 years ago
Ben Parsons 663e1a5ebe Update some text 6 years ago
Richard van der Hoff 3967833a1a
Merge pull request #1244 from florianjacob/room_member_authentication
/rooms/{roomId}/members: specify access_token requirement
6 years ago
Ben Parsons f09f9e186a
Merge pull request #1240 from matrix-org/proposals
Spec Proposals page on matrix.org
6 years ago
Ben Parsons 9873a2a0ac link from the spec intro page 6 years ago
Ben Parsons 38adc7df06 latest generated proposals 6 years ago
Matthew Hodgson 8440179ecf clarify shepherds and clarify 'greater benefit'
as per https://github.com/matrix-org/matrix-doc/pull/1240#discussion_r188459957
6 years ago
Florian Jacob cc54a4f8cb /rooms/{roomId}/members: specify access_token requirement
as the behaviour of which members the users see is user-specific
and therefore requires authentication.

Signed-off-by: Florian Jacob <projects+git AT florianjacob )DOT( de>
6 years ago
Richard van der Hoff bb39bea44d
Merge pull request #1169 from mujx/event-id-format
Use the correct event_id format on examples
6 years ago
Richard van der Hoff 14da8ff4b0
Merge pull request #1239 from Zil0/delete_devices
Document delete_devices endpoint
6 years ago
Ben Parsons 4d3c4225b2 include proposal template link 6 years ago
Valentin Deniaud 55b512c968 add delete_devices endpoint
fix #1041
6 years ago
Matthew Hodgson 84524df783 spell out requirements for doc editing 6 years ago
Ben Parsons 73b28612ec updates from feedback on pull 6 years ago
Matthew Hodgson 4c0743ef65 fix wording 6 years ago
Matthew Hodgson 10a8cb3f67 put handwavey timings on state transitions 6 years ago
Ben Parsons 4d59abebf0 handle PR links from GitHub 6 years ago
Ben Parsons d338f18927 handle EOF gracefully when searching for Authors and PRs 6 years ago
Matthew Hodgson 4cdb4f105c clarify architecture 6 years ago
Matthew Hodgson 8096bf0039 perms and apostrophes 6 years ago
Matthew Hodgson 3e10a5a24a enter #matrix-spec:matrix.org 6 years ago
Matthew Hodgson 42fd3f34e4 shift stuff from contributing.rst to the new proposals page 6 years ago
Matthew Hodgson 3b736388ce clarify governance 6 years ago
Ben Parsons 3cef79f31d sublist formatting 6 years ago
Ben Parsons f1cc26dfd7 sort output by Created date per-table 6 years ago
Matthew Hodgson e27f674fb9 incept dates 6 years ago
Matthew Hodgson 29348c6190 improve wording 6 years ago
Matthew Hodgson 714767c95a explain proposal neutrality 6 years ago
Matthew Hodgson 755c9473fb more tweaks 6 years ago
Matthew Hodgson 07bf61b33b more tweaks 6 years ago
Matthew Hodgson 93681458d6 more tweaks 6 years ago
Matthew Hodgson cb882ba12d more tweaks 6 years ago
Matthew Hodgson 8c469e51cb lots of tweaks to the MSC verbiage 6 years ago
Valentin Deniaud 34140a785d fix typo in delete device 6 years ago
Ben Parsons b8f38b21a7 update introductory text 6 years ago
Ben Parsons e87f1f2619 include PRs in tables 6 years ago
Ben Parsons 120fa92078 update intro 6 years ago
Ben Parsons 867307af8b new flow 6 years ago
Ben Parsons 3b4e56c4e0 handle dd/mm/yyyy and yyyy-mm-dd dates in text 6 years ago
Ben Parsons 3b84de383c cleanup and include all content 6 years ago
Michael Telatynski 992bc8828a
Merge branches 'master' and 'notifications/room' of github.com:matrix-org/matrix-doc into notifications/room 6 years ago
Ben Parsons cbdd33a5f5 single authors and shepherds link correctly 6 years ago
Ben Parsons 73b7faddd4 handle multiple Google Docs 6 years ago
Ben Parsons 866b0b6348 I mostly play with ascii art 6 years ago
Ben Parsons dc2b53318b prettify ID column 6 years ago
Ben Parsons a78f7b38e9 generator is now usable 6 years ago
Ben Parsons 9e37d15c8f little ascii diagram of process 6 years ago
Ben Parsons c58dc59ffe separate tables by label 6 years ago
Ben Parsons 1f7fbefd53 start using a table 6 years ago
Will Hunt ffc8ee298a
a upload > an upload 6 years ago
Will Hunt de6fe1b76e Add note about auth 6 years ago
Will Hunt c9abf36097
size > upload_size 6 years ago
Will Hunt 2783820f98 Initial draft of GET media/limits 6 years ago
Ben Parsons e18aa30fd2 start generating new proposals page 6 years ago
Matthew Hodgson 5274e9c146
Merge pull request #1180 from matrix-construct/master
Fix typo.
6 years ago
Jason Volk 2802fdea7e Fix typo. 6 years ago
Matthew Hodgson 044662fd1a
Merge pull request #1178 from matrix-construct/master
Fix typo.
6 years ago
Jason Volk 048de9803e Fix typo. 6 years ago
Richard van der Hoff 3c7db643c3
Update documentation_style.rst
spell homeserver
6 years ago
Michael Telatynski c305317fa5
explicitly specify @room 6 years ago
Michael Telatynski 60ae73b179
specify default 6 years ago
Michael Telatynski 1e656d836e
spec notifications key on power level event and provide @room in example 6 years ago
Konstantinos Sideris 7448ef0db0 Use the correct event_id format on examples
Signed-off-by: Konstantinos Sideris <sideris.konstantin@gmail.com>
6 years ago
Richard van der Hoff cac0dd7ff7 travis: Limit git checkout depth 6 years ago
Richard van der Hoff f04b17f1c9 Fix path to fsnotify
Apparently this should be referred to as gopkg.in/fsnotify/fsnotify.v1. I'm not
sure what has changed to stop the old format working.
6 years ago
Richard van der Hoff f20fe41e79 travis: disable the installation step 6 years ago
Richard Lewis 8d05f80cec Sticker messages (m.sticker) (#1158) 6 years ago
Andrew Morgan cd26c170de Specify token used in /login is not an Access Token (#1155)
* Specify token used in /login is not an Access Token

While working through the implementation of /login in Dendrite, it was
confusing what the contents of the token attribute in the login request
body referred to. Initially, I thought it was an access token, which led
to further confusion. This commit explicitly states that the token is a
login token, which is separate from an access token, hopefully reducing
confusion for future readers.

Signed-off-by: Andrew Morgan (https://amorgan.xyz) <andrew@amorgan.xyz>
6 years ago
Richard van der Hoff 8e97ec8bad make the speculator work for rick 6 years ago
Richard van der Hoff 72977014eb
Merge pull request #1159 from vyomshm/master
fixed minor typo
6 years ago
Vyom Sharma 4f5ad35865 fixed minor typo 6 years ago
Richard van der Hoff a14cbe5f32
Merge pull request #1154 from turt2live/travis/windows
Add instructions on how Windows users can build this project
6 years ago
Travis Ralston 93facae3da Add instructions on how Windows users can build this project
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Richard van der Hoff 3121bc0914 Move label descriptions to a separate file 6 years ago
Richard van der Hoff 2644e5657d
Merge pull request #1152 from turt2live/travis/clarify-whoami
Improve documentation around /account/whoami
6 years ago
Travis Ralston 159ab7313f Fix typos in whoami.yaml
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston b7f8f20de9 Reword the appservice portion of /account/whoami
Credit goes to richvdh - suggestions taken with edits.

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 6ba5d7ca92 Reword appservice requirements for /account/whoami
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Richard van der Hoff 09f5a54bf4
Merge pull request #1151 from turt2live/travis/username-availability
Add GET /register/available
6 years ago
Richard van der Hoff a549baa01d
registration.yaml: fix typo
it's -> its
6 years ago
Travis Ralston 5285dbc655 Add clarifications of /account/whoami to changelog
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 2e4e5e25e8 Improve documentation around /account/whoami
Clarifies: https://github.com/matrix-org/matrix-doc/issues/1135

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston f0ec0de997 Add username availability to the changelog
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 15cdde3f49 Add GET /register/available
Adds https://github.com/matrix-org/matrix-doc/issues/911

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Richard van der Hoff 8c61da287d
Merge pull request #1150 from turt2live/travis/m.ignored_user_list
Add clarity to the m.ignored_user_list
6 years ago
Travis Ralston 6e7d264bc7 Add clarity to the m.ignored_user_list
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Richard van der Hoff 624082d221
Merge pull request #1142 from turt2live/travis/m.ignored_user_list
Spec ignoring users
6 years ago
Travis Ralston 0835612277 Represent the ignored users event correctly
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston af74790681 Merge remote-tracking branch 'matrix-org/master' into travis/m.ignored_user_list 6 years ago
Richard van der Hoff b1550ea324
Merge pull request #1141 from turt2live/travis/spec-directory-list
Spec /directory/list
6 years ago
Travis Ralston d88a1308c2 Formatting and remove DELETE /directory/list
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 331e49bd0d Improve the documentation of ignored users
* Fix the event schema to represent the real world
* Add the module to the spec targets
* Remove incomplete thought from the client behaviour
* Link to the account data API
* Minor word choice changes

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 0f7f8a8ca7 Move the changelog entry for ignoring users
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 5cbfa73fe4 Improve documentation of /directory/list
* 404 for room not found instead of 400
* GET doesn't require an access token
* PUT (and therefore DELETE) can have it's own access control checks
* DELETE is implemented because of synapse

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 709fca8190 Move /directory/list changelog entry
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Richard van der Hoff 156da9fad3
Merge pull request #1147 from turt2live/travis/fix-m.presence
Remove extraneous comma from m.presence schema
6 years ago
Richard van der Hoff 9150ba0dce Improve error output from failing to parse examples 6 years ago
Richard van der Hoff a36bd1a6d2 Make build fail if gendoc fails
(cf https://github.com/matrix-org/matrix-doc/issues/1146)
6 years ago
Travis Ralston eb8c3255bf Remove extraneous comma from m.presence schema
This causes the build to fail. Fixes #1146

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston e4f7ba70f5
Merge branch 'master' into travis/spec-directory-list 6 years ago
Travis Ralston d37ed0876f
Merge branch 'master' into travis/m.ignored_user_list 6 years ago
Richard van der Hoff fd27be869b
Merge pull request #1139 from turt2live/travis/m.tag
Tag ordering is defined as a number between 0 and 1, not strings
6 years ago
Richard van der Hoff a0dda3cae2
Merge branch 'master' into travis/m.tag 6 years ago
Richard van der Hoff 66f434c680
Merge pull request #1137 from turt2live/travis/m.presence
Make m.presence match what synapse returns
6 years ago
Richard van der Hoff 692eeccfe3
Merge pull request #1133 from maxidor/is/api-ping
Add IS ping endpoint
6 years ago
Richard van der Hoff 92e1972425
Merge pull request #1140 from turt2live/travis/misc-1
Minor improvements to help with building the spec
6 years ago
Travis Ralston 1daf6af300 Add ignoring users to the changelog
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston e862ef60ae Spec ignoring users
Adds https://github.com/matrix-org/matrix-doc/issues/528

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston b41bd9635d Add /directory/list to changelog
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 595667d15d Spec /directory/list
Adds https://github.com/matrix-org/matrix-doc/issues/417

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 04e39c8496 Document the Python version explicitly
The spec uses 2.x currently and is not compatible with Python 3.

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston 864b6b6b3a Add build output to the .gitignore
This is more of a problem if the build fails for whatever reason.

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston c5738b87c0 Add changelog entry for m.tag ordering
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston a3f006353c Tag ordering is defined as a number between 0 and 1, not strings
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston f5a100317e Add changelog entry for m.presence format fix
Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Travis Ralston a488bd5503 Make m.presence match what synapse returns
Considering this is the behaviour that is embedded into most client libraries and the most popular homeserver, it should be adopted as the standard.

Signed-off-by: Travis Ralston <travpc@gmail.com>
6 years ago
Maxime Dor c8393306d1 Add IS ping endpoint 6 years ago
Richard van der Hoff 3dfa643b8b Fix membership state names
It's called 'join', not 'joined'.
6 years ago
Richard van der Hoff 196e668768
Update documentation_style.rst 6 years ago
Matthew Hodgson 726af76a77
Merge pull request #1120 from matrix-construct/master
Minor grammar fix.
6 years ago
Richard van der Hoff 0a917b2c70
documentation_style typo 6 years ago
Jason Volk de6d2c96fe Minor grammar fix. 6 years ago
Richard van der Hoff f7bbcd1678
Merge pull request #1110 from t3chguy/rooms/event
Document new rooms/$/event/$ API for fetching a single event (no ctx)
6 years ago
Michael Telatynski 04eb6c7b65
link to both context and event in depr notice as per review 6 years ago
Michael Telatynski 4d90d2b495
fix depr link 6 years ago
Michael Telatynski c5816a80af
move /rooms/{roomId}/event/{eventId} and update depr notice 6 years ago
Richard van der Hoff 1028ea3558
doc style: lists 6 years ago
Richard van der Hoff 3c40d5a94e
documentation_style: fix indentation 6 years ago
Richard van der Hoff 306783b7bf notes on doc style 6 years ago
Richard van der Hoff 91c1d9ed58
documentation_style.rst: Fix rst syntax
apparently the rst parser gets confused by '- `````'.
6 years ago
Richard van der Hoff 96fa29ad03
Merge pull request #1109 from t3chguy/t3chguy/search_defaults
Document the defaults for the /search API
6 years ago
Michael Telatynski 436e2cd318
Add changelog entry for /search API default value clarifications 6 years ago
Michael Telatynski 06911d4fab
Merge branch 'master' of https://github.com/matrix-org/matrix-doc into t3chguy/search_defaults 6 years ago
Michael Telatynski ebea850838
Add new event fetch API to changelog 6 years ago
Michael Telatynski a9c3d94f24
Merge branch 'master' of https://github.com/matrix-org/matrix-doc into rooms/event 6 years ago
Michael Telatynski a5374c7df7
Document new rooms/$/event/$ API for fetching a single event (no ctx) 6 years ago
Michael Telatynski dc27323d8b
Document the defaults for the /search API 6 years ago
Richard van der Hoff 59e4c625b3
Merge pull request #1093 from CromFr/guest_can_join
Add createRoom guest_can_join parameter
6 years ago
Richard van der Hoff 6a03a43b16
Merge pull request #1107 from musoke/patch-1
Typo in client-server spec: ether -> either
6 years ago
Nathan Musoke 7e94cd5a0b
Typo in client-server spec: ether -> either 6 years ago
David Baker 849a7662fe Fix changelog, hopefully 6 years ago
David Baker 46b0288ea5
Merge pull request #1106 from matrix-org/dbkr/fix_keys_changes
Fix /keys/changes response to reflect reality
6 years ago
David Baker fa0eb2405f all rooms, not any, and remove extra words 6 years ago
David Baker 2a9a9e757e add changelog 6 years ago
David Baker ca09415e80 Fix /keys/changes response to reflect reality 6 years ago
Richard van der Hoff 2e684bcc4b
fix readme typo 6 years ago
David Baker 7c6a97e82c Add PR 1104 to changelog 7 years ago
David Baker 573b25ab9c
Merge pull request #1104 from matrix-org/dbkr/keys_query_token
Doc /keys/query 'token' param
7 years ago
David Baker bb0bbedb87 indenting 7 years ago
David Baker 1674b0e3b5 Doc /keys/query 'token' param 7 years ago
Richard van der Hoff 73118b6b29
Merge pull request #1096 from t3chguy/user_directory
add user_directory
7 years ago
Richard van der Hoff 3bb316aff5
Merge pull request #1099 from matrix-org/rav/send_join_auth_chain
send_join: clarify auth_chain description
7 years ago
Michael Telatynski 784adade9b
changes based on Pull Request feedback 7 years ago
Richard van der Hoff 15ca952cc3 remove spurious word 7 years ago
Richard van der Hoff 1fb7647021 send_join: clarify auth_chain description
The auth_chain field should contain all of the auth events required to auth the
state events, as well as those required to auth the join event itself.

(cf https://github.com/matrix-org/synapse/blob/e148438/synapse/handlers/federation.py#L1076-L1077).
7 years ago
Michael Telatynski 3d8fe6e090
merge profiles with user directory into user data, also fix typo 7 years ago
Michael Telatynski 605510e965
Merge branch 'master' into user_directory 7 years ago
Michael Telatynski d219cbc978
apply points from review 7 years ago
Richard van der Hoff 6d0eb2e9d1
Merge pull request #1097 from matrix-org/rav/deprecate_home_server
Mark `home_server` field deprecated
7 years ago
Richard van der Hoff f91111c54b
Merge pull request #1098 from matrix-org/rav/no_colon_in_mxid
Forbid colons in MXIDs
7 years ago
Richard van der Hoff 00b28495a6 Explain how to split an mxid 7 years ago
Richard van der Hoff a36f8ba00d Forbid colons in MXIDs
There is a single (AS) user on matrix.org who has a colon in their localpart,
but I suspect that is an artifact of old bridge code and won't work over
federation anyway.

Colons in MXIDs are particularly harmful because they make it impossible to
split mxids into local- and remote-parts
7 years ago
Richard van der Hoff 6a524be585 changelog 7 years ago
Richard van der Hoff d9a4ddbf65 Mark `home_server` field deprecated
This is spelt wrong, and is redundant to user_id, so let's stop people using
it.
7 years ago
Michael Telatynski b80f38e11b
fix changelog entry 7 years ago
Michael Telatynski 1f7d4cd9d0
add changelog entry 7 years ago
Michael Telatynski 97445195f6
add user_directory 7 years ago
Richard van der Hoff f0f91bd9bc
Merge pull request #1095 from gergelypolonkai/master
Fix example in email based registration endpoint
7 years ago
Gergely Polonkai e9622bf9e4 Fix example in email based registration endpoint
The spec says `send_attempt` should be a number, but the example shows it as a string.

Signed-off-by: Gergely Polonkai <gergely@polonkai.eu>
7 years ago
Thibaut CHARLES 42c1031cdf
updated changelog 7 years ago
Richard van der Hoff 66e545d8a1
Merge pull request #1092 from CromFr/master
createRoom StateEvent.content should be an object
7 years ago
Crom (Thibaut CHARLES) b270233549
Add createRoom guest_can_join parameter 7 years ago
Thibaut CHARLES 5e2a48f709
createRoom StateEvent.content should be an object 7 years ago
Richard van der Hoff 08d137a588 We sign the request body, not the JSON
when signing federation requests, we put the actual request body into the
canonicaljson to be signed, not the JSON representation of it.
7 years ago
Richard van der Hoff 0a540bf544
Merge pull request #1085 from matrix-org/rav/state_resolution
Document the state resolution algorithm
7 years ago
Richard van der Hoff 56f878842c Add a warning that state resolution has problems 7 years ago
Richard van der Hoff 37eca87115
Merge pull request #1091 from CromFr/master
Typo on dump-swagger.py script path in readme
7 years ago
Crom (Thibaut CHARLES) eff9da89ea
Typo on dump-swagger.py script path in readme 7 years ago
Richard van der Hoff 4adeb0d6fe Merge branch 'client_server/r0.3.0_updates' 7 years ago
Richard van der Hoff 20ebae4bd3 Fix quoting in changelog 7 years ago
White_Rabbit 2138d7c825 note updates to thunbnail info in changelog (#1086) 7 years ago
White_Rabbit 93d7bbc8bf note updates to thunbnail info in changelog (#1086) 7 years ago
Richard van der Hoff 87d90ab58a gendoc: improve title line matching
This makes it possible to include tables etc without the script trying to turn
them into titles.
7 years ago
Richard van der Hoff 5ab9ee6b88 Link to auth rules 7 years ago
Richard van der Hoff 0960229a80 Document the state resolution algorithm
or at least, my understanding of it.
7 years ago
Richard van der Hoff 3b82b2ce09
Merge pull request #1084 from maxidor/max/ss/redaction-fix-inconsistencies
Use proper room event type for redaction
7 years ago
Maxime Dor e8af5622a7 Use proper room event type for redaction 7 years ago
Max Dor 57e5e1e331 Document default room creator PL (#1081) 7 years ago
Richard van der Hoff ec1a12d21b
Merge pull request #1080 from maxidor/max/ss/auth_rules
Fix auth rules to allow first PL event
7 years ago
Richard van der Hoff 96d93e11d7
Tweak wording of auth rules slightly 7 years ago
Richard van der Hoff 78e6b768b5
Merge pull request #1082 from florianjacob/threatmodel-fixes
Minor fixes in threatmodel appendix
7 years ago
Florian Jacob a0455eb5b1 Threat Model: Wrong word: Banning users is a threat only if you're not authorized
Signed-off-by: Florian Jacob <projects+git AT florianjacob )DOT( de>
7 years ago
Florian Jacob 306b3f5d62 Threat Model: Align indentation of Spying Threats.
“Disclosure to Servers Within Chatroom” was indented lesser
than the surrounding threats.

Signed-off-by: Florian Jacob <projects+git AT florianjacob )DOT( de>
7 years ago
Maxime Dor c4f53f58d7 Fix auth rules to allow first PL event 7 years ago
Richard van der Hoff 52dba5d89a
Merge pull request #1076 from florianjacob/fix-cas-url
Correct CAS spec link
7 years ago
Richard van der Hoff 58a3fa3d60
Merge pull request #1075 from matrix-org/rav/pdu_fields
Improve documentation of Transactions and PDUs
7 years ago
Florian Jacob ac861d9b97 Correct CAS spec link
Signed-off-by: Florian Jacob <projects+git AT florianjacob )DOT( de>
7 years ago
Richard van der Hoff 6a653b742c Document auth_events 7 years ago
Richard van der Hoff 632ba032af Improve Transaction and PDU documentation
Fix a bunch of lies about the fields in these structures.
7 years ago
Richard van der Hoff fb9f7ccf41
Merge pull request #1074 from Magnap/auth-no-depth
Modify event auth rules not to rely on depth
7 years ago
Marcus Medom Ryding 8a446fa6df Modify event auth rules not to rely on depth
Signed-off-by: Marcus Medom Ryding <mrok4a@gmail.com>
7 years ago
Richard van der Hoff f88185ed89
Merge pull request #1073 from maxidor/max/ss/directory
Document directory query endpoint
7 years ago
Maxime Dor 9d2e18cca1 Adapt paths as per feedback 7 years ago
Maxime Dor d1e64daa10 Fix yaml title for directory api 7 years ago
Richard van der Hoff e9c1b87a1d Remove `git log` reference
We keep the changelog up to date anyway, so there's not much point in trying to
get people to use `git log`
7 years ago
Richard van der Hoff f526dff51d Fix changelog 7 years ago
Richard van der Hoff 0ce58fdb28 Prepare for next spec dev cycle 7 years ago
Richard van der Hoff e3ed76373a Prep changelog for 0.3.0 7 years ago
Maxime Dor 28c09aed62 Properly mark required response keys to pass tests 7 years ago
Maxime Dor 8a6103798e Fix for tests 7 years ago
Maxime Dor bb50ec2e88 Document directory query endpoint 7 years ago
Richard van der Hoff 9b0bdb799e
Merge pull request #1054 from vberger/patch-2
Specify namespaces for tags
7 years ago
Richard van der Hoff 2128924933
Merge pull request #1072 from maxidor/max/ss/version
Document federation version endpoint
7 years ago
Richard van der Hoff 4b7e4deaae
Merge pull request #1017 from QMatrixClient/master
Add operationId key to every call
7 years ago
Maxime Dor 1045bc721d Document federation version endpoint 7 years ago
Kitsune Ral 828086a86c Supply operationId for freshly added IS and AS operations 7 years ago
Kitsune Ral a68b7e1bbd Supply operationId with freshly added operations
Signed-off-by: Alexey Rusakov <ktirf@users.sf.net>
7 years ago
Kitsune Ral b53083732b Merge remote-tracking branch 'remotes/origin/master' 7 years ago
Kitsune Ral 868af0a7a1 Provide doc-comments with makeHandler(); cleanup 7 years ago
Richard van der Hoff 427e0bb83b make jenkins and travis use a common script 7 years ago
Richard van der Hoff b0a17e957d
Merge pull request #1069 from matrix-org/dbkr/is_bulk_lookup
Spec IS bulk_lookup endpoint
7 years ago
David Baker 5147a3b975 Fix broken links & grammar 7 years ago
David Baker 45af878e11 Merge remote-tracking branch 'origin/master' into dbkr/is_bulk_lookup 7 years ago
David Baker d728e67751
Merge pull request #1068 from matrix-org/dbkr/threepid_add_msisdn
Document threepids
7 years ago
David Baker 14df31458b Attempt to clarify example a little 7 years ago
David Baker 9c5972ffe3 More formatting / grammar 7 years ago
Maxime Dor 836e6c81d1 Fix spelling 7 years ago
David Baker e12c0b54ff Formatting & grammar 7 years ago
David Baker 4526ff2ea6 Double backticks in rst :/ 7 years ago
David Baker 1e4cba6b55 Don't linkify email addresses in examples 7 years ago
David Baker 3487f5d75a Spell out what we mean by a 3pid
(and consequently rejig all the fixed-width formatting)
7 years ago
David Baker ff85ec055e Move 3pid types down 7 years ago
David Baker 8d557ec9dc Actually this isn't necessary in this section 7 years ago
David Baker e80675c9e9 Link in markdown, not swagger 7 years ago
David Baker 493b936209 Make these links more specific too 7 years ago
David Baker b789f61522 Make link more specific 7 years ago
Maxime Dor cdfff67878 Create spec for IS bulk lookup 7 years ago
Travis Ralston 0f5a4efce6 Spec URL previews (#1064)
* Spec URL previews
* Require authentication on /upload and /preview_url
7 years ago
David Baker 6edb90a08e Document threepids
Adds the /msisdn' 3pid type and generally fleshes out what a 3pid
is and how they work.

This merges most of the work from Max Dor in https://github.com/matrix-org/matrix-doc/pull/1039
with some tweaks and additions.
7 years ago
Richard van der Hoff 202a265d85 Config for travis-ci 7 years ago
Richard van der Hoff 0cbf533625 Use petstore for continuserv swagger docs
Matrix.org's swagger browser is behind https, which means it can't read the
swagger from a continuserv on http. Use the petstore instead.
7 years ago
Richard van der Hoff 85340a9e00
Merge pull request #1063 from turt2live/travis/whoami
Spec /account/whoami
7 years ago
Kitsune Ral 33463e3907 Factor out parser.validate callback 7 years ago
Travis Ralston 2468c38482 Add required property to whoami
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Travis Ralston 41db12713d Update whoami endpoint
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Travis Ralston 9cf2b59f4e Make it less obvious where this was copy/pasted from
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Travis Ralston 2b3c84503c Add /account/whoami to changelog
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Travis Ralston b1801ea6db Spec /account/whoami
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Kitsune Ral 77a9daccec Validation that operationId is present
Signed-off-by: Alexey Rusakov <ktirf@users.sf.net>
7 years ago
Kitsune Ral 66268260c7 Merge remote-tracking branch 'remotes/origin/master' 7 years ago
Kitsune Ral 1d4410b638 operationid -> operationId
Signed-off-by: Alexey Rusakov <ktirf@users.sf.net>
7 years ago
Richard van der Hoff 88fb2e9abd
Merge pull request #1045 from maxidor/max/cs/unknow_filter_status
Add status for unknown user's filter ID
7 years ago
Richard van der Hoff 5697466a35
Merge pull request #1060 from maxidor/max/cs/sync-missing_event_id
Add missing optional key for sync format
7 years ago
Maxime Dor 099a7e90ae Change return code following feedback 7 years ago
Maxime Dor dcaaf84395 Be clear that event_id is not applicable everywhere 7 years ago
Maxime Dor efa9b5a8f1 Add missing required key for sync format 7 years ago
Richard van der Hoff 3630e69c2e s/bug/spec-bug 7 years ago
Richard van der Hoff a38d4fc68e Move templating into scripts dir
There's no real need for this to be at the top level.
7 years ago
Richard van der Hoff d9285cf5b5 Updates to README and CONTRIBUTING 7 years ago
Richard van der Hoff de6b0a278e remove dead labels from README
'site' and 'projects' are no longer things.
7 years ago
Richard van der Hoff e7772af5c3 Supporting-docs now in matrix.org repo. 7 years ago
Richard van der Hoff 17af66105d
Fix PR links in changelog 7 years ago
Richard van der Hoff d20b258e8b
Merge pull request #1047 from uhoreg/e2e
add information on handling redacted e2e events and detecting replay attacks
7 years ago
Richard van der Hoff ab8a85a41f
Merge pull request #1058 from maxidor/max/appendices/canonical_json-test_data
Add explicit examples for JSON encoding
7 years ago
Matthew Hodgson 18f558f065 remove old docker repo 7 years ago
Maxime Dor 68e12feec7 Add explicit examples for JSON encoding 7 years ago
Richard van der Hoff 1584e0f1df
Merge pull request #1055 from matrix-org/rav/clean_up_event_schema
Clean up event schema processing
7 years ago
Richard van der Hoff fbd2b22c71 Inherit 'required' correctly 7 years ago
Richard van der Hoff e5e249dce1 Remove redundant 'Required' annotations from event fields 7 years ago
Richard van der Hoff 51e248a1db Rename 'type' field to 'title'
: because that better reflects the underlying schema ("type" is one of
object/string/etc).
7 years ago
Richard van der Hoff c058dd5c3f Use standard logic to parse core event schemas
Use process_data_type rather than reinventing our own wheel; doing so means
that the 'Required' fields are correctly annotated as such.
7 years ago
Richard van der Hoff 1fdd8bb183 Fix some trailing whitespace 7 years ago
Richard van der Hoff 93ff0713cb make res_headers a TypeTable
... rather than a list of rows
7 years ago
Richard van der Hoff 96650e2824 Define TypeTable and TypeTableRow classes
Hopefully this will make it a bit easier to understand what's going on.
7 years ago
Victor Berger cc8128edad
Specify namespaces for tags
This is a proposition for closing #931.

This should be a fairly uncontroversial addition (apart from bike-shedding), which only defines behavior for clients that want use tags or expose tagging functionality to their users.

The idea of adding this to the spec is to ensure clients can peacefully share the tag namespace without conflicting with each other, using rules similar to namespaces for state keys.
7 years ago
Matthew Hodgson caf1333d12
Merge pull request #1049 from danigm/master
Renamed Guillotine project to Fractal
7 years ago
Daniel García Moreno 7bc54f37df Renamed Guillotine project to Fractal 7 years ago
Hubert Chathi 204eb427db add information on handling redacted e2e events and detecting replay attacks
ref: matrix-org/matrix-js-sdk#554 and matrix-org/matrix-js-sdk#555

Signed-off-by: Hubert Chathi <hubert@uhoreg.ca>
7 years ago
Maxime Dor 0fea380625 Add status for unknown user's filter ID 7 years ago
Richard van der Hoff c7c08eaf0f Merge pull request #1044 from t3chguy/access_token_header
mention that we can send tokens via headers
7 years ago
Michael Telatynski 9bd3711790
Move changelog entry 7 years ago
Michael Telatynski c2b1b7a10e
mention that we can send tokens via headers 7 years ago
Richard van der Hoff cc6b16b63c Generate the swagger for export
We may as well generate the unstable version of the C-S swagger.
7 years ago
Richard van der Hoff d6f892f894 continuserv, speculator: update dump-swagger call
dump-swagger now expects -o before its output path
7 years ago
Richard van der Hoff 56c3e5a627 README.rst: Add notes on how to build the spec 7 years ago
Richard van der Hoff 834a3d78a8 Add a pip requirements file for the scripts 7 years ago
Richard van der Hoff 986c9d99a0 Improve arg parsing in dump-swagger 7 years ago
Richard van der Hoff 2a48bc5847 move issue info to bottom of readme 7 years ago
Richard van der Hoff 6b23b7fc0b Merge branch 'client_server/r0.2.0_updates' 7 years ago
Richard van der Hoff b94c4a9f36 Sneaky update to 0.2.0 spec to link unstable
This doesn't count as a spec release, right??
7 years ago
Richard van der Hoff 5888070da2 Merge pull request #1036 from matrix-org/rav/delete_stateres_draft
Delete state_resolution.rst
7 years ago
Richard van der Hoff 6c3d2b6bac Delete state_resolution.rst
This doesn't really give any information. https://github.com/matrix-org/matrix-doc/blob/master/drafts/erikj_federation.rst#state-resolution is better, though even that should be moved into the spec proper
7 years ago
Matthew Hodgson 7f6f3aab2a Merge pull request #1035 from f0x52/master
Neo update
7 years ago
f0x52 51d0181106 Neo update 7 years ago
Matthew Hodgson a02658c4ac use valid JSON in example 7 years ago
Richard van der Hoff 6282a53ca9 Merge pull request #1032 from matrix-org/rav/mxid_grammar
Indentifier grammar updates
7 years ago
Richard van der Hoff 8d8ea861ec Merge pull request #1028 from ptman/console-abandoned
Update status of console projects
7 years ago
Richard van der Hoff 44fc033624 Fix broken links in the intro 7 years ago
Richard van der Hoff 3ab4334f1c changelog 7 years ago
Richard van der Hoff c08e6616c7 Try to make the intro link more obvious
Fixes https://github.com/matrix-org/matrix-doc/issues/1031.
7 years ago
Richard van der Hoff 628e723483 Move the MXID spec to the appendices
Also link to them from the /register API doc.
7 years ago
Richard van der Hoff 0a85fbb4f5 Allow slashes in MXIDs
Because apparently we like slashes now.
7 years ago
Richard van der Hoff 5fee8e54eb Document the event auth rules (#1027)
These are a necessary precursor to state resolution.
7 years ago
Paul Tötterman fb59fb6153 Update status of console projects 7 years ago
Richard van der Hoff 68b8192d86 Merge pull request #1001 from turt2live/travis/projects-q3-2017
Synchronize the projects I work on with matrix-doc
7 years ago
Richard van der Hoff 23e2f8986c Merge pull request #1026 from matrix-org/rav/power_levels_doc
Clarify what happens when there is no power_levels event
7 years ago
Richard van der Hoff c4bcd0a713 Merge pull request #1007 from turt2live/travis/m.room.pinned_events
Add spec for m.room.pinned_events
7 years ago
Richard van der Hoff 04be03bea9 changelog 7 years ago
Richard van der Hoff b4e24d443a Clarify what happens when there is no power_levels event 7 years ago
Travis Ralston 198c969e6f Update client_server.rst
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Travis Ralston 714c922371 Update .gitignore
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Travis Ralston 5e7df0e87c Update instant_messaging.rst
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Richard van der Hoff 1afe02d07d Update README.rst
add site label
7 years ago
Richard van der Hoff f1139b5b13 fix inter-spec link 7 years ago
Richard van der Hoff 5d473ced58 Merge pull request #1023 from matrix-org/rav/event_size
Specify max event size more precisely
7 years ago
Matthew Hodgson b2bb7747dc readd hangouts-bridge with right url 7 years ago
Richard van der Hoff 926d7bb2ae Remove broken link to hangouts bridge
Fixes https://github.com/matrix-org/matrix-doc/issues/1005
7 years ago
Richard van der Hoff a8afbfd27d Avoid external link in search swagger 7 years ago
Marcel 2dbd6bbdc7 Add Morpheus as Client (#1020) 7 years ago
Richard van der Hoff bf4936d6d7 Specify max event size more precisely
This is somewhat inelegant, and will please nobody, but I think it's more
important that we specify the current state of the onion than worry about what
would have been nice, and introduce incompatibilities while we do so.
7 years ago
Richard van der Hoff add03fb8f9 formatting 7 years ago
Richard van der Hoff 6b0ae8013b formatting 7 years ago
Richard van der Hoff 30b5005266 formatting 7 years ago
Richard van der Hoff d3a4ad06c7 Notes on issue categorisation 7 years ago
tijder 4ed19ef8be Create 2017-10-12-SmsMatrix.md (#1018) 7 years ago
Kitsune Ral 004a4d5148 Added/updated operationIds according to today's updates in the spec
Signed-off-by: Alexey Rusakov <ktirf@users.sf.net>
7 years ago
Kitsune Ral 24afe7987c Add operationId to all endpoints of all APIs
To facilitate generation of API stubs from the spec.

Signed-off-by: Alexey Rusakov <ktirf@users.sf.net>
7 years ago
Michael Telatynski bf3b49f13c document joined_members and joined_rooms endpoints (#999) 7 years ago
Matthew Hodgson 7e85a21dd0 Merge pull request #1012 from maxidor/master
Update mxisd description
7 years ago
Max Dor 9b1470cefe Update mxisd description 7 years ago
Travis Ralston a1265a274b Add spec for m.room.pinned_events
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Richard van der Hoff cfb547b474 Fix perspectives project link
The perspectives project seems to be dead :/. We can at least link to the
wayback machine.
7 years ago
Richard van der Hoff 544bd0a5d2 Improve logging for gendoc 7 years ago
Richard van der Hoff 0dfff6b190 Simplify dump_swagger
We don't need most of the templating stuff. All we have to do is merge together
the swagger files, and resolve references.
7 years ago
Richard van der Hoff 726a8c2f61 Refactor _load_swagger_meta
factor out _handle_endpoint
7 years ago
Richard van der Hoff 70ec3237b6 Remove grandfathering for json strings
Examples now have to be raw objects rather than json strings
7 years ago
Richard van der Hoff 820704a16a Format examples as raw objects
According the the openapi spec, examples for responses and schemas should be
raw objects rather than being json strings. (It's unclear what non-json
examples should look like...).

The swagger UI used to support json strings, but no longer does. In short,
let's turn the json strings into their raw formats.
7 years ago
Matthew Hodgson 0795f3667e Merge pull request #1004 from Changaco/patch-1
Fix liberapay links in FAQ
7 years ago
Charly C 78f9edcb7c fix liberapay links in FAQ 7 years ago
Richard van der Hoff 2454598926 Speculator: include API docs links for branches 7 years ago
Matthew Hodgson c9d5498767 clarify ID rules 7 years ago
Brendan Abolivier 0b74492d67 Fix membership on third-party invite upgrade (#995) 7 years ago
Richard van der Hoff a7c28fdf43 Merge pull request #3 from matrix-org/human-id-rules
Proposal for human ID rules.
7 years ago
Richard van der Hoff aebfcda320 Merge branch 'master' into human-id-rules 7 years ago
Richard van der Hoff d80a0192cd Merge pull request #990 from koma-im/master
add new client Koma to the projects page
7 years ago
Richard van der Hoff f651717bb9 Merge branch 'rav/projects-guillotine' 7 years ago
Richard van der Hoff bbb072a160 Reword guillotine description 7 years ago
Richard van der Hoff a84a34ee6c GETting a filter requires auth (#1003) 7 years ago
Travis Ralston 9769781d90 Delete 2017-09-15-matrix-welcome-back-bot.md
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Travis Ralston 04d9da273b Delete 2017-07-31-matrix-alias-bot.md
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Travis Ralston 0884b53118 Add matrix-welcome-back-bot
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Travis Ralston 12bb8d62f8 Add matrix-appservice-twilio
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Travis Ralston 98294cab0d Add matrix-alias-bot
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Travis Ralston f7c1574c91 Add matrix-appservice-webhooks
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Travis Ralston 13b2799f76 Add matrix-wishlist
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Travis Ralston c102f7921a Add matrix-dimension
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Travis Ralston a4a3ad29d4 Update instagram bridge
Signed-off-by: Travis Ralston <travpc@gmail.com>
7 years ago
Richard van der Hoff 13d3293378 Fix version-extraction regexp
Fixes https://github.com/matrix-org/matrix-doc/issues/982
7 years ago
Richard van der Hoff a42d3011b7 Hopefully, fix some bullet lists in projects pages
... because why would markdown be consistent?
7 years ago
Matthew Hodgson 4cd5a31224 Merge pull request #1000 from maxidor/master
Update matrix-appservice-email info
7 years ago
Max Dor 6ee9a8c964 Update matrix-appservice-email info 7 years ago
Richard van der Hoff f667e0b083 Merge pull request #998 from maxidor/master
Update mxisd project description
7 years ago
Max Dor e978384d4b Update mxisd project description 7 years ago
Brendan Abolivier 19579c718a Merge pull request #997 from matrix-org/babolivier/third-party-invites
Add remote invites and third-party invites to the federation spec
7 years ago
Brendan Abolivier 6b6a941e36
Phrasing 7 years ago
Brendan Abolivier 8de93147b1
Typo 7 years ago
Brendan Abolivier c71575c94d
Remove useless blank line 7 years ago
Brendan Abolivier 94374c696b
Update changelog 7 years ago
Brendan Abolivier 4a99691108
Move link to the bottom of the file 7 years ago
Brendan Abolivier 9d90fa2cae
Specify third-party invites 7 years ago
Brendan Abolivier af961321e9
Specify remote invite 7 years ago
Brendan Abolivier 997e76fcf7
Update JSON body for 3PID onbind requests 7 years ago
Tom Lant 57609d3cdc Merge pull request #994 from vurpo/master
Add godot-matrix to the list of SDKs
7 years ago
Max Sandholm 43a880be50 Add godot-matrix to the list of SDKs 7 years ago
Matthew Hodgson 414ef70592 update corp details & XMPP FAQ 7 years ago
komatr f89eabdb39 add new client Koma to the projects page 7 years ago
David Baker 883767a905 Merge pull request #984 from matrix-org/rav/sync_timeout
Make clear that the /sync timeout is zero by default
7 years ago
Richard van der Hoff 1e3f5683c8 Make clear that the /sync timeout is zero by default 7 years ago
Travis Ralston 06f996c5d1 Document one-way bridging (#921) 7 years ago
strixaluco 5e8e8bfcf7 Add Guillotine project 7 years ago
Alexey Murz Korepov 19288b7759 Add matterbridge to list of Matrix bridges (#974) 7 years ago
Matthew Hodgson c934e3207a fix archlinux url 7 years ago
Richard van der Hoff bdc936099f Merge pull request #970 from t3chguy/patch-3
add matrix-static to Try-Matrix-Now
7 years ago
Richard van der Hoff bb634fc437 Merge pull request #972 from 14mRh4X0r/patch-1
Update link to WHATWG's Living Standard FAQ entry
7 years ago
14mRh4X0r 6570a5c6a3 Update link to WHATWG's Living Standard FAQ entry 7 years ago
Michael Telatynski c501f03065 add matrix-static to Try-Matrix-Now 7 years ago
Richard van der Hoff c8c0ba38b2 Merge pull request #967 from lub/patch-1
update Let's Encrypt guide
7 years ago
lub 93271a8f3e fix link for certbot 7 years ago
lub 9933aee091 remove note to copy cert+key
see feb4ae84ba for explanation
7 years ago
lub ae8c6179f5 change binary to certbot
out of the certbot/certbot README.rst:

> Until May 2016, Certbot was named simply letsencrypt or letsencrypt-auto, depending on install method. Instructions on the Internet, and some pieces of the software, may still refer to this older name.
7 years ago
lub 464f5cdff3 recommend ```renew``` for renewal
settings for renewal are stored in /etc/letsencrypt/renewal/<domain>.conf - it is not necessary to specify them every time
7 years ago
lub feb4ae84ba use symlinks instead of copy
Let's Encrypt creates symlink to the current keys+certs in /etc/letsencrypt/live/

It isn't very useful to copy the link targets, because they rotate with every renewal (max every 90 days, optimally every 60 days). Per default the files (key+cert) have owner root:root and 0644, which should be sufficient for synapse to read.
7 years ago
Richard van der Hoff b0ea6038c6 Move jekyll back out of matrix-doc again
Having the jekyll assets here is a mistake, because they need to be versioned
separately to the spec: we keep old versions of the spec, but they sometimes
need to be restyled to match the latest website.
7 years ago
Richard van der Hoff 8a66b1a68b Build the spec as part of the build 7 years ago
Richard van der Hoff 0af06291fe Hardcode client major version r0 7 years ago
Richard van der Hoff 986e51cf35 Gendoc: allow overriding the dest dir 7 years ago
Richard van der Hoff 2519b78814 install PyYAML 7 years ago
Richard van der Hoff 35ae69f2e1 Use a virtualenv 7 years ago
Richard van der Hoff 9d2a93ad7b Run jekyll as part of the matrix-doc build
- this saves us having to run it manually on the web server.
7 years ago
Richard van der Hoff 299b60970b Merge pull request #918 from shawnanastasio/master
supporting-docs/projects: Add matrix-pollbot
7 years ago
Richard van der Hoff b8ac9fdefa Merge pull request #960 from matrix-org/babolivier/fix-get-room-alias
Fix response format and 404 example for room alias lookup
7 years ago
Richard van der Hoff 4a4ca9e39b Merge pull request #964 from t3chguy/patch-2
fix react-sdk link
7 years ago
Richard van der Hoff a545392e73 Merge pull request #963 from krombel/patch-2
Fix inconsistency: `join_rules` => `join_rule`
7 years ago
Michael Telatynski a9d9f58229 fix react-sdk link 7 years ago
krombel f8ce497bd6 Fix inconsistency: `join_rules` => `join_rule`
All other docs do not have `join_rules` but `join_rule`
This PR fix this inconsistency.

Mentioned by @digital:sorunome.de in [#matrix-dev:matrix.org](https://matrix.to/#/!XqBunHwQIXUiqCaoxq:matrix.org/$150142347531959wjGGm:sorunome.de)
7 years ago
Brendan Abolivier 25f23873d4
Update changelog 7 years ago
Brendan Abolivier fee65dbacb
Fix response format and 404 example for room alias lookup 7 years ago
Richard van der Hoff 7cec016256 Merge pull request #959 from QMatrixClient/master
libqmatrixclient minor changes
7 years ago
Kitsune Ral 112ba5566e Fixed typo and other polishing 7 years ago
Richard van der Hoff 14e36b7d6f Merge pull request #954 from ptman/master
Don't give false hope about up-to-date docs
7 years ago
Paul Tötterman 94ded5fff7 Don't give false hope about up-to-date docs 7 years ago
Brendan Abolivier 750d980bc0 Room member (#950)
* Fixed an incorrect membership on example
* Added precision on membership upon profile update
* Changed first example into a join
* Changed the state/{eventType}/{stateKey} example with an actual state key
7 years ago
Kegsay e641897d88 Merge pull request #930 from matrix-org/leonerd/circle
Remove Net::Async::Matrix client; expand Circle entry
7 years ago
Kegsay 2b9dbd3a6c Merge pull request #947 from t3chguy/patch-1
redacts is an eventID not a roomID (! -> $)
7 years ago
Michael Telatynski 852f4edead redacts is an eventID not a roomID (! -> $) 7 years ago
Richard van der Hoff e75b22ba31 Merge pull request #944 from turt2live/travis/summer-2017-sync
Synchronize the projects I work on with matrix-doc
7 years ago
turt2live 6423901ce3 Use consistent labels for project statuses 7 years ago
turt2live 54760ad0dd Add rocket-sheep 7 years ago
turt2live 847730109f Add matrix-embedded-federation 7 years ago
turt2live 9d396242d3 Add matrix-topic-bot 7 years ago
Richard van der Hoff e04a3819a5 Merge pull request #943 from krombel/patch-1
Add link to draft for WebSocketAPI on Google-Docs
7 years ago
Richard van der Hoff 1f12d9114c Riot project: improve readability 7 years ago
Richard van der Hoff ce922d6bb9 Merge pull request #941 from patch-forks/patch-1
fix for some markdown-links
7 years ago
krombel 81ea7058a5 Add link to draft for WebSocketAPI on Google-Docs 7 years ago
DYM 9538bf55a8 markdown 7 years ago
Richard van der Hoff 4be25ca6b4 Merge pull request #939 from maxidor/matrix-sync-java-sdk
"Try Matrix!" page for Matrix Java SDK
7 years ago
Max Dor 39d516ae1e "Try Matrix!" page for Matrix Java SDK 7 years ago
Matthew Hodgson b4dc6fd4f6 Merge pull request #936 from anoadragon453/patch-1
Tox.im -> Tox.chat
7 years ago
anoadragon453 914ffa62ad Tox.im -> Tox.chat
https://tox.chat is the Tox project's official homepage, while Tox.im is their old page, that seems to have been taken over by a squatter linking to an old blog post.

Don't want to mislead people :)
7 years ago
Paul "LeoNerd" Evans d755d97916 Add a screenshot for Circle+Matrix; expand on the instructions making them more matrix-specific 7 years ago
Paul "LeoNerd" Evans 4e64720be5 Remove the NaMatrix client entry as it's now dead 7 years ago
Matthew Hodgson f147533ea3 Merge pull request #927 from maxidor/mxisd-1
Update mxisd project description
7 years ago
Max Dor 37be6feb72 Update mxisd project description 7 years ago
Matthew Hodgson f6a8fea3a4 Merge pull request #924 from Matrixcoffee/patch-1
Update 2017-05-02-matrix-knowledge-base.md
7 years ago
Matthew Hodgson 6bf33feac9 Merge pull request #925 from QMatrixClient/master
Update Quaternion and libqmatrixclient records
7 years ago
Matthew Hodgson 3a5da0472b Merge pull request #926 from maxidor/master
Create matrix-appservice-email project page
7 years ago
Max Dor 1b3e1a0a88 Create matrix-appservice-email project page 7 years ago
Kitsune Ral 06719c9b95 Update Quaternion and libqmatrixclient records 7 years ago
Matrixcoffee fc4bef93da Update 2017-05-02-matrix-knowledge-base.md 7 years ago
Shawn Anastasio 2a8d64fef7 supporting-docs/projects: Add matrix-pollbot
matrix-pollbot is a bot that allows you to create polls to be voted on by
members of a Matrix room.
7 years ago
Matthew Hodgson 6a048acd30 move gomatrix to the right place 7 years ago
Matthew Hodgson 7f2ed4efb7 typo 7 years ago
Matthew Hodgson fa2bfb7bd4 matrix-knowledge-base 7 years ago
Matthew Hodgson ba16b44d47 matrix-relay 7 years ago
Matthew Hodgson 749e7da96d Add https://copr.fedorainfracloud.org/coprs/taw/Riot/ 7 years ago
Matthew Hodgson f4174eb01a neo 7 years ago
Matthew Hodgson f06edc2997 glitch in the matrix 7 years ago
Matthew Hodgson 5e2875db97 MatrixSDK 7 years ago
Matthew Hodgson 698e02f6b2 thunderbird 7 years ago
Matthew Hodgson 4805b0646a matrixcraft 7 years ago
Matthew Hodgson 1c5050c61b synapse-diaspora-auth 7 years ago
Matthew Hodgson 76dcabbc95 add yunohost 7 years ago
Matthew Hodgson 30299d27db nheko 7 years ago
Matthew Hodgson e6b5088647 ruma-gtk 7 years ago
Matthew Hodgson 84e19e5559 add circle 7 years ago
Matthew Hodgson cd654583e0 j->journal 7 years ago
Matthew Hodgson 6a8b59adc8 riotchat -> riotchat-ansible 7 years ago
Matthew Hodgson 19aa35c2fd add sydent 7 years ago
Matthew Hodgson dde3c8e4b8 add dendrite 7 years ago
Matthew Hodgson d643b60e40 Merge pull request #898 from non-Jedi/project_gyr
Add gyr project
7 years ago
Adam Beckmeyer 11194282b4 Add gyr project 7 years ago
Richard van der Hoff b54fc31e98 e2e guide: fix some formatting 7 years ago
Richard van der Hoff da6938b818 Key management APIs (#894)
Spec the e2e key-management APIs.
7 years ago
Matthew Hodgson 97a7717d38 Merge pull request #887 from rrix/master
Remove mclient.el from the Projects page
7 years ago
Richard van der Hoff a2860beb68 Add comment to swagger parsing thing 7 years ago
Richard van der Hoff 934dd4754c swagger-http-server: fix port param
it needs to be an int, not a list
7 years ago
Richard van der Hoff 0a6886e73c Fix broken link in spec 7 years ago
Ryan Rix 6651a4a437 Remove mclient.el from the Projects page
I'm removing this from MELPA since it's buggy, unmaintained, doesn't work with e2e and I don't have
bandwidth to fix it right now. :(
7 years ago
Matthew Hodgson cdd2e158b6 Merge pull request #866 from kfatehi/types-of-bridging/fixup
Tempering the sales pitch of puppetted bridges.
7 years ago
Matthew Hodgson 262b5a25e3 Merge pull request #848 from exul/rocketchat-matrix-alpha
Update matrix-rocketchat project page
7 years ago
Matthew Hodgson 01d7951f4a Merge pull request #880 from turt2live/patch-1
Create 2017-03-19-matrix-voyager-bot.md
7 years ago
Matthew Hodgson 87e4cb3ca9 Merge pull request #879 from Xe/master
Remove Morpheus
7 years ago
Travis Ralston 68d69d5fd5 Create 2017-03-19-matrix-voyager-bot.md 7 years ago
Christine Dodrill 1646d4b832 Remove Morpheus
Closes #878
Closes #873
Closes #847
7 years ago
Keyvan Fatehi 35605b4c1d Improvements to the "types of bridging" guide
Signed-off-by: Keyvan Fatehi <keyvanfatehi@gmail.com>
7 years ago
Richard van der Hoff f476688a63 Merge pull request #871 from matrix-org/dbkr/remove_unused_is_file_2
Remove unused ID server file
7 years ago
David Baker 6296d676c8 Remove unused ID server file 7 years ago
Keyvan Fatehi 94565933c2 Tempering the sales pitch of puppetted bridges.
Folks are getting confused. The article sells the puppeted bridge
concept a little too hard and needs to temper it with the reality that
most networks people want to bridge (Facebook, Hangouts) suffer from the
fact that there is no means of representation for non-puppeted users.

Relevant discussions:

* https://matrix.to/#/!ChuQQIVJvwyJujhNIG:synapse.keyvan.pw/$149063160814JjbEL:gruenhage.xyz
* https://matrix.to/#/!svJUttHBtRMdXmEhEy:matrix.org/$149072185910105qOwCB:synapse.keyvan.pw

Signed-off-by: Keyvan Fatehi <keyvanfatehi@gmail.com>
7 years ago
Andreas Brönnimann 0805bbbed7 The matrix-rocketchat bridge is in alpha
Signed-off-by: Andreas Brönnimann <foss@exul.org>
7 years ago
Matthew Hodgson 95fe2c3d82 fix merge 7 years ago
Matthew Hodgson 5508849315 fix merge 7 years ago
Matthew Hodgson d60aa4ba28 switch from one/two-way puppeting to simple/double puppeting 7 years ago
Richard van der Hoff 5563e8ea0e Merge pull request #836 from qznc/patch-1
Fix device keys query
7 years ago
Andreas Zwinkau 9304d6d71d Fix device keys query
Omitting the "device_keys" wrap results in an empty response.
7 years ago
Matthew Hodgson 6a5ab4e2ea Merge pull request #833 from turt2live/master
Add matrix-appservice-instagram
7 years ago
turt2live b314b30812 Add matrix-appservice-instagram 7 years ago
Matthew Hodgson 58fe19866a Merge pull request #832 from kfatehi/patch-1
Tweaks to "How do I bridge thee? Let me count the ways…" article
7 years ago
Keyvan Fatehi 012aa8fba4 fixes
* Moved matrix-puppet-bridge out of one-way and into two-way
* Fixed server to server heading
7 years ago
Matthew Hodgson b5acd9b3fd fix b0rk3d url 7 years ago
Matthew Hodgson 2c0048edfd fix link 7 years ago
Matthew Hodgson 4c41e07e87 cosmetics 7 years ago
Matthew Hodgson f5bf64d0bb bridging in the index 7 years ago
Matthew Hodgson 20e7a0ccfa types of bridging 7 years ago
Richard van der Hoff 2e9f260c3c Merge pull request #809 from aaronraimist/patch-1
Maatrix => Matrix in matrix-appservice-discord
7 years ago
Oddvar Lovaas ee9a3efdf5 Add Riotic 7 years ago
Oddvar Lovaas 16a4c77012 Add Go-NEB 7 years ago
Oddvar Lovaas f740e3fb08 Add Matrix Recorder 7 years ago
Richard van der Hoff ff0628f37a Merge pull request #821 from matrix-org/rav/unpadded_base64
Specification of unpadded Base64
7 years ago
Richard van der Hoff da686ba4eb Specification of unpadded Base64 7 years ago
Richard van der Hoff 8e35111f47 FAQ: remove 'Why don't you use websockets' todo
... since we already have an answer that answers it
7 years ago
Aaron Raimist 3b7fb8dc9a Maatrix => Matrix in matrix-appservice-discord 7 years ago
Oddvar Lovaas 242c8aa1c1 Discord bridge is alpha 7 years ago
Oddvar Lovaas 736ba5fb1f Add matrix-appservice-discord 7 years ago
Oddvar Lovaas b62f49ed61 Add matrix-dotnet-framework 7 years ago
Richard van der Hoff 39f177b5eb e2e guide: fix /claim response 7 years ago
Richard van der Hoff 857ff2573f e2e guide: add link about m.room_key events. 7 years ago
Oddvar Lovaas cdd4e71773 Fix date 7 years ago
Oddvar Lovaas e682db96c4 Add python-matrix-bot-api 7 years ago
Oddvar Lovaas 11e6f0c232 Merge pull request #801 from turt2live/travis/projects
Add matrix-email-bot and matrix-appservice-minecraft
7 years ago
Oddvar Lovaas f656aa55e4 Add Navi 7 years ago
Oddvar Lovaas 2e68afa3ca Add MatrixClient 7 years ago
Oddvar Lovaas ea62826739 Add SmartParking 7 years ago
Travis Ralston 15fb89002a Create 2017-02-02-matrix-appservice-minecraft.md 7 years ago
Travis Ralston 0f9d29cd07 Create 2016-12-17-matrix-email-bot.md 7 years ago
Oddvar Lovaas 3783ecb738 Add mxisd 7 years ago
Oddvar Lovaas 226f469156 Add more answers 7 years ago
Oddvar Lovaas 7fa45fbf18 Add TURN server Q. 7 years ago
Oddvar Lovaas 40022609f9 Add "Why can't I rename my homeserver?" 7 years ago
Matthew Hodgson fda1d13db9 Merge pull request #777 from GalPressman/matrigram
projects: Add matrigram project
8 years ago
Konstantinos Sideris 09a768763d Add missing enum fields for the set_presence parameter
Signed-off-by: Konstantinos Sideris <siderisk@auth.gr>
8 years ago
Oddvar Lovaas b9f677ee94 Remove "what are redactions?" from to-be-answered-list 8 years ago
Oddvar Lovaas c47eff0d8d Answer "what are redactions?" 8 years ago
Oddvar Lovaas deda61649d Add new screens for riot-web 8 years ago
Oddvar Lovaas 857e072151 Add NPM packages and desktop builds to Riot project page 8 years ago
Oddvar Lovaas b4776623eb Add synpurge 8 years ago
Oddvar Lovaas c01b0c769c Add matrix-esp8266 8 years ago
Oddvar Lovaas 74e131bd37 Add matrix-music-bot 8 years ago
Oddvar Lovaas dfbb2f0647 add matrix-appservice-facebook 8 years ago
Oddvar Lovaas 200dcec4d1 Add synapse-password-reset 8 years ago
Oddvar Lovaas 42d6861d3c Add tiny-matrix-bot 8 years ago
Oddvar Lovaas cafda9d2a7 Clarify MXID 8 years ago
Gal Pressman 8526da835f projects: Add matrigram project
Signed-off-by: Gal Pressman <galpressman@gmail.com>
8 years ago
Richard van der Hoff a091d86707 Merge pull request #775 from superdump/superdump/fed-pdu-state-update-fix
server-server api: Fix swapped pdu state update field descriptions
8 years ago
Richard van der Hoff 3af8b09f93 Merge pull request #774 from superdump/superdump/fed-pdu-signature-fix
server-server: PDUs are signed by the origin server's private key
8 years ago
Robert Swain db26877eee server-server api: Fix swapped pdu state update field descriptions
Signed-off-by: Robert Swain <robert.swain@gmail.com>
8 years ago
Robert Swain 5855bf4b16 server-server: PDUs are signed by the origin server's private key
Not the public key.

Signed-off-by: Robert Swain <robert.swain@gmail.com>
8 years ago
Oddvar Lovaas 14bd3effde Add riotchat 8 years ago
Oddvar Lovaas 2ea621d540 Add matrix-appservice-gitter-twisted 8 years ago
Oddvar Lovaas 3cad61f95e Add matrix-rocketchat 8 years ago
Oddvar Lovaas 41cbd997d7 Add imessage-bridge 8 years ago
Oddvar Lovaas 1774757807 Add matrix-pushgw 8 years ago
Oddvar Lovaas d1cb5e3d0c Add matrix-fb-chat 8 years ago
Oddvar Lovaas 05750d649f Add mm 8 years ago
Oddvar Lovaas 46eef3d32e Add new projects (interlocutor, node-red-nodes, matrex, gomatrix and matrix-live) 8 years ago
Richard van der Hoff 6b927cb2fb Merge pull request #752 from kyrias/age-field
Clarify that age is generated on the local HS
8 years ago
Johannes Löthberg c1b375b2ac Clarify that age is generated on the local HS
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
8 years ago
Richard van der Hoff b21707659f delete macaroons draft
We're no longer mandating macaroons in the spec; accordingly this doc has no place here.

It was also somewhat out of sync with the impl.
8 years ago
David Baker 19d1b54920 Merge pull request #751 from matrix-org/rav/guest_e2e
Allow guest access to E2E endpoints
8 years ago
Richard van der Hoff 5537f7a832 Allow guest access to E2E endpoints 8 years ago
Richard van der Hoff 3265a9dde3 Merge pull request #750 from kyrias/notice-language
Make m.notice description use stricter language
8 years ago
Johannes Löthberg a8b253889b Add m.notice description rephrasing to changelog
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
8 years ago
Johannes Löthberg d9894aeffd Make m.notice description use stricter language
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
8 years ago
Richard van der Hoff 8a9629167a httpsify the speculator link 8 years ago
Oddvar Lovaas 18a83ea299 Add Freebird 8 years ago
Oddvar Lovaas 83f58baba2 Add j 8 years ago
Richard van der Hoff 7adf95b4ad Merge pull request #740 from matrix-org/rav/fix_736
Set default account 'kind' to 'user'
8 years ago
Richard van der Hoff c83a556097 Set default account 'kind' to 'user'
Fixes https://github.com/matrix-org/matrix-doc/issues/736
8 years ago
Richard van der Hoff 02a8715197 Merge pull request #388 from matrix-org/erikj/public_rooms
New /publicRoom APIs
8 years ago
Richard van der Hoff c175039a08 Final public_rooms clarifications
* order by *joined* members
 * clarify pagination direction behaviour
8 years ago
Richard van der Hoff dca1d0c745 Merge branch 'master' into erikj/public_rooms 8 years ago
Oddvar Lovaas 9debd7c1ad Add Hangouts Bridge 8 years ago
Oddvar Lovaas 42f7aed69a Add fork of matrix-xmpp-bridge 8 years ago
Oddvar Lovaas e5bd9deeeb Add Hello Matrix Bot and fix link in faq 8 years ago
Richard van der Hoff 4abdcc6f05 Merge pull request #402 from matrix-org/rav/device_management
Device management API
8 years ago
Oddvar Lovaas 32cc1ded86 Update PTO; add matrix-ircd 8 years ago
Oddvar Lovaas d5b3af0228 Add Revolt 8 years ago
Richard van der Hoff 2bf0abcb9d Add missing tag to PUT /devices/{deviceId} 8 years ago
Richard van der Hoff 461bfdb0d8 Merge branch 'master' into rav/device_management 8 years ago
Richard van der Hoff b26c84a290 Fix schema validation fail 8 years ago
Richard van der Hoff 07dbf6fcf6 Add doc for PUT /devices/{deviceId}
Oops, forgot this.
8 years ago
Oddvar Lovaas 8172455609 Merge pull request #717 from anewusername/master
Add mxpp to projects
8 years ago
Oddvar Lovaas c8e279c317 Merge pull request #722 from matrix-org/rav/e2e_guide_link
Add e2e guide to guides index
8 years ago
Richard van der Hoff aecac4f931 Merge pull request #723 from matrix-org/markjh/thumbnail_url
Move m.* thumbnail_url to be inside info to match m.video
8 years ago
Mark Haines 7025793ca8 Say that thumbnails should be 'mxc://' 8 years ago
Mark Haines 6f1c598db8 Make the key orders consistent 8 years ago
Mark Haines 05001bcaa6 Fix whitepace 8 years ago
Mark Haines 29e33deeb5 Fix m.location example 8 years ago
Mark Haines 30f9ea0225 Spelling 8 years ago
Mark Haines 5ccf41bafc Add type: object 8 years ago
Mark Haines 6ecb5d0729 re-order thumbnail keys 8 years ago
Mark Haines 4349982189 Fix path 8 years ago
Mark Haines 2fdca5a995 Add a thumbnail_info common schema, deduplicate m.room.avatar and m.room.message#m.image 8 years ago
Mark Haines 1b661b64dc Move m.location thumbnail_url to be inside info to match m.video 8 years ago
Mark Haines 14d05464ee Move m.file thumbnail_url to be inside info to match m.video 8 years ago
Mark Haines 25b41c7551 Move m.image thumbnail_url to be inside info to match m.video 8 years ago
Richard van der Hoff 1cd63bd0db Add e2e guide to guides index
Fixes #721
8 years ago
Richard van der Hoff 22ae6528c7 Merge pull request #718 from matrix-org/rav/move_signing_json
Move 'Signing JSON' to appendices
8 years ago
Richard van der Hoff 3ee75af06f Move 'Signing JSON' to appendices
Canonical JSON and JSON signing in general are common to the C-S spec. Move
them to the appendices instead of the S-S spec.
8 years ago
Richard van der Hoff a5e12814ef Split appendices up
Split appendices into multiple files
8 years ago
jan 7b4bba5cba Add mxpp to projects 8 years ago
Richard van der Hoff 0c3ecad3d4 Merge pull request #416 from matrix-org/rav/e2e_impl_sign_one_time_keys
E2e impl guide: sign one-time keys
8 years ago
Richard van der Hoff e53e3ab01a remove `unsigned` prop for verifying 8 years ago
Richard van der Hoff f0f6ea0cb3 E2e impl guide: sign one-time keys
We now sign our one-time keys.
8 years ago
Richard van der Hoff 41a528c551 Merge pull request #413 from matrix-org/rav/e2e_impl/rotate_megolm_sessions
E2E impl guide: Add details on rotating megolm sessions
8 years ago
Mark Haines 8a99d531a9 Merge pull request #414 from matrix-org/markjh/replays
Document the requirement that clients track the message_index
8 years ago
Mark Haines cbf94c88c2 Move the __ to where it should be 8 years ago
Mark Haines 6a5b66d2d8 Document the where the client gets the message index from 8 years ago
Mark Haines 8641ef299e Document the requirement that clients track the message_index 8 years ago
Richard van der Hoff c576a72673 E2E impl guide: Add details on rotating megolm sessions 8 years ago
Mark Haines 888e6a9f3b Merge pull request #404 from uhoreg/patch-2
add information about Perspectives
8 years ago
Richard van der Hoff 41da7a989f Merge pull request #412 from matrix-org/rav/e2e_impl/check_uks_attacks
E2E impl guide: Document unknown key-share mitigations
8 years ago
Richard van der Hoff 657525d0f4 E2E impl guide: Document unknown key-share mitigations
Document the fields to be added to Olm and the checks to be done to mitigate
the unknown key-share attacks.
8 years ago
Richard van der Hoff d93ef05f5e Merge pull request #411 from matrix-org/rav/e2e_impl/check_user_ids
E2E impl guide: check ids in device query
8 years ago
Richard van der Hoff 4d221bf77d Merge pull request #410 from matrix-org/rav/y_u_no_disable_e2e
Add an entry to the FAQ about disabling e2e
8 years ago
Richard van der Hoff 4368134970 Remove spurious backslashes 8 years ago
Richard van der Hoff 157e51fbc9 E2E impl guide: check ids in device query
Update the E2E impl guide to note that the user_id and device_id returned from
a device query need to be checked.
8 years ago
Richard van der Hoff 4c008a4771 Merge branch 'rav/e2e_guide' 8 years ago
Richard van der Hoff 05ca311be3 Put the E2E guide under guides 8 years ago
Richard van der Hoff 66a50855ff Merge branch 'rav/e2e_guide'
Land the E2E implementation guide
8 years ago
Richard van der Hoff 703b782ea1 e2e guide: remove refs to refresh tokens
refresh tokens are d34d
8 years ago
Richard van der Hoff 21888b5542 e2e guide: formatting tweaks 8 years ago
Richard van der Hoff e77dc0bd4c Add E2E implementation guide 8 years ago
Richard van der Hoff b6c59c137a Add an entry to the FAQ about disabling e2e 8 years ago
Richard van der Hoff 2ec43a5948 Add continuserv index
Oops, forgot this when adding support for the API docs to continuserv in
bfb65d8.
8 years ago
Richard van der Hoff d41438605d Use matrix.org for swagger UI
In the swagger UI, default to matrix.org rather than localhost, to make the UI
more useful.
8 years ago
Richard van der Hoff 33191e5555 Better examples 8 years ago
Richard van der Hoff dfbe416490 Better types for additionalProps
recurse down the definitions for additionalProps, so that the types are better
8 years ago
Richard van der Hoff aefe8f9430 Merge pull request #409 from matrix-org/rav/better_response_examples
Better support for examples in responses
8 years ago
Richard van der Hoff 57611ec523 More example formatting improvements
Generate more realistic example integers, and do some sanity checks on other
examples.
8 years ago
Richard van der Hoff b12b38d680 regrandfather json-formatted example params 8 years ago
Richard van der Hoff af84ca09a0 Better support for examples in responses
Walk the response schema to generate examples.
8 years ago
Richard van der Hoff 0f5e924ac9 Merge pull request #408 from matrix-org/rav/more_ordering_fixes
More ordering fixes
8 years ago
Richard van der Hoff d16385a74f More ordering fixes
We were breaking the ordering of objects defined by allOf reference
8 years ago
Erik Johnston d66792d5ca Mention order of returned results 8 years ago
Richard van der Hoff bfb65d8ceb Serve the API docs with continuserv 8 years ago
Hubert Chathi 0db7eed69d add information about Perspectives
add some information about how Perspectives works, link to their web site, and fix capitalization to match how the Perspectives Project capitalizes their name
8 years ago
Richard van der Hoff 28e7fcbeee Merge pull request #407 from matrix-org/rav/order_properties
Order props in the spec the same as the API
8 years ago
Richard van der Hoff e8915215a2 Merge pull request #405 from matrix-org/dbkr/push_examples_api_path
Fix API path in pushrules examples
8 years ago
Richard van der Hoff c66a83c9ff Order props in the spec the same as the API
Use an OrderedDict when reading the api docs so that properties defined in the
API are rendered in the same order in the spec.
8 years ago
Richard van der Hoff cfbee938b0 changelog: Fix a couple of punctuations 8 years ago
Richard van der Hoff 22777970da Fix speculator link
the link to the 'latest version' was broken
8 years ago
Richard van der Hoff f78e28ade1 Merge pull request #406 from matrix-org/rav/tmpl_work
Various spec templating fixes
8 years ago
Richard van der Hoff 93894ebbbe Fix spurious "None" in non-room events
Events like m.direct and m.tag don't inherit from either Message event or State
event, and were getting a "None" where there should have been a type.
8 years ago
Richard van der Hoff 3dd0fcabb3 Render the body of response objects with inheritance 8 years ago
David Baker 41f4661d1b Fix API path in pushrules examples 8 years ago
Oddvar Lovaas 09b568756c Merge pull request #403 from uhoreg/patch-1
s/vector/riot/
8 years ago
Hubert Chathi c26ed86215 s/vector/riot/
Replace references to Vector with Riot (when appropriate).
8 years ago
Richard van der Hoff af515012ea Device management API 8 years ago
Richard van der Hoff 9265b03008 Client device doc
Document client devices, and the mods to the login and register apis to support
them.
8 years ago
Richard van der Hoff 2b0b5ffeb8 Merge pull request #401 from matrix-org/rav/underscore_api_convention
Document convention of using underscores in APIs
8 years ago
Richard van der Hoff cbc5774ade JSON key names also use underscores. 8 years ago
Richard van der Hoff 8523af1385 Document convention of using underscores in APIs
Everybody has agreed to it. Now we just have to remember to do it.
8 years ago
Matthew Hodgson fcf47386e9 Merge pull request #400 from rrix/rr/fix-my-urls
Fix URLs pointing to Ryan Rix's projects
8 years ago
Ryan Rix 4791c83ce8 Polynomial 8 years ago
Ryan Rix d2d9d7a399 mcat 8 years ago
Ryan Rix 799ca22bb2 Feedbot 8 years ago
Ryan Rix a52ab39e7f Lightrix 8 years ago
Ryan Rix cce8c7ed4b mclient.el 8 years ago
Erik Johnston a69d6c63c6 Merge branch 'master' of github.com:matrix-org/matrix-doc into erikj/public_rooms 8 years ago
Erik Johnston cafa9a01fd Move explanation of lack of direction param 8 years ago
Erik Johnston 71c1fc5ec0 Remove spurious 400 result 8 years ago
Erik Johnston de68c167b6 Add tags for GET endpoint 8 years ago
Erik Johnston 9d0960b206 Better wording 8 years ago
Richard van der Hoff 7ed7944ddc Merge pull request #399 from matrix-org/dbkr/identity_api_right_path
Use the right path for the identity API
8 years ago
David Baker 8cd92211fb Merge pull request #398 from matrix-org/rav/uia_fallback_postmessage
window.postmessage for Interactive Auth fallback
8 years ago
David Baker 49ee00c361 Use the right path for the identity API 8 years ago
Richard van der Hoff 6c88d698ae uia fallback example: check event origin 8 years ago
Richard van der Hoff e850fd718d window.postmessage for Interactive Auth fallback
Require that User-Interactive auth fallback pages call
`window.postMessage` to notify apps of completion.
8 years ago
Richard van der Hoff 42616f839c Merge pull request #396 from matrix-org/dbkr/notifs_api
Spec notifs API
8 years ago
Richard van der Hoff 909aef2b18 Merge pull request #389 from matrix-org/erikj/create_room_is_direct
Spec /createRoom is_direct flag, is_direct in member event and m.direct
8 years ago
Richard van der Hoff 83b89aa1ce dm: clarify client behaviour 8 years ago
David Baker e0a434b248 Aaha, found a syntax that swagger will accept! 8 years ago
David Baker ed2d364440 consistency 8 years ago
David Baker 96b6fb0129 'In the m.room.member' event 8 years ago
David Baker 301595c071 Linkify account_data API
Also change other links because it turns out the .. isn't part
of the syntax
8 years ago
David Baker e2736ba167 Linkify createroom in changelog too 8 years ago
David Baker bd753d4bf4 Re-add required flags the correct way 8 years ago
David Baker af2c74c186 Revert `required`s
They're not boolean flags for object fields
8 years ago
David Baker 14944fe237 More PR feedback 8 years ago
David Baker fd8c1a43c7 ms, not s. Also add required flags 8 years ago
David Baker 2a987c3369 Linkify endpoints properly 8 years ago
David Baker 2259a00ba2 links 8 years ago
David Baker 3f66ba713c Reference m.room.member section 8 years ago
David Baker e2024e5829 Add note on how to use the account data event 8 years ago
David Baker d791f35007 Remove unnecessary paragraph 8 years ago
David Baker 4480553bf9 Move m.direct description to the swagger
Also change the swagger to yaml so I can put that description in it
without having to figure out how to embed that in json.
8 years ago
David Baker b789251f70 More PR feedback 8 years ago
David Baker fe61433553 Merge pull request #397 from matrix-org/rav/401_on_interactive_auth_fail
UI Auth: servers should 401 when a request fails
8 years ago
David Baker 4a020025bc Make swagger happpy
These aren't strings, but 'any' causes swagger to break and
leaving it out makes the doc fail to build.
8 years ago
David Baker b4c89accb2 Params in query, not path 8 years ago
Richard van der Hoff a8d35b2409 UI Auth: servers should 401 when a request fails
(ref https://matrix.org/jira/browse/SYN-744)
8 years ago
Oddvar Lovaas 692e40bec9 Add telematrix 8 years ago
David Baker a463820d83 Typo 8 years ago
David Baker c1fa342b90 Swagger is failing on type 'any' 8 years ago
David Baker 136d5dc9ad Almost valid... 8 years ago
David Baker 595b75f299 Try & make example closer to valid 8 years ago
David Baker 41781e95b2 Attempt valid json 8 years ago
David Baker c16ba9488f Spec notifs API 8 years ago
Richard van der Hoff 37fb1ceb65 Merge pull request #395 from matrix-org/rav/kill_refresh_tokens
Remove references to refresh tokens and tokenrefresh
8 years ago
David Baker 1d7531e9a1 Typo 8 years ago
David Baker 8e096bdc48 Link to createRoom, not initialsync 8 years ago
David Baker 8af90bfc21 Clarify 'this room' 8 years ago
David Baker 85bc989c02 pr feedback 8 years ago
Oddvar Lovaas 92291dcfda Add MatrixTool, update the riots 8 years ago
David Baker 976d41351e spelling 8 years ago
David Baker d39f662df5 PR feedback 8 years ago
Richard van der Hoff bc6c5858ea Merge pull request #386 from matrix-org/rav/store_and_forward
Specification for direct-to-device messages
8 years ago
Richard van der Hoff 556ced36a4 Merge remote-tracking branch 'origin/master' into rav/store_and_forward 8 years ago
David Baker accb3941bf Changelog 8 years ago
David Baker 203ea99328 Spec m.direct 8 years ago
David Baker 8fe8bd6a81 Add is_direct to member event spec. 8 years ago
Richard van der Hoff f4c7fdfd03 Remove references to refresh tokens and tokenrefresh
refresh tokens are dead.
8 years ago
David Baker 5fedc64230 double space 8 years ago
David Baker ae1c576648 Merge remote-tracking branch 'origin/master' into erikj/create_room_is_direct 8 years ago
Richard van der Hoff 1f45724bfd Merge pull request #394 from matrix-org/rav/required_response_fields
Mark required fields in response objects as such
8 years ago
Richard van der Hoff 2dde1a8d28 Merge pull request #390 from matrix-org/erikj/filter_url
Add contains_url filter option and /messages filter
8 years ago
Richard van der Hoff 23d5073820 Mark required fields in response objects as such
Actually this means we can remove a bunch of code which special-cased this.
8 years ago
Richard van der Hoff 91e899338d Merge pull request #393 from matrix-org/rav/speculator_api
Serve the api docs from the speculator
8 years ago
Richard van der Hoff 1320a86cbe Serve the api docs from the speculator
There are a few parts to this:

* when we generate the spec for a particular git sha, also run the script which
  turns our yaml api descriptions into a swagger json file.

* tweak serveSpec to add another header when serving the generated json.

* add a link to the generated index which will (via js hackery) redirect to our
  hosted swagger UI at http://matrix.org/docs/api/client-server, with a "url"
  query-param pointing at the generated json.

Also, factor makeTempDir out of gitClone, so that we can give clearer log lines.
8 years ago
Matthew Hodgson 08001b7768 remove spurious blank clients from try-it-now page 8 years ago
Erik Johnston 069aa86a10 Update wording and add example to filter param 8 years ago
Erik Johnston a10fe9fa43 Update changelog 8 years ago
Erik Johnston 7919e8e159 Update wording. 8 years ago
Erik Johnston a5bb182c67 Explicitly mention that directio of pagination is specified by the token 8 years ago
Erik Johnston a66a744c45 Fix typo. Change responses in both places 8 years ago
Erik Johnston 5e99f4753d Update changelog 8 years ago
Erik Johnston 06649b652d Mark booleans as required. Remove mention that things may be null 8 years ago
Erik Johnston b121feebce Comment what the is_direct flag actually does 8 years ago
Erik Johnston 51248dd0c8 Update changelog 8 years ago
Erik Johnston d01d1a07a6 Add changelog 8 years ago
Erik Johnston e8b21f357f Explicitlty mention total_room_count_estimate 8 years ago
Erik Johnston e854757c98 Mark required fields as required 8 years ago
Erik Johnston 212a4b5fce Add changelog entry 8 years ago
Erik Johnston 0dc94d5c14 Expand on description of pagination tokens 8 years ago
Erik Johnston 37f6769a3c Spec filter param on /messagse 8 years ago
Erik Johnston 085131b617 Add contains_url filter option 8 years ago
Richard van der Hoff 4f1c2f23ee Changelog fix
store-and-forward -> send-to-device
8 years ago
Richard van der Hoff ebaaa7e3b3 Review feedback
* store-and-forward -> send-to-device
* describe motivation
* device ids are 10 capital chars
* etc
8 years ago
Erik Johnston 3a5cbd14c3 Add /createRoom is_direct flag 8 years ago
Erik Johnston c05ee18f58 Add title and update description 8 years ago
Erik Johnston 130ea85576 Spec POST /publicRooms 8 years ago
Erik Johnston 877a6cfeb4 Spec new query params for /publicRooms 8 years ago
Erik Johnston d81d0dbd1d Spec canonical alias key 8 years ago
Richard van der Hoff ccd7bb32d5 Specification for direct-to-device messages 8 years ago
Richard van der Hoff 459f4b953d swagger-http-server: add a --port argument 8 years ago
Oddvar Lovaas 6d7f543612 Merge pull request #385 from freelock/master
Drupal API module and Concourse Notification Resource additions to Try Matrix page
8 years ago
John Locke c010173381 Add Drupal Matrix_api module to Try Matrix page 8 years ago
John Locke c08aa51b18 Add concourse notification resource to Try Matrix page 8 years ago
Oddvar Lovaas 1ea836bb1b Remove howtos from build script 8 years ago
Oddvar Lovaas d7d7f53884 Remove duplicates, add redirect 8 years ago
Oddvar Lovaas 7b559686d5 Merge pull request #384 from matrix-org/rav/misc_docs
Miscellaneous doc fixes
8 years ago
Richard van der Hoff 11961247f7 Miscellaneous doc fixes
Fix some egregious lies and oldthings in the getting-involved and faq pages.
8 years ago
Richard van der Hoff 09c4701524 Merge pull request #383 from matthiasbeyer/fix-link-markup
Fix link markup
8 years ago
Matthias Beyer cefb63dd80 Fix link markup 8 years ago
Oddvar Lovaas edcab06e2d Fix spacing, re-add ios redirect page 8 years ago
Oddvar Lovaas 6e915b9119 Rename Vector -> Riot 8 years ago
Oddvar Lovaas 9e58f4236a Re-write F-droid paragraph 8 years ago
Oddvar Lovaas bdc869d8e7 Merge pull request #382 from exul/faq/client-and-server-questions
Split Implementation into Clients and Server and add questions
8 years ago
Andreas Brönnimann a89669aa1f Add new questions about servers and clients
Also fix some outdate questions

Signed-off-by: Andreas Brönnimann <foss@exul.org>
8 years ago
Andreas Brönnimann f4c093a58d Split Implementations into Servers and Clients
Signed-off-by: Andreas Brönnimann <foss@exul.org>
8 years ago
Richard van der Hoff 65d1888e08 Merge pull request #381 from matrix-org/dbkr/clarify_highlight_and_sound
Clarify `highlight` and `sound` tweaks.
8 years ago
David Baker 9a1db01d92 Clarify `highlight` and `sound` tweaks. 8 years ago
Richard van der Hoff 026a507380 Merge pull request #379 from Ralith/nix-shell
Add a nix-shell environment suitable for building
8 years ago
Richard van der Hoff 4833710bc5 Merge pull request #378 from Ralith/redaction
Fix inconsistencies regarding redacted_because
8 years ago
Benjamin Saunders 33d80408e0 Add a nix-shell environment suitable for building
This enables easy execution of scripts/*.py by Nix users.

Signed-off-by: Benjamin Saunders <ben.e.saunders@gmail.com>
8 years ago
Benjamin Saunders cade909e25 Fix inconsistencies regarding redacted_because
Signed-off-by: Benjamin Saunders <ben.e.saunders@gmail.com>
8 years ago
Richard van der Hoff 69b1827b10 Merge pull request #380 from matrix-org/rav/doc_accountdata_key
Add top-level account_data to /sync response
8 years ago
Richard van der Hoff 7478e7f3cf Add top-level account_data to /sync response 8 years ago
Richard van der Hoff 0474010d47 Merge pull request #376 from Ralith/user_id-sender
Fix some obsolete uses of user_id key in events
8 years ago
Benjamin Saunders 77b668a5dc Fix some obsolete uses of user_id key in events
Signed-off-by: Benjamin Saunders <ben.e.saunders@gmail.com>
8 years ago
Richard van der Hoff 2fa7aac3be Merge pull request #377 from Ralith/typos
Fix typo
8 years ago
Benjamin Saunders 80bfbbdd33 Fix typo
Signed-off-by: Benjamin Saunders <ben.e.saunders@gmail.com>
8 years ago
Oddvar Lovaas 3beffc66cb Move purple-matrix to client list 8 years ago
Oddvar Lovaas df8805155d Merge pull request #375 from davidar/patch-1
Update 2015-06-26-tensor.md
8 years ago
David A Roberts 7935caf388 Update 2015-06-26-tensor.md 8 years ago
Richard van der Hoff 6c78a6aab0 Merge pull request #374 from matrix-org/matthew/fix_state_sending_desc
fix the descriptions of the /room/.../state APIs to not be the wrong way round
8 years ago
Matthew Hodgson 978d9ea6dd fix the descriptions of the /room/.../state APIs to not be the wrong way round 8 years ago
Oddvar Lovaas 16a4903656 Moved to correct date 8 years ago
Oddvar Lovaas b45425938c Add gitter bridges 8 years ago
David Baker fd888fcbda Merge pull request #373 from matrix-org/dbkr/contains_display_name_override
Make the display name rule an override rule
8 years ago
David Baker 311c0a6eb5 Hopefully correct indentation on changelog 8 years ago
David Baker 9fb68f54ce Changelog 8 years ago
Richard van der Hoff 512b0c5564 Merge pull request #372 from matrix-org/dbkr/add_dot
Add dot prefix to .rule.master
8 years ago
David Baker b65b0d049e Make the display name rule an override rule 8 years ago
David Baker 6592646ee9 Add dot prefix to .rule.master
It's a default rule, so it needs a dot
8 years ago
Richard van der Hoff 6a4f65d78f update c-s changelog 8 years ago
David Baker c494adf92c Merge pull request #371 from matrix-org/rav/auth_clarifications
Clarifications to authentication mechanisms
8 years ago
Richard van der Hoff c51c4acf7f Clarifications to authentication mechanisms
* Make the purpose of the `auth` key in /register requests explicit, and say
  that it should be empty at first.

* Restructure the UA-auth section a bit.

* In the UA-auth section, say that clients should submit no `auth` to start
  with, and add 'Stage 0' representing  this to the example.

* s/{stage,login} type/authentication type/ in the UA-auth section. Seems
   clearer to me.

* Try to distinguish the example responses from the example requests by giving
  an HTTP header.
8 years ago
Oddvar Lovaas 5ab7ba282d Add matrix-appservice-rocketchat 8 years ago
Oddvar Lovaas 0ef196f545 Add Nervewire 8 years ago
Richard van der Hoff 4ace92bca3 Merge pull request #370 from Ralith/origin_server_ts
Specify requirement of origin_server_ts
8 years ago
Benjamin Saunders 1c02ff5249 Specify requirement of origin_server_ts
Signed-off-by: Benjamin Saunders <ben.e.saunders@gmail.com>
8 years ago
Oddvar Lovaas fee90f135b Update instructions 8 years ago
Oddvar Lovaas cffd4c34ea Change to sorting by date (mostly) 8 years ago
Matthew Hodgson 9cb626982a s/user/username/ typo 8 years ago
Matthew Hodgson 1551e34ea5 Merge pull request #369 from sim6/fix_faq_federation_api_link
Fix FAQ Federation API link
8 years ago
Matthew Hodgson 946374a737 Merge pull request #368 from sim6/format_faq_links
Format FAQ links
8 years ago
Simó Albert i Beltran a90074ec78 Fix FAQ Federation API link
Signed-off-by: Simó Albert i Beltran <sim6@probeta.net>
8 years ago
Simó Albert i Beltran 82897a52a1 Format FAQ links
Signed-off-by: Simó Albert i Beltran <sim6@probeta.net>
8 years ago
Richard van der Hoff e910a39594 Merge pull request #367 from matrix-org/rav/document_cas_login
document CAS login and m.login.token login
8 years ago
Richard van der Hoff 07fa64d73d Update changelog 8 years ago
Richard van der Hoff 0248afe6ac login with invalid token gives a 403 8 years ago
Richard van der Hoff 1f1dfdd91c More clarifications 8 years ago
Richard van der Hoff ec81b4c9fe More PR feedback
Add a couple of TODO sections
8 years ago
Richard van der Hoff 4b0e546eeb PR feedback
Fix some typos, and clarify several aspects of server behaviour.
8 years ago
Richard van der Hoff 41368dc5a7 document CAS login
Following the spirit of "document how it is, not how we wish it was", document
the CAS login bits.
8 years ago
Mark Haines 20eab7714f Merge pull request #366 from matrix-org/markjh/filename
Document the optional parameter for specifying a filename
8 years ago
Oddvar Lovaas f3d6f6a387 Remove spare () 8 years ago
Oddvar Lovaas 04b71fb571 Add NaChat and Twitter bridgew1 8 years ago
Mark Haines ba64d9fe5a Remove thing from jenkins.sh 8 years ago
Mark Haines f55bf46c7c Print the git revision in jenkins.sh 8 years ago
Mark Haines d0785d80cc Poke jenkins 8 years ago
Mark Haines d2fe2f1ff6 Fix jenkins 8 years ago
Mark Haines 618f94699b Document the optional parameter for specifying a filename to download an attachment as 8 years ago
David Baker 4f206e3223 Merge pull request #365 from matrix-org/rav/pushrules_spec
Clean up the pushrules API doc
8 years ago
Richard van der Hoff 8328e485ea Clean up the pushrules API doc
* make it clearer which fields go in which parts of the rule
* the example given appeared to be for a content rule, so use a content rule
  consistently through the examples.
8 years ago
Richard van der Hoff 9a2af4fbc1 Changelog: Add /upload tweak 8 years ago
Richard van der Hoff 7ac2f51e4a /upload: fix example for filename
The example shouldn't be encoded, else it will be double-encoded by swagger.
8 years ago
Richard van der Hoff 60875770fc Merge pull request #364 from Ralith/upload-filename
Document filename query parameter for uploads
8 years ago
Benjamin Saunders 3e2dea4c52 Document filename query parameter for uploads
Signed-off-by: Benjamin Saunders <ben.e.saunders@gmail.com>
8 years ago
Oddvar Lovaas 81630300fe Add wq!libqmatrixclient 8 years ago
Richard van der Hoff 93cc75299c Merge pull request #363 from matrix-org/rav/tokenrefresh_expires_access_token
/tokenrefresh should expire the access token
8 years ago
Richard van der Hoff ec20f15407 /tokenrefresh should expire the access token
It's possible for clients to call /tokenrefresh before the access_token has
expired, potentially leading to a proliferation of valid access_tokens.
8 years ago
Richard van der Hoff 66bfd0462b Merge pull request #362 from matrix-org/rav/create_room_behaviour
Spell out the state algorithm for createRoom
8 years ago
Richard van der Hoff 2370a4c970 Spell out the state algorithm for createRoom
Fixes https://matrix.org/jira/browse/SPEC-429.

Synapse currently follows the specified ordering, but does *not* give the
specified error when the state is invalid (instead it creates the room anyway
but gives a 403 M_FORBIDDEN). Still, I don't think that should be a real
problem for any real clients, and nothing would break if we changed this in
synapse, so it might as well go in the spec anyway.
8 years ago
Matthew Hodgson c0490f2db2 cosmetics 8 years ago
Richard van der Hoff a8127ece52 Merge branch 'release/client-server/r0.2.0' 8 years ago
Richard van der Hoff b5f9e896ba C-S spec: Fix 'unstable' in link to /context API 8 years ago
Richard van der Hoff 76ec390c73 changelog: Add "unreleased" placeholder 8 years ago
Richard van der Hoff a2ab6854ff CS spec: Add r0.2.0 to historical version list 8 years ago
Kegsay ee3fe989ca Linkify 9 years ago
Kegan Dougal 87f656ee0a Merge branch 'human-id-rules' of github.com:matrix-org/matrix-doc into human-id-rules 9 years ago
Kegan Dougal c9f6534d84 Merge branch 'master' into human-id-rules 9 years ago
Kegsay 0ab2d66ae2 Make it valid RST 9 years ago
Kegan Dougal 3d5ec5eb15 Updated to reflect more recent progress 9 years ago
Kegan Dougal 0131543f00 Merge branch 'master' into human-id-rules 9 years ago
Kegsay 37a7f2108e Update human-id-rules.rst
Mention case canonicalisation on registration.
10 years ago
Kegsay f2422eae3f Update human-id-rules.rst
Moar clarify.
10 years ago
Kegsay 408a0519ec Update human-id-rules.rst
Clarify position on capitalisation.
10 years ago
Kegan Dougal 4f3ee12409 Proposal for human ID rules.
Includes handling of namespaces for bots, handing of capitalisation, spoof
checks and escape sequences.
10 years ago

@ -0,0 +1,7 @@
# EditorConfig is awesome: https://EditorConfig.org
root = true
[*]
insert_final_newline = true
charset = utf-8
max_line_length = 120

@ -0,0 +1,22 @@
---
name: Proposal ready for review
about: A proposal that is ready for review by the core team and community.
title: ''
labels: proposal, proposal-in-review
assignees: ''
---
<!-- Put your "rendered" link here -->
### Pull Request Checklist
<!-- Please read CONTRIBUTING.md before submitting your pull request -->
* [ ] Pull request includes a [sign off](https://github.com/matrix-org/matrix-spec-proposals/blob/master/CONTRIBUTING.md#sign-off)
* [ ] Update the title and file name of your proposal to match this PR's number (after opening).
* [ ] Pull request includes a ['Rendered' link](https://matrix.org/docs/spec/proposals#process) above.
* [ ] Your MSC adheres to each point in the [MSC Checklist](MSC_CHECKLIST.md).
* [ ] Ask in
[#matrix-spec:matrix.org](https://matrix.to/#/#matrix-spec:matrix.org) to
get feedback on this PR.

@ -0,0 +1,21 @@
---
name: WIP Proposal
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.md before submitting your pull request -->
* [ ] Pull request includes a [sign off](https://github.com/matrix-org/matrix-spec-proposals/blob/master/CONTRIBUTING.md#sign-off)
* [ ] Update the title and file name of your proposal to match this PR's number (after opening).
* [ ] Pull request includes a ['Rendered' link](https://matrix.org/docs/spec/proposals#process) above.
* [ ] Have a look at the [MSC Checklist](MSC_CHECKLIST.md) for guidelines on various aspects of your MSC.
<!-- Once the proposal is ready for review, ask in [#matrix-spec:matrix.org](https://matrix.to/#/#matrix-spec:matrix.org) to get it marked as such. -->

@ -0,0 +1,11 @@
[default]
check-filename = true
[default.extend-identifiers]
OTK = "OTK"
OTKs = "OTKs"
[default.extend-words]
OTK = "OTK"
OTKs = "OTKs"
Iy = "Iy"

@ -0,0 +1,19 @@
name: Spell Check
on:
push:
branches:
- main
pull_request:
jobs:
run:
name: Spell Check with Typos
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Check spelling of proposals
uses: crate-ci/typos@f2c1f08a7b3c1b96050cb786baaa2a94797bdb7d # v1.20.10
with:
config: ${{github.workspace}}/.github/_typos.toml

10
.gitignore vendored

@ -1,10 +0,0 @@
scripts/gen
scripts/continuserv/continuserv
scripts/speculator/speculator
/scripts/swagger
templating/out
*.pyc
*.swp
supporting-docs/_site
supporting-docs/.sass-cache
api/node_modules

@ -0,0 +1,87 @@
# Contributing to `matrix-spec-proposals`
Thank you for taking the time to contribute to Matrix!
This repository is for proposals for changes to the Matrix protocol. The process
for submitting a proposal is described in
[this repository's README](README.md#the-matrix-spec-process) or in further detail at
https://spec.matrix.org/proposals/#process.
## Sign off
We ask that everybody who contributes to this project signs off their
contributions, as explained below.
We follow a simple 'inbound=outbound' model for contributions: the act of
submitting an 'inbound' contribution means that the contributor agrees to
license their contribution under the same terms as the project's overall
'outbound' license - in our case, this is Apache Software License v2 (see
[LICENSE](./LICENSE)).
In order to have a concrete record that your contribution is intentional and
you agree to license it under the same terms as the project's license, we've
adopted the same lightweight approach used by the [Linux
Kernel](https://www.kernel.org/doc/html/latest/process/submitting-patches.html),
[Docker](https://github.com/docker/docker/blob/master/CONTRIBUTING.md), and
many other projects: the [Developer Certificate of
Origin](http://developercertificate.org/) (DCO). This is a simple declaration
that you wrote the contribution or otherwise have the right to contribute it to
Matrix:
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
If you agree to this for your contribution, then all that's needed is to
include the line in your commit or pull request comment:
Signed-off-by: Your Name <your@email.example.org>
...using your real name; unfortunately pseudonyms and anonymous contributions
can't be accepted. Git makes this trivial - just use the -s flag when you do
``git commit``, having first set ``user.name`` and ``user.email`` git configs
(which you should have done anyway :)
### Private sign off
If you would like to provide your legal name privately to the Matrix.org
Foundation (instead of in a public commit or comment), you can do so by emailing
your legal name and a link to the pull request to dco@matrix.org. It helps to
include "sign off" or similar in the subject line. You will then be instructed
further.
Once private sign off is complete, doing so for future contributions will not be required.
[1]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request

@ -1,153 +0,0 @@
Contributing to matrix-doc
==========================
Everyone is welcome to contribute to the ``matrix-doc`` project, provided that they
are willing to license their contributions under the same license as the
project itself. We follow a simple 'inbound=outbound' model for contributions:
the act of submitting an 'inbound' contribution means that the contributor
agrees to license the code under the same terms as the project's overall
'outbound' license - in our case, this is Apache Software License
v2 (see LICENSE).
Specification changes
~~~~~~~~~~~~~~~~~~~~~
The Matrix specification documents the APIs which Matrix clients can use. For
this to be effective, the APIs need to be present and working correctly in a
server before they can be documented in the specification. This process can
take some time to complete.
For this reason, we have not found the github pull-request model effective for
discussing changes to the specification. Instead, we have adopted the following
workflow:
1. Create a discussion document outlining the proposed change. The document
should include details such as the HTTP endpoint being changed (or the
suggested URL for a new endpoint), any new or changed parameters and response
fields, and generally as much detail about edge-cases and error handling as
is practical at this stage.
The Matrix Core Team's preferred tool for such discussion documents is
`Google Docs <https://docs.google.com>`_ thanks to its support for comment
threads. Works in progress are kept in a folder at
https://drive.google.com/drive/folders/0B4wHq8qP86r2ck15MHEwMmlNVUk.
2. Seek feedback on the proposal. `#matrix-dev:matrix.org
<http://matrix.to/#/#matrix-dev:matrix.org>`_ is a good place to reach the
core team and others who may be interested in your proposal.
3. Implement the changes in servers and clients. Refer to the CONTRIBUTING files
of the relevant projects for details of how best to do this.
In general we will be unable to publish specification updates until the
reference server implements them, and they have been proven by a working
client implementation.
4. Iterate steps 1-3 as necessary.
5. Write the specification for the change, and create a `pull request`_ for
it. It may be that much of the text of the change can be taken directly from
the discussion document, though typically some effort will be needed to
change to the ReST syntax and to ensure that the text is as clear as
possible.
Other changes
~~~~~~~~~~~~~
The above process is unnecessary for smaller changes, and those which do not
put new requirements on servers. This category of changes includes the
following:
* changes to supporting documentation
* changes to the scripts used to generate the specification
* clarifications to the specification which do not change the behaviour of
Matrix servers or clients in a way which might introduce compatibility
problems for existing deployments. For example, recommendations for UI
behaviour do not require a proposal document. On the other hand, changes to
event contents would be best discussed in a proposal document even though no
changes would be necessary to server implementations.
For such changes, please do just open a `pull request`_.
Pull requests
~~~~~~~~~~~~~
.. _pull request: `Pull requests`_
The preferred and easiest way to contribute changes to the ``matrix-doc`` project
is to fork it on github, and then create a pull request to ask us to pull your
changes into our repo (https://help.github.com/articles/using-pull-requests/).
(Note that, unlike most of the other matrix.org projects, pull requests for
matrix-doc should be based on the ``master`` branch.)
Code style
~~~~~~~~~~
The documentation style is described at
https://github.com/matrix-org/matrix-doc/blob/master/meta/documentation_style.rst.
Python code within the ``matrix-doc`` project should follow the same style as
synapse, which is documented at
https://github.com/matrix-org/synapse/tree/master/docs/code_style.rst.
Sign off
~~~~~~~~
In order to have a concrete record that your contribution is intentional
and you agree to license it under the same terms as the project's license, we've adopted the
same lightweight approach that the Linux Kernel
(https://www.kernel.org/doc/Documentation/SubmittingPatches), Docker
(https://github.com/docker/docker/blob/master/CONTRIBUTING.md), and many other
projects use: the DCO (Developer Certificate of Origin:
http://developercertificate.org/). This is a simple declaration that you wrote
the contribution or otherwise have the right to contribute it to Matrix::
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
If you agree to this for your contribution, then all that's needed is to
include the line in your commit or pull request comment::
Signed-off-by: Your Name <your@email.example.org>
...using your real name; unfortunately pseudonyms and anonymous contributions
can't be accepted. Git makes this trivial - just use the -s flag when you do
``git commit``, having first set ``user.name`` and ``user.email`` git configs
(which you should have done anyway :)

@ -0,0 +1,50 @@
# MSC Checklist
This document contains a list of final checks to perform on an MSC before it
is accepted. The purpose is to prevent small clarifications needing to be
made to the MSC after it has already been accepted.
Spec Core Team (SCT) members, please ensure that all of the following checks
pass before accepting a given Matrix Spec Change (MSC).
MSC authors, feel free to ask in a thread on your PR or in the
[#matrix-spec:matrix.org](https://matrix.to/#/#matrix-spec:matrix.org) room for
clarification of any of these points.
- [ ] Are [appropriate
implementation(s)](https://spec.matrix.org/proposals/#implementing-a-proposal)
specified in the MSCs PR description?
- [ ] Are all MSCs that this MSC depends on already accepted?
- [ ] For each new endpoint that is introduced:
- [ ] Have authentication requirements been specified?
- [ ] Have rate-limiting requirements been specified?
- [ ] Have guest access requirements been specified?
- [ ] Are error responses specified?
- [ ] Does each error case have a specified `errcode` (e.g. `M_FORBIDDEN`) and HTTP status code?
- [ ] If a new `errcode` is introduced, is it clear that it is new?
- [ ] Will the MSC require a new room version, and if so, has that been made clear?
- [ ] Is the reason for a new room version clearly stated? For example,
modifying the set of redacted fields changes how event IDs are calculated,
thus requiring a new room version.
- [ ] Are backwards-compatibility concerns appropriately addressed?
- [ ] Are the [endpoint conventions](https://spec.matrix.org/latest/appendices/#conventions-for-matrix-apis) honoured?
- [ ] Do HTTP endpoints `use_underscores_like_this`?
- [ ] Will the endpoint return unbounded data? If so, has pagination been considered?
- [ ] If the endpoint utilises pagination, is it consistent with [the
appendices](https://spec.matrix.org/v1.8/appendices/#pagination)?
- [ ] An introduction exists and clearly outlines the problem being solved.
Ideally, the first paragraph should be understandable by a non-technical
audience
- [ ] All outstanding threads are resolved
- [ ] All feedback is incorporated into the proposal text itself, either as a fix or noted as an alternative
- [ ] While the exact sections do not need to be present, the details implied by the proposal template are covered. Namely:
- [ ] Introduction
- [ ] Proposal text
- [ ] Potential issues
- [ ] Alternatives
- [ ] Security considerations
- [ ] Dependencies
- [ ] Stable identifiers are used throughout the proposal, except for the unstable prefix section
- [ ] Unstable prefixes [consider](README.md#unstable-prefixes) the awkward accepted-but-not-merged state
- [ ] Chosen unstable prefixes do not pollute any global namespace (use “org.matrix.mscXXXX”, not “org.matrix”).
- [ ] Changes have applicable [Sign Off](CONTRIBUTING.md#sign-off) from all authors/editors/contributors

@ -0,0 +1,370 @@
# Matrix Specification Proposals
This repository contains proposals for changes to the [Matrix
Protocol](http://spec.matrix.org), aka "Matrix Spec Changes" (MSCs). The
[`proposals`](./proposals) directory contains MSCs which have been accepted.
See below for instructions for creating new
proposals. See also https://spec.matrix.org/proposals/ for more
information on the MSC process, in particular
https://spec.matrix.org/proposals/#process.
The source of the Matrix specification itself is maintained at
https://github.com/matrix-org/matrix-spec.
## The Matrix Spec Process
An MSC is meant to be a **technical document that unambiguously describes a
change to the Matrix Spec**, while also justifying _why_ the change should be
made.
The document is used both to judge whether the change should be made as
described *and* by developers to actually implement the changes. This is why
it's important for an MSC to be fully fleshed out in technical detail, as once
merged it's immediately part of the formal spec (even though it still needs to
be transcribed into the actual spec itself).
### What changes need to follow this process?
In most cases a change to [the Matrix protocol](https://spec.matrix.org) will
require an MSC. Changes that would not require an MSC are typically small and
uncontentious, or are simply clarifications to the spec. Fixing typos in the
spec do not require an MSC. In most cases, removing ambiguities do not either.
The exception may be if implementations in the ecosystem have differing views
on clarifying the ambiguity. In that case, an MSC is typically the best place
to reach consensus.
Ultimately, the [Spec Core Team](https://matrix.org/foundation) have the final
say on this, but generally if the change would require updates to a
non-insignificant portion of the Matrix implementation ecosystem or would be
met with contention, an MSC is the best route to take. You can also ask in the
[Matrix Spec](https://matrix.to/#/#matrix-spec:matrix.org) or [Office of the
Spec Core Team](https://matrix.to/#/#sct-office:matrix.org) Matrix rooms for
clarification.
### Summary of the process
The MSC process consists of three basic steps:
1. **Write up the proposal** in a
[markdown](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#GitHub-flavored-markdown)
document. (There's a [proposal
template](proposals/0000-proposal-template.md), but don't feel bound by it.)
2. **Submit it as a Pull Request** to this repo, marking it as a draft until
it's ready for wider review.
3. **Seek review** from the community. Once people are generally happy with it,
ask the [Spec Core Team](https://matrix.org/foundation) to look at it in
[the Office of the SCT Matrix
room](https://matrix.to/#/#sct-office:matrix.org). When the SCT are happy
with the proposal, and after a successful voting process, your pull request
is merged and the **MSC is now officially accepted** as part of the Matrix
Spec and can be used 🎉
For simple changes this is really all you need to know. For larger or more
controversial changes, getting an MSC merged can take more time and effort, but
the overall process remains the same.
Below is various guidance to try and help make the experience smoother.
### Guidance on the process
#### 1. Writing the proposal
Come up with an idea. The idea can be for anything, but the solution (MSC)
needs to benefit the Matrix ecosystem rather than yourself (or your company)
specifically. Sometimes this means that the solution needs to be more generic
than the specific itch that you are trying to scratch.
Remember that an MSC is a formal technical document which will be used by
others in the wider community to judge if the proposal should be accepted *and*
to actually implement the changes in clients and servers. This means that for
an MSC to be accepted it should include justifications and describe the
technical changes unambiguously, including specifying what happens in any and
all edge cases.
There's a [proposal template](proposals/0000-proposal-template.md) under
`docs/0000-proposal.md`, but you don't necessarily need to use it. Covering the
same major points is fine.
* Note: At this stage, you won't have an MSC number, so feel free to use
`0000`, `XXXX`, or whatever other placeholder you feel comfortable with.
Some tips for MSC writing:
* Please wrap your lines to 120 characters maximum.
This allows readers to review your markdown without needing to horizontally
scroll back and forth. Many markdown text editors have this feature.
* If you are referencing an existing endpoint in the spec, or another MSC, it
is very helpful to add a link to them so the reader does not need to search
themselves. Examples:
* "This MSC proposals an alternative to
[MSC3030](https://github.com/matrix-org/matrix-spec-proposals/pull/3030)."
* "A new field will be added to the response body of
[`/_matrix/client/v3/sync`](https://spec.matrix.org/v1.3/client-server-api/#get_matrixclientv3sync)".
* Note: it is best to link to the latest stable version of the spec
(e.g. /v1.3, not /latest) - failing that,
[/unstable](https://spec.matrix.org/unstable/) if the change is not
yet in a released spec version.
* GitHub supports rendering fancy diagrams from text with very little
effort using [Mermaid](https://mermaid-js.github.io/mermaid/#/). See [this
guide](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/)
for more information.
* Take a look at the [MSC Checklist](MSC_CHECKLIST.md). When it comes time for
the Spec Core Team to review your MSC for acceptance, they'll use the items
on this checklist as a guide.
#### 2. Submitting a Pull Request
1. Open a [Pull
Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request)
to add your proposal document to the [`proposals`](proposals) directory.
Note that this will require a GitHub account.
* [Mark your Pull Request as a
draft](https://github.blog/2019-02-14-introducing-draft-pull-requests/)
for now.
2. The MSC number is the number of the pull request that is automatically
assigned by GitHub. Go back through and edit the document accordingly. Don't
forget the file name itself!
3. Edit the pull request title to fit the format "MSC1234: Your proposal
title".
4. Once your proposal is correctly formatted and ready for review from the
wider ecosystem, [take your Pull Request out of draft
status](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#marking-a-pull-request-as-ready-for-review).
The Spec Core Team will notice this and apply various labels/status tracking to
your MSC, which will announce it to the wider world.
#### 3. Seeking review
Seek review from the Matrix community. Generally this will happen naturally,
but if you feel that your proposal is lacking review then ask for people's
opinion in the [Matrix Spec room on
Matrix](https://matrix.to/#/#matrix-spec:matrix.org).
Reviews can take many forms, and do not need to be done solely by members of
the Spec Core Team. Getting other people who are familiar with the area of
Matrix you are proposing changes to is a great first step; especially those who
may be implementing these changes in clients and/or homeservers.
While the proposal is a work in progress, it's fine for it to be high level
and hand-wavy in places, but remember that before it can be accepted it needs
to be expanded to fully flesh out all the technical detail and edge cases.
At this stage the proposal should also be implemented as a proof of concept
somewhere to show that it _actually_ works in practice. This can be done on any
client or server and doesn't need to be merged or released.
#### 4. Entering Final Comment Period
After the MSC has been implemented, fully fleshed out, and generally feels
ready for final review, you should ask a member of the Spec Core Team to review it in
the public [Spec Core Team Office room on
Matrix](https://matrix.to/#/#sct-office:matrix.org). Someone from the SCT will
then review it, and if all looks well will propose FCP
to start.
At this point, other members of the SCT will look at the proposal and consider
it for inclusion in the spec.
After enough SCT members have approved the proposal, the MSC will enter
something called _Final Comment Period_. This is a 5 calendar day countdown to
give anyone one last chance to raise any blockers or concerns about the
proposed change. Typically MSCs pass this stage without incident, but it
nevertheless serves as a safeguard.
#### 5. The MSC is accepted
Once FCP has ended and the MSC pull request is merged, the proposed change is
considered officially part of the spec. Congratulations!
Clients and servers can now start using the change, even though at this stage
it still needs to be transcribed into the spec document. This happens over in
https://github.com/matrix-org/matrix-spec/ and you are very welcome to do it
yourself! Otherwise it will be handled by a Spec Core Team member. If you would
like help with writing spec PRs, feel free to join and ask questions in the
[Matrix Spec and Docs Authoring Room on Matrix](https://matrix.to/#/#matrix-docs:matrix.org).
### Other useful information
#### Unstable prefixes
"Unstable prefixes" are the namespaces which are used by implementations while
an MSC is not yet accepted.
For instance, an MSC might propose that a `m.space`
event type or an `/_matrix/client/v1/account/whoami` endpoint should exist.
However, implementations cannot use these *stable* identifiers until the MSC
has been accepted, as the underlying design may change at any time; the design is
*unstable*.
Instead, an MSC can define a namespace such as `org.matrix.msc1234` (using the real
MSC number once known) which is added to the stable identifier, allowing for
breaking changes between edits of the MSC itself, and preventing clashes with other
MSCs that might attempt to add the same stable identifiers.
For the above examples, this would mean using `org.matrix.msc1234.space` and
`/_matrix/client/unstable/org.matrix.msc1234/account/whoami`. It is also fine to
use more traditional forms of namespace prefixes, such as `com.example.*` (e.g.
`com.example.space`).
Note: not all MSCs need to make use of unstable prefixes. They are only needed if
implementations of your MSC need to exist in the wild before your MSC is accepted,
*and* the MSC defines new endpoints, field names, etc.
#### Unstable feature flags
It is common when implementing support for an MSC that a client may wish to check
if the homeserver it is communicating with supports an MSC.
Typically, this is handled by the MSC defining an
entry in the `unstable_features` dictionary of the
[`/_matrix/client/versions`](https://spec.matrix.org/v1.6/client-server-api/#get_matrixclientversions)
endpoint, in the form of a new entry:
```json5
{
"unstable_features": {
"org.matrix.msc1234": true
}
}
```
... with a value of `true` indicating that the feature is supported, and `false`
or lack of the field altogether indicating the feature is not supported.
#### When can I use stable identifiers?
[According to the spec
process](https://spec.matrix.org/proposals/#early-release-of-an-mscidea): once
an MSC has been accepted, implementations are allowed to switch to *stable*
identifiers. However, the MSC is still not yet part of a released spec version.
In most cases, this is not an issue. For instance, if your MSC specifies a new
event type, you can now start sending events with those types!
Some MSCs introduce functionality where coordination between implementations is
needed. For instance, a client may want to know whether a homeserver supports
the stable version of a new endpoint before actually attempting to request it.
Or perhaps the new event type you're trying to send relies on the homeserver
recognising that new event type, and doing some work when it sees it.
At this point, it may be best to wait until a new spec version is released with
your changes. Homeservers that support the changes will eventually advertise
that spec version under `/versions`, and your client can check for that.
But if you really can't wait, then there is another option: the homeserver can
tell clients that it supports *stable* indentifiers for your MSC before it
enters a spec version, using yet another `unstable_features` flag:
```json5
{
"unstable_features": {
"org.matrix.msc1234": true,
"org.matrix.msc1234.stable": true
}
}
```
If a client sees that `org.matrix.msc1234.stable` is `true`, it knows that it
can start using stable identifiers for the new MSC, and the homeserver will
accept and act on them accordingly.
Note: While the general pattern of using the text ".stable" has emerged from
previous MSCs, you can pick any name you like. You need only to clearly state
their meaning, usually under an "Unstable prefixes" header in your MSC.
See
[MSC3827](https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/3827-space-explore.md#unstable-prefix)
for a good example of an MSC that wanted to use such a flag to speed up
implementation rollout, and how it did so.
#### Room versions
To summarize [the spec](https://spec.matrix.org/latest/rooms/) on room
versions: they are how servers agree upon algorithms in a decentralized world
like ours. Examples of changes that require a new room version include anything that changes:
* The format of the core event structure (such as renaming a top-level field,
or modifying [the redaction
algorithm](https://spec.matrix.org/latest/client-server-api/#redactions)),
therefore altering the [reference
hash](https://spec.matrix.org/latest/server-server-api/#calculating-the-reference-hash-for-an-event)
of an event.
* [The authorisation of
events](https://spec.matrix.org/latest/server-server-api/#authorization-rules)
(such as changes to power levels).
Unstable prefixes (see above) for room versions work the same as they do for
other identifiers; your unstable room version may be called
"org.matrix.msc1234".
In order for the changes to end up in a "real" room version (the ones listed in
the spec), it will need a second MSC which aggregates a bunch of functionality
from various MSCs into a single room version. Typically these sorts of curating
MSCs are written by the Spec Core Team given the complexity in wording, but
you're more than welcome to bring an MSC forward which makes the version real.
For an example of what introducing a new room version-required feature can look
like, see [MSC3667](https://github.com/matrix-org/matrix-doc/pull/3667). For an
example of what making a new "real" room version looks like, see
[MSC3604](https://github.com/matrix-org/matrix-doc/pull/3604).
#### Ownership of MSCs and closing them
If an author decides that they would no longer like to pursue their MSC, they
can either pass ownership of it off to someone else, or close it themselves.
* The author of an MSC can close their MSC at any time before FCP by simply
closing the pull request.
* To appoint another user as an author of the MSC (either to replace the author
entirely or to provide additional help), make a note in the MSC's PR
description by writing the following on its own line:
```
Author: @username
```
where `@username` is a valid GitHub username. Multiple such lines can be
added.
Finally, [give that user access to write to your fork of
matrix-spec-proposals on
GitHub](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-access-to-your-personal-repositories/inviting-collaborators-to-a-personal-repository),
which your PR originates from. This will allow them to change the text of
your MSC.
Similar to accepting an MSC, the Spec Core Team may propose a Final Comment
Period with a disposition of "close". This can happen if the MSC appears
abandoned by its author, or the idea is widely rejected by the community. A
vote and final comment period will still be required for the motion to pass.
Additionally, FCP can be also proposed with a disposition of "postpone". This
may be done for MSCs for which the proposed changes do not make sense for the
current state of the ecosystem, but may make sense further down the road.
## Asking for help
The Matrix community and members of the Spec Core Team are here to help guide
you through the process!
If you'd just like to get initial feedback about an idea that's not fully
fleshed out yet, creating an issue at
https://github.com/matrix-org/matrix-spec/issues is a great place to start. Be
sure to search for any existing issues first to see if someone has already had
the same idea!
A few official rooms exist on Matrix where your questions can be answered, or
feedback on your proposal can be requested:
* [#matrix-spec:matrix.org](https://matrix.to/#/#matrix-spec:matrix.org) -
General chat for MSCs, the spec, and pretty much anything in that sphere.
* [#sct-office:matrix.org](https://matrix.to/#/#sct-office:matrix.org) - Where
the Spec Core Team hangs out and is available. This room is intended to have
extremely high signal and low noise, primarily to ensure that MSCs are not
falling through the cracks. If an MSC requires attention or comment from Spec
Core Team members, bring it up here.
* [#matrix-spec-process:matrix.org](https://matrix.to/#/#matrix-spec-process:matrix.org) - A
room dedicated to [the spec process
itself](https://spec.matrix.org/proposals/#process). If you have any
questions about or suggestions to improve the Matrix Spec process, ask them
here.
* [#matrix-docs:matrix.org](https://matrix.to/#/#matrix-docs:matrix.org) - A
quieter room for discussion of the [formal spec
text](https://spec.matrix.org) and [matrix.org](https://matrix.org) website.

@ -1,39 +0,0 @@
This repository contains the documentation for Matrix.
Structure
=========
- ``api`` : Contains the HTTP API specification.
- ``attic``: Contains historical sections of specification for reference
purposes.
- ``changelogs``: Contains change logs for the various parts of the
specification.
- ``drafts``: Previously, contained documents which were under discussion for
future incusion into the specification and/or supporting documentation. This
is now historical, as we use separate discussion documents (see
`<CONTRIBUTING.rst>`_).
- ``event-schemas``: Contains the `JSON Schema`_ for all Matrix events
contained in the specification, along with example JSON files.
- ``meta``: Contains documents outlining the processes involved when writing
documents, e.g. documentation style, guidelines.
- ``scripts``: Contains scripts to generate formatted versions of the
documentation, typically HTML.
- ``specification``: Contains the specification split up into sections.
- ``supporting-docs``: Contains additional documents which explain design
decisions, examples, use cases, etc.
- ``templating``: Contains the templates and templating system used to
generate the spec.
Contributing
============
Known issues with the specification are represented as JIRA issues at
`<https://matrix.org/jira/browse/SPEC>`_.
If you want to ask more about the specification, join us on
`#matrix-dev:matrix.org <http://matrix.to/#/#matrix-dev:matrix.org>`_.
If you would like to contribute to the specification or supporting
documentation, see `<CONTRIBUTING.rst>`_.
.. _JSON Schema: http://json-schema.org/

@ -1,3 +0,0 @@
This directory contains swagger-compatible representations of our APIs. See
scripts/README.md for details on how to make use of them.

@ -1,213 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Application Service API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: "/"
consumes:
- application/json
produces:
- application/json
paths:
"/transactions/{txnId}":
put:
summary: Send some events to the application service.
description: |-
This API is called by the HS when the HS wants to push an event (or
batch of events) to the AS.
parameters:
- in: path
name: txnId
type: string
description: |-
The transaction ID for this set of events. Homeservers generate
these IDs and they are used to ensure idempotency of requests.
required: true
x-example: "35"
- in: body
name: body
description: A list of events
schema:
type: object
example: |-
{
"events": [
{
"age": 32,
"content": {
"body": "incoming message",
"msgtype": "m.text"
},
"event_id": "$14328055551tzaee:localhost",
"origin_server_ts": 1432804485886,
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"type": "m.room.message",
"user_id": "@bob:localhost"
},
{
"age": 1984,
"content": {
"body": "another incoming message",
"msgtype": "m.text"
},
"event_id": "$1228055551ffsef:localhost",
"origin_server_ts": 1432804485886,
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"type": "m.room.message",
"user_id": "@bob:localhost"
}
]
}
description: "Transaction informations"
properties:
events:
type: array
description: A list of events
items:
type: object
title: Event
required: ["events"]
responses:
200:
description: The transaction was processed successfully.
examples:
application/json: |-
{}
schema:
type: object
"/rooms/{roomAlias}":
get:
summary: Query if a room alias should exist on the application service.
description: |-
This endpoint is invoked by the homeserver on an application service to query
the existence of a given room alias. The homeserver will only query room
aliases inside the application service's ``aliases`` namespace. The
homeserver will send this request when it receives a request to join a
room alias within the application service's namespace.
parameters:
- in: path
name: roomAlias
type: string
description: The room alias being queried.
required: true
x-example: "#magicforest:example.com"
responses:
200:
description: |-
The application service indicates that this room alias exists. The
application service MUST have created a room and associated it with
the queried room alias using the client-server API. Additional
information about the room such as its name and topic can be set
before responding.
examples:
application/json: |-
{}
schema:
type: object
401:
description: |-
The homeserver has not supplied credentials to the application service.
Optional error information can be included in the body of this response.
examples:
application/json: |-
{
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
}
schema:
type: object
403:
description: |-
The credentials supplied by the homeserver were rejected.
examples:
application/json: |-
{
"errcode": "M_FORBIDDEN"
}
schema:
type: object
404:
description: |-
The application service indicates that this room alias does not exist.
Optional error information can be included in the body of this response.
examples:
application/json: |-
{
"errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND"
}
schema:
type: object
"/users/{userId}":
get:
summary: Query if a user should exist on the application service.
description: |-
This endpoint is invoked by the homeserver on an application service to query
the existence of a given user ID. The homeserver will only query user IDs
inside the application service's ``users`` namespace. The homeserver will
send this request when it receives an event for an unknown user ID in
the application service's namespace.
parameters:
- in: path
name: userId
type: string
description: The user ID being queried.
required: true
x-example: "@alice:example.com"
responses:
200:
description: |-
The application service indicates that this user exists. The application
service MUST create the user using the client-server API.
examples:
application/json: |-
{}
schema:
type: object
401:
description: |-
The homeserver has not supplied credentials to the application service.
Optional error information can be included in the body of this response.
examples:
application/json: |-
{
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
}
schema:
type: object
403:
description: |-
The credentials supplied by the homeserver were rejected.
examples:
application/json: |-
{
"errcode": "M_FORBIDDEN"
}
schema:
type: object
404:
description: |-
The application service indicates that this user does not exist.
Optional error information can be included in the body of this response.
examples:
application/json: |-
{
"errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND"
}
schema:
type: object

@ -1,142 +0,0 @@
#! /usr/bin/env python
#
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import sys
import json
import os
def import_error(module, package, debian, error):
sys.stderr.write((
"Error importing %(module)s: %(error)r\n"
"To install %(module)s run:\n"
" pip install %(package)s\n"
"or on Debian run:\n"
" sudo apt-get install python-%(debian)s\n"
) % locals())
if __name__ == '__main__':
sys.exit(1)
try:
import jsonschema
except ImportError as e:
import_error("jsonschema", "jsonschema", "jsonschema", e)
raise
try:
import yaml
except ImportError as e:
import_error("yaml", "PyYAML", "yaml", e)
raise
def check_parameter(filepath, request, parameter):
schema = parameter.get("schema")
example = None
try:
example_json = schema.get('example')
if example_json and not schema.get("format") == "byte":
example = json.loads(example_json)
except Exception as e:
raise ValueError("Error parsing JSON example request for %r" % (
request
), e)
fileurl = "file://" + os.path.abspath(filepath)
if example and schema:
try:
print ("Checking request schema for: %r %r" % (
filepath, request
))
# Setting the 'id' tells jsonschema where the file is so that it
# can correctly resolve relative $ref references in the schema
schema['id'] = fileurl
resolver = jsonschema.RefResolver(filepath, schema, handlers={"file": load_yaml})
jsonschema.validate(example, schema, resolver=resolver)
except Exception as e:
raise ValueError("Error validating JSON schema for %r" % (
request
), e)
def check_response(filepath, request, code, response):
example = None
try:
example_json = response.get('examples', {}).get('application/json')
if example_json:
example = json.loads(example_json)
except Exception as e:
raise ValueError("Error parsing JSON example response for %r %r" % (
request, code
), e)
schema = response.get('schema')
fileurl = "file://" + os.path.abspath(filepath)
if example and schema:
try:
print ("Checking response schema for: %r %r %r" % (
filepath, request, code
))
# Setting the 'id' tells jsonschema where the file is so that it
# can correctly resolve relative $ref references in the schema
schema['id'] = fileurl
resolver = jsonschema.RefResolver(filepath, schema, handlers={"file": load_yaml})
jsonschema.validate(example, schema, resolver=resolver)
except Exception as e:
raise ValueError("Error validating JSON schema for %r %r" % (
request, code
), e)
def check_swagger_file(filepath):
with open(filepath) as f:
swagger = yaml.load(f)
for path, path_api in swagger.get('paths', {}).items():
for method, request_api in path_api.items():
request = "%s %s" % (method.upper(), path)
for parameter in request_api.get('parameters', ()):
if parameter['in'] == 'body':
check_parameter(filepath, request, parameter)
try:
responses = request_api['responses']
except KeyError:
raise ValueError("No responses for %r" % (request,))
for code, response in responses.items():
check_response(filepath, request, code, response)
def load_yaml(path):
if not path.startswith("file:///"):
raise Exception("Bad ref: %s" % (path,))
path = path[len("file://"):]
with open(path, "r") as f:
return yaml.load(f)
if __name__ == '__main__':
paths = sys.argv[1:]
if not paths:
paths = []
for (root, dirs, files) in os.walk(os.curdir):
for filename in files:
if filename.endswith(".yaml"):
paths.append(os.path.join(root, filename))
for path in paths:
try:
check_swagger_file(path)
except Exception as e:
raise ValueError("Error checking file %r" % (path,), e)

@ -1,118 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Client Config API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/user/{userId}/account_data/{type}":
put:
summary: Set some account_data for the user.
description: |-
Set some account_data for the client. This config is only visible to the user
that set the account_data. The config will be synced to clients in the
top-level ``account_data``.
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
required: true
description: |-
The id of the user to set account_data for. The access token must be
authorized to make requests for this user id.
x-example: "@alice:example.com"
- in: path
type: string
name: type
required: true
description: |-
The event type of the account_data to set. Custom types should be
namespaced to avoid clashes.
x-example: "org.example.custom.config"
- in: body
name: content
required: true
description: |-
The content of the account_data
schema:
type: object
example: |-
{"custom_account_data_key": "custom_config_value"}
responses:
200:
description:
The account_data was successfully added.
tags:
- User data
"/user/{userId}/rooms/{roomId}/account_data/{type}":
put:
summary: Set some account_data for the user.
description: |-
Set some account_data for the client on a given room. This config is only
visible to the user that set the account_data. The config will be synced to
clients in the per-room ``account_data``.
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
required: true
description: |-
The id of the user to set account_data for. The access token must be
authorized to make requests for this user id.
x-example: "@alice:example.com"
- in: path
type: string
name: roomId
required: true
description: |-
The id of the room to set account_data on.
x-example: "!726s6s6q:example.com"
- in: path
type: string
name: type
required: true
description: |-
The event type of the account_data to set. Custom types should be
namespaced to avoid clashes.
x-example: "org.example.custom.room.config"
- in: body
name: content
required: true
description: |-
The content of the account_data
schema:
type: object
example: |-
{"custom_account_data_key": "custom_account_data_value"}
responses:
200:
description:
The account_data was successfully added.
tags:
- User data

@ -1,114 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Administration API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/admin/whois/{userId}":
get:
summary: Gets information about a particular user.
description: |-
Gets information about a particular user.
This API may be restricted to only be called by the user being looked
up, or by a server admin. Server-local administrator privileges are not
specified in this document.
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
description: The user to look up.
required: true
x-example: "@peter:rabbit.rocks"
responses:
200:
description: The lookup was successful.
examples:
application/json: |-
{
"user_id": "@peter:rabbit.rocks",
"devices": {
"teapot": {
"sessions": [
{
"connections": [
{
"ip": "127.0.0.1",
"last_seen": 1411996332123,
"user_agent": "curl/7.31.0-DEV"
},
{
"ip": "10.0.0.2",
"last_seen": 1411996332123,
"user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36"
}
]
}
]
}
}
}
schema:
type: object
properties:
user_id:
type: string
description: The Matrix user ID of the user.
devices:
type: object
description: |-
Each key is an identitfier for one of the user's devices.
additionalProperties:
type: object
title: DeviceInfo
properties:
sessions:
type: array
description: A user's sessions (i.e. what they did with an access token from one login).
items:
type: object
title: SessionInfo
properties:
connections:
type: array
description: Information particular connections in the session.
items:
type: object
title: ConnectionInfo
properties:
ip:
type: string
description: Most recently seen IP address of the session.
last_seen:
type: number
description: Unix timestamp that the session was last active.
user_agent:
type: string
description: User agent string last seen in the session.
tags:
- Server administration

@ -1,147 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Account Administrative Contact API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/account/3pid":
get:
summary: Gets a list of a user's third party identifiers.
description: |-
Gets a list of the third party identifiers that the homeserver has
associated with the user's account.
This is *not* the same as the list of third party identifiers bound to
the user's Matrix ID in Identity Servers.
Identifiers in this list may be used by the homeserver as, for example,
identifiers that it will accept to reset the user's account password.
security:
- accessToken: []
responses:
200:
description: The lookup was successful.
examples:
application/json: |-
{
"threepids": [
{
"medium": "email",
"address": "monkey@banana.island"
}
]
}
schema:
type: object
properties:
threepids:
type: array
items:
type: object
title: Third party identifier
properties:
medium:
type: string
description: The medium of the third party identifier.
enum: ["email"]
address:
type: string
description: The third party identifier address.
tags:
- User data
post:
summary: Adds contact information to the user's account.
description: Adds contact information to the user's account.
security:
- accessToken: []
parameters:
- in: body
name: body
schema:
type: object
properties:
three_pid_creds:
title: "ThreePidCredentials"
type: object
description: The third party credentials to associate with the account.
properties:
client_secret:
type: string
description: The client secret used in the session with the Identity Server.
id_server:
type: string
description: The Identity Server to use.
sid:
type: string
description: The session identifier given by the Identity Server.
required: ["client_secret", "id_server", "sid"]
bind:
type: boolean
description: |-
Whether the homeserver should also bind this third party
identifier to the account's Matrix ID with the passed identity
server. Default: ``false``.
x-example: true
required: ["three_pid_creds"]
example: |-
{
"three_pid_creds": {
"id_server": "matrix.org",
"sid": "abc123987",
"client_secret": "d0n'tT3ll"
},
"bind": false
}
responses:
200:
description: The addition was successful.
examples:
application/json: "{}"
schema:
type: object
403:
description: The credentials could not be verified with the identity server.
examples:
application/json: |-
{
"errcode": "M_THREEPID_AUTH_FAILED",
"error": "The third party credentials could not be verified by the identity server."
}
tags:
- User data
"/account/3pid/email/requestToken":
post:
summary: Requests a validation token be sent to the given email address for the purpose of adding an email address to an account
description: |-
Proxies the identity server API ``validate/email/requestToken``, but
first checks that the given email address is **not** already associated
with an account on this Home Server. This API should be used to request
validation tokens when adding an email address to an account. This API's
parameters and response is identical to that of the HS API
|/register/email/requestToken|_ endpoint.
responses:
200:
description: An email was sent to the given address

@ -1,139 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Banning API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/ban":
post:
summary: Ban a user in the room.
description: |-
Ban a user in the room. If the user is currently in the room, also kick them.
When a user is banned from a room, they may not join it or be invited to it until they are unbanned.
The caller must have the required power level in order to perform this operation.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room identifier (not alias) from which the user should be banned.
required: true
x-example: "!e42d8c:matrix.org"
- in: body
name: body
required: true
schema:
type: object
example: |-
{
"reason": "Telling unfunny jokes",
"user_id": "@cheeky_monkey:matrix.org"
}
properties:
user_id:
type: string
description: The fully qualified user ID of the user being banned.
reason:
type: string
description: The reason the user has been banned.
required: ["user_id"]
responses:
200:
description: The user has been kicked and banned from the room.
examples:
application/json: |-
{}
schema:
type: object
403:
description: |-
You do not have permission to ban the user from the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejections are:
- The banner is not currently in the room.
- The banner's power level is insufficient to ban users from the room.
examples:
application/json: |-
{
"errcode": "M_FORBIDDEN",
"error": "You do not have a high enough power level to ban from this room."
}
tags:
- Room membership
"/rooms/{roomId}/unban":
post:
summary: Unban a user from the room.
description: |-
Unban a user from the room. This allows them to be invited to the room,
and join if they would otherwise be allowed to join according to its join rules.
The caller must have the required power level in order to perform this operation.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room identifier (not alias) from which the user should be unbanned.
required: true
x-example: "!e42d8c:matrix.org"
- in: body
name: body
required: true
schema:
type: object
example: |-
{
"user_id": "@cheeky_monkey:matrix.org"
}
properties:
user_id:
type: string
description: The fully qualified user ID of the user being unbanned.
required: ["user_id"]
responses:
200:
description: The user has been unbanned from the room.
examples:
application/json: |-
{}
schema:
type: object
403:
description: |-
You do not have permission to unban the user from the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejections are:
- The unbanner's power level is insufficient to unban users from the room.
examples:
application/json: |-
{
"errcode": "M_FORBIDDEN",
"error": "You do not have a high enough power level to unban from this room."
}
tags:
- Room membership

@ -1,144 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Content Repository API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
basePath: /_matrix/media/%CLIENT_MAJOR_VERSION%
produces:
- application/json
- "*/*"
paths:
"/upload":
post:
summary: Upload some content to the content repository.
produces: ["application/json"]
parameters:
- in: header
name: Content-Type
type: string
description: The content type of the file being uploaded
x-example: "Content-Type: audio/mpeg"
- in: body
name: "<content>"
description: The content to be uploaded.
required: true
schema:
type: string
example: "<bytes>"
format: byte
responses:
200:
description: The MXC URI for the uploaded content.
schema:
type: object
required: ["content_uri"]
properties:
content_uri:
type: string
description: "The MXC URI to the uploaded content."
examples:
"application/json": |-
{
"content_uri": "mxc://example.com/AQwafuaFswefuhsfAFAgsw"
}
tags:
- Media
"/download/{serverName}/{mediaId}":
get:
summary: "Download content from the content repository."
produces: ["*/*"]
parameters:
- in: path
type: string
name: serverName
x-example: matrix.org
required: true
description: |
The server name from the ``mxc://`` URI (the authoritory component)
- in: path
type: string
name: mediaId
x-example: ascERGshawAWawugaAcauga
required: true
description: |
The media ID from the ``mxc://`` URI (the path component)
responses:
200:
description: "The content that was previously uploaded."
headers:
Content-Type:
description: "The content type of the file that was previously uploaded."
type: "string"
Content-Disposition:
description: "The name of the file that was previously uploaded, if set."
type: "string"
schema:
type: file
tags:
- Media
"/thumbnail/{serverName}/{mediaId}":
get:
summary: "Download a thumbnail of the content from the content repository."
produces: ["image/jpeg", "image/png"]
parameters:
- in: path
type: string
name: serverName
required: true
x-example: matrix.org
description: |
The server name from the ``mxc://`` URI (the authoritory component)
- in: path
type: string
name: mediaId
x-example: ascERGshawAWawugaAcauga
required: true
description: |
The media ID from the ``mxc://`` URI (the path component)
- in: query
type: integer
x-example: 64
name: width
description: |-
The *desired* width of the thumbnail. The actual thumbnail may not
match the size specified.
- in: query
type: integer
x-example: 64
name: height
description: |-
The *desired* height of the thumbnail. The actual thumbnail may not
match the size specified.
- in: query
type: string
enum: ["crop", "scale"]
name: method
x-example: "scale"
description: The desired resizing method.
responses:
200:
description: "A thumbnail of the requested content."
headers:
Content-Type:
description: "The content type of the thumbnail."
type: "string"
enum: ["image/jpeg", "image/png"]
schema:
type: file
tags:
- Media

@ -1,179 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Creation API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/createRoom":
post:
summary: Create a new room
description: |-
Create a new room with various configuration options.
security:
- accessToken: []
parameters:
- in: body
name: body
description: The desired room configuration.
schema:
type: object
example: |-
{
"preset": "public_chat",
"room_alias_name": "thepub",
"name": "The Grand Duke Pub",
"topic": "All about happy hour",
"creation_content": {
"m.federate": false
}
}
properties:
visibility:
type: string
enum: ["public", "private"]
description: |-
A ``public`` visibility indicates that the room will be shown
in the published room list. A ``private`` visibility will hide
the room from the published room list. Rooms default to
``private`` visibility if this key is not included. NB: This
should not be confused with ``join_rules`` which also uses the
word ``public``.
room_alias_name:
type: string
description: |-
The desired room alias **local part**. If this is included, a
room alias will be created and mapped to the newly created
room. The alias will belong on the *same* homeserver which
created the room. For example, if this was set to "foo" and
sent to the homeserver "example.com" the complete room alias
would be ``#foo:example.com``.
name:
type: string
description: |-
If this is included, an ``m.room.name`` event will be sent
into the room to indicate the name of the room. See Room
Events for more information on ``m.room.name``.
topic:
type: string
description: |-
If this is included, an ``m.room.topic`` event will be sent
into the room to indicate the topic for the room. See Room
Events for more information on ``m.room.topic``.
invite:
type: array
description: |-
A list of user IDs to invite to the room. This will tell the
server to invite everyone in the list to the newly created room.
items:
type: string
invite_3pid:
type: array
description: |-
A list of objects representing third party IDs to invite into
the room.
items:
type: object
title: Invite3pid
properties:
id_server:
type: string
description: The hostname+port of the identity server which should be used for third party identifier lookups.
medium:
type: string
# TODO: Link to identity service spec when it eixsts
description: The kind of address being passed in the address field, for example ``email``.
address:
type: string
description: The invitee's third party identifier.
required: ["id_server", "medium", "address"]
creation_content:
title: CreationContent
type: object
description: |-
Extra keys to be added to the content of the ``m.room.create``.
The server will clober the following keys: ``creator``. Future
versions of the specification may allow the server to clobber
other keys.
initial_state:
type: array
description: |-
A list of state events to set in the new room. This allows
the user to override the default state events set in the new
room. The expected format of the state events are an object
with type, state_key and content keys set.
Takes precedence over events set by ``presets``, but gets
overriden by ``name`` and ``topic`` keys.
items:
type: object
title: StateEvent
properties:
type:
type: string
state_key:
type: string
content:
type: string
preset:
type: string
enum: ["private_chat", "public_chat", "trusted_private_chat"]
description: |-
Convenience parameter for setting various default state events
based on a preset. Must be either:
``private_chat`` =>
``join_rules`` is set to ``invite``.
``history_visibility`` is set to ``shared``.
``trusted_private_chat`` =>
``join_rules`` is set to ``invite``.
``history_visibility`` is set to ``shared``.
All invitees are given the same power level as the room creator.
``public_chat``: =>
``join_rules`` is set to ``public``.
``history_visibility`` is set to ``shared``.
responses:
200:
description: Information about the newly created room.
schema:
type: object
description: Information about the newly created room.
properties:
room_id:
type: string
description: |-
The created room's ID.
examples:
application/json: |-
{
"room_id": "!sefiuhWgwghwWgh:example.com"
}
400:
description: >
The request body is malformed or the room alias specified is already taken.
tags:
- Room creation

@ -1,33 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
title: Authentication Data
description: |-
Used by clients to submit authentication information to the interactive-authentication API
type: object
properties:
type:
description: The login type that the client is attempting to complete.
type: string
session:
description: The value of the session key given by the homeserver.
type: string
additionalProperties:
description: Keys dependent on the login type
type: object
required:
- type
example:
type: "example.type.foo"
session: "xxxxx"
example_credential: "verypoorsharedsecret"

@ -1,62 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
title: Authentication response
description: |-
Used by servers to indicate that additional authentication information is required,
type: object
properties:
flows:
description: A list of the login flows supported by the server for this API.
title: Flow information
type: array
items:
type: object
properties:
stages:
description: |-
The login type of each of the stages required to complete this
authentication flow
type: array
items:
type: string
example: "example.type.foo"
required:
- stages
params:
type: object
description: |-
Contains any information that the client will need to know in order to
use a given type of authentication. For each login type presented,
that type may be present as a key in this dictionary. For example, the
public part of an OAuth client ID could be given here.
additionalProperties:
type: object
example:
"example.type.baz": { "example_key": "foobar" }
session:
type: string
description: |-
This is a session identifier that the client must pass back to the home
server, if one is provided, in subsequent attempts to authenticate in the
same API call.
example: "xxxxxxyz"
completed:
type: array
description: |-
A list of the stages the client has completed successfully
items:
type: string
example: "example.type.foo"
required:
- flows

@ -1,23 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
type: object
description: A Matrix-level Error
properties:
errcode:
type: string
description: An error code.
error:
type: string
description: A human-readable error message.
required: ["errcode"]

@ -1,58 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
properties:
content:
description: The content of this event. The fields in this object will vary depending
on the type of event.
title: EventContent
type: object
origin_server_ts:
description: Timestamp in milliseconds on originating homeserver when this event
was sent.
format: int64
type: integer
sender:
description: The MXID of the user who sent this event.
type: string
state_key:
description: Optional. This key will only be present for state events. A unique
key which defines the overwriting semantics for this piece of room state.
type: string
type:
description: The type of event.
type: string
unsigned:
description: Information about this event which was not sent by the originating
homeserver
properties:
age:
description: Time in milliseconds since the event was sent.
format: int64
type: integer
prev_content:
description: Optional. The previous ``content`` for this state. This will
be present only for state events appearing in the ``timeline``. If this
is not a state event, or there is no previous content, this key will be
missing.
title: EventContent
type: object
transaction_id:
description: Optional. The transaction ID set when this message was sent.
This key will only be present for message events sent by the device calling
this API.
type: string
title: Unsigned
type: object
title: Event
type: object

@ -1,22 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
properties:
events:
description: List of events
items:
allOf:
- $ref: event.yaml
type: object
type: array
type: object

@ -1,47 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
title: Filter
properties:
limit:
description: The maximum number of events to return.
type: integer
not_senders:
description: A list of sender IDs to exclude. If this list is absent then no senders
are excluded. A matching sender will be excluded even if it is listed in the
``'senders'`` filter.
items:
type: string
type: array
not_types:
description: A list of event types to exclude. If this list is absent then no
event types are excluded. A matching type will be excluded even if it is listed
in the ``'types'`` filter. A '*' can be used as a wildcard to match any sequence
of characters.
items:
type: string
type: array
senders:
description: A list of senders IDs to include. If this list is absent then all
senders are included.
items:
type: string
type: array
types:
description: A list of event types to include. If this list is absent then all
event types are included. A ``'*'`` can be used as a wildcard to match any sequence
of characters.
items:
type: string
type: array
type: object

@ -1,21 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
properties:
kind:
enum:
- event_match
- contains_display_name
- room_member_count
type: string
type: object

@ -1,28 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
properties:
actions:
items:
type:
- object
- string
type: array
default:
type: boolean
enabled:
type: boolean
rule_id:
type: string
title: PushRule
type: object

@ -1,50 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
properties:
content:
items:
allOf:
- $ref: push_rule.yaml
title: PushRule
type: object
type: array
override:
items:
allOf:
- $ref: push_rule.yaml
title: PushRule
type: object
type: array
room:
items:
allOf:
- $ref: push_rule.yaml
title: PushRule
type: object
type: array
sender:
items:
allOf:
- $ref: push_rule.yaml
title: PushRule
type: object
type: array
underride:
items:
allOf:
- $ref: push_rule.yaml
title: PushRule
type: object
type: array
type: object

@ -1,31 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
allOf:
- $ref: event_filter.yaml
title: RoomEventFilter
properties:
not_rooms:
description: A list of room IDs to exclude. If this list is absent then no rooms
are excluded. A matching room will be excluded even if it is listed in the ``'rooms'``
filter.
items:
type: string
type: array
rooms:
description: A list of room IDs to include. If this list is absent then all rooms
are included.
items:
type: string
type: array
type: object

@ -1,18 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
accessToken:
type: apiKey
description: The access_token returned by a call to ``/login`` or ``/tokenrefresh``
name: access_token
in: query

@ -1,80 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
properties:
event_fields:
description: List of event fields to include. If this list is absent then all
fields are included. The entries may include '.' charaters to indicate sub-fields.
So ['content.body'] will include the 'body' field of the 'content' object. A
literal '.' character in a field name may be escaped using a '\\'. A server may
include more fields than were requested.
items:
type: string
type: array
event_format:
description: The format to use for events. 'client' will return the events in
a format suitable for clients. 'federation' will return the raw event as receieved
over federation. The default is 'client'.
enum:
- client
- federation
type: string
presence:
allOf:
- $ref: event_filter.yaml
description: The presence updates to include.
account_data:
allOf:
- $ref: event_filter.yaml
description: The user account data that isn't associated with rooms to include.
room:
title: RoomFilter
description: Filters to be applied to room data.
properties:
not_rooms:
description: A list of room IDs to exclude. If this list is absent then no rooms
are excluded. A matching room will be excluded even if it is listed in the ``'rooms'``
filter. This filter is applied before the filters in ``ephemeral``,
``state``, ``timeline`` or ``account_data``
items:
type: string
type: array
rooms:
description: A list of room IDs to include. If this list is absent then all rooms
are included. This filter is applied before the filters in ``ephemeral``,
``state``, ``timeline`` or ``account_data``
items:
type: string
type: array
ephemeral:
allOf:
- $ref: room_event_filter.yaml
description: The events that aren't recorded in the room history, e.g. typing
and receipts, to include for rooms.
include_leave:
description: Include rooms that the user has left in the sync, default false
type: boolean
state:
allOf:
- $ref: room_event_filter.yaml
description: The state events to include for rooms.
timeline:
allOf:
- $ref: room_event_filter.yaml
description: The message and state update events to include for rooms.
account_data:
allOf:
- $ref: room_event_filter.yaml
description: The per user account data to include for rooms.
type: object
type: object

@ -1,25 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
allOf:
- $ref: event_batch.yaml
properties:
limited:
description: True if the number of events returned was limited by the ``limit``
on the filter
type: boolean
prev_batch:
description: A token that can be supplied to to the ``from`` parameter of the
rooms/{roomId}/messages endpoint
type: string
type: object

@ -1,149 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Directory API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%/directory
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/room/{roomAlias}":
put:
summary: Create a new mapping from room alias to room ID.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomAlias
description: The room alias to set.
required: true
x-example: "#monkeys:matrix.org"
- in: body
name: roomInfo
description: Information about this room alias.
required: true
schema:
type: object
properties:
room_id:
type: string
description: The room ID to set.
example: |-
{
"room_id": "!abnjk1jdasj98:capuchins.com"
}
responses:
200:
description: The mapping was created.
examples:
application/json: |-
{}
schema:
type: object
409:
description: A room alias with that name already exists.
examples:
application/json: |-
{
"errcode": "M_UNKNOWN",
"error": "Room alias #monkeys:matrix.org already exists."
}
tags:
- Room directory
get:
summary: Get the room ID corresponding to this room alias.
description: |-
Requests that the server resolve a room alias to a room ID.
The server will use the federation API to resolve the alias if the
domain part of the alias does not correspond to the server's own
domain.
parameters:
- in: path
type: string
name: roomAlias
description: The room alias.
required: true
x-example: "#monkeys:matrix.org"
responses:
200:
description: The room ID and other information for this alias.
schema:
type: object
properties:
room_id:
type: string
description: The room ID for this room alias.
servers:
type: array
description: A list of servers that are aware of this room ID.
items:
type: string
description: A server which is aware of this room ID.
examples:
application/json: |-
{
"room_id": "!abnjk1jdasj98:capuchins.com",
"servers": [
"capuchins.com",
"matrix.org",
"another.com"
]
}
404:
description: There is no mapped room ID for this room alias.
examples:
application/json: |-
{
"errcode": "M_NOT_FOUND",
"error": "Room ID !abnjk1jdasj98:capuchins.com not found."
}
tags:
- Room directory
delete:
summary: Remove a mapping of room alias to room ID.
description: |-
Remove a mapping of room alias to room ID.
Servers may choose to implement additional access control checks here, for instance that room aliases can only be deleted by their creator or a server administrator.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomAlias
description: The room alias to remove.
required: true
x-example: "#monkeys:matrix.org"
responses:
200:
description: The mapping was deleted.
examples:
application/json: |-
{}
schema:
type: object
tags:
- Room directory

@ -1,165 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Event Context API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/context/{eventId}":
get:
summary: Get events and state around the specified event.
description: |-
This API returns a number of events that happened just before and
after the specified event. This allows clients to get the context
surrounding an event.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to get events from.
required: true
x-example: "!636q39766251:example.com"
- in: path
type: string
name: eventId
description: The event to get context around.
required: true
x-example: "$f3h4d129462ha:example.com"
- in: query
type: integer
name: limit
description: |-
The maximum number of events to return. Default: 10.
x-example: 3
responses:
200:
description: The events and state surrounding the requested event.
schema:
type: object
description: The events and state surrounding the requested event.
properties:
start:
type: string
description: |-
A token that can be used to paginate backwards with.
end:
type: string
description: |-
A token that can be used to paginate forwards with.
events_before:
type: array
description: |-
A list of room events that happened just before the
requested event, in reverse-chronological order.
items:
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
event:
description: |-
Details of the requested event.
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
events_after:
type: array
description: |-
A list of room events that happened just after the
requested event, in chronological order.
items:
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
state:
type: array
description: |-
The state of the room at the last event returned.
items:
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/state_event.yaml"
examples:
application/json: |-
{
"end": "t29-57_2_0_2",
"events_after": [
{
"age": 91911336,
"content": {
"body": "7",
"msgtype": "m.text"
},
"event_id": "$14460306086CiUaL:localhost:8480",
"origin_server_ts": 1446030608551,
"room_id": "!sCDvXTtzjpiPxaqkkt:localhost:8480",
"type": "m.room.message",
"sender": "@test:localhost:8480"
}
],
"events_before": [
{
"age": 91911903,
"content": {
"body": "5",
"msgtype": "m.text"
},
"event_id": "$14460306074UYTlh:localhost:8480",
"origin_server_ts": 1446030607984,
"room_id": "!sCDvXTtzjpiPxaqkkt:localhost:8480",
"type": "m.room.message",
"sender": "@test:localhost:8480"
}
],
"start": "t27-54_2_0_2",
"state": [
{
"age": 3123715284,
"content": {
"creator": "@test:localhost:8480"
},
"event_id": "$14429988040dgQAE:localhost:8480",
"origin_server_ts": 1442998804603,
"room_id": "!sCDvXTtzjpiPxaqkkt:localhost:8480",
"state_key": "",
"type": "m.room.create",
"sender": "@test:localhost:8480"
},
{
"age": 2067105053,
"content": {
"avatar_url": "mxc://localhost:8480/tVWZTAIIfqtXMZZtmGCkVjTD#auto",
"displayname": "Bob2",
"membership": "join"
},
"event_id": "$14440554144URDbf:localhost:8480",
"origin_server_ts": 1444055414834,
"replaces_state": "$14440552472PgiGk:localhost:8480",
"room_id": "!sCDvXTtzjpiPxaqkkt:localhost:8480",
"state_key": "@test:localhost:8480",
"type": "m.room.member",
"sender": "@test:localhost:8480"
}
]
}
tags:
- Room participation

@ -1,152 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server filter API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/user/{userId}/filter":
post:
summary: Upload a new filter.
description: |-
Uploads a new filter definition to the homeserver.
Returns a filter ID that may be used in future requests to
restrict which events are returned to the client.
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
required: true
description:
The id of the user uploading the filter. The access token must be
authorized to make requests for this user id.
x-example: "@alice:example.com"
- in: body
name: filter
required: true
description: The filter to upload.
schema:
type: object
allOf:
- $ref: "definitions/sync_filter.yaml"
example: |-
{
"room": {
"state": {
"types": ["m.room.*"],
"not_rooms": ["!726s6s6q:example.com"]
},
"timeline": {
"limit": 10,
"types": ["m.room.message"],
"not_rooms": ["!726s6s6q:example.com"],
"not_senders": ["@spam:example.com"]
},
"ephemeral": {
"types": ["m.receipt", "m.typing"],
"not_rooms": ["!726s6s6q:example.com"],
"not_senders": ["@spam:example.com"]
}
},
"presence": {
"types": ["m.presence"],
"not_senders": ["@alice:example.com"]
},
"event_format": "client",
"event_fields": ["type", "content", "sender"]
}
responses:
200:
description: The filter was created.
examples:
application/json: |-
{
"filter_id": "66696p746572"
}
schema:
type: object
properties:
filter_id:
type: string
description: |-
The ID of the filter that was created.
tags:
- Room participation
"/user/{userId}/filter/{filterId}":
get:
summary: Download a filter
parameters:
- in: path
name: userId
type: string
description: |-
The user ID to download a filter for.
x-example: "@alice:example.com"
required: true
- in: path
name: filterId
type: string
description: |-
The filter ID to download.
x-example: "66696p746572"
required: true
responses:
200:
description: |-
"The filter defintion"
examples:
application/json: |-
{
"room": {
"state": {
"types": ["m.room.*"],
"not_rooms": ["!726s6s6q:example.com"]
},
"timeline": {
"limit": 10,
"types": ["m.room.message"],
"not_rooms": ["!726s6s6q:example.com"],
"not_senders": ["@spam:example.com"]
},
"ephemeral": {
"types": ["m.receipt", "m.typing"],
"not_rooms": ["!726s6s6q:example.com"],
"not_senders": ["@spam:example.com"]
}
},
"presence": {
"types": ["m.presence"],
"not_senders": ["@alice:example.com"]
},
"event_format": "client",
"event_fields": ["type", "content", "sender"]
}
schema:
type: object
allOf:
- $ref: "definitions/sync_filter.yaml"
tags:
- Room participation

@ -1,101 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Joining API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
# With an extra " " to disambiguate from the 3pid invite endpoint
# The extra space makes it sort first for what I'm sure is a good reason.
"/rooms/{roomId}/invite ":
post:
summary: Invite a user to participate in a particular room.
description: |-
.. _invite-by-user-id-endpoint:
*Note that there are two forms of this API, which are documented separately.
This version of the API requires that the inviter knows the Matrix
identifier of the invitee. The other is documented in the*
`third party invites section`_.
This API invites a user to participate in a particular room.
They do not start participating in the room until they actually join the
room.
Only users currently in a particular room can invite other users to
join that room.
If the user was invited to the room, the homeserver will append a
``m.room.member`` event to the room.
.. _third party invites section: `invite-by-third-party-id-endpoint`_
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room identifier (not alias) to which to invite the user.
required: true
x-example: "!d41d8cd:matrix.org"
- in: body
name: body
required: true
schema:
type: object
example: |-
{
"user_id": "@cheeky_monkey:matrix.org"
}
properties:
user_id:
type: string
description: The fully qualified user ID of the invitee.
required: ["user_id"]
responses:
200:
description: The user has been invited to join the room.
examples:
application/json: |-
{}
schema:
type: object
403:
description: |-
You do not have permission to invite the user to the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejections are:
- The invitee has been banned from the room.
- The invitee is already a member of the room.
- The inviter is not currently in the room.
- The inviter's power level is insufficient to invite users to the room.
examples:
application/json: |-
{"errcode": "M_FORBIDDEN", "error": "@cheeky_monkey:matrix.org is banned from the room"}
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Room membership

@ -1,214 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Inviting API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/join":
post:
summary: Start the requesting user participating in a particular room.
description: |-
*Note that this API requires a room ID, not alias.* ``/join/{roomIdOrAlias}`` *exists if you have a room alias.*
This API starts a user participating in a particular room, if that user
is allowed to participate in that room. After this call, the client is
allowed to see all current state events in the room, and all subsequent
events associated with the room until the user leaves the room.
After a user has joined a room, the room will appear as an entry in the
response of the |/initialSync|_ and |/sync|_ APIs.
If a ``third_party_signed`` was supplied, the homeserver must verify
that it matches a pending ``m.room.third_party_invite`` event in the
room, and perform key validity checking if required by the event.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room identifier (not alias) to join.
required: true
x-example: "!d41d8cd:matrix.org"
- in: body
name: third_party_signed
schema:
type: object
example: |-
{
"third_party_signed": {
"sender": "@cat:the.hat",
"mxid": "@green:eggs.ham",
"token": "random8nonce",
"signatures": {
"horton.hears": {
"ed25519:0": "some9signature"
}
}
}
}
properties:
third_party_signed:
type: object
title: ThirdPartySigned
description: A signature of an ``m.third_party_invite`` token to prove that this user owns a third party identity which has been invited to the room.
properties:
sender:
type: string
description: The Matrix ID of the user who issued the invite.
mxid:
type: string
description: The Matrix ID of the invitee.
token:
type: string
description: The state key of the m.third_party_invite event.
signatures:
type: object
description: A signatures object containing a signature of the entire signed object.
title: Signatures
required: ["sender", "mxid", "token", "signatures"]
responses:
200:
description: |-
The room has been joined.
The joined room ID must be returned in the ``room_id`` field.
examples:
application/json: |-
{"room_id": "!d41d8cd:matrix.org"}
schema:
type: object
403:
description: |-
You do not have permission to join the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejection are:
- The room is invite-only and the user was not invited.
- The user has been banned from the room.
examples:
application/json: |-
{"errcode": "M_FORBIDDEN", "error": "You are not invited to this room."}
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Room membership
"/join/{roomIdOrAlias}":
post:
summary: Start the requesting user participating in a particular room.
description: |-
*Note that this API takes either a room ID or alias, unlike* ``/room/{roomId}/join``.
This API starts a user participating in a particular room, if that user
is allowed to participate in that room. After this call, the client is
allowed to see all current state events in the room, and all subsequent
events associated with the room until the user leaves the room.
After a user has joined a room, the room will appear as an entry in the
response of the |/initialSync|_ and |/sync|_ APIs.
If a ``third_party_signed`` was supplied, the homeserver must verify
that it matches a pending ``m.room.third_party_invite`` event in the
room, and perform key validity checking if required by the event.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomIdOrAlias
description: The room identifier or alias to join.
required: true
x-example: "#monkeys:matrix.org"
- in: body
name: third_party_signed
schema:
type: object
example: |-
{
"third_party_signed": {
"signed": {
"sender": "@cat:the.hat",
"mxid": "@green:eggs.ham",
"token": "random8nonce",
"signatures": {
"horton.hears": {
"ed25519:0": "some9signature"
}
}
}
}
}
properties:
third_party_signed:
type: object
title: ThirdPartySigned
description: A signature of an ``m.third_party_invite`` token to prove that this user owns a third party identity which has been invited to the room.
properties:
signed:
type: object
title: Signed
properties:
sender:
type: string
description: The Matrix ID of the user who issued the invite.
mxid:
type: string
description: The Matrix ID of the invitee.
token:
type: string
description: The state key of the m.third_party_invite event.
signatures:
type: object
description: A signatures object containing a signature of the entire signed object.
title: Signatures
required: ["sender", "mxid", "token", "signatures"]
required: ["signed"]
responses:
200:
description: |-
The room has been joined.
The joined room ID must be returned in the ``room_id`` field.
examples:
application/json: |-
{"room_id": "!d41d8cd:matrix.org"}
schema:
type: object
403:
description: |-
You do not have permission to join the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejection are:
- The room is invite-only and the user was not invited.
- The user has been banned from the room.
examples:
application/json: |-
{"errcode": "M_FORBIDDEN", "error": "You are not invited to this room."}
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Room membership

@ -1,86 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Kicking API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/kick":
post:
summary: Kick a user from the room.
description: |-
Kick a user from the room.
The caller must have the required power level in order to perform this operation.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room identifier (not alias) from which the user should be kicked.
required: true
x-example: "!e42d8c:matrix.org"
- in: body
name: body
required: true
schema:
type: object
example: |-
{
"reason": "Telling unfunny jokes",
"user_id": "@cheeky_monkey:matrix.org"
}
properties:
user_id:
type: string
description: The fully qualified user ID of the user being kicked.
reason:
type: string
description: The reason the user has been kicked.
required: ["user_id"]
responses:
200:
description: The user has been kicked from the room.
examples:
application/json: |-
{}
schema:
type: object
403:
description: |-
You do not have permission to kick the user from the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejections are:
- The kicker is not currently in the room.
- The kickee is not currently in the room.
- The kicker's power level is insufficient to kick users from the room.
examples:
application/json: |-
{
"errcode": "M_FORBIDDEN",
"error": "You do not have a high enough power level to kick from this room."
}
tags:
- Room membership

@ -1,105 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Leaving API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/leave":
post:
summary: Stop the requesting user participating in a particular room.
description: |-
This API stops a user participating in a particular room.
If the user was already in the room, they will no longer be able to see
new events in the room. If the room requires an invite to join, they
will need to be re-invited before they can re-join.
If the user was invited to the room, but had not joined, this call
serves to reject the invite.
The user will still be allowed to retrieve history from the room which
they were previously allowed to see.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room identifier to leave.
required: true
x-example: "!nkl290a:matrix.org"
responses:
200:
description: |-
The room has been left.
examples:
application/json: |-
{}
schema:
type: object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Room membership
"/rooms/{roomId}/forget":
post:
summary: Stop the requesting user remembering about a particular room.
description: |-
This API stops a user remembering about a particular room.
In general, history is a first class citizen in Matrix. After this API
is called, however, a user will no longer be able to retrieve history
for this room. If all users on a homeserver forget a room, the room is
eligible for deletion from that homeserver.
If the user is currently joined to the room, they will implicitly leave
the room as part of this API call.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room identifier to forget.
required: true
x-example: "!au1ba7o:matrix.org"
responses:
200:
description: |-
The room has been forgotten.
examples:
application/json: |-
{}
schema:
type: object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Room membership

@ -1,116 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Creation API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
paths:
"/publicRooms":
get:
summary: Lists the public rooms on the server.
description: |-
Lists the public rooms on the server.
This API returns paginated responses.
responses:
200:
description: A list of the rooms on the server.
schema:
type: object
description: A list of the rooms on the server.
properties:
chunk:
title: "PublicRoomsChunks"
type: array
description: |-
A paginated chunk of public rooms.
items:
type: object
title: "PublicRoomsChunk"
properties:
aliases:
type: array
description: |-
Aliases of the room. May be empty.
items:
type: string
name:
type: string
description: |-
The name of the room, if any. May be null.
num_joined_members:
type: number
description: |-
The number of members joined to the room.
room_id:
type: string
description: |-
The ID of the room.
topic:
type: string
description: |-
The topic of the room, if any. May be null.
world_readable:
type: boolean
description: |-
Whether the room may be viewed by guest users without joining.
guest_can_join:
type: boolean
description: |-
Whether guest users may join the room and participate in it.
If they can, they will be subject to ordinary power level
rules like any other user.
avatar_url:
type: string
description: The URL for the room's avatar, if one is set.
start:
type: string
description: |-
A pagination token for the response.
end:
type: string
description: |-
A pagination token for the response.
examples:
application/json: |-
{
"chunk": [
{
"aliases": ["#murrays:cheese.bar"],
"avatar_url": "mxc://bleeker.street/CHEDDARandBRIE",
"guest_can_join": false,
"name": "CHEESE",
"num_joined_members": 37,
"room_id": "!ol19s:bleecker.street",
"topic": "Tasty tasty cheese",
"world_readable": true
}
],
"start": "p190q",
"end": "p1902"
}
400:
description: >
The request body is malformed or the room alias specified is already taken.
tags:
- Room discovery

@ -1,178 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Registration and Login API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/login":
post:
summary: Authenticates the user.
description: |-
Authenticates the user, and issues an access token they can
use to authorize themself in subsequent requests.
parameters:
- in: body
name: body
schema:
type: object
example: |-
{
"type": "m.login.password",
"user": "cheeky_monkey",
"password": "ilovebananas"
}
properties:
type:
type: string
description: The login type being used. Currently only "m.login.password" is supported.
user:
type: string
description: The fully qualified user ID or just local part of the user ID, to log in.
medium:
type: string
description: When logging in using a third party identifier, the medium of the identifier. Must be 'email'.
address:
type: string
description: Third party identifier for the user.
password:
type: string
description: The user's password.
required: ["type", "password"]
responses:
200:
description: The user has been authenticated.
examples:
application/json: |-
{
"user_id": "@cheeky_monkey:matrix.org",
"access_token": "abc123",
"home_server": "matrix.org"
}
schema:
type: object
properties:
user_id:
type: string
description: The fully-qualified Matrix ID that has been registered.
access_token:
type: string
description: |-
An access token for the account.
This access token can then be used to authorize other requests.
The access token may expire at some point, and if so, it SHOULD come with a ``refresh_token``.
There is no specific error message to indicate that a request has failed because
an access token has expired; instead, if a client has reason to believe its
access token is valid, and it receives an auth error, they should attempt to
refresh for a new token on failure, and retry the request with the new token.
refresh_token:
type: string
# TODO: Work out how to linkify /tokenrefresh
description: |-
(optional) A ``refresh_token`` may be exchanged for a new ``access_token`` using the /tokenrefresh API endpoint.
home_server:
type: string
description: The hostname of the homeserver on which the account has been registered.
400:
description: |-
Part of the request was invalid. For example, the login type may not be recognised.
examples:
application/json: |-
{
"errcode": "M_UNKNOWN",
"error": "Bad login type."
}
403:
description: |-
The login attempt failed. For example, the password may have been incorrect.
examples:
application/json: |-
{"errcode": "M_FORBIDDEN"}
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Session management
"/tokenrefresh":
post:
summary: Exchanges a refresh token for an access token.
description: |-
Exchanges a refresh token for a new access token.
This is intended to be used if the access token has expired.
security:
- accessToken: []
parameters:
- in: body
name: body
schema:
type: object
example: |-
{
"refresh_token": "a1b2c3"
}
properties:
refresh_token:
type: string
description: The refresh token which was issued by the server.
required: ["refresh_token"]
responses:
200:
description: |-
The refresh token was accepted, and a new access token has been issued.
The passed refresh token is no longer valid and cannot be used.
A new refresh token will have been returned unless some policy does
not allow the user to continue to renew their session.
examples:
application/json: |-
{
"access_token": "bearwithme123",
"refresh_token": "exchangewithme987"
}
schema:
type: object
properties:
access_token:
type: string
description: |-
An access token for the account.
This access token can then be used to authorize other requests.
The access token may expire at some point, and if so, it SHOULD come with a ``refresh_token``.
refresh_token:
type: string
description: (optional) A ``refresh_token`` may be exchanged for a new ``access_token`` using the TODO Linkify /tokenrefresh API endpoint.
403:
description: |-
The exchange attempt failed. For example, the refresh token may have already been used.
examples:
application/json: |-
{"errcode": "M_FORBIDDEN"}
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Session management

@ -1,45 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Registration and Login API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/logout":
post:
summary: Invalidates a user access token
description: |-
Invalidates an existing access token, so that it can no longer be used for
authorization.
security:
- accessToken: []
responses:
200:
description: The access token used in the request was succesfully invalidated.
schema:
type: object
properties: {}
tags:
- Session management

@ -1,153 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Rooms API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/messages":
get:
summary: Get a list of events for this room
description: |-
This API returns a list of message and state events for a room. It uses
pagination query parameters to paginate history in the room.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to get events from.
required: true
x-example: "!636q39766251:example.com"
- in: query
type: string
name: from
description: |-
The token to start returning events from. This token can be obtained
from a ``prev_batch`` token returned for each room by the sync API,
or from a ``start`` or ``end`` token returned by a previous request
to this endpoint.
required: true
x-example: "s345_678_333"
- in: query
type: string
name: to
description: |-
The token to stop returning events at. This token can be obtained from
a ``prev_batch`` token returned for each room by the sync endpoint,
or from a ``start`` or ``end`` token returned by a previous request to
this endpoint.
required: false
- in: query
type: string
enum: ["b", "f"]
name: dir
description: |-
The direction to return events from.
required: true
x-example: "b"
- in: query
type: integer
name: limit
description: |-
The maximum number of events to return. Default: 10.
x-example: "3"
responses:
200:
description: A list of messages with a new token to request more.
schema:
type: object
description: A list of messages with a new token to request more.
properties:
start:
type: string
description: |-
The token the pagination starts from. If ``dir=b`` this will be
the token supplied in ``from``.
end:
type: string
description: |-
The token the pagination ends at. If ``dir=b`` this token should
be used again to request even earlier events.
chunk:
type: array
description: |-
A list of room events.
items:
type: object
title: RoomEvent
examples:
application/json: |-
{
"start": "t47429-4392820_219380_26003_2265",
"end": "t47409-4357353_219380_26003_2265",
"chunk": [
{
"origin_server_ts": 1444812213737,
"user_id": "@alice:example.com",
"event_id": "$1444812213350496Caaaa:example.com",
"content": {
"body": "hello world",
"msgtype":"m.text"
},
"room_id":"!Xq3620DUiqCaoxq:example.com",
"type":"m.room.message",
"age": 1042
},
{
"origin_server_ts": 1444812194656 ,
"user_id": "@bob:example.com",
"event_id": "$1444812213350496Cbbbb:example.com",
"content": {
"body": "the world is big",
"msgtype":"m.text"
},
"room_id":"!Xq3620DUiqCaoxq:example.com",
"type":"m.room.message",
"age": 20123
},
{
"origin_server_ts": 1444812163990,
"user_id": "@bob:example.com",
"event_id": "$1444812213350496Ccccc:example.com",
"content": {
"name": "New room name"
},
"prev_content": {
"name": "Old room name"
},
"state_key": "",
"room_id":"!Xq3620DUiqCaoxq:example.com",
"type":"m.room.name",
"age": 50789
}
]
}
403:
description: >
You aren't a member of the room.
tags:
- Room participation

@ -1,433 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Sync API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/events":
get:
summary: Listen on the event stream.
description: |-
This will listen for new events and return them to the caller. This will
block until an event is received, or until the ``timeout`` is reached.
This endpoint was deprecated in r0 of this specification. Clients
should instead call the |/sync|_ API with a ``since`` parameter. See
the `migration guide
<https://matrix.org/docs/guides/client-server-migrating-from-v1.html#deprecated-endpoints>`_.
security:
- accessToken: []
parameters:
- in: query
type: string
name: from
description: |-
The token to stream from. This token is either from a previous
request to this API or from the initial sync API.
required: false
x-example: "s3456_9_0"
- in: query
type: integer
name: timeout
description: The maximum time in milliseconds to wait for an event.
required: false
x-example: "35000"
responses:
200:
description: "The events received, which may be none."
examples:
application/json: |-
{
"start": "s3456_9_0",
"end": "s3457_9_0",
"chunk": [
{
"age": 32,
"content": {
"body": "incoming message",
"msgtype": "m.text"
},
"event_id": "$14328055551tzaee:localhost",
"origin_server_ts": 1432804485886,
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"type": "m.room.message",
"sender": "@bob:localhost"
}
]
}
schema:
type: object
properties:
start:
type: string
description: |-
A token which correlates to the first value in ``chunk``. This
is usually the same token supplied to ``from=``.
end:
type: string
description: |-
A token which correlates to the last value in ``chunk``. This
token should be used in the next request to ``/events``.
chunk:
type: array
description: "An array of events."
items:
type: object
title: Event
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
400:
description: "Bad pagination ``from`` parameter."
tags:
- Room participation
deprecated: true
"/initialSync":
get:
summary: Get the user's current state.
description: |-
This returns the full state for this user, with an optional limit on the
number of messages per room to return.
This endpoint was deprecated in r0 of this specification. Clients
should instead call the |/sync|_ API with no ``since`` parameter. See
the `migration guide
<https://matrix.org/docs/guides/client-server-migrating-from-v1.html#deprecated-endpoints>`_.
security:
- accessToken: []
parameters:
- in: query
type: integer
name: limit
description: The maximum number of messages to return for each room.
required: false
x-example: "2"
- in: query
type: boolean
name: archived
description: |-
Whether to include rooms that the user has left. If ``false`` then
only rooms that the user has been invited to or has joined are
included. If set to ``true`` then rooms that the user has left are
included as well. By default this is ``false``.
required: false
x-example: "true"
responses:
200:
description: The user's current state.
examples:
application/json: |-
{
"end": "s3456_9_0",
"presence": [
{
"content": {
"avatar_url": "mxc://localhost/GCmhgzMPRjqgpODLsNQzVuHZ#auto",
"displayname": "Bob",
"last_active_ago": 31053,
"presence": "online",
"user_id": "@bob:localhost"
},
"type": "m.presence"
}
],
"account_data": [
{
"type": "org.example.custom.config",
"content": {
"custom_config_key": "custom_config_value"
}
}
],
"rooms": [
{
"membership": "join",
"messages": {
"chunk": [
{
"age": 343513403,
"content": {
"body": "foo",
"msgtype": "m.text"
},
"event_id": "$14328044851tzTJS:localhost",
"origin_server_ts": 1432804485886,
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"type": "m.room.message",
"sender": "@alice:localhost"
},
{
"age": 343511809,
"content": {
"body": "bar",
"msgtype": "m.text"
},
"event_id": "$14328044872spjFg:localhost",
"origin_server_ts": 1432804487480,
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"type": "m.room.message",
"sender": "@bob:localhost"
}
],
"end": "s3456_9_0",
"start": "t44-3453_9_0"
},
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"state": [
{
"age": 7148266897,
"content": {
"join_rule": "public"
},
"event_id": "$14259997323TLwtb:localhost",
"origin_server_ts": 1425999732392,
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"state_key": "",
"type": "m.room.join_rules",
"sender": "@alice:localhost"
},
{
"age": 6547561012,
"content": {
"avatar_url": "mxc://localhost/fzysBrHpPEeTGANCVLXWXNMI#auto",
"membership": "join"
},
"event_id": "$1426600438280zExKY:localhost",
"membership": "join",
"origin_server_ts": 1426600438277,
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"state_key": "@alice:localhost",
"type": "m.room.member",
"sender": "@alice:localhost"
},
{
"age": 7148267200,
"content": {
"creator": "@alice:localhost"
},
"event_id": "$14259997320KhbwJ:localhost",
"origin_server_ts": 1425999732089,
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"state_key": "",
"type": "m.room.create",
"sender": "@alice:localhost"
},
{
"age": 1622568720,
"content": {
"avatar_url": "mxc://localhost/GCmhgzMPRjqgpODLsNQzVuHZ#auto",
"displayname": "Bob",
"membership": "join"
},
"event_id": "$1431525430134MxlLX:localhost",
"origin_server_ts": 1431525430569,
"replaces_state": "$142652023736BSXcM:localhost",
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"state_key": "@bob:localhost",
"type": "m.room.member",
"sender": "@bob:localhost"
},
{
"age": 7148267004,
"content": {
"ban": 50,
"events": {
"m.room.name": 100,
"m.room.power_levels": 100
},
"events_default": 0,
"kick": 50,
"redact": 50,
"state_default": 50,
"users": {
"@alice:localhost": 100
},
"users_default": 0
},
"event_id": "$14259997322mqfaq:localhost",
"origin_server_ts": 1425999732285,
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"state_key": "",
"type": "m.room.power_levels",
"sender": "@alice:localhost"
}
],
"visibility": "private",
"account_data": [
{
"type": "m.tag",
"content": {"tags": {"work": {"order": 1}}}
},
{
"type": "org.example.custom.room.config",
"content": {
"custom_config_key": "custom_config_value"
}
}
]
}
]
}
schema:
type: object
properties:
end:
type: string
description: |-
A token which correlates to the last value in ``chunk``. This
token should be used with the ``/events`` API to listen for new
events.
presence:
type: array
description: A list of presence events.
items:
type: object
title: Event
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/event.yaml"
rooms:
type: array
items:
type: object
title: RoomInfo
properties:
room_id:
type: string
description: "The ID of this room."
membership:
type: string
description: "The user's membership state in this room."
enum: ["invite", "join", "leave", "ban"]
invite:
type: object
title: "InviteEvent"
description: "The invite event if ``membership`` is ``invite``"
allOf:
- "$ref": "definitions/event-schemas/schema/m.room.member"
messages:
type: object
title: PaginationChunk
description: "The pagination chunk for this room."
properties:
start:
type: string
description: |-
A token which correlates to the first value in ``chunk``.
Used for pagination.
end:
type: string
description: |-
A token which correlates to the last value in ``chunk``.
Used for pagination.
chunk:
type: array
description: |-
If the user is a member of the room this will be a
list of the most recent messages for this room. If
the user has left the room this will be the
messages that preceeded them leaving. This array
will consist of at most ``limit`` elements.
items:
type: object
title: RoomEvent
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
required: ["start", "end", "chunk"]
state:
type: array
description: |-
If the user is a member of the room this will be the
current state of the room as a list of events. If the
user has left the room this will be the state of the
room when they left it.
items:
title: StateEvent
type: object
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/state_event.yaml"
visibility:
type: string
enum: ["private", "public"]
description: |-
Whether this room is visible to the ``/publicRooms`` API
or not."
account_data:
type: array
description: |-
The private data that this user has attached to
this room.
items:
title: Event
type: object
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/event.yaml"
required: ["room_id", "membership"]
required: ["end", "rooms", "presence"]
404:
description: There is no avatar URL for this user or this user does not exist.
tags:
- Room participation
deprecated: true
"/events/{eventId}":
get:
summary: Get a single event by event ID.
description: |-
Get a single event based on ``event_id``. You must have permission to
retrieve this event e.g. by being a member in the room for this event.
This endpoint was deprecated in r0 of this specification. Clients
should instead call the |/rooms/{roomId}/context/{eventId}|_ API.
security:
- accessToken: []
parameters:
- in: path
type: string
name: eventId
description: The event ID to get.
required: true
x-example: "$asfDuShaf7Gafaw:matrix.org"
responses:
200:
description: The full event.
examples:
application/json: |-
{
"content": {
"body": "Hello world!",
"msgtype": "m.text"
},
"room_id": "!wfgy43Sg4a:matrix.org",
"sender": "@bob:matrix.org",
"event_id": "$asfDuShaf7Gafaw:matrix.org",
"type": "m.room.message"
}
schema:
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/event.yaml"
404:
description: The event was not found or you do not have permission to read this event.
tags:
- Room participation
deprecated: true

@ -1,114 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Sync Guest API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/events":
get:
summary: Listen on the event stream.
description: |-
This will listen for new events related to a particular room and return
them to the caller. This will block until an event is received, or until
the ``timeout`` is reached.
This API is the same as the normal ``/events`` endpoint, but can be
called by users who have not joined the room.
Note that the normal ``/events`` endpoint has been deprecated. This
API will also be deprecated at some point, but its replacement is not
yet known.
security:
- accessToken: []
parameters:
- in: query
type: string
name: from
description: |-
The token to stream from. This token is either from a previous
request to this API or from the initial sync API.
required: false
x-example: "s3456_9_0"
- in: query
type: integer
name: timeout
description: The maximum time in milliseconds to wait for an event.
required: false
x-example: "35000"
- in: query
type: string
name: room_id
description: |-
The room ID for which events should be returned.
x-example:
- "!somewhere:over.the.rainbow"
responses:
200:
description: "The events received, which may be none."
examples:
application/json: |-
{
"start": "s3456_9_0",
"end": "s3457_9_0",
"chunk": [
{
"age": 32,
"content": {
"body": "incoming message",
"msgtype": "m.text"
},
"event_id": "$14328055551tzaee:localhost",
"origin_server_ts": 1432804485886,
"room_id": "!TmaZBKYIFrIPVGoUYp:localhost",
"type": "m.room.message",
"sender": "@bob:localhost"
}
]
}
schema:
type: object
properties:
start:
type: string
description: |-
A token which correlates to the first value in ``chunk``. This
is usually the same token supplied to ``from=``.
end:
type: string
description: |-
A token which correlates to the last value in ``chunk``. This
token should be used in the next request to ``/events``.
chunk:
type: array
description: "An array of events."
items:
type: object
title: Event
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
400:
description: "Bad pagination ``from`` parameter."
# No tags to exclude this from the swagger UI - use the normal version instead.

@ -1,225 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Presence API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/presence/{userId}/status":
put:
summary: Update this user's presence state.
description: |-
This API sets the given user's presence state. When setting the status,
the activity time is updated to reflect that activity; the client does
not need to specify the ``last_active_ago`` field. You cannot set the
presence state of another user.
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
description: The user whose presence state to update.
required: true
x-example: "@alice:example.com"
- in: body
name: presenceState
description: The updated presence state.
required: true
schema:
type: object
example: |-
{
"presence": "online",
"status_msg": "I am here."
}
properties:
presence:
type: string
enum: ["online", "offline", "unavailable"]
description: The new presence state.
status_msg:
type: string
description: "The status message to attach to this state."
required: ["presence"]
responses:
200:
description: The new presence state was set.
examples:
application/json: |-
{}
schema:
type: object # empty json object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Presence
get:
summary: Get this user's presence state.
description: |-
Get the given user's presence state.
parameters:
- in: path
type: string
name: userId
description: The user whose presence state to get.
required: true
x-example: "@alice:example.com"
responses:
200:
description: The presence state for this user.
examples:
application/json: |-
{
"presence": "unavailable",
"last_active_ago": 420845
}
schema:
type: object
properties:
presence:
type: string
enum: ["online", "offline", "unavailable"]
description: This user's presence.
last_active_ago:
type: integer
description: |-
The length of time in milliseconds since an action was performed
by this user.
status_msg:
type: [string, "null"]
description: The state message for this user if one was set.
currently_active:
type: boolean
description: "Whether the user is currently active"
required: ["presence"]
404:
description: |-
There is no presence state for this user. This user may not exist or
isn't exposing presence information to you.
tags:
- Presence
"/presence/list/{userId}":
post:
summary: Add or remove users from this presence list.
description: |-
Adds or removes users from this presence list.
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
description: The user whose presence list is being modified.
required: true
x-example: "@alice:example.com"
- in: body
name: presence_diff
description: The modifications to make to this presence list.
required: true
schema:
type: object
example: |-
{
"invite": [
"@bob:matrix.org"
],
"drop": [
"@alice:matrix.org"
]
}
properties:
invite:
type: array
description: A list of user IDs to add to the list.
items:
type: string
description: A list of user IDs.
drop:
type: array
description: A list of user IDs to remove from the list.
items:
type: string
description: A list of user IDs.
responses:
200:
description: The list was updated.
examples:
application/json: |-
{}
schema:
type: object # empty json object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Presence
get:
summary: Get presence events for this presence list.
description: |-
Retrieve a list of presence events for every user on this list.
parameters:
- in: path
type: string
name: userId
description: The user whose presence list should be retrieved.
required: true
x-example: "@alice:example.com"
responses:
200:
description: A list of presence events for this list.
examples:
application/json: |-
[
{
"content": {
"last_active_ago": 395,
"presence": "offline",
"user_id": "@alice:matrix.org"
},
"type": "m.presence"
},
{
"content": {
"last_active_ago": 16874,
"presence": "online",
"user_id": "@marisa:matrix.org",
"currently_active": true
},
"type": "m.presence"
}
]
schema:
type: array
items:
type: object
title: PresenceEvent
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/event.yaml"
tags:
- Presence

@ -1,214 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Profile API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/profile/{userId}/displayname":
put:
summary: Set the user's display name.
description: |-
This API sets the given user's display name. You must have permission to
set this user's display name, e.g. you need to have their ``access_token``.
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
description: The user whose display name to set.
required: true
x-example: "@alice:example.com"
- in: body
name: displayName
description: The display name info.
required: true
schema:
type: object
example: |-
{
"displayname": "Alice Margatroid"
}
properties:
displayname:
type: string
description: The new display name for this user.
responses:
200:
description: The display name was set.
examples:
application/json: |-
{}
schema:
type: object # empty json object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- User data
get:
summary: Get the user's display name.
description: |-
Get the user's display name. This API may be used to fetch the user's
own displayname or to query the name of other users; either locally or
on remote homeservers.
parameters:
- in: path
type: string
name: userId
description: The user whose display name to get.
required: true
x-example: "@alice:example.com"
responses:
200:
description: The display name for this user.
examples:
application/json: |-
{
"displayname": "Alice Margatroid"
}
schema:
type: object
properties:
displayname:
type: string
description: The user's display name if they have set one, otherwise not present.
404:
description: There is no display name for this user or this user does not exist.
tags:
- User data
"/profile/{userId}/avatar_url":
put:
summary: Set the user's avatar URL.
description: |-
This API sets the given user's avatar URL. You must have permission to
set this user's avatar URL, e.g. you need to have their ``access_token``.
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
description: The user whose avatar URL to set.
required: true
x-example: "@alice:example.com"
- in: body
name: avatar_url
description: The avatar url info.
required: true
schema:
type: object
example: |-
{
"avatar_url": "mxc://matrix.org/wefh34uihSDRGhw34"
}
properties:
avatar_url:
type: string
description: The new avatar URL for this user.
responses:
200:
description: The avatar URL was set.
examples:
application/json: |-
{}
schema:
type: object # empty json object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- User data
get:
summary: Get the user's avatar URL.
description: |-
Get the user's avatar URL. This API may be used to fetch the user's
own avatar URL or to query the URL of other users; either locally or
on remote homeservers.
parameters:
- in: path
type: string
name: userId
description: The user whose avatar URL to get.
required: true
x-example: "@alice:example.com"
responses:
200:
description: The avatar URL for this user.
examples:
application/json: |-
{
"avatar_url": "mxc://matrix.org/SDGdghriugerRg"
}
schema:
type: object
properties:
avatar_url:
type: string
description: The user's avatar URL if they have set one, otherwise not present.
404:
description: There is no avatar URL for this user or this user does not exist.
tags:
- User data
"/profile/{userId}":
get:
summary: Get this user's profile information.
description: |-
Get the combined profile information for this user. This API may be used
to fetch the user's own profile information or other users; either
locally or on remote homeservers. This API may return keys which are not
limited to ``displayname`` or ``avatar_url``.
parameters:
- in: path
type: string
name: userId
description: The user whose profile information to get.
required: true
x-example: "@alice:example.com"
responses:
200:
description: The avatar URL for this user.
examples:
application/json: |-
{
"avatar_url": "mxc://matrix.org/SDGdghriugerRg",
"displayname": "Alice Margatroid"
}
schema:
type: object
properties:
avatar_url:
type: string
description: The user's avatar URL if they have set one, otherwise not present.
displayname:
type: string
description: The user's display name if they have set one, otherwise not present.
404:
description: There is no profile information for this user or this user does not exist.
tags:
- User data

@ -1,238 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Push API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/pushers":
get:
summary: Gets the current pushers for the authenticated user
description: |-
Gets all currently active pushers for the authenticated user
security:
- accessToken: []
responses:
200:
description: The pushers for this user
examples:
application/json: |-
{
"pushers": [
{
"pushkey": "Xp/MzCt8/9DcSNE9cuiaoT5Ac55job3TdLSSmtmYl4A=",
"kind": "http",
"app_id": "face.mcapp.appy.prod",
"app_display_name": "Appy McAppface",
"device_display_name": "Alice's Phone",
"profile_tag": "xyz",
"lang": "en-US",
"data": {
"url": "https://example.com/_matrix/push/v1/notify"
}
}
]
}
schema:
type: object
properties:
pushers:
type: array
title: Pushers
description: |-
An array containing the current pushers for the user
items:
type: object
title: Pusher
properties:
pushkey:
type: string
description: |-
This is a unique identifier for this pusher. See `/set` for
more detail.
Max length, 512 bytes.
kind:
type: string
description: |-
The kind of pusher. ``"http"`` is a pusher that
sends HTTP pokes.
app_id:
type: string
description: |-
This is a reverse-DNS style identifier for the application.
Max length, 64 chars.
app_display_name:
type: string
description: |-
A string that will allow the user to identify what application
owns this pusher.
device_display_name:
type: string
description: |-
A string that will allow the user to identify what device owns
this pusher.
profile_tag:
type: string
description: |-
This string determines which set of device specific rules this
pusher executes.
lang:
type: string
description: |-
The preferred language for receiving notifications (e.g. 'en'
or 'en-US')
data:
type: object
description: |-
A dictionary of information for the pusher implementation
itself.
title: PusherData
properties:
url:
type: string
description: |-
Required if ``kind`` is ``http``. The URL to use to send
notifications to.
tags:
- Push notifications
"/pushers/set":
post:
summary: Modify a pusher for this user on the homeserver.
description: |-
This endpoint allows the creation, modification and deletion of `pushers`_
for this user ID. The behaviour of this endpoint varies depending on the
values in the JSON body.
security:
- accessToken: []
parameters:
- in: body
name: pusher
description: The pusher information
required: true
schema:
type: object
example: |-
{
"lang": "en",
"kind": "http",
"app_display_name": "Mat Rix",
"device_display_name": "iPhone 9",
"profile_tag": "xxyyzz",
"app_id": "com.example.app.ios",
"pushkey": "APA91bHPRgkF3JUikC4ENAHEeMrd41Zxv3hVZjC9KtT8OvPVGJ-hQMRKRrZuJAEcl7B338qju59zJMjw2DELjzEvxwYv7hH5Ynpc1ODQ0aT4U4OFEeco8ohsN5PjL1iC2dNtk2BAokeMCg2ZXKqpc8FXKmhX94kIxQ",
"data": {
"url": "https://push-gateway.location.here"
},
"append": false
}
properties:
pushkey:
type: string
description: |-
This is a unique identifier for this pusher. The value you
should use for this is the routing or destination address
information for the notification, for example, the APNS token
for APNS or the Registration ID for GCM. If your notification
client has no such concept, use any unique identifier.
Max length, 512 bytes.
kind:
type: string
description: |-
The kind of pusher to configure. ``"http"`` makes a pusher that
sends HTTP pokes. ``null`` deletes the pusher.
app_id:
type: string
description: |-
This is a reverse-DNS style identifier for the application.
It is recommended that this end with the platform, such that
different platform versions get different app identifiers.
Max length, 64 chars.
app_display_name:
type: string
description: |-
A string that will allow the user to identify what application
owns this pusher.
device_display_name:
type: string
description: |-
A string that will allow the user to identify what device owns
this pusher.
profile_tag:
type: string
description: |-
This string determines which set of device specific rules this
pusher executes.
lang:
type: string
description: |-
The preferred language for receiving notifications (e.g. 'en'
or 'en-US')
data:
type: object
description: |-
A dictionary of information for the pusher implementation
itself. If ``kind`` is ``http``, this should contain ``url``
which is the URL to use to send notifications to.
title: PusherData
properties:
url:
type: string
description: |-
Required if ``kind`` is ``http``. The URL to use to send
notifications to.
append:
type: boolean
description: |-
If true, the homeserver should add another pusher with the
given pushkey and App ID in addition to any others with
different user IDs. Otherwise, the homeserver must remove any
other pushers with the same App ID and pushkey for different
users. The default is ``false``.
required: ['kind', 'app_id', 'app_display_name',
'device_display_name', 'pushkey', 'lang', 'data']
responses:
200:
description: The pusher was set.
examples:
application/json: |-
{}
schema:
type: object # empty json object
400:
description: One or more of the pusher values were invalid.
examples:
application/json: |-
{
"error": "Missing parameters: lang, data",
"errcode": "M_MISSING_PARAM"
}
schema:
type: object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Push notifications

@ -1,652 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Push Rules API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/pushrules/":
get:
summary: Retrieve all push rulesets.
description: |-
Retrieve all push rulesets for this user. Clients can "drill-down" on
the rulesets by suffixing a ``scope`` to this path e.g.
``/pushrules/global/``. This will return a subset of this data under the
specified key e.g. the ``global`` key.
security:
- accessToken: []
responses:
200:
description: All the push rulesets for this user.
schema:
type: object
required: ["global"]
properties:
global:
type: object
description: The global ruleset.
title: Ruleset
allOf: [
"$ref": "definitions/push_ruleset.yaml"
]
examples:
application/json: |-
{
"global": {
"content": [
{
"actions": [
"notify",
{
"set_tweak": "sound",
"value": "default"
},
{
"set_tweak": "highlight"
}
],
"default": true,
"enabled": true,
"pattern": "alice",
"rule_id": ".m.rule.contains_user_name"
}
],
"override": [
{
"actions": [
"dont_notify"
],
"conditions": [],
"default": true,
"enabled": false,
"rule_id": ".m.rule.master"
},
{
"actions": [
"dont_notify"
],
"conditions": [
{
"key": "content.msgtype",
"kind": "event_match",
"pattern": "m.notice"
}
],
"default": true,
"enabled": true,
"rule_id": ".m.rule.suppress_notices"
}
],
"room": [],
"sender": [],
"underride": [
{
"actions": [
"notify",
{
"set_tweak": "sound",
"value": "ring"
},
{
"set_tweak": "highlight",
"value": false
}
],
"conditions": [
{
"key": "type",
"kind": "event_match",
"pattern": "m.call.invite"
}
],
"default": true,
"enabled": true,
"rule_id": ".m.rule.call"
},
{
"actions": [
"notify",
{
"set_tweak": "sound",
"value": "default"
},
{
"set_tweak": "highlight"
}
],
"conditions": [
{
"kind": "contains_display_name"
}
],
"default": true,
"enabled": true,
"rule_id": ".m.rule.contains_display_name"
},
{
"actions": [
"notify",
{
"set_tweak": "sound",
"value": "default"
},
{
"set_tweak": "highlight",
"value": false
}
],
"conditions": [
{
"is": "2",
"kind": "room_member_count"
}
],
"default": true,
"enabled": true,
"rule_id": ".m.rule.room_one_to_one"
},
{
"actions": [
"notify",
{
"set_tweak": "sound",
"value": "default"
},
{
"set_tweak": "highlight",
"value": false
}
],
"conditions": [
{
"key": "type",
"kind": "event_match",
"pattern": "m.room.member"
},
{
"key": "content.membership",
"kind": "event_match",
"pattern": "invite"
},
{
"key": "state_key",
"kind": "event_match",
"pattern": "@alice:example.com"
}
],
"default": true,
"enabled": true,
"rule_id": ".m.rule.invite_for_me"
},
{
"actions": [
"notify",
{
"set_tweak": "highlight",
"value": false
}
],
"conditions": [
{
"key": "type",
"kind": "event_match",
"pattern": "m.room.member"
}
],
"default": true,
"enabled": true,
"rule_id": ".m.rule.member_event"
},
{
"actions": [
"notify",
{
"set_tweak": "highlight",
"value": false
}
],
"conditions": [
{
"key": "type",
"kind": "event_match",
"pattern": "m.room.message"
}
],
"default": true,
"enabled": true,
"rule_id": ".m.rule.message"
}
]
}
}
tags:
- Push notifications
"/pushrules/{scope}/{kind}/{ruleId}":
get:
summary: Retrieve a push rule.
description: |-
Retrieve a single specified push rule.
security:
- accessToken: []
parameters:
- in: path
type: string
name: scope
required: true
x-example: "global"
description: |-
``global`` to specify global rules.
- in: path
type: string
name: kind
required: true
x-example: room
enum: ["override", "underride", "sender", "room", "content"]
description: |
The kind of rule
- in: path
type: string
name: ruleId
required: true
x-example: "#spam:example.com"
description: |
The identifier for the rule.
responses:
200:
description: |-
The specific push rule. This will also include keys specific to the
rule itself such as the rule's ``actions`` and ``conditions`` if set.
examples:
application/json: |-
{
"actions": [
"dont_notify"
],
"rule_id": "#spam:matrix.org",
"enabled": true
}
schema:
type: object
description: The push rule.
title: PushRule
allOf: [
"$ref": "definitions/push_rule.yaml"
]
tags:
- Push notifications
delete:
summary: Delete a push rule.
description: |-
This endpoint removes the push rule defined in the path.
security:
- accessToken: []
parameters:
- in: path
type: string
name: scope
required: true
x-example: "global"
description: |-
``global`` to specify global rules.
- in: path
type: string
name: kind
required: true
x-example: room
enum: ["override", "underride", "sender", "room", "content"]
description: |
The kind of rule
- in: path
type: string
name: ruleId
required: true
x-example: "#spam:example.com"
description: |
The identifier for the rule.
responses:
200:
description: The push rule was deleted.
examples:
application/json: |-
{}
schema:
type: object # empty json object
tags:
- Push notifications
put:
summary: Add or change a push rule.
description: |-
This endpoint allows the creation, modification and deletion of pushers
for this user ID. The behaviour of this endpoint varies depending on the
values in the JSON body.
security:
- accessToken: []
parameters:
- in: path
type: string
name: scope
required: true
x-example: "global"
description: |-
``global`` to specify global rules.
- in: path
type: string
name: kind
required: true
x-example: room
enum: ["override", "underride", "sender", "room", "content"]
description: |
The kind of rule
- in: path
type: string
name: ruleId
required: true
x-example: "#spam:example.com"
description: |
The identifier for the rule.
- in: query
type: string
name: before
required: false
x-example: someRuleId
description: |-
Use 'before' with a ``rule_id`` as its value to make the new rule the
next-most important rule with respect to the given user defined rule.
It is not possible to add a rule relative to a predefined server rule.
- in: query
type: string
name: after
required: false
x-example: anotherRuleId
description: |-
This makes the new rule the next-less important rule relative to the
given user defined rule. It is not possible to add a rule relative
to a predefined server rule.
- in: body
name: pushrule
description: |-
The push rule data. Additional top-level keys may be present depending
on the parameters for the rule ``kind``.
required: true
schema:
type: object
example: |-
{
"pattern": "cake*lie",
"actions": ["notify"]
}
properties:
actions:
type: array
description: |-
The action(s) to perform when the conditions for this rule are met.
items:
type: string
enum: ["notify", "dont_notify", "coalesce", "set_tweak"]
# TODO: type: object e.g. {"set_sound":"beeroclock.wav"} :/
conditions:
type: array
description: |-
The conditions that must hold true for an event in order for a
rule to be applied to an event. A rule with no conditions
always matches.
items:
type: object
title: conditions
allOf: [ "$ref": "definitions/push_condition.yaml" ]
required: ["actions"]
responses:
200:
description: The pusher was set.
examples:
application/json: |-
{}
schema:
type: object # empty json object
400:
description: There was a problem configuring this push rule.
examples:
application/json: |-
{
"error": "before/after rule not found: someRuleId",
"errcode": "M_UNKNOWN"
}
schema:
type: object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Push notifications
"/pushrules/{scope}/{kind}/{ruleId}/enabled":
get:
summary: "Get whether a push rule is enabled"
description:
This endpoint gets whether the specified push rule is enabled.
security:
- accessToken: []
parameters:
- in: path
type: string
name: scope
required: true
x-example: "global"
description: |-
Either ``global`` or ``device/<profile_tag>`` to specify global
rules or device rules for the given ``profile_tag``.
- in: path
type: string
name: kind
required: true
x-example: room
enum: ["override", "underride", "sender", "room", "content"]
description: |
The kind of rule
- in: path
type: string
name: ruleId
required: true
x-example: "#spam:example.com"
description: |
The identifier for the rule.
responses:
200:
description: Whether the push rule is enabled.
examples:
application/json: |-
{
"enabled": true
}
schema:
type: object
properties:
enabled:
type: boolean
description: Whether the push rule is enabled or not.
required: ["enabled"]
put:
summary: "Enable or disable a push rule."
description: |-
This endpoint allows clients to enable or disable the specified push rule.
security:
- accessToken: []
parameters:
- in: path
type: string
name: scope
required: true
x-example: "global"
description: |-
``global`` to specify global rules.
- in: path
type: string
name: kind
required: true
x-example: room
enum: ["override", "underride", "sender", "room", "content"]
description: |
The kind of rule
- in: path
type: string
name: ruleId
required: true
x-example: "#spam:example.com"
description: |
The identifier for the rule.
- in: body
name: body
description: |
Whether the push rule is enabled or not.
required: true
schema:
type: object
properties:
enabled:
type: boolean
description: Whether the push rule is enabled or not.
required: ["enabled"]
example: |-
{
"enabled": true
}
responses:
200:
description: The push rule was enabled or disabled.
examples:
application/json: |-
{}
schema:
type: object
tags:
- Push notifications
"/pushrules/{scope}/{kind}/{ruleId}/actions":
get:
summary: "The actions for a push rule"
description:
This endpoint get the actions for the specified push rule.
security:
- accessToken: []
parameters:
- in: path
type: string
name: scope
required: true
x-example: "global"
description: |-
Either ``global`` or ``device/<profile_tag>`` to specify global
rules or device rules for the given ``profile_tag``.
- in: path
type: string
name: kind
required: true
x-example: room
enum: ["override", "underride", "sender", "room", "content"]
description: |
The kind of rule
- in: path
type: string
name: ruleId
required: true
x-example: "#spam:example.com"
description: |
The identifier for the rule.
responses:
200:
description: The actions for this push rule.
examples:
application/json: |-
{
"actions": ["notify"]
}
schema:
type: object
properties:
actions:
type: array
description: The action(s) to perform for this rule.
items:
type: string
required: ["actions"]
put:
summary: "Set the actions for a push rule."
description: |-
This endpoint allows clients to change the actions of a push rule.
This can be used to change the actions of builtin rules.
security:
- accessToken: []
parameters:
- in: path
type: string
name: scope
required: true
x-example: "global"
description: |-
``global`` to specify global rules.
- in: path
type: string
name: kind
required: true
x-example: room
enum: ["override", "underride", "sender", "room", "content"]
description: |
The kind of rule
- in: path
type: string
name: ruleId
required: true
x-example: "#spam:example.com"
description: |
The identifier for the rule.
- in: body
name: body
description: |
The action(s) to perform when the conditions for this rule are met.
required: true
schema:
type: object
properties:
actions:
type: array
description: The action(s) to perform for this rule.
items:
type: string
enum: ["notify", "dont_notify", "coalesce", "set_tweak"]
# TODO: type: object e.g. {"set_sound":"beeroclock.wav"} :/
required: ["actions"]
example: |-
{
"actions": ["notify"]
}
responses:
200:
description: The actions for the push rule were set.
examples:
application/json: |-
{}
schema:
type: object
tags:
- Push notifications

@ -1,80 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Receipts API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/receipt/{receiptType}/{eventId}":
post:
summary: Send a receipt for the given event ID.
description: |-
This API updates the marker for the given receipt type to the event ID
specified.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room in which to send the event.
required: true
x-example: "!wefuh21ffskfuh345:example.com"
- in: path
type: string
name: receiptType
description: The type of receipt to send.
required: true
x-example: "m.read"
enum: ["m.read"]
- in: path
type: string
name: eventId
description: The event ID to acknowledge up to.
required: true
x-example: "$1924376522eioj:example.com"
- in: body
name: receipt
description: |-
Extra receipt information to attach to ``content`` if any. The
server will automatically set the ``ts`` field.
schema:
type: object
example: |-
{}
responses:
200:
description: The receipt was sent.
examples:
application/json: |-
{}
schema:
type: object # empty json object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Room participation

@ -1,93 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server message redaction API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/redact/{eventId}/{txnId}":
put:
summary: Strips all non-integrity-critical information out of an event.
description: |-
Strips all information out of an event which isn't critical to the
integrity of the server-side representation of the room.
This cannot be undone.
Users may redact their own events, and any user with a power level
greater than or equal to the `redact` power level of the room may
redact events there.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room from which to redact the event.
required: true
x-example: "!637q39766251:example.com"
- in: path
type: string
name: eventId
description: The ID of the event to redact
required: true
x-example: "bai2b1i9:matrix.org"
- in: path
name: txnId
type: string
description: |-
The transaction ID for this event. Clients should generate a
unique ID; it will be used by the server to ensure idempotency of requests.
required: true
x-example: "37"
- in: body
name: body
schema:
type: object
example: |-
{
"reason": "Indecent material"
}
properties:
reason:
type: string
description: The reason for the event being redacted.
responses:
200:
description: "An ID for the redaction event."
examples:
application/json: |-
{
"event_id": "YUwQidLecu"
}
schema:
type: object
properties:
event_id:
type: string
description: |-
A unique identifier for the event.
tags:
- Room participation

@ -1,322 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Registration API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
paths:
"/register":
post:
summary: Register for an account on this homeserver.
description: |-
This API endpoint uses the `User-Interactive Authentication API`.
Register for an account on this homeserver.
There are two kinds of user account:
- `user` accounts. These accounts may use the full API described in this specification.
- `guest` accounts. These accounts may have limited permissions and may not be supported by all servers.
parameters:
- in: query
name: kind
type: string
x-example: guest
required: false
default: user
enum:
- guest
- user
description: The kind of account to register. Defaults to `user`.
- in: body
name: body
schema:
type: object
properties:
auth:
description: |-
Additional authentication information for the user-interactive authentication API.
"$ref": "definitions/auth_data.yaml"
bind_email:
type: boolean
description: |-
If true, the server binds the email used for authentication to
the Matrix ID with the ID Server.
example: false
username:
type: string
description: |-
The local part of the desired Matrix ID. If omitted,
the homeserver MUST generate a Matrix ID local part.
example: cheeky_monkey
password:
type: string
description: The desired password for the account.
example: ilovebananas
required: ["password"]
responses:
200:
description: The account has been registered.
examples:
application/json: |-
{
"user_id": "@cheeky_monkey:matrix.org",
"access_token": "abc123",
"home_server": "matrix.org",
"refresh_token": "def456"
}
schema:
type: object
properties:
user_id:
type: string
description: The fully-qualified Matrix ID that has been registered.
access_token:
type: string
description: |-
An access token for the account.
This access token can then be used to authorize other requests.
The access token may expire at some point, and if so, it SHOULD come with a ``refresh_token``.
There is no specific error message to indicate that a request has failed because
an access token has expired; instead, if a client has reason to believe its
access token is valid, and it receives an auth error, they should attempt to
refresh for a new token on failure, and retry the request with the new token.
refresh_token:
type: string
# TODO: Work out how to linkify /tokenrefresh
description: |-
(optional) A ``refresh_token`` may be exchanged for a new ``access_token`` using the /tokenrefresh API endpoint.
home_server:
type: string
description: The hostname of the homeserver on which the account has been registered.
400:
description: |-
Part of the request was invalid. This may include one of the following error codes:
* ``M_USER_IN_USE`` : The desired user ID is already taken.
* ``M_INVALID_USERNAME`` : The desired user ID is not a valid user name.
* ``M_EXCLUSIVE`` : The desired user ID is in the exclusive namespace
claimed by an application service.
These errors may be returned at any stage of the registration process,
including after authentication if the requested user ID was registered
whilst the client was performing authentication.
Homeservers MUST perform the relevant checks and return these codes before
performing User-Interactive Authentication, although they may also return
them after authentication is completed if, for example, the requested user ID
was registered whilst the client was performing authentication.
examples:
application/json: |-
{
"errcode": "M_USER_IN_USE",
"error": "Desired user ID is already taken."
}
401:
description: |-
The homeserver requires additional authentication information.
schema:
"$ref": "definitions/auth_response.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- User data
"/register/email/requestToken":
post:
summary: Requests a validation token be sent to the given email address for the purpose of registering an account
description: |-
Proxies the identity server API ``validate/email/requestToken``, but
first checks that the given email address is not already associated
with an account on this Home Server. Note that, for consistency,
this API takes JSON objects, though the Identity Server API takes
``x-www-form-urlencoded`` parameters. See the Identity Server API for
further information.
parameters:
- in: body
name: body
schema:
type: object
properties:
id_server:
type: string
description: The ID server to send the onward request to as a hostname with an appended colon and port number if the port is not the default.
example: "id.matrix.org"
client_secret:
type: string
description: Client-generated secret string used to protect this session
example: "this_is_my_secret_string"
email:
type: string
description: The email address
example: "example@example.com"
send_attempt:
type: number
description: Used to distinguish protocol level retries from requests to re-send the email.
example: "1"
required: ["client_secret", "email", "send_attempt"]
responses:
200:
description: |-
An email has been sent to the specified address.
Note that this may be an email containing the validation token or it may be informing
the user of an error.
examples:
application/json: "{}"
schema:
type: object
400:
description: |-
Part of the request was invalid. This may include one of the following error codes:
* ``M_THREEPID_IN_USE`` : The email address is already registered to an account on this server.
However, if the home server has the ability to send email, it is recommended that the server
instead send an email to the user with instructions on how to reset their password.
This prevents malicious parties from being able to determine if a given email address
has an account on the Home Server in question.
* ``M_SERVER_NOT_TRUSTED`` : The ``id_server`` parameter refers to an ID server
that is not trusted by this Home Server.
examples:
application/json: |-
{
"errcode": "M_THREEPID_IN_USE",
"error": "The specified address is already in use"
}
schema:
type: object
"/account/password":
post:
summary: "Changes a user's password."
description: |-
Changes the password for an account on this homeserver.
This API endpoint uses the `User-Interactive Authentication API`_.
An access token should be submitted to this endpoint if the client has
an active session.
The homeserver may change the flows available depending on whether a
valid access token is provided.
security:
- accessToken: []
parameters:
- in: body
name: body
schema:
type: object
properties:
new_password:
type: string
description: The new password for the account.
example: "ihatebananas"
auth:
description: |-
Additional authentication information for the user-interactive authentication API.
"$ref": "definitions/auth_data.yaml"
required: ["new_password"]
responses:
200:
description: The password has been changed.
examples:
application/json: "{}"
schema:
type: object
401:
description: |-
The homeserver requires additional authentication information.
schema:
"$ref": "definitions/auth_response.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- User data
"/account/password/email/requestToken":
post:
summary: Requests a validation token be sent to the given email address for the purpose of resetting a user's password
description: |-
Proxies the identity server API ``validate/email/requestToken``, but
first checks that the given email address **is** associated with an account
on this Home Server. This API should be used to request
validation tokens when authenticating for the
`account/password` endpoint. This API's parameters and response are
identical to that of the HS API |/register/email/requestToken|_ except that
`M_THREEPID_NOT_FOUND` may be returned if no account matching the
given email address could be found. The server may instead send an
email to the given address prompting the user to create an account.
`M_THREEPID_IN_USE` may not be returned.
.. |/register/email/requestToken| replace:: ``/register/email/requestToken``
.. _/register/email/requestToken: #post-matrix-client-%CLIENT_MAJOR_VERSION%-register-email-requesttoken
responses:
200:
description: An email was sent to the given address
"/account/deactivate":
post:
summary: "Deactivate a user's account."
description: |-
Deactivate the user's account, removing all ability for the user to
login again.
This API endpoint uses the `User-Interactive Authentication API`_.
An access token should be submitted to this endpoint if the client has
an active session.
The homeserver may change the flows available depending on whether a
valid access token is provided.
security:
- accessToken: []
parameters:
- in: body
name: body
schema:
type: object
properties:
auth:
description: |-
Additional authentication information for the user-interactive authentication API.
"$ref": "definitions/auth_data.yaml"
responses:
200:
description: The account has been deactivated.
examples:
application/json: "{}"
schema:
type: object
401:
description: |-
The homeserver requires additional authentication information.
schema:
"$ref": "definitions/auth_response.yaml"
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- User data

@ -1,233 +0,0 @@
swagger: '2.0'
info:
title: "Matrix Client-Server Rooms API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/initialSync":
get:
summary: Snapshot the current state of a room and its most recent messages.
description: |-
Get a copy of the current state and the most recent messages in a room.
This endpoint was deprecated in r0 of this specification. There is no
direct replacement; the relevant information is returned by the
|/sync|_ API. See the `migration guide
<https://matrix.org/docs/guides/client-server-migrating-from-v1.html#deprecated-endpoints>`_.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to get the data.
required: true
x-example: "!636q39766251:example.com"
responses:
200:
description: The current state of the room
examples:
application/json: |-
{
"membership": "join",
"messages": {
"chunk": [
{
"age": 343513403,
"content": {
"body": "foo",
"msgtype": "m.text"
},
"event_id": "$14328044851tzTJS:example.com",
"origin_server_ts": 1432804485886,
"room_id": "!636q39766251:example.com",
"type": "m.room.message",
"sender": "@alice:example.com"
},
{
"age": 343511809,
"content": {
"body": "bar",
"msgtype": "m.text"
},
"event_id": "$14328044872spjFg:example.com",
"origin_server_ts": 1432804487480,
"room_id": "!636q39766251:example.com",
"type": "m.room.message",
"sender": "@bob:example.com"
}
],
"end": "s3456_9_0",
"start": "t44-3453_9_0"
},
"room_id": "!636q39766251:example.com",
"state": [
{
"age": 7148266897,
"content": {
"join_rule": "public"
},
"event_id": "$14259997323TLwtb:example.com",
"origin_server_ts": 1425999732392,
"room_id": "!636q39766251:example.com",
"state_key": "",
"type": "m.room.join_rules",
"sender": "@alice:example.com"
},
{
"age": 6547561012,
"content": {
"avatar_url": "mxc://example.com/fzysBrHpPEeTGANCVLXWXNMI#auto",
"membership": "join"
},
"event_id": "$1426600438280zExKY:example.com",
"membership": "join",
"origin_server_ts": 1426600438277,
"room_id": "!636q39766251:example.com",
"state_key": "@alice:example.com",
"type": "m.room.member",
"sender": "@alice:example.com"
},
{
"age": 7148267200,
"content": {
"creator": "@alice:example.com"
},
"event_id": "$14259997320KhbwJ:example.com",
"origin_server_ts": 1425999732089,
"room_id": "!636q39766251:example.com",
"state_key": "",
"type": "m.room.create",
"sender": "@alice:example.com"
},
{
"age": 1622568720,
"content": {
"avatar_url": "mxc://example.com/GCmhgzMPRjqgpODLsNQzVuHZ#auto",
"displayname": "Bob",
"membership": "join"
},
"event_id": "$1431525430134MxlLX:example.com",
"origin_server_ts": 1431525430569,
"replaces_state": "$142652023736BSXcM:example.com",
"room_id": "!636q39766251:example.com",
"state_key": "@bob:example.com",
"type": "m.room.member",
"sender": "@bob:example.com"
},
{
"age": 7148267004,
"content": {
"ban": 50,
"events": {
"m.room.name": 100,
"m.room.power_levels": 100
},
"events_default": 0,
"kick": 50,
"redact": 50,
"state_default": 50,
"users": {
"@alice:example.com": 100
},
"users_default": 0
},
"event_id": "$14259997322mqfaq:example.com",
"origin_server_ts": 1425999732285,
"room_id": "!636q39766251:example.com",
"state_key": "",
"type": "m.room.power_levels",
"sender": "@alice:example.com"
}
],
"visibility": "private",
"account_data": [{
"type": "m.tag",
"content": {"tags": {"work": {"order": "1"}}}
}]
}
schema:
title: RoomInfo
type: object
properties:
room_id:
type: string
description: "The ID of this room."
membership:
type: string
description: "The user's membership state in this room."
enum: ["invite", "join", "leave", "ban"]
messages:
type: object
title: PaginationChunk
description: "The pagination chunk for this room."
properties:
start:
type: string
description: |-
A token which correlates to the first value in ``chunk``.
Used for pagination.
end:
type: string
description: |-
A token which correlates to the last value in ``chunk``.
Used for pagination.
chunk:
type: array
description: |-
If the user is a member of the room this will be a
list of the most recent messages for this room. If
the user has left the room this will be the
messages that preceeded them leaving. This array
will consist of at most ``limit`` elements.
items:
type: object
title: RoomEvent
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
required: ["start", "end", "chunk"]
state:
type: array
description: |-
If the user is a member of the room this will be the
current state of the room as a list of events. If the
user has left the room this will be the state of the
room when they left it.
items:
title: StateEvent
type: object
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/state_event.yaml"
visibility:
type: string
enum: ["private", "public"]
description: |-
Whether this room is visible to the ``/publicRooms`` API
or not."
account_data:
type: array
description: |-
The private data that this user has attached to this room.
items:
title: Event
type: object
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/event.yaml"
required: ["room_id"]
403:
description: >
You aren't a member of the room and weren't previously a
member of the room.
tags:
- Room participation
deprecated: true

@ -1,90 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server message event send API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/send/{eventType}/{txnId}":
put:
summary: Send a message event to the given room.
description: |-
This endpoint is used to send a message event to a room. Message events
allow access to historical events and pagination, making them suited
for "once-off" activity in a room.
The body of the request should be the content object of the event; the
fields in this object will vary depending on the type of event. See
`Room Events`_ for the m. event specification.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to send the event to.
required: true
x-example: "!636q39766251:example.com"
- in: path
type: string
name: eventType
description: The type of event to send.
required: true
x-example: "m.room.message"
- in: path
name: txnId
type: string
description: |-
The transaction ID for this event. Clients should generate an
ID unique across requests with the same access token; it will be
used by the server to ensure idempotency of requests.
required: true
x-example: "35"
- in: body
name: body
schema:
type: object
example: |-
{
"msgtype": "m.text",
"body": "hello"
}
responses:
200:
description: "An ID for the sent event."
examples:
application/json: |-
{
"event_id": "YUwRidLecu"
}
schema:
type: object
properties:
event_id:
type: string
description: |-
A unique identifier for the event.
tags:
- Room participation

@ -1,146 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server state event send API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/state/{eventType}/{stateKey}":
put:
summary: Send a state event to the given room.
description: |
State events can be sent using this endpoint. This endpoint is
equivalent to calling `/rooms/{roomId}/state/{eventType}/{stateKey}`
with an empty `stateKey`. Previous state events with matching
`<roomId>` and `<eventType>`, and empty `<stateKey>`, will be overwritten.
Requests to this endpoint **cannot use transaction IDs**
like other ``PUT`` paths because they cannot be differentiated from the
``state_key``. Furthermore, ``POST`` is unsupported on state paths.
The body of the request should be the content object of the event; the
fields in this object will vary depending on the type of event. See
`Room Events`_ for the ``m.`` event specification.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to set the state in
required: true
x-example: "!636q39766251:example.com"
- in: path
type: string
name: eventType
description: The type of event to send.
required: true
x-example: "m.room.name"
- in: path
type: string
name: stateKey
description: The state_key for the state to send. Defaults to the empty string.
required: true
x-example: ""
- in: body
name: body
schema:
type: object
example: |-
{
"name": "New name for the room"
}
responses:
200:
description: "An ID for the sent event."
examples:
application/json: |-
{
"event_id": "YUwRidLecu"
}
schema:
type: object
properties:
event_id:
type: string
description: |-
A unique identifier for the event.
tags:
- Room participation
"/rooms/{roomId}/state/{eventType}":
put:
summary: Send a state event to the given room.
description: |
State events can be sent using this endpoint. These events will be
overwritten if ``<room id>``, ``<event type>`` and ``<state key>`` all
match. This endpoint forces the state key to be the empty string.
Requests to this endpoint **cannot use transaction IDs**
like other ``PUT`` paths because they cannot be differentiated from the
``state_key``. Furthermore, ``POST`` is unsupported on state paths.
The body of the request should be the content object of the event; the
fields in this object will vary depending on the type of event. See
`Room Events`_ for the ``m.`` event specification.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to set the state in
required: true
x-example: "!636q39766251:example.com"
- in: path
type: string
name: eventType
description: The type of event to send.
required: true
x-example: "m.room.name"
- in: body
name: body
schema:
type: object
example: |-
{
"name": "New name for the room"
}
responses:
200:
description: "An ID for the sent event."
examples:
application/json: |-
{
"event_id": "YUwRidLecu"
}
schema:
type: object
properties:
event_id:
type: string
description: |-
A unique identifier for the event.
tags:
- Room participation

@ -1,301 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Rooms API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/state/{eventType}/{stateKey}":
get:
summary: Get the state identified by the type and key.
description: |-
Looks up the contents of a state event in a room. If the user is
joined to the room then the state is taken from the current
state of the room. If the user has left the room then the state is
taken from the state of the room when they left.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to look up the state in.
required: true
x-example: "!636q39766251:example.com"
- in: path
type: string
name: eventType
description: The type of state to look up.
required: true
x-example: "m.room.name"
- in: path
type: string
name: stateKey
description: The key of the state to look up.
required: true
x-example: ""
responses:
200:
description: The content of the state event.
examples:
application/json: |-
{"name": "Example room name"}
schema:
type: object
404:
description: The room has no state with the given type or key.
403:
description: >
You aren't a member of the room and weren't previously a
member of the room.
tags:
- Room participation
"/rooms/{roomId}/state/{eventType}":
get:
summary: Get the state identified by the type, with the empty state key.
description: |-
Looks up the contents of a state event in a room. If the user is
joined to the room then the state is taken from the current
state of the room. If the user has left the room then the state is
taken from the state of the room when they left.
This looks up the state event with the empty state key.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to look up the state in.
required: true
x-example: "!636q39766251:example.com"
- in: path
type: string
name: eventType
description: The type of state to look up.
required: true
x-example: "m.room.name"
responses:
200:
description: The content of the state event.
examples:
application/json: |-
{"name": "Example room name"}
schema:
type: object
404:
description: The room has no state with the given type or key.
403:
description: >
You aren't a member of the room and weren't previously a
member of the room.
tags:
- Room participation
"/rooms/{roomId}/state":
get:
summary: Get all state events in the current state of a room.
description: |-
Get the state events for the current state of a room.
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room to look up the state for.
required: true
x-example: "!636q39766251:example.com"
responses:
200:
description: The current state of the room
examples:
application/json: |-
[
{
"age": 7148266897,
"content": {
"join_rule": "public"
},
"event_id": "$14259997323TLwtb:example.com",
"origin_server_ts": 1425999732392,
"room_id": "!636q39766251:example.com",
"state_key": "",
"type": "m.room.join_rules",
"sender": "@alice:example.com"
},
{
"age": 6547561012,
"content": {
"avatar_url": "mxc://example.com/fzysBrHpPEeTGANCVLXWXNMI#auto",
"membership": "join"
},
"event_id": "$1426600438280zExKY:example.com",
"membership": "join",
"origin_server_ts": 1426600438277,
"room_id": "!636q39766251:example.com",
"state_key": "@alice:example.com",
"type": "m.room.member",
"sender": "@alice:example.com"
},
{
"age": 7148267200,
"content": {
"creator": "@alice:example.com"
},
"event_id": "$14259997320KhbwJ:example.com",
"origin_server_ts": 1425999732089,
"room_id": "!636q39766251:example.com",
"state_key": "",
"type": "m.room.create",
"sender": "@alice:example.com"
},
{
"age": 1622568720,
"content": {
"avatar_url": "mxc://example.com/GCmhgzMPRjqgpODLsNQzVuHZ#auto",
"displayname": "Bob",
"membership": "join"
},
"event_id": "$1431525430134MxlLX:example.com",
"origin_server_ts": 1431525430569,
"replaces_state": "$142652023736BSXcM:example.com",
"room_id": "!636q39766251:example.com",
"state_key": "@bob:example.com",
"type": "m.room.member",
"sender": "@bob:example.com"
},
{
"age": 7148267004,
"content": {
"ban": 50,
"events": {
"m.room.name": 100,
"m.room.power_levels": 100
},
"events_default": 0,
"kick": 50,
"redact": 50,
"state_default": 50,
"users": {
"@alice:example.com": 100
},
"users_default": 0
},
"event_id": "$14259997322mqfaq:example.com",
"origin_server_ts": 1425999732285,
"room_id": "!636q39766251:example.com",
"state_key": "",
"type": "m.room.power_levels",
"sender": "@alice:example.com"
}
]
schema:
type: array
title: RoomState
description: |-
If the user is a member of the room this will be the
current state of the room as a list of events. If the user
has left the room then this will be the state of the room
when they left as a list of events.
items:
title: StateEvent
type: object
allOf:
- "$ref": "definitions/event-schemas/schema/core-event-schema/state_event.yaml"
403:
description: >
You aren't a member of the room and weren't previously a
member of the room.
tags:
- Room participation
"/rooms/{roomId}/members":
get:
summary: Get the m.room.member events for the room.
description:
Get the list of members for this room.
parameters:
- in: path
type: string
name: roomId
description: The room to get the member events for.
required: true
x-example: "!636q39766251:example.com"
responses:
200:
description: |-
A list of members of the room. If you are joined to the room then
this will be the current members of the room. If you have left te
room then this will be the members of the room when you left.
examples:
application/json: |-
{
"chunk": [
{
"age": 6547561012,
"content": {
"avatar_url": "mxc://example.com/fzysBrHpPEeTGANCVLXWXNMI#auto",
"membership": "join"
},
"event_id": "$1426600438280zExKY:example.com",
"membership": "join",
"origin_server_ts": 1426600438277,
"room_id": "!636q39766251:example.com",
"state_key": "@alice:example.com",
"type": "m.room.member",
"sender": "@alice:example.com"
},
{
"age": 1622568720,
"content": {
"avatar_url": "mxc://example.com/GCmhgzMPRjqgpODLsNQzVuHZ#auto",
"displayname": "Bob",
"membership": "join"
},
"event_id": "$1431525430134MxlLX:example.com",
"origin_server_ts": 1431525430569,
"replaces_state": "$142652023736BSXcM:example.com",
"room_id": "!636q39766251:example.com",
"state_key": "@bob:example.com",
"type": "m.room.member",
"sender": "@bob:example.com"
}
]
}
schema:
type: object
properties:
chunk:
type: array
items:
title: MemberEvent
type: object
allOf:
- "$ref": "definitions/event-schemas/schema/m.room.member"
403:
description: >
You aren't a member of the room and weren't previously a
member of the room.
tags:
- Room participation

@ -1,344 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Search API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/search":
post:
summary: Perform a server-side search.
description: |-
Performs a full text search across different categories.
security:
- accessToken: []
parameters:
- in: query
name: next_batch
type: string
description: |-
The point to return events from. If given, this should be a
`next_batch` result from a previous call to this endpoint.
x-example: "YWxsCgpOb25lLDM1ODcwOA"
- in: body
name: body
schema:
type: object
example: |-
{
"search_categories": {
"room_events": {
"keys": [
"content.body"
],
"search_term": "martians and men"
}
},
"order_by": "recent",
"groupings": {
"group_by": [
{
"key": "room_id"
}
]
}
}
properties:
search_categories:
type: object
title: "Categories"
description: Describes which categories to search in and
their criteria.
properties:
room_events:
type: object
title: "Room Events"
description: Mapping of category name to search criteria.
properties:
search_term:
type: string
description: The string to search events for
keys:
type: array
items:
type: string
enum: ["content.body", "content.name", "content.topic"]
description: The keys to search. Defaults to all.
filter:
type: object
title: Filter
description: |-
This takes a `filter <https://matrix.org/docs/spec/%CLIENT_RELEASE_LABEL%/client_server.html#filtering>`_.
order_by:
title: "Ordering"
type: string
enum: ["recent", "rank"]
description: "The order in which to search for results."
event_context:
title: "Event Context"
type: object
description: |-
Configures whether any context for the events
returned are included in the response.
properties:
before_limit:
type: integer
title: "Before limit"
description: |-
How many events before the result are
returned.
after_limit:
type: integer
title: "After limit"
description: |-
How many events after the result are
returned.
include_profile:
type: boolean
title: "Return profile information"
description: |-
Requests that the server returns the
historic profile information for the users
that sent the events that were returned.
include_state:
type: boolean
title: Include current state
description: |-
Requests the server return the current state for
each room returned.
groupings:
type: object
title: Groupings
description: |-
Requests that the server partitions the result set
based on the provided list of keys.
properties:
group_by:
type: array
title: Groups
description: List of groups to request.
items:
type: object
title: Group
description: Configuration for group.
properties:
key:
type: string
title: Group Key
description: |-
Key that defines the group.
enum: ["room_id", "sender"]
required: ["search_term"]
required: ["search_categories"]
responses:
200:
description: Results of the search.
schema:
type: object
title: Results
required: ["search_categories"]
properties:
search_categories:
type: object
title: Categories
description: Describes which categories to search in and
their criteria.
properties:
room_events:
type: object
title: Room Event Results
description: Mapping of category name to search criteria.
properties:
count:
type: number
description: An approximate count of the total number of results found.
results:
type: array
title: Results
description: List of results in the requested order.
items:
type: object
title: Result
description: The result object.
properties:
rank:
type: number
description: A number that describes how closely
this result matches the search. Higher is
closer.
result:
type: object
title: Event
description: The event that matched.
"$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
context:
type: object
title: Event Context
description: Context for result, if requested.
properties:
start:
type: string
title: Start Token
description: |-
Pagination token for the start of the chunk
end:
type: string
title: End Token
description: |-
Pagination token for the end of the chunk
profile_info:
type: object
title: Profile Information
description: |-
The historic profile information of the
users that sent the events returned.
additionalProperties:
type: object
title: User Profile
properties:
displayname:
type: string
title: Display name
avatar_url:
type: string
title: Avatar Url
events_before:
type: array
title: Events Before
description: Events just before the result.
items:
title: Event
type: object
"$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
events_after:
type: array
title: Events After
description: Events just after the result.
items:
title: Event
type: object
"$ref": "definitions/event-schemas/schema/core-event-schema/room_event.yaml"
state:
type: object
title: Current state
description: |-
The current state for every room in the results.
This is included if the request had the
``include_state`` key set with a value of ``true``.
additionalProperties:
type: array
title: Room State
items:
"$ref": "definitions/event-schemas/schema/core-event-schema/state_event.yaml"
groups:
type: object
title: Groups
description: Any groups that were requested.
additionalProperties:
type: object
title: Group Key
description: The results for a given group.
additionalProperties:
type: object
title: Group Value
description: |-
The results for a particular group value.
properties:
next_batch:
type: string
title: Next Batch in Group
description: |-
Token that can be used to get the next batch
of results in the group, by passing as the
`next_batch` parameter to the next call. If
this field is absent, there are no more
results in this group.
order:
type: integer
title: Group Order
description: |-
Key that can be used to order different
groups.
results:
type: array
description: |-
Which results are in this group.
items:
type: string
title: Result Event ID
next_batch:
type: string
title: Next Batch
description: |-
Token that can be used to get the next batch of
results, by passing as the `next_batch` parameter to
the next call. If this field is absent, there are no
more results.
examples:
application/json: |-
{
"search_categories": {
"room_events": {
"groups": {
"room_id": {
"!qPewotXpIctQySfjSy:localhost": {
"order": 1,
"next_batch": "BdgFsdfHSf-dsFD",
"results": [
"$144429830826TWwbB:localhost"
]
}
}
},
"next_batch": "5FdgFsd234dfgsdfFD",
"count": 1224,
"results": [
{
"rank": 0.00424866,
"result": {
"age": 526228296,
"content": {
"body": "Test content martians and men",
"msgtype": "m.text"
},
"event_id": "$144429830826TWwbB:localhost",
"origin_server_ts": 1444298308034,
"room_id": "!qPewotXpIctQySfjSy:localhost",
"type": "m.room.message",
"sender": "@test:localhost"
}
}
]
}
}
}
400:
description: Part of the request was invalid.
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Search

@ -1,345 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server sync API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/sync":
get:
summary: Synchronise the client's state and receive new messages.
description: |-
Synchronise the client's state with the latest state on the server.
Clients use this API when they first log in to get an initial snapshot
of the state on the server, and then continue to call this API to get
incremental deltas to the state, and to receive new messages.
security:
- accessToken: []
parameters:
- in: query
name: filter
type: string
description: |-
The ID of a filter created using the filter API or a filter JSON
object encoded as a string. The server will detect whether it is
an ID or a JSON object by whether the first character is a ``"{"``
open brace. Passing the JSON inline is best suited to one off
requests. Creating a filter using the filter API is recommended for
clients that reuse the same filter multiple times, for example in
long poll requests.
x-example: "66696p746572"
- in: query
name: since
type: string
description: |-
A point in time to continue a sync from.
x-example: "s72594_4483_1934"
- in: query
name: full_state
type: boolean
description: |-
Controls whether to include the full state for all rooms the user
is a member of.
If this is set to ``true``, then all state events will be returned,
even if ``since`` is non-empty. The timeline will still be limited
by the ``since`` parameter. In this case, the ``timeout`` parameter
will be ignored and the query will return immediately, possibly with
an empty timeline.
If ``false``, and ``since`` is non-empty, only state which has
changed since the point indicated by ``since`` will be returned.
By default, this is ``false``.
x-example: "false"
- in: query
name: set_presence
type: string
enum: ["offline"]
description: |-
Controls whether the client is automatically marked as online by
polling this API. If this parameter is omitted then the client is
automatically marked as online when it uses this API. Otherwise if
the parameter is set to "offline" then the client is not marked as
being online when it uses this API.
x-example: "offline"
- in: query
name: timeout
type: integer
description: |-
The maximum time to poll in milliseconds before returning this
request.
x-example: 30000
responses:
200:
description:
The initial snapshot or delta for the client to use to update their
state.
schema:
type: object
properties:
next_batch:
type: string
description: |-
The batch token to supply in the ``since`` param of the next
``/sync`` request.
rooms:
title: Rooms
type: object
description: |-
Updates to rooms.
properties:
join:
title: Joined Rooms
type: object
description: |-
The rooms that the user has joined.
additionalProperties:
title: Joined Room
type: object
properties:
state:
title: State
type: object
description: |-
Updates to the state, between the time indicated by
the ``since`` parameter, and the start of the
``timeline`` (or all state up to the start of the
``timeline``, if ``since`` is not given, or
``full_state`` is true).
allOf:
- $ref: "definitions/event_batch.yaml"
timeline:
title: Timeline
type: object
description: |-
The timeline of messages and state changes in the
room.
allOf:
- $ref: "definitions/timeline_batch.yaml"
ephemeral:
title: Ephemeral
type: object
description: |-
The ephemeral events in the room that aren't
recorded in the timeline or state of the room.
e.g. typing.
allOf:
- $ref: "definitions/event_batch.yaml"
account_data:
title: Account Data
type: object
description: |-
The private data that this user has attached to
this room.
allOf:
- $ref: "definitions/event_batch.yaml"
"unread_notifications":
title: Unread Notification Counts
type: object
description: |-
Counts of unread notifications for this room
properties:
highlight_count:
title: Highlighted notification count
type: integer
description: The number of unread notifications
for this room with the highlight flag set
notification_count:
title: Total notification count
type: integer
description: The total number of unread notifications
for this room
invite:
title: Invited Rooms
type: object
description: |-
The rooms that the user has been invited to.
additionalProperties:
title: Invited Room
type: object
properties:
invite_state:
title: InviteState
type: object
description: |-
The state of a room that the user has been invited
to. These state events may only have the ``sender``,
``type``, ``state_key`` and ``content`` keys
present. These events do not replace any state that
the client already has for the room, for example if
the client has archived the room. Instead the
client should keep two separate copies of the
state: the one from the ``invite_state`` and one
from the archived ``state``. If the client joins
the room then the current state will be given as a
delta against the archived ``state`` not the
``invite_state``.
allOf:
- $ref: "definitions/event_batch.yaml"
leave:
title: Left rooms
type: object
description: |-
The rooms that the user has left or been banned from.
additionalProperties:
title: Left Room
type: object
properties:
state:
title: State
type: object
description: |-
The state updates for the room up to the start of the timeline.
allOf:
- $ref: "definitions/event_batch.yaml"
timeline:
title: Timeline
type: object
description: |-
The timeline of messages and state changes in the
room up to the point when the user left.
allOf:
- $ref: "definitions/timeline_batch.yaml"
presence:
title: Presence
type: object
description: |-
The updates to the presence status of other users.
allOf:
- $ref: "definitions/event_batch.yaml"
examples:
application/json: |-
{
"next_batch": "s72595_4483_1934",
"presence": {
"events": [
{
"sender": "@alice:example.com",
"type": "m.presence",
"content": {"presence": "online"}
}
]
},
"account_data": {
"events": [
{
"type": "org.example.custom.config",
"content": {
"custom_config_key": "custom_config_value"
}
}
]
},
"rooms": {
"join": {
"!726s6s6q:example.com": {
"state": {
"events": [
{
"sender": "@alice:example.com",
"type": "m.room.member",
"state_key": "@alice:example.com",
"content": {"membership": "join"},
"origin_server_ts": 1417731086795,
"event_id": "$66697273743031:example.com"
}
]
},
"timeline": {
"events": [
{
"sender": "@bob:example.com",
"type": "m.room.member",
"state_key": "@bob:example.com",
"content": {"membership": "join"},
"prev_content": {"membership": "invite"},
"origin_server_ts": 1417731086795,
"event_id": "$7365636s6r6432:example.com"
},
{
"sender": "@alice:example.com",
"type": "m.room.message",
"age": 124524,
"txn_id": "1234",
"content": {
"body": "I am a fish",
"msgtype": "m.text"
},
"origin_server_ts": 1417731086797,
"event_id": "$74686972643033:example.com"
}
],
"limited": true,
"prev_batch": "t34-23535_0_0"
},
"ephemeral": {
"events": [
{
"type": "m.typing",
"content": {"user_ids": ["@alice:example.com"]}
}
]
},
"account_data": {
"events": [
{
"type": "m.tag",
"content": {"tags": {"work": {"order": 1}}}
},
{
"type": "org.example.custom.room.config",
"content": {
"custom_config_key": "custom_config_value"
}
}
]
}
}
},
"invite": {
"!696r7674:example.com": {
"invite_state": {
"events": [
{
"sender": "@alice:example.com",
"type": "m.room.name",
"state_key": "",
"content": {"name": "My Room Name"}
},
{
"sender": "@alice:example.com",
"type": "m.room.member",
"state_key": "@bob:example.com",
"content": {"membership": "invite"}
}
]
}
}
},
"leave": {}
}
}
tags:
- Room participation

@ -1,162 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server tag API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/user/{userId}/rooms/{roomId}/tags":
get:
summary: List the tags for a room.
description: |-
List the tags set by a user on a room.
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
required: true
description: |-
The id of the user to get tags for. The access token must be
authorized to make requests for this user id.
x-example: "@alice:example.com"
- in: path
type: string
name: roomId
required: true
description: |-
The id of the room to get tags for.
x-example: "!726s6s6q:example.com"
responses:
200:
description:
The list of tags for the user for the room.
schema:
type: object
properties:
tags:
title: Tags
type: object
examples:
application/json: |-
{
"tags": {
"work": {"order": "1"},
"pinned": {}
}
}
tags:
- User data
"/user/{userId}/rooms/{roomId}/tags/{tag}":
put:
summary: Add a tag to a room.
description: |-
Add a tag to the room.
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
required: true
description: |-
The id of the user to add a tag for. The access token must be
authorized to make requests for this user id.
x-example: "@alice:example.com"
- in: path
type: string
name: roomId
required: true
description: |-
The id of the room to add a tag to.
x-example: "!726s6s6q:example.com"
- in: path
type: string
name: tag
required: true
description: |-
The tag to add.
x-example: "work"
- in: body
name: body
required: true
description: |-
Extra data for the tag, e.g. ordering.
schema:
type: object
example: |-
{"order": "1"}
responses:
200:
description:
The tag was successfully added.
schema:
type: object
examples:
application/json: |-
{}
tags:
- User data
delete:
summary: Remove a tag from the room.
description: |-
Remove a tag from the room.
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
required: true
description: |-
The id of the user to remove a tag for. The access token must be
authorized to make requests for this user id.
x-example: "@alice:example.com"
- in: path
type: string
name: roomId
required: true
description: |-
The id of the room to remove a tag from.
x-example: "!726s6s6q:example.com"
- in: path
type: string
name: tag
required: true
description: |-
The tag to remove.
x-example: "work"
responses:
200:
description:
The tag was successfully removed
schema:
type: object
examples:
application/json: |-
{}
tags:
- User data

@ -1,134 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Room Membership API for third party identifiers"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/invite":
post:
summary: Invite a user to participate in a particular room.
description: |-
.. _invite-by-third-party-id-endpoint:
*Note that there are two forms of this API, which are documented separately.
This version of the API does not require that the inviter know the Matrix
identifier of the invitee, and instead relies on third party identifiers.
The homeserver uses an identity server to perform the mapping from
third party identifier to a Matrix identifier. The other is documented in the*
`joining rooms section`_.
This API invites a user to participate in a particular room.
They do not start participating in the room until they actually join the
room.
Only users currently in a particular room can invite other users to
join that room.
If the identity server did know the Matrix user identifier for the
third party identifier, the homeserver will append a ``m.room.member``
event to the room.
If the identity server does not know a Matrix user identifier for the
passed third party identifier, the homeserver will issue an invitation
which can be accepted upon providing proof of ownership of the third
party identifier. This is achieved by the identity server generating a
token, which it gives to the inviting homeserver. The homeserver will
add an ``m.room.third_party_invite`` event into the graph for the room,
containing that token.
When the invitee binds the invited third party identifier to a Matrix
user ID, the identity server will give the user a list of pending
invitations, each containing:
- The room ID to which they were invited
- The token given to the homeserver
- A signature of the token, signed with the identity server's private key
- The matrix user ID who invited them to the room
If a token is requested from the identity server, the homeserver will
append a ``m.room.third_party_invite`` event to the room.
.. _joining rooms section: `invite-by-user-id-endpoint`_
security:
- accessToken: []
parameters:
- in: path
type: string
name: roomId
description: The room identifier (not alias) to which to invite the user.
required: true
x-example: "!d41d8cd:matrix.org"
- in: body
name: body
required: true
schema:
type: object
example: |-
{
"id_server": "matrix.org",
"medium": "email",
"address": "cheeky@monkey.com"
}
properties:
id_server:
type: string
description: The hostname+port of the identity server which should be used for third party identifier lookups.
medium:
type: string
# TODO: Link to identity service spec when it eixsts
description: The kind of address being passed in the address field, for example ``email``.
address:
type: string
description: The invitee's third party identifier.
required: ["id_server", "medium", "address"]
responses:
200:
description: The user has been invited to join the room.
examples:
application/json: |-
{}
schema:
type: object
403:
description: |-
You do not have permission to invite the user to the room. A meaningful ``errcode`` and description error text will be returned. Example reasons for rejections are:
- The invitee has been banned from the room.
- The invitee is already a member of the room.
- The inviter is not currently in the room.
- The inviter's power level is insufficient to invite users to the room.
examples:
application/json: |-
{"errcode": "M_FORBIDDEN", "error": "@cheeky_monkey:matrix.org is banned from the room"}
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Room membership

@ -1,87 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Typing API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/rooms/{roomId}/typing/{userId}":
put:
summary: Informs the server that the user has started or stopped typing.
description: |-
This tells the server that the user is typing for the next N
milliseconds where N is the value specified in the ``timeout`` key.
Alternatively, if ``typing`` is ``false``, it tells the server that the
user has stopped typing.
security:
- accessToken: []
parameters:
- in: path
type: string
name: userId
description: The user who has started to type.
required: true
x-example: "@alice:example.com"
- in: path
type: string
name: roomId
description: The room in which the user is typing.
required: true
x-example: "!wefh3sfukhs:example.com"
- in: body
name: typingState
description: The current typing state.
required: true
schema:
type: object
example: |-
{
"typing": true,
"timeout": 30000
}
properties:
typing:
type: boolean
description: |-
Whether the user is typing or not. If ``false``, the ``timeout``
key can be omitted.
timeout:
type: integer
description: The length of time in milliseconds to mark this user as typing.
required: ["typing"]
responses:
200:
description: The new typing state was set.
examples:
application/json: |-
{}
schema:
type: object # empty json object
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- Room participation

@ -1,54 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Versions API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client
produces:
- application/json
paths:
"/versions":
get:
summary: Gets the versions of the specification supported by the server.
description: |-
Gets the versions of the specification supported by the server.
Values will take the form ``rX.Y.Z``.
Only the latest ``Z`` value will be reported for each supported ``X.Y`` value.
i.e. if the server implements ``r0.0.0``, ``r0.0.1``, and ``r1.2.0``, it will report ``r0.0.1`` and ``r1.2.0``.
responses:
200:
description: The versions supported by the server.
examples:
application/json: |-
{
"versions": ["r0.0.1"]
}
schema:
type: object
properties:
versions:
type: array
description: The supported versions.
items:
type: string
description: The supported versions
tags:
- Server administration

@ -1,78 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Client-Server Voice over IP API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/client/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
securityDefinitions:
$ref: definitions/security.yaml
paths:
"/voip/turnServer":
get:
summary: Obtain TURN server credentials.
description: |-
This API provides credentials for the client to use when initiating
calls.
security:
- accessToken: []
responses:
200:
description: The TURN server credentials.
examples:
application/json: |-
{
"username":"1443779631:@user:example.com",
"password":"JlKfBy1QwLrO20385QyAtEyIv0=",
"uris":[
"turn:turn.example.com:3478?transport=udp",
"turn:10.20.30.40:3478?transport=tcp",
"turns:10.20.30.40:443?transport=tcp"
],
"ttl":86400
}
schema:
type: object
properties:
username:
type: string
description: |-
The username to use.
password:
type: string
description: |-
The password to use.
uris:
type: array
items:
type: string
description: A list of TURN URIs
ttl:
type: integer
description: The time-to-live in seconds
required: ["username", "password", "uris", "ttl"]
429:
description: This request was rate-limited.
schema:
"$ref": "definitions/error.yaml"
tags:
- VOIP

@ -1,38 +0,0 @@
// Backbone.js 0.9.2
// (c) 2010-2012 Jeremy Ashkenas, DocumentCloud Inc.
// Backbone may be freely distributed under the MIT license.
// For all details and documentation:
// http://backbonejs.org
(function(){var l=this,y=l.Backbone,z=Array.prototype.slice,A=Array.prototype.splice,g;g="undefined"!==typeof exports?exports:l.Backbone={};g.VERSION="0.9.2";var f=l._;!f&&"undefined"!==typeof require&&(f=require("underscore"));var i=l.jQuery||l.Zepto||l.ender;g.setDomLibrary=function(a){i=a};g.noConflict=function(){l.Backbone=y;return this};g.emulateHTTP=!1;g.emulateJSON=!1;var p=/\s+/,k=g.Events={on:function(a,b,c){var d,e,f,g,j;if(!b)return this;a=a.split(p);for(d=this._callbacks||(this._callbacks=
{});e=a.shift();)f=(j=d[e])?j.tail:{},f.next=g={},f.context=c,f.callback=b,d[e]={tail:g,next:j?j.next:f};return this},off:function(a,b,c){var d,e,h,g,j,q;if(e=this._callbacks){if(!a&&!b&&!c)return delete this._callbacks,this;for(a=a?a.split(p):f.keys(e);d=a.shift();)if(h=e[d],delete e[d],h&&(b||c))for(g=h.tail;(h=h.next)!==g;)if(j=h.callback,q=h.context,b&&j!==b||c&&q!==c)this.on(d,j,q);return this}},trigger:function(a){var b,c,d,e,f,g;if(!(d=this._callbacks))return this;f=d.all;a=a.split(p);for(g=
z.call(arguments,1);b=a.shift();){if(c=d[b])for(e=c.tail;(c=c.next)!==e;)c.callback.apply(c.context||this,g);if(c=f){e=c.tail;for(b=[b].concat(g);(c=c.next)!==e;)c.callback.apply(c.context||this,b)}}return this}};k.bind=k.on;k.unbind=k.off;var o=g.Model=function(a,b){var c;a||(a={});b&&b.parse&&(a=this.parse(a));if(c=n(this,"defaults"))a=f.extend({},c,a);b&&b.collection&&(this.collection=b.collection);this.attributes={};this._escapedAttributes={};this.cid=f.uniqueId("c");this.changed={};this._silent=
{};this._pending={};this.set(a,{silent:!0});this.changed={};this._silent={};this._pending={};this._previousAttributes=f.clone(this.attributes);this.initialize.apply(this,arguments)};f.extend(o.prototype,k,{changed:null,_silent:null,_pending:null,idAttribute:"id",initialize:function(){},toJSON:function(){return f.clone(this.attributes)},get:function(a){return this.attributes[a]},escape:function(a){var b;if(b=this._escapedAttributes[a])return b;b=this.get(a);return this._escapedAttributes[a]=f.escape(null==
b?"":""+b)},has:function(a){return null!=this.get(a)},set:function(a,b,c){var d,e;f.isObject(a)||null==a?(d=a,c=b):(d={},d[a]=b);c||(c={});if(!d)return this;d instanceof o&&(d=d.attributes);if(c.unset)for(e in d)d[e]=void 0;if(!this._validate(d,c))return!1;this.idAttribute in d&&(this.id=d[this.idAttribute]);var b=c.changes={},h=this.attributes,g=this._escapedAttributes,j=this._previousAttributes||{};for(e in d){a=d[e];if(!f.isEqual(h[e],a)||c.unset&&f.has(h,e))delete g[e],(c.silent?this._silent:
b)[e]=!0;c.unset?delete h[e]:h[e]=a;!f.isEqual(j[e],a)||f.has(h,e)!=f.has(j,e)?(this.changed[e]=a,c.silent||(this._pending[e]=!0)):(delete this.changed[e],delete this._pending[e])}c.silent||this.change(c);return this},unset:function(a,b){(b||(b={})).unset=!0;return this.set(a,null,b)},clear:function(a){(a||(a={})).unset=!0;return this.set(f.clone(this.attributes),a)},fetch:function(a){var a=a?f.clone(a):{},b=this,c=a.success;a.success=function(d,e,f){if(!b.set(b.parse(d,f),a))return!1;c&&c(b,d)};
a.error=g.wrapError(a.error,b,a);return(this.sync||g.sync).call(this,"read",this,a)},save:function(a,b,c){var d,e;f.isObject(a)||null==a?(d=a,c=b):(d={},d[a]=b);c=c?f.clone(c):{};if(c.wait){if(!this._validate(d,c))return!1;e=f.clone(this.attributes)}a=f.extend({},c,{silent:!0});if(d&&!this.set(d,c.wait?a:c))return!1;var h=this,i=c.success;c.success=function(a,b,e){b=h.parse(a,e);if(c.wait){delete c.wait;b=f.extend(d||{},b)}if(!h.set(b,c))return false;i?i(h,a):h.trigger("sync",h,a,c)};c.error=g.wrapError(c.error,
h,c);b=this.isNew()?"create":"update";b=(this.sync||g.sync).call(this,b,this,c);c.wait&&this.set(e,a);return b},destroy:function(a){var a=a?f.clone(a):{},b=this,c=a.success,d=function(){b.trigger("destroy",b,b.collection,a)};if(this.isNew())return d(),!1;a.success=function(e){a.wait&&d();c?c(b,e):b.trigger("sync",b,e,a)};a.error=g.wrapError(a.error,b,a);var e=(this.sync||g.sync).call(this,"delete",this,a);a.wait||d();return e},url:function(){var a=n(this,"urlRoot")||n(this.collection,"url")||t();
return this.isNew()?a:a+("/"==a.charAt(a.length-1)?"":"/")+encodeURIComponent(this.id)},parse:function(a){return a},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return null==this.id},change:function(a){a||(a={});var b=this._changing;this._changing=!0;for(var c in this._silent)this._pending[c]=!0;var d=f.extend({},a.changes,this._silent);this._silent={};for(c in d)this.trigger("change:"+c,this,this.get(c),a);if(b)return this;for(;!f.isEmpty(this._pending);){this._pending=
{};this.trigger("change",this,a);for(c in this.changed)!this._pending[c]&&!this._silent[c]&&delete this.changed[c];this._previousAttributes=f.clone(this.attributes)}this._changing=!1;return this},hasChanged:function(a){return!arguments.length?!f.isEmpty(this.changed):f.has(this.changed,a)},changedAttributes:function(a){if(!a)return this.hasChanged()?f.clone(this.changed):!1;var b,c=!1,d=this._previousAttributes,e;for(e in a)if(!f.isEqual(d[e],b=a[e]))(c||(c={}))[e]=b;return c},previous:function(a){return!arguments.length||
!this._previousAttributes?null:this._previousAttributes[a]},previousAttributes:function(){return f.clone(this._previousAttributes)},isValid:function(){return!this.validate(this.attributes)},_validate:function(a,b){if(b.silent||!this.validate)return!0;var a=f.extend({},this.attributes,a),c=this.validate(a,b);if(!c)return!0;b&&b.error?b.error(this,c,b):this.trigger("error",this,c,b);return!1}});var r=g.Collection=function(a,b){b||(b={});b.model&&(this.model=b.model);b.comparator&&(this.comparator=b.comparator);
this._reset();this.initialize.apply(this,arguments);a&&this.reset(a,{silent:!0,parse:b.parse})};f.extend(r.prototype,k,{model:o,initialize:function(){},toJSON:function(a){return this.map(function(b){return b.toJSON(a)})},add:function(a,b){var c,d,e,g,i,j={},k={},l=[];b||(b={});a=f.isArray(a)?a.slice():[a];c=0;for(d=a.length;c<d;c++){if(!(e=a[c]=this._prepareModel(a[c],b)))throw Error("Can't add an invalid model to a collection");g=e.cid;i=e.id;j[g]||this._byCid[g]||null!=i&&(k[i]||this._byId[i])?
l.push(c):j[g]=k[i]=e}for(c=l.length;c--;)a.splice(l[c],1);c=0;for(d=a.length;c<d;c++)(e=a[c]).on("all",this._onModelEvent,this),this._byCid[e.cid]=e,null!=e.id&&(this._byId[e.id]=e);this.length+=d;A.apply(this.models,[null!=b.at?b.at:this.models.length,0].concat(a));this.comparator&&this.sort({silent:!0});if(b.silent)return this;c=0;for(d=this.models.length;c<d;c++)if(j[(e=this.models[c]).cid])b.index=c,e.trigger("add",e,this,b);return this},remove:function(a,b){var c,d,e,g;b||(b={});a=f.isArray(a)?
a.slice():[a];c=0;for(d=a.length;c<d;c++)if(g=this.getByCid(a[c])||this.get(a[c]))delete this._byId[g.id],delete this._byCid[g.cid],e=this.indexOf(g),this.models.splice(e,1),this.length--,b.silent||(b.index=e,g.trigger("remove",g,this,b)),this._removeReference(g);return this},push:function(a,b){a=this._prepareModel(a,b);this.add(a,b);return a},pop:function(a){var b=this.at(this.length-1);this.remove(b,a);return b},unshift:function(a,b){a=this._prepareModel(a,b);this.add(a,f.extend({at:0},b));return a},
shift:function(a){var b=this.at(0);this.remove(b,a);return b},get:function(a){return null==a?void 0:this._byId[null!=a.id?a.id:a]},getByCid:function(a){return a&&this._byCid[a.cid||a]},at:function(a){return this.models[a]},where:function(a){return f.isEmpty(a)?[]:this.filter(function(b){for(var c in a)if(a[c]!==b.get(c))return!1;return!0})},sort:function(a){a||(a={});if(!this.comparator)throw Error("Cannot sort a set without a comparator");var b=f.bind(this.comparator,this);1==this.comparator.length?
this.models=this.sortBy(b):this.models.sort(b);a.silent||this.trigger("reset",this,a);return this},pluck:function(a){return f.map(this.models,function(b){return b.get(a)})},reset:function(a,b){a||(a=[]);b||(b={});for(var c=0,d=this.models.length;c<d;c++)this._removeReference(this.models[c]);this._reset();this.add(a,f.extend({silent:!0},b));b.silent||this.trigger("reset",this,b);return this},fetch:function(a){a=a?f.clone(a):{};void 0===a.parse&&(a.parse=!0);var b=this,c=a.success;a.success=function(d,
e,f){b[a.add?"add":"reset"](b.parse(d,f),a);c&&c(b,d)};a.error=g.wrapError(a.error,b,a);return(this.sync||g.sync).call(this,"read",this,a)},create:function(a,b){var c=this,b=b?f.clone(b):{},a=this._prepareModel(a,b);if(!a)return!1;b.wait||c.add(a,b);var d=b.success;b.success=function(e,f){b.wait&&c.add(e,b);d?d(e,f):e.trigger("sync",a,f,b)};a.save(null,b);return a},parse:function(a){return a},chain:function(){return f(this.models).chain()},_reset:function(){this.length=0;this.models=[];this._byId=
{};this._byCid={}},_prepareModel:function(a,b){b||(b={});a instanceof o?a.collection||(a.collection=this):(b.collection=this,a=new this.model(a,b),a._validate(a.attributes,b)||(a=!1));return a},_removeReference:function(a){this==a.collection&&delete a.collection;a.off("all",this._onModelEvent,this)},_onModelEvent:function(a,b,c,d){("add"==a||"remove"==a)&&c!=this||("destroy"==a&&this.remove(b,d),b&&a==="change:"+b.idAttribute&&(delete this._byId[b.previous(b.idAttribute)],this._byId[b.id]=b),this.trigger.apply(this,
arguments))}});f.each("forEach,each,map,reduce,reduceRight,find,detect,filter,select,reject,every,all,some,any,include,contains,invoke,max,min,sortBy,sortedIndex,toArray,size,first,initial,rest,last,without,indexOf,shuffle,lastIndexOf,isEmpty,groupBy".split(","),function(a){r.prototype[a]=function(){return f[a].apply(f,[this.models].concat(f.toArray(arguments)))}});var u=g.Router=function(a){a||(a={});a.routes&&(this.routes=a.routes);this._bindRoutes();this.initialize.apply(this,arguments)},B=/:\w+/g,
C=/\*\w+/g,D=/[-[\]{}()+?.,\\^$|#\s]/g;f.extend(u.prototype,k,{initialize:function(){},route:function(a,b,c){g.history||(g.history=new m);f.isRegExp(a)||(a=this._routeToRegExp(a));c||(c=this[b]);g.history.route(a,f.bind(function(d){d=this._extractParameters(a,d);c&&c.apply(this,d);this.trigger.apply(this,["route:"+b].concat(d));g.history.trigger("route",this,b,d)},this));return this},navigate:function(a,b){g.history.navigate(a,b)},_bindRoutes:function(){if(this.routes){var a=[],b;for(b in this.routes)a.unshift([b,
this.routes[b]]);b=0;for(var c=a.length;b<c;b++)this.route(a[b][0],a[b][1],this[a[b][1]])}},_routeToRegExp:function(a){a=a.replace(D,"\\$&").replace(B,"([^/]+)").replace(C,"(.*?)");return RegExp("^"+a+"$")},_extractParameters:function(a,b){return a.exec(b).slice(1)}});var m=g.History=function(){this.handlers=[];f.bindAll(this,"checkUrl")},s=/^[#\/]/,E=/msie [\w.]+/;m.started=!1;f.extend(m.prototype,k,{interval:50,getHash:function(a){return(a=(a?a.location:window.location).href.match(/#(.*)$/))?a[1]:
""},getFragment:function(a,b){if(null==a)if(this._hasPushState||b){var a=window.location.pathname,c=window.location.search;c&&(a+=c)}else a=this.getHash();a.indexOf(this.options.root)||(a=a.substr(this.options.root.length));return a.replace(s,"")},start:function(a){if(m.started)throw Error("Backbone.history has already been started");m.started=!0;this.options=f.extend({},{root:"/"},this.options,a);this._wantsHashChange=!1!==this.options.hashChange;this._wantsPushState=!!this.options.pushState;this._hasPushState=
!(!this.options.pushState||!window.history||!window.history.pushState);var a=this.getFragment(),b=document.documentMode;if(b=E.exec(navigator.userAgent.toLowerCase())&&(!b||7>=b))this.iframe=i('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow,this.navigate(a);this._hasPushState?i(window).bind("popstate",this.checkUrl):this._wantsHashChange&&"onhashchange"in window&&!b?i(window).bind("hashchange",this.checkUrl):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,
this.interval));this.fragment=a;a=window.location;b=a.pathname==this.options.root;if(this._wantsHashChange&&this._wantsPushState&&!this._hasPushState&&!b)return this.fragment=this.getFragment(null,!0),window.location.replace(this.options.root+"#"+this.fragment),!0;this._wantsPushState&&this._hasPushState&&b&&a.hash&&(this.fragment=this.getHash().replace(s,""),window.history.replaceState({},document.title,a.protocol+"//"+a.host+this.options.root+this.fragment));if(!this.options.silent)return this.loadUrl()},
stop:function(){i(window).unbind("popstate",this.checkUrl).unbind("hashchange",this.checkUrl);clearInterval(this._checkUrlInterval);m.started=!1},route:function(a,b){this.handlers.unshift({route:a,callback:b})},checkUrl:function(){var a=this.getFragment();a==this.fragment&&this.iframe&&(a=this.getFragment(this.getHash(this.iframe)));if(a==this.fragment)return!1;this.iframe&&this.navigate(a);this.loadUrl()||this.loadUrl(this.getHash())},loadUrl:function(a){var b=this.fragment=this.getFragment(a);return f.any(this.handlers,
function(a){if(a.route.test(b))return a.callback(b),!0})},navigate:function(a,b){if(!m.started)return!1;if(!b||!0===b)b={trigger:b};var c=(a||"").replace(s,"");this.fragment!=c&&(this._hasPushState?(0!=c.indexOf(this.options.root)&&(c=this.options.root+c),this.fragment=c,window.history[b.replace?"replaceState":"pushState"]({},document.title,c)):this._wantsHashChange?(this.fragment=c,this._updateHash(window.location,c,b.replace),this.iframe&&c!=this.getFragment(this.getHash(this.iframe))&&(b.replace||
this.iframe.document.open().close(),this._updateHash(this.iframe.location,c,b.replace))):window.location.assign(this.options.root+a),b.trigger&&this.loadUrl(a))},_updateHash:function(a,b,c){c?a.replace(a.toString().replace(/(javascript:|#).*$/,"")+"#"+b):a.hash=b}});var v=g.View=function(a){this.cid=f.uniqueId("view");this._configure(a||{});this._ensureElement();this.initialize.apply(this,arguments);this.delegateEvents()},F=/^(\S+)\s*(.*)$/,w="model,collection,el,id,attributes,className,tagName".split(",");
f.extend(v.prototype,k,{tagName:"div",$:function(a){return this.$el.find(a)},initialize:function(){},render:function(){return this},remove:function(){this.$el.remove();return this},make:function(a,b,c){a=document.createElement(a);b&&i(a).attr(b);c&&i(a).html(c);return a},setElement:function(a,b){this.$el&&this.undelegateEvents();this.$el=a instanceof i?a:i(a);this.el=this.$el[0];!1!==b&&this.delegateEvents();return this},delegateEvents:function(a){if(a||(a=n(this,"events"))){this.undelegateEvents();
for(var b in a){var c=a[b];f.isFunction(c)||(c=this[a[b]]);if(!c)throw Error('Method "'+a[b]+'" does not exist');var d=b.match(F),e=d[1],d=d[2],c=f.bind(c,this),e=e+(".delegateEvents"+this.cid);""===d?this.$el.bind(e,c):this.$el.delegate(d,e,c)}}},undelegateEvents:function(){this.$el.unbind(".delegateEvents"+this.cid)},_configure:function(a){this.options&&(a=f.extend({},this.options,a));for(var b=0,c=w.length;b<c;b++){var d=w[b];a[d]&&(this[d]=a[d])}this.options=a},_ensureElement:function(){if(this.el)this.setElement(this.el,
!1);else{var a=n(this,"attributes")||{};this.id&&(a.id=this.id);this.className&&(a["class"]=this.className);this.setElement(this.make(this.tagName,a),!1)}}});o.extend=r.extend=u.extend=v.extend=function(a,b){var c=G(this,a,b);c.extend=this.extend;return c};var H={create:"POST",update:"PUT","delete":"DELETE",read:"GET"};g.sync=function(a,b,c){var d=H[a];c||(c={});var e={type:d,dataType:"json"};c.url||(e.url=n(b,"url")||t());if(!c.data&&b&&("create"==a||"update"==a))e.contentType="application/json",
e.data=JSON.stringify(b.toJSON());g.emulateJSON&&(e.contentType="application/x-www-form-urlencoded",e.data=e.data?{model:e.data}:{});if(g.emulateHTTP&&("PUT"===d||"DELETE"===d))g.emulateJSON&&(e.data._method=d),e.type="POST",e.beforeSend=function(a){a.setRequestHeader("X-HTTP-Method-Override",d)};"GET"!==e.type&&!g.emulateJSON&&(e.processData=!1);return i.ajax(f.extend(e,c))};g.wrapError=function(a,b,c){return function(d,e){e=d===b?e:d;a?a(b,e,c):b.trigger("error",b,e,c)}};var x=function(){},G=function(a,
b,c){var d;d=b&&b.hasOwnProperty("constructor")?b.constructor:function(){a.apply(this,arguments)};f.extend(d,a);x.prototype=a.prototype;d.prototype=new x;b&&f.extend(d.prototype,b);c&&f.extend(d,c);d.prototype.constructor=d;d.__super__=a.prototype;return d},n=function(a,b){return!a||!a[b]?null:f.isFunction(a[b])?a[b]():a[b]},t=function(){throw Error('A "url" property or function must be specified');}}).call(this);

@ -1,16 +0,0 @@
/* latin */
@font-face {
font-family: 'Droid Sans';
font-style: normal;
font-weight: 400;
src: local('Droid Sans'), local('DroidSans'), url(http://fonts.gstatic.com/s/droidsans/v5/s-BiyweUPV0v-yRb-cjciPk_vArhqVIZ0nv9q090hN8.woff2), format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* latin */
@font-face {
font-family: 'Droid Sans';
font-style: normal;
font-weight: 700;
src: local('Droid Sans Bold'), local('DroidSans-Bold'), url(http://fonts.gstatic.com/s/droidsans/v5/EFpQQyG9GqCrobXxL-KRMYWiMMZ7xLd792ULpGE4W_Y.woff2), format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,18 +0,0 @@
/*
* jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010
* http://benalman.com/projects/jquery-bbq-plugin/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
(function($,p){var i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return function(){return G.apply(this,F.concat(m.call(arguments)))}}function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&&E(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.noEscape(",/");$.deparam=l=function(I,F){var H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," ").split("&"),function(L,Q){var K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M<N?O[P]||(R[M+1]&&isNaN(R[M+1])?{}:[]):J}}else{if($.isArray(H[P])){H[P].push(J)}else{if(H[P]!==i){H[P]=[H[P],J]}else{H[P]=J}}}}else{if(P){H[P]=F?i:""}}});return H};function z(H,F,G){if(F===i||typeof F==="boolean"){G=F;F=a[H?D:A]()}else{F=E(F)?F.replace(H?w:x,""):F}return l(F,G)}l[A]=B(z,0);l[D]=v=B(z,1);$[y]||($[y]=function(F){return $.extend(C,F)})({a:k,base:k,iframe:t,img:t,input:t,form:"action",link:k,script:t});j=$[y];function s(I,G,H,F){if(!E(H)&&typeof H!=="object"){F=H;H=G;G=i}return this.each(function(){var L=$(this),J=G||j()[(this.nodeName||"").toLowerCase()]||"",K=J&&L.attr(J)||"";L.attr(J,a[I](K,H,F))})}$.fn[A]=B(s,A);$.fn[D]=B(s,D);b.pushState=q=function(I,F){if(E(I)&&/^#/.test(I)&&F===i){F=2}var H=I!==i,G=c(p[g][k],H?I:{},H?F:2);p[g][k]=G+(/#/.test(G)?"":"#")};b.getState=u=function(F,G){return F===i||typeof F==="boolean"?v(F):v(G)[F]};b.removeState=function(F){var G={};if(F!==i){G=u();$.each($.isArray(F)?F:arguments,function(I,H){delete G[H]})}q(G,2)};e[d]=$.extend(e[d],{add:function(F){var H;function G(J){var I=J[D]=c();J.getState=function(K,L){return K===i||typeof K==="boolean"?l(I,K):l(I,L)[K]};H.apply(this,arguments)}if($.isFunction(F)){H=F;return G}else{H=F.handler;F.handler=G}}})})(jQuery,this);
/*
* jQuery hashchange event - v1.2 - 2/11/2010
* http://benalman.com/projects/jquery-hashchange-plugin/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
(function($,i,b){var j,k=$.event.special,c="location",d="hashchange",l="href",f=$.browser,g=document.documentMode,h=f.msie&&(g===b||g<8),e="on"+d in i&&!h;function a(m){m=m||i[c][l];return m.replace(/^[^#]*#?(.*)$/,"$1")}$[d+"Delay"]=100;k[d]=$.extend(k[d],{setup:function(){if(e){return false}$(j.start)},teardown:function(){if(e){return false}$(j.stop)}});j=(function(){var m={},r,n,o,q;function p(){o=q=function(s){return s};if(h){n=$('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(jQuery,this);

@ -1 +0,0 @@
(function(b){b.fn.slideto=function(a){a=b.extend({slide_duration:"slow",highlight_duration:3E3,highlight:true,highlight_color:"#FFFF99"},a);return this.each(function(){obj=b(this);b("body").animate({scrollTop:obj.offset().top},a.slide_duration,function(){a.highlight&&b.ui.version&&obj.effect("highlight",{color:a.highlight_color},a.highlight_duration)})})}})(jQuery);

@ -1,8 +0,0 @@
/*
jQuery Wiggle
Author: WonderGroup, Jordan Thomas
URL: http://labs.wondergroup.com/demos/mini-ui/index.html
License: MIT (http://en.wikipedia.org/wiki/MIT_License)
*/
jQuery.fn.wiggle=function(o){var d={speed:50,wiggles:3,travel:5,callback:null};var o=jQuery.extend(d,o);return this.each(function(){var cache=this;var wrap=jQuery(this).wrap('<div class="wiggle-wrap"></div>').css("position","relative");var calls=0;for(i=1;i<=o.wiggles;i++){jQuery(this).animate({left:"-="+o.travel},o.speed).animate({left:"+="+o.travel*2},o.speed*2).animate({left:"-="+o.travel},o.speed,function(){calls++;if(jQuery(cache).parent().hasClass('wiggle-wrap')){jQuery(cache).parent().replaceWith(cache);}
if(calls==o.wiggles&&jQuery.isFunction(o.callback)){o.callback();}});}});};

@ -1,125 +0,0 @@
/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
display: block;
}
body {
line-height: 1;
}
ol,
ul {
list-style: none;
}
blockquote,
q {
quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,211 +0,0 @@
var appName;
var popupMask;
var popupDialog;
var clientId;
var realm;
function handleLogin() {
var scopes = [];
if(window.swaggerUi.api.authSchemes
&& window.swaggerUi.api.authSchemes.oauth2
&& window.swaggerUi.api.authSchemes.oauth2.scopes) {
scopes = window.swaggerUi.api.authSchemes.oauth2.scopes;
}
if(window.swaggerUi.api
&& window.swaggerUi.api.info) {
appName = window.swaggerUi.api.info.title;
}
if(popupDialog.length > 0)
popupDialog = popupDialog.last();
else {
popupDialog = $(
[
'<div class="api-popup-dialog">',
'<div class="api-popup-title">Select OAuth2.0 Scopes</div>',
'<div class="api-popup-content">',
'<p>Scopes are used to grant an application different levels of access to data on behalf of the end user. Each API may declare one or more scopes.',
'<a href="#">Learn how to use</a>',
'</p>',
'<p><strong>' + appName + '</strong> API requires the following scopes. Select which ones you want to grant to Swagger UI.</p>',
'<ul class="api-popup-scopes">',
'</ul>',
'<p class="error-msg"></p>',
'<div class="api-popup-actions"><button class="api-popup-authbtn api-button green" type="button">Authorize</button><button class="api-popup-cancel api-button gray" type="button">Cancel</button></div>',
'</div>',
'</div>'].join(''));
$(document.body).append(popupDialog);
popup = popupDialog.find('ul.api-popup-scopes').empty();
for (i = 0; i < scopes.length; i ++) {
scope = scopes[i];
str = '<li><input type="checkbox" id="scope_' + i + '" scope="' + scope.scope + '"/>' + '<label for="scope_' + i + '">' + scope.scope;
if (scope.description) {
str += '<br/><span class="api-scope-desc">' + scope.description + '</span>';
}
str += '</label></li>';
popup.append(str);
}
}
var $win = $(window),
dw = $win.width(),
dh = $win.height(),
st = $win.scrollTop(),
dlgWd = popupDialog.outerWidth(),
dlgHt = popupDialog.outerHeight(),
top = (dh -dlgHt)/2 + st,
left = (dw - dlgWd)/2;
popupDialog.css({
top: (top < 0? 0 : top) + 'px',
left: (left < 0? 0 : left) + 'px'
});
popupDialog.find('button.api-popup-cancel').click(function() {
popupMask.hide();
popupDialog.hide();
});
popupDialog.find('button.api-popup-authbtn').click(function() {
popupMask.hide();
popupDialog.hide();
var authSchemes = window.swaggerUi.api.authSchemes;
var host = window.location;
var redirectUrl = host.protocol + '//' + host.host + "/o2c.html";
var url = null;
var p = window.swaggerUi.api.authSchemes;
for (var key in p) {
if (p.hasOwnProperty(key)) {
var o = p[key].grantTypes;
for(var t in o) {
if(o.hasOwnProperty(t) && t === 'implicit') {
var dets = o[t];
url = dets.loginEndpoint.url + "?response_type=token";
window.swaggerUi.tokenName = dets.tokenName;
}
}
}
}
var scopes = []
var o = $('.api-popup-scopes').find('input:checked');
for(k =0; k < o.length; k++) {
scopes.push($(o[k]).attr("scope"));
}
window.enabledScopes=scopes;
url += '&redirect_uri=' + encodeURIComponent(redirectUrl);
url += '&realm=' + encodeURIComponent(realm);
url += '&client_id=' + encodeURIComponent(clientId);
url += '&scope=' + encodeURIComponent(scopes);
window.open(url);
});
popupMask.show();
popupDialog.show();
return;
}
function handleLogout() {
for(key in window.authorizations.authz){
window.authorizations.remove(key)
}
window.enabledScopes = null;
$('.api-ic.ic-on').addClass('ic-off');
$('.api-ic.ic-on').removeClass('ic-on');
// set the info box
$('.api-ic.ic-warning').addClass('ic-error');
$('.api-ic.ic-warning').removeClass('ic-warning');
}
function initOAuth(opts) {
var o = (opts||{});
var errors = [];
appName = (o.appName||errors.push("missing appName"));
popupMask = (o.popupMask||$('#api-common-mask'));
popupDialog = (o.popupDialog||$('.api-popup-dialog'));
clientId = (o.clientId||errors.push("missing client id"));
realm = (o.realm||errors.push("missing realm"));
if(errors.length > 0){
log("auth unable initialize oauth: " + errors);
return;
}
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
$('.api-ic').click(function(s) {
if($(s.target).hasClass('ic-off'))
handleLogin();
else {
handleLogout();
}
false;
});
}
function onOAuthComplete(token) {
if(token) {
if(token.error) {
var checkbox = $('input[type=checkbox],.secured')
checkbox.each(function(pos){
checkbox[pos].checked = false;
});
alert(token.error);
}
else {
var b = token[window.swaggerUi.tokenName];
if(b){
// if all roles are satisfied
var o = null;
$.each($('.auth #api_information_panel'), function(k, v) {
var children = v;
if(children && children.childNodes) {
var requiredScopes = [];
$.each((children.childNodes), function (k1, v1){
var inner = v1.innerHTML;
if(inner)
requiredScopes.push(inner);
});
var diff = [];
for(var i=0; i < requiredScopes.length; i++) {
var s = requiredScopes[i];
if(window.enabledScopes && window.enabledScopes.indexOf(s) == -1) {
diff.push(s);
}
}
if(diff.length > 0){
o = v.parentNode;
$(o.parentNode).find('.api-ic.ic-on').addClass('ic-off');
$(o.parentNode).find('.api-ic.ic-on').removeClass('ic-on');
// sorry, not all scopes are satisfied
$(o).find('.api-ic').addClass('ic-warning');
$(o).find('.api-ic').removeClass('ic-error');
}
else {
o = v.parentNode;
$(o.parentNode).find('.api-ic.ic-off').addClass('ic-on');
$(o.parentNode).find('.api-ic.ic-off').removeClass('ic-off');
// all scopes are satisfied
$(o).find('.api-ic').addClass('ic-info');
$(o).find('.api-ic').removeClass('ic-warning');
$(o).find('.api-ic').removeClass('ic-error');
}
}
});
window.authorizations.add("oauth2", new ApiKeyAuthorization("Authorization", "Bearer " + b, "header"));
}
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,32 +0,0 @@
// Underscore.js 1.3.3
// (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
// Underscore is freely distributable under the MIT license.
// Portions of Underscore are inspired or borrowed from Prototype,
// Oliver Steele's Functional, and John Resig's Micro-Templating.
// For all details and documentation:
// http://documentcloud.github.com/underscore
(function(){function r(a,c,d){if(a===c)return 0!==a||1/a==1/c;if(null==a||null==c)return a===c;a._chain&&(a=a._wrapped);c._chain&&(c=c._wrapped);if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return!1;switch(e){case "[object String]":return a==""+c;case "[object Number]":return a!=+a?c!=+c:0==a?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source==
c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if("object"!=typeof a||"object"!=typeof c)return!1;for(var f=d.length;f--;)if(d[f]==a)return!0;d.push(a);var f=0,g=!0;if("[object Array]"==e){if(f=a.length,g=f==c.length)for(;f--&&(g=f in a==f in c&&r(a[f],c[f],d)););}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return!1;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&r(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c,h)&&!f--)break;
g=!f}}d.pop();return g}var s=this,I=s._,o={},k=Array.prototype,p=Object.prototype,i=k.slice,J=k.unshift,l=p.toString,K=p.hasOwnProperty,y=k.forEach,z=k.map,A=k.reduce,B=k.reduceRight,C=k.filter,D=k.every,E=k.some,q=k.indexOf,F=k.lastIndexOf,p=Array.isArray,L=Object.keys,t=Function.prototype.bind,b=function(a){return new m(a)};"undefined"!==typeof exports?("undefined"!==typeof module&&module.exports&&(exports=module.exports=b),exports._=b):s._=b;b.VERSION="1.3.3";var j=b.each=b.forEach=function(a,
c,d){if(a!=null)if(y&&a.forEach===y)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e<f;e++){if(e in a&&c.call(d,a[e],e,a)===o)break}else for(e in a)if(b.has(a,e)&&c.call(d,a[e],e,a)===o)break};b.map=b.collect=function(a,c,b){var e=[];if(a==null)return e;if(z&&a.map===z)return a.map(c,b);j(a,function(a,g,h){e[e.length]=c.call(b,a,g,h)});if(a.length===+a.length)e.length=a.length;return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(A&&
a.reduce===A){e&&(c=b.bind(c,e));return f?a.reduce(c,d):a.reduce(c)}j(a,function(a,b,i){if(f)d=c.call(e,d,a,b,i);else{d=a;f=true}});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(B&&a.reduceRight===B){e&&(c=b.bind(c,e));return f?a.reduceRight(c,d):a.reduceRight(c)}var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect=function(a,
c,b){var e;G(a,function(a,g,h){if(c.call(b,a,g,h)){e=a;return true}});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(C&&a.filter===C)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(D&&a.every===D)return a.every(c,b);j(a,function(a,g,h){if(!(e=e&&c.call(b,
a,g,h)))return o});return!!e};var G=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(E&&a.some===E)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return o});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;if(q&&a.indexOf===q)return a.indexOf(c)!=-1;return b=G(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck=
function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a)&&a[0]===+a[0])return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a)&&a[0]===+a[0])return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b<e.computed&&
(e={value:a,computed:b})});return e.value};b.shuffle=function(a){var b=[],d;j(a,function(a,f){d=Math.floor(Math.random()*(f+1));b[f]=b[d];b[d]=a});return b};b.sortBy=function(a,c,d){var e=b.isFunction(c)?c:function(a){return a[c]};return b.pluck(b.map(a,function(a,b,c){return{value:a,criteria:e.call(d,a,b,c)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c===void 0?1:d===void 0?-1:c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};
j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a,c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){return!a?[]:b.isArray(a)||b.isArguments(a)?i.call(a):a.toArray&&b.isFunction(a.toArray)?a.toArray():b.values(a)};b.size=function(a){return b.isArray(a)?a.length:b.keys(a).length};b.first=b.head=b.take=function(a,b,d){return b!=null&&!d?i.call(a,0,b):a[0]};b.initial=function(a,b,d){return i.call(a,
0,a.length-(b==null||d?1:b))};b.last=function(a,b,d){return b!=null&&!d?i.call(a,Math.max(a.length-b,0)):a[a.length-1]};b.rest=b.tail=function(a,b,d){return i.call(a,b==null||d?1:b)};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a,c){return b.reduce(a,function(a,e){if(b.isArray(e))return a.concat(c?e:b.flatten(e));a[a.length]=e;return a},[])};b.without=function(a){return b.difference(a,i.call(arguments,1))};b.uniq=b.unique=function(a,c,d){var d=d?b.map(a,d):a,
e=[];a.length<3&&(c=true);b.reduce(d,function(d,g,h){if(c?b.last(d)!==g||!d.length:!b.include(d,g)){d.push(g);e.push(a[h])}return d},[]);return e};b.union=function(){return b.uniq(b.flatten(arguments,true))};b.intersection=b.intersect=function(a){var c=i.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1),true);return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=
i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,d){if(a==null)return-1;var e;if(d){d=b.sortedIndex(a,c);return a[d]===c?d:-1}if(q&&a.indexOf===q)return a.indexOf(c);d=0;for(e=a.length;d<e;d++)if(d in a&&a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(F&&a.lastIndexOf===F)return a.lastIndexOf(b);for(var d=a.length;d--;)if(d in a&&a[d]===b)return d;return-1};b.range=function(a,b,d){if(arguments.length<=
1){b=a||0;a=0}for(var d=arguments[2]||1,e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;){g[f++]=a;a=a+d}return g};var H=function(){};b.bind=function(a,c){var d,e;if(a.bind===t&&t)return t.apply(a,i.call(arguments,1));if(!b.isFunction(a))throw new TypeError;e=i.call(arguments,2);return d=function(){if(!(this instanceof d))return a.apply(c,e.concat(i.call(arguments)));H.prototype=a.prototype;var b=new H,g=a.apply(b,e.concat(i.call(arguments)));return Object(g)===g?g:b}};b.bindAll=function(a){var c=
i.call(arguments,1);c.length==0&&(c=b.functions(a));j(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,c){var d={};c||(c=b.identity);return function(){var e=c.apply(this,arguments);return b.has(d,e)?d[e]:d[e]=a.apply(this,arguments)}};b.delay=function(a,b){var d=i.call(arguments,2);return setTimeout(function(){return a.apply(null,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(i.call(arguments,1)))};b.throttle=function(a,c){var d,e,f,g,h,i,j=b.debounce(function(){h=
g=false},c);return function(){d=this;e=arguments;f||(f=setTimeout(function(){f=null;h&&a.apply(d,e);j()},c));g?h=true:i=a.apply(d,e);j();g=true;return i}};b.debounce=function(a,b,d){var e;return function(){var f=this,g=arguments;d&&!e&&a.apply(f,g);clearTimeout(e);e=setTimeout(function(){e=null;d||a.apply(f,g)},b)}};b.once=function(a){var b=false,d;return function(){if(b)return d;b=true;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(i.call(arguments,0));
return b.apply(this,d)}};b.compose=function(){var a=arguments;return function(){for(var b=arguments,d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=L||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&
c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.pick=function(a){var c={};j(b.flatten(i.call(arguments,1)),function(b){b in a&&(c[b]=a[b])});return c};b.defaults=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return r(a,b,[])};b.isEmpty=
function(a){if(a==null)return true;if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=p||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)};b.isArguments=function(a){return l.call(a)=="[object Arguments]"};b.isArguments(arguments)||(b.isArguments=function(a){return!(!a||!b.has(a,"callee"))});b.isFunction=function(a){return l.call(a)=="[object Function]"};
b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isFinite=function(a){return b.isNumber(a)&&isFinite(a)};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"};b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,
b){return K.call(a,b)};b.noConflict=function(){s._=I;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.escape=function(a){return(""+a).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")};b.result=function(a,c){if(a==null)return null;var d=a[c];return b.isFunction(d)?d.call(a):d};b.mixin=function(a){j(b.functions(a),function(c){M(c,b[c]=a[c])})};var N=0;b.uniqueId=
function(a){var b=N++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var u=/.^/,n={"\\":"\\","'":"'",r:"\r",n:"\n",t:"\t",u2028:"\u2028",u2029:"\u2029"},v;for(v in n)n[n[v]]=v;var O=/\\|'|\r|\n|\t|\u2028|\u2029/g,P=/\\(\\|'|r|n|t|u2028|u2029)/g,w=function(a){return a.replace(P,function(a,b){return n[b]})};b.template=function(a,c,d){d=b.defaults(d||{},b.templateSettings);a="__p+='"+a.replace(O,function(a){return"\\"+n[a]}).replace(d.escape||
u,function(a,b){return"'+\n_.escape("+w(b)+")+\n'"}).replace(d.interpolate||u,function(a,b){return"'+\n("+w(b)+")+\n'"}).replace(d.evaluate||u,function(a,b){return"';\n"+w(b)+"\n;__p+='"})+"';\n";d.variable||(a="with(obj||{}){\n"+a+"}\n");var a="var __p='';var print=function(){__p+=Array.prototype.join.call(arguments, '')};\n"+a+"return __p;\n",e=new Function(d.variable||"obj","_",a);if(c)return e(c,b);c=function(a){return e.call(this,a,b)};c.source="function("+(d.variable||"obj")+"){\n"+a+"}";return c};
b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var x=function(a,c){return c?b(a).chain():a},M=function(a,c){m.prototype[a]=function(){var a=i.call(arguments);J.call(a,this._wrapped);return x(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return x(d,
this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return x(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain=true;return this};m.prototype.value=function(){return this._wrapped}}).call(this);

@ -1,86 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Identity Service Lookup API"
version: "1.0.0"
host: localhost:8090
schemes:
- https
- http
basePath: /_matrix/identity/v1/api
produces:
- application/json
paths:
"/lookup":
get:
summary: Look up the Matrix user ID for a 3pid.
description: Look up the Matrix user ID for a 3pid.
parameters:
- in: query
type: string
name: medium
required: true
description: The literal string "email".
x-example: "email"
- in: query
type: string
name: address
required: true
description: The email address being looked up.
x-example: "louise@bobs.burgers"
responses:
200:
description:
The association for that 3pid, or the empty object if no association is known.
examples:
application/json: |-
{
"address": "louise@bobs.burgers",
"medium": "email",
"mxid": "@ears:matrix.org",
"not_before": 1428825849161,
"not_after": 4582425849161,
"ts": 1428825849161,
"signatures": {
"matrix.org": {
"ed25519:0": "ENiU2YORYUJgE6WBMitU0mppbQjidDLanAusj8XS2nVRHPu+0t42OKA/r6zV6i2MzUbNQ3c3MiLScJuSsOiVDQ"
}
}
}
schema:
type: object
properties:
address:
type: string
description: The 3pid address of the user being looked up.
medium:
type: string
description: The literal string "email".
mxid:
type: string
description: The Matrix user ID associated with the 3pid.
not_before:
type: integer
description: A unix timestamp before which the association is not known to be valid.
not_after:
type: integer
description: A unix timestamp after which the association is not known to be valid.
ts:
type: integer
description: The unix timestamp at which the association was verified.
signatures:
type: object
description: The signatures of the verifying identity service which show that the association should be trusted, if you trust the verifying identity service.

@ -1,110 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Identity Service Public Key API"
version: "1.0.0"
host: localhost:8090
schemes:
- https
- http
basePath: /_matrix/identity/v1/api
produces:
- application/json
paths:
"/pubkey/{keyId}":
get:
summary: Get a public key.
description: |-
Get the public key for the passed key ID.
parameters:
- in: path
type: string
name: keyId
required: true
description: |-
The ID of the key. This should take the form algorithm:identifier
where algorithm identifies the signing algorithm, and the identifier
is an opaque string.
x-example: "ed25519:0"
responses:
200:
description:
The public key exists.
examples:
application/json: |-
{
"public_key": "VXuGitF39UH5iRfvbIknlvlAVKgD1BsLDMvBf0pmp7c"
}
schema:
type: object
properties:
public_key:
type: string
"/pubkey/isvalid":
get:
summary: Check whether a long-term public key is valid.
description: |-
Check whether a long-term public key is valid.
parameters:
- in: query
type: string
name: public_key
required: true
description: |-
The unpadded base64-encoded public key to check.
x-example: "VXuGitF39UH5iRfvbIknlvlAVKgD1BsLDMvBf0pmp7c"
responses:
200:
description:
The validity of the public key.
examples:
application/json: |-
{
"valid": true
}
schema:
type: object
properties:
valid:
type: boolean
description: Whether the public key is recognised and is currently valid.
"/pubkey/ephemeral/isvalid":
get:
summary: Check whether a short-term public key is valid.
description: |-
Check whether a short-term public key is valid.
parameters:
- in: query
type: string
name: public_key
required: true
description: |-
The unpadded base64-encoded public key to check.
x-example: "VXuGitF39UH5iRfvbIknlvlAVKgD1BsLDMvBf0pmp7c"
responses:
200:
description:
The validity of the public key.
examples:
application/json: |-
{
"valid": true
}
schema:
type: object
properties:
valid:
type: boolean
description: Whether the public key is recognised and is currently valid.

@ -1,15 +0,0 @@
{
"name": "swagger-cli-validator",
"version": "0.0.1",
"description": "",
"main": "validator.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"nopt": "^3.0.2",
"swagger-parser": "^3.2.1"
}
}

@ -1,230 +0,0 @@
# Copyright 2016 OpenMarket Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
title: "Matrix Push Notification API"
version: "1.0.0"
host: localhost:8008
schemes:
- https
- http
basePath: /_matrix/push/%CLIENT_MAJOR_VERSION%
consumes:
- application/json
produces:
- application/json
paths:
"/notify":
post:
summary: Notify a push gateway about an event.
description: |-
This endpoint is invoked by HTTP pushers to notify a push gateway about
an event or update the number of unread notifications a user has.
In the former case it will contain selected information about the event.
In either case it may contain numeric counts of the number of unread
events of different types the user has. The counts may be sent along
with a notification about an event or by themselves.
Notifications about a particular event will normally cause the user to be
alerted in some way. It is therefore necessary to perform duplicate
suppression for such notifications using the `event_id` field to avoid
retries of this HTTP API causing duplicate alerts. The operation of
updating counts of unread notifications should be idempotent and
therefore do not require duplicate suppression.
Notifications are sent to the URL configured when the pusher is
created. This means that the HTTP path may be different depending on the
push gateway.
parameters:
- in: body
name: notification
description: Information about the push notification.
required: true
schema:
type: object
example: |-
{
"notification": {
"id": "$3957tyerfgewrf384",
"room_id": "!slw48wfj34rtnrf:example.com",
"type": "m.room.message",
"sender": "@exampleuser:matrix.org",
"sender_display_name": "Major Tom",
"room_name": "Mission Control",
"room_alias": "#exampleroom:matrix.org",
"prio": "high",
"content": {
"msgtype": "m.text",
"body": "I'm floating in a most peculiar way."
},
"counts": {
"unread" : 2,
"missed_calls": 1
},
"devices": [
{
"app_id": "org.matrix.matrixConsole.ios",
"pushkey": "V2h5IG9uIGVhcnRoIGRpZCB5b3UgZGVjb2RlIHRoaXM/",
"pushkey_ts": 12345678,
"data" : {},
"tweaks": {
"sound": "bing"
}
}
]
}
}
required: ["notification"]
properties:
notification:
type: object
title: Notification
description: Information about the push notification
required: ["devices"]
properties:
event_id:
type: string
description: |-
The Matrix event ID of the event being notified about.
This is required if the notification is about a
particular Matrix event. It may be omitted for notifications
that only contain updated badge counts. This ID can and
should be used to detect duplicate notification requests.
room_id:
type: string
description: |-
The ID of the room in which this event occurred.
Required if the notification relates to a specific
Matrix event.
type:
type: string
description: |-
The type of the event as in the event's ``type`` field.
Required if the notification relates to a specific
Matrix event.
sender:
type: string
description: |-
The sender of the event as in the corresponding event field.
Required if the notification relates to a specific
Matrix event.
sender_display_name:
type: string
description: |-
The current display name of the sender in the room in which
the event occurred.
room_name:
type: string
description: The name of the room in which the event occurred.
room_alias:
type: string
description: An alias to display for the room in which the event occurred.
user_is_target:
type: boolean
description: |-
This is true if the user receiving the notification is the
subject of a member event (i.e. the ``state_key`` of the
member event is equal to the user's Matrix ID).
prio:
type: string
enum: ["high", "low"]
description: |-
The priority of the notification. If omitted, ``high`` is
assumed. This may be used by push gateways to deliver less
time-sensitive notifications in a way that will preserve
battery power on mobile devices.
content:
type: object
title: EventContent
description: |-
The ``content`` field from the event, if present. If the
event had no content field, this field is omitted.
counts:
type: object
title: Counts
description: |-
This is a dictionary of the current number of unacknowledged
communications for the recipient user. Counts whose value is
zero are omitted.
properties:
unread:
type: integer
description: |-
The number of unread messages a user has across all of the
rooms they are a member of.
missed_calls:
type: integer
description: |-
The number of unacknowledged missed calls a user has
across all rooms of which they are a member.
devices:
type: array
title: Devices
description: |-
This is an array of devices that the notification should be sent to.
items:
type: object
title: Device
properties:
app_id:
type: string
description: |-
The app_id given when the pusher was created.
pushkey:
type: string
description: The pushkey given when the pusher was created.
pushkey_ts:
type: integer
description: |-
The unix timestamp (in seconds) when the
pushkey was last updated.
data:
type: object
title: PusherData
description: |-
A dictionary of additional pusher-specific data. For
'http' pushers, this is the data dictionary passed in at
pusher creation minus the ``url`` key.
tweaks:
type: object
title: Tweaks
description: |-
A dictionary of customisations made to the way this
notification is to be presented. These are added by push rules.
responses:
200:
description: A list of rejected push keys.
examples:
application/json: |-
{
"rejected": [ "V2h5IG9uIGVhcnRoIGRpZCB5b3UgZGVjb2RlIHRoaXM/" ]
}
schema:
type: object # empty json object
properties:
rejected:
type: array
description: |-
A list of all pushkeys given in the notification request that
are not valid. These could have been rejected by an upstream
gateway because they have expired or have never been valid.
Homeservers must cease sending notification requests for these
pushkeys and remove the associated pushers. It may not
necessarily be the notification in the request that failed:
it could be that a previous notification to the same pushkey
failed.
items:
type: string
description: A pushkey

@ -1,71 +0,0 @@
"use strict";
var fs = require("fs");
var nopt = require("nopt");
var parser = require("swagger-parser");
var path = require("path");
var opts = nopt({
"help": Boolean,
"schema": path
}, {
"h": "--help",
"s": "--schema"
});
if (opts.help) {
console.log(
"Use swagger-parser to validate against Swagger 2.0\n"+
"Usage:\n"+
" node validator.js -s <schema_file_or_folder>"
);
process.exit(0);
}
if (!opts.schema) {
console.error("No [s]chema specified.");
process.exit(1);
}
var errFn = function(err, api) {
if (!err) {
return;
}
console.error(err);
process.exit(1);
};
var isDir = fs.lstatSync(opts.schema).isDirectory()
if (isDir) {
console.log("Checking directory %s for .yaml files...", opts.schema);
fs.readdir(opts.schema, function(err, files) {
if (err) {
console.error(err);
process.exit(1);
}
files.forEach(function(f) {
var suffix = ".yaml";
if (f.indexOf(suffix, f.length - suffix.length) > 0) {
parser.validate(path.join(opts.schema, f), function(err, api, metadata) {
if (!err) {
console.log("%s is valid.", f);
}
else {
console.error("%s is not valid.", f);
errFn(err, api, metadata);
}
});
}
});
});
}
else{
parser.validate(opts.schema, function(err, api) {
if (!err) {
console.log("%s is valid", opts.schema);
}
else {
errFn(err, api);
}
});
};

@ -1,343 +0,0 @@
Registration and Login
----------------------
Clients must register with a homeserver in order to use Matrix. After
registering, the client will be given an access token which must be used in ALL
requests to that homeserver as a query parameter 'access_token'.
If the client has already registered, they need to be able to login to their
account. The homeserver may provide many different ways of logging in, such as
user/password auth, login via a social network (OAuth2), login by confirming a
token sent to their email address, etc. This specification does not define how
homeservers should authorise their users who want to login to their existing
accounts, but instead defines the standard interface which implementations
should follow so that ANY client can login to ANY homeserver. Clients login
using the |login|_ API. Clients register using the |register|_ API.
Registration follows the same general procedure as login, but the path requests
are sent to and the details contained in them are different.
In both registration and login cases, the process takes the form of one or more
stages, where at each stage the client submits a set of data for a given stage
type and awaits a response from the server, which will either be a final
success or a request to perform an additional stage. This exchange continues
until the final success.
In order to determine up-front what the server's requirements are, the client
can request from the server a complete description of all of its acceptable
flows of the registration or login process. It can then inspect the list of
returned flows looking for one for which it believes it can complete all of the
required stages, and perform it. As each homeserver may have different ways of
logging in, the client needs to know how they should login. All distinct login
stages MUST have a corresponding ``type``. A ``type`` is a namespaced string
which details the mechanism for logging in.
A client may be able to login via multiple valid login flows, and should choose
a single flow when logging in. A flow is a series of login stages. The home
server MUST respond with all the valid login flows when requested by a simple
``GET`` request directly to the ``/login`` or ``/register`` paths::
{
"flows": [
{
"type": "<login type1a>",
"stages": [ "<login type 1a>", "<login type 1b>" ]
},
{
"type": "<login type2a>",
"stages": [ "<login type 2a>", "<login type 2b>" ]
},
{
"type": "<login type3>"
}
]
}
The client can now select which flow it wishes to use, and begin making
``POST`` requests to the ``/login`` or ``/register`` paths with JSON body
content containing the name of the stage as the ``type`` key, along with
whatever additional parameters are required for that login or registration type
(see below). After the flow is completed, the client's fully-qualified user
ID and a new access token MUST be returned::
{
"user_id": "@user:matrix.org",
"access_token": "abcdef0123456789"
}
The ``user_id`` key is particularly useful if the homeserver wishes to support
localpart entry of usernames (e.g. "user" rather than "@user:matrix.org"), as
the client may not be able to determine its ``user_id`` in this case.
If the flow has multiple stages to it, the homeserver may wish to create a
session to store context between requests. If a homeserver responds with a
``session`` key to a request, clients MUST submit it in subsequent requests
until the flow is completed::
{
"session": "<session id>"
}
This specification defines the following login types:
- ``m.login.password``
- ``m.login.oauth2``
- ``m.login.email.code``
- ``m.login.email.url``
- ``m.login.email.identity``
Password-based
~~~~~~~~~~~~~~
:Type:
``m.login.password``
:Description:
Login is supported via a username and password.
To respond to this type, reply with::
{
"type": "m.login.password",
"user": "<user_id or user localpart>",
"password": "<password>"
}
The homeserver MUST respond with either new credentials, the next stage of the
login process, or a standard error response.
Captcha-based
~~~~~~~~~~~~~
:Type:
``m.login.recaptcha``
:Description:
Login is supported by responding to a captcha (in the case of the Synapse
implementation, Google's Recaptcha library is used).
To respond to this type, reply with::
{
"type": "m.login.recaptcha",
"challenge": "<challenge token>",
"response": "<user-entered text>"
}
.. NOTE::
In Synapse, the Recaptcha parameters can be obtained in Javascript by calling:
Recaptcha.get_challenge();
Recaptcha.get_response();
The homeserver MUST respond with either new credentials, the next stage of the
login process, or a standard error response.
OAuth2-based
~~~~~~~~~~~~
:Type:
``m.login.oauth2``
:Description:
Login is supported via OAuth2 URLs. This login consists of multiple requests.
To respond to this type, reply with::
{
"type": "m.login.oauth2",
"user": "<user_id or user localpart>"
}
The server MUST respond with::
{
"uri": <Authorization Request URI OR service selection URI>
}
The homeserver acts as a 'confidential' client for the purposes of OAuth2. If
the uri is a ``sevice selection URI``, it MUST point to a webpage which prompts
the user to choose which service to authorize with. On selection of a service,
this MUST link through to an ``Authorization Request URI``. If there is only 1
service which the homeserver accepts when logging in, this indirection can be
skipped and the "uri" key can be the ``Authorization Request URI``.
The client then visits the ``Authorization Request URI``, which then shows the
OAuth2 Allow/Deny prompt. Hitting 'Allow' returns the ``redirect URI`` with the
auth code. Homeservers can choose any path for the ``redirect URI``. The
client should visit the ``redirect URI``, which will then finish the OAuth2
login process, granting the homeserver an access token for the chosen service.
When the homeserver gets this access token, it verifies that the cilent has
authorised with the 3rd party, and can now complete the login. The OAuth2
``redirect URI`` (with auth code) MUST respond with either new credentials, the
next stage of the login process, or a standard error response.
For example, if a homeserver accepts OAuth2 from Google, it would return the
Authorization Request URI for Google::
{
"uri": "https://accounts.google.com/o/oauth2/auth?response_type=code&
client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=photos"
}
The client then visits this URI and authorizes the homeserver. The client then
visits the REDIRECT_URI with the auth code= query parameter which returns::
{
"user_id": "@user:matrix.org",
"access_token": "0123456789abcdef"
}
Email-based (code)
~~~~~~~~~~~~~~~~~~
:Type:
``m.login.email.code``
:Description:
Login is supported by typing in a code which is sent in an email. This login
consists of multiple requests.
To respond to this type, reply with::
{
"type": "m.login.email.code",
"user": "<user_id or user localpart>",
"email": "<email address>"
}
After validating the email address, the homeserver MUST send an email
containing an authentication code and return::
{
"type": "m.login.email.code",
"session": "<session id>"
}
The second request in this login stage involves sending this authentication
code::
{
"type": "m.login.email.code",
"session": "<session id>",
"code": "<code in email sent>"
}
The homeserver MUST respond to this with either new credentials, the next
stage of the login process, or a standard error response.
Email-based (url)
~~~~~~~~~~~~~~~~~
:Type:
``m.login.email.url``
:Description:
Login is supported by clicking on a URL in an email. This login consists of
multiple requests.
To respond to this type, reply with::
{
"type": "m.login.email.url",
"user": "<user_id or user localpart>",
"email": "<email address>"
}
After validating the email address, the homeserver MUST send an email
containing an authentication URL and return::
{
"type": "m.login.email.url",
"session": "<session id>"
}
The email contains a URL which must be clicked. After it has been clicked, the
client should perform another request::
{
"type": "m.login.email.url",
"session": "<session id>"
}
The homeserver MUST respond to this with either new credentials, the next
stage of the login process, or a standard error response.
A common client implementation will be to periodically poll until the link is
clicked. If the link has not been visited yet, a standard error response with
an errcode of ``M_LOGIN_EMAIL_URL_NOT_YET`` should be returned.
Email-based (identity server)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:Type:
``m.login.email.identity``
:Description:
Login is supported by authorising an email address with an identity server.
Prior to submitting this, the client should authenticate with an identity
server. After authenticating, the session information should be submitted to
the homeserver.
To respond to this type, reply with::
{
"type": "m.login.email.identity",
"threepidCreds": [
{
"sid": "<identity server session id>",
"clientSecret": "<identity server client secret>",
"idServer": "<url of identity server authed with, e.g. 'matrix.org:8090'>"
}
]
}
N-Factor Authentication
~~~~~~~~~~~~~~~~~~~~~~~
Multiple login stages can be combined to create N-factor authentication during
login.
This can be achieved by responding with the ``next`` login type on completion
of a previous login stage::
{
"next": "<next login type>"
}
If a homeserver implements N-factor authentication, it MUST respond with all
``stages`` when initially queried for their login requirements::
{
"type": "<1st login type>",
"stages": [ <1st login type>, <2nd login type>, ... , <Nth login type> ]
}
This can be represented conceptually as::
_______________________
| Login Stage 1 |
| type: "<login type1>" |
| ___________________ |
| |_Request_1_________| | <-- Returns "session" key which is used throughout.
| ___________________ |
| |_Request_2_________| | <-- Returns a "next" value of "login type2"
|_______________________|
|
|
_________V_____________
| Login Stage 2 |
| type: "<login type2>" |
| ___________________ |
| |_Request_1_________| |
| ___________________ |
| |_Request_2_________| |
| ___________________ |
| |_Request_3_________| | <-- Returns a "next" value of "login type3"
|_______________________|
|
|
_________V_____________
| Login Stage 3 |
| type: "<login type3>" |
| ___________________ |
| |_Request_1_________| | <-- Returns user credentials
|_______________________|
Fallback
~~~~~~~~
Clients cannot be expected to be able to know how to process every single login
type. If a client determines it does not know how to handle a given login type,
it should request a login fallback page::
GET matrix/client/api/v1/login/fallback
This MUST return an HTML page which can perform the entire login process.

@ -1,195 +0,0 @@
r0.2.0
======
- Spec clarifications
- Room aliases (`#337 <https://github.com/matrix-org/matrix-doc/pull/337>`_):
- Make it clear that ``GET /directory/room/{roomAlias}`` must work for
federated aliases.
- ``GET /directory/room/{roomAlias}`` cannot return a 409; the ``PUT``
endpoint can, however.
- Power levels:
- Clarify the defaults to be used for various fields of the
``m.room.power_levels`` event
(`#286 <https://github.com/matrix-org/matrix-doc/pull/286>`_,
`#341 <https://github.com/matrix-org/matrix-doc/pull/341>`_).
- Add suggestions for mapping of names to power levels
(`#336 <https://github.com/matrix-org/matrix-doc/pull/336>`_).
- Clarify the room naming algorithm in certain edge cases
(`#351 <https://github.com/matrix-org/matrix-doc/pull/351>`_).
- Remove outdated references to the pre-r0 ``/events`` API, and clarify the
section on syncing
(`#352 <https://github.com/matrix-org/matrix-doc/pull/352>`_).
- Changes to the API which will be backwards-compatible for clients:
- New endpoints:
- ``POST /register/email/requestToken``
(`#343 <https://github.com/matrix-org/matrix-doc/pull/343>`_).
- ``POST /account/3pid/email/requestToken``
(`#346 <https://github.com/matrix-org/matrix-doc/pull/346>`_).
- ``POST /account/password/email/requestToken``
(`#346 <https://github.com/matrix-org/matrix-doc/pull/346>`_).
- ``POST /account/deactivate``
(`#361 <https://github.com/matrix-org/matrix-doc/pull/361>`_).
- Updates to the Presence module
(`#278 <https://github.com/matrix-org/matrix-doc/pull/278>`_,
`#342 <https://github.com/matrix-org/matrix-doc/pull/342>`_):
- Remove unused ``free_for_chat`` presence state
- Add ``currently_active`` flag to the ``m.presence`` event and the ``GET
/presence/{userId}/status`` response.
- Make idle timeout the responsibility of the server
- Remove requirements on servers to propagate profile information via
``m.presence`` events.
- Add new predefined push rules
(`#274 <https://github.com/matrix-org/matrix-doc/pull/274>`_,
`#340 <https://github.com/matrix-org/matrix-doc/pull/340/files>`_).
- ``/sync`` should always return a ``prev_batch`` token
(`#345 <https://github.com/matrix-org/matrix-doc/pull/345>`_).
- add ``to`` parameter to ``GET /rooms/{roomId}/messages`` API
(`#348 <https://github.com/matrix-org/matrix-doc/pull/348>`_).
r0.1.0
======
This release includes the following changes since r0.0.1:
- Breaking changes to the API [#]_:
- ``POST /rooms/{roomId}/join`` no longer permits use of a room alias instead
of a room id. (``POST /join/{roomIdOrAlias}`` continues to allow either.)
- ``POST /account/3pid``: correct the name of the ``three_pid_creds``
parameter
- The "Push Rules" module no longer supports device-specific rules:
- ``GET /pushrules`` no longer returns a ``device`` property
- ``device/{profile_tag}`` is no longer a valid ``scope`` for push rules
- ``profile_tag`` is no longer a valid kind of condition on push rules.
(Device-specific push rules will be reintroduced in the future; in the
meantime, their specification has been moved to a `draft branch`__.)
__ https://matrix.org/speculator/spec/drafts%2Freinstate_device_push_rules/
- Changes to the API which will be backwards-compatible for clients:
- New endpoints:
- ``POST /logout``
- ``POST /rooms/{roomId}/unban``
- ``POST /rooms/{roomId}/kick``
- ``GET /pushers``
- ``GET /pushrules/{scope}/{kind}/{ruleId}/enabled``
(previously ``PUT``-only)
- ``GET`` and ``PUT /pushrules/{scope}/{kind}/{ruleId}/actions``
- Add ``third_party_signed`` parameter to ``POST /rooms/{roomId}/join``
- Add ``M_INVALID_USERNAME`` as valid response to ``POST /register``
- Add ``unread_notifications`` field to ``GET /sync`` response
- Add optional ``invite`` property to ``m.room.power_levels`` state event
- Add optional ``public_key`` and ``public_keys`` to
``m.room.third_party_invite`` state event
- Password-based ``/login`` may now use a third-party identifier instead of
a matrix user id.
- Spec clarifications
- Make the state diagram for room membership explicit
- Note that a user may not be invited to a room while banned
- Clarify the expected order of events in the response to
``GET /rooms/{roomId}/context/{eventId}``, as well as correcting the
example for that API
- Clarify the behaviour of the "Room History Visibility" module; in
particular, the behaviour of the ``shared`` history visibilty, and how
events at visibility boundaries should be handled
- Separate the "Room Previews" module from "Guest access"
- Reword the description of the ``profile_tag`` property in
``PUT /pushers/set``, and note that it is not mandatory.
.. [#] Our `versioning policy <../index.html#specification-versions>`_ would
strictly require that a breaking change be denoted by a new major
specification version. However we are not aware of any clients which
rely on the old behaviour here, nor server implementations which offer
it, so we have chosen to retain the r0 designation on this occasion.
r0.0.1
======
This release includes the following changes since r0.0.0:
- API changes:
- Added new ``/versions`` API
- ``/createRoom`` takes an optional ``invite_3pid`` parameter
- ``/publicRooms`` returns an ``avatar_url`` result
- The following APIs are now deprecated:
- ``/initialSync``
- ``/events``
- ``/events/:eventId``
- ``/rooms/:roomId/initialSync``
- Spec clarifications
- Document inter-version compatibility
- Document the parameters to the ``/user/:userId/filter`` API
- Document the ``next_batch`` parameter on ``/search``
- Document the membership states on ``m.room.member`` events
- Minor clarifications/corrections to:
- Guest access module
- Search module
- ``/login`` API
- ``/rooms/:roomId/send/:eventType/:txnId`` API
- ``/rooms/:roomId/context/:eventId`` API
r0.0.0
======
This is the first release of the client-server specification. It is largely a dump of what has currently been implemented, and there are several inconsistencies.
An upcoming minor release will deprecate many of these inconsistencies, and they will be removed in the next major release.
Since the draft stage, the following major changes have been made:
- /api/v1 and /v2_alpha path segments have been replaced with the major version of the release (i.e. 'r0').
- Some POST versions of APIs with both POST and PUT have been removed.
- The specification has been split into one specification per API. This is the client-server API. The server-server API can be found documented separately.
- All APIs are now documented using Swagger
- The following modules have been added:
- Content repository
- Instant messaging
- Push notification
- History visibility
- Search
- Invites based on third party identifiers
- Room tagging
- Guest access
- Client config
- The following APIs were added:
- ``/sync``
- ``/publicRooms``
- ``/rooms/{roomId}/forget``
- ``/admin/whois``
- ``/rooms/{roomId}/redact``
- ``/user/{userId}/filter``
- The following APIs have been significantly modified:
- Invitations now contain partial room state
- Invitations can now be rejected
- ``/directory``
- The following events have been added:
- ``m.room.avatar``
- Example signed json is included for reference
- Commentary on display name calculation was added

@ -1,11 +0,0 @@
Versioning is, like, hard for backfilling backwards because of the number of homeservers involved.
The way we solve this is by doing versioning as an acyclic directed graph of PDUs. For backfilling purposes, this is done on a per context basis.
When we send a PDU we include all PDUs that have been received for that context that hasn't been subsequently listed in a later PDU. The trivial case is a simple list of PDUs, e.g. A <- B <- C. However, if two servers send out a PDU at the same to, both B and C would point at A - a later PDU would then list both B and C.
Problems with opaque version strings:
- How do you do clustering without mandating that a cluster can only have one transaction in flight to a given remote homeserver at a time.
If you have multiple transactions sent at once, then you might drop one transaction, receive another with a version that is later than the dropped transaction and which point ARGH WE LOST A TRANSACTION.
- How do you do backfilling? A version string defines a point in a stream w.r.t. a single homeserver, not a point in the context.
We only need to store the ends of the directed graph, we DO NOT need to do the whole one table of nodes and one of edges.

@ -1,244 +0,0 @@
.. TODO
Sometimes application services need to create rooms (e.g. when lazy loading
from room aliases). Created rooms need to have a user that created them, so
federation works (as it relies on an entry existing in m.room.member). We should
be able to add metadata to m.room.member to state that this user is an application
service, a virtual user, etc.
Application Services
====================
Overview
========
Application services provide a way of implementing custom serverside functionality
on top of Matrix without the complexity of implementing the full federation API.
By acting as a trusted service logically located behind an existing homeserver,
Application services are decoupled from:
* Signing or validating federated traffic or conversation history
* Validating authorisation constraints on federated traffic
* Managing routing or retry schemes to the rest of the Matrix federation
As such, developers can focus entirely on implementing application logic rather
than being concerned with the details of managing Matrix federation.
Features available to application services include:
* Privileged subscription to any events available to the homeserver
* Synthesising virtual users
* Synthesising virtual rooms
* Injecting message history for virtual rooms
Features not provided by application services include:
* Intercepting and filtering/modifying message or behaviour within a room
(this is a job for a Policy Server, as it requires a single logical focal
point for messages in order to consistently apply the custom business logic)
Example use cases for application services include:
* Exposing existing communication services in Matrix
* Gateways to/from standards-based protocols (SIP, XMPP, IRC, RCS (MSRP), SIMPLE, Lync, etc)
* Gateways to/from closed services (e.g. WhatsApp)
* Gateways could be architected as:
* Act as a virtual client on the non-Matrix network
(e.g. connect as multiple virtual clients to an IRC or XMPP server)
* Act as a server on the non-Matrix network
(e.g. speak s2s XMPP federation, or IRC link protocol)
* Act as an application service on the non-Matrix network
(e.g. link up as IRC services, or an XMPP component)
* Exposing a non-Matrix client interface listener from the AS
(e.g. listen on port 6667 for IRC clients, or port 5222 for XMPP clients)
* Bridging existing APIs into Matrix
* e.g. SMS/MMS aggregator APIs
* Domain-specific APIs such as SABRE
* Integrating more exotic content into Matrix
* e.g. MIDI<->Matrix gateway/bridge
* 3D world <-> Matrix bridge
* Application services:
* Search engines (e.g. elasticsearch search indices)
* Notification systems (e.g. send custom pushes for various hooks)
* VoIP Conference services
* Text-to-speech and Speech-to-text services
* Signal processing
* IVR
* Server-machine translation
* Censorship service
* Multi-User Gaming (Dungeons etc)
* Other "constrained worlds" (e.g. 3D geometry representations)
* applying physics to a 3D world on the serverside
* (applying gravity and friction and air resistance... collision detection)
* domain-specific merge conflict resolution of events
* Payment style transactional usecases with transactional guarantees
Architecture Outline
====================
The application service registers with its host homeserver to offer its services.
In the registration process, the AS provides:
* Credentials to identify itself as an approved application service for that HS
* Details of the namespaces of users and rooms the AS is acting on behalf of and
"subscribing to"
* Namespaces are defined as a list of regexps against which to match room aliases,
room IDs, and user IDs. Regexps give the flexibility to say, sub-domain MSISDN
ranges per AS, whereas a blunt prefix string does not. These namespaces are further
configured by setting whether they are ``exclusive`` or not. An exclusive namespace
prevents entities other than the aforementioned AS from creating/editing/deleting
entries within that namespace. This does not affect the visibility/readability of
entries within that namespace (e.g. it doesn't prevent users joining exclusive
aliases, or ASes from listening to exclusive aliases, but does prevent both users
and ASes from creating/editing/deleting aliases within that namespace).
* There is overlap between selecting events via the csv2 Filter API and subscribing
to events here - perhaps subscription involves passing a filter token into the
registration API.
* A URL base for receiving requests from the HS (as the AS is a server,
implementers expect to receive data via inbound requests rather than
long-poll outbound requests)
On HS handling events to unknown users:
* If the HS receives an event for an unknown user who is in the namespace delegated to
the AS, then the HS queries the AS for the profile of that user. If the AS
confirms the existence of that user (from its perspective), then the HS
creates an account to represent the virtual user.
* The namespace of virtual user accounts should conform to a structure like
``@.irc.freenode.Arathorn:matrix.org``. This lets Matrix users communicate with
foreign users who are not yet mapped into Matrix via 3PID mappings or through
an existing non-virtual Matrix user by trying to talk to them via a gateway.
* The AS can alternatively preprovision virtual users using the existing CS API
rather than lazy-loading them in this manner.
* The AS may want to link the matrix ID of the sender through to their 3PID in
the remote ecosystem. E.g. a message sent from ``@matthew:matrix.org`` may wish
to originate from Arathorn on irc.freenode.net in the case of an IRC bridge.
It's left as an AS implementation detail as to how the user should authorise
the AS to act on its behalf.
On HS handling events to unknown rooms:
* If the HS receives an invite to an unknown room which is in the namespace
delegated to the AS, then the HS queries the AS for the existence of that room.
If the AS confirms its existence (from its perspective), then the HS creates
the room.
* The initial state of the room may be populated by the AS by querying an
initialSync API (probably a subset of the CS initialSync API, to reuse the
same pattern for the equivalent function). As messages have to be signed
from the point of ``m.room.create``, we will not be able to back-populate
arbitrary history for rooms which are lazy-created in this manner, and instead
have to chose the amount of history to be synchronised into the AS as a one-off.
* If exposing arbitrary history is required, then:
* either: the room history must be preemptively provisioned in the HS by the AS via
the CS API (TODO: meaning the CS API needs to support massaged
timestamps), resulting in conversation history being replicated between
the HS and the source store.
* or: the HS must delegate conversation storage entirely to the
AS using a Storage API (not defined here) which allows the existing
conversation store to back the HS, complete with all necessary Matrix
metadata (e.g. hashes, signatures, federation DAG, etc). This obviously
increases the burden of implementing an AS considerably, but is the only
option if the implementer wants to avoid duplicating conversation history
between the external data source and the HS.
On HS handling events to existing users and rooms:
* If the HS receives an event for a user or room that already exists (either
provisioned by the AS or by normal client interactions), then the message
is handled as normal.
* Events in the namespaces of rooms and users that the AS has subscribed to
are pushed to the AS using the same pattern as the federation API (without
any of the encryption or federation metadata). This serves precisely the
same purpose as the CS event stream and has the same data flow semantics
(and indeed an AS implementer could chose to use the CS event stream instead)
* Events are linearised to avoid the AS having to handle the complexity of
linearisation, and because if linearisation is good enough for CS, it
should be good enough for AS. Should the AS require non-linearised events
from Matrix, it should implement the federation API rather than the AS API
instead.
* HS->AS event pushes are retried for reliability with sequence numbers
(or logical timestamping?) to preserve the linearisation order and ensure
a reliable event stream.
* Clustered HSes must linearise just as they do for the CS API. Clustered
ASes must loadbalance the inbound stream across the cluster as required.
On AS relaying events from unknown-to-HS users:
* AS injects the event to the HS using the CS API, irrespective of whether the
target user or room is known to the HS or not. If the HS doesn't recognise
the target it goes through the same lazy-load provisioning as per above.
* The reason for not using a subset of the federation API here is because it
allows AS developers to reuse existing CS SDKs and benefit from the more
meaningful error handling of the CS API. The sending user ID must be
explicitly specified, as it cannot be inferred from the access_token, which
will be the same for all AS requests.
* TODO: or do we maintain a separate ``access_token`` mapping? It seems like
unnecessary overhead for the AS developer; easier to just use a single
privileged ``access_token`` and just track which ``user_id`` is emitting events?
* If the AS is spoofing the identity of a real (not virtual) matrix user,
we should actually let them log themselves in via OAuth2 to give permission
to the AS to act on their behalf.
* We can't auth gatewayed virtual users from 3rd party systems who are being
relayed into Matrix, as the relaying is happening whether the user likes it
or not. Therefore we do need to be able to spoof sender ID for virtual users.
On AS relaying events in unknown-to-HS rooms:
* See above.
On AS publishing aliases for virtual rooms:
* AS uses the normal alias management API to preemptively create/delete public
directory entries for aliases for virtual rooms provided by the AS.
* In order to create these aliases, the underlying room ID must also exist, so
at least the ``m.room.create`` of that room must also be prepopulated. It seems
sensible to prepopulate the required initial state and history of the room to
avoid a two-phase prepopulation process.
On unregistering the AS from the HS:
* An AS must tell the HS when it is going offline in order to stop receiving
requests from the HS. It does this by hitting an API on the HS.
AS Visibility:
* If an AS needs to sniff events in a room in order to operate on them (e.g.
to act as a search engine) but not inject traffic into the room, it should
do so by subscribing to the relevant events without actually joining the room.
* If the AS needs to participate in the room as a virtual user (e.g. an IVR
service, or a bot, or a gatewayed virtual user), it should join the room
normally.
* There are rare instances where an AS may wish to participate in a room
(including inserting messages), but be hidden from the room list - e.g. a
conferencing server focus bot may wish to join many rooms as the focus and
both listen to VoIP setups and inject its own VoIP answers, without ever
being physically seen in the room. In this scenario, the user should set
its presence to 'invisible', a state that HSes should only allow AS-authed
users to set.
E2E Encryption
* The AS obviously has no visibility to E2E encrypted messages, unless it is
explicitly added to an encrypted room and participates in the group chat
itself.
Extensions to CS API
====================
* Ability to assert the identity of the virtual user for all methods.
* Ability to massage timestamps when prepopulating historical state and
messages of virtual rooms (either by overriding ``origin_server_ts`` (preferred) or
adding an ``as_ts`` which we expect clients to honour)
* Ability to delete aliases (including from the directory) as well as create them.

@ -1,222 +0,0 @@
Data flows for use cases
========================
::
<- Data from server to client
-> Data from client to server
Instant Messaging
-----------------
Without storage
~~~~~~~~~~~~~~~
::
Home screen
Data required on load:
<- For each room the user is joined: Name, topic, # members, last message, room ID, aliases
Data required when new message arrives for a room:
<- Room ID, message content, sender (user ID, display name, avatar url)
Data required when someone invites you to a room:
<- Room ID, sender (user ID, display name, avatar url), Room Name, Room Topic
Data required when you leave a room on another device:
<- Room ID
Data required when you join a room on another device:
<- Name, topic, # members, last message, room ID, aliases
Data required when your profile info changes on another device:
<- new profile info e.g. avatar, display name, etc.
Creating a room
-> Invitee list of user IDs, public/private, name of room, alias of room, topic of room
<- Room ID
Joining a room (and dumped into chat screen on success)
-> Room ID / Room alias
<- Room ID, Room aliases (plural), Name, topic, member list (f.e. member: user ID,
avatar, presence, display name, power level, whether they are typing), enough
messages to fill screen (and whether there are more)
Chat Screen
Data required when member name changes:
<- new name, room ID, user ID, when in the context of the room did this occur
Data required when the room name changes:
<- new name, room ID, old room name?
Invite a user:
-> user ID, room ID
<- display name / avatar of user invited (if known)
Kick a user:
-> user ID, room ID
<- what message it came after
Leave a room:
-> room ID
<- what message it came after
Send a message
-> Message content, room ID, message sequencing (eg sending my 1st, 2nd, 3rd msg)
<- actual content sent (if server mods it), what message it comes after (to correctly
display the local echo)
Place a call (receive a call is just reverse)
<- turn servers
-> SDP offer
-> Ice candidates (1 by 1; trickling)
<- SDP answer
<- Ice candidates
Scrolling back (infinite scrolling)
-> Identifier for the earliest message, # requested messages
<- requested messages (f.e change in display name, what the old name was), whether
there are more.
With storage
~~~~~~~~~~~~
::
Home Screen
On Load
-> Identifier which tells the server the client's current state (which rooms it is aware
of, which messages it has, what display names for users, etc..)
<- A delta from the client's current state to the current state on the server (e.g. the
new rooms, the *latest* message if different, the changed display names, the new
invites, etc). f.e Room: Whether the cache of the room that you have has been replaced
with this new state.
Pre-load optimisation (not essential for this screen)
-> Number of desired messages f.e room to cache
<- f.e Room: the delta OR the entire state
Bug Tracking
------------
::
Landing Page
On Load
<- Issues assigned to me, Issues I'm watching, Recent activity on other issues includes
comments, list of projects
Search for an issue (assume text)
-> Search string
<- List of paginated issues
Request page 2:
-> Page number requested
<- Page of paginated issues
Issue Page
On Load
-> Issue ID and Project ID (equiv to Room)
<- Issue contents e.g. priority, resolution state, etc. All comments e.g. user ID,
comment text, timestamp. Entire issue history e.g. changes in priority
Post a comment
-> Issue ID, comment content, Project ID (equiv to Room)
<- actual content sent (if modded), what comment it comes after
Set issue priority
-> Issue ID, Project ID, desired priority
<- What action in the history it came after
Someone else sets issue priority
<- Issue ID, Project ID, new priority, where in the history
Mapping model use cases to matrix models (Room, Message, etc)
=============================================================
To think about:
- Do we want to support the idea of forking off new rooms from existing ones? This
and forums could benefit from it.
Bug tracking UI
---------------
::
Projects => Rooms
Issues => Message Events
Comments => Message Events (relates_to key)
Projects:
- Unlikely that there will be 100,000s of issues, so having to pull in all the issues for a project is okay.
- Permissions are usually per project and this Just Works.
- New issues come in automatically and Just Work.
- Can have read-only members
Issues:
- Don't really want 1 Room per Issue, else you can have thousands of Rooms PER PROJECT, hence choice for
Issues as Messages. Don't need to join a room for each issue.
- Idea of issue owner is clear (sender of the message)
- Updating issues requires an additional event similar to comments (with ``relates_to``)? Could possibly
be state events? Don't really want all the history if say the priority was changed 1000 times, just want
the current state of the key.
Comments:
- Additional event with ``relates_to`` key.
Forum
-----
::
Forum => Room (with pointers to Board Rooms)
Boards => Room (with pointers to Thread Rooms)
Threads => Room
Messages => Message Events
Forum:
- Contains 10s of Boards.
- Contains special Message Events which point to different rooms f.e Board.
Boards:
- Contains 100s of Threads.
- Contains special Message Events which point to different rooms f.e. Thread.
Threads:
- Contains 100s of Messages.
Can't do this nicely with the current Federation API because you have loads of
Rooms and what does posting a message look like? Creating a thread is done by..?
The user who is posting cannot create the thread because otherwise they would be
the room creator and have ultimate privileges. So it has to be created by a bot
of some kind which ties into auth (Application services?). To follow a board,
you need a bot to join the Board Room and then watch it for changes...
Fundamental problem with forums is that there is only 1 PDU graph per room and
you either have to pull in lots of graphs separately or one graph and filter it
separately to get to the desired sub set of data. You have to subscribe into a
lot of graphs if you subscribe to a board... If you have the entire board...
good luck scrollbacking a particular thread.
Google+ Community
-----------------
::
Community => Room (with pointers to Category Rooms)
Category => Room
Post => Message Events
Comment => Message Events (relates_to key)
Community:
- Contains 10s of categories.
- Contains special Message Events which point to different rooms f.e Category.
- Moderators of the community are mods in this room. They are in charge of making
new categories and the subsequent rooms. Can get a bit funky if a mod creates a
category room without the same permissions as the community room... but another
mod can always delete the pointer to the buggy category room and make a new one.
- Do we want to support the idea of forking off new rooms from existing ones? This
and forums could benefit from it.
Category:
- Contains 1000s of posts.
- Same permissions as the community room. How to enforce? Fork off the community
room?
Posts:
- Contains 10s of comments.
This is similar to forums but you can more reasonably say "screw it, pull in the
entire community of posts."

@ -1,141 +0,0 @@
This is a standalone description of the data architecture of Synapse. There is a
lot of overlap with the current specification, so it has been split out here for
posterity. Hopefully all the important bits have been merged into the relevant
places in the main spec.
Model
-----
Overview
~~~~~~~~
Matrix is used to reliably distribute data between sets of `users`.
Users are associated with one of many matrix `servers`. These distribute,
receive and store data on behalf of its registered users. Servers can be run on
any host accessible from the internet.
When a user wishes to send data to users on different servers the local server
will distribute the data to each remote server. These will in turn distribute
to their local users involved.
A user sends and receives data using one or more authenticated `clients`
connected to his server. Clients may persist data locally or request it when
required from the server.
Events
~~~~~~
An event is a collection of data (the `payload`) and metadata to be distributed
across servers and is the primary data unit in Matrix. Events are extensible
so that clients and servers can add extra arbitrary fields to both the payload
or metadata.
Events are distributed to interested servers upon creation. Historical events
may be requested from servers; servers are not required to produce all
or any events requested.
All events have a metadata `type` field that is used by client and servers to
determine how the payload should be processed and used. There are a number of
types reserved by the protocol for particular uses, but otherwise types may be
defined by applications, clients or servers for their own purposes.
.. TODO : Namespacing of new types.
Graph
+++++
Each event has a list of zero or more `parent` events. These relations form
directed acyclic graphs of events called `event graphs`. Every event graph has
a single root event, and each event graph forms the basis of the history of a
matrix room.
Event graphs give a partial ordering of events, i.e. given two events one may
be considered to have come before the other if one is an ancestor of the other.
Since two events may be on separate branches, not all events can be compared in
this manner.
Every event has a metadata `depth` field that is a positive integer that is
strictly greater than the depths of any of its parents. The root event should
have a depth of 1.
[Note: if one event is before another, then it must have a strictly smaller
depth]
Integrity
+++++++++
.. TODO: Specify the precise subset of essential fields
Portions of events will be signed by one or more servers or clients. The parent
relations, type, depth and payload (as well as other metadata fields that will
be specified) must be signed by the originating server. [Note: Thus, once an
event is distributed and referenced by later events, they effectively become
immutable].
The payload may also be encrypted by clients, except in the case where the
payload needs to be interpreted by the servers. A list of event types that
cannot have an encrypted payload are given later.
State
~~~~~
Event graphs may have meta information associated with them, called `state`.
State can be updated over time by servers or clients, subject to
authorisation.
The state of a graph is split into `sections` that can be atomically updated
independently of each other.
State is stored within the graph itself, and can be computed by looking at the
graph in its entirety. We define the state at a given event to be the state of
the sub graph of all events "before" and including that event.
Some sections of the state may determine behaviour of the protocol, including
authorisation and distribution. These sections must not be encrypted.
State Events
++++++++++++
`State events` are events that update a section of state data for a room. These
state events hold all the same properties of events, and are part of the event
graph. The payload of the event is the replacement value for the particular
section of state being updated.
State events must also include a `state_key` metadata field. The pair of fields
type and state_key uniquely defines the section of state that is to be updated.
State Resolution
++++++++++++++++
A given state section may have multiple state events associated with it in a
given graph. A consistent method of selecting which state event takes
precedence is therefore required.
This is done by taking the latest state events, i.e. the set of events that are
either incomparable or after every other event in the graph. A state resolution
algorithm is then applied to this set to select the single event that takes
precedence.
The state resolution algorithm must be transitive and not depend on server
state, as it must consistently select the same event irrespective of the server
or the order the events were received in.
State Dictionary
++++++++++++++++
The state dictionary is the mapping from sections of state to the state events
which set the section to its current value. The state dictionary, like the
state itself, depends on the events currently in the graph and so is updated
with each new event received.
Since the sections of the state are defined by the pair of strings from the
type and state_key of the events that update them, the state dictionary can be
defined as a mapping from the pair (type, state_key) to a state event with
those values in the graph.
Deleting State
++++++++++++++
State sections may also be deleted, i.e. removed from the state dictionary. The
state events will still be present in the event graph.
This is done by sending a special state event indicating that the given entry
should be removed from the dictionary. These events follow the same rules for
state resolution, with the added requirement that it loses all conflicts.
[Note: This is required to make the algorithm transitive.]

@ -1,408 +0,0 @@
Federation
==========
.. sectnum::
.. contents:: Table of Contents
Authorization
-------------
When receiving new events from remote servers, or creating new events, a server
must know whether that event is allowed by the authorization rules. These rules
depend solely on the state at that event. The types of state events that affect
authorization are:
- ``m.room.create``
- ``m.room.member``
- ``m.room.join_rules``
- ``m.room.power_levels``
Servers should not create new events that reference unauthorized events.
However, any event that does reference an unauthorized event is not itself
automatically considered unauthorized.
Unauthorized events that appear in the event graph do *not* have any effect on
the state of the graph.
.. Note:: This is in contrast to redacted events which can still affect the
state of the graph. For example, a redacted *"join"* event will still
result in the user being considered joined.
Rules
~~~~~
The following are the rules to determine if an event is authorized (this does
include validation).
**TODO**: What signatures do we expect?
1. If type is ``m.room.create`` allow if and only if it has no prev events.
#. If type is ``m.room.member``:
a. If ``membership`` is ``join``:
i. If the previous event is an ``m.room.create``, the depth is 1 and
the ``state_key`` is the creator, then allow.
#. If the ``state_key`` does not match ``sender`` key, reject.
#. If the current state has ``membership`` set to ``join``.
#. If the ``sender`` is in the ``m.room.may_join`` list. [Not currently
implemented]
#. If the ``join_rules`` is:
- ``public``: allow.
- ``invite``: allow if the current state has ``membership`` set to
``invite``
- ``knock``: **TODO**.
- ``private``: Reject.
#. Reject
#. If ``membership`` is ``invite`` then allow if ``sender`` is in room,
otherwise reject.
#. If ``membership`` is ``leave``:
i. If ``sender`` matches ``state_key`` allow.
#. If ``sender``'s power level is greater than the the ``kick_level``
given in the current ``m.room.power_levels`` state (defaults to 50),
and the ``state_key``'s power level is less than or equal to the
``sender``'s power level, then allow.
#. Reject.
#. If ``membership`` is ``ban``:
i. **TODO**.
#. Reject.
#. Reject the event if the event type's required power level is less that the
``sender``'s power level.
#. If the ``sender`` is not in the room, reject.
#. If the type is ``m.room.power_levels``:
a. **TODO**.
#. Allow.
Definitions
~~~~~~~~~~~
Required Power Level
A given event type has an associated *required power level*. This is given
by the current ``m.room.power_levels`` event, it is either listed explicitly
in the ``events`` section or given by either ``state_default`` or
``events_default`` depending on if the event type is a state event or not.
Auth events
~~~~~~~~~~~
The auth events of an event are the set of events used by the authorization
algorithm to accept the event. These should be a subset of the current state.
A server is required to store the complete chain of auth events for all events
it serves to remote servers.
All auth events have type:
- ``m.room.create``
- ``m.room.power_levels``
- ``m.room.member``
.. todo
We probably should probably give a lower band of how long auth events
should be kept around for.
Auth chain
~~~~~~~~~~
The *auth chain* for an event is the recursive list of auth events and the auth
chain for those auth events.
.. Note:: The auth chain for an event gives all the information a server needs
to accept an event. However, being given an auth chain for an event
that appears valid does not mean that the event might not later be
rejected. For example if we discover that the sender had been banned
between the join event listed in the auth events and the event being
authed.
**TODO**: Clean the above explanations up a bit.
Auth chain resolution
~~~~~~~~~~~~~~~~~~~~~
If an auth check fails, or if we get told something we accepted should have
been rejected, we need to try and determine who is right.
If two servers disagree about the validity of the auth events, both should
inform the other of what they think the current auth chain is. If either are
missing auth events that they know are valid (through authorization and state
resolution) they process the missing events as usual.
If either side notice that the other has accepted an auth events we think
should be rejected (for reasons *not* in their auth chain), that server should
inform the other with suitable proof.
The proofs can be:
- An *event chain* that shows an auth event is *not* an ancestor of the event.
This can be done by giving the full ancestor chains up to the depth of the
invalid auth event.
- Given an event (and event chain?) showing that authorization had been revoked.
If a server discovers it cannot prove the other side is wrong, then it accepts
that the other is correct; i.e. we always accept that the other side is correct
unless we can prove otherwise.
State Resolution
----------------
**TODO**
When two branches in the event graph merge, the state of those branches might
differ, so a *state resolution* algorithm must be used to determine the current
state of the resultant merge.
The properties of the state resolution algorithm are:
- Must only depend on the event graph, and not local server state.
- When two state events are comparable, the descendant one should be picked.
- Must not require the full event graph.
The following algorithm satisfies these requirements; given two or more events,
pick the one with the greatest:
#. Depth.
#. Hash of event_id.
This works except in the case of auth events, where we need to mitigate against
the attack where servers artificially netsplit to avoid bans or power level
changes.
We want the following rules to apply:
#. If power levels have been changed on two different branches use the rules
above, ensuring that the one picked is a valid change from the one not picked.
#. Similarly handle membership changes (e.g. bans, kicks, etc.)
#. Any state merged must be allowed by the newly merged auth events. If none of
the candidate events for a given state are allowed, we pick the last event
given by the ordering above (i.e. we pick one with the least depth).
State Conflict Resolution
-------------------------
If a server discovers that it disagrees with another about the current state,
it can follow the same process outlined in *Auth chain resolution* to resolve
these conflicts.
Constructing a new event
------------------------
**TODO**
When constructing a new event, the server should insert the following fields:
- ``prev_events``: The list of event ids of what the server believes are the
current leaf nodes of the event graph (i.e., nodes that have been received
but are yet to be referenced by another event).
- ``depth``: An integer one greater than the maximum depth of the event's
previous events.
- ``auth_events``: The list of event ids that authorizes this event. This
should be a subset of the current state.
- ``origin_server_ts``: The time the server created the event.
- ``origin``: The name of the server.
Signing and Hashes
~~~~~~~~~~~~~~~~~~
**TODO**
Validation
----------
**TODO**
Domain specific string
A string of the form ``<prefix><localpart>:<domain>``, where <prefix> is a
single character, ``<localpart>`` is an arbitrary string that does not
include a colon, and `<domain>` is a valid server name.
``room_id``
A domain specific string with prefix ``!`` that is static across all events
in a graph and uniquely identifies it. The ``domain`` should be that of the
homeserver that created the room (i.e., the server that generated the
first ``m.room.create`` event).
``sender``
The entity that logically sent the event. This is usually a user id, but
can also be a server name.
User Id
A domain specific string with prefix ``@`` representing a user account. The
``domain`` is the homeserver of the user and is the server used to contact
the user.
Joining a room
--------------
If a user requests to join a room that the server is already in (i.e. the a
user on that server has already joined the room) then the server can simply
generate a join event and send it as normal.
If the server is not already in the room it needs to will need to join via
another server that is already in the room. This is done as a two step process.
First, the local server requests from the remote server a skeleton of a join
event. The remote does this as the local server does not have the event graph
to use to fill out the ``prev_events`` key in the new event. Critically, the
remote server does not process the event it responded with.
Once the local server has this event, it fills it out with any extra data and
signs it. Once ready the local server sends this event to a remote server
(which could be the same or different from the first remote server), this
remote server then processes the event and distributes to all the other
participating servers in that room. The local server is told about the
current state and complete auth chain for the join event. The local server
can then process the join event itself.
.. Note::
Finding which server to use to join any particular room is not specified.
Inviting a user
---------------
To invite a remote user to a room we need their homeserver to sign the invite
event. This is done by sending the event to the remote server, which then signs
the event, before distributing the invite to other servers.
Handling incoming events
------------------------
When a server receives an event, it should:
#. Check if it knows about the room. If it doesn't, then it should get the
current state and auth events to determine whether the server *should* be in
the room. If so continue, if not drop or reject the event
#. If the server already knew about the room, check the prev events to see if
it is missing any events. If it is, request them. Servers should limit how
far back they will walk the event graph for missing events.
#. If the server does not have all the prev events, then it should request the
current state and auth events from a server.
Failures
--------
A server can notify a remote server about something it thinks it has done
wrong using the failures mechanism. For example, the remote accepted an event
the local think it shouldn't have.
A failure has a severity level depending on the action taken by the local
server. These levels are:
``FATAL``
The local server could not parse the event, for example due to a missing
required field.
``ERROR``
The local server *could* parse the event, but it was rejected. For example,
the event may have failed an authorization check.
``WARN``
The local server accepted the event, but something was unexpected about it.
For example, the event may have referenced another event the local server
thought should be rejected.
A failure also includes several other fields:
``code``
A numeric code (to be defined later) indicating a particular type of
failure.
``reason``
A short string indicating what was wrong, for diagnosis purposes on the
remote server.
``affected``
The event id of the event this failure is responding to. For example, if
an accepted event referenced a rejected event, this would point to the
accepted one.
``source``
The event id of the event that was the source of this unexpected behaviour.
For example, if an accepted event referenced a rejected event, this would
point to the rejected one.
Appendix
========
**TODO**
Example event:
.. code::
{
"auth_events": [
[
"$14187571482fLeia:localhost:8480",
{
"sha256": "kiZUclzzPetHfy0rVoYKnYXnIv5VxH8a4996zVl8xbw"
}
],
[
"$14187571480odWTd:localhost:8480",
{
"sha256": "GqtndjviW9yPGaZ6EJfzuqVCRg5Lhoyo4YYv1NFP7fw"
}
],
[
"$14205549830rrMar:localhost:8480",
{
"sha256": "gZmL23QdWjNOmghEZU6YjqgHHrf2fxarKO2z5ZTbkig"
}
]
],
"content": {
"body": "Test!",
"msgtype": "m.text"
},
"depth": 250,
"event_id": "$14207181140uTFlx:localhost:8480",
"hashes": {
"sha256": "k1nuafFdFvZXzhb5NeTE0Q2Jkqu3E8zkh3uH3mqwIxc"
},
"origin": "localhost:8480",
"origin_server_ts": 1420718114694,
"prev_events": [
[
"$142071809077XNNkP:localhost:8480",
{
"sha256": "xOnU1b+4LOVz5qih0dkNFrdMgUcf35fKx9sdl/gqhjY"
}
]
],
"room_id": "!dwZDafgDEFTtpPKpLy:localhost:8480",
"sender": "@bob:localhost:8480",
"signatures": {
"localhost:8480": {
"ed25519:auto": "Nzd3D+emFBJJ4LCTzQEZaKO0Sa3sSTR1fGpu8OWXYn+7XUqke9Q1jYUewrEfxb3lPxlYWm/GztVUJizLz1K5Aw"
}
},
"type": "m.room.message",
"unsigned": {
"age": 500
}
}

@ -1,146 +0,0 @@
Failures
--------
A server may encouter an error when trying to process an event received from a
remote server. In these cases the server may send a `failure` to the remote.
A `failure` references both the event that it was trying to process and the
event that triggered the processing. For example, a failure may be emitted if
one of the parents of the received events was not authorized.
A failure also includes a `severity` field that indicates what action was taken
by the server. There are three valid values:
* `Fatal`: The server failed to parse the event. The event is dropped by the
server as well as all descendants.
* `Error`: The server rejected the event, for example due to authorization.
That event is dropped, but descendants may be accepted.
* `Warn`: The server accepted all events, but believes the remote did
something wrong. For example, references an event the local server believes
is unauthorized.
Data Flows
----------
Invite
++++++
To invite a remote user to an existing room a server distributes an invitiation
event signed by the remote invitee's server (allowing other servers in the room
to be sure that the invitee's server had seen the invite.)
To get the remote server's signature on the event it is sent in a special
request to the remote server, which then responds with the signed invite (if it
accepted it as valid.) The remote server may respond with an error if the user
does not exist.
Join
++++
If a server is already in the room it can simply emit a join event for the user
joining.
If the server is not currently in the room it needs to join via a remote server
in the room, therefore to join a room a server must have have both the room id
and a list of remote servers that may be in the room.
To join via a remote server the local server first requests a valid join event
for the room from the remote server. The local then fills it out, signs it, and
then sends the final join event to the remote server for distribution. The
remore responds to this second request with the current state of the room at
the join request and the auth chain for that state.
Authorization
-------------
The authorization for an event depends solely on the current state at that
event. If a policy server is configured for the room, then the authorization
for the event is the signature of the policy server.
The state events that affect whether an event is authorized are called
`protocol events`, and are:
* `m.room.create`
* `m.room.power_levels`
* `m.room.member`
* `m.room.join_rules`
All events *must* list all the protocol events that grant them their
authorization. All origin servers *must* serve up on request the full graph of
protocol events for all events it has sent. The graph of protocol events is the
connected directed acyclic graph with events as nodes and the list of protocol
events their edges.
Join
++++
A user may join a room if:
* The join rule is "public".
* The join rule is "invite" and the user has been invited by a user that has
already joined.
* The user is in the `may_join` list.
Invite
++++++
A user may invite another user if the join rule is either "public" or "invite"
and the user has joined the room.
Creation
++++++++
A `m.room.create` must be the first event in the room.
Ban, Kick and Redaction
+++++++++++++++++++++++
To ban or kick another user in the room, or to redact an event, then the user
must have a power level of at least that specificied in the
`m.room.power_level` event for kick, ban and redactions.
Other Events
++++++++++++
A user may send an event if all the following hold true:
* The user is in the room.
* If the type of the event is listed in the `m.room.power_levels`, then the
user must have at least that power level. Otherwise, the user must have a
power level of at least `events_default` or `state_default`, depending on
if the event is a message or state event respectively.
Unauthorized Events
-------------------
An unauthorized event should not be accepted into the event graph, i.e. new
events should not reference any unauthorized events. There are situations where
this can happen and so it is not considered an error to include an unauthorized
event in the event graph. It is an error for events to refer unauthorized
events in their `auth_events` section and will in turn be considered
unauthorized.
A server may choose to store only the redacted form of an unauthorized event if
it is included in the event graph.
A server may emit a warning to a remote server if it references an event it
considers unauthorized.
State and Authorization Querying
--------------------------------
A local server may become aware that it and a remote server's view of the
current state are inconsistent. The local server may then send its current
state to the remote, which responds with its view of the current state. Both
servers should then recompute the local state. If they are conforming
implementations then they will reach the same conclusions.

File diff suppressed because it is too large Load Diff

@ -1,81 +0,0 @@
This document outlines the format for human-readable IDs within matrix.
Overview
--------
UTF-8 is quickly becoming the standard character encoding set on the web. As
such, Matrix requires that all strings MUST be encoded as UTF-8. However,
using Unicode as the character set for human-readable IDs is troublesome. There
are many different characters which appear identical to each other, but would
identify different users. In addition, there are non-printable characters which
cannot be rendered by the end-user. This opens up a security vulnerability with
phishing/spoofing of IDs, commonly known as a homograph attack.
Web browers encountered this problem when International Domain Names were
introduced. A variety of checks were put in place in order to protect users. If
an address failed the check, the raw punycode would be displayed to
disambiguate the address. Similar checks are performed by homeservers in
Matrix. However, Matrix does not use punycode representations, and so does not
show raw punycode on a failed check. Instead, homeservers must outright reject
these misleading IDs.
Types of human-readable IDs
---------------------------
There are two main human-readable IDs in question:
- Room aliases
- User IDs
Room aliases look like ``#localpart:domain``. These aliases point to opaque
non human-readable room IDs. These pointers can change, so there is already an
issue present with the same ID pointing to a different destination at a later
date.
User IDs look like ``@localpart:domain``. These represent actual end-users, and
unlike room aliases, there is no layer of indirection. This presents a much
greater concern with homograph attacks.
Checks
------
- Similar to web browsers.
- blacklisted chars (e.g. non-printable characters)
- mix of language sets from 'preferred' language not allowed.
- Language sets from CLDR dataset.
- Treated in segments (localpart, domain)
- Additional restrictions for ease of processing IDs.
- Room alias localparts MUST NOT have ``#`` or ``:``.
- User ID localparts MUST NOT have ``@`` or ``:``.
Rejecting
---------
- Homeservers MUST reject room aliases which do not pass the check, both on
GETs and PUTs.
- Homeservers MUST reject user ID localparts which do not pass the check, both
on creation and on events.
- Any homeserver whose domain does not pass this check, MUST use their punycode
domain name instead of the IDN, to prevent other homeservers rejecting you.
- Error code is ``M_FAILED_HUMAN_ID_CHECK``. (generic enough for both failing
due to homograph attacks, and failing due to including ``:`` s, etc)
- Error message MAY go into further information about which characters were
rejected and why.
- Error message SHOULD contain a ``failed_keys`` key which contains an array
of strings which represent the keys which failed the check e.g::
failed_keys: [ user_id, room_alias ]
Other considerations
--------------------
- Basic security: Informational key on the event attached by HS to say "unsafe
ID". Problem: clients can just ignore it, and since it will appear only very
rarely, easy to forget when implementing clients.
- Moderate security: Requires client handshake. Forces clients to implement
a check, else they cannot communicate with the misleading ID. However, this
is extra overhead in both client implementations and round-trips.
- High security: Outright rejection of the ID at the point of creation /
receiving event. Point of creation rejection is preferable to avoid the ID
entering the system in the first place. However, malicious HSes can just
allow the ID. Hence, other homeservers must reject them if they see them in
events. Client never sees the problem ID, provided the HS is correctly
implemented.
- High security decided; client doesn't need to worry about it, no additional
protocol complexity aside from rejection of an event.

@ -1,43 +0,0 @@
Macaroon Caveats
================
`Macaroons`_ are issued by Matrix servers as authorization tokens. Macaroons may be restricted by adding caveats to them.
.. _Macaroons: http://theory.stanford.edu/~ataly/Papers/macaroons.pdf
Caveats can only be used for reducing the scope of a token, never for increasing it. Servers are required to reject any macroon with a caveat that they do not understand.
Some caveats are specified in this specification, and must be understood by all servers. The use of non-standard caveats is allowed.
All caveats must take the form::
key operator value
where:
- ``key`` is a non-empty string drawn from the character set [A-Za-z0-9_]
- ``operator`` is a non-empty string which does not contain whitespace
- ``value`` is a non-empty string
And these are joined by single space characters.
Specified caveats:
+-------------+--------------------------------------------------+------------------------------------------------------------------------------------------------+
| Caveat name | Description | Legal Values |
+=============+==================================================+================================================================================================+
| gen | Generation of the macaroon caveat spec. | 1 |
+-------------+--------------------------------------------------+------------------------------------------------------------------------------------------------+
| user_id | ID of the user for which this macaroon is valid. | Pure equality check. Operator must be =. |
+-------------+--------------------------------------------------+------------------------------------------------------------------------------------------------+
| type | The purpose of this macaroon. | - ``access``: used to authorize any action except token refresh |
| | | - ``refresh``: only used to authorize a token refresh |
| | | - ``login``: issued as a very short-lived token by third party login flows; proves that |
| | | authentication has happened but doesn't grant any privileges other than being able to be |
| | | exchanged for other tokens. |
+-------------+--------------------------------------------------+------------------------------------------------------------------------------------------------+
| time | Time before/after which this macaroon is valid. | A POSIX timestamp in milliseconds (in UTC). |
| | | Operator < means the macaroon is valid before the timestamp, as interpreted by the server. |
| | | Operator > means the macaroon is valid after the timestamp, as interpreted by the server. |
| | | Operator == means the macaroon is valid at exactly the timestamp, as interpreted by the server.|
| | | Note that exact equality of time is largely meaningless. |
+-------------+--------------------------------------------------+------------------------------------------------------------------------------------------------+

@ -1,149 +0,0 @@
API Efficiency
==============
A simple implementation of presence messaging has the ability to cause a large
amount of Internet traffic relating to presence updates. In order to minimise
the impact of such a feature, the following observations can be made:
* There is no point in a homeserver polling status for peers in a user's
presence list if the user has no clients connected that care about it.
* It is highly likely that most presence subscriptions will be symmetric - a
given user watching another is likely to in turn be watched by that user.
* It is likely that most subscription pairings will be between users who share
at least one Room in common, and so their homeservers are actively
exchanging message PDUs or transactions relating to that Room.
* Presence update messages do not need realtime guarantees. It is acceptable to
delay delivery of updates for some small amount of time (10 seconds to a
minute).
The general model of presence information is that of a HS registering its
interest in receiving presence status updates from other HSes, which then
promise to send them when required. Rather than actively polling for the
current state all the time, HSes can rely on their relative stability to only
push updates when required.
A homeserver should not rely on the longterm validity of this presence
information, however, as this would not cover such cases as a user's server
crashing and thus failing to inform their peers that users it used to host are
no longer available online. Therefore, each promise of future updates should
carry with a timeout value (whether explicit in the message, or implicit as some
defined default in the protocol), after which the receiving HS should consider
the information potentially stale and request it again.
However, because of the likelihood that two homeservers are exchanging messages
relating to chat traffic in a room common to both of them, the ongoing receipt
of these messages can be taken by each server as an implicit notification that
the sending server is still up and running, and therefore that no status changes
have happened; because if they had the server would have sent them. A second,
larger timeout should be applied to this implicit inference however, to protect
against implementation bugs or other reasons that the presence state cache may
become invalid; eventually the HS should re-enquire the current state of users
and update them with its own.
The following workflows can therefore be used to handle presence updates:
1 When a user first appears online their HS sends a message to each other HS
containing at least one user to be watched; each message carrying both a
notification of the sender's new online status, and a request to obtain and
watch the target users' presence information. This message implicitly
promises the sending HS will now push updates to the target HSes.
2 The target HSes then respond a single message each, containing the current
status of the requested user(s). These messages too implicitly promise the
target HSes will themselves push updates to the sending HS.
As these messages arrive at the sending user's HS they can be pushed to the
user's client(s), possibly batched again to ensure not too many small
messages which add extra protocol overheads.
At this point, all the user's clients now have the current presence status
information for this moment in time, and have promised to send each other
updates in future.
3 The HS maintains two watchdog timers per peer HS it is exchanging presence
information with. The first timer should have a relatively small expiry
(perhaps 1 minute), and the second timer should have a much longer time
(perhaps 1 hour).
4 Any time any kind of message is received from a peer HS, the short-term
presence timer associated with it is reset.
5 Whenever either of these timers expires, an HS should push a status reminder
to the target HS whose timer has now expired, and request again from that
server the status of the subscribed users.
6 On receipt of one of these presence status reminders, an HS can reset both
of its presence watchdog timers.
To avoid bursts of traffic, implementations should attempt to stagger the expiry
of the longer-term watchdog timers for different peer HSes.
When individual users actively change their status (either by explicit requests
from clients, or inferred changes due to idle timers or client timeouts), the HS
should batch up any status changes for some reasonable amount of time (10
seconds to a minute). This allows for reduced protocol overheads in the case of
multiple messages needing to be sent to the same peer HS; as is the likely
scenario in many cases, such as a given human user having multiple user
accounts.
API Requirements
================
The data model presented here puts the following requirements on the APIs:
Client-Server
-------------
Requests that a client can make to its homeserver
* get/set current presence state
Basic enumeration + ability to set a custom piece of text
* report per-device idle time
After some (configurable?) idle time the device should send a single message
to set the idle duration. The HS can then infer a "start of idle" instant and
use that to keep the device idleness up to date. At some later point the
device can cancel this idleness.
* report per-device type
Inform the server that this device is a "mobile" device, or perhaps some
other to-be-defined category of reduced capability that could be presented to
other users.
* start/stop presence polling for my presence list
It is likely that these messages could be implicitly inferred by other
messages, though having explicit control is always useful.
* get my presence list
[implicit poll start?]
It is possible that the HS doesn't yet have current presence information when
the client requests this. There should be a "don't know" type too.
* add/remove a user to my presence list
Server-Server
-------------
Requests that homeservers make to others
* request permission to add a user to presence list
* allow/deny a request to add to a presence list
* perform a combined presence state push and subscription request
For each sending user ID, the message contains their new status.
For each receiving user ID, the message should contain an indication on
whether the sending server is also interested in receiving status from that
user; either as an immediate update response now, or as a promise to send
future updates.
Server to Client
----------------
[[TODO(paul): There also needs to be some way for a user's HS to push status
updates of the presence list to clients, but the general server-client event
model currently lacks a space to do that.]]

@ -1,231 +0,0 @@
========
Profiles
========
A description of Synapse user profile metadata support.
Overview
========
Internally within Synapse users are referred to by an opaque ID, which consists
of some opaque localpart combined with the domain name of their homeserver.
Obviously this does not yield a very nice user experience; users would like to
see readable names for other users that are in some way meaningful to them.
Additionally, users like to be able to publish "profile" details to inform other
users of other information about them.
It is also conceivable that since we are attempting to provide a
worldwide-applicable messaging system, that users may wish to present different
subsets of information in their profile to different other people, from a
privacy and permissions perspective.
A Profile consists of a display name, an (optional?) avatar picture, and a set
of other metadata fields that the user may wish to publish (email address, phone
numbers, website URLs, etc...). We put no requirements on the display name other
than it being a valid Unicode string. Since it is likely that users will end up
having multiple accounts (perhaps by necessity of being hosted in multiple
places, perhaps by choice of wanting multiple distinct identifies), it would be
useful that a metadata field type exists that can refer to another Synapse User
ID, so that clients and HSes can make use of this information.
Metadata Fields
---------------
[[TODO(paul): Likely this list is incomplete; more fields can be defined as we
think of them. At the very least, any sort of supported ID for the 3rd Party ID
servers should be accounted for here.]]
* Synapse Directory Server username(s)
* Email address
* Phone number - classify "home"/"work"/"mobile"/custom?
* Twitter/Facebook/Google+/... social networks
* Location - keep this deliberately vague to allow people to choose how
granular it is
* "Bio" information - date of birth, etc...
* Synapse User ID of another account
* Web URL
* Freeform description text
Visibility Permissions
======================
A homeserver implementation could offer the ability to set permissions on
limited visibility of those fields. When another user requests access to the
target user's profile, their own identity should form part of that request. The
HS implementation can then decide which fields to make available to the
requestor.
A particular detail of implementation could allow the user to create one or more
ACLs; where each list is granted permission to see a given set of non-public
fields (compare to Google+ Circles) and contains a set of other people allowed
to use it. By giving these ACLs strong identities within the HS, they can be
referenced in communications with it, granting other users who encounter these
the "ACL Token" to use the details in that ACL.
If we further allow an ACL Token to be present on Room join requests or stored
by 3PID servers, then users of these ACLs gain the extra convenience of not
having to manually curate people in the access list; anyone in the room or with
knowledge of the 3rd Party ID is automatically granted access. Every HS and
client implementation would have to be aware of the existence of these ACL
Token, and include them in requests if present, but not every HS implementation
needs to actually provide the full permissions model. This can be used as a
distinguishing feature among competing implementations. However, servers MUST
NOT serve profile information from a cache if there is a chance that its limited
understanding could lead to information leakage.
Client Concerns of Multiple Accounts
====================================
Because a given person may want to have multiple Synapse User accounts, client
implementations should allow the use of multiple accounts simultaneously
(especially in the field of mobile phone clients, which generally don't support
running distinct instances of the same application). Where features like address
books, presence lists or rooms are presented, the client UI should remember to
make distinct with user account is in use for each.
Directory Servers
=================
Directory Servers can provide a forward mapping from human-readable names to
User IDs. These can provide a service similar to giving domain-namespaced names
for Rooms; in this case they can provide a way for a user to reference their
User ID in some external form (e.g. that can be printed on a business card).
The format for Synapse user name will consist of a localpart specific to the
directory server, and the domain name of that directory server:
@localname:some.domain.name
The localname is separated from the domain name using a colon, so as to ensure
the localname can still contain periods, as users may want this for similarity
to email addresses or the like, which typically can contain them. The format is
also visually quite distinct from email addresses, phone numbers, etc... so
hopefully reasonably "self-describing" when written on e.g. a business card
without surrounding context.
[[TODO(paul): we might have to think about this one - too close to email?
Twitter? Also it suggests a format scheme for room names of
#localname:domain.name, which I quite like]]
Directory server administrators should be able to make some kind of policy
decision on how these are allocated. Servers within some "closed" domain (such
as company-specific ones) may wish to verify the validity of a mapping using
their own internal mechanisms; "public" naming servers can operate on a FCFS
basis. There are overlapping concerns here with the idea of the 3rd party
identity servers as well, though in this specific case we are creating a new
namespace to allocate names into.
It would also be nice from a user experience perspective if the profile that a
given name links to can also declare that name as part of its metadata.
Furthermore as a security and consistency perspective it would be nice if each
end (the directory server and the user's homeserver) check the validity of the
mapping in some way. This needs investigation from a security perspective to
ensure against spoofing.
One such model may be that the user starts by declaring their intent to use a
given user name link to their homeserver, which then contacts the directory
service. At some point later (maybe immediately for "public open FCFS servers",
maybe after some kind of human intervention for verification) the DS decides to
honour this link, and includes it in its served output. It should also tell the
HS of this fact, so that the HS can present this as fact when requested for the
profile information. For efficiency, it may further wish to provide the HS with
a cryptographically-signed certificate as proof, so the HS serving the profile
can provide that too when asked, avoiding requesting HSes from constantly having
to contact the DS to verify this mapping. (Note: This is similar to the security
model often applied in DNS to verify PTR <-> A bidirectional mappings).
Identity Servers
================
The identity servers should support the concept of pointing a 3PID being able to
store an ACL Token as well as the main User ID. It is however, beyond scope to
do any kind of verification that any third-party IDs that the profile is
claiming match up to the 3PID mappings.
User Interface and Expectations Concerns
========================================
Given the weak "security" of some parts of this model as compared to what users
might expect, some care should be taken on how it is presented to users,
specifically in the naming or other wording of user interface components.
Most notably mere knowledge of an ACL Pointer is enough to read the information
stored in it. It is possible that Home or Identity Servers could leak this
information, allowing others to see it. This is a security-vs-convenience
balancing choice on behalf of the user who would choose, or not, to make use of
such a feature to publish their information.
Additionally, unless some form of strong end-to-end user-based encryption is
used, a user of ACLs for information privacy has to trust other homeservers not
to lie about the identify of the user requesting access to the Profile.
API Requirements
================
The data model presented here puts the following requirements on the APIs:
Client-Server
-------------
Requests that a client can make to its homeserver
* get/set my Display Name
This should return/take a simple "text/plain" field
* get/set my Avatar URL
The avatar image data itself is not stored by this API; we'll just store a
URL to let the clients fetch it. Optionally HSes could integrate this with
their generic content attacmhent storage service, allowing a user to set
upload their profile Avatar and update the URL to point to it.
* get/add/remove my metadata fields
Also we need to actually define types of metadata
* get another user's Display Name / Avatar / metadata fields
TODO(paul): At some later stage we should consider the API for:
* get/set ACL permissions on my metadata fields
* manage my ACL tokens
Server-Server
-------------
Requests that homeservers make to others
* get a user's Display Name / Avatar
* get a user's full profile - name/avatar + MD fields
This request must allow for specifying the User ID of the requesting user,
for permissions purposes. It also needs to take into account any ACL Tokens
the requestor has.
* push a change of Display Name to observers (overlaps with the presence API)
Room Event PDU Types
--------------------
Events that are pushed from homeservers to other homeservers or clients.
* user Display Name change
* user Avatar change
[[TODO(paul): should the avatar image itself be stored in all the room
histories? maybe this event should just be a hint to clients that they should
re-fetch the avatar image]]

@ -1,68 +0,0 @@
PUT /send/abc/ HTTP/1.1
Host: ...
Content-Length: ...
Content-Type: application/json
.. code :: javascript
{
"origin": "localhost:5000",
"pdus": [
{
"content": {},
"context": "tng",
"depth": 12,
"is_state": false,
"origin": "localhost:5000",
"pdu_id": 1404381396854,
"pdu_type": "feedback",
"prev_pdus": [
[
"1404381395883",
"localhost:6000"
]
],
"ts": 1404381427581
}
],
"prev_ids": [
"1404381396852"
],
"ts": 1404381427823
}
HTTP/1.1 200 OK
======================================
GET /pull/-1/ HTTP/1.1
Host: ...
Content-Length: 0
HTTP/1.1 200 OK
Content-Length: ...
Content-Type: application/json
.. code :: javascript
{
origin: ...,
prev_ids: ...,
data: [
{
data_id: ...,
prev_pdus: [...],
depth: ...,
ts: ...,
context: ...,
origin: ...,
content: {
...
}
},
...,
]
}

@ -1,113 +0,0 @@
==================
Room Join Workflow
==================
An outline of the workflows required when a user joins a room.
Discovery
=========
To join a room, a user has to discover the room by some mechanism in order to
obtain the (opaque) Room ID and a candidate list of likely homeservers that
contain it.
Sending an Invitation
---------------------
The most direct way a user discovers the existence of a room is from a
invitation from some other user who is a member of that room.
The inviter's HS sets the membership status of the invitee to "invited" in the
"m.members" state key by sending a state update PDU. The HS then broadcasts this
PDU among the existing members in the usual way. An invitation message is also
sent to the invited user, containing the Room ID and the PDU ID of this
invitation state change and potentially a list of some other homeservers to use
to accept the invite. The user's client can then choose to display it in some
way to alert the user.
[[TODO(paul): At present, no API has been designed or described to actually send
that invite to the invited user. Likely it will be some facet of the larger
user-user API required for presence, profile management, etc...]]
Directory Service
-----------------
Alternatively, the user may discover the channel via a directory service; either
by performing a name lookup, or some kind of browse or search acitivty. However
this is performed, the end result is that the user's homeserver requests the
Room ID and candidate list from the directory service.
[[TODO(paul): At present, no API has been designed or described for this
directory service]]
Joining
=======
Once the ID and homeservers are obtained, the user can then actually join the
room.
Accepting an Invite
-------------------
If a user has received and accepted an invitation to join a room, the invitee's
homeserver can now send an invite acceptance message to a chosen candidate
server from the list given in the invitation, citing also the PDU ID of the
invitation as "proof" of their invite. (This is required as due to late message
propagation it could be the case that the acceptance is received before the
invite by some servers). If this message is allowed by the candidate server, it
generates a new PDU that updates the invitee's membership status to "joined",
referring back to the acceptance PDU, and broadcasts that as a state change in
the usual way. The newly-invited user is now a full member of the room, and
state propagation proceeds as usual.
Joining a Public Room
---------------------
If a user has discovered the existence of a room they wish to join but does not
have an active invitation, they can request to join it directly by sending a
join message to a candidate server on the list provided by the directory
service. As this list may be out of date, the HS should be prepared to retry
other candidates if the chosen one is no longer aware of the room, because it
has no users as members in it.
Once a candidate server that is aware of the room has been found, it can
broadcast an update PDU to add the member into the "m.members" key setting their
state directly to "joined" (i.e. bypassing the two-phase invite semantics),
remembering to include the new user's HS in that list.
Knocking on a Semi-Public Room
------------------------------
If a user requests to join a room but the join mode of the room is "knock", the
join is not immediately allowed. Instead, if the user wishes to proceed, they
can instead post a "knock" message, which informs other members of the room that
the would-be joiner wishes to become a member and sets their membership value to
"knocked". If any of them wish to accept this, they can then send an invitation
in the usual way described above. Knowing that the user has already knocked and
expressed an interest in joining, the invited user's homeserver should
immediately accept that invitation on the user's behalf, and go on to join the
room in the usual way.
[[NOTE(Erik): Though this may confuse users who expect 'X has joined' to
actually be a user initiated action, i.e. they may expect that 'X' is actually
looking at synapse right now?]]
[[NOTE(paul): Yes, a fair point maybe we should suggest HSes don't do that, and
just offer an invite to the user as normal]]
Private and Non-Existent Rooms
------------------------------
If a user requests to join a room but the room is either unknown by the home
server receiving the request, or is known by the join mode is "invite" and the
user has not been invited, the server must respond that the room does not exist.
This is to prevent leaking information about the existence and identity of
private rooms.
Outstanding Questions
=====================
* Do invitations or knocks time out and expire at some point? If so when? Time
is hard in distributed systems.

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save