Skip to content

Relax transaction data - #808

Open
GarethCOliver wants to merge 2 commits into
openid:mainfrom
GarethCOliver:relax-transaction-data-794
Open

GarethCOliver wants to merge 2 commits into
openid:mainfrom
GarethCOliver:relax-transaction-data-794

Conversation

@GarethCOliver

Copy link
Copy Markdown
Contributor

Resolves #794

This relaxes transaction data so that an 'unprocessable' transaction_data merely makes associated Credential Queries unsatisfiable rather than requiring the whole request to be failed.

As part of this, removed the weird MUST requirement of 'exactly one credential from credential ids' text, as Credential Queries are now (correctly) the way to enforce that.

Instead of rejecting the whole request when any transaction_data object
has an unrecognized/unsupported type or does not conform to its type
definition, the Wallet treats the Credential Queries referenced by such
an object as unsatisfiable and otherwise ignores it. The request only
fails if the DCQL query can no longer be satisfied as a result.

This allows a Verifier to offer alternative transaction data types
(e.g. different versions, or ecosystem-specific types) in a single
request, each bound to its own Credential Query, combined with
credential_sets.

- Move the normative rule out of the parameter definition into a new
  'Processing Rules' subsection of the Transaction Data section
- Add a cross-reference in the DCQL 'Selecting Credentials' rules
- Scope the invalid_transaction_data error conditions accordingly
- Align the mdoc KeyAuthorizations text with the new behaviour
- Drop the single-credential MUST from the credential_ids definition
- Add an illustrative example (transaction_data_alternatives.json)
- Add Document History entry
Removed example from transaction_data handling clarification.

This branch has not been deployed

No deployments
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.

Relax requirements around transaction data

1 participant