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

Holder: store <credential> #71

Closed
atjohnston204 opened this issue Nov 16, 2020 · 13 comments
Closed

Holder: store <credential> #71

atjohnston204 opened this issue Nov 16, 2020 · 13 comments
Assignees
Labels
authorization This issue is related to authorization

Comments

@atjohnston204
Copy link

Preface: I'm new here. I'm opening this issue at @troyronda 's suggestion.

I was wondering if it makes sense in the context of this API to have a Holder operation to support an issuer pushing a Verifiable Credential into a "credential repository" of a Holder. This operation would require the Issuer to have the authorization of the Holder to store a VC in a repository.

@peacekeeper
Copy link
Member

I guess the question is how does the Holder part of this API relate to the Universal Wallet interfaces? @OR13

@OR13
Copy link
Contributor

OR13 commented Nov 17, 2020

The universal wallet has a set of abstract interfaces which can be mapped to the vc-http-api or vc-js, or other some custom process.

They include:

  • issue
  • present
  • verify

There are a couple ways an issuer might push such a credential, but the universal wallet spec has no opinion on how that kind of thing would happen.

In the past, we have used CHAPI to store credentials in a wallet.

Another option would be to give the issuer a write capability to the holder's edv.

both I think are slightly out of scope for this work item, which is focused on getting http api's to cover the core operations of the vc data model.

@msporny msporny added the authorization This issue is related to authorization label Nov 16, 2021
@msporny
Copy link
Contributor

msporny commented Nov 16, 2021

This was discussed on the 2021-11-16 call, this came up in some of the data flows that @jandrieu is working on.

There is an EDV, there is the ability to access that by people other than the holder, that's fair ground for having this conversation.

What is the scope of the VC Issuer API? This falls in the category of what is the scope of VC API for an issuer. If we start with this being in scope, then it's clear that the request can indicate whatever. But I'm not clear how we are scoping the Issuer part of the API. I think of Issuer to be separate from Holder and Verifier.

We have envisioned these endpoints as call and your'e done. We don't have async/interative flows -- initiate a flow, callback through different channel, that API for callback is fair game for scope. When you're "done" send it to my storage, async flow, we haven't teased out how to do it yet.

If there is an issuer of a background check, background check could take up to 24 hours to happen... there is a 24 hour period where credential isn't available, but after background check is complete, you want to push to their wallet. This could be solved in other ways outside of this API, willing to let this issue sit until someone comes up with a concrete use case they want to see implemented. There may be other ways to solve this use case that don't impact this API.

The group would like to see a concrete use case for this issue in order to have a more detailed discussion around this. Assigned to @agropper.

@OR13
Copy link
Contributor

OR13 commented Nov 16, 2021

Should a holder be able to store credentials and presentations using an http api?

@TallTed
Copy link
Collaborator

TallTed commented Nov 16, 2021

@OR13 - Do you have reasons why {an issuer, a holder, a verifier} should not be able to store {credentials, presentations} using an http api? I'm not sure that any of these need a devoted API (that is, I think one API signature could be used by all three for all two), but I might be missing something, in which case it seems that a 3x2 matrix should be set up and filled in...

@OR13
Copy link
Contributor

OR13 commented Nov 16, 2021

@TallTed its a question regarding the scope of the API... This api could define add and remove interfaces for credentials and presentations... to date, it seems like folks are relying on CHAPI / DIDComm for that kind of interoperability.

If adding and removing is out of scope for the VC API, it will likely be solved for elsewhere, and developers will gravitate to the apis that define all the functionality they need.

its not clear to me that the w3c ccg wants to solve the problem of:

  • As a holder I can use the vci-api to store a credential I obtained from "CHAPI/DIDComm/etc".
  • As an issuer I can use the vci-api to store a credential I obtained from "CHAPI/DIDComm/etc".
  • As an verifier I can use the vci-api to store a credential I obtained from "CHAPI/DIDComm/etc".

@agropper
Copy link
Contributor

agropper commented Nov 17, 2021 via email

@msporny
Copy link
Contributor

msporny commented Nov 17, 2021

its not clear to me that the w3c ccg wants to solve the problem of:

Note that at least one of us are using EDVs to do that... which is what @mavarley might have also been alluding to. We have delegation-aware storage/retrieval systems today (EDVs). That said, perhaps people want it to be more decoupled?

@OR13
Copy link
Contributor

OR13 commented Nov 17, 2021

This is not the edv working group or work item... its the vc-api, I don't think we should assume anyone is using EDVs here.

If this vc api defines a store, retrieve and remove operation for credentials, I would be fine saying that it can be powered internally by EDVs, MongoDB, IPFS, or Identity Hubs... but I am very strongly opposed to mandating their use for store, retrieve or remove operations in the vc-api.... if the vc-api will even support those features (store, retrieve, remove)

@agropper
Copy link
Contributor

@OR13 I'm having trouble following the discussion of what's in scope for vc-api. I suggested some text #252 in a related context.

Could you describe in non-technical terms the role of vc-api as you see it?

@agropper
Copy link
Contributor

PR add section in privacy considerations about issuer #830 is also directly relevant to this issue.

@msporny
Copy link
Contributor

msporny commented Mar 20, 2022

This issue seems to have stalled. What is the next action item here?

@OR13
Copy link
Contributor

OR13 commented Mar 21, 2022

There are no "storage" endpoints defined for wallets / holders... that means no "add", "get", "remove", or "list" endpoints for holders.

It seems that folks would prefer cloud wallets define such APIs elsewhere, reopen if you disagree.

@OR13 OR13 closed this as completed Mar 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
authorization This issue is related to authorization
Projects
None yet
Development

No branches or pull requests

7 participants