w3c-ccg / traceability-interop

Verifiable Credentials for Supply Chain Interoperability Specification for HTTP

Home Page:https://w3id.org/traceability/interoperability

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Align "workflows" concept in VC API and Traceability API

msporny opened this issue · comments

After months of discussion regarding the Exchanges section of the VC API, the group has settled on two terms that have consensus in that group; a "workflow" and an "exchange".

The workflow defines some business rules and defines one of the possible flows that users can go through. An exchange is a specific instance of a workflow that is bound to some sort of session with a client (e.g., Holder). You can read more about the discussions that led to this terminology here:

w3c-ccg/vc-api#285 (comment)

We are also aware of the concept of workflows in the Traceability API and have endeavored to ensure that the concepts are aligned, and at this point, we believe that they are:

https://w3c-ccg.github.io/traceability-interop/draft/#workflows

The only difference is that it doesn't seem like the Traceability API defines endpoints for workflows and exchanges (which is fine, those endpoints are optional and Traceability can choose to implement their workflows through a different mechanism if they see fit, such as via the /presentations/available and /presentations/submissions endpoints).

This issue is just to ensure that the Traceability API group is aware of this latest decision and doesn't see any issue as implementers continue to implement VC API Exchanges.

Issue discussed on the call, mainly among Transmute and Mesur: No significant interest expressed in investing into ensuring alignment - at least not yet. Pending input from Mavennet on the topic.

@mkhraisha please comment on this.

We'll need to update this, to account for key binding in SD-JWT... I suggest we close this for now.

It was mentioned that the workflows endpoints in the traceability spec are mostly relating to enabling multiple presentations to be shared under a same exchange flow. Please correct me if I misunderstood @nissimsan . @msporny clarified that the intention of this issue is to ensure that the decisions of the vc-api employing the workflow terminology in this context is close enough to the workflow use case in the traceability spec so this term could be used in both spec without creating confusing and misalignment. This discussion will be continued in the vc-api call. I suggest leaving this issue open for a few more weeks before closing it and have a another short review before end of year to conclude.

@PatStLouis to discuss with the VCAPI group about current understanding between two concepts.

To capture what was discussed at the traceability call is that workflows are a logical grouping of multiple credentials across multiple presentations around a specific topic. Ex an issuer and/or verifier would include the same workflow id across multiple presentations over the span of an engagement (can go up to a month+)

The group discussed this on 2024-01-09:

@PatStLouis gave the group some background on the discussion that he had with the Traceability cohort. @msporny noted that the concept still didn't sound different enough to say that they're incompatible. @PatStLouis felt uneasy about their compatability. @dmitrizagidulin agreed with @msporny, conceptually seemed similar; the mechanism is a unit of configuration, workflow id to exchange some VPs back and forth. There is a mechanism to switch API endpoints/modes (talk HTTP, switch to QR Code, interact to continue). Unit of configuration which might not apply to Traceability, method of switching communication channels, might not apply, but thread id maps almost directly. @dmitrizagidulin could see how we could unify the two. @PatStLouis noted that he doesn't think there is a technical clash or use cases, but terminology not used in exactly the same way. One approach doesn't prevent the other. Don't see how they are conceptually similar. @dlongley One way they could be used together to include workflow IDs and presentations so that you're keeping w/ linkings/groupings, but signal how you could tell someone how they could go create a new exchange to continue linking credentials together -- ways to use mechanisms together so they complement one another. @msporny asked if we needed to change the use of word "workflow", or if they're different we could say how. @dlongley didn't think "workflow" language needed to change. @PatStLouis noted that Traceability Interop Profile re-uses some parts of VC API, but it might not be clear what comes from VC API and what is Traceability Interop spec related.

The end result of the discussion was that the VC API group would define "workflow" and continue to use the terminology and can add clarifying terminology wrt. Traceability Interop Profile if the terminology deviates greatly, if that is desired by implementers.

I think this issue can be closed as there is a new section to be added in #529 , the two separate specs are now clearly tackling different things and this should reduce any confusion