pico-engine
pico-engine copied to clipboard
Raise an event when a DID exchange results in a connection being established
We need the dido
library to raise an event at the moment when a DID exchange results in a connection being established. This needs to happen both for the pico receiving the invitation and the one that generated it. An application ruleset (that uses io.picolabs.did-o
as a module) would react to this event and maintain a list of connections, on top of the didMap
function that the did-o ruleset already provides (the app ruleset is not part of what is asked for here, but is the rationale).
Event attributes need to include
- the role of this pico (whether "inviter" or "invitee")
- the label from the invitation
- the DID that this pico is going to use going forward
- the DID that the other pico has communicated for use going forward
- anything else that is available and might be useful
On the invitee side of a new connection, it might suffice to add this to the receive_invite
rule:
}
fired {
raise dido event "send_trust_ping" attributes event:attrs.put("did", invite{"from"})
+ raise dido event "invitation_accepted" attributes {
+ "invite":invite, "my_did":new_did{"id"}
+ }
}
}
The dido:invitation_accepted
event could then be selected by a rule (in another ruleset) that could obtain
- the role would be
"invitee"
- the label would be
event:attrs{["invite","label"]}
- the DID for this pico would be
event:attrs{"my_did"}
- the DID for the other pico would be
event:attrs{["invite","from"]}
- anything else out of
event:attrs{"invite"}
, such as perhaps the time when the invitation was created (computed astime:new(event:attrs{["invite","created_time"]}*1000)
)
@b1conrad This is doable, and I'm in the process of implementing it.
Can we have a brief meeting, at your convenience, to talk through this? @joshmann35