Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deactivated flag moved to DID Document Metadata #581

Merged
merged 2 commits into from
Feb 4, 2021

Conversation

csuwildcat
Copy link
Contributor

@csuwildcat csuwildcat commented Jan 26, 2021

index.html Outdated Show resolved Hide resolved
Copy link
Member

@msporny msporny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor nit, don't think we need to make this statement testable.

@csuwildcat
Copy link
Contributor Author

@msporny don't you think we should state that the DID Method MUST populate this with a true value if the DID has been deactivated? Given we tell them every method must take care to sort out their deactivated story, how then is it not logical to tell the constructor of the resolution response to mark this as true if the method resolution determines it is deactivated?

@csuwildcat
Copy link
Contributor Author

I guess I feel like we're taking the whole testability thing a tad too far, and these kinds of clear, logical directives that naturally follow from the other directives to DID Methods elsewhere in the spec are being watered down as a result.

@msporny
Copy link
Member

msporny commented Jan 27, 2021

@msporny don't you think we should state that the DID Method MUST populate this with a true value if the DID has been deactivated? Given we tell them every method must take care to sort out their deactivated story, how then is it not logical to tell the constructor of the resolution response to mark this as true if the method resolution determines it is deactivated?

That would be a DID Method-specific test... how do we test this without driving a specific DID Method implementation to register a DID and then deactivate the DID and then use a resolver to check that the DID is deactivated? That's the only way that I know of to test the statement. Our charter also lists DID Method specifications as out of scope:

https://www.w3.org/2019/09/did-wg-charter

So, if we were to start testing DID Method implementations, a W3C Member could assert that we're violating our charter.

I guess I feel like we're taking the whole testability thing a tad too far, and these kinds of clear, logical directives that naturally follow from the other directives to DID Methods elsewhere in the spec are being watered down as a result.

It it's a clear logical directive that flows naturally, it doesn't need to be stated at all. :)

Another way to put this is -- the intent of the wording is clear without the normative requirement. What are we afraid of... that implementations will set deactivated to 'false' when documents have been deactivated? I'm pretty sure no one would use that DID Method or resolver if that were the case.

@msporny
Copy link
Member

msporny commented Jan 31, 2021

Waiting on feedback from @csuwildcat on response to his questions. Waiting on others from the WG to break the normative language tie.

@csuwildcat
Copy link
Contributor Author

I'll do whatever folks want here, I just thought it was important to make this a directive to get compliance from Method authors.

@peacekeeper
Copy link
Contributor

Can we make it normative in DID Core and then test it elsewhere, e.g. in the CCG where we ARE allowed to work on DID resolution and concrete DID methods?

@msporny
Copy link
Member

msporny commented Feb 2, 2021

Can we make it normative in DID Core and then test it elsewhere, e.g. in the CCG where we ARE allowed to work on DID resolution and concrete DID methods?

We are not supposed to delay testing or put the burden of testing on an external group. If we want a normative statement that can be tested by a machine (which is ideally all the normative statements in the specification), we are expected to write a test for it. The normative language in the specification is expected to be self-contained (or rely on other existing standards that have an official standing).

@OR13
Copy link
Contributor

OR13 commented Feb 2, 2021

Related decentralized-identity/sidetree-reference-impl#14

Does this look right?

"didDocumentMetadata": {
    "deactivated": true,
    "canonicalId": "did:sidetree:EiDyOQbbZAa3aiRzeCkV7LOx3SERjjH93EXoIM3UoN4oWg",
    "method": {
      "published": true,
      "recoveryCommitment": "EiBfOZdMtU6OBw8Pk879QtZ-2J-9FbbjSZyoaA_bqD4zhA",
      "updateCommitment": "EiDOrcmPtfMHuwIWN6YoihdeIPxOKDHy3D6sdMXu_7CN0w"
    }
  }

@peacekeeper
Copy link
Contributor

Does this look right?

Looks great to me!

[Off-topic] Also, perhaps we should standardize and register the "method" metadata property so that any method can use it for putting their own method-specific things in there.

@csuwildcat
Copy link
Contributor Author

csuwildcat commented Feb 3, 2021 via email

Copy link
Contributor

@peacekeeper peacekeeper left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 to merging after applying the suggestion 74f2d40#r564900912.

@msporny
Copy link
Member

msporny commented Feb 4, 2021

Normative, multiple reviews, changes requested and made, no objections, merging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants