bcgov / aries-vcr

Hyperledger Aries Verifiable Credential Registry (VCR) is a set of application level software components designed to accelerate the adoption of trustworthy entity to entity communications.
Apache License 2.0
78 stars 67 forks source link

Upgrade project to newer ACA-Py version #766

Open esune opened 5 months ago

esune commented 5 months ago

aries-vcr (and related projects) is still using ACA-Py 0.7.1 and should be updated to use a more recent version of the agent.

This will require some regression testing work to ensure that breaking changes will not be affecting functionality, as well as updating the issuer_registration plugin to be compatible with the newer agent version (and handle gracefully breaking changes).

WadeBarnes commented 5 months ago

Refer to https://github.com/bcgov/DITP-DevOps/issues/18 and https://github.com/bcgov/orgbook-configurations/issues/124 for details and links regarding the issues that have been identified.

WadeBarnes commented 1 month ago

Specific blocking issue can be found starting here; https://github.com/bcgov/orgbook-configurations/issues/124#issuecomment-1887483015

Newer versions of ACA-Py don't work well with Aries-VCR and/or BC Registries Agent.

WadeBarnes commented 1 month ago

Is this something we can look into while there is active development going on? I'd like be able to upgrade OrgBook and BC Reg to ghcr.io/hyperledger/aries-cloudagent-python:py3.9-indy-1.16.0-0.12.1

cc @esune, @ianco

ianco commented 1 month ago

Do we want to update OrgBook to support the V2 endpoints as part of this update? (We need to leave V1 support in place obvs)

WadeBarnes commented 1 month ago

@esune?

ianco commented 1 month ago

FYI did a quick test - with an update to the aca-py version the BC Reg issuer is still able to register on startup (i.e. the issuer registration plug-in is working with an updated aca-py) but credential issuing is failing. Not sure why looking into it ...

WadeBarnes commented 1 month ago

FYI did a quick test - with an update to the aca-py version the BC Reg issuer is still able to register on startup (i.e. the issuer registration plug-in is working with an updated aca-py) but credential issuing is failing. Not sure why looking into it ...

Yes, that's the behavior I was seeing too.

ianco commented 1 month ago

Yes, that's the behavior I was seeing too.

Something on the OrgBook side ...

ianco commented 1 month ago

Hah issue credential 2.0 was already implemented in OrgBook by @amanji

esune commented 1 month ago

Hah issue credential 2.0 was already implemented in OrgBook by @amanji

So the protocol is not the issue we're looking for? 🙂

ianco commented 1 month ago

Well theoretically both the V10 and V20 protocols should work. The BC Reg issuer is issuing using V10 which is breaking with the newer aca-py version. I'll figure that out and then also try testing the issuer using the V20 protocol.

ianco commented 1 month ago

I believe the cause is the "abbreviated webhooks" fix, where we don't send the entire payload with the webhook. There's a --debug-webhook option on aca-py, I think we just need to enable this. Just testing now but it should be a fairly simple fix ...

ianco commented 1 month ago

See PR https://github.com/bcgov/aries-vcr/pull/783

I think this repo needs to be updated? --> https://github.com/bcgov/orgbook-configurations

WadeBarnes commented 1 month ago

Thanks @ianco, I can update the other repo. I'll likely use the env var form of the config to enable that. Does that only need to be enabled on the OrgBook (holder) side?

ianco commented 1 month ago

Does that only need to be enabled on the OrgBook (holder) side?

Yes, just on the OrgBook side. The issuer is fine, no changes required.

PS for my local testing I used the updated aca-py for both issuer and OrgBook (they both use the same image built by the aries-vcr docker scripts). Theoretically it should still work it we update OrgBook but leave the issuer on the older aca-py version, we may want to test that in our test environment ...

WadeBarnes commented 1 month ago

Deployment configuration changes here: