Commit graph

401 commits

Author SHA1 Message Date
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
2021-08-27 19:16:39 +01:00
Andrew Morgan 3c66e149f3 Move validator.js to scripts/ directory, update calls 2021-08-27 18:27:11 +01:00
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!
2021-08-27 18:27:11 +01:00
Andrew Morgan b8dafe86f4 Move and more aptly name check_examples.py scripts 2021-08-27 18:27:07 +01:00
Will deef4f5e7c
Suppress bullets inside table of contents 2020-10-06 14:03:37 -07:00
Travis Ralston f0ba7f014b Update i18n for emoji 2020-08-13 11:54:56 -06:00
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
2020-08-12 14:04:48 -06:00
Kitsune Ral 8e7c0dfb93 Merge remote-tracking branch 'origin/master' into kitsune/cleanup 2020-06-10 21:14:49 +02:00
Travis Ralston ffea5d5e61 Document top-level UnsignedData objects 2020-05-31 21:36:47 -06:00
Kitsune Ral b789f3e10b dump-swagger.py: fix a typo in the help string 2020-05-28 13:56:29 +02:00
Travis Ralston e14cf35c80
Merge pull request #2563 from matrix-org/travis/spec/2240-and-assoc--r-v6
Room Version 6
2020-05-27 07:15:22 -06:00
Travis Ralston 93f68866c5 Fix spec generation not using titles on pseudo objects 2020-05-25 08:16:05 -06:00
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.
2020-05-20 22:14:29 -06:00
Ben Parsons 7c037d2490 improve capture and add example 2020-04-07 15:26:48 +01:00
Ben Parsons 5ae8a8bcfd fix pagination in scraper 2020-04-07 14:37:55 +01:00
Kitsune Ral 6b37bb1dd9 Merge remote-tracking branch 'remotes/origin/master' into kitsune-map-to-enum-support 2019-10-03 11:06:27 +09:00
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.
2019-09-03 14:04:05 -06:00
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
2019-08-27 19:24:13 -06:00
Kitsune Ral 65cd10249c Render enums inside additionalProps as one more table
Closes #2242.
2019-08-24 21:56:48 +09:00
Jimmy Cuadra 5384b61d95 Fix style issues brought up during code review.
Signed-off-by: Jimmy Cuadra <jimmy@jimmycuadra.com>
2019-06-14 17:35:39 -07:00
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>
2019-06-14 16:20:51 -07:00
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".
2019-06-12 13:47:09 -06:00
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
2019-06-11 09:55:17 -06:00
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
2019-06-07 10:34:08 -06:00
Travis Ralston 79bbb47d9f Clarify when authorization and rate-limiting are not applicable
Fixes https://github.com/matrix-org/matrix-doc/issues/1971
2019-06-05 23:18:04 -06:00
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.
2019-06-05 22:55:11 -06:00
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
2019-06-05 10:38:32 -06:00
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.
2019-06-04 12:43:47 -06:00
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
2019-05-29 21:47:07 -06:00
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.
2019-05-29 15:28:48 -06:00
Travis Ralston 62890d21b2 Fix example Content-Type for /media/upload request
Fixes https://github.com/matrix-org/matrix-doc/issues/1770
2019-05-27 23:08:02 -06:00
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.
2019-05-26 20:52:59 -06:00
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>
2019-04-30 17:43:21 +01:00
Richard van der Hoff 6cdc8982fa jenkins is dead, long live buildkite 2019-04-26 15:58:31 +01:00
Travis Ralston b1689a3036 Misc improvements 2019-02-10 18:03:17 -07:00
Travis Ralston b42310ab9d Merge branch 'master' into travis/fix-changelog 2019-02-10 17:53:29 -07:00
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.
2019-02-06 22:02:21 -07:00
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.
2019-02-04 14:47:20 -07:00
Travis Ralston 6067a4ad3c Use the real identity server version in the APIs table 2019-02-04 13:56:59 -07:00
Travis Ralston 6c7eea555a
Merge pull request #1773 from matrix-org/travis/spec/rooms
Add a room version specification
2019-01-24 09:47:33 -07:00
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.
2019-01-16 16:57:45 -07:00
Andrew Morgan b7b96833d0 Fix sticky headers so they don't hide behind header bar on desktop 2019-01-11 16:15:06 +00:00
Andrew Morgan f738f671d1 Sticky headers for proposals page 2019-01-09 15:16:18 +00:00
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.
2019-01-04 15:49:24 -07:00
Richard van der Hoff a451e007a4 Fix labels in proposals script 2018-12-17 09:49:47 +00:00
Richard van der Hoff fa0b4f9e13 Make the proposal labels match what happens in practice 2018-12-13 11:14:21 +00:00
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
2018-11-07 15:52:31 +00:00
Erik Johnston 4271391214
Initial stab at documenting soft fail (#1641) 2018-10-26 15:18:04 +01:00
Matthew Hodgson 1fc6465168 remove archaic port 8448 from matrix.org URL for swagger-ui 2018-10-07 23:25:32 +01:00
Matthew Hodgson d789564db7 only apply list CSS overrides to section classes 2018-09-01 01:12:55 +01:00
Travis Ralston 7d34995ece It's actually an "identity server implementing the Identity Service API"
Also add a note about appservices being special.
2018-08-31 15:35:32 -06:00
Travis Ralston 7ac76fa27c Actually we're going with "identity server" afterall 2018-08-31 15:04:00 -06:00
Richard van der Hoff 8773b9319b
Merge pull request #1599 from matrix-org/benpa/spec-tables-prettier
Benpa/spec tables prettier
2018-08-31 21:40:55 +01:00
Travis Ralston 84a2b7f3c0
Merge pull request #1632 from uhoreg/fix_room_member_state_key
fix handling of multi-line state key descriptions
2018-08-31 14:38:58 -06:00
Ben Parsons c77b505441 capitali[zs]e path parameters 2018-08-31 14:37:47 +01:00
Ben Parsons 778fe2a47a css caption size tweak 2018-08-31 14:29:46 +01:00
Ben Parsons e8afab1fe5 many visual improvements 2018-08-31 13:55:27 +01:00
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.
2018-08-30 15:05:50 -06:00
Travis Ralston cee0a5ac7b
Merge pull request #1557 from turt2live/travis/general/r0-prep
Prepare the identity service and server-server APIs for r0
2018-08-30 14:46:35 -06:00
Hubert Chathi a1b1054aa1 fix handling of multi-line state key descriptions 2018-08-30 15:57:09 -04:00
Travis Ralston 2753d24302 Merge remote-tracking branch 'matrix-org/master' into travis/general/r0-prep 2018-08-30 12:17:09 -06:00
Travis Ralston 827033c128 Merge remote matrix-org/master 2018-08-30 11:29:47 -06:00
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
2018-08-30 18:11:38 +01:00
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
2018-08-30 18:10:48 +01:00
Travis Ralston ecd3ce39e5 Don't generate proposals.rst in Circle CI 2018-08-30 10:38:23 -06:00
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.
2018-08-30 17:18:07 +01:00
Ben Parsons f1ae872857 light zebra striping for tables 2018-08-30 17:16:45 +01:00
Ben Parsons 9e1d6d7490 sanitise caption handling 2018-08-30 17:01:27 +01:00
Travis Ralston b2092922e8 Don't define a variable for the appservice major version 2018-08-29 21:51:26 -06:00
Travis Ralston a5c3924492 Merge remote matrix-org/master 2018-08-29 21:28:24 -06:00
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.
2018-08-29 19:32:52 -06:00
Travis Ralston e7a69a6a6d Merge remote-tracking branch 'matrix-org/master' into travis/general/r0-prep 2018-08-29 19:29:42 -06:00
Travis Ralston 2ab2f91088 Merge remote-tracking branch 'matrix-org/master' into travis/releases/push-gateway/r0.1.0 2018-08-29 17:54:34 -06:00
Ben Parsons 380a53ecba adjust caption -> smaller, left align 2018-08-29 17:18:37 +01:00
Ben Parsons 989b50a1a0 remove debug string 2018-08-29 16:40:26 +01:00
Ben Parsons 6e0fe70500 make spec tables prettier 2018-08-29 16:38:59 +01:00
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.
2018-08-28 14:40:14 -06:00
Travis Ralston 4278a9a516 Merge remote-tracking branch 'matrix-org/master' into travis/c2s/fix-events 2018-08-27 19:17:37 -06:00
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.
2018-08-27 18:04:08 -06:00
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
2018-08-26 20:51:39 -06:00
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
2018-08-24 18:04:51 -06:00
Travis Ralston d370a2c6fd Prepare the identity service and server-server APIs for r0
* Create the changelog scaffolding
* Set up the variables for versioning
2018-08-24 17:19:25 -06:00
Travis Ralston 750d4f9fda Rename the presence EDU files to be accurate to their types; Misc cleanup of titles 2018-08-17 10:53:47 -06:00
Travis Ralston a53fa9300d Merge remote-tracking branch 'matrix-org/master' into travis/s2s/presence 2018-08-17 09:34:16 -06:00
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.
2018-08-16 11:50:18 -06:00
Kitsune Ral 9be78f3aa7 Better support enums when they come among oneOf types 2018-08-12 16:45:35 +09:00
Kitsune Ral 88d97b06ae Support oneOf 2018-08-12 16:45:33 +09:00
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.
2018-08-08 08:24:09 -06:00
Travis Ralston 0f8954d839
Merge pull request #1463 from turt2live/travis/s2s/pdus-and-edus
Improve documentation around EDUs and PDUs
2018-08-08 08:02:37 -06:00
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.
2018-08-03 19:49:46 -06:00
Travis Ralston 96f5510266 Ensure the example is always set to something 2018-08-03 12:03:23 -06:00
Travis Ralston ea307b5bdb Support rendering schema definitions in the spec 2018-07-31 13:55:53 -06:00
Ben Parsons 1d019c3757
Merge pull request #1340 from matrix-org/benparsons/prdefence
expect "#<pull-number>" or "/pull/<pull-number>" in PRs field
2018-07-31 15:17:42 +01:00
Ben Parsons d7919b6989 also scrape PRs when the full URL is pasted 2018-07-31 15:08:42 +01:00
Travis Ralston bc3e45d642
Merge pull request #1358 from uhoreg/ignore-emacs-tmp
ignore emacs temporary files
2018-07-30 17:09:08 -06:00
Travis Ralston 4f24d2101f Only get issues that are proposals when finding proposals
Otherwise we end up with not-proposals showing up in the list.
2018-07-26 09:51:08 -06:00
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.
2018-07-24 14:47:47 -06:00
Travis Ralston acf9632afc Enlist the examples 2018-07-24 10:25:24 -06:00
Travis Ralston 9fa838d3e8 Improve type naming 2018-07-24 10:17:57 -06:00
Travis Ralston 5ade15534d Remove extra branch in example generation 2018-07-24 10:17:39 -06:00