The W3C Credentials Community Group

Meeting Transcriptions and Audio Recordings (2014-today)

Go Back


W3C CCG Weekly Teleconference

Transcript for 2024-04-02

Our Robot Overlords are scribing.
Harrison_Tang: Hello everyone uh welcome to this week's uh W3 ccg meeting uh today uh we are excited to have Benjamin Yuen.
Harrison_Tang: DC verifiable credentials test Suite uh but before we get to the main agenda uh just want to go over some administrative stuff.
Harrison_Tang: So first of all just a quick reminder on the call of ethics and professional Honda just want to make sure we have a constructive uh respectful uh comments and conversations.
Harrison_Tang: Now a quick uh note on the intellectual property uh anyone can participate in these calls Harvard or substantive contributions to any ccg work items must be members of the ccg with 4 IP agreements signed.
Harrison_Tang: so if.
Harrison_Tang: You don't have.
Harrison_Tang: Have a w3c account or encounter some issues uh or have any questions uh feel free to reach out to any of the cultures.
Harrison_Tang: A quick note on the code notes uh these meetings are being automatically recorded and transcribed uh we will try to publish uh these uh meeting minutes and uh audio and video recordings in the next uh.
Harrison_Tang: 4 to 48 hours.
Harrison_Tang: Uh we use GT chat to cue the speakers during the call.
Harrison_Tang: Uh so you can type in Q Plus to add yourself to the queue or cue minus to remove and you can type in Q question mark to see who is in the cube.
Harrison_Tang: All right uh.
Harrison_Tang: Quick notes on the introductions and reintroductions so if you're new to the community or you haven't been engaged uh with the community and want to re-engage uh feel free to just unmute and introduce yourself.
Harrison_Tang: All right well very well coming to all new members so uh whenever you feel not as shy uh and want to introduce just uh type in Q Plus and I'll call you uh.
Harrison_Tang: when you're.
Harrison_Tang: All right next uh announcements and reminders uh any announcements and or reminders.
Manu Sporny: Yep just uh 2 things uh so the first item is that the BBS cryptography Suite that this.
Manu Sporny: Community worked on uh has been approved to enter into the candidate recommendation phase at the worldwide Web Consortium that basically means like we are done from a design standpoint and an implementation standpoint I just put 2 links to the transition approval and the document that will be published uh as an official candidate recommendation tomorrow uh wait is if.
Manu Sporny: It's today.
Manu Sporny: Sorry Thursday I'm getting mixed up on my dates um so this will go out on Thursday published as a w3c uh proposed uh recommendation um the other thing um is that uh if you are a w3c uh member um there is a um uh uh a vote um so rdf data set canonicalization uh went to uh proposed recommendation so that is the step that's the phase after.
Manu Sporny: Candidate recommendation proposed recommendation is when it goes to all 450 plus member organizations at w3c uh for an official vote um that uh.
Manu Sporny: Uh vote uh went out I think a week uh or so ago um there is a um uh a voting page that I will get a link to um sorry 1 second uh.
Manu Sporny: Link address so in the um chat Channel there's the voting link uh for approval of the rdf data set canonicalization algorithm that thing is used to digitally sign verifiable credentials um for that are protected using data Integrity so that is a a very important uh piece of uh the puzzle if you're a w3c member please go in and uh vote um uh uh on it um the vote is open until the.
Manu Sporny: 23Rd of April um so a couple more weeks um 2 is 3 ish more weeks uh open um once we get enough votes then uh it is transition to a global standard so if you're a w3c member uh please take this time to go and vote uh in favor of it uh if uh you like verifiable credentials and data integrity and that kind of stuff.
Harrison_Tang: Thank you man.
Harrison_Tang: Any other announcements or reminders.
Harrison_Tang: So a quick uh preview of of what's coming so next Tuesday uh we have uh someone from Summer protocols uh to talk about uh their initiatives there and then the week after the week of uh on on April 16th will.
Harrison_Tang: skip the.
Harrison_Tang: Ccg meaning because uh that week we have uh internet identity Workshop.
Harrison_Tang: And then the week after that on April 23rd uh we actually have a on door 1 of the cultures of decentralized web know to actually talk about the latest uh initiative and work items in the dwn.
Harrison_Tang: And then the week after on April 30th uh will will lead a discussion on the ccg roll back.
Harrison_Tang: All right so that's uh what's coming in the rest of the April and uh I guess uh that goes to the another reminder is the internet identity Workshop will happen uh during the week of uh April 16th so uh.
Harrison_Tang: Again you have you have if you haven't signed up uh please do and uh for that week uh we will skip the ccg meeting.
Harrison_Tang: Any other announcements or work in mind reminders.
Harrison_Tang: Uh by the way just a quick note uh I also saw a note that the implemented draft for the open ID verifiable credential issuance has been uh approved so uh.
Harrison_Tang: you know.
Harrison_Tang: So yeah if you're curious you can uh uh go there and then the look at the draft.
Harrison_Tang: That was a major Milestone so just saw that in 1 of the email threats.
Harrison_Tang: All right uh.
Harrison_Tang: what guy.
Harrison_Tang: Uh any updates or questions on the upwork items.
Harrison_Tang: So there's a new work items in regards to the the ethereum signature uh so that has been uh submitted and multiple people and organizations have uh supported it so I uh moved that to approve work items for the ccg and uh here's the link to that particular.
Harrison_Tang: Uh work items so if you have any questions or comments uh feel free to just just uh go to the link but uh we had that presentation uh I think uh a week or 2 weeks ago 2 weeks ago and uh that was.
Harrison_Tang: uh quite.
Harrison_Tang: Um by Andreas and uh.
Harrison_Tang: So there's a new work item that that has been submitted.
Harrison_Tang: Money of course.
Manu Sporny: Yeah yeah I mean if it's approved then um the next step is to move it into the ccg which I'm happy to kind of initiate that transfer and then you know we start working on it meaning the people that are interested in that um specification start working on it.
Harrison_Tang: All right any other questions or comments.
Harrison_Tang: All right so let's get to the main agenda so uh we got Benjamin uh from the digital Bazaar actually presenting and you know leading a discussion on the VC test Suite so Benjamin uh the floor is yours.
Benjamin Young: Thank you Harrison um hello everybody I'm Benjamin Yuen with digital bizarre and um a w3c veteran for about 10 years um we may have crossed paths or or maybe not um was part of the web annotation working group back in the day web publishing and I'm currently chair of the Json LD working group um consequently test Suites at the w3c have been something I've worked on for a while now and I want to show you where we're at with the.
Benjamin Young: Suites for the verifiable credentials working group as well as the ones in flight for the ccg.
Benjamin Young: And that will tempt State and try and present here.
Our Robot Overlords are scribing.
Benjamin Young: So the de.
Benjamin Young: Velopment of the test Suite.
Benjamin Young: To happen towards the end of a working group's life cycle.
Benjamin Young: Because the specs move around so much.
Benjamin Young: Prior to that these test Suites are not just um unit tests for some implementation or and implementation but they're actually meant to validate that.
Benjamin Young: Specification language is um both itself testable.
Benjamin Young: And then that implementers have been able to implement it bypassing those tests so.
Benjamin Young: Um in this list and the ones that digital bizarre is contributing to our.
Benjamin Young: Focused on.
Benjamin Young: Must statements into um the test data so that you can move between the 2 Worlds and validate that the the surrounding spect text is also being implemented when you're hopefully going through these test Suites and updating your implementations to to match the latest test Suites.
Benjamin Young: So this.
Benjamin Young: WG test Suites again the digital bizaar is focused on creating.
Benjamin Young: Um that includes the core data model and then uh for.
Benjamin Young: Integrity related test Suites.
Benjamin Young: All of.
Benjamin Young: Currently configured through this uh VC test Suite implementations repository which will take a look at later.
Benjamin Young: That holds uh implementation configuration files that basically tell uh the runner which runs every Sunday night.
Benjamin Young: What in.
Benjamin Young: Points to hit.
Benjamin Young: Um authentication scheme.
Benjamin Young: Whether that's oath to or zaps um or something else zaps in a lot fewer than ones that we support currently.
Benjamin Young: The Runner every Sunday then we'll go through each of these test Suites.
Benjamin Young: Um use that.
Benjamin Young: That implementation data.
Benjamin Young: And then generate HTML reports from each of these test Suites.
Benjamin Young: Because of the movement in the specifications for the last several months um none of these should really quite be considered done um the closest 1 to complete would be the ecdsa test Suite um but we're hoping to get them all.
Benjamin Young: Wrapped up.
Benjamin Young: Uh final implementation review in the next month or so um they are however all currently usable and uh we do invite everyone to especially on this call to work to wire in their implementations um we'll take a look in a minute at local configuration for testing stuff on local host or um testing something you're not ready to publish but if you already have a spec or if you already have an implementation you believe is compliant with any of the specifications seen here or on the next slide um you can go ahead into this repository and um create some Json that Maps your implementation endpoints into the.
Benjamin Young: The test Runner essentially.
Benjamin Young: This is the community group list of tests um again the Debbie that digital Bazaar is working toward these are currently lower priority as they're not in the way of spec Publications at present um but we have tried to model them on the same process and.
Benjamin Young: Uh the same.
Benjamin Young: Json format for the implementation.
Benjamin Young: Same runner system and Publishing process in hopes that we can receive other contributions and it's an easy thing for people to to participate in both in terms of setting up their implementation.
Benjamin Young: Testing it and then.
Benjamin Young: Adding or iterating on test.
Benjamin Young: So you'll see um.
Benjamin Young: Bit string status list is in this uh the core this is actually a shared Library I copy and pasted that accidentally um it's used in the other data Integrity tests earlier.
Benjamin Young: And then.
Benjamin Young: PC API endpoints and uh the VC refresh stuff um.
Benjamin Young: Are likely many more to come in the community group as the community group takes on new.
Benjamin Young: New tasks and new.
Benjamin Young: Specifications we hope to be starting.
Benjamin Young: These test Suite earlier in the process.
Benjamin Young: So that they can tag along with the spec and that we don't have to like catch up um towards the end of the process after it moves to the ewg.
Benjamin Young: Core hope being.
Benjamin Young: Not only is just part of the process but part of the the whole process and not just the end of the process.
Benjamin Young: The local config file that you can create to wire up an implementation um contains essentially the Json format that you can publish to that implementations repo.
Benjamin Young: That says you.
Benjamin Young: Who the vendor or supplier.
Benjamin Young: Of this implementation.
Benjamin Young: Um what the name of the implementation is where you can find out more about it and then contains keys for issuers verifiers VC holders VP holders um and we'll look at some of that documentation in a little bit.
Benjamin Young: And then those implementations are further tagged with what specifications.
Benjamin Young: You want.
Benjamin Young: At that.
Benjamin Young: Point so you can.
Benjamin Young: This endpoint is for um the VC 2.0 data model test Suite only or it does the VC 2.0 test Suite data model stuff and ecdsa.
Benjamin Young: DDD essay and you can tag each of these um.
Benjamin Young: So if you have.
Benjamin Young: You know some production.
Benjamin Young: Ations that you want to tag with certain things.
Benjamin Young: And then Q&A or early stage stuff you can tag those separately um and if you needed you could.
Benjamin Young: Have multiple implementations.
Benjamin Young: So a setting.
Benjamin Young: Your local environment so that you're not testing everybody's stuff um out the gate and instead able to tune what and when you test things um locally.
Benjamin Young: Each of these test Suites output a report that's in HTML follows w3c standard uh designs for these sorts of things um and then there's a table comparing the must statements with who's passing them failures get a red X skips get a a gray box and in addition to what you see here there's also some listed for interop those are additional tests that um.
Benjamin Young: Not only after.
Benjamin Young: These must statements have been.
Benjamin Young: Tested but in addition to that we do interop tests where we move the same.
Benjamin Young: Sort of.
Benjamin Young: Um each of the implementations back and forth to see if they can uh cross validate and um do certain handshake steps together depending on the depending on the test Suite being run.
Benjamin Young: And that oops.
Benjamin Young: 1 Second.
Benjamin Young: That back here is what you can disable so you don't have to be doing full interrupt testing all the time.
Benjamin Young: The other thing I wanted to mention was something we emailed out a couple.
Benjamin Young: Weeks ago.
Benjamin Young: Um can I vc.com.
Benjamin Young: Uh is an attempt to aggregate the data around all of these um test Suites because each of I'm going to go back a slide each of these test Suite reports um basically sit parallel to the specification that they're for um which is great for w3c process but if you're trying to understand.
Benjamin Young: Which thing.
Benjamin Young: Use to you know to create Voltron um you you may not be able to see the forest for the trees so um we've started aggregating that data and creating what we hope becomes something like a can I use.com site for the verifiable credentials ecosystem.
Benjamin Young: Um and before I head into the repos are there any questions about any of this or.
Benjamin Young: Basic idea that we're.
Benjamin Young: Looking at.
Benjamin Young: All right let me.
Benjamin Young: You know our presentation mode.
Benjamin Young: Um as mentioned the VC implementations repo and there's 1 in the ccg that sits parallel to the 1 in the w3c OR.
Benjamin Young: Um and back on the slide deck uh I'll make all these links and share this deck out um with the mailing list.
Benjamin Young: W3c org has all the main um working group repositories and then the ccg has its own organization on GitHub where those test Suites lift just to make that a little clearer.
Benjamin Young: So the implementation format um as I mentioned has tagging for which.
Benjamin Young: Implementation you want to test you can see this demo here has issuer an issuer endpoint and a verifier endpoint uh they've both been tagged to do ecdsa um rdfc 2019 tests and they're using a particular key.
Benjamin Young: And that's all fully described in here and again your local implementation.
Benjamin Young: When you get started um.
Benjamin Young: Will look very similar to that.
Benjamin Young: The hope is that you can start locally test whichever specifications you need to as you develop either on a QA environment or on your local machine and then have something you can copy and paste essentially into that implementation space in order to get um your stuff tested.
Benjamin Young: Every Sunday as I said um the tags that work in the different spaces are in their readme on these implementation reports so the w3c ones map to the specifications mentioned the VC 2.0 um Ed.
Benjamin Young: Ecdsa and ecdsa SD.
Benjamin Young: And eddsa um are all tagged appropriately ecdsa does have a few more uh configuration knobs and dials the ccg version of this has a similar tag section but with tags for those specifications.
Benjamin Young: Um 1.
Benjamin Young: Key thing to point out when you're wiring this up the.
Benjamin Young: Trying to find where they're read read me States this um.
Benjamin Young: Is expected to be.
Benjamin Young: A very minimal.
Benjamin Young: Dapi HTTP set of endpoints.
Benjamin Young: And it's essentially just passing in a test Vector material.
Benjamin Young: Minus some options depending on which test Suite you're in.
Benjamin Young: And that HTTP endpoint can then wrap.
Benjamin Young: Whatever you're testing be it a crypto Suite or a a non VC API um endpoint that can handle.
Benjamin Young: Um and Gregg Bernstein in uh the community group has created a.
Benjamin Young: A sample um minimal expressjs http.
Benjamin Young: Server environment for testing his implementations and share that publicly as a way to quickly get started if you have uh crypto Suites or a status list implementation or any of this and so we'll be we'll be revisiting um.
Benjamin Young: Path smoother as well but right now it's essentially just a handful of endpoints either that your um implementation already supports or if it doesn't it's very minimal um server code JavaScript python Etc to relay the stuff to your endpoints and back.
Benjamin Young: And I'll show you 1 of the full reports this is the 1 that I showed a screenshot of earlier.
Benjamin Young: Each of them.
Benjamin Young: Very familiar w3c.
Benjamin Young: What's being tested whether that's issuers um verifiers and then there are the interop tests that I mentioned where keys go back and or not keys but credential data test vectors are moved back and forth between implementations and you can work to find the overlap for where things are compatible or not and then dig into some of the reasons for why they may not be.
Benjamin Young: Any other questions.
Benjamin Young: Jordan sweet I guess um all these test Suites are uh BSD licensed as per w3c process and Ken and I we hope will be contributed to by more folks in the in the working group and the community group so feel free to dive into these for implementation as well as for critique and contribution uh 1 last note for me we do have the tests we office hours that we've been running every 2 weeks if you are looking to implement or if you've started to and you've hit some snags that's a great time to get a hold of myself and the team at digital Bazaar who are developing these tests weeks.
Benjamin Young: We do those uh fortnightly um on Wednesdays so our next 1 is tomorrow at 10:00 am Eastern Time.
Benjamin Young: We'd love to have you come and I'll I'll email the ccg and WG about that later today.
Benjamin Young: And thank you Harrison for this time.
Harrison_Tang: Thank you Benjamin uh any questions.
Harrison_Tang: So a quick question um Benjamin is uh I saw that there's a test uh suite for the data model and then the data Integrity stuff like are there anything else like we should add test switch to or like this actually covers pretty much everything.
Our Robot Overlords are scribing.
Benjamin Young: Not even a handful there's maybe 2 or 3 that do not yet have test Suites from us that they still may exist um I believe Josie cozy folks have started a test suite and I believe there was also a traceability test suite and then there are a handful of others for some other ccg specs um I'd be more than happy to collaborate with anybody working on those um we obviously have a lot of experience doing this and have a pretty consistent test Runner environment that's set up again that runs on Sunday mornings and generates these mocha based test reports um so if if anyone is contributing to a spec that they're like I don't know that we have tests yet um please come to the office hours tomorrow and let's talk about that and see how we might help jumpstart you with some of the material we already have.
Benjamin Young: We we do as a group need all of those things tested.
Benjamin Young: We've just been focusing on the ones we know best um and can write tests for the fastest but um it is part of the process.
Manu Sporny: Yeah I think the other thing worth mentioning is um the test Suites are being built in a way I mean they're they're very modular right I mean they're meant to test you know there's 4 each spec that goes through the standardization process a w3c there's supposed to be a matching test Suite um that's just a part of the w3c process um the extra stuff that we're doing as Benjamin said is like making this like a weekly thing usually usually the process is just like just test it once and if you can demonstrate that at least to implementations implemented every feature in the specification like you're done and then what ends up happening is like these things are never tested after that and then you have like.
Manu Sporny: Uh implement.
Manu Sporny: And all that.
Manu Sporny: Kind of stuff.
Manu Sporny: Um but the but the other thing that you know so we're you know we're going for like no these test Suites are run on a weekly basis so week to week you know you know which which implementations follow the spec uh which implementations are interoperable with 1 another which implementations are you know implementing what feature and and so on so forth that's where the can I can I VC site comes in um but the other other kind of I think benefit to this this approach that uh Benjamin and the team have been working on is um the the w3c ccg nor the VC WG needs to be the ones that are writing like modular tests like we've had a number of like interesting new proposals come across the ccg mailing list and there is nothing stopping any other community from using the kind of test Suite infrastructure that's been built and building tests for their specification that might be worked on like elsewhere.
Manu Sporny: In another.
Manu Sporny: Standards body another community group uh stuff like that so what we're trying to also do here is kind of like decentralize the way these things are tested like it doesn't have to happen to w3c and it doesn't have to happen in the ccg it can happen um in in other communities.
Manu Sporny: But we now have a tool you know tooling that allows us to kind of uh collate all of those results together and to kind of like a unified view of the verifiable credentials uh ecosystem.
Manu Sporny: That's it just.
Harrison_Tang: Thank you man.
Harrison_Tang: Benjamin you have more comments.
Benjamin Young: Yeah um yeah thank you for that Manu I wanted to follow up something he said about the way testing at the w3c often works is that it's a 1-time thing because again it's it's testing the specification.
Benjamin Young: All caps um in order for the spec to reach technical recommendation but then that tends to just stall um when I was part of the web annotation working group um a lot of what I did in the last uh waning months of that um experience was work on the test Suites.
Benjamin Young: And we create.
Benjamin Young: These and there was.
Benjamin Young: A lot of energy.
Benjamin Young: Around you know.
Benjamin Young: Getting on that implement.
Benjamin Young: List and being part of that and even contributing to it for a bit and um.
Benjamin Young: So either.
Benjamin Young: All this energy.
Benjamin Young: And Fanfare and you know champagne bottles cracked on the sides of boats and whatever else happens um and then it just sort of stops um and what what I saw.
Benjamin Young: With the web annotation was that everybody you know left the party and and then nobody was really paying attention after that because it had essentially served its purpose to test the specification um meanwhile we had a whole lot of people show up late to the party who were not part of the working group who tried to come to the community group and say you know we we want to test our implementation which was still possible like the infrastructure was still there you could still do it but there was less incentive there was not a community that was excited about the fact that these test Suites were there and that they could be used um but there was a community the newcomers that desperately wanted to use it and wanted to see it maintained and wanted to get their you know gold star from the w3c for having passed the test Suite.
Benjamin Young: So 1 of the hopes.
Benjamin Young: That mono expressed.
Benjamin Young: And what he was sharing was that by running these uh weekly and by trying to get to a place where uh we're also promoting them and Aggregate and and encouraging the constant running of this that we as a community have um.
Benjamin Young: Let's say a longer line.
Benjamin Young: Lasting celebration I guess.
Benjamin Young: That continues to point to.
Benjamin Young: The Importance of Being spec compliant and and the benefit of being spec compliant so that when we have newcomers which is a pretty constant thing especially at the community group um that they have a place to go to get said gold star to to learn how to implement their stuff from these test Suites and then show the world and the rest of the community that they are interoperable and then it lets us as a community say.
Benjamin Young: There's actually.
Benjamin Young: It's not just.
Benjamin Young: It's it's actual interrupt and there's provable tests.
Benjamin Young: Tests that run on a periodic basis that continue to prove that.
Benjamin Young: So that that may not have been clear in the for those not familiar with the w3c test process that this is this is an expansion that we're trying to make by by running these regularly and by.
Benjamin Young: The community towards really investing in um more constant testing which we believe will be.
Benjamin Young: Super healthy for its growth and stability long term.
Manu Sporny: Yeah the the other thing I think to kind of you know pay attention to here is I'm going to share link in the chat channel uh there's this thing that w3c does call the web platform tests so you know 1 thing to note here is that um let me try and screen share I don't know Benjamin if I can screen share at the same time as as you.
Benjamin Young: Yeah I'll I'll stop so you can take.
Manu Sporny: So there's there's this concept called the web platform tests it it actually it took like a good 15 years for web browser tests like the browser vendors to get together and go like hey we probably need like a web platform testing infrastructure and it probably needs to be consistent and run regularly because there was a whole bunch of finger pointing in you know during the browser Wars of the late 1990s and early 2000s around like who was actually falling the standards and who wasn't and so um the browser vendors some of them got together and said we need objective tests to say who's passing and who's not and what we get today as a result of this is the web platform test dashboard um so there's can I use.com which tells developers whether or not they can use a feature or not and then there's the web platform test dashboard which kind of shows you like which browsers are actually following the the latest standards um these.
Manu Sporny: These are this is a graph.
Manu Sporny: How many thousands of tests each browser fails on a nightly basis and you have this data like going back.
Manu Sporny: You know many many years of you know back to back to 2019 in this in this graph but this kind of shows you like these are the browsers that are actually taking um the standard seriously and are implementing you know to the standards and then there are some that uh are not doing so well you know implementing uh against the standards for whatever reasons you know everyone's got their reasons um but you know it's it's broken down like super in a pretty super fine grained way where you can know like based on which code base you're using.
Manu Sporny: And which 1.
Manu Sporny: Also kind of see the complexity for each subsystem here like for example um.
Manu Sporny: If we look at like accelerometer like just access to the accelerometer in the browser they're like 150 tests.
Manu Sporny: But if we go down and we look at CSS there are 167,000 tests for CSS right and so that helps you kind of understand like the level of complexity that each 1 of these features uh has how good you know each each organization is is doing uh each browser is doing when it comes to that so I think you know our goal here is to try and get to this level of coverage of testing coverage um so that you know people that are looking at verifiable credential uh uh things can understand like which implementations which features are most broadly deployed uh which uh vendors are actually implementing part of the standard um uh in just to get some good kind of graphical view of like how healthy uh or unhealthy the ecosystem is based on like who's implementing What in in when.
Manu Sporny: So thought that.
Manu Sporny: But this this is kind of you know this kind of also shows like where we'd like to go uh to kind of make sure that the ecosystem continues to stay healthy when it comes to like following the standards um that that we've all you know agreed to uh in those working groups that's it.
Harrison_Tang: So um yeah I've I've actually uh seemed to uh look through the can IVC uh uh website and then uh yeah if the goal is to kind of incentivize uh constant testing and uh not just a 1-time testing that I would suggest like having some kind of time duration graph right uh because right now the can IBC websites is a snapshot of uh what's working and what's not working uh at that at the particular point in time like spider graph doesn't have time to mention so most of the most of the QA reports I see has a Time duration like what Manu just shares so I would just suggest some kind of.
Harrison_Tang: graph that includes.
Harrison_Tang: Is a Time dimension.
Harrison_Tang: Test uh compliance uh Trend over time yeah just an idea.
Benjamin Young: Yeah that's a great 1 thank you Harrison.
Harrison_Tang: And then the also another follow-up is how do we kind of know uh the flaking whether the test cases are flaky or can still be trusted.
Benjamin Young: Uh this this is to me 1 of the core values of the w3c process that it forces test code into the public um all the w3c tests are open source um and can can and should be reviewed um they're there to be looked at by the members especially if the members are doubtful of why they're implementation might be failing for some reason um it's all BSD 3 Clause licensed code um and it's is meant to be reviewed open source style and participated in ideally and contributed to um you do not get that from the vast majority of other standards bodies out there um including ones that say they're working on credentialing stuff they either have completely behind closed doors uh test Suites that can be paid for commercially that you will still never see the code for um and you know they they run the tests for you sometimes.
Benjamin Young: Or you pay to.
Benjamin Young: Run them yourself.
Benjamin Young: Tends to not be it tends to be a black box by Design.
Benjamin Young: Whereas the.
Benjamin Young: Process just like specification development the test Suites are done in the open.
Benjamin Young: Or not just member review but also the Public's review.
Benjamin Young: Newcomers Etc who are like I don't know about this spec I don't know about this implementation.
Benjamin Young: I read the.
Benjamin Young: Tests I'm going to test my implementation I have questions about how this is being tested.
Benjamin Young: You know.
Benjamin Young: That to go through review to go through iteration to be contributed to by um ideally more than 1 company we're spearheading this because we want to see these specs published um so this is just another way we're contributing to that uh that objective um but it it is done in the open to.
Benjamin Young: Exactly address the the concern that you raised their.
Harrison_Tang: All right any other questions on the test Suite.
Harrison_Tang: I'll add 1 more question like how how fast is it to kind of run the test Suite uh because uh for example I spoke to our test was quite big so you have the uh the regression test is run nightly and then the integration test is run like uh instantly you know that those kind of things so I'm just curious what's the performance uh the speed of running the test Suite.
Benjamin Young: So it will certainly depend on which test Suite you're running um they do not all have to be run together and in fact locally you.
Benjamin Young: Figured you right.
Benjamin Young: Send them 1.
Benjamin Young: At a time.
Benjamin Young: Um the Sunday Night Runner I could probably get stats from and or Sunday morning Runner I could find that and it it runs via GitHub action so it's it's not so long that GitHub is throwing us out oh I will say that um and it is also testing more than 1 implementation.
Benjamin Young: So again it's a tough question to ask but I could get you stats on that but it's not.
Benjamin Young: For like the ecdsa 1 that I've been running locally it's less than a minute right now um if that.
Benjamin Young: But it's you know it's going to depend on the implementation the test suite and whether or not you're doing interop tests or testing everybody's implementation.
Benjamin Young: You know.
Benjamin Young: Fully testing those but.
Benjamin Young: It is not also Harrison these are not unit tests so they're not a they're not doing stress testing or anything that.
Benjamin Young: To wall time.
Harrison_Tang: Got it thank you.
Harrison_Tang: Right calls for the last questions.
Harrison_Tang: Okay well thank you thanks Benjamin uh for jumping on and present the VC test Suite uh I think most of us here understand the importance of having great test Suites uh not just for uh a better ecosystem but also I think uh in many ways like for business folks or product folks like myself like we care a little bit less about how it's implemented right but rather how it actually whether you actually uh you know passes the acceptance criteria so I think test Suites are quite important uh in that so uh thanks thanks uh and thank you for your great work and contributions and help uh to the community.
Benjamin Young: Thank you thank you for this time.
Harrison_Tang: All right uh so this concludes uh this week's w3c shii meeting and uh uh you know just uh stay tuned um hopefully everyone else uh can jump on uh every Tuesday again next Tuesday we'll have uh someone from the summer protocols uh Community uh to talk about uh their initiative so uh stay tuned.
<ccgbot> Manu Sporny joined the meeting.
Manu Sporny: Present+
<ccgbot> CG Bot joined the meeting.
<ccgbot> Mahmoud joined the meeting.
<ccgbot> Mahmoud: present+
<ccgbot> Tyler Minard joined the meeting.
<ccgbot> Tyler_Minard: present+
<ccgbot> Rajiv Rajani joined the meeting.
<ccgbot> Rajiv_Rajani: present+
<ccgbot> Joe Andrieu joined the meeting.
Joe Andrieu: Present+
<ccgbot> TallTed // Ted Thibodeau (he/him) (OpenLinkSw.com) joined the meeting.
<ccgbot> TallTed_//_Ted_Thibodeau_(he/him)_(OpenLinkSw.com): present+
<ccgbot> Wes-Smith joined the meeting.
<ccgbot> Wes-Smith: present+
<ccgbot> Transcriber joined the meeting.
ccgbot is scribing.
Transcriber: Meeting: vcapi
Patrick joined the meeting.
Patrick: present+
Transcriber: Manu_Sporny: Yeah looks like it's going to fail well we can start anyway and wait until it complains um welcome everyone this is the VC API call for.
Transcriber: Manu_Sporny: April 2nd 2024 uh on.
Patrick left the meeting.
Transcriber: Manu_Sporny: We do have an agenda today uh our agenda.
Patrick joined the meeting.
Patrick: present+
Transcriber: Manu_Sporny: Uh let me go ahead and screen share as well.
Transcriber: Manu_Sporny: Um on the agenda today we've got our standard stuff processing pull requests um Mahmood raised 1 thank you for that um we will assign ready for PR issues that don't have an assignee yet there are only 2 of those um and then we can go through the other issues uh and process those uh as uh needed um any other updates or changes to the agenda anything else that we should discuss today.
Patrick: q+
Patrick has been added to the queue: Patrick
Transcriber: Manu_Sporny: Go ahead Patrick.
Patrick: q-
Patrick has been removed from the queue: no one is left on the queue.
The recording for this meeting has ended.
Transcriber: Patrick: Uh yeah just probably worth mentioning just earlier we just for the traceability call there.
Transcriber: Patrick: Move away from the VC API.
Transcriber: Patrick: Uh so I know there was a few discussion around workflows and.
Dave Longley joined the meeting.
Dave_Longley: present+
Transcriber left the meeting.
Transcriber joined the meeting.
ccgbot is scribing.
Transcriber: Meeting: vcapi
This meeting is now being recorded.
Transcriber: Manu_Sporny: Uh so we should put that on the agenda um maybe as the first item does that work.
Transcriber: Mahmoud: Yeah happy to talk about.
Transcriber: Manu_Sporny: Okay all right sounds good um any other updates or changes to the agenda.
Transcriber: Manu_Sporny: All right um we could do uh introductions reintroductions um uh Rajiv are you uh new to the call have you been here before.
Transcriber: Manu_Sporny: Would you mind giving us a little bit of background on yourself and your interest in the verifiable credential API.
Manu Sporny: Topic: Introductions
John Henderson joined the meeting.
John_Henderson: present+
Transcriber: Manu_Sporny: Excellent uh welcome to the group uh wonderful to have you here and of course uh thank you uh again for a volunteering to help maintain the did uh specification Registries and the the VC ones as well.
Manu Sporny: Topic: Traceability and VC API
Transcriber: Manu_Sporny: Um all right uh any uh let's see let's let's go ahead and move on into I guess our first item um so this is traceability and the VC API um.
Transcriber: Manu_Sporny: go ahead.
Transcriber: Manu_Sporny: Over to you.
Transcriber: Patrick: Uh yeah so the.
Transcriber: Patrick: The traceability API for for those unaware it's.
Transcriber: Patrick: You know it's a traceability it's a specification meant to manage verifiable credential when it comes to supply chain use case.
Transcriber: Patrick: Uh they have 2 components enter a private component and a vocabulary component for you know different documents so for the entropy component there was ongoing discussion for a little while about how should tests be conducted so I I I was only part of this call for the last.
Mahmoud: q+
Mahmoud has been added to the queue: Mahmoud
Transcriber: Patrick: 2 3 months and from what I understood it was sort of an extension of the VC API or they decided to Leverage The vcpi as a baseline for what these endpoints should look for uh however there's some disagreements on how these interpolate tests should be conducted and which endpoints should be exposed for testing and there's disagreements on testing what is referred to as internal endpoints.
Benjamin Young joined the meeting.
Benjamin Young: Present+
Transcriber: Patrick: Um so while discussing well how could we still maintain tests for.
Transcriber: Patrick: Requirements of the spec when it comes to data model and revocation and you know which which feature to implement and what was decided was to test this without testing an issuance endpoint directly but testing the endpoints of the implementation which would receive presentations from third-party.
Transcriber: Patrick: So following that discussion if we're not going to test the internal endpoints what was the point in keeping them in the specs so this was sort of the.
Transcriber: Patrick: the con.
Transcriber: Patrick: The topic I don't think it was a final decision but there was definitely him that maybe not maintaining these internal endpoints as part of the specification I don't know if that would you can add some details to that.
Transcriber: Mahmoud: Um so to add a little bit of color.
Transcriber: Mahmoud: The VC API started 3 years ago 4 years ago something like that traceability API work started about a year after that with the idea that there are some more strict requirements on how um members of that specification people want to adhere to it would like to exchange information.
Transcriber: Mahmoud: Originally it was supposed to be just the direct profile of the VC API what we then realized was that uh we don't need to redo a lot of the work and this this realization has been reasonably recent right and we don't need to redo a lot of that work it just doesn't make sense we could just refer to VC API with regards to basically every endpoint except the.
Transcriber: Mahmoud: Specific endpoints that are that that affect the the unique requirements that exist on the trade site.
Transcriber: Mahmoud: and as far as.
Transcriber: Mahmoud: We can tell.
Manu Sporny: Q+
Manu_Sporny has been added to the queue: Mahmoud, Manu_Sporny
Transcriber: Mahmoud: That unique endpoint is the slash presentations endpoint where there will be some extra specific requirements that we have such as the credentials that are submitted to it must always have an ID stuff like that right um and the entire point of it was it was we were always supposed to be um compatible with the VC API and we found that there's just a ton of drift that keeps happening and a significant portion of that is just because
There are 2 different people working on this on the same endpoint 2 different groups are on the same endpoint that just causes that drift so uh we've decided to remedy that problem and just simply say for every endpoint around issuance or management of your credential or anything like that please refer to the VC API specifically for the presentation side on how to move traceability documentation please refer the traceability interval and that I believe
Covers the the entire thing.
Manu Sporny: Q-
Manu_Sporny has been removed from the queue: Mahmoud
Mahmoud: q-
Mahmoud has been removed from the queue: no one is left on the queue.
Transcriber: Manu_Sporny: Okay thank you uh Patrick thank you mmm that was that was super helpful um I'm wondering so I mean that you know the the VC API was always meant to be like here A bunch of endpoints implement the ones that help you and for the ones that don't you don't need to implement them um I think that's always kind of been the general.
Patrick: q+
Patrick has been added to the queue: Patrick
Mahmoud: q+
Mahmoud has been added to the queue: Patrick, Mahmoud
Transcriber: Manu_Sporny: You know thing which is like we're going to define a bunch of stuff and then we're going to see what sub communities find which endpoints useful and then in the future we may decide that there is like a base profile that everyone should should implement but I think it's largely meant to be just kind of like here's an optional set of endpoints that we hope is is useful to everyone um the the only concern I have a brown what I
Think I heard was that the presentation endpoint might have different payloads like it's not a subset it's like a deviation or complete separation or or or potentially like they're not interoperable like they're incompatible you have to either implement it as a trace API does or the VC API does I'm wondering if if like just a simple endpoint rename would address the issues so that if they're.
Transcriber: Manu_Sporny: is like.
Transcriber: Manu_Sporny: A conflict of.
Transcriber: Manu_Sporny: Um that people don't have to choose like going left versus going going right on the API.
Patrick: q-
Patrick has been removed from the queue: Mahmoud
Transcriber: Manu_Sporny: Was that discussed or like is it what's what's the concern I guess Patrick like it does it like you know VC API is going to give 1 set of suggestions and then traceability is going to give an incompatible set of other suggestions.
Transcriber: Patrick: When I talk when I say the presentation and point what if the fine is just a post presentations and this is a authenticated endpoints that you would send authenticated payload with a barrier token.
Manu Sporny: Q+
Manu_Sporny has been added to the queue: Mahmoud, Manu_Sporny
Transcriber: Patrick: Basically send a presentation to another party that has you know provided you with a pair of oath credentials and I don't believe there's a point like that in the VC API there's no post presentations.
Manu Sporny: Q-
Manu_Sporny has been removed from the queue: Mahmoud
Transcriber: Manu_Sporny: Uh yes that is correct mhm just raised the pr that creates it but I think we want to change that endpoint so you don't post to slash presentations but you post to slash presentation slash create so if that's the pattern then there is no conflict between the 2 apis as far as I understand it.
Transcriber: Patrick: Well that that that's the thing like it's not to create a presentation right it's tool so I've already created my presentation and now I'm sending it to you.
Transcriber: Patrick: Which you are a verifier and sending it to you so you can receive my presentation and do as you please with it you know verify the credentials store them or whichever that's how I understand it but I.
Transcriber: Patrick: and I.
Transcriber: Patrick: Alleged that this is this might be missing from the vcpi or it might just be.
Transcriber: Patrick: Through these workflow and these the exchange service which is not defined in the traceability API.
Manu Sporny: Q+
Manu_Sporny has been added to the queue: Mahmoud, Manu_Sporny
Dave_Longley: q+
Dave_Longley has been added to the queue: Mahmoud, Manu_Sporny, Dave_Longley
Transcriber: Mahmoud: So um I just want to speak for a second about this um let's assume there's an abstract presentations endpoint whose entire purpose it is to receive presentations and tell you do whatever you want with them right but we're doing on the trace API is we're saying if you want to submit those presentations to us they must be of type traceable presentation that's really the core distinction of what we are saying the trace interrupt
Profile needs to do versus what the trade the VC API is to do right your point about them being different um so so the point is that if you submit a non-traceable presentation to a uh.
Manu Sporny: Q-
Manu_Sporny has been removed from the queue: Mahmoud, Dave_Longley
Patrick: q+
Patrick has been added to the queue: Mahmoud, Dave_Longley, Patrick
Transcriber: Mahmoud: Trace API endpoint it should reject or anything like that right so your point about changing the name and having them non-conflict it is very well taken I don't think we've discussed it but I think it makes a lot of sense to have something that is unique to trace API so that people won't have any of these conflicts I don't think that's been discussed but it's an excellent idea and we should definitely do that.
Dave_Longley: q-
Dave_Longley has been removed from the queue: Mahmoud, Patrick
Transcriber: Manu_Sporny: Okay um Dave you're up and then Patrick.
Mahmoud: q-
Mahmoud has been removed from the queue: Patrick
Transcriber: Dave_Longley: Yes so what I was hearing in your description just now was um something that I think is already solved on a variety of on any endpoint through configuration.
Transcriber: Dave_Longley: The expectation is that the configuration on the end at the other side of this endpoint that you're talking to that's associated you know that that when you when you hit an endpoint its associated with a particular configuration that configuration could.
Mahmoud: q+
Mahmoud has been added to the queue: Patrick, Mahmoud
Transcriber: Dave_Longley: Rules in it that say these types are required and you can reject for any purpose this is the same thing is true if you create an issue or an issuer instance and you could have a configuration behind it that requires the type of credential to be Foo or bar and so if a client sends a VC to that endpoint and the type is not for a bar it could reject so that seems to me like it just fits into the the Paradigm we have everywhere
Around uh instance configurations which are allowed to have whatever rules you want to and clients would then uh have their things projected so in the traceability space all of these presentation uh end points you're talking about would be backed by configurations that would reject something that is doesn't have a traceability presentation type on it.
Patrick: q-
Patrick has been removed from the queue: Mahmoud
Transcriber: Patrick: Yeah the the the way I can see the traceability.
Transcriber: Patrick: Back is that it's like a pre-set of configuration because they're more specific on what they expect to be sent like they expect bitstring status list with revocation they expect the data model 2.0 so these are requirements so these are as with the VC API.
Transcriber: Patrick: Set of endpoint that allows you to accept whichever configuration you want so that's a good thing and I I think and maybe you can correct me on this but I think there's there's still value in the traceability API to mention that.
Transcriber: Patrick: You know if you're not knowledgeable if you're not sure how to implement this to refer to the VC API as an example of the type of system you can build but if you are knowledgeable and you have knowledge and how to make a VC platform you are free to implement it however you want internally as long as you have a.
Transcriber: Patrick: Presentations endpoint configured according to the spec would that be a good uh.
Transcriber: Mahmoud: Yeah so actually we're we're silent on how you configure your endpoint we don't even we the the key change really is we have realized that we don't really care how behind the scenes you are interoperable as long as the exchange that's occurring is interoperable and does pass tests so if you're able to configure your endpoint via the VC API configurations then wonderful that works that's great and that is absolutely a valid solution
And you can be completely compliant with the traceability spec.
Transcriber: Mahmoud: Is you need to be able to do to to comply with this specific subset of rules if you are and you do it in whatever language and in whatever method that's fine and I agree with Patrick's Point and we already do reference the VC API in like hey if you want to do it look here for samples right and we do provide sample samples on the traceability API itself as well so um I think that is the the key change from where we were to where we
Are now right which is we used to sort of mandate how your internal functions kind of should have should look and now we're saying no we really don't care about that if you want to do it in a VC API compliant way go ahead if you want to do it in a completely non VC API compliant way but it still implements this 1 end point and does it correctly then that's also valid and you can go ahead and do that.
Manu Sporny: Q+
Manu_Sporny has been added to the queue: Mahmoud, Manu_Sporny
Manu Sporny: Q-
Manu_Sporny has been removed from the queue: Mahmoud
Mahmoud: q-
Mahmoud has been removed from the queue: no one is left on the queue.
Transcriber: Manu_Sporny: Yeah I mean I think um yeah I mean I think that's that's that's fine that's that's 1 1 way to do it I think the 1 of the 1 of the things that.
Mahmoud: q+
Mahmoud has been added to the queue: Mahmoud
Patrick: q+
Patrick has been added to the queue: Mahmoud, Patrick
Transcriber: Manu_Sporny: We've found uh with at least I'm going to put my digital bizarre hat on um as a vendor uh we found with some of our customers that uh they want to run multiple issuance infrastructures behind the scenes and that's where some of the VC API issue verify whatever endpoints start to become important meaning meaning like they need to understand what the internal API is that they use to communicate with each 1 of these issuance and
Verification platforms and VC API provides that for them such that they can deploy 1 or 2 or 3 different issuer infrastructures they large vendors tend to do that um sorry large organizations tend to do that to reduce vendor lock in and ensure they're not using proprietary apis behind the scenes and and that sort of thing so there there they're kind of like 2 levels of interrupt there is like the external system the external.
Transcriber: Manu_Sporny: external system in our.
Transcriber: Manu_Sporny: Up like the.
Mahmoud: exactly
Transcriber: Manu_Sporny: Like like 2 different holders interrupting or a holder and a verifier that are totally different systems interrupting and I think Mahmud that those are the API end points you're speaking to like as long as you implement those external API uh you know system to uh uh system a to system B ex you know that are they're not.
Mahmoud: yes, trace focuses entirely on cross-trust domain
Patrick: q-
Patrick has been removed from the queue: Mahmoud
Mahmoud: q-
Mahmoud has been removed from the queue: no one is left on the queue.
Transcriber: Manu_Sporny: Part of the same system interfaces then you can demonstrate interop because the data flying over those channels is like um you know you you you can move data around and that's how you demonstrate interop whereas the VC API like the issue endpoint and the verify endpoint those are you know typically within the same trust domain um uh and those are to ensure that you don't have this proprietary API uh issue if you want to you know
Plug and Play different vendors into uh your system um.
Transcriber: Manu_Sporny: You know it's 2 levels of interop there's there's cross domain interop which I think Mahmud is what you're saying the traceability folks are focusing on and then there's within the same trust domain interop where a particular organization wants to feels you know 2 or more uh issuer infrastructures or verifier infrastructures um and again you know it's up to that organization to determine like.
Patrick: q+
Patrick has been added to the queue: Patrick
Transcriber: Manu_Sporny: Interrupt uh they want um the only other thought I have on the the presentations thing is I I would imagine that this group I think this group has made a decision to not Implement a post presentations endpoint um instead we've got this concept of uh workflows and exchanges and that is how you do the presentations uh uh stuff um.
Transcriber: Manu_Sporny: so again.
Transcriber: Manu_Sporny: Again I don't.
Transcriber: Manu_Sporny: Think that there's a conflict there I think it's just you know the traceability folks are deciding to you know do that type of um endpoint in a different way.
Patrick: q-
Patrick has been removed from the queue: no one is left on the queue.
Transcriber: Patrick: Yeah and the same thing for storing a credential right like there's no endpoint to store a credential in the VC API this is to be made through Exchange.
Transcriber: Patrick: You know uh like you can store credential you've issued but there's no credentials slash store endpoint uh for example but some implementers might want to add a way to start credential into their system you know this is a bit what I've made in the areas Cloud agent python you know there was no.
Transcriber: Patrick: Way to store a credential besides going through a did Cam to issue credential V2 protocol.
Transcriber: Patrick: Which makes it makes the the credential storage code less accessible and you know implementing this was sort of a step 1 ideally.
Transcriber: Patrick: Would be made through sort of an exchange but then we get into the discussion of having an exchanging service which is sort of separate but.
Transcriber: Patrick: You know 1 thing I could ask as a question is if you have an exchanger service and I don't know if this is in the the diagram like.
Transcriber: Patrick: Your exchange service.
Transcriber: Patrick: Does it talk to your storage directly.
Transcriber: Patrick: Is a part of because even if you exchange a credential through.
Transcriber: Patrick: An exchange service as a holder.
Transcriber: Patrick: Ultimately that exchange will need to talk to the storage uh so I don't know if it would still be valuable to have a store endpoint but where you know with sidetracked here as I usually do.
Transcriber: Manu_Sporny: No I mean it's it's it's good to have these discussions so we have these workflow Services um and they tend to work with the coordinators um and we don't talk about you know do they have access to um I mean that's kind of an implementation detail on what what what storage they have access to and what they don't have access to and that that sort of thing um.
Transcriber: Manu_Sporny: So so I mean all this you know all this sounds like you know the trace folks are going to focus on the interop that you get here like a lot of like at the center of the diagram Trace folks seem like they're focusing on interop at this level and not necessarily interop behind the coordinators like these things back here.
Dave_Longley: i do like the heart at the middle of this diagram :)
Transcriber: Patrick: Exactly and you know so like if there's an implementation guideline and you refer to the VC API.
Transcriber: Patrick: Uh nothing prevents someone from implementing it and running the VC API test Suites you know I think even.
Transcriber: Patrick: I think.
Transcriber: Patrick: Banette has an implementation as a VC API implementer.
Transcriber: Patrick: It's just you know I I I kind of and that's also something I kind of see it was sort of a duplicate of existing tests right like there's already tests to test these VC API endpoints and then the traceability.
Transcriber: Patrick: To focus on Cross trust exchange to make sure that 1 implementation can.
Transcriber: Patrick: Understand the others implementation of you know whether it's the best string status list or the signature um the actual issuance is less relevant in that context than the sort of output of the final object.
Manu Sporny: Q+
Manu_Sporny has been added to the queue: Manu_Sporny
Manu Sporny: Q-
Manu_Sporny has been removed from the queue: no one is left on the queue.
Manu Sporny: Q+
Manu_Sporny has been added to the queue: Manu_Sporny
Manu Sporny: Q-
Manu_Sporny has been removed from the queue: no one is left on the queue.
Transcriber: Manu_Sporny: Yeah I mean I think this just boils down to There's No 1 way to to do interop testing and demonstrations um and you know I think it you know the in a in a perfect world we would all be implementing you know the same base level API and we'd be using the same tests and the same kind of like interop demonstration but at the same time you know it takes years to get there and if the you know then the trace folks need to deploy stuff
And you know they and their focus is going to be different than you know some some other communities and I I think that's fine as long as you know we're just more or less using the same kind of infra the same kind of architecture right um uh anyway I you know I so so you know this is an ideal right but at the same time.
Transcriber: Manu_Sporny: You know the trace folks need to do what they need to do to get to a level of interop that their customers find acceptable and you know I think in the VC API in this work we're more focused on kind of the um.
Transcriber: Manu_Sporny: You do care about the the cross trust domain use cases with exchanges and things like that that's really important but we also have you know a set of customers that are very interested in the within the same trust domain apis they they just want complete elimination of any kind of proprietary API anywhere uh in the ecosystem and I think that's where.
Transcriber: Manu_Sporny: You know the VC API is largely uh focused.
Transcriber: Patrick: Yeah that's that's interesting and I think that's a core distinction between the the 2 approach.
Transcriber: Patrick: Uh because this sort of approach of not testing these endpoint is for this like a custom and closed Source implementation.
Transcriber: Patrick: You know that wants to be free to sort of do.
Transcriber: Patrick: Implementing it and their way and that that seems to be preferred and the traceability side but yeah I wouldn't.
Transcriber: Patrick: Have much details.
Transcriber: Manu_Sporny: And I mean you know if if if someone and there's nothing preventing somebody in the traceability cohort from implementing VC API the internal stuff in in the way that it's described you know in in the spec that should that should work as well they they they're not incompatible um I guess is what I'm trying to say.
Transcriber: Patrick: Yeah but I I think having still having implementers guide linking to the VC API would make it far favorable for people who want to join the ecosystem to have.
Transcriber: Patrick: A example of something they can get started with and the architectural model.
Transcriber: Patrick: While keeping it separate because by implementing the VC API.
Transcriber: Patrick: You then have the tools you need to be able to send your presentations to an endpoint.
Transcriber: Manu_Sporny: Yep yep yep.
Transcriber: Manu_Sporny: Right um are there any actions for us to take from this discussion.
Transcriber: Manu_Sporny: Is there anything we need to raise issues change the spec anything like.
Transcriber: Patrick: The the only thing I can think of was like the few you know with the workflows discussion I think there's less of a concern of overstepping now.
Transcriber: Patrick: And this was already sort of resolved so I think there's more action item on the trade Supply decided this API I can go through the issues and flag if I see some.
Transcriber: Manu_Sporny: Okay yeah that would be super helpful Patrick um if if you if you can but yeah I'm not I'm not seeing any any issue um right now any any any big like.
Transcriber: Manu_Sporny: We're on a collision course issue um.
Transcriber: Manu_Sporny: Okay uh thanks uh Patrick thanks Mahmood uh for bringing that to the group's attention um we'll go ahead and move on to our next uh topic uh which is uh pull requests processing.
Manu Sporny: Topic: Processing Pull Requests
Transcriber: Manu_Sporny: Full requests so that is.
Transcriber: Manu_Sporny: Here uh we have 1.
Transcriber: Manu_Sporny: PR that is very much related to the discussion that we just had um Mahmud took an action to update uh the uh presentations proven point to create um the only and so you know it's changing the language changing the name of the uh operation ID um you know from prove to created um uh create presentation to you know anyway so so there is.
Transcriber: Manu_Sporny: That but there's I think the 1 thing we just talked about this I think Mahmud you you changed it to like.
Transcriber: Manu_Sporny: Sorry let me.
Transcriber: Manu_Sporny: You changed it.
Transcriber: Mahmoud: Yeah I changed the slash presentations.
Dave_Longley: q+
Dave_Longley has been added to the queue: Dave_Longley
Transcriber: Manu_Sporny: Yeah and I think what we want is slash presentation slash create um and the reason for that is we in this group decided like a year or 2 ago probably longer that we were going to follow the controller um pattern from the rest API design guidelines um and.
Dave_Longley: q-
Dave_Longley has been removed from the queue: no one is left on the queue.
Transcriber: Manu_Sporny: I think that would mean we would do you know slash presentation slash create um and go ahead Dave.
Transcriber: Dave_Longley: Yeah I'm going to go ahead and disagree so uh when we're creating new so it really depends what's happening um if you're creating something new that's going to be stored somewhere we we just post to that endpoint and create that thing we do that with exchanges uh there's probably if we have anything else that's what we do um.
Transcriber: Dave_Longley: The I think the reason that this was proved before and changed to create was that this was supposed to be purely functional it doesn't create any state it doesn't store anything doesn't do anything so it really depends what the what the endpoint does um.
Transcriber: Dave_Longley: And something similar happens when you post to.
Transcriber: Dave_Longley: I guess maybe yeah this this this particular endpoint is is because so few people outside of traceability have implemented this endpoint I think we're kind of in a unclear situation.
Transcriber: Dave_Longley: but um.
Transcriber: Dave_Longley: Want to make clear that using the uh unfortunately was called controller uh Paradigm because that that it's unfortunate because it conflicts with the use of controller in lots of other places in in VC technology but in the in the restful doc documentation that we have for the style guide It's called The Controller when you're creating a function that does that effectively just perform something and likely doesn't produce any
State we do that when we're like verifying um a credential or a presentation.
Transcriber: Dave_Longley: That you couldn't for example Implement something that like stored some auditing logs or something when a function is executed but generally if you're going to create something that is then later referenceable.
Mahmoud: q+
Mahmoud has been added to the queue: Mahmoud
Transcriber: Dave_Longley: Um you post to the the name of the container containing type and if that's what this endpoint is about posting to a presentation on point to create 1 and stored and then reference it later then it I don't think it's the right thing to do to call it against slash create but just to post to the endpoint.
Transcriber: Manu_Sporny: Uh okay go ahead Mahood.
Transcriber: Mahmoud: So the the goal of this endpoint as far as I know is to create a new thing and start and that thing is a presentation I just went through it and I think they may have updated their the so the link that you sent was to restful api.net unless I'm reading something different and I don't I think there's a comment that says uh.
Transcriber: Mahmoud: If you're creating something like post slash users so there's a comment by the author that basically says instead of creating post slash users slash ID slash activate do Post slash activated users with the idea that like it's a resource and it's a name but I'm trying to find the direct 1 to 1 thing that says that to my knowledge whenever you're creating directly and you want to post to it you would have it it would be a name the
Resource it would not be a verb it would be the noun right.
Transcriber: Mahmoud: I'm missing something yeah I think it even says do not use verbs.
Transcriber: Manu_Sporny: Right um okay I'm I'm fine to change it to whatever the group you know wants I am concerned that we have a bunch of other misnamed end points at this point um.
Transcriber: Manu_Sporny: Especially since this like don't use verbs Yuri we definitely have verbs in our URI um.
Transcriber: Manu_Sporny: What is yeah I mean what are we doing here because.
Transcriber: Dave_Longley: You should search for the controller pattern in this.
Transcriber: Dave_Longley: Guide because that's where we.
Transcriber: Mahmoud: I think he removed it that's the the issue.
Transcriber: Mahmoud: Unless I'm missing something.
Transcriber: Manu_Sporny: Yeah I mean that could be it hitting the thing we decided to use is no longer.
Transcriber: Manu_Sporny: Which would mean that we would have to go through and rename all of our endpoints.
Transcriber: Manu_Sporny: To whatever the best practice currently is.
Transcriber: Mahmoud: Do we have many endpoints that conflict with us.
Transcriber: Manu_Sporny: Um let me see.
Benjamin Young: POST /credentials/issue (for one)
Transcriber: Manu_Sporny: Uh derive so let's see.
Transcriber: Manu_Sporny: This 1 potentially it's arguable.
Transcriber: Dave_Longley: I don't think the latter 1 does because you're updating a a you know.
Transcriber: Manu_Sporny: Okay so maybe this 1.
Transcriber: Dave_Longley: Yeah that 1 is purely functional.
Transcriber: Mahmoud: That that would be issued for example or something like that.
Transcriber: Manu_Sporny: Sorry say that again.
Transcriber: Mahmoud: It would be issued or issued credential or something like that but I or something that sounds better but I I think that 1 is.
Transcriber: Dave_Longley: Well yeah so and we should say we should decide whether it is a problem or whether we're going to say we're using this guide plus the controller part of the guide that got removed so that's the other thing we could do.
Benjamin Young: Q+
Benjamin_Young has been added to the queue: Mahmoud, Benjamin_Young
Transcriber: Manu_Sporny: I think that's problematic because then people will be like you're just making it up um.
Transcriber: Manu_Sporny: That was the whole problem in the beginning was that you know picking picking a standard.
Benjamin Young: Q-
Benjamin_Young has been removed from the queue: Mahmoud
Transcriber: Manu_Sporny: Mechanism that we could reference stopped all the internal kind of fighting about what the right thing to do is um but now that that reference has been revised.
Transcriber: Manu_Sporny: Go ahead Benjamin.
Manu Sporny: Ack mahmoud
Mahmoud has the floor.
Transcriber: Benjamin_Young: Herbs and URLs are anciently opposed so if there had been guidance that said it was fine in certain ways.
Transcriber: Benjamin_Young: that was.
Transcriber: Benjamin_Young: Unicorn which is probably why they got rid of it.
Transcriber: Manu_Sporny: Yeah except I mean this was a year ago I'm I'm not arguing for this like I never like this pattern but it was at least consistent and documented elsewhere and in theory had consensus and it looks like it's just been similarly removed um which then makes me question whether or not this thing we're referencing is a useful thing to reference um and we could just go back to you know quote unquote standard.
Transcriber: Manu_Sporny: You know restful patterns um Okay so we've got that 1 let's just flag these as issues we've got that 1 uh.
Transcriber: Manu_Sporny: Credentials and presentations verify.
Transcriber: Dave_Longley: Yeah they would be the same thing those are functional.
Transcriber: Manu_Sporny: But what do you mean by like you're saying those are functional so we should keep them.
Transcriber: Dave_Longley: Yeah this is like putting a functional at the end of a HTTP endpoint it's you know it's a verb it's a function uh it's does not imply that any there are any stateful changes when you make these calls it's a way to.
Transcriber: Dave_Longley: Execute a function against an instance.
Benjamin Young: Q+
Benjamin_Young has been added to the queue: Benjamin_Young
Transcriber: Manu_Sporny: Okay uh go ahead Benjamin.
Benjamin Young: Q-
Benjamin_Young has been removed from the queue: no one is left on the queue.
Transcriber: Benjamin_Young: Or I don't guess the open API docs are up to date are they.
Transcriber: Benjamin_Young: As a way to like see across all the things.
Transcriber: Manu_Sporny: Uh they are.
Transcriber: Manu_Sporny: What do you mean like could we pull up the.
Transcriber: Benjamin_Young: Because well the thing that.
Transcriber: Benjamin_Young: You know post post to verify is going to be.
Transcriber: Benjamin_Young: Confusing but it really comes down to what's going in the body.
Transcriber: Benjamin_Young: Um to help determine what the noun to use would be.
Transcriber: Manu_Sporny: This thing is going a verifiable credential is going in in the body this object.
Transcriber: Manu_Sporny: Yeah uh okay so let's so those 2 and then we've got you know present credentials derive again.
Transcriber: Manu_Sporny: Verbi and then we just.
Transcriber: Manu_Sporny: Updated this this would would drop the create call um.
Transcriber: Manu_Sporny: So all that to say that we've got you know we've got.
Benjamin Young: Q+
Benjamin_Young has been added to the queue: Benjamin_Young
Transcriber: Manu_Sporny: 5 or 6 end points that we need to potentially reconsider or you know Dave we use the argument that you're using which is these are you know they don't change State um and therefore it's just a functional design pattern um but we you know ideally we find some place that we can reference that has a community that has debated this where.
Transcriber: Manu_Sporny: We can otherwise you know we're back in the same position of people going you're just.
Transcriber: Manu_Sporny: you know.
Benjamin Young: Q-
Benjamin_Young has been removed from the queue: no one is left on the queue.
Transcriber: Manu_Sporny: You're making things up um there's nobody else out there that thinks that um go ahead Benjamin.
Transcriber: Benjamin_Young: Yeah so there there is an inbox pattern which is where we get the word post from to begin with um where you can imagine these verbs is having the word to in front of them so presentations to prove and posting is a pending essentially to.
Transcriber: Benjamin_Young: Thereby now to find all the verbs not suggesting that we put the word to in all the URLs but if we were to make a case for why it is this way.
Transcriber: Benjamin_Young: That conceptually we're treating these as you know.
Transcriber: Benjamin_Young: an inbox.
Transcriber: Benjamin_Young: On a desk of sorts in your posting the VC into the presentations to verify stack and then it's it's coming back with a response which is what day's been describing is functional.
Transcriber: Benjamin_Young: Um that's not totally without its prior art because.
Mahmoud: q+
Mahmoud has been added to the queue: Mahmoud
Transcriber: Benjamin_Young: Like messaging relays and stuff done as HTTP often use a pattern like that but they'll they'll notify them into words like inbox or whatever.
Transcriber: Benjamin_Young: But I I don't know what the risk of URL changes here or or how.
Transcriber: Benjamin_Young: Significantly feel that is.
Transcriber: Benjamin_Young: Versus complaints when this goes for review.
Transcriber: Manu_Sporny: Yeah it's a good question uh Mahmud you're up.
Transcriber: Mahmoud: So I'm a little bit torn because we have a versioning.
Transcriber: Mahmoud: scheme already.
Transcriber: Mahmoud: Allows us to say um version 0.3 version 0.4 of the API does XYZ I don't believe we have a way to actually version like dynamically what API you're calling so that you can check which endpoints are so I'm a little bit worried about actually changing the URLs because I know how much adoption this is already taken.
Manu Sporny: Q+
Manu_Sporny has been added to the queue: Mahmoud, Manu_Sporny
Manu Sporny: Ack mahmoud
Mahmoud has the floor.
Transcriber: Mahmoud: And um something like this would require I mean it's not a lot of effort to modify that points on a developer's part but it is some effort that everybody would need to make right um it is you know a thing that we we might want to consider and so if there's any way we can retain the current like flow without changing it if we can find something that already exists I would be more um I I would prefer.
Manu Sporny: Q-
Manu_Sporny has been removed from the queue: no one is left on the queue.
Mahmoud: q-
You aren't on the speaker queue.
Transcriber: Manu_Sporny: Yep um so though I think the way the test Suites the at least the VC API test Suites work now is you do have kind of like a short name and then you provide a full URL to your endpoint and so in that way that it wouldn't negatively impact.
Transcriber: Manu_Sporny: The test suite and the interop testing because people you know are are already having to like the the whole URLs you opaque it'll just use whatever opaque URL you give it um so it won't won't negatively impact all the round-trip and testing and all that kind of stuff and those people can upgrade their endpoints in time but it does impact like we've been telling people for quite a while that like.
Transcriber: Manu_Sporny: This is you can count on these these letters existing like you can count on this path structure and now we're like.
Transcriber: Manu_Sporny: Well we either will keep it or we're going to change it um.
Benjamin Young: Q+
Benjamin_Young has been added to the queue: Benjamin_Young
Transcriber: Manu_Sporny: I think in order to keep it we've got to find.
Transcriber: Manu_Sporny: Something written somewhere by some community that you know thinks about this stuff.
Transcriber: Manu_Sporny: uh that.
Transcriber: Manu_Sporny: That we can cite um or we can just basically be like.
Transcriber: Manu_Sporny: We'll justify it and then see if people complain um.
Benjamin Young: Q-
Benjamin_Young has been removed from the queue: no one is left on the queue.
Transcriber: Manu_Sporny: Go ahead Benjamin.
Transcriber: Benjamin_Young: I'm wondering in the changing them category of options if there's a way we could deprecate them.
Transcriber: Benjamin_Young: Place them put it in the change log that essentially it's it's supported.
Transcriber: Benjamin_Young: you know.
Transcriber: Benjamin_Young: For historic reasons but new implementers should.
Transcriber: Benjamin_Young: With these new names.
Transcriber: Benjamin_Young: Is we're we're well ahead of facing errata.
Transcriber: Benjamin_Young: Change sort of.
Manu Sporny: Q+
Manu_Sporny has been added to the queue: Manu_Sporny
Transcriber: Benjamin_Young: Miss you know it'll new implementers will get the right thing and it's really just people who got their first right.
Manu Sporny: Q-
Manu_Sporny has been removed from the queue: no one is left on the queue.
Transcriber: Benjamin_Young: And we can support that.
Transcriber: Manu_Sporny: Yeah and I mean we should we should probably just all remember that like this is a ccg highly experimental API that you know is expected to change rapidly the only other so so that's 1 side of it the other side of it is like this stuff has already been shipped to production in a variety of scenarios so like you know um.
Benjamin Young: Q+
Benjamin_Young has been added to the queue: Benjamin_Young
Transcriber: Manu_Sporny: what you.
Transcriber: Manu_Sporny: Said Benjamin comes into play in in that case is that like this stuff is already escaped into the real world um.
Benjamin Young: Q-
Benjamin_Young has been removed from the queue: no one is left on the queue.
Transcriber: Benjamin_Young: Yeah the Marquee and Center tag still work in your browser so that's the level of deprecation I'm meaning like leave them in the spec and.
Transcriber: Benjamin_Young: Say early adopters.
Transcriber: Benjamin_Young: Probably did this and their urls.
Transcriber: Benjamin_Young: Servers so yeah they they exist um.
Transcriber: Benjamin_Young: But could be.
Transcriber: Benjamin_Young: Relatively easy to support both.
Transcriber: Benjamin_Young: As Alias is a redirects or whatever.
Transcriber: Manu_Sporny: Yep okay so we we need to um.
Transcriber: Manu_Sporny: We need to we do we do need to address this sooner than later uh because you know this is a fairly.
Transcriber: Manu_Sporny: Ific change if we choose to make it um.
Transcriber: Manu_Sporny: Okay anything else on uh this item before we move on or or sorry I guess we were processing this this PR and I think the argument here is like.
Transcriber: Manu_Sporny: Don't put slash create just do a post to presentations which is what Mahmud had originally suggested.
Transcriber: Manu_Sporny: And then we're back to.
Mahmoud: q+
Mahmoud has been added to the queue: Mahmoud
Transcriber: Manu_Sporny: DC API is describing it and traceability is describing it.
Transcriber: Manu_Sporny: As long as we Define it in a way that enables traceability to subclass it or subset it to say like no you have to post a traceable presentation here.
Transcriber: Manu_Sporny: Actually know this isn't an inbox like this this endpoint is meant to create a presentation like a holder uses it to create a presentation versus what the trace folks want the endpoint for is to receive a presentation so there are semantically different.
Transcriber: Manu_Sporny: So we're back into.
Transcriber: Manu_Sporny: we need.
Transcriber: Manu_Sporny: To figure out.
Transcriber: Manu_Sporny: To name these things because we've got a conflict now if we're going to go away from this controller pattern.
Transcriber: Mahmoud: Uh so I think what we're doing on the VC API in other places is like the exchange is you post to slash whatever the resource name is to create it and I think that is the correct and standard restful thing I think in this instance the traceability is using it the wrong way and it should be something like slash presentation slash traceable or whatever right something that would indicate um we are sending a presentation to be that
You're like that you are submitting a presentation to be verified rather than create a presentation for me so I think this PR is correct because what it's doing is.
Manu Sporny: Q+
Manu_Sporny has been added to the queue: Mahmoud, Manu_Sporny
Manu Sporny: Q-
Manu_Sporny has been removed from the queue: Mahmoud
Transcriber: Mahmoud: I mean as long as I understand it right which is telling you to please create a presentation based on these things unless I'm misunderstanding that.
Dave_Longley: q+
Dave_Longley has been added to the queue: Mahmoud, Dave_Longley
Transcriber: Manu_Sporny: No that's that's the correct interpretation okay we're seeing some thumbs up here okay so Mahmud if you feel that traceability folks would be okay with that direction fundamentally I think what the traceability folks is has or are defining as is an inbox like you know you want to receive presentations at this at this place so if you all are okay creating like I mean you can name it whatever you want but like slash presentation
Slash inbox or slash presentation slash traceable um that would address the the issue like we would know no longer be you know in Conflict so um so what we could do is.
Mahmoud: q-
Mahmoud has been removed from the queue: Dave_Longley
Transcriber: Manu_Sporny: Pull this PR in Mahmud yours as is or just say we're going to do that and if you and Patrick could check with the trace folks to make sure that they're okay with that direction of naming their presentations endpoint something like you know presentation slash.
Dave_Longley: q-
Dave_Longley has been removed from the queue: no one is left on the queue.
Mahmoud: q+
Mahmoud has been added to the queue: Mahmoud
Transcriber: Manu_Sporny: Receive or inbox or or whatever um I think we we we can merge this we don't have a conflict and we can move on um Dave.
Transcriber: Dave_Longley: Yeah I think all that sounds fine um I think that.
Transcriber: Dave_Longley: The if exchanges had made its way further along before traceability got started we would have just said the right thing to do is use an exchange for what they're they're doing over there but.
Patrick: q+
Patrick has been added to the queue: Mahmoud, Patrick
Transcriber: Dave_Longley: API is meant to be extensible and you can do what you want and I think that's the the right path.
Patrick: q-
Patrick has been removed from the queue: Mahmoud
Transcriber: Manu_Sporny: Okay uh Patrick.
Mahmoud: q-
Mahmoud has been removed from the queue: no one is left on the queue.
Dave_Longley: q+
Dave_Longley has been added to the queue: Dave_Longley
Transcriber: Patrick: Yeah so we we removed an endpoint today that I think was presentation submit that was used for like data presentation exchange so maybe since this endpoint is not there anymore we could revisit replacing the presentations with the presentation submit unless this is already in the VC API I don't think so.
Transcriber: Manu_Sporny: It's it's not.
Mahmoud: q+
Mahmoud has been added to the queue: Dave_Longley, Mahmoud
Transcriber: Patrick: Yeah so I don't know what you think about this Mammoth like a presentation slash submit which is where someone would post the presentation is.
Transcriber: Mahmoud: Mhm it's the same verb thing and I think we can iron that out on the traceability side I don't think that's really I don't think this is the time to figure that out what I will say is um on your point Manu of reviewing this PR.
Dave_Longley: q-
Dave_Longley has been removed from the queue: Mahmoud
Transcriber: Mahmoud: To like holding it and reviewing it next week is that the traceability call has moved times and it will happen after next week's PC API call so I don't know if that makes like I don't know if that would work and I don't think um can get the group to review this prior to that.
Mahmoud: q-
Mahmoud has been removed from the queue: no one is left on the queue.
Transcriber: Mahmoud: So they will stay for 2 weeks.
Transcriber: Manu_Sporny: Mhm that's fine and we can we can let this yeah we yeah we can let this hang out until it's resolved it's important for us to align before we merge it.
Transcriber: Manu_Sporny: Does that work for you Muhammad there was no time.
Dave_Longley: Just wanted to note that we wouldn't create an endpoint to receive presentations in the way that traceability does at this point -- because exchanges does that. But they can do that, of course.
Transcriber: Mahmoud: Yep happy to listen I don't think there's anything super urgent about this.
Transcriber: Manu_Sporny: Okay alright okay we will do that then uh and with that uh we are more or less out of time uh thank you everyone for the uh great discussion today um.
Transcriber: Manu_Sporny: Should try to take some time to think about how we can rename these verb.
Transcriber: Manu_Sporny: The end points or if we want to do that or if we don't want to do that um this is find the citation something that we can cite that gives us a someone other than us to to to um to refer to.
Transcriber: Manu_Sporny: Um okay that's it for the call this week um we may not have a call next week because a variety of people are.
Dave Longley left the meeting.
Mahmoud left the meeting.
Patrick left the meeting.
Transcriber: Manu_Sporny: Uh traveling for the eclipse at least in some parts of the US so um next week's call might be canceled um and we'll we'll meet up the the following week if that happens um all right thanks all have a good 1 CIA.
Benjamin Young left the meeting.
Tyler Minard left the meeting.
Rajiv Rajani left the meeting.
John Henderson left the meeting.
Wes-Smith left the meeting.
The recording for this meeting has ended.
TallTed // Ted Thibodeau (he/him) (OpenLinkSw.com) left the meeting.
Transcriber left the meeting.
Joe Andrieu left the meeting.
Manu Sporny left the meeting.
The meeting has ended.