You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement a DCQL-based CredentialSelector (as defined in #4088) that uses DCQL credential queries to select the right credential when multiple match a PD input descriptor. This replaces the previously proposed separate "filter chain" layer — the selection logic now lives inside the PD matcher via the CredentialSelector extension point.
When credential_query entries are provided:
For each input descriptor, check if a credential_query entry with a matching id exists
The DCQL selector is a CredentialSelector implementation that:
Takes the credential_query array as configuration
For a given input descriptor + candidates, finds the matching credential_query by ID
Calls dcql.Match(query, candidates) to filter
Errors on zero matches with a descriptive message
Errors on multiple matches with a descriptive message (the EHR must write a query specific enough to match exactly one credential — see decision comment)
The selector is wired into the presenter/wallet's buildSubmission flow, passed through to PresentationDefinition.Match.
Parent PRD
#4067 (see PRD comment)
What to build
Implement a DCQL-based
CredentialSelector(as defined in #4088) that uses DCQL credential queries to select the right credential when multiple match a PD input descriptor. This replaces the previously proposed separate "filter chain" layer — the selection logic now lives inside the PD matcher via theCredentialSelectorextension point.When
credential_queryentries are provided:credential_queryentry with a matchingidexistsThe DCQL selector is a
CredentialSelectorimplementation that:credential_queryarray as configurationcredential_queryby IDdcql.Match(query, candidates)to filterThe selector is wired into the presenter/wallet's
buildSubmissionflow, passed through toPresentationDefinition.Match.See updated approach comment for design rationale.
Acceptance criteria
CredentialSelectorimplementation that usesdcql.Matchto filter candidatescredential_queryentries matched to input descriptors byidcredential_queryfall through to the default selectorBuildSubmission/ presenter layercredential_queryis accepted as a parameter in the wallet/presenterBlocked by
User stories addressed