refactor: split OID4VC monolith and overhaul storage layer#526
Open
Dindexx wants to merge 17 commits intoopenwallet-foundation-labs:developfrom
Open
refactor: split OID4VC monolith and overhaul storage layer#526Dindexx wants to merge 17 commits intoopenwallet-foundation-labs:developfrom
Dindexx wants to merge 17 commits intoopenwallet-foundation-labs:developfrom
Conversation
* Migrate storage layer to EF Core Signed-off-by: Kevin <kevin.dinh@lissi.id> * deprecate aries and indy (openwallet-foundation-labs#427) Signed-off-by: Kevin <kevin.dinh@lissi.id> * Align IssuerMetadata with VCI 1.0 spec (openwallet-foundation-labs#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 (openwallet-foundation-labs#439) Signed-off-by: Kevin <kevin.dinh@lissi.id> * adjustment for indy migration (openwallet-foundation-labs#450) Signed-off-by: Kevin <kevin.dinh@lissi.id> * Fix supported algs for the issuer signed jwt in wallet metadata (openwallet-foundation-labs#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 (openwallet-foundation-labs#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 (openwallet-foundation-labs#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>
* 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 <johannes.tuerk@lissi.id>
* 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>
* 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 <kevin.dinh@lissi.id>
* 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>
- Add method to sign a attestation request" Signed-off-by: Kevin <kevin.dinh@lissi.id>
…t-foundation-labs#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>
…ndation-labs#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: Kevin <kevin.dinh@lissi.id>
…e DI service lifetimes Signed-off-by: Kevin <kevin.dinh@lissi.id>
Refactor persistence to store interfaces; thread-safe one-time database initialization
Signed-off-by: Kevin <kevin.dinh@lissi.id>
…se initialization (openwallet-foundation-labs#525) * fix: ensure one-time database initialization with concurrency handling Signed-off-by: Kevin <kevin.dinh@lissi.id> * refactor: replace domain repositories with store interfaces and update DI service lifetimes Signed-off-by: Kevin <kevin.dinh@lissi.id> --------- Signed-off-by: Kevin <kevin.dinh@lissi.id>
Made-with: Cursor Signed-off-by: Kevin <kevin.dinh@lissi.id>
3629a44 to
ff857bb
Compare
Signed-off-by: Kevin <kevin.dinh@lissi.id>
ff857bb to
2bac7ac
Compare
321702c to
58513c8
Compare
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.
Short description of what this resolves:
Refactors project architecture and data access by breaking down monolithic boundaries. The broad OID4VC surface is split into distinct OID4VCI and OID4VP projects, while shared credential concerns and DI/storage composition are extracted into dedicated assemblies. At the storage layer, the broad IDomainRepository is replaced with aggregate-specific store abstractions (mDoc, SD-JWT, credential sets, auth-flow sessions, completed presentations) alongside a new IStorageSession for data access. Additionally, this update makes database creation concurrency-safe, adjusts DI registrations and lifetimes accordingly, and updates namespaces, references, and tests across the solution to match the new APIs and project boundaries.
Changes proposed in this pull request:
Introduce WalletFramework.Oid4Vci and WalletFramework.Oid4Vp, and add WalletFramework.Credentials for shared credential/credential-set concerns used by those flows.
Add WalletFramework.Foundations to centralize wallet DI and storage builder wiring over Oid4Vci and Oid4Vp; extract WalletFramework.WalletAttestations and WalletFramework.RelyingPartyAuthentication into their own projects.
Harden DatabaseCreator (and IDatabaseCreator) for single initialization under parallel callers; expand DatabaseCreationTests and align other storage/integration tests with the new contracts.
Refactor domain repositories (MdocCredentialRepository, CredentialDataSetRepository, AuthFlowSessionRepository, CompletedPresentationRepository) and core storage (Repository, RecordsBuilder) to use the new session/store model; update OID4VC services (VCI, VP, DCQL) and DI extensions.
Fixes: #