From c8393306d161dc73340dd0dd7a09ab765e7e542f Mon Sep 17 00:00:00 2001 From: Maxime Dor Date: Tue, 27 Feb 2018 17:26:50 +0100 Subject: [PATCH 1/5] 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/5] 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/5] 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 864b6b6b3ae96b12f6fc456b549c4feb9a5b8c68 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Sat, 3 Mar 2018 12:49:49 -0700 Subject: [PATCH 4/5] 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 5/5] 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