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
51 stars 45 forks source link

Define Architecture for LOB OrgBook Issuer #708

Closed hiteshgh closed 7 months ago

hiteshgh commented 1 year ago

We have the following ways to do a OrgBook Issuer:

We also have Traction that could be used in the scenarios above:

Given where we are, if we had a new OrgBook Issuer arrive today, how would you deal with it? Assume you have a couple of months for the deployment, what would you do to enable the best long term solution?

Bonus points: A whole set of OrgBook issuers could operate by uploading Excel spreadsheets of their permits/licenses. How would you deal with that model? Imagine a town arriving, and wanting to define their credential, and then every week sending a spreadsheet of their licenses. The app checks any changes (additions, deletions, updates) and then updates are made to OrgBook via ACA-Py issuances.

swcurran commented 1 year ago

Updates to the description made @amanji @esune

hiteshgh commented 11 months ago

Assigned to Emiliano, Lucas and Stephen for review

loneil commented 11 months ago

Yeah I think the info above makes sense. Not sure if there's any further architecture to review or anything. I haven't seen the "partially complete OrgBook Issuer Agency"

If the Issuer Agency app is keeping a variable amount of tenants that could be used

esune commented 11 months ago

The aries-vcr-issuer-agency was basically feature complete, when @amanji and I finished development. It is specific for OrgBook issuers and our thought was to see if/how we can hook-up Traction tenants rather than have the agency manage tenants independently (i.e.: the controller is managing all of the multi-tenancy stuff and exposing an api-key for each tenant to hide keys from them).

loneil commented 11 months ago

I've always had this "grand vision" that there could be some "Common Hosted VC Service" or something that allows different BC Gov areas that don't have ability to build or heavily edit their own LOB apps to do issuance/holding/verification through a secured common app. Kind of like how CHEFS works (and that gets heavy usage now) but with a lot more.

It could have

Some hybridized ideas from CHEFS and NB Orbit enterprise platform. Tenant UI is still there as the tenant management console (just like Keycloak console interface), but some much more complex app that lets people actually do the things we don't want them doing in the Tenant UI.

But anyways, rambling... 😄 Would be a pretty big project, would need a lot of business use onboarded for any decent ROI.

But this issuer agency seems to have some of the beginnings of that concept.

esune commented 11 months ago

Yes, the idea is shared - also agree that the effort required is more than what we can spare right now as things get quite complicated quite fast.

For this issue, I think what we need to consider is how to integrate the existing aries-vcr-issuer-agency with traction: the issuer agency is a solution specific for OrgBook issuers, it already handles multi-tenancy (natively, not through traction) and provides a more user-friendly set of configurations (as well as a helper to put them together) than the aries-vcr-issuer-controller does. Now, we could stand-up the project as-is just to handle OrgBook issuers, however it would be nicer if we can use the traction agency and connect the API service to it.

I think the focus of this should be on:

hiteshgh commented 10 months ago

@esune to advise on state of this ticket

github-actions[bot] commented 8 months ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.

github-actions[bot] commented 7 months ago

This issue was closed because it has been stalled for 5 days with no activity.