diff --git a/.gitignore b/.gitignore index 1742b2a40..84ac4951c 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ /scripts/continuserv/continuserv /scripts/speculator/speculator /scripts/swagger +/scripts/tmp /templating/out *.pyc *.swp diff --git a/README.rst b/README.rst index 5c9edac78..2a359db60 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 diff --git a/api/identity/ping.yaml b/api/identity/ping.yaml new file mode 100644 index 000000000..005160a35 --- /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/changelogs/client_server.rst b/changelogs/client_server.rst index 7ac32e4a1..5861e9842 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 `_). - Clarify that ``m.tag`` ordering is done with numbers, not strings (`#1139 `_). diff --git a/event-schemas/examples/m.presence b/event-schemas/examples/m.presence index ead92ccdb..bdc0baea1 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 36108db6f..3c884fd66 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"] } diff --git a/specification/identity_service_api.rst b/specification/identity_service_api.rst index 192755934..89fcc3e6a 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 --------------