feat(wallet): add Compose web demo against wallet-api2 auth - #2190
feat(wallet): add Compose web demo against wallet-api2 auth#2190JakeFernandes98 wants to merge 2 commits into
Conversation
Enable email/password JWT on docker identity wallet-api2, register ktor-authnz before WebService, and allow CORS PUT/DELETE so the Wasm host can bootstrap keys and DIDs. The Compose web app is a custodial wallet-api2 client that skips PIN and pastes receive/present URLs. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|



Summary
This adds a no-install Compose Multiplatform web wallet demo against wallet-api2 with auth enabled, so a reviewer can run the docker identity stack (issuer2, verifier2, wallet-api2) and complete issuance and presentation in the browser.
The Wasm host is a custodial wallet-api2 client (email/password JWT, isolated
/walletHTTP). It does not run the mobile wallet SDK and it does not replacewaltid-web-wallet(wallet-api v1). Android and iOS continue to use the SDK, PIN, and platform keys.Ticket: WAL-1198
What Changed
wallet-api2
ktor-authnzAuthentication provider beforeWebServiceinstalls the plugin. Without that, enablingauthfails at startup with a missingktor-authnzconfiguration..../keys/{id}/set-defaultand.../dids/{did}/set-default.Docker identity profile
authfeature on wallet-api2 and add a demoauth.confJWT signing key (local compose only; same pattern as the other identity demo keys).stable(0.23.0) cannot load thisauth.conf. Uselatestor a locally built1.0.0-SNAPSHOTimage for wallet-api2 when auth is on.Compose web demo
POST /auth/register,POST /auth/emailpass). JWT inlocalStorage; wallet id inlocalStorageand a cookie.did:jwk..../receive; authorization-code issuance usesauthorization-urlplus.../receive/authorizedand the current page origin asredirect_uri. Presentation is/preview→/build-vp-token→/send-response.JsonObject/JsonElement, andindex.htmlnow loadswebApp.jsso the webpack host actually boots.enableWalletDemoComposeWebstays false by default.Architecture Notes
wasmJs. Protocol work stays on wallet-api2 HTTP rather than embedding the mobile SDK in the browser.WalletDemoControllergainsskipPinandissuanceRedirectUriso Android/iOS keep the existing PIN default.Screenshots
Compose web against docker identity issuer2, verifier2, and wallet-api2 with auth. Pre-authorized OpenID4VCI (
jwt_vc_json/ OpenBadgeCredential) and OpenID4VP. Wasm card titles currently show the credential format (jwt_vc_json) rather than the OpenBadge display name.Caveats and Follow-Ups
Breaking