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

feat: credentialStatus support #814

Conversation

tsabolov
Copy link
Contributor

In order to support credential status checks a checkStatus function must be passed to vc.js's method verifyCredential. A signature of verifyCredentialLD method was changed to support the alternative call with checkStatus member.

@mirceanis
Copy link
Member

Thank you for the contribution!

We had a slightly different idea for how credentialStatus fields could be handled and checked.
We were thinking that a Veramo plugin that exposes a method such as checkStatus(credential, options) would be a better option.
This method can be called automatically during verification, or directly by the user.

The first reason for this is that there can be multiple status methods (RevocationList2021, EthrStatusRegistry2019, CredentialList2017, etc..) and they have different requirements and implementations. From this perspective, this functionality is very similar to the DIDResolver plugin, which is also automatically used during credential verification.
These implementations should be "installed" during initialization and then the user doesn't have to interpret the credentialStatus field manually to decide which implementation fits. This could be done by the plugin that orchestrates these checks.

Also, all the plugin methods that we have so far in this core repository have serializable arguments. This enables us to call these methods over OpenAPI. We don't expect this requirement to hold for all possible plugins but we wish to keep it true for the core plugins.

Does this make sense? What do you think?

@tsabolov
Copy link
Contributor Author

Thank you for the detailed explanation. That makes a lot of sense, and I think that approach is more in line with what's already implemented.

Have you already started working on the feature? If yes, I would join the discussion/implementation :)

@mirceanis
Copy link
Member

Fantastic!

Some time ago we started this line of work in the form of a library that can orchestrate these implementations: credential-status.
The plan right now is to update that library to accept JSON-LD credentials as well as JWT, and maybe do some pre-processing.
Then, we plan to use that library as a plugin in Veramo.

The next step there is to redefine the interface expected from a specific credentialStatus method implementation, and to figure out if each implementation needs access to the whole credential to do its own processing or if it can run based on a credentialID or hash provided by the orchestrator library.
After that, it's just about the credential status implementations individually.

We greatly appreciate contributions, so you are welcome to jump in.
Drop by our discord if you want to chat live, but also feel free to post ideas here or in the credential-status github repo

@mirceanis
Copy link
Member

See uport-project/credential-status#39 for some progress on the credential format support

@mirceanis
Copy link
Member

@tsabolov do you know of any implementations of credentialStatus methods that you can point to?

@tsabolov
Copy link
Contributor Author

Sorry @mirceanis, somehow missed your message. Need to review my GitHub notifications settings.
We are going to use our own RevocationStatus2021LDAP for one of our projects. It's still a draft, so I'd not include it into the list yet.

@stale
Copy link

stale bot commented Apr 18, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix This will not be worked on label Apr 18, 2022
@stale stale bot closed this Apr 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
wontfix This will not be worked on
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants