-
Notifications
You must be signed in to change notification settings - Fork 12
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
Gather sender client information for UTDs via device keys info #2467
Comments
In terms of protocol changes, I'd like to add an object like the following to the response to {
"io.element.client_data": {
"app_name": "Element",
"app_platform": "Web Platform",
"app_version": "1.11.70"
}
} These properties are based on those already sent to Posthog. It's worth noting that we can't simply add this data to the body of the key uploaded with Should the data format be specced?Instead of using an unspecced Uploading the new dataI'm currently torn between two approaches:
Advantages of the
Advantages of the
|
The spec implies that |
We are leaning towards the /keys/upload approach, so I will investigate that a bit further. |
If we recognised the session, then we could almost certainly decrypt the message :( |
Rough breakdown of work that will be needed:
|
Ah! Right, so stick with the deprecated fields until we are forced to do something else. |
In our analytics data (in Posthog), we want to be able to distinguish UTD events based on the client and version of the sender of the event (because often the problem is on the sender side rather than the recipient). The problem is that currently, we don't know this information.
It is proposed to resolve this as follows:
/keys/upload
and then downloaded via/keys/query
.sender_key
(ordevice_id
) embedded in the message, so that we can include the client metadata in the Posthog event.Notes:
sender_key
anddevice_id
are both deprecated. But they are still there today, and we don't see a good alternative, so we will use them for now and deal with the problem if/when they disappear.Implementation
Add an object like the following to the response to
/keys/query
:These properties are based on those already sent to Posthog.
It's worth noting that we can't simply add this data to the body of the key uploaded with
/keys/upload
, otherwise a change toapp_version
will invalidate any cross-signing signatures, and hence require re-verification of the device. Instead, we must add it to theunsigned
section, but that isn't currently exposed via/keys/upload
. In short, whatever we do, we need server-side and spec changes.Uploading the new data
Extend
POST /keys/upload
to accept anunsigned
property, which is then merged with the existingunsigned
property for/keys/query
.Tasks
General
unsigned
to/keys/upload
and include it in/keys/query
synapse#17943/keys/query
'sunsigned
section, we do not crash matrix-org/matrix-rust-sdk#4279/keys/upload
requests, if it was supplied matrix-org/matrix-rust-sdk#4280/keys/query
requests and store it with a device matrix-org/matrix-rust-sdk#4281/keys/query
requests and store it with a device matrix-org/matrix-rust-sdk#4282/keys/query
requests and store it with a device matrix-org/matrix-rust-sdk#4283sender_key
ordevice_id
or (preferably)session_id
and include any client version info we find in the UTD report matrix-org/matrix-rust-sdk#4287/keys/upload
matrix-org/matrix-rust-sdk#4288The text was updated successfully, but these errors were encountered: