mirror of
https://github.com/selfxyz/self.git
synced 2026-04-27 03:01:15 -04:00
d54fab68e2ea4646f666f5d04306e1436749aead
2 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
2f2ec3abe6 |
Feat/didit webapp (#1882)
* feat: replace Sumsub with Didit JS SDK in webview-app - Add @didit-protocol/sdk-web, remove @sumsub/websdk - Create diditProvider.ts with session creation + SDK launch - Update ProviderLaunchScreen to use Didit embedded mode - Delete sumsubProvider.ts and sumsub-websdk.d.ts Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: add Socket.IO attestation flow to webview KYC After Didit JS SDK completes, connect Socket.IO to the TEE, subscribe by sessionId, and wait for signed KYC data (attestation). Emit ack_success for session cleanup. Attach attestation to the provider result before navigating to the result screen. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: update TEE URL to kyc.self.xyz, update SDK test app README for Didit Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: only route KYC (Other IDs) to Didit provider, others to Coming Soon Passport, ID card, and Aadhaar require NFC/MRZ scanning which isn't available in the WebView. Only "Other IDs" goes through the Didit JS SDK flow. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: Didit SDK full-width rendering and KYC routing - Wire onNotListedPress to launch Didit for "View other supported IDs" - Remove verificationId gate from ProviderLaunchScreen - Switch to modal mode with CSS overrides for full-screen on mobile - Force .shadow-card to 100% width/height in WebView context Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: add camera permissions and file upload to Android WebView Add WebChromeClient to AndroidWebViewHost: - onPermissionRequest: auto-grants camera for Didit SDK - onShowFileChooser: opens system file picker for document upload - SelfVerificationActivity handles file chooser result callback Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: gitignore Gradle build artifacts for native-shell-android Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: add runtime camera permission and CAMERA manifest declaration - Add CAMERA permission to sdk-test-app AndroidManifest.xml - Request runtime camera permission in onPermissionRequest before granting - Handle permission result in SelfVerificationActivity - Store pending PermissionRequest for async grant/deny after user response Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix ios camera * fix: address CodeRabbit review findings - Replace ngrok URL with kyc.self.xyz in Android and iOS test apps - Fix file chooser hang when context is not an Activity - Move NSCameraUsageDescription to project.yml (survives xcodegen regen) - Delete manual Info.plist that would be overwritten Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: replace ngrok URL with kyc.self.xyz in diditProvider and diditAttestation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: explicitly disable Didit SDK debug logging Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: webview lint * fix: validate origin and handle audio permission in WebView permission grants - Deny permission requests from untrusted origins - Deny instead of grant when context is not an Activity - Handle RECORD_AUDIO alongside CAMERA for liveness checks - Add RECORD_AUDIO to AndroidManifest.xml Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: seshanthS <seshanth@protonmail.com> |
||
|
|
60de8d6c1e |
Feat/webview sdk (#1856)
* feat: add iOS native shell package (NSL-02) Plain Swift implementation of the WebView host with bridge handlers for secure storage (Keychain), crypto (EC P-256), and lifecycle. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add Android native shell package (NSL-01) Plain Kotlin implementation of the WebView host with bridge handlers for secure storage (EncryptedSharedPreferences), crypto (Android Keystore EC P-256), and lifecycle. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: integrate Sumsub Web SDK into ProviderLaunchScreen (WV-05) Rewrites ProviderLaunchScreen to launch Sumsub Web SDK, adds KYC provider types, result normalization, and a ProviderResultScreen for displaying verification outcomes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: update spec status for NSL-01, NSL-02, WV-05 to in-progress All three items are code-complete but need integration testing before marking done. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add build-pipeline workstream specs, update NSL-03 and BP-01 status Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add WebView bundle build pipeline (BP-01) Build script copies webview-app dist into both native shell asset directories. Gradle preBuild validation fails fast when bundle is missing. Root package.json gets build:sdk-* scripts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add SDK test apps for Android and iOS (NSL-03) Minimal test apps to exercise native shells end-to-end: - Android: Jetpack Compose app using SelfSdk.launch() via composite build - iOS: SwiftUI app using SelfSdk.createViewController() via local SPM dep Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * update lockfile * fix: address CodeRabbit PR review findings for native shells - Fix iOS double callback: add hasEmittedResult flag to LifecycleHandler so dismiss() won't fire onCancelled after onResult already emitted - Fix Android error result codes: use RESULT_FIRST_USER for failed verifications instead of always RESULT_OK; add dedicated handler in SelfSdk.handleResult - Fix iOS production query params: append params to file URL via URLComponents so WebView receives teeUrl/verificationId/userId - Fix build:sdk-ios false-green: chain swift build after bundle script - Add expectedRequestCode param to handleResult for flexibility - Upgrade security-crypto 1.1.0-alpha06 → 1.1.0 stable - Improve callback type safety: onSuccess takes raw JSON string, onFailure takes SelfSdkException instead of generic Exception - Add requireBiometric intent comments to both SecureStorageHandlers Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: address remaining CodeRabbit PR review findings (round 2) - iOS BridgeResponse: add requestId/success fields, rename result→data to match JS bridge contract - iOS test app: fix callback deallocation with Coordinator pattern - ProviderLaunchScreen: fail closed on missing verificationId, fix retry via retryCount state - ProviderResultScreen: guard unknown status with fallback to error config - build-webview-bundle.sh: validate index.html before deleting targets - Package.swift: fix SPM resource path with target path/sources Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |