bcgov / traction

Traction is designed with an API-first architecture layered on top of Hyperledger Aries Cloud Agent Python (ACA-Py) and streamlines the process of sending and receiving digital credentials for governments and organizations.
https://digital.gov.bc.ca/digital-trust/tools/traction/
Apache License 2.0
52 stars 47 forks source link

Investigate timing issues when connecting to BC Wallet #634

Closed esune closed 1 year ago

esune commented 1 year ago

When connecting to BC Wallet, it appears that the new connection is always very slow to be instantiated or, at the very least, to be detected by the BC Wallet - in Traction/ACA-Py the connection results active almost immediately.

Acceptance Criteria:

esune commented 1 year ago

Based on input from @amanji and as confirmed by the BC Wallet team, it appears that the BC Wallet will sit, by design, on the spinner screen after a connection until another interaction (credential offer, proof request) is detected.

swcurran commented 1 year ago

Discussed with the BC Wallet team. This is intended behaviour (kind of). There should be a goal code with the invitation that tells the Wallet what to do when creating a connection. Without that, the Wallet defaults to waiting on the screen for a presentation request or a credential offer. This makes the combination of protocols appear to the user as a single event — which is desirable. We need to use a (possibly not yet formally defined) “Connect” goal code that is used when all you are doing is connecting. An alternate goal code name we could use is “Just Because”.

To do:

swcurran commented 1 year ago

@cvarjao @knguyenBC @jleach — given the lack of Goal Code in RFC 0160, what about this as a compromise. If we are using RFC 0160, when we get to the timeout (where we currently put the “This is taking longer…” message), we check if the connection is active, and if so, we just happily return to main? That way, only when it is an Offer/Request and it actually takes a long time do we get undesired (but not bad) behaviour. The “Connect” use case is a little slower, but not painful — and fixed when we transition to RFC 0023 DID Exchange.

esune commented 1 year ago

@swcurran I am inclined to either close this issue and log action items elsewhere (aries-rfcs, aca-py) or - at least transfer the issue to the DITP repo and re-assign it, since it is not Traction-related. Thoughts/objections?

swcurran commented 1 year ago

One thought — we could put an instruction in Traction about what to expect if using BC Wallet. Could be helpful for some.