Skip to content
Merged
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 122 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -485,6 +485,13 @@ <h2>
via an [=digital credential/exchange protocol=], to respond to a
[=digital credential/presentation request=] by a [=verifier=].
</dd>
<dt>
<dfn data-for="digital credential">Credential request</dfn>
</dt>
<dd>
Is either a [=digital credential/presentation request=] or [=digital
credential/issuance request=].
</dd>
<dt>
<dfn data-dfn-for="digital credential" data-local-lt=
"issuance">Issuance request</dfn>
Expand Down Expand Up @@ -539,7 +546,122 @@ <h2>
issuance protocol is identified by a [=digital credential/protocol
identifier=]. See also section [[[#protocol-registry]]].
</dd>
<dt>
Digital credential coordinator
</dt>
<dd>
See [=credential request coordinator=].
</dd>
</dl><!--
// MARK: Credential Request Coordinator
-->
<h2>
Credential Request Coordinator
</h2>
<p>
The <dfn data-local-lt="coordinator">credential request coordinator</dfn>
is a user-agent-defined component that mediates [=digital credential=]
interactions through the [=top-level traversable=]. Each [=top-level
traversable=] has exactly one associated coordinator. The coordinator
ensures that at most one interaction is active across all [=child
navigables=], orchestrates the end-to-end flow of presentation or
issuance, and manages transitions between [=credential request
coordinator/interaction states=].
</p>
<p>
A user agent MAY delegate some or all coordinator responsibilities to
external wallet applications, platform components, or other trusted
entities according to user or platform policy.
</p>
<p>
The coordinator manages the lifecycle of the interaction's {{Promise}}
and its associated {{AbortSignal}} (if any), including resolution with
the user's selected [=digital credential=] or rejection due to errors or
the user or program aborting the [=credential request=].
</p>
<p>
The [=credential request coordinator=]:
</p>
<ul>
<li>Validates and transforms presentation or issuance inputs and outputs.
</li>
<li>Requests the platform to display the available credentials and/or
[=holders=] for user selection.
</li>
<li>Resolves the interaction's {{Promise}} with the selected [=digital
credential=] or [=rejects=] it to indicate that the [=credential request=]
was aborted.
</li>
</ul>
<aside class="note">
<p>
Although the coordinator handles input/output coordination, it is the
responsibility of the platform together with available [=holders=], to
present the [=credential chooser=].
</p>
</aside>
<h3>
Interaction states
</h3>
<p>
The [=credential request coordinator=] has a finite set of
<dfn data-dfn-for="credential request coordinator">interaction
states</dfn>, which are used to manage the lifecycle of a [=digital
credential/presentation request=] or [=digital credential/issuance
request=]:
</p>
<dl>
<dt>
"<dfn data-dfn-for="credential request coordinator">idle</dfn>":
</dt>
<dd>
No credential request is currently in progress.
</dd>
<dt>
"<dfn data-dfn-for="credential request coordinator">requesting</dfn>":
</dt>
<dd>
A [=credential request=] is in progress and the user interface is
presented.
</dd>
<dt>
"<dfn data-dfn-for="credential request coordinator">aborting</dfn>":
</dt>
<dd>
The active interaction is being canceled due to an error, a user
action, or a [=AbortController/signal abort=]; the coordinator is
cleaning up before returning to "[=credential request
coordinator/idle=]".
</dd>
</dl>
<p>
The coordinator is initialized in the [=credential request
coordinator/idle=] [=credential request coordinator/interaction state=].
</p>
<h3>
Prepare credential requests
</h3>
<p>
To be written.
</p>
<h3>
Abort the credential request
</h3>
<p>
To be written.
</p>
<h3>
Dismissing the credential request
</h3>
<p>
To be written.
</p>
<h3>
Present the credential request
</h3>
<p>
To be written.
</p><!--
// MARK: The Digital Credentials API
-->
<h2>
Expand Down