- Add
nonce
endpoint to OID4VCI exchanges.
- Remove unnecessary
authorize
"authority" in openid4vp URL.
- Add
issueRequests
feature for expressing parameters for issuing VCs in a particular step. TheissueRequest
value must be an array, with each element containing parameters for issuing a VC. The parameters must minimally include a credential template ID or index that references a credential template from the associated workflow. The parameters may optionally specify alternative variables to use when evaluating the template, either via an object or a string, where the string includes the name of a variable from the workflow's mainvariables
.
- Update multikey dependencies.
- Use
@digitalbazaar/[email protected]
to get latest updates and fixes.
- BREAKING: Use
@digitalbazaar/oid4-client@4
to get fix to auto-generated OID4VP authorization requests (useallOf
JSON schema instead of invalidcontains
with an array value).
- Add interaction "protocols" URL support.
- Ensure OID4* errors are still logged.
- Improve OID4* errors and use OID4* error style with
error
anderror_description
.
- Allow multiple credentials (if they are of the same type) to be returned
from a single OID4VCI exchange using the
credential
endpoint (not the batch endpoint).
- Ensure OID4VP authorization responses (which is sent as a urlencoded payload), can be large enough to accommodate most VPs.
- Ensure contexts in credential definitions are compared using deep equality during OID4VCI.
- Improve verification method controller check error.
- Allow list specific error keys to include in last error.
- Throw better error if DID proof JWT verification method cannot be retrieved
from
kid
URL.
- Include
expires
in exchange information. - Include
lastError
in exchange information.
- Improve error information on failed exchange requests.
- Add support for creating offers that use
credential_offer_uri
for OID4VCI by serving an auto-generated credential offer from<exchangeId>/openid/credential-offer
.
- Add
credential_configurations_supported
to OID4VCI metadata. - Add
credential_issuer
to OID4VCI metadata. - Add auto-generated client metadata for OID4VP when it is not
provided by the exchange creator, using default
vp_formats
.
- Ensure default of 15 minutes is set for exchange TTL.
- Fix processing of VC-JWT VPs/VCs in OID4* combined workflows.
- Add support for ECDSA keys (with
ES256
andES384
algs) for DID JWT proofs. - Add support for VC 2.0 contexts in JSON schemas.
- BREAKING: Update peer dependencies.
@bedrock/[email protected]
@bedrock/[email protected]
@bedrock/[email protected]
@bedrock/[email protected]
@bedrock/[email protected]
@bedrock/[email protected]
@bedrock/[email protected]
@bedrock/[email protected]
- Update minor, test, and dev dependencies.
- Fix JSON schema to allow VCs with only a single type.
- Add
presentationSchema
option to workflow step to enable passing a JSON schema to be run against a submitted presentation.
- Add workflow configuration option to specify
issuerInstances
with supported formats (such asapplication/vc
,ldp_vc
, andjwt_vc_json-ld
as well aszcapReferenceIds
with at least oneissue
reference ID that identifies the zcap in the main configzcaps
map to use to issue VCs using that issuer instance. When multiple issuer instances are provided, a workflow exchange can accept different requested formats from the client.
- The supported formats expressed in
issuerInstances
(or the default ofldp_vc
will be used when checking expected credential requests during OID4VCI. This behavior doesn't change from the previous version because the previous version only allowedldp_vc
to be included in expected credential requests. Nowjwt_vc_json-ld
can also be passed in an expected credential request, but format can also be omitted entirely since it is no longer used when checking credential requests are valid against the supported list of formats from the issuer instances.
- Include
'pre-authorized_grant_anonymous_access_supported': true
to OID4VCI issuer config meta data. This flag indicates to clients that they do not need to send aclient_id
in their request for credentials.
- Support
Multikey
-typed andpublicKeyJwk
-specified public keys in "DID proof JWTs" for OID4VCI.
- Allow an evaluated credential template to produce a VC API issue
credential request (i.e., including the
credential
param and any other optional params) as an optional alternative to returning only the value of thecredential
param for issuance. - Allow clients to provide local workflow IDs as long as they meet the local ID validation requirements. This is to enable clients to ensure that they do not create duplicate workflows.
- Enable OID4VCI+OID4VP flows that include providing an OID4VP authorization request during a credential request that must be fulfilled prior to accepting the credential request(s).
- Expose
exchangers
base route asworkflows
, keepingexchangers
as a deprecated alias. - Allow workflow steps to include a
allowUnprotectedPresentation
boolean that determines whether a workflow will accept an unprotected presentation. This is useful for enabling the submission of VCs to holder workflow services for storage.
- Improve errors returned from failed verification during exchanges.
- NOTE: Deployment configurations that want an easy path to supporting
the new
workflows
alias should be updated to change thevc-exchanger
service underapp-identity
tovc-workflow
to ensure that a service agent with development-level credentials is not added to the database. Without issuing any meters associated with thevc-workflow
service theworkflows
endpoints will be unusable, but later upgrades to allow their use will require removing this erroneous record, so it is advisable to make this change prior to updating if theworkflows
endpoints are ever intended to be used in a deployment.
- Add support for receiving the
types
property in posted credential definitions during OID4VCI even if that does not match the served credential definition in the protocol. The property should likely betype
to match the VC data model, but a OID4VCI draft usestypes
in an example and clients have implemented this.
- Add extra oauth/openid config
/.well-known
paths to accommodate clients that have implemented against what is likely an OID4VCI draft bug.
- Fix
client_id_scheme
default check.
- Fix OID4VP defaults for
client_id
andclient_id_scheme
.
- Add
redirectUrl
feature in VC API exchanges. AredirectUrl
can now be specified in astep
to be included in the result of the step that is passed to the client. - Add optional OID4VP presentation exchange. The current implementation is largely experimental and subject to change, just as the OID4VP spec is undergoing rapid development and is in a draft stage. The current implementation was written against OID4VP draft 20 and only supports a profile of OID4VP that uses data integrity / LDP protected VPs and VCs.
- BREAKING: Update peer deps:
- Use
@bedrock/oauth2-verifier@2
. - Use
@bedrock/service-agent@8
. - Use
@bedrock/service-core@9
.
- Use
- Update test deps.
- Ensure expected
domain
matches value from VPR in exchange.
- Add
stepTemplate
feature. Steps in exchanges may be optionally specified as templates that will use the variables from the exchange.
- Fix uncaught unrejected promise bug when fetching exchange in parallel.
- Serve OpenID credential issuer metadata from
.well-known/openid-credential-issuer
in addition to the older / previously used combined metadata config URL:.well-known/oauth-authorization-server
.
- Add
vc-api delivery
andVC-API delivery + DID authn
tests to issue usinggeneric
credential template.
- Pass binding variables to jsonata
evaluate()
function.
- Add dev application identity for
vc-exchanger
.
- Fix meter usage aggregator function.
- Add GET endpoint for getting exchange information from any existing exchange, particularly useful for obtaining its current state and any user-submitted data.
- Ensure exchanges are updated when steps are completed.
- Fix missing dependencies and update old ones.
- Fix
package.json
exported files.
- Add "batch credential" endpoint support for OpenID-based VC delivery.
- Add
generateKeyPair
option toopenId.oauth2
when creating VC exchanges.
- BREAKING: Configurations must use
openId
to specify OID4VCI/OID4VC/OID4* options, notoidc4vci
. This change is incompatible with previous versions and any deployed instances must be manually upgraded. - BREAKING: The
/oidc4vci
route has been changed to/openid
. - BREAKING: Require
expectedCredentialRequests
inopenId
exchanger config options. It must be an array with one or more elements with thetype
andformat
expected. If more than one element is present, then the exchange can only be fulfilled using the "batch credential" endpoint.
- BREAKING: Update peer deps:
@bedrock/did-io
to v10.0.@bedrock/service-agent
to v7.0.@bedrock/service-core
to v8.0.
- See git history for changes.