Merge pull request #306 from matrix-org/dbkr/add_push_change_event_id
Change `id` -> `event_id` and include push section
This commit is contained in:
commit
0411cf54da
5 changed files with 109 additions and 78 deletions
|
@ -17,10 +17,23 @@ paths:
|
||||||
summary: Notify a push gateway about an event.
|
summary: Notify a push gateway about an event.
|
||||||
description: |-
|
description: |-
|
||||||
This endpoint is invoked by HTTP pushers to notify a push gateway about
|
This endpoint is invoked by HTTP pushers to notify a push gateway about
|
||||||
an event.
|
an event or update the number of unread notifications a user has.
|
||||||
*NB: Notifications are sent to the URL configured when the pusher is
|
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
|
created. This means that the HTTP path may be different depending on the
|
||||||
push gateway.*
|
push gateway.
|
||||||
|
|
||||||
parameters:
|
parameters:
|
||||||
- in: body
|
- in: body
|
||||||
name: notification
|
name: notification
|
||||||
|
@ -42,7 +55,6 @@ paths:
|
||||||
"content": {
|
"content": {
|
||||||
"msgtype": "m.text",
|
"msgtype": "m.text",
|
||||||
"body": "I'm floating in a most peculiar way."
|
"body": "I'm floating in a most peculiar way."
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"counts": {
|
"counts": {
|
||||||
"unread" : 2,
|
"unread" : 2,
|
||||||
|
@ -60,29 +72,41 @@ paths:
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
required: ["notification", "counts", "devices"]
|
}
|
||||||
|
required: ["notification"]
|
||||||
properties:
|
properties:
|
||||||
notification:
|
notification:
|
||||||
type: object
|
type: object
|
||||||
|
title: Notification
|
||||||
description: Information about the push notification
|
description: Information about the push notification
|
||||||
required: ["id", "room_id", "type", "sender"]
|
required: ["devices"]
|
||||||
properties:
|
properties:
|
||||||
id:
|
event_id:
|
||||||
type: string
|
type: string
|
||||||
description: |-
|
description: |-
|
||||||
An identifier for this notification that may be used to
|
The Matrix event ID of the event being notified about.
|
||||||
detect duplicate notification requests. This is not
|
This is required if the notification is about a
|
||||||
necessarily the ID of the event that triggered the
|
particular Matrix event. It may be omitted for notifications
|
||||||
notification.
|
that only contain updated badge counts. This ID can and
|
||||||
|
should be used to detect duplicate notification requests.
|
||||||
room_id:
|
room_id:
|
||||||
type: string
|
type: string
|
||||||
description: The ID of the room in which this event occurred.
|
description: |-
|
||||||
|
The ID of the room in which this event occurred.
|
||||||
|
Required if the notification relates to a specific
|
||||||
|
Matrix event.
|
||||||
type:
|
type:
|
||||||
type: string
|
type: string
|
||||||
description: The type of the event as in the event's ``type`` field.
|
description: |-
|
||||||
|
The type of the event as in the event's ``type`` field.
|
||||||
|
Required if the notification relates to a specific
|
||||||
|
Matrix event.
|
||||||
sender:
|
sender:
|
||||||
type: string
|
type: string
|
||||||
description: The sender of the event as in the corresponding event field.
|
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:
|
sender_display_name:
|
||||||
type: string
|
type: string
|
||||||
description: |-
|
description: |-
|
||||||
|
@ -116,6 +140,7 @@ paths:
|
||||||
event had no content field, this field is omitted.
|
event had no content field, this field is omitted.
|
||||||
counts:
|
counts:
|
||||||
type: object
|
type: object
|
||||||
|
title: Counts
|
||||||
description: |-
|
description: |-
|
||||||
This is a dictionary of the current number of unacknowledged
|
This is a dictionary of the current number of unacknowledged
|
||||||
communications for the recipient user. Counts whose value is
|
communications for the recipient user. Counts whose value is
|
||||||
|
@ -138,6 +163,7 @@ paths:
|
||||||
This is an array of devices that the notification should be sent to.
|
This is an array of devices that the notification should be sent to.
|
||||||
items:
|
items:
|
||||||
type: object
|
type: object
|
||||||
|
title: Device
|
||||||
properties:
|
properties:
|
||||||
app_id:
|
app_id:
|
||||||
type: string
|
type: string
|
||||||
|
|
|
@ -20,6 +20,7 @@ The following APIs are documented in this specification:
|
||||||
- `Server-Server API <server_server.html>`_ version %SERVER_RELEASE_LABEL% for writing servers which can federate with Matrix.
|
- `Server-Server API <server_server.html>`_ version %SERVER_RELEASE_LABEL% for writing servers which can federate with Matrix.
|
||||||
- `Application Service API <application_service.html>`_ version %CLIENT_RELEASE_LABEL% for writing privileged plugins to servers.
|
- `Application Service API <application_service.html>`_ version %CLIENT_RELEASE_LABEL% for writing privileged plugins to servers.
|
||||||
- `Identity Service API <identity_service.html>`_ version unstable for mapping third party identifiers (e.g. email addresses) to Matrix IDs.
|
- `Identity Service API <identity_service.html>`_ version unstable for mapping third party identifiers (e.g. email addresses) to Matrix IDs.
|
||||||
|
- `Push Gateway API <push_gateway.html>`_ version unstable for implementing a server that receives notifications about Matrix events a user is interested in.
|
||||||
|
|
||||||
There are also some `appendices <appendices.html>`_.
|
There are also some `appendices <appendices.html>`_.
|
||||||
|
|
||||||
|
|
|
@ -39,4 +39,4 @@ This describes the format used by "HTTP" pushers to send notifications of
|
||||||
events to Push Gateways. If the endpoint returns an HTTP error code, the
|
events to Push Gateways. If the endpoint returns an HTTP error code, the
|
||||||
homeserver SHOULD retry for a reasonable amount of time using exponential backoff.
|
homeserver SHOULD retry for a reasonable amount of time using exponential backoff.
|
||||||
|
|
||||||
{{push_notifier_http_api}}
|
{{push_notifier_push_http_api}}
|
||||||
|
|
|
@ -22,6 +22,9 @@ targets:
|
||||||
identity_service:
|
identity_service:
|
||||||
files:
|
files:
|
||||||
- identity_service_api.rst
|
- identity_service_api.rst
|
||||||
|
push_gateway:
|
||||||
|
files:
|
||||||
|
- push_gateway.rst
|
||||||
appendices:
|
appendices:
|
||||||
files:
|
files:
|
||||||
- appendices.rst
|
- appendices.rst
|
||||||
|
|
|
@ -21,6 +21,7 @@ HTTP_APIS = {
|
||||||
"../api/application-service": "as",
|
"../api/application-service": "as",
|
||||||
"../api/client-server": "cs",
|
"../api/client-server": "cs",
|
||||||
"../api/identity": "is",
|
"../api/identity": "is",
|
||||||
|
"../api/push-gateway": "push",
|
||||||
}
|
}
|
||||||
EVENT_EXAMPLES = "../event-schemas/examples"
|
EVENT_EXAMPLES = "../event-schemas/examples"
|
||||||
EVENT_SCHEMA = "../event-schemas/schema"
|
EVENT_SCHEMA = "../event-schemas/schema"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue