digitalbazaar / bedrock-vc-issuer

Bedrock Verifiable Credentials issuer software
Other
1 stars 3 forks source link

Add support for vc-status-list #69

Closed aljones15 closed 2 years ago

aljones15 commented 2 years ago

In the next major rewrite we need support for https://github.com/digitalbazaar/vc-status-list

This will require changes to at least:

https://github.com/digitalbazaar/bedrock-vc-issuer/blob/b0a6b056d5c00facd2b9393b32b14b3e0e66df21/lib/ListManager.js

and:

https://github.com/digitalbazaar/bedrock-vc-issuer/blob/b0a6b056d5c00facd2b9393b32b14b3e0e66df21/lib/issuer.js

Spec: https://w3c-ccg.github.io/vc-status-list-2021/

We also probably need to continue support for revocation list. The suggested way of handling this is to use issuer options: https://github.com/w3c-ccg/vc-api/blob/main/components/IssueCredentialOptions.yml#L38-L44

JSAssassin commented 2 years ago

@aljones15 @dlongley Regarding this issue, it looks like we need to add an additional field to the StatusListOptions that will check if it is StatusList2021 type to issue a VC with StatusList2021 type credentialStatus and if that field is not present then it will issue a VC with RevocationList2020 type credentialStatus.

What should that field be called?
[ { statusPurpose: 'revocation', suiteName: 'Ed25519Signature2020’, (NEED_NAMING<type?>): StatusList2021 } ]

Also, what should happen when there are multiple status options.. for example [ { statusPurpose: 'revocation', suiteName: 'Ed25519Signature2020’, NEED_NAMING(type?): StatusList2021 }, { statusPurpose: 'revocation', suiteName: 'Ed25519Signature2020’ }, { statusPurpose: 'revocation', suiteName: 'Ed25519Signature2020’ }] OR [ { statusPurpose: 'suspension', suiteName: 'Ed25519Signature2020’, NEED_NAMING(type?): StatusList2021 }, { statusPurpose: 'revocation', suiteName: 'Ed25519Signature2020’ }, { statusPurpose: 'revocation', suiteName: 'Ed25519Signature2020’ }]?

And currently, there are ongoing discussions around updating the vc-status-list-2021 spec https://github.com/w3c-ccg/vc-status-list-2021/pull/24 I am not sure if it has been resolved and what the status on that is. Is it okay to make the update here to support StatusList2021 and multiple status options while the spec is still under rework? Do I need to wait for the status list 2021 spec to be updated before making the changes here?

dlongley commented 2 years ago

@JSAssassin,

No changes should be made to this repo yet. But, yes, we do need to eventually sort out the questions you raised. Some of the questions are known already, e.g., we've known about needing a new param and have been waiting to figure out naming. Some of the questions may have answers like "we don't allow that", e.g. multiple status types = Maybe not allowed, multiple status purposes = allowed and just uses the array format.

dlongley commented 2 years ago

Addressed by #83.