-
Notifications
You must be signed in to change notification settings - Fork 382
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
document device list synchronisation over federation. #1648
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't checked accuracy, but here's some structural stuff
edu_type: | ||
type: enum | ||
enum: ['m.device_list_update'] | ||
description: The string ``m.device_list_update`` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Descriptions should end in full stops.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(this is a theme throughout)
The updated identity keys (if any) for this device. May be absent if the | ||
device has no E2E keys defined. | ||
allOf: | ||
- $ref: ../../../client-server/definitions/device_keys.yaml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this needs an allOf
and can just have the $ref
at the same level as description
.
specification/server_server_api.rst
Outdated
Matrix currently uses a custom pubsub system for synchronising information | ||
about the list of devices for a given user over federation. When a server | ||
wishes to determine a remote user's device list for the first time, | ||
it should populate its local cache by calling the /user/keys/query API |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
preferably API routes should be surrounded in backticks (or be links)
specification/server_server_api.rst
Outdated
which EDUs a server needs to have received in order to apply an update to its local | ||
copy of the remote user's device list. If a server receives an EDU which refers to | ||
a ``prev_id`` it does not recognise, it must resynchronise its list by calling the | ||
/user/keys/query API and resume the process. The response contains a ``stream_id`` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
backticks around api routes
@erikjohnston please can you check this for factual accuracy so we can merge it (or at least fix & merge it? :) |
Ideally this would also talk about when a server should send device updates and to whom, as well as documenting what to do when a server receives an update that points to a prev stream ID it hasn't seen. What's there looks broadly accurate. |
Yup, it didn't spell out who the device updates should be sent to; hopefully now fixed.
This was documented twice:
in the s2s verbiage and
in the m.device_list_update definition. If this is insufficient, can you please say what the gap is so I can fill it in? |
Finishes off the last of #501 |
specification/server_server_api.rst
Outdated
any existing entry in the local server's cache of that device list. Servers must send | ||
``m.device_list_update`` EDUs to all the servers whose users participate in their rooms, | ||
and must be sent whenever a local user's device list changes (i.e. new or deleted devices, | ||
or changes of identity keys). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or a user joins (gets invited?) into a room.
D'oh. Apparently you need to say it a few more times for it to actually sink here. Otherwise LGTM modulo small comment |
hopefully fixed the small comment. |
closes #1212