Skip to content

Conversation

@marcoscaceres
Copy link
Collaborator

@marcoscaceres marcoscaceres commented Jun 30, 2025

Closes #305
Closes #112

This pull request adds a new section to the index.html file that defines and describes the "Credential Request Coordinator" concept, which is central to managing digital credential interactions within a user agent. The section introduces the coordinator's responsibilities, lifecycle management, and its interaction states, laying the groundwork for future implementation details.

New "Credential Request Coordinator" section:

  • Introduces the concept of the credential request coordinator, explaining its role as a user-agent-defined component that mediates digital credential interactions within a top-level traversable, orchestrates presentation/issuance flows, and manages interaction states.
  • Details the coordinator's responsibilities, including validating inputs/outputs, preparing holder options, presenting holders for user selection, and resolving or rejecting the interaction's promise.
  • Defines the finite set of interaction states (idle, requesting, aborting) used by the coordinator to manage the lifecycle of credential requests.
  • Adds placeholders for future documentation on preparing credential requests, aborting requests, dismissing the holder chooser, and presenting the holder chooser.
  • Adds a cross-reference in the terminology section, linking "Digital credential coordinator" to "credential request coordinator."

Preview | Diff

@marcoscaceres marcoscaceres requested a review from a team as a code owner June 30, 2025 07:12
Copy link
Contributor

@TallTed TallTed left a comment

Choose a reason for hiding this comment

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

Small language fix

@marcoscaceres marcoscaceres requested a review from mohamedamir July 1, 2025 02:54
@marcoscaceres
Copy link
Collaborator Author

@mohamedamir added the diagram above, as we discussed... will fix it up and add to the spec.

@marcoscaceres marcoscaceres added the agenda+ Add to the weekly agenda label Aug 1, 2025
@mohamedamir
Copy link
Contributor

@mohamedamir added the diagram above, as we discussed... will fix it up and add to the spec.

Great!
Thanks @marcoscaceres

Copy link
Collaborator

@timcappalli timcappalli left a comment

Choose a reason for hiding this comment

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

I still don't agree with having this in the spec, as it is very UA specific.

It it also essentially mandates that the credential selector is a UA component, which is not always the case (in most cases it is not).

This is why I previously had the DC Client and DC Client Platform definitions which can clearly separate some of this.

TallTed
TallTed previously requested changes Aug 6, 2025
Copy link
Contributor

@TallTed TallTed left a comment

Choose a reason for hiding this comment

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

Tweaks for consistency within source, thence to consistency in rendering for humans.

@hlflanagan
Copy link

Discussed on the FedID WG DC API Series B call

@marcoscaceres
Copy link
Collaborator Author

It is also essentially mandates that the credential selector is a UA component, which is not always the case (in most cases it is not).

Sorry, that is not the intent. It's not a UA component, it's either a platform component or generated by the OS.

This is why I previously had the DC Client and DC Client Platform definitions which can clearly separate some of this.

We can just clarify that in the text.

@marcoscaceres marcoscaceres requested a review from Copilot August 7, 2025 09:02

This comment was marked as outdated.

@marcoscaceres
Copy link
Collaborator Author

marcoscaceres commented Aug 7, 2025

I still don't agree with having this in the spec, as it is very UA specific.

To be clear, these are not UA specific things - they are generic things to any user agent:

  • Coordinator: all UAs must deal with simultaneous requests from multiple browsing contexts (this is common, payment request does this, web share does this, web authn does this... though in somewhat un-good way, etc.) - and it has control of when and how the promise is resolved/rejected, setting up the abort controller algorithm (needs to tell the client to close the sheet and tear down the wallet, then resolve the promise). And also deals with the monitoring the requesting traversable's lifecycle.
  • Client: handles UI thread interactions with a wallet - the user aborting, the wallet crashing, the abort controller timing out and telling the Wallet to go away, the wallet sending back a valid or invalid payload, which must then be converted to DigitalCredential (which may result in a DOM Exception), and sent back to the coordinator to resolve/reject the promise.

So there's nothing in the above that is "UA specific", both WebKit and Chromium need to do the same things here (and hopefully Gecko too 🧡🦊). Why this model is needed.

Co-authored-by: Mohamed Amir Yosef <[email protected]>
mohamedamir and others added 3 commits October 9, 2025 08:57
Co-authored-by: Marcos Cáceres <[email protected]>
Co-authored-by: Mohamed Amir Yosef <[email protected]>
Copy link
Contributor

@mohamedamir mohamedamir left a comment

Choose a reason for hiding this comment

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

Thank you @marcoscaceres !
I think it's in good shape except some minor comments
@timcappalli could you please take a look?

Copy link
Collaborator

@timcappalli timcappalli left a comment

Choose a reason for hiding this comment

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

There's some terminology issues, but I don't think they affect implementation. We can fix them once #387 gets merged.

I also don't think this should be it's own section, but that can also get changed at a later date.

Co-authored-by: Tim Cappalli <[email protected]>
Co-authored-by: Mohamed Amir Yosef <[email protected]>
@marcoscaceres marcoscaceres requested a review from Copilot October 9, 2025 21:48
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 2 comments.


Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@marcoscaceres marcoscaceres merged commit 78e1e65 into main Oct 9, 2025
2 checks passed
@marcoscaceres marcoscaceres deleted the corrdinator branch October 9, 2025 21:53
github-actions bot added a commit that referenced this pull request Oct 9, 2025
…gent (#306)

SHA: 78e1e65
Reason: push, by marcoscaceres

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

Define coordinator Invoked from disconnected document

6 participants