- From: <meetings@w3c-ccg.org>
- Date: Wed, 22 Oct 2025 15:16:37 -0700
- To: public-did-wg@w3.org
- Message-ID: <CA+ChqYcDN-iwgRs2fpQQ2SK1gfbkyZwz4dh=HY78SGOEzEmXww@mail.gmail.com>
Meeting Summary: DID Working Group Special Topic Call - 2025/10/22 *Attendees:* Benjamin Young, Kevin Dean, Manu Sporny, Markus 2, Markus Sabadello, Will Abramson *Summary:* This meeting focused on the development of the DID resolution test suite, particularly addressing challenges related to optional features and conformance requirements. Discussions revolved around specific issues and the best approach to testing various aspects of the DID resolution specification. *Topics Covered:* - *Testing Optional Features:* The group discussed how to approach testing optional features in the DID resolution specification, deciding to focus on mandatory features for the initial test suite and to address optional features later. - *Resolution Options and Read Operations:* The discussion focused on a statement about passing resolution options to the read operation of a DID method, with consideration given to the necessity of the requirement and its testability. - *DID Document Metadata Validation:* The group touched on the need for validating DID documents and the potential use of JSON schema for this purpose. - *Conformance and Implementation Definitions:* The meeting addressed conformance statements, particularly whether to separate DID resolution and DID URL dereferencing into different conformance classes, and decided to combine them initially. - *Testing "Not Found" and "Deactivated" States:* The discussion covered the approach to testing "not found" and "deactivated" DID states, deciding on how resolvers will provide these statuses for testing. - *Equivalent ID and Canonical ID Handling:* The group discussed the requirements related to equivalent ID and canonical ID properties in the DID document metadata, and decided on moving the requirements related to did method specifications to the DID Core specification. *Key Points:* - The test suite will prioritize testing mandatory features, with optional features addressed in future iterations. - The group agreed to potentially remove a statement about passing resolution options to the read operation, as it may be redundant. - There was a consensus on the need to clarify in documentation that only mandatory features are being tested. - Requirements related to equivalentId and canonicalId properties within didDocumentMetadata and are better placed in the DID Core specification's section on DID methods, due to their association with the DID method specification, and will be moved to the appropriate area. Text: https://meet.w3c-ccg.org/archives/w3c-ccg-did-wg-special-topic-2025-10-22.md Video: https://meet.w3c-ccg.org/archives/w3c-ccg-did-wg-special-topic-2025-10-22.mp4 *DID Working Group Special Topic Call - 2025/10/22 09:59 EDT - Transcript* *Attendees* Benjamin Young, Kevin Dean, Manu Sporny, Markus 2, Markus Sabadello, Will Abramson *Transcript* Will Abramson: How you going? Kevin Dean: or you will not too bad. Will Abramson: Yeah, I'm all Thanks. Along. That much to do. How are you? Nice. Cool. Kevin Dean: Obviously working on a threat modeling app. We'll have to get something out to Joe in time that he can show off at IW. Should be something he can prototype he can show off today. Will Abramson: Yeah, I think this be a small group, but that's fine. I just want to talk about the test suite early and… Kevin Dean: This may be a short call today. Okay. Will Abramson: get some input and help. Will Abramson: But I'm hoping at least and hopefully Marcus. it depends. I mean I think I could just help really. So I think we can spend the hour just reviewing even if it's just me But I do think Man said he could come. So let's give him five minutes at least and then I'll just tell you where I'm at. Will Abramson: She treat me. Kevin Dean: Nope, that did not work. Will Abramson: Be happy. right. Kevin Dean: better. Will Abramson: Maybe I can just chat with you. I did hope to have money, but let's just chat. Let's see. I'll share my screen. 00:05:00 Will Abramson: I'll talk to you about where things are. So yeah, the basic problem or not the problem is right that resolution spec has all of these normative requirements. So must or require these are statements but the spec is saying you have to implement them right that's important if you're not doing this then you're not compliant and I'm trying to develop the test suite which is going to allow us to demonstrate really that's the thing we're only trying to demonstrate to WPC that there are at least two conformant implementations for each of these statements. Kevin Dean: I am not seeing your screen. Will Abramson: Right. … Kevin Dean: I don't know why. Will Abramson: there's actually now. Kevin Dean: I mean, I'm seeing a place where your screen should be, but it's just There we go. Will Abramson: So, I mean there's a script you can run to extract all these statements. Will Abramson: Easy enough. And then I've also got this to Ben Benjamin helped me put together the test suite based on similar infrastructure that we've already been using. Kevin Dean: Okay. Will Abramson: So what this does is this is a per section s right of specs on tech testing section 4 did resolution and basically we have this separate repo here where did resolvers register and say look this is my implementation maybe I can show you that this is my implementation and… Will Abramson: these are the bids, there's a bunch of things that you might provide. Can you see this? … Kevin Dean: Okay. If No,… Kevin Dean: if you're trying to show me something different, I'm still seeing only the did resolution testable statements. Will Abramson: hey man. Kevin Dean: There's a menu. Manu Sporny: Hey guys,… Manu Sporny: sorry I got pulled into an email. Will Abramson: All good. I was just kind of reviewing with Kevin. so just about the whole process. Will Abramson: I don't know if you've seen. So Kevin, you still can't see the JSON on the screen. Can you see? Oh no. Kevin Dean: No, I can't. Kevin Dean: I'm seeing only the hackb.io. Will Abramson: Where? I try again. Manu Sporny: type. Yeah,… Kevin Dean: Yeah, I think you just shared a window. Will Abramson: I keep sharing. No, I'm show entire screen. Now you can see the JSON. Kevin Dean: And I can see the JSON. Will Abramson: I can see. Kevin Dean: Yep. wonderful. Will Abramson: Okay. Yeah. yeah. Manu Sporny: Google Meet has been they just rolled out something and… Will Abramson: … Manu Sporny: it's broken screen sharing over the past two days. Will Abramson: right. Okay. Manu Sporny: That's what's going on. Will Abramson: Yeah. Yeah. So this is the point where so at the moment we only have one implementation and it only is really testing the test cases against a single bid. But the idea is you provide your endpoint which stands up some dissolver it implements HTTPS binding basically and then we require a 2B def to be refined at least set of bids that we can then use in our tests. Will Abramson: So at the moment Marcus is just providing one did and that is a valid that we we know should successfully okay So I have some issues that I've created but first this is the test right these are the tests basically what happens is we are fetching the implementations basically this so weird right I don't know… Manu Sporny: I can only see the test suite implementations right now. Kevin Dean: Yep. Manu Sporny: If you're pointing at something else, Will Abramson: how to use this to keep sharing Will Abramson: Yeah so these are my test this is based on digital bazar's infrastructure right so… Manu Sporny: Can't see anything. there we go. I see it. Mocha tests. Will Abramson: what we're doing is we're filtering by tag this lets us select those implementations in the VC test implementations o that have defined a universal a resolver So we get all the resolvers and then we loop through each of the implementations. We get the endpoint and… Kevin Dean: Yep. Will Abramson: then we use that endpoint to execute resolution requests for each test that we have. And I'm looping through valids. I don't know if I mean maybe people would provide us with more than one valid but basically the same test gets executed for each valid and they have to provide at least one did right. That's important. Will Abramson: And then what happens is so these tests, we describe it and then this text here it sometimes works but doesn't always work is how you can reference the section in the spec. So it's pretty cool. It's like this sentence is… 00:10:00 Kevin Dean: Okay. Will Abramson: what I'm testing. before this call try to actually follow those links through. So I'll show you in a minute the report that gets generated but I guess I'll have to share and not share again. there are a few questions that I have like that how to test this but I think it'll be easier for me to show that in the repo I've kind of been creating some issues and that's probably what we can talk through today. this code is also available as a PR to the repo. I'm just working on it and hacking through it. Will Abramson: I think the main questions that I have are really around in the DID resolution test suite. Will Abramson: There are a lot of fields that are optional. the DID document metadata might optionally contain this property, but if it does contain this property, that property must be of this format. Manu Sporny: Yeah, the thing that matters is the first statement. Kevin Dean: Right. No,… Will Abramson: … Manu Sporny: The fact that it's optional means that you don't have to test it. Will Abramson: really? Okay. Manu Sporny: Yeah. Yeah. Kevin Dean: I disagree. Manu Sporny: It Right. Kevin Dean: The test statement is, if present, Your test is test passes if null or conforms to this pattern. Will Abramson: Yeah. … Manu Sporny: But here's what we are going to do as an implement. we're not going to send that up. Will Abramson: yeah. that was my question. Manu Sporny: Right. and… Will Abramson: So, I have been Manu Sporny: we don't want to be disqualified because we have chosen not to provide that not to, test that option. Kevin Dean: which is perfectly fine. Kevin Dean: But if you're providing that option, it has to conform to the requirements. Yeah. Manu Sporny: I agree. the concern I have is generating an enormous amount of work for these are ways for us to let me kind of explain where I'm coming from. I'm trying to make sure that we at least get a test suite that we can test against and then we can improve it over time. And so I'm shooting for what's the minimum viable thing that we can put in front of the W3C that's defensible,… Will Abramson: Yeah. All right. Manu Sporny: I totally agree with you Kevin, absolutely we want to test those things, but if we put all of that in scope is unable to complete the test suite, the entire standard will fail, Because we won't be able to prove that we can get out of CR and… Will Abramson: I think actually completing the test wouldn't be so hard. Manu Sporny: and all that kind of stuff. Will Abramson: But the real thing was for me those must statements are within an optional clause. So we would have to have at least two resolvers that do return that thing for us to demonstrate that we actually test that. Kevin Dean: Yeah. Manu Sporny: And then people that don't want to see the spec happen can say you don't have to interoperable implementations for that feature. Will Abramson: Yeah. Yeah. Yeah. Okay. Yeah. Manu Sporny: The entire spec can't go to wreck that. that is the unfortunate trap of kind of W3C test suites is that it forces people to test much less than you would want to test in an actual real production setting. Will Abramson: Yeah. Heat. Manu Sporny: So one thing you can do is have a section that talks about optional tests. But even if we do that, that can be a trap because people will basically say and it will be legit again unfortunately per W3C process the argument will be you don't have two independent implementations for that you need to take that feature out of the specification and we definitely don't want that right… Will Abramson: Yeah. H Manu Sporny: so that's why I was saying Kevin you're absolutely right in an ideal world we would be testing all of those things… Kevin Dean: Yeah. Right. Manu Sporny: but it can backfire on us if we don't have two implementations for it so usually what I've seen folks do is ensure you have two implementations for it and then put the optional testing, right? … Kevin Dean: Kevin Dean: Right. As well. Will Abramson: Right. Right. Kevin Dean: Yeah. as long as we're clear that the test suite is covering only all mandatory features and that anything that's considered optional is not being tested or the following things are not being tested if we've got a subset I think we're okay it's just that… Manu Sporny: yeah. Yep. Kevin Dean: if I read a spec that says this is optional but if you provided it must do X I would expect that the test suite would test not implemented or… Kevin Dean: feature conforms to specification. Manu Sporny: Yep. Mhm. Will Abramson: I agree. I think that sounds good. Will Abramson: But we can add it after on and as we find because also we'd have to have okay this did resolves and has this e there's a lot of sort of if then but just I wish we can just for now ignore I guess I was worried that the W3C might review our spec and… 00:15:00 Will Abramson: those must statements and then realize that they aren't tested but I guess because you're saying that these are optional so actually even the must is an optional feature of the spec and not a requirement. Okay, cool. Manu Sporny: Correct. Yep. Kevin Dean: Yeah. as long as we're clear about that in the intro in the test suite as well and… Will Abramson: Right. Yeah. Kevin Dean: any documentation. Yeah. Yep. Just Manu Sporny: Plus one. Will Abramson: Okay,… Manu Sporny: And it's presumed, but you're right, We should be explicit about it. we are only testing the mandatory features in the specification. Will Abramson: great. let's look at some other issues. Will Abramson: I think some of these are just about stuff we already talked about. So yeah, let's just go through them. So you can see these apps, Yeah. So this is a statement I wasn't really sure about how to test. It says the resolution options of this algorithm must be passed to the read operation of the DID method. So I call a resolver how am I testing that they are passing these options to the read operation I need to know have some verifiable result based on the resolution options feels Manu Sporny: all of these are which there's three must statements there which one are you concerned about are you saying the entire testing equivalent ID normative statements on the did method Yeah. Will Abramson: Three must. Will Abramson: Wait, are we looking at the same thing? no, you guys aren't seeing my screen. Manu Sporny: No. Will Abramson: I'm only looking at issue four. Manu Sporny: Manu Sporny: Sorry. Will Abramson: It's weird… Manu Sporny: Hi. … Will Abramson: because I just started from the bottom. My screen when I'm looking in Google Meet, it does show me looking at the same thing. it just shows my screen showing the same thing, but it's my screen not showing issue four. Okay. Kevin Dean: Okay. … Kevin Dean: yeah, I'm seeing issue four. I'm seeing how to test statement about passing resolution officers to read. Yeah. Manu Sporny: yeah, now I'm seeing that before I was not. Will Abramson: Right. Right. Manu Sporny: Manu Sporny: No. Yeah. again. Google Meet broke screen sharing,… Will Abramson: Yeah. No,… Manu Sporny: I think. Are you on a Apple device? Will Abramson: Linux. I guess they're somewhere,… Manu Sporny: Okay. that's even more confusing. Everyone to date has been on an Apple device, so there goes that area. Will Abramson: So that's all Linux. Manu Sporny: Yeah. or… Will Abramson: Yeah. So it feels like an internal operation that the resolver has to do. it doesn't need to do this. I think we do need to somehow require it, but I just don't know how to test it because it's not something that I can test from the inputs and outputs unless I have a verified Manu Sporny: or yeah but besides the input data all must be passed to the read operation I don't know what this accomplishes why are we saying this is an example of do we need this must statement Why do we have this here? Will Abramson: Yeah. … Manu Sporny: I,… Will Abramson: maybe the answer is we can remove it. Manu Sporny: why does it matter? there inputs that go to the algorithm and then the algorithm specifies, what the inputs are. I don't I mean… Will Abramson: Yeah. I mean, does it matter because the resolver could not pass all these options and change the result of the resolution requests? Red. Mhm. Okay. Manu Sporny: but if it did that it could lead to interoperability issues. I mean I get what you're saying. if you just read the sentence another way to do this is if we can suggest we don't need this must statement can anybody think of a reason we need it and just remove it. it's easier to just kind because it's not obvious to me and if somebody does that then they're not following the read algorithm right I think there's a read algorithm in the resolution is there right I guess Manu Sporny: Will Abramson: right? No,… Will Abramson: did methods specify their read operation. Manu Sporny: but there's an interface isn't there defined I need to look at the speced resolution resolution. 00:20:00 Will Abramson: Because I mean the interface is the resolve, right? The read is kind of Manu Sporny: And so what do you pass? Where's bindings all? Yeah. By invoking a DID resolver using the standard resolve did and resolution options interface as defined in DID resolution, all conforming did resolvers implement the function below which has the following abstract Resolve did and resolution options. all conformant did resolvers must DID resolution function for at least one did method and… Manu Sporny: must be able to return did document for at least one conforming representation. Yeah, I mean I don't think we need this statement like it's very clear… Markus Sabadello: What? Manu Sporny: what the inputs and outputs are for data resolution. Will Abramson: Okay. Will Abramson: Us Welcome, Marcus. Hi. Thanks for joining. so we're just debating some of these questions that I've had from trying to implement some test cases. The first statement that I was wondering how to write a test for and man is maybe suggesting we could just get rid of it as a must pass the resolution options to the read operation of the input did method. Will Abramson: What do you think? who can you see the screen share? Kevin Dean: Oops. Manu Sporny: And if you're talking, Marcus, we can't hear you. Markus Sabadello: No, sorry. Markus Sabadello: I couldn't hear that. Can you repeat it? Manu Sporny: this screen I'm seeing. Manu Sporny: Issue four. Yep. Markus Sabadello: No, I can't see it. Will Abramson: again saying that the Google Meet is a bit broken. Will Abramson: So I'll drop in a link as well. So we're just going through these issues that I have on the test suite repo around questions which are basically how do I test these things or questions around that sort of area and the first one is this must statement which is kind of internal to the did resolver gets some resolution options and this is a requirement that it must pass those resolution options to the read operation of the did method I don't know how to test that and man is suggesting maybe we don't need Will Abramson: as a must. Markus Sabadello: Okay. … Markus Sabadello: I mean the idea behind that is that this is needed by some bit methods only work if you pass some additional information other than the result function right? you have a identifier, you have the date and then you also need set of witnesses or other watchers things like that some additional information. So I guess this could be tested only with such specific methods that need this Manu Sporny: I think it's duplicated. Marcus if we look at the did resolution section I don't know… Manu Sporny: if folks can see my screen we're very clear in did resolution that you have to pass options in to the resolve function. You have to implement that resolution function. It's clear what the inputs and the outputs should be. Will Abramson: Yeah. Yeah. Manu Sporny: I think it's a assault version. Will Abramson: But this is about what the resolver should do with those resolution options, isn't it? It's about Yeah,… Manu Sporny: Yeah, but do we need to spell that out? I mean,… Will Abramson: maybe. Yeah. Manu Sporny: if people don't implement it that way, it's not going to work. we don't need normative statements that if people don't follow them it's just like it's going to be very obvious that the system's broken right. Kevin Dean: Cool. Yes. 00:25:00 Will Abramson: And I think did methods will specify or their read operation will say you need to pass in these options,… Manu Sporny: Yep. Will Abramson: right? okay. Manu Sporny: By the way, I shared and now you're not sharing again. Sorry. Will Abramson: I mean that's useful direction for me because what I will do is raise an issue about this on bid resolution suggesting that we don't need it and we can see what people think. Will Abramson: Right. okay. Test. Kevin Dean: That's horrible. Will Abramson: Yeah. there's actually two things I want to discuss today. The first is I'm not really doing some depth testing of what a deck document should be yet. I have thought maybe there already exists this thing like we already have that test that could be repurposed. Will Abramson: So I Right. Manu Sporny: We have a JSON schema. Manu Sporny: We have a JSON schema defined. We should just use that. Will Abramson: So if you can point me in that direction because I've got the structure in place but I've just been testing the ID for now. So I think I will pass it through JSON schema and then we'll get valid or not. So that's fine. And then the other question I had is this end bit. Will Abramson: So the root result must be represented in a conformant representation that corresponds to the exact inputed resolution option. so I think this is old from when there was many different representations isn't there just one accept input now my god Manu Sporny: Sorry, which issue are we looking at? Five. Okay. Where I'm seeing four on your screen. I don't know what it takes to force a refresh. Manu Sporny: I know. This is painful. Can you wiggle your mouse isn't moving. I guess it just loses the video feed. Will Abramson: I mean,… Will Abramson: this is about media types, right? think and we kind of said now I did document should only have one media type right. Okay. Markus Sabadello: We have one in the specification now and in theory there can still be others like Galaxy someone could define in the future. Will Abramson: So, I could just test it with this beard for now. This isn't that interesting an issue. Will Abramson: I just Okay. Manu Sporny: Yeah, I agree. Manu Sporny: Yeah, I mean, yeah, what Marcus said, the only valid thing right now is application dead, but that doesn't mean other people might not create different confirmed representations in the future. Will Abramson: L6 is not right. okay. Will Abramson: So the next issue I have I don't think you'll be able to see my screen but I'm just looking at this is seven so issue seven we've already discussed it this is about properties that are optional… Kevin Dean: There was one little Will Abramson: which happen all the time in resolution yeah you screen share great yeah so actually I think seven we don't need to discuss it… Manu Sporny: I'm gonna try and… Manu Sporny: screen share. and then you tell me where to go. Can y'all see Will Abramson: because we already have right But maybe just for Marcus and Benjamin's sake, the did resolution says often this property is optional but if it is provided it must have X statement or whatever and M suggested at least in the initial iteration of this test we don't need to test those things… Kevin Dean: What? Will Abramson: because they're optional first and then there's a Will Abramson: Stay on it. Benjamin Young: Yeah, man is correct. You don't have to test optional features. everyone wants to get to them at some point. but I wouldn't block on it. Will Abramson: Okay. Mhm. Benjamin Young: keep it in around one of the things we did as we were building the VC test suites is when there was stuff like that or people would send PRs for them but they weren't quite ready we'd still put test in the test suite to sort of remind us to come back or file an issue for it just so it's there and have an explanation of why you didn't implement it because people ask because if they just search for and they're like, "But there's a listing, but there's no requirement from the February Thursday. 00:30:00 Kevin Dean: Yeah, we can we Yeah,… Kevin Dean: we came to that. we had that discussion earlier. anything that as long as we're clear in the documentation,… Will Abramson: Yeah, perfect. Kevin Dean: we are not testing the following. yeah. Benjamin Young: Yeah, it's mostly about setting expectations. Will Abramson: Okay, so yeah, I mean that makes life a lot easier. I'll try and swim down the list, but let's move on to eight. I think it should go up to 11. Yeah. Yeah. Manu Sporny: Yep. Sorry. can you at least see that things are changing on the screen? 11. Here we go. Will Abramson: This is 11, but we can do 11. Yeah. This is just me remind us that we need some flags for these like this. Will Abramson: this for example a deactivated did I think is going to be a different input that resolvers will have to provide the test suite they'll say look I can resolve this did but it is deactivated does that make sense to everybody else so there people are going to reply to list of valids and… Manu Sporny: So, you're just checking deactivated one. Will Abramson: then they should provide a deactivated Manu Sporny: Yep. My grades. Will Abramson: But I think 10 is also similar but about not found. no 10. yeah, I think these are the same. I don't know if we want to condense but I don't know how I'd write testers. They're just the same thing in different ways, aren't they? Manu Sporny: Yep. Seems duplicative. Will Abramson: Or are they not? Will Abramson: But I mean can we just leave them as they are? Kevin Dean: Sorry. Will Abramson: I think they're both valid statements but can I have I want testing best things right? Mhm. Manu Sporny: Best to not repeat yourself. Go ahead, Benjamin. Benjamin Young: Yeah, it depends on how you're going to compare against the spec. but you could certainly share the code, you don't have to copy and paste the code two places. You could have a shared function that does the same test. But if the two phrases do indeed require the same code, Amanu may be saying more about specwriting. I don't know. Kevin Dean: $12. Manu Sporny: Plus one to that. I think this is just they are duplicative statements and best not to have duplicative statements in the spec. at best, people ignore, them or just sort of like, I already tested that. But the at worst, people get confused why do you have these two statements? I must not be seeing something. And then we'll probably see issues being raised against the spec about what's the difference between these two? And the answer is there is no difference. So I would say remove the second statement, keep the first statement and just write one test. Will Abramson: address. Yeah,… Benjamin Young: Does that also need to turn into a change to the specification? Will Abramson: I'll raise these issues against resolution. Benjamin Young: Yeah, that is the secret reason why the W3C requires tests. Kevin Dean: What happened? Benjamin Young: Not so secret reason. Will Abramson: So, there might be a few I think I've noticed because in the did resolution, right, s these be section four of the algorithm, there's these beginning sections which defines a whole bunch of stuff. Will Abramson: Some of it generic, but there are some must statements in there. And then there are also some must statements in the algorithm and sometimes they are duplicate, I think. But I need to do a bigger review better. Benjamin Young: Something to watch for is there. Benjamin Young: It happens a lot in specs where there's a non-normative intro section that ends up getting populated with required and musts and shoulds and all kinds of stuff somewhat accidentally because the editors forget that it's technically non-normative or they're making the same statements that the spec's going to make later but they're doing it in the context of introduction. I don't know that that's the case here,… Will Abramson: right? Yeah. Benjamin Young: but it does happen with some regularity. Please. Will Abramson: I'll do a review with this in mind about duplicative statements and I'll just try and flag them as issues. Let's look at nine. Issue nine. 00:35:00 Kevin Dean: Mhm. Manu Sporny: Sorry, I keep forgetting that I'm driving. Manu Sporny: Yeah,… Benjamin Young: Yeah, he's everywhere today. I kind of want that as a sticker. I feel like they should send it to you anytime you get it. I'd have so many of those. Manu Sporny: Someone has it on their laptop as a sticker that goes W3C. Is it Alex Russell? Okay. Will Abramson: … Benjamin Young: That's awesome. Will Abramson: yeah, we can talk at nine briefly, but we have already talked about it. So, there's nine and then eight and then we'll have done all of them, which is deny is similar to deactivated but about it's just not found is weird because not all did methods will have not found in them, not found this is the right syntax but it just doesn't Can't be results. There did document for it. Will Abramson: I guess I should have got the statement here. Kevin Dean: push. Will Abramson: So currently I'm thinking of handling this the same way. resolvers did that is not found. I do wonder if that might create a case where in the future that can be found. Will Abramson: Yeah. yeah… Manu Sporny: I mean did example that's almost guaranteed to not exist in the future right yeah I mean people can self selfattest to the dead methods they don't support meaning through the config file that's… Will Abramson: but example is method not supported So this is a method that I've tried to resolve it. I've not found anything. Manu Sporny: Manu Sporny: how they express it Okay. Will Abramson: If method not supported, I find I've just picked a random method name that doesn't exist, that's not supported method. That's easy. Will Abramson: I think you can just did go on ABC or… Will Abramson: did go on example but this is not found I think we have to self attest to divids that they can't find,… Kevin Dean: What's happening? Manu Sporny: Mhm. Yep. Will Abramson: but for did methods that they Yeah. Manu Sporny: Yep. Exactly. Will Abramson: So that's how I'm handling that. Yeah. And some did resolves won't be able to,… Manu Sporny: Yep. Last one. Markus Sabadello: Yep. Will Abramson: but hopefully we'll have at least two did web is a good example, We should did web identifiers that are not found. Will Abramson: Last one. Eight issue eight, please manu. And then maybe we can just earlier this very useful. Kevin Dean: What the heat? Will Abramson: is that really all the issues? right. Yeah, I'm asking this because of our conformance statements really and I'm wondering are people going to want to say look I'm a conformant did URL d reference sir but I'm not a conformant did resolver or the other way around and do we want to split that up in the implementations definition yeah look I'm a d resolver or yeah I'm d reference Markus Sabadello: I think you can be a resolver without being a referenc not the other way around. If you're the reference then you also need to be a resolver. Will Abramson: But I thought DS are good to be done locally on the client some. Markus Sabadello: Yeah it's a part of the dreferencing process right? The referencing al always always involves resolution… Will Abramson: Yeah. Yeah. Markus Sabadello: but the different parts of the referencing process can happen in different places with the fragment that can be referenced locally. Kevin Dean: Goodbye. Will Abramson: Right. Manu Sporny: Yeah, I'd say let's combine it until somebody comes along and… Will Abramson: We just comment on to that effect. Manu Sporny: says they really want a different conformance class. Yeah. Will Abramson: That's fine. Good. Will Abramson: I just was thinking I mean yeah the URL be referencing I guess I'm just going to wait because there's a big change going through right with Steven stuff. So wait for those tests. okay there is one other issue that I think we missed is issue 12 that is the last one. auto. we can look at it, but I think it's not relevant. Yeah. 12. Manu Sporny: Sorry, which one? I missed 0 to 12. Will Abramson: Yeah, we can look at it briefly, but I think it's not relevant because equivalent ID is another one of these optional properties. I guess one of the things I just wanted to flag about it is it's kind of putting requirements on the did method spec this second point a conforming did method specification bus guarantee. So I don't know again this equivalent ID is an optional property. So maybe we don't care about it but 00:40:00 Manu Sporny: This statement probably belongs in the DID core specification but it would be a class 4 change. I think it is fine for us to put other requirements on did method specifications in did resolution. the problem is that you create there's no one place to look for all the requirements for did method. Will Abramson: Yeah. Yeah. Manu Sporny: Manu Sporny: That's the problem we're creating here. So if we have to do this we can just did resolution for now and then move it into did core in a future working group. I'm trying to think if this could be a class 3 change in dead core… Kevin Dean: We're finished. Manu Sporny: because it's not any functional. Do we define equivalent ID at all in dead core? I totally forget,… Will Abramson: I doubt it. Will Abramson: I don't know. Manu Sporny: but we moved it during it was there in the very beginning, wasn't it? equivalent ID when we did the FPWD I think existed and… Manu Sporny: if it existed then and we moved it to did resolution Will Abramson: Yeah. … Will Abramson: I mean in did resolution they're talking about it as a did document metadata object rather than something that would go in the did document itself. I don't know if did core also talks about it as something in this. Manu Sporny: did core talks about what it means to have a conforming did method specification, right? that's the only reason this statement would go there. Will Abramson: Yeah, it does talk about equivalent ID has section 8.10 equivalence properties does not have any normative violence on Kevin Dean: Just a second. Manu Sporny: And there's an argument here that we clearly say this and we've always said this and… Kevin Dean: No. No. Manu Sporny: because of that it's a class 3 change. Manu Sporny: We're not adding a new feature because equivalent ID just exists. We're just specifying what a did method specification needs to do. yeah, we could. Yeah, I mean, I think there's an okay argument for saying this is a class 3 change. Will Abramson: This is in the security consideration section though,… Will Abramson: Which it does say is non-normative. Manu Sporny: That is true. I'm not saying it's a clear argument. I'm saying that there's room to make an argument for class 3 change because it's not changing any of the functionality of the spec it's definitely not changing any testable functionality. Manu Sporny: Will Abramson: Mhm. Manu Sporny: It is clarifying so class 3 is you can make clarifying language that made previously conforming implementations non-conformant or previously non-conforming implementations conformant or you're just clarifying this is what we mean through the normative statement. It's a clarification statement. So this is a clarification statement on method specifications. Therefore it's a class 3 change to DID core. if we want to move this one out, I think we can do it as a class three Kevin Dean: Who's this? Okay. Will Abramson: Okay,… Will Abramson: that sounds good. But I guess I'm wondering is it something we should like because as I said this is equivalent ID property and did resolution that is right it says did document metadata may include the equivalent ID property then it has these must statements about it. Will Abramson: So, we're not going to be testing any of those must statements about the equivalent ID based on our previous conversation,… Manu Sporny: All right. Will Abramson: but maybe we do want to flag it to be moved out. particularly the statement is about the D method specification because agree. I think it's not best if we have these requirements all over the place because did method implementations aren't going to Manu Sporny: We could transfer the issue. Manu Sporny: Do you want to do that now to did core? I mean, if we … Will Abramson: Does it make sense? Will Abramson: Yeah I mean you can transfer I think it's probably better just erase it and copy that one the middle statement right about the did method. All… Manu Sporny: I mean, Let's see. Aren't all of these The And all three of these statements have to do with the did method specification, don't they? 00:45:00 Will Abramson: Yeah, I guess I don't Yeah. Okay. Will Abramson: Yeah, I guess there's two bit, then what would the text in resolution be changed to? It would just say equivalent ID should conform to the requirements of DIC core. Manu Sporny: Yeah, I don't think you have to say anything,… Will Abramson: Okay. No,… Manu Sporny: right? Because… Kevin Dean: Awesome. Manu Sporny: if it doesn't conform to DID core, it's not a valid DID document. Will Abramson: but that's the point. this is in the divid document metadata object that is returned alongside the divid document it's not in the divided document… Manu Sporny: I see what you're saying. Okay. Will Abramson: which maybe that's a question mark should this equivalent ID is it really an optional property of the did document I don't know not in the document Manu Sporny: And there's Markus Sabadello: No, it's not in the D document. Will Abramson: Goodbye. Mhm. Markus Sabadello: It's a bit confusing because in the D document we have the also known as, right? And the given end ID and canonical ID are a little bit similar concepts, but they are in the metadata, not in the document. Manu Sporny: Yeah, I mean it's a difficult judgment call. So I think the answer to that is no. Equivalent ID is not in the DI document and so it's got nothing to do with it. it's really about did method specifications. These statements did method specifications. Markus Sabadello: Could this also be a case where it just provided it in the configuration with the not found and the deactivated situation? Markus Sabadello: we provide a date that will have an equivalent ID in the metadata when it's resolved and then Will Abramson: Yeah, I mean I think that is the way that we would test it,… Will Abramson: but I think at least initially I'm not going to be testing this at all because it's an optional property. I just wanted to bring up this other concept question about the requirements on the did method spec because we were going to test it like you said Marcus those second two statements here like a conforming did method specification must guarantee that each equivalent ID value is logically equivalent to the ID property value. Will Abramson: I don't know how I would test that I would have to understand… Will Abramson: what logically equivalent means in the context of the specific bit method. Markus Sabadello: Yeah, I agree. Markus Sabadello: We probably cannot Will Abramson: So, I still don't really know what to do. I'm not concerned for the test suite. I think that's fine. But in terms of where they should go, I don't know, man. Manu Sporny: Let's try to break it down into multiple parts. Manu Sporny: Do we want to keep any of these statements in did resolution? I don't think This one is about the specification. This one is the DID method specification. And this one is about the DID method and… Manu Sporny: the DID method specification. So I'll assert that none of these belong in did resolution. Is that correct? Markus Sabadello: But why is it about the method? Markus Sabadello: I mean it's okay. Manu Sporny: because by the governing It says the did method specification and… Kevin Dean: Thank you. Manu Sporny: this says the That's why I'm asserting they're all about the DID method specification and as such they don't belong in did resolution. Will Abramson: Yeah. Yeah,… Will Abramson: I think I would agree. Manu Sporny: And then if that's true then the question is where do we move these statements and the suggestion is there is a section in did core did spec that has a section on methods and what each method must do and should do and we can just move it to this it's probably belongs in method operations s section, we just add an item down here at the bottom and said, if a quill ID is supported it,… 00:50:00 Will Abramson: Okay. Yeah. Yeah. Manu Sporny: and we figure out how to translate these. I mean, I can take an action to try and translate these into language that would fit in that section. Markus Sabadello: We don't define the equivalent ID in input core. We remove all of the metadata things to take resolution Manu Sporny: We talk about it. Equivalent ID we talk Yeah. So we do it is a lo I agree Marcus it's not as solid as a argument but I think it should be okay to just say that's a requirement right if you support equivalent ID you must do these things Will Abramson: I almost think… Manu Sporny: button. Mhm. Will Abramson: if anything it should because currently that's those security considerations that mention equivalent ID are kind of out of cont that's the only place in the document that equivalent ID is So I guess because we did this refactor and moved equivalent ID into resolution. So I think it would make sense to put them in the method section to talk about equivalent ID you must do X Y and… Will Abramson: Z person I mean maybe we can move it as an issue and just discuss it on the call and see if anyone else has I think moving that you convince me we should answer this issue somewhere I mean it's going to require changes both let's put it into code to start Manu Sporny: Okay. Yeah. Manu Sporny: Marcus, are you okay with that? I'm hearing a little bit of kind of push back on doing that. Markus Sabadello: … Markus Sabadello: if you think that that works, then I think that's okay. Manu Sporny: I think it's probably a better place than it is right now and then we can kind of discuss as will mentioned. So, we'll transfer Will Abramson: Yeah, you can transfer that. But that was just one example. There is also canonical ID in there too in resolution just below equivalent ID. Kevin Dean: Oops. Will Abramson: I don't know if that same applies. Not this is maybe… Manu Sporny: Why can I not add did color? Manu Sporny: No. Why is it not showing up in the list? Transfer issue. Will Abramson: because it's CCG spoke. Should that mark? No. Manu Sporny: No. wait. yeah. Do I I'm confused. can you not move transfer outside of the organization? Manu Sporny: It looks like that's correct. You can't transfer. Okay. we'll just have to raise it. yeah. Will Abramson: You see that come? Kevin Dean: Yeah, create a new one. Kevin Dean: Then add a comment on this one saying it's been moved. And Manu Sporny: Okay. Will Abramson: But yeah I can raise one because I think I'll talk to about this canonical ID thing as well… Kevin Dean: What's I Will Abramson: because the canonical ID also has conforming div method specification must guarantee that the canonical ID value is logically equivalent to the ID property. Manu Sporny: So, you're taking an action to create and do the linking. I don't need to do it here. Will Abramson: Yeah, I'll create an issue on decor and just talk to both of those things about maybe moving those statements into cool. Manu Sporny: Okay, sounds good. All right. okay. Will Abramson: Yeah, that's all the issues. So, I mean maybe I'll create some more but I think this was useful and I'll create a few issues on relative repos to crack what we discussed. Thank you. Manu Sporny: Sounds good. Manu Sporny: Thanks, Will. Will Abramson: Have a look. Manu Sporny: Thanks for doing all this work. Appreciate it. Will Abramson: That's all right. That's Have a good day. Thanks. Manu Sporny: Yes, I care. Meeting ended after 00:54:51 👋 *This editable transcript was computer generated and might contain errors. People can also change the text after it was created.*
Received on Wednesday, 22 October 2025 22:16:46 UTC