Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support in ACA-Py for the proposed DIDComm RPC (DRPC) Protocol #2695

Closed
swcurran opened this issue Jan 3, 2024 · 9 comments
Closed

Add support in ACA-Py for the proposed DIDComm RPC (DRPC) Protocol #2695

swcurran opened this issue Jan 3, 2024 · 9 comments

Comments

@swcurran
Copy link
Contributor

swcurran commented Jan 3, 2024

The protocol is proposed in this Pull Request to the Aries RFCs Repo. The DRPC Protocol is a DIDComm request / response protocol that implements a JSON-RPC Client-Server interaction. ACA-Py will provide the plumbing to enable the use of the DRPC protocol, leaving the implementation of any particular RPC request passed using the protocol up to the controller associated with the ACA-Py tenant.

@swcurran
Copy link
Contributor Author

swcurran commented Jan 9, 2024

Over to you @amanji. Let me know if you want to meet to discuss this.

@swcurran
Copy link
Contributor Author

If this is being done as a plugin (which probably makes sense), we should close this issue and open a replacement issue in the aries-acapy-plugins repository.

@amanji
Copy link
Contributor

amanji commented Jan 12, 2024

Yeah maybe we should transfer this to the other repo then

@ianco
Copy link
Contributor

ianco commented Jan 12, 2024

It may require changes to aca-py though ...

@amanji
Copy link
Contributor

amanji commented Jan 12, 2024

I'm not sure what changes would need to be made internally. My thoughts are that RPC methods would be loaded through external plugins. The question remains whether DRPC should be included as a core protocol or itself as a plugin?

@ianco
Copy link
Contributor

ianco commented Jan 12, 2024

I'm not sure what changes would need to be made internally. My thoughts are that RPC methods would be loaded through external plugins. The question remains whether DRPC should be included as a core protocol or itself as a plugin?

If a plug-in can include RPC methods then we probably need some updates to core (where the plug-ins are loaded) to identify the fact that the plug-in includes support for RPC methods. The alternative is that one plug-in includes all of the RPC support.

@amanji
Copy link
Contributor

amanji commented Jan 12, 2024

I'm thinking for now to keep it very simple, it would be a single plugin for RPC support. I hope I'm not overlooking any use-cases that would require the alternative

@swcurran
Copy link
Contributor Author

At this point, the plugin is only to implement the DRPC protocol — including webhooks, Admin API endpoints, and the protocol state object handling. It will not process any of the RPCs, and should assume that the controller will do all of the RPC handling — running, getting the result. The plugin is simply conveying the requests.

This could be a core ACA-Py protocol. We’re doing it as a plugin assuming that is pretty straight-forward to do, and because the protocol is brand-new.

It is possible down the line that we could have other plugins that could invoke the RPCs that are passed to the Agent via the DRPC protocol, but that is outside of the scope of this issue. I think that significantly complicates the design.

@amanji
Copy link
Contributor

amanji commented Feb 6, 2024

Linked PR to implementation: openwallet-foundation/acapy-plugins#78

@swcurran swcurran closed this as completed Apr 2, 2024
@github-project-automation github-project-automation bot moved this from In Review to Complete in CDT Enterprise Apps Apr 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants