From c8393306d161dc73340dd0dd7a09ab765e7e542f Mon Sep 17 00:00:00 2001 From: Maxime Dor Date: Tue, 27 Feb 2018 17:26:50 +0100 Subject: [PATCH 1/7] Add IS ping endpoint --- api/identity/ping.yaml | 44 ++++++++++++++++++++++++++ specification/identity_service_api.rst | 5 +++ 2 files changed, 49 insertions(+) create mode 100644 api/identity/ping.yaml diff --git a/api/identity/ping.yaml b/api/identity/ping.yaml new file mode 100644 index 00000000..005160a3 --- /dev/null +++ b/api/identity/ping.yaml @@ -0,0 +1,44 @@ +# Copyright 2018 Kamax Sàrl +# +# 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-Identity Versions API" + version: "1.0.0" +host: localhost:8090 +schemes: + - https +basePath: /_matrix/identity +produces: + - application/json +paths: + "/api/v1": + get: + summary: Checks that an Identity server is available at this API endpopint. + description: |- + Checks that an Identity server is available at this API endpopint. + + To discover that an Identity server is available at a specific URL, + this endpoint can be queried and will return an empty object. + + This is primarly used for auto-discovery and health check purposes + by entities acting as a client for the Identity server. + operationId: ping + responses: + 200: + description: An Identity server is ready to serve requests. + examples: + application/json: {} + schema: + type: object diff --git a/specification/identity_service_api.rst b/specification/identity_service_api.rst index 19275593..89fcc3e6 100644 --- a/specification/identity_service_api.rst +++ b/specification/identity_service_api.rst @@ -67,6 +67,11 @@ should allow a 3pid to be mapped to a Matrix user identity, but not in the other direction (i.e. one should not be able to get all 3pids associated with a Matrix user ID, or get all 3pids associated with a 3pid). +Status check +------------ + +{{ping_is_http_api}} + Key management -------------- From a488bd55033e2cd2fc68f44d58ad6d7330f1d6be Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Sat, 3 Mar 2018 12:12:47 -0700 Subject: [PATCH 2/7] 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 --- event-schemas/examples/m.presence | 3 +-- event-schemas/schema/m.presence | 10 +++------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/event-schemas/examples/m.presence b/event-schemas/examples/m.presence index ead92ccd..bdc0baea 100644 --- a/event-schemas/examples/m.presence +++ b/event-schemas/examples/m.presence @@ -4,8 +4,7 @@ "last_active_ago": 2478593, "presence": "online", "currently_active": false, - "user_id": "@example:localhost" }, - "event_id": "$WLGTSEFSEF:localhost", + "sender": "@example:localhost", "type": "m.presence" } diff --git a/event-schemas/schema/m.presence b/event-schemas/schema/m.presence index 36108db6..3c884fd6 100644 --- a/event-schemas/schema/m.presence +++ b/event-schemas/schema/m.presence @@ -29,21 +29,17 @@ "currently_active": { "type": boolean, "description": "Whether the user is currently active" - }, - "user_id": { - "type": "string", - "description": "The user's ID." } }, - "required": ["presence", "user_id"] + "required": ["presence"] }, "type": { "type": "string", "enum": ["m.presence"] }, - "event_id": { + "sender": { "type": "string" } }, - "required": ["event_id", "type", "content"] + "required": ["sender", "type", "content"] } From f5a100317e004f7bfa8fd174caf89c0f036d6d1d Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Sat, 3 Mar 2018 12:15:43 -0700 Subject: [PATCH 3/7] Add changelog entry for m.presence format fix Signed-off-by: Travis Ralston --- changelogs/client_server.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelogs/client_server.rst b/changelogs/client_server.rst index d86aeb63..b5b92239 100644 --- a/changelogs/client_server.rst +++ b/changelogs/client_server.rst @@ -19,6 +19,8 @@ Unreleased changes (`#1106 `_). - Clarify default values for some fields on the /search API (`#1109 `_). + - Fix the representation of ``m.presence`` events + (`#1137 `_). - Changes to the API which will be backwards-compatible for clients: From a3f006353cd79636235a918d9788c7646b7e6f3c Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Sat, 3 Mar 2018 12:40:41 -0700 Subject: [PATCH 4/7] Tag ordering is defined as a number between 0 and 1, not strings Signed-off-by: Travis Ralston --- event-schemas/examples/m.tag | 2 +- specification/modules/tags.rst | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/event-schemas/examples/m.tag b/event-schemas/examples/m.tag index 00e81060..53dbc921 100644 --- a/event-schemas/examples/m.tag +++ b/event-schemas/examples/m.tag @@ -2,7 +2,7 @@ "type": "m.tag", "content": { "tags": { - "work": {"order": 1} + "u.work": {"order": 1} } } } diff --git a/specification/modules/tags.rst b/specification/modules/tags.rst index 31b3b711..0187d791 100644 --- a/specification/modules/tags.rst +++ b/specification/modules/tags.rst @@ -35,12 +35,11 @@ the tags are for. Each tag has an associated JSON object with information about the tag, e.g how to order the rooms with a given tag. -Ordering information is given under the ``order`` key as a string. The string -are compared lexicographically by unicode codepoint to determine which should -displayed first. So a room with a tag with an ``order`` key of ``"apples"`` -would appear before a room with a tag with an ``order`` key of ``"oranges"``. -If a room has a tag without an ``order`` key then it should appear after the -rooms with that tag that have an ``order`` key. +Ordering information is given under teh ``order`` key as a number between 0 and +1. The numbers are compared such that 0 is displayed first. Therefore a room +with an ``order`` of ``0.2`` would be displayed before a room with an ``order`` +of ``0.7``. If a room has a tag without an ``order`` key then it should appear +after the rooms with that tag that have an ``order`` key. The name of a tag MUST not exceed 255 bytes. From c5738b87c0899bc5cd8e7d88def8983aa5666ede Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Sat, 3 Mar 2018 12:45:19 -0700 Subject: [PATCH 5/7] Add changelog entry for m.tag ordering Signed-off-by: Travis Ralston --- changelogs/client_server.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelogs/client_server.rst b/changelogs/client_server.rst index d86aeb63..7ac32e4a 100644 --- a/changelogs/client_server.rst +++ b/changelogs/client_server.rst @@ -19,6 +19,8 @@ Unreleased changes (`#1106 `_). - Clarify default values for some fields on the /search API (`#1109 `_). + - Clarify that ``m.tag`` ordering is done with numbers, not strings + (`#1139 `_). - Changes to the API which will be backwards-compatible for clients: From 864b6b6b3ae96b12f6fc456b549c4feb9a5b8c68 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Sat, 3 Mar 2018 12:49:49 -0700 Subject: [PATCH 6/7] Add build output to the .gitignore This is more of a problem if the build fails for whatever reason. Signed-off-by: Travis Ralston --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 1742b2a4..84ac4951 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ /scripts/continuserv/continuserv /scripts/speculator/speculator /scripts/swagger +/scripts/tmp /templating/out *.pyc *.swp From 04e39c849674a1337652c082a352fda72e9d566e Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Sat, 3 Mar 2018 12:50:30 -0700 Subject: [PATCH 7/7] Document the Python version explicitly The spec uses 2.x currently and is not compatible with Python 3. Signed-off-by: Travis Ralston --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 5c9edac7..2a359db6 100644 --- a/README.rst +++ b/README.rst @@ -41,7 +41,7 @@ specs and event schemas in this repository. Preparation ----------- -To use the scripts, it is best to create a Python virtualenv as follows:: +To use the scripts, it is best to create a Python 2.x virtualenv as follows:: virtualenv env env/bin/pip install -r scripts/requirements.txt