hyperledger / aries-agent-test-harness

Aries agent test framework, with agent backchannel support
https://aries-interop.info
Apache License 2.0
59 stars 64 forks source link

Mobile Backchannel support for other frameworks besides Aca-py #560

Open nodlesh opened 1 year ago

nodlesh commented 1 year ago

Mobile backchannel rework to integrate with other Aries frameworks. Right now the Mobile Backchannel is an ACA-Py Backchannel

The mobile backchannel is just a backchannel that captures test calls to the Holder and does mobile things like display a QR code and wait for scanning. In theory, this already allows for other frameworks to act as Issuer and Verifier. It has been tried and there are issues when doing this with other frameworks besides Aca-py. Investigation is required to nail down the exact issues with the other backchannels/frameworks when used in the context of the Mobile Tests. It may be that this ticket breaks out into specific issues for each framework backchannel to fix issues there.

Proposal: Need to refactor the Mobile Backchannel to be a facade/interface over any existing backchannel.

Have a command line option that makes one of the used agents a mobile agent, which places the facade over that backchannel and does mobile "things", like wait for QR code scanning, etc.

Tasks:

nodlesh commented 1 year ago

There might be an issue with Dotnet not getting the Credential.

AFJ can receive the credential but no presentation request. Sends connections too fast(at the same time) so you don't get the verifier connection.

Maybe changing the flow of The connection steps in the feature file may get us close to having other frameworks working with the mobile backchannel.

PatStLouis commented 1 year ago

I submitted PR #586 addressing the second task of this issue.

After changing the order of the connection, I was able to successfully complete a mobile test with a combination of acapy/javascript/mobile backchannels in different roles.

Dotnet is still giving me an issue I was however able to further investigate what was the issue and its related to the timeout after sending an invitation. It marks the step as failed 5 seconds after sending the invitation. By the time the QR code is displayed on the terminal it is already too late an instantly fails, preventing the rest of the scenario to complete.

To fix this the dotnet backchannel will need a longer timeout before marking the connection as failed.

Currently unable to build afgo backchannel.

nodlesh commented 1 year ago

Thanks Patrick, this is great news. Did you attempt to try those tests with reordered steps with non-mobile backchannels? If not, I'll see if I can try it with your changes later today.

PatStLouis commented 1 year ago

I didn't test it with non-mobile backchannel myself. However the PR did test it as a check, here's the job details.

PatStLouis commented 1 year ago

I identified 3 issues with other backchannels:

2byrds commented 1 year ago

Great work guys! I'll try to track along with your changes so that in the future I can contribute to the solution.

swcurran commented 1 year ago