You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As implemented in #362, a project is not added until the auth and config cores have synced. This can result in a situation where the invitor and existing members of the project think that the device is part of the project, but the device itself does not have the project. It's a bit of a chicken-and-egg situation:
The invitor needs to write the capability (authorization) of the invitee to the project before they sync
The invitee needs to sync this capability to be fully connected to the project, but that sync could fail
The invitor has no way of rolling back (e.g. deleting) the capability record because the database is immutable
We could just write another record overriding it, but that could end up with a lot of "useless" capability records if invites repeatedly fail.
An alternative solution, that gives the invited device more opportunity to resolve the situation, is to allow any other device in the project to re-send the invite to the device when they see them:
An invited but not joined device can be identified by other devices in the project because they will appear in the project.members list and in client.listLocalPeers(), but they will not appear in project.$sync.getState() as a connected peer (because they do not have the keys to connect to the project)
Any device that has the relevant encryption keys can send the invite, because the capability record is already written by the invitor.
The invite should be sent automatically by any project member when they see the device.
The invitee will see the invite again whenever they connect to the same wifi as an existing device on the project, and they can accept and complete the join.
The text was updated successfully, but these errors were encountered:
Description
As implemented in #362, a project is not added until the auth and config cores have synced. This can result in a situation where the invitor and existing members of the project think that the device is part of the project, but the device itself does not have the project. It's a bit of a chicken-and-egg situation:
We could just write another record overriding it, but that could end up with a lot of "useless" capability records if invites repeatedly fail.
An alternative solution, that gives the invited device more opportunity to resolve the situation, is to allow any other device in the project to re-send the invite to the device when they see them:
project.members
list and inclient.listLocalPeers()
, but they will not appear inproject.$sync.getState()
as a connected peer (because they do not have the keys to connect to the project)The text was updated successfully, but these errors were encountered: