Skip to content

Enhance ClaimPath and ClaimPathJsonConverter functionality#511

Merged
Dindexx merged 1 commit intoopenwallet-foundation-labs:developfrom
lissi-id:bugfix/claim-path-handling
Feb 19, 2026
Merged

Enhance ClaimPath and ClaimPathJsonConverter functionality#511
Dindexx merged 1 commit intoopenwallet-foundation-labs:developfrom
lissi-id:bugfix/claim-path-handling

Conversation

@Dindexx
Copy link
Copy Markdown
Contributor

@Dindexx Dindexx commented Feb 17, 2026

Short description of what this resolves:

This PR enhances ClaimPath handling and its JSON deserialization to support array wildcards ([*]) and ensures consistent parsing within the AuthorizationRequest and SdJwtConfiguration.

Changes proposed in this pull request:

  • Array Wildcard Support: Updated ClaimPathComponent and ClaimPath to treat null or undefined values in a JSON array as the "select all elements" ([*]) component.
  • Automatic Serialization: Added the [JsonConverter(typeof(ClaimPathJsonConverter))] attribute to the ClaimPath struct to ensure it is always handled correctly by Newtonsoft.Json.
  • Authorization Request Parsing: Updated AuthorizationRequest.CreateAuthorizationRequest to use a custom serializer that includes ClaimPathJsonConverter, enabling correct parsing of nested claim paths in DCQL queries.
  • Improved Robustness: Enhanced ClaimPathJsonConverter to provide more descriptive error messages when encountering unexpected JSON token types.
  • Test Coverage:
    • Added unit tests for ClaimPath wildcard handling.
    • Implemented parsing tests for SdJwtConfiguration.
    • Added a test case for AuthorizationRequest to verify parsing of complex claim paths with wildcards.

Fixes: #

- Added JsonConverter attribute to ClaimPath for improved JSON serialization.
- Refactored FromJArray method in ClaimPath to use expression-bodied syntax.
- Updated ClaimPathComponent to handle JTokenType.Undefined in addition to JTokenType.Null.
- Modified ClaimPathJsonConverter to handle JToken types more robustly.
- Added unit tests for handling null components in ClaimPath serialization and deserialization.

Signed-off-by: Kevin <kevin.dinh@lissi.id>
@Dindexx Dindexx requested a review from JoTiTu February 17, 2026 12:15
@Dindexx Dindexx self-assigned this Feb 17, 2026
Copy link
Copy Markdown
Contributor

@JoTiTu JoTiTu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Dindexx Dindexx merged commit fec4c90 into openwallet-foundation-labs:develop Feb 19, 2026
3 checks passed
Dindexx added a commit that referenced this pull request Apr 18, 2026
- Added JsonConverter attribute to ClaimPath for improved JSON serialization.
- Refactored FromJArray method in ClaimPath to use expression-bodied syntax.
- Updated ClaimPathComponent to handle JTokenType.Undefined in addition to JTokenType.Null.
- Modified ClaimPathJsonConverter to handle JToken types more robustly.
- Added unit tests for handling null components in ClaimPath serialization and deserialization.

Signed-off-by: Kevin <kevin.dinh@lissi.id>
Signed-off-by: Kevin Dinh <92726228+Dindexx@users.noreply.github.com>
Dindexx added a commit that referenced this pull request Apr 18, 2026
* [WIP] v3.0.0 (#425)

* Migrate storage layer to EF Core

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* deprecate aries and indy (#427)

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* Align IssuerMetadata with VCI 1.0 spec (#438)

* support credential_metadata in issuer metadata and drop AttributeOrder support

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

* clean attribute order

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

* Merge branch 'v3.0.0' of github.com:openwallet-foundation-labs/wallet-framework-dotnet into algin-isser-metadata-with-oid4vci1.0

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

* Add CredentialsSet id as index to SdJwt and MDoc records

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

* Fix the issuance for the PID (associate SdJwt AND MDocs with PID)

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

* implement requested changes

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

* minimal cleanup

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* Revert Vctmetadata ClaimDisplay removal

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

---------

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>
Signed-off-by: Kevin <kevin.dinh@lissi.id>
Co-authored-by: Kevin <kevin.dinh@lissi.id>
Signed-off-by: Kevin <kevin.dinh@lissi.id>

* adjust readme for deprecating indy (#439)

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* adjustment for indy migration (#450)

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* Fix supported algs for the issuer signed jwt in wallet metadata (#449)

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>
Signed-off-by: Kevin <kevin.dinh@lissi.id>

* fix tests

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* make dependencies packable again

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* DC-API: Validate origin

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* Introduce SDLC (#466)

* initial sdcl introduction

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

* add TODO

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

* sign git tag

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

* update sdlc guide

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

---------

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>
Signed-off-by: Kevin <kevin.dinh@lissi.id>

* Dc api validate origin (#473)

* DC-API: Validate origin

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* DC-API: refactor

Signed-off-by: Kevin <kevin.dinh@lissi.id>

---------

Signed-off-by: Kevin <kevin.dinh@lissi.id>

---------

Signed-off-by: Kevin <kevin.dinh@lissi.id>
Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>
Co-authored-by: Johannes Tuerk <72355192+JoTiTu@users.noreply.github.com>
Signed-off-by: Kevin Dinh <92726228+Dindexx@users.noreply.github.com>

* Fix pipeline for develop branch (#474)

* fix dev build number & distribute dev builds via nuget

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

* CI/CD: adjust naming and add storage tests to pipeline

Signed-off-by: Kevin <kevin.dinh@lissi.id>

---------

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>
Signed-off-by: Kevin <kevin.dinh@lissi.id>
Co-authored-by: Kevin <kevin.dinh@lissi.id>
Signed-off-by: Johannes Tuerk <72355192+JoTiTu@users.noreply.github.com>

* add nuget publishing to pipeline (#480)

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>
Signed-off-by: Johannes Tuerk <72355192+JoTiTu@users.noreply.github.com>

* Update projects to .NET 10 (#481)

* update to .NET 10

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* update to .NET 10 appendix

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* update to .NET 10 appendix

Signed-off-by: Kevin <kevin.dinh@lissi.id>

---------

Signed-off-by: Kevin <kevin.dinh@lissi.id>
Signed-off-by: Kevin Dinh <92726228+Dindexx@users.noreply.github.com>

* Remove PEX and UC5 QES (#482)

* remove PEX

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* remove PEX appendix

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* remove UC5 QES

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* fix tests

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* fix response encryption tests

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* fix response encryption tests

Signed-off-by: Kevin <kevin.dinh@lissi.id>

---------

Signed-off-by: Kevin <kevin.dinh@lissi.id>
Signed-off-by: Kevin Dinh <92726228+Dindexx@users.noreply.github.com>

* remove on demand issuance feature (#483)

Signed-off-by: Kevin <kevin.dinh@lissi.id>
Signed-off-by: Kevin Dinh <92726228+Dindexx@users.noreply.github.com>

* Refactor/client attestation (#506)

* refactor: client attestation

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* refactor: client attestation 2

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* refactor: client attestation 3

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* fix attestations

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* fix attestations 2

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* refactor: client attestation 4

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* refactor: client attestation 5

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* fix test

Signed-off-by: Kevin <kevin.dinh@lissi.id>

* refactor: client attestation 6

Signed-off-by: Kevin <kevin.dinh@lissi.id>

---------

Signed-off-by: Kevin <kevin.dinh@lissi.id>
Signed-off-by: Kevin Dinh <92726228+Dindexx@users.noreply.github.com>

* Extend IAttestationSigner: (#507)

- Add method to sign a attestation request"

Signed-off-by: Kevin <kevin.dinh@lissi.id>
Signed-off-by: Kevin Dinh <92726228+Dindexx@users.noreply.github.com>

* Enhance ClaimPath and ClaimPathJsonConverter functionality (#511)

- Added JsonConverter attribute to ClaimPath for improved JSON serialization.
- Refactored FromJArray method in ClaimPath to use expression-bodied syntax.
- Updated ClaimPathComponent to handle JTokenType.Undefined in addition to JTokenType.Null.
- Modified ClaimPathJsonConverter to handle JToken types more robustly.
- Added unit tests for handling null components in ClaimPath serialization and deserialization.

Signed-off-by: Kevin <kevin.dinh@lissi.id>
Signed-off-by: Kevin Dinh <92726228+Dindexx@users.noreply.github.com>

* Make ClientAttestation and WalletAttestation optional (#512)

* Make ClientAttestation and WalletAttestation optional

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

* Fix unit tests

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

---------

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>
Signed-off-by: Johannes Tuerk <72355192+JoTiTu@users.noreply.github.com>

* Bump version to 3.0.0

Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>

* add manual pipeline trigger (#518)

Signed-off-by: Johannes Tuerk <72355192+JoTiTu@users.noreply.github.com>

---------

Signed-off-by: Kevin <kevin.dinh@lissi.id>
Signed-off-by: Johannes Tuerk <johannes.tuerk@lissi.id>
Signed-off-by: Kevin Dinh <92726228+Dindexx@users.noreply.github.com>
Signed-off-by: Johannes Tuerk <72355192+JoTiTu@users.noreply.github.com>
Co-authored-by: Johannes Tuerk <72355192+JoTiTu@users.noreply.github.com>
Co-authored-by: Johannes Tuerk <johannes.tuerk@lissi.id>
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.

2 participants