Skip to content

Define registry inclusion rules #157

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

Open
wants to merge 21 commits into
base: main
Choose a base branch
from
Open

Define registry inclusion rules #157

wants to merge 21 commits into from

Conversation

marcoscaceres
Copy link
Collaborator

@marcoscaceres marcoscaceres commented Aug 7, 2024

Closes #58
Closes #191
Closes #124


Preview | Diff

index.html Outdated
<li>MUST be standardized at a recognized standards organization and have
a stable URL.
</li>
<li>MUST define a [[WebIDL]] [=dictionary=] representation of the
Copy link
Contributor

Choose a reason for hiding this comment

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

This seems like a good goal to me, but seems hard to accomplish logistically. Where does the WebIDL live? In this spec? In the protocol spec? What happens when they get out of sync?

Copy link
Collaborator Author

@marcoscaceres marcoscaceres Aug 7, 2024

Choose a reason for hiding this comment

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

I was imagining the protocol spec. In our spec, we would only link to the dictionary (i.e., our spec would only have [FooBar](https:/link-to-whatever.com/spec/#FooBar)).

Choose a reason for hiding this comment

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

It seems like it would be easier to include the definition in this spec as part of the inclusion process.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

It could certainly be done that way. I do share @samuelgoto’s concerns about this spec falling out of sync though.

I was thinking that having just the name of dictionary in this spec minimizes the chance of things getting out of sync. Listing just the name is also what the Cred Man spec does in its registry:

https://www.w3.org/TR/credential-management-1/#credential-type-registry-appropriate-interface-object

Choose a reason for hiding this comment

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

Either would work, but we shouldn't require other specs that may already be completed to reopen themselves if they could just drop some webidl that describes themselves here. Particularly where they don't already define their structures with webidl.

Copy link
Collaborator Author

@marcoscaceres marcoscaceres Aug 13, 2024

Choose a reason for hiding this comment

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

Yes, that's a good point. Someone can correct me, but I think the only candidates right now are OpendID4VP (and the mDoc part), and maybe W3C VC? I think all of those are in active development with the aim of integrating with this.

but we shouldn't require other specs that may already be completed to reopen themselves if they could just drop some webidl that describes themselves here.

Generally speaking, what I'm finding is that you can't take existing specs and expect them to work out of the box with the DC API. They really need to be developed in tandem because the Web and JS have very specific requirements. The IDL requirement, along with clearly specified validation criteria, is actually a forcing function for those specs to integrate properly with this spec.

My feeling right now is that they might need to reopen themselves if they want to integrate, because they wouldn't be designed to work with a JS API in the first place (and if any such spec exists).

Copy link
Contributor

Choose a reason for hiding this comment

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

I expanded on my concerns about this specific requirement here on this other PR, but I remain fairly concerned (security-wise) about requiring all browsers to redeploy before protocols can be extended:

#156 (comment)

Copy link

@TomCJones TomCJones Apr 5, 2025

Choose a reason for hiding this comment

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

what's the stable URL of the mDoc? or of the VP for that matter?

Copy link
Contributor

@OR13 OR13 left a comment

Choose a reason for hiding this comment

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

This looks good.

If it's possible to use openid as the first example I think a working example will do a better job of explaining than a fake example.

The requirements seem good.

The privacy and security evaluation criteria need to be more explicit though, and there should be a documented appeal process, for rejections.

@marcoscaceres
Copy link
Collaborator Author

Agree with @OR13. I'm still hopeful that privacy folks will jump into this and help us define the criteria. I've pinged in #58 and let's see about getting this on the agenda for the next call.

@npdoty
Copy link

npdoty commented Aug 19, 2024

This is a novel use of privacy and security reviews for Registry updates, so I don't know that we have settled guidance yet. Please bear with us / let's do our best to figure out the best way to do this.

We did discuss briefly in the issue giving more specifics on privacy-related requirements for the protocol level, but I think we're unlikely to include all of those details within this registry section. Would it still be useful to summarize the high-level needs for the protocol, even if the reviews will inevitably be more detailed?

One consideration is that we expect not only to have reviewed the protocol specs for privacy, but also to have addressed any issues raised in those reviews, if the implications are significant for our privacy expectations for the system as a whole. So I suggest we:

  • change the language to require a privacy review and issues addressed,
  • add a citation to the user considerations/threat model document in whatever state we can (so that we can give some set of expectations to those trying to determine whether a protocol is well-suited), and
  • indicate that the group should evaluate the results of those reviews when making a consensus call.

(I'm recovering from COVID; please forgive belated replies or awkward wording.)

Copy link

@hlozi hlozi left a comment

Choose a reason for hiding this comment

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

Please remove the word “freely” and retain “publicly available”. It’s important for specifications to be publicly available, yet we know that some key formats and protocols for digital credentials are not always freely available. Discussing that in the context of the registry inclusion criteria seems neither suitable nor an effective use of our time.

@bc-pi
Copy link

bc-pi commented Apr 1, 2025

Please remove the word “freely” and retain “publicly available”. It’s important for specifications to be publicly available, yet we know that some key formats and protocols for digital credentials are not always freely available. Discussing that in the context of the registry inclusion criteria seems neither suitable nor an effective use of our time.

Discussing criteria for inclusion in the registry, as part of a PR literally titled "Define registry inclusion rules", seems not only suitable but essential for this group, which is tasked with defining both the API and its associated registry.

To my admittedly naive eye, pushback against requiring specifications to be both freely and publicly available feels antithetical to the W3C’s ethos of openness and accessibility. The W3C's core principles emphasize that Web standards should be available to everyone, to support interoperability, global participation, and the continued growth of the Web.

What would be an ineffective use of our time, in my view, is a prolonged debate over whether free and open access to specifications should be a baseline expectation.

@jogu
Copy link

jogu commented Apr 2, 2025

To my admittedly naive eye, pushback against requiring specifications to be both freely and publicly available feels antithetical to the W3C’s ethos of openness and accessibility. The W3C's core principles emphasize that Web standards should be available to everyone, to support interoperability, global participation, and the continued growth of the Web.

I think @bc-pi does raise an interesting point here. Is there precedent for W3C working groups effectively endorsing non-freely available specifications?

Copy link

@bc-pi bc-pi left a comment

Choose a reason for hiding this comment

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

#157 (comment) is the reason I'm requesting changes.

@marcoscaceres marcoscaceres requested a review from hlozi April 9, 2025 21:53
index.html Outdated
Comment on lines 516 to 517
hyphens (e.g., "protocol", "the-protocol"). Avoid using version numbers
in the protocol identifier. The protocol identifier MUST uniquely
Copy link
Collaborator

Choose a reason for hiding this comment

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

2025-04-11 WG call: remove Avoid using version number in the protocol identifier.

Copy link
Contributor

Choose a reason for hiding this comment

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

Note that this avoidance results in a requirement that the protocol include version negotiation, even if that is as simple as the two sides of a protocol exchange announcing their version, each to the other, with the potential that either or both sides will respond, I cannot interact with that version of this protocol. <Something> must be updated.

index.html Outdated
<li>MUST define a representation, as either a [[WebIDL]] [=dictionary=]
or a JSON object, of the [=digital credential/exchange protocol=] request
structure (i.e., the [=dictionary=] to which the
{{DigitalCredentialsProvider}}'s {{DigitalCredentialsProvider/request}}
Copy link
Contributor

Choose a reason for hiding this comment

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

We shouldn't require conversion "before it is passed onto the underlying platform". Perhaps delete everything in the parenthesis?

index.html Outdated
or a JSON object, of the [=digital credential/exchange protocol=]
response structure (i.e., the [=dictionary=] to which the
{{DigitalCredential}}'s {{DigitalCredential/data}} is [=converted to idl
values|converted=] before it is made available to the relying party).
Copy link
Contributor

Choose a reason for hiding this comment

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

Ditto

@wseltzer
Copy link
Contributor

Discussed at 11 April meeting notes.

timcappalli and others added 2 commits April 16, 2025 07:31
Co-authored-by: Brian Campbell <[email protected]>
Per the 2025-04-11 hybrid meeting.
@wseltzer
Copy link
Contributor

Discussed at 21 April meeting notes

@timcappalli timcappalli added the FPWD Blockers Should be addressed before FPWD label Apr 21, 2025
@timcappalli timcappalli requested a review from a team as a code owner April 21, 2025 18:09
Copy link
Contributor

@RByers RByers left a comment

Choose a reason for hiding this comment

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

This looks great to me now, thanks Marcos and Tim!

Copy link
Contributor

@samuelgoto samuelgoto left a comment

Choose a reason for hiding this comment

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

Inclusion rules LGTM++

Comment on lines +479 to +480
<li>MUST be defined in a specification which is available publicly at the
URL listed in the registry.
Copy link

Choose a reason for hiding this comment

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

Seems somewhat redundant to

MUST have a stable URL that points to a freely and publicly available
specification.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FPWD Blockers Should be addressed before FPWD privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response. security-tracker Group bringing to attention of security, or tracked by the security Group but not needing response.
Projects
None yet