chore(release): new version - #2772
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
6 times, most recently
from
May 6, 2026 17:46
dd26da5 to
cdadc63
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
4 times, most recently
from
May 13, 2026 12:01
63201ad to
0ee029a
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
4 times, most recently
from
May 20, 2026 14:24
a3e9693 to
9606caa
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
2 times, most recently
from
May 28, 2026 14:11
412f6ef to
a40c92c
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
11 times, most recently
from
June 12, 2026 10:33
d941854 to
f384f10
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
2 times, most recently
from
June 17, 2026 10:01
872a86e to
8a8cc63
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
7 times, most recently
from
July 7, 2026 09:35
405bb46 to
5f7bb50
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
4 times, most recently
from
July 13, 2026 10:48
74bb6f1 to
8642253
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
9 times, most recently
from
July 23, 2026 12:17
4d59ca2 to
bb123b2
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
9 times, most recently
from
July 28, 2026 14:13
60c455f to
8e0359e
Compare
Signed-off-by: "github-actions[bot]" <"41898282+github-actions[bot]@users.noreply.github.com">
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@credo-ts/action-menu@0.7.1
Patch Changes
[{issuance: string[], status? :string[]}]. This is used for the new status indicator on mdoc. First, it looks for the usedissuancetrusted certificates and then validates thestatus, if available, with thestatustrusted certificates associated with theissuanceproperty.statusListyou receive from theagent.tokenStatusList.createTokenStatusList(...)function. Updating the statuslist allows you to change the status list credential state from valid to invalid, but also update the expiry time, rotate certificates, change signing algorithm, etc. Signatures are the default and mac should only be used if the user is aware of the security implications and has good reason to do so.@credo-ts/anoncreds@0.7.1
Patch Changes
fd5016d: feat: the
Cacheinterfaceget,setandremovemethods now accept aCacheOptionsparameter with ascopethat is either'context'(default) or'global', allowing globally reusable data to be shared across agent contexts. The X.509 CRL summary cache, the Indy VDR pool lookup cache and the AnonCreds registry cache use the global scope, as they only hold publicly anchored data. The DID resolver caches documents of public did methods in the global scope, and documents of other did methods per agent context; the list of public did methods can be configured with the newpublicDidMethodsoption of the dids module (default['web', 'indy', 'sov', 'cheqd', 'hedera', 'webvh']).Behavior changes to be aware of:
InMemoryLruCachenow namespaces keys bycontextCorrelationIdby default. This fixes potential cross-context sharing of context-scoped entries (e.g. records cached byCachedStorageService) in multi-tenant setups. Single-context agents are not affected.RedisCachestores global-scope entries under aglobal:key prefix. Existing context-scoped Redis entries for the caches that moved to the global scope become cache misses after upgrading and expire through their TTL, causing a one-time refetch.907cc54: refactor(vc): rename anoncreds Data Integrity bridge APIs to W3C credential namespace. Replaces Data Integrity-specific symbols and types (
IAnonCredsDataIntegrityService,AnonCredsDataIntegrityServiceSymbol,ANONCREDS_DATA_INTEGRITY_CRYPTOSUITE,DataIntegrityProof,dataIntegrityCryptosuites) with W3C credential equivalents. Generic JSON-LD verification now rejects anoncreds-2023 proofs and requires anoncreds W3C credential path. IntroducesshouldSignWithAnonCredsW3cService()andshouldVerifyWithAnonCredsW3cService()to clarify service responsibilities.cfe86fa: X509 trusted certificates now can be provided in a new format. Previously it was a list of base64/pem/der encoded certificates, but now you can also provide a list of objects in the format
[{issuance: string[], status? :string[]}]. This is used for the new status indicator on mdoc. First, it looks for the usedissuancetrusted certificates and then validates thestatus, if available, with thestatustrusted certificates associated with theissuanceproperty.cfe86fa: TokenStatusList is a new standard module on the agent. It allows you to create/update/fetch token status lists. It is up to the user to host this, this can be easily done with the
statusListyou receive from theagent.tokenStatusList.createTokenStatusList(...)function. Updating the statuslist allows you to change the status list credential state from valid to invalid, but also update the expiry time, rotate certificates, change signing algorithm, etc. Signatures are the default and mac should only be used if the user is aware of the security implications and has good reason to do so.Updated dependencies [f127ff5]
Updated dependencies [5cfcadb]
Updated dependencies [84dfcf4]
Updated dependencies [fd5016d]
Updated dependencies [d45aec0]
Updated dependencies [5cfcadb]
Updated dependencies [097c831]
Updated dependencies [20d6ab1]
Updated dependencies [907f12f]
Updated dependencies [96dc69b]
Updated dependencies [7dfafeb]
Updated dependencies [3a3eb03]
Updated dependencies [23c354e]
Updated dependencies [907cc54]
Updated dependencies [5cfcadb]
Updated dependencies [f127ff5]
Updated dependencies [cfe86fa]
Updated dependencies [e97c18b]
Updated dependencies [cfe86fa]
Updated dependencies [0a58888]
Updated dependencies [1e2088f]
@credo-ts/askar@0.7.1
Patch Changes
[{issuance: string[], status? :string[]}]. This is used for the new status indicator on mdoc. First, it looks for the usedissuancetrusted certificates and then validates thestatus, if available, with thestatustrusted certificates associated with theissuanceproperty.statusListyou receive from theagent.tokenStatusList.createTokenStatusList(...)function. Updating the statuslist allows you to change the status list credential state from valid to invalid, but also update the expiry time, rotate certificates, change signing algorithm, etc. Signatures are the default and mac should only be used if the user is aware of the security implications and has good reason to do so.@credo-ts/askar-to-drizzle-storage-migration@0.7.1
Patch Changes
@credo-ts/cheqd@0.7.1
Patch Changes
@credo-ts/core@0.7.1
Patch Changes
f127ff5: Mdoc revocation for issuance and verification
5cfcadb: Fail COSE Sign1 and Mac0 signing, and Mac0 verification, when no algorithm is declared instead of falling back to the first supported signature algorithm of the key. The Mac0 authenticate operation now also uses the algorithm provided by the caller. COSE Sign1 verification still falls back to the signature algorithm of the key, as @owf/mdoc does not forward the alg of the deviceAuth Sign1 structure yet.
84dfcf4: sd-jwt vc does not require IAT to be required anymore
fd5016d: feat: the
Cacheinterfaceget,setandremovemethods now accept aCacheOptionsparameter with ascopethat is either'context'(default) or'global', allowing globally reusable data to be shared across agent contexts. The X.509 CRL summary cache, the Indy VDR pool lookup cache and the AnonCreds registry cache use the global scope, as they only hold publicly anchored data. The DID resolver caches documents of public did methods in the global scope, and documents of other did methods per agent context; the list of public did methods can be configured with the newpublicDidMethodsoption of the dids module (default['web', 'indy', 'sov', 'cheqd', 'hedera', 'webvh']).Behavior changes to be aware of:
InMemoryLruCachenow namespaces keys bycontextCorrelationIdby default. This fixes potential cross-context sharing of context-scoped entries (e.g. records cached byCachedStorageService) in multi-tenant setups. Single-context agents are not affected.RedisCachestores global-scope entries under aglobal:key prefix. Existing context-scoped Redis entries for the caches that moved to the global scope become cache misses after upgrading and expire through their TTL, causing a one-time refetch.d45aec0: fix(kms): respect the configured
defaultBackendwhen no explicitbackendis provided for a key management operation. Previously the first registered backend that supported the operation was always used and thedefaultBackendoption was silently ignored, which could result in keys being created in a different (e.g. software instead of hardware-backed) backend than configured. If the default backend does not support the requested operation, the first other backend that supports the operation is used and a warning is logged.5cfcadb: Use the
algfrom the JWS header when verifying linked data proofs, and bind signing to the algorithm declared in the JWS header, instead of using the first supported signature algorithm of the key. Also fixes the JWS header validation for linked data proofs, which could previously be bypassed by adding an extra header parameter.097c831: fix(vc): bind the holder to the credentialSubject when verifying JSON-LD (ldp_vp) presentations
W3cJsonLdCredentialService.verifyPresentationverified the presentation proof and each embeddedcredential's issuer proof, but never checked that the presentation signer (holder) controls the
credentialSubject.idof the embedded credentials. The underlying@digitalcredentials/vc/jsonld-signatureslibraries do not perform this check either. As a result anldp_vpcould be usedto present someone else's credential (a data object, not a secret) wrapped in a presentation signed
with the attacker's own key. This check is already enforced for
jwt_vpand SD-JWT presentations;the JSON-LD path now enforces it too, surfacing the result per credential under
credentials[].credentialSubjectAuthenticationto match thejwt_vpresult shape.20d6ab1: fix: correctly encode kid in the header of cose signatures, and do not include the kid in oid4vci request to the issuer
907f12f: fix(mdoc): guard unsupported device MAC authentication in the mdoc context
The
hdkfcallback in the mdoc context previously derived an ECDH shared secret using raw curve math over the raw device private key bytes passed to it as a callback argument. This code path is only reached for mdoc device MAC authentication (ISO/IEC 18013-5), which Credo does not currently implement (only device signature authentication is supported), so it was never exercised. It is now replaced with an explicit error. A future device MAC implementation must derive the shared secret from the wallet-managed key inside the KMS, since the previous callback contract is incompatible with a non-exportable, KMS-held device key.96dc69b: fix(mdoc): accept status lists signed by the credential's issuance chain during presentation (device response) verification
The mdoc presentation verification path (
MdocDeviceResponse.verify, used by OpenID4VP) did not fall back to the issuance certificates when a trusted issuer was configured without dedicatedstatuscertificates (status: undefined). As a result, an mdoc carrying a token status list signed by the same certificate as the credential failed presentation verification, while the equivalent SD-JWT VC and standaloneMdoc.verifycases succeeded. The fallback (and the chain-equality safeguard that prevents it from widening the trust set) is now shared betweenMdoc.verifyandMdocDeviceResponse.verify.7dfafeb: Support certificate chain in mdoc signing.
3a3eb03: Use the JWT header
algfor SD-JWT VC signing and verification instead of always falling back to the first supported signature algorithm of the key. Thealgcan now be set on aPublicJwkinstance, restricting the key to that algorithm.23c354e: Add a new W3C Data Integrity module to core with proof models, validation helpers, processing utilities, and structured create/verify result handling.
The module introduces a cryptosuite registry and Data Integrity proof service/API for proof creation, single-proof verification, and proof-set/chain verification flows, plus an initial
eddsa-jcs-2022cryptosuite implementation.It also adds public/internal Data Integrity exports and registers the Data Integrity module in the default agent module set, making Data Integrity APIs available by default.
907cc54: refactor(vc): rename anoncreds Data Integrity bridge APIs to W3C credential namespace. Replaces Data Integrity-specific symbols and types (
IAnonCredsDataIntegrityService,AnonCredsDataIntegrityServiceSymbol,ANONCREDS_DATA_INTEGRITY_CRYPTOSUITE,DataIntegrityProof,dataIntegrityCryptosuites) with W3C credential equivalents. Generic JSON-LD verification now rejects anoncreds-2023 proofs and requires anoncreds W3C credential path. IntroducesshouldSignWithAnonCredsW3cService()andshouldVerifyWithAnonCredsW3cService()to clarify service responsibilities.5cfcadb: Use the
algfrom the provided options when updating a JWT token status list, instead of thealgof the signing key jwk (which is usually not defined).f127ff5: Added token-status-list module which allows you to fetch/update/create token-status-list instances for sd-jwt and mdoc
cfe86fa: X509 trusted certificates now can be provided in a new format. Previously it was a list of base64/pem/der encoded certificates, but now you can also provide a list of objects in the format
[{issuance: string[], status? :string[]}]. This is used for the new status indicator on mdoc. First, it looks for the usedissuancetrusted certificates and then validates thestatus, if available, with thestatustrusted certificates associated with theissuanceproperty.e97c18b: Add a global
getTrustedIssuersForVerificationagent callback for resolving trusted issuers during verification. Unlike the now-deprecated X.509-modulegetTrustedCertificatesForVerificationcallback (which it takes precedence over), it supports both X.509 certificate chains and DIDs and is extensible to other trust mechanisms. It is wired into SD-JWT VC, mdoc, W3C V1 JWT and LD-JSON, W3C V2 JWT and SD-JWT, and OpenID4VP verification.cfe86fa: TokenStatusList is a new standard module on the agent. It allows you to create/update/fetch token status lists. It is up to the user to host this, this can be easily done with the
statusListyou receive from theagent.tokenStatusList.createTokenStatusList(...)function. Updating the statuslist allows you to change the status list credential state from valid to invalid, but also update the expiry time, rotate certificates, change signing algorithm, etc. Signatures are the default and mac should only be used if the user is aware of the security implications and has good reason to do so.0a58888: Normalize DID identifiers when authenticating the credential subject of a verifiable presentation. A credential subject id that references a specific verification method (e.g.
did:example:123#0) now matches the bare DID controller (did:example:123), as both refer to the same DID subject. Non-DID identifiers are still compared as-is.1e2088f: Add X.509 CRL (Certificate Revocation List) verification. Certificate chain validation can now check certificate revocation status against the CRLs referenced in each certificate's CRL Distribution Points extension, with configurable
SoftFail/Require/Disabledmodes, reason partitioning (RFC 5280 §5.2.5), optional caching (verified CRLs are cached until theirnextUpdateand, after a configurable freshness period, revalidated against the freshly fetched bytes so unchanged CRLs skip re-parsing and re-verification) and full-chain checking. Revocation checking now also honours the CRL's own extensions: delta CRLs, indirect CRLs, CRLs whose Issuing Distribution Point scope does not cover the certificate being checked, and CRLs bearing an unrecognized critical extension are rejected rather than treated as authoritative proof that the certificate is unrevoked. Key usage is now enforced where RFC 5280 requires it: issuing CA certificates must assertkeyCertSignand CRL issuers must assertcRLSignwhen they carry a Key Usage extension. The certificate creation API also gained support for revocation reasons on CRL distribution points, and a newcreateCertificateRevocationListAPI (X509Api/X509Service) for creating and signing CRLs, including the CRL Number, Delta CRL Indicator, Authority Key Identifier and Issuing Distribution Point extensions.@credo-ts/didcomm@0.7.1
Patch Changes
[{issuance: string[], status? :string[]}]. This is used for the new status indicator on mdoc. First, it looks for the usedissuancetrusted certificates and then validates thestatus, if available, with thestatustrusted certificates associated with theissuanceproperty.statusListyou receive from theagent.tokenStatusList.createTokenStatusList(...)function. Updating the statuslist allows you to change the status list credential state from valid to invalid, but also update the expiry time, rotate certificates, change signing algorithm, etc. Signatures are the default and mac should only be used if the user is aware of the security implications and has good reason to do so.@credo-ts/drizzle-storage@0.7.1
Patch Changes
60efbe0: feat(openid4vc): support the Client Attestation PoP challenge and DPoP-bound method (draft 09 of OAuth 2.0 Attestation-Based Client Authentication)
challenge(enabled through the newclientAttestationPopChallengeRequiredissuer config option). When enabled it advertises achallenge_endpointand, at the token endpoint, uses the reactiveuse_attestation_challengeflow (returning the challenge in theOAuth-Client-Attestation-Challengeheader) so clients retry automatically. The holder additionally fetches a challenge proactively from thechallenge_endpointfor the pushed authorization request and authorization challenge endpoints.attest_jwt_client_auth_dpop), where a single DPoP proof signed with the client instance key serves as both the DPoP proof and the client attestation PoP. Used automatically when the authorization server advertises it, in both the pre-authorized code flow and the authorization code flow. For the authorization code flow the whole interaction is bound to the client instance key: the authorization request commits the instance key as the DPoP key (dpop_jkt, with the issuer enforcing that the client attestation confirmation key matches the DPoP key), and the token endpoint uses the combined DPoP proof with that same key.client_attestation_signing_alg_values_supported/client_attestation_pop_signing_alg_values_supportedmetadata (configurable per issuer, stored as two nullable columns on the issuer record). Client attestation client authentication is advertised intoken_endpoint_auth_methods_supportedbased on those signing algorithms being configured (matching how DPoP support is enabled viadpop_signing_alg_values_supported):attest_jwt_client_authwhen the client attestation and pop signing algs are set, and the DPoP-boundattest_jwt_client_auth_dpopwhen the client attestation and DPoP signing algs are set.cfe86fa: X509 trusted certificates now can be provided in a new format. Previously it was a list of base64/pem/der encoded certificates, but now you can also provide a list of objects in the format
[{issuance: string[], status? :string[]}]. This is used for the new status indicator on mdoc. First, it looks for the usedissuancetrusted certificates and then validates thestatus, if available, with thestatustrusted certificates associated with theissuanceproperty.cfe86fa: TokenStatusList is a new standard module on the agent. It allows you to create/update/fetch token status lists. It is up to the user to host this, this can be easily done with the
statusListyou receive from theagent.tokenStatusList.createTokenStatusList(...)function. Updating the statuslist allows you to change the status list credential state from valid to invalid, but also update the expiry time, rotate certificates, change signing algorithm, etc. Signatures are the default and mac should only be used if the user is aware of the security implications and has good reason to do so.Updated dependencies [bd17194]
Updated dependencies [2fa6955]
Updated dependencies [f127ff5]
Updated dependencies [5cfcadb]
Updated dependencies [84dfcf4]
Updated dependencies [5f1c572]
Updated dependencies [fd5016d]
Updated dependencies [1d0c05d]
Updated dependencies [1a6562c]
Updated dependencies [117931c]
Updated dependencies [e18d2cf]
Updated dependencies [d45aec0]
Updated dependencies [3f2bef1]
Updated dependencies [5cfcadb]
Updated dependencies [097c831]
Updated dependencies [20d6ab1]
Updated dependencies [ab90ba7]
Updated dependencies [907f12f]
Updated dependencies [96dc69b]
Updated dependencies [7dfafeb]
Updated dependencies [0c8138e]
Updated dependencies [60efbe0]
Updated dependencies [4f8bc6f]
Updated dependencies [3a3eb03]
Updated dependencies [23c354e]
Updated dependencies [907cc54]
Updated dependencies [9b64ef6]
Updated dependencies [5cfcadb]
Updated dependencies [f127ff5]
Updated dependencies [cfe86fa]
Updated dependencies [e1ddb2e]
Updated dependencies [e97c18b]
Updated dependencies [9b64ef6]
Updated dependencies [e2871bb]
Updated dependencies [cfe86fa]
Updated dependencies [0a58888]
Updated dependencies [1e2088f]
@credo-ts/drpc@0.7.1
Patch Changes
[{issuance: string[], status? :string[]}]. This is used for the new status indicator on mdoc. First, it looks for the usedissuancetrusted certificates and then validates thestatus, if available, with thestatustrusted certificates associated with theissuanceproperty.statusListyou receive from theagent.tokenStatusList.createTokenStatusList(...)function. Updating the statuslist allows you to change the status list credential state from valid to invalid, but also update the expiry time, rotate certificates, change signing algorithm, etc. Signatures are the default and mac should only be used if the user is aware of the security implications and has good reason to do so.@credo-ts/hedera@0.7.1
Patch Changes
@credo-ts/indy-vdr@0.7.1
Patch Changes
@credo-ts/node@0.7.1
Patch Changes
@credo-ts/openid4vc@0.7.1
Patch Changes
bd17194: fix: do not include c_nonce_expires_in in nonce endpoint response, it was never part of the nonce endpoint response
2fa6955: Don't require the DPoP proof to use the client attestation confirmation key at the pushed authorization request and authorization challenge endpoints. Per the attestation-based client authentication draft, the DPoP key and the client instance key only have to be the same for the
attest_jwt_client_auth_dpopmethod (DPoP combined mode), where a single DPoP proof replaces the client attestation PoP JWT. When the dedicatedOAuth-Client-Attestation-PoPheader is present, the DPoP proof is validated according to RFC 9449 independently, and its public key is not required to match thecnfclaim of the client attestation. The issuer wrongly enforced key equality for both methods, rejecting interoperable wallets that use a separate DPoP key. Key equality for the DPoP-bound method at the token endpoint is unaffected.5f1c572: Allow the
getDynamicIssuanceSessioncallback to supply theidof the issuance session to create. A dynamic issuance session is created after the callback returns, so the callback could not previously know the id of the session it just authorized. Supplying it lets an external system reference the session before it exists, for example to record it in its own database while handling the same request. When omitted a random id is generated, as before.1d0c05d: Exposed updateIssuer method on OpenId4VcIssuerApi
1a6562c: fix(openid4vc): include auth-code scope in credential offer
117931c: Updated so that when the holder verifies an incoming credential and it fails, it does not log the entire credential
e18d2cf: feat: interpret key attestation ISO 18045 levels hierarchically on the issuer, so a stronger attested level (e.g.
iso_18045_high) satisfies a weaker required level (e.g.iso_18045_moderate). Also adds theOpenId4VciKeyAttestationLevelenum andkeyAttestationLevelSatisfieshelper.3f2bef1: Restore detailed mdoc verification error.
20d6ab1: fix: correctly encode kid in the header of cose signatures, and do not include the kid in oid4vci request to the issuer
ab90ba7: Support configuring the signed issuer metadata signer when updating an issuer.
updateIssuerMetadataandupdateIssuernow accept ametadataSigner, which can be omitted to keep the current signer, set to a signer to enable or replace it, or set tonullto stop signing the metadata. Previously a signer could only be configured when creating an issuer.0c8138e: Avoid an unnecessary request to the agent's own JWKs endpoint when verifying OpenID4VCI access tokens.
When an access token issued by the agent's own built-in authorization server is verified, the agent no longer performs an HTTP request to its own
jwks_urito retrieve the access token signing key. The key is already held in the issuer record, and is now resolved locally.60efbe0: feat(openid4vc): support the Client Attestation PoP challenge and DPoP-bound method (draft 09 of OAuth 2.0 Attestation-Based Client Authentication)
challenge(enabled through the newclientAttestationPopChallengeRequiredissuer config option). When enabled it advertises achallenge_endpointand, at the token endpoint, uses the reactiveuse_attestation_challengeflow (returning the challenge in theOAuth-Client-Attestation-Challengeheader) so clients retry automatically. The holder additionally fetches a challenge proactively from thechallenge_endpointfor the pushed authorization request and authorization challenge endpoints.attest_jwt_client_auth_dpop), where a single DPoP proof signed with the client instance key serves as both the DPoP proof and the client attestation PoP. Used automatically when the authorization server advertises it, in both the pre-authorized code flow and the authorization code flow. For the authorization code flow the whole interaction is bound to the client instance key: the authorization request commits the instance key as the DPoP key (dpop_jkt, with the issuer enforcing that the client attestation confirmation key matches the DPoP key), and the token endpoint uses the combined DPoP proof with that same key.client_attestation_signing_alg_values_supported/client_attestation_pop_signing_alg_values_supportedmetadata (configurable per issuer, stored as two nullable columns on the issuer record). Client attestation client authentication is advertised intoken_endpoint_auth_methods_supportedbased on those signing algorithms being configured (matching how DPoP support is enabled viadpop_signing_alg_values_supported):attest_jwt_client_authwhen the client attestation and pop signing algs are set, and the DPoP-boundattest_jwt_client_auth_dpopwhen the client attestation and DPoP signing algs are set.4f8bc6f: feat: add
deleteIssuanceSessionByIdanddeleteVerificationSessionByIdpublic APIs to allow cleanup of stored OpenID4VC session records.9b64ef6: feat: increase the max request payload size for oid4vci to 1mb and openid4vp to 5mb to be able to handle payloads containing images
cfe86fa: X509 trusted certificates now can be provided in a new format. Previously it was a list of base64/pem/der encoded certificates, but now you can also provide a list of objects in the format
[{issuance: string[], status? :string[]}]. This is used for the new status indicator on mdoc. First, it looks for the usedissuancetrusted certificates and then validates thestatus, if available, with thestatustrusted certificates associated with theissuanceproperty.e1ddb2e: Consult the
getTrustedIssuersForVerificationcallback fordidsigned OpenID4VC JWTs. Previously onlyx5csigned JWTs were checked against a trust list, meaning a signed authorization request (JAR), an OpenID4VCI key attestation, an OAuth2 client (wallet) attestation, or signed credential issuer metadata signed by any DID was accepted. Semantics now matchdidsigned credentials in core: allowed when no callback is registered or it returnsundefined, rejected when the signer DID is not in the returned list. Behavior forx5csigned JWTs is unchanged.e97c18b: Add a global
getTrustedIssuersForVerificationagent callback for resolving trusted issuers during verification. Unlike the now-deprecated X.509-modulegetTrustedCertificatesForVerificationcallback (which it takes precedence over), it supports both X.509 certificate chains and DIDs and is extensible to other trust mechanisms. It is wired into SD-JWT VC, mdoc, W3C V1 JWT and LD-JSON, W3C V2 JWT and SD-JWT, and OpenID4VP verification.9b64ef6: chore: update to oid4vc-ts 0.5 stable
e2871bb: feat(openid4vc): add a
getDynamicIssuanceSessioncallback for dynamic (wallet-initiated) issuance that is not bound to a credential offer.The callback is the single decision point and application-level abuse-prevention gate for dynamic issuance. It is invoked when:
issuer_state(thechainedandpresentationflows), orexternalflow).The callback input is typed based on the endpoint that received the request (discriminated by
origin:pushedAuthorizationRequest,authorizationChallengeRequest, orcredentialRequest). For the authorization-server origins the parsed (not yet verified) wallet attestation, DPoP and raw request are available; for the credential-request origin the verified access token payload is available.The callback returns options describing the issuance session to create (or throws / returns
undefinedto deny). The returned options are typed based on the chosenauthorizationFlow:chained- authorization is delegated to a chained (internal) authorization server.presentation- authorization is completed using an OpenID4VP presentation during issuance (requiresgetVerificationSession).external- authorization has already been completed at an external authorization server (DPoP/wallet attestation requirements and refresh tokens are not configurable, as these are handled by the external authorization server).This enables wallet-initiated issuance for the chained authorization server and presentation during issuance flows, and unifies the existing external authorization server dynamic issuance under the same callback.
The
allowDynamicIssuanceSessionsconfiguration option is deprecated, and thegetDynamicIssuanceSessioncallback takes precedence.cfe86fa: TokenStatusList is a new standard module on the agent. It allows you to create/update/fetch token status lists. It is up to the user to host this, this can be easily done with the
statusListyou receive from theagent.tokenStatusList.createTokenStatusList(...)function. Updating the statuslist allows you to change the status list credential state from valid to invalid, but also update the expiry time, rotate certificates, change signing algorithm, etc. Signatures are the default and mac should only be used if the user is aware of the security implications and has good reason to do so.Updated dependencies [f127ff5]
Updated dependencies [5cfcadb]
Updated dependencies [84dfcf4]
Updated dependencies [fd5016d]
Updated dependencies [d45aec0]
Updated dependencies [5cfcadb]
Updated dependencies [097c831]
Updated dependencies [20d6ab1]
Updated dependencies [907f12f]
Updated dependencies [96dc69b]
Updated dependencies [7dfafeb]
Updated dependencies [3a3eb03]
Updated dependencies [23c354e]
Updated dependencies [907cc54]
Updated dependencies [5cfcadb]
Updated dependencies [f127ff5]
Updated dependencies [cfe86fa]
Updated dependencies [e97c18b]
Updated dependencies [cfe86fa]
Updated dependencies [0a58888]
Updated dependencies [1e2088f]
@credo-ts/question-answer@0.7.1
Patch Changes
[{issuance: string[], status? :string[]}]. This is used for the new status indicator on mdoc. First, it looks for the usedissuancetrusted certificates and then validates thestatus, if available, with thestatustrusted certificates associated with theissuanceproperty.statusListyou receive from theagent.tokenStatusList.createTokenStatusList(...)function. Updating the statuslist allows you to change the status list credential state from valid to invalid, but also update the expiry time, rotate certificates, change signing algorithm, etc. Signatures are the default and mac should only be used if the user is aware of the security implications and has good reason to do so.@credo-ts/react-native@0.7.1
Patch Changes
@credo-ts/redis-cache@0.7.1
Patch Changes
fd5016d: feat: the
Cacheinterfaceget,setandremovemethods now accept aCacheOptionsparameter with ascopethat is either'context'(default) or'global', allowing globally reusable data to be shared across agent contexts. The X.509 CRL summary cache, the Indy VDR pool lookup cache and the AnonCreds registry cache use the global scope, as they only hold publicly anchored data. The DID resolver caches documents of public did methods in the global scope, and documents of other did methods per agent context; the list of public did methods can be configured with the newpublicDidMethodsoption of the dids module (default['web', 'indy', 'sov', 'cheqd', 'hedera', 'webvh']).Behavior changes to be aware of:
InMemoryLruCachenow namespaces keys bycontextCorrelationIdby default. This fixes potential cross-context sharing of context-scoped entries (e.g. records cached byCachedStorageService) in multi-tenant setups. Single-context agents are not affected.RedisCachestores global-scope entries under aglobal:key prefix. Existing context-scoped Redis entries for the caches that moved to the global scope become cache misses after upgrading and expire through their TTL, causing a one-time refetch.Updated dependencies [f127ff5]
Updated dependencies [5cfcadb]
Updated dependencies [84dfcf4]
Updated dependencies [fd5016d]
Updated dependencies [d45aec0]
Updated dependencies [5cfcadb]
Updated dependencies [097c831]
Updated dependencies [20d6ab1]
Updated dependencies [907f12f]
Updated dependencies [96dc69b]
Updated dependencies [7dfafeb]
Updated dependencies [3a3eb03]
Updated dependencies [23c354e]
Updated dependencies [907cc54]
Updated dependencies [5cfcadb]
Updated dependencies [f127ff5]
Updated dependencies [cfe86fa]
Updated dependencies [e97c18b]
Updated dependencies [cfe86fa]
Updated dependencies [0a58888]
Updated dependencies [1e2088f]
@credo-ts/tenants@0.7.1
Patch Changes
@credo-ts/webvh@0.7.1
Patch Changes
[{issuance: string[], status? :string[]}]. This is used for the new status indicator on mdoc. First, it looks for the usedissuancetrusted certificates and then validates thestatus, if available, with thestatustrusted certificates associated with theissuanceproperty.statusListyou receive from theagent.tokenStatusList.createTokenStatusList(...)function. Updating the statuslist allows you to change the status list credential state from valid to invalid, but also update the expiry time, rotate certificates, change signing algorithm, etc. Signatures are the default and mac should only be used if the user is aware of the security implications and has good reason to do so.