pico-engine icon indicating copy to clipboard operation
pico-engine copied to clipboard

Raise an event when a DID exchange results in a connection being established

Open b1conrad opened this issue 1 year ago • 3 comments

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

  1. the role of this pico (whether "inviter" or "invitee")
  2. the label from the invitation
  3. the DID that this pico is going to use going forward
  4. the DID that the other pico has communicated for use going forward
  5. anything else that is available and might be useful

b1conrad avatar Sep 06 '23 23:09 b1conrad

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

  1. the role would be "invitee"
  2. the label would be event:attrs{["invite","label"]}
  3. the DID for this pico would be event:attrs{"my_did"}
  4. the DID for the other pico would be event:attrs{["invite","from"]}
  5. anything else out of event:attrs{"invite"}, such as perhaps the time when the invitation was created (computed as time:new(event:attrs{["invite","created_time"]}*1000))

b1conrad avatar Sep 09 '23 08:09 b1conrad

@b1conrad This is doable, and I'm in the process of implementing it.

joshmann35 avatar Sep 12 '23 02:09 joshmann35

Can we have a brief meeting, at your convenience, to talk through this? @joshmann35

b1conrad avatar Sep 29 '23 15:09 b1conrad