bcgov / DITP

Digital Identity and Trust Program Repository
Apache License 2.0
0 stars 2 forks source link

Create an ACA-Py plugin that implements the new (proposed) DRPC protocol #78

Closed swcurran closed 4 months ago

swcurran commented 6 months ago

The DIDComm Remote Procedure Call (DRPC) protocol is a simple (for an Aries Framework like ACA-Py) request/response protocol where the controller / business logic does all the work of preparing and processing the message. The Aries frameworks are "just the messenger" - doing the standard inbound and outbound DIDComm processing, but leaving it up to the business logic to handle the messages.

The DRPC protocol is a proposal (Aries RFC PR, markdown), but close enough that it can be implemented.

Please build a plugin that implements the protocol, including a simple pair of controllers that demonstrate using the protocol. The "trust-ping" and/or "action-menu" protocols might be good templates to build the new protocol -- they are both two message request/response protocols with the controller doing most of the processing.

Define the Admin API calls that are needed for the protocol -- presumably just POST /drpc/request and POST /drpc/response. Perhaps a GET /drpc/requests might be useful, and a delete are also needed. Suggest looking at other similar protocols (like action-menu) to see what they support.

Suggest adding a "retain-exchange" flag on the Admin API and otherwise deleting the protocol state object record for an instance of the protocol after the protocols is complete and the controller informed of the result.

This will also be implemented in Agent Framework JavaScript and deployed into the BC Wallet, so we'll keep the Wallet team updated on the progress.

swcurran commented 6 months ago

@esune -- for your review and then assignment. @cvarjao -- for your review.

amanji commented 5 months ago

Linked issue: https://github.com/hyperledger/aries-cloudagent-python/issues/2695

loneil commented 4 months ago

@amanji can close this one?

esune commented 4 months ago

Yes, this is done.