@seams/wallet-server 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +8 -0
- package/artifact-manifest.json +464 -0
- package/cloudflare-router-ab/build/deriver-a/index.js +2 -0
- package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/deriver-a/package.json +16 -0
- package/cloudflare-router-ab/build/deriver-a/worker/shim.mjs +4 -0
- package/cloudflare-router-ab/build/deriver-b/index.js +2 -0
- package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/deriver-b/package.json +16 -0
- package/cloudflare-router-ab/build/deriver-b/worker/shim.mjs +4 -0
- package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
- package/cloudflare-router-ab/build/router/index.js +2 -0
- package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/router/package.json +16 -0
- package/cloudflare-router-ab/build/router/worker/shim.mjs +4 -0
- package/cloudflare-router-ab/build/signing-worker/index.js +2 -0
- package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/signing-worker/package.json +16 -0
- package/cloudflare-router-ab/build/signing-worker/worker/shim.mjs +4 -0
- package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -0
- package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
- package/cloudflare-router-ab/build/tenant-root-control-plane/package.json +16 -0
- package/cloudflare-router-ab/build/tenant-root-control-plane/worker/shim.mjs +4 -0
- package/cloudflare-router-ab/env/tenant-root-control-plane.local.example +6 -0
- package/cloudflare-router-ab/migrations/deriver-a/0001_role_private_storage.sql +14 -0
- package/cloudflare-router-ab/migrations/deriver-a/0002_tenant_root_role_shares.sql +32 -0
- package/cloudflare-router-ab/migrations/deriver-a/0003_tenant_root_command_replays.sql +76 -0
- package/cloudflare-router-ab/migrations/deriver-a/0004_tenant_root_creation_admission.sql +7 -0
- package/cloudflare-router-ab/migrations/deriver-a/0005_tenant_root_refresh_state.sql +15 -0
- package/cloudflare-router-ab/migrations/deriver-a/0006_tenant_root_restore_import_keys.sql +119 -0
- package/cloudflare-router-ab/migrations/deriver-a/0007_tenant_root_restore_refresh_attempts.sql +103 -0
- package/cloudflare-router-ab/migrations/deriver-a/0008_tenant_root_restore_promotion.sql +40 -0
- package/cloudflare-router-ab/migrations/deriver-a/0009_tenant_root_restore_preactivation_cleanup.sql +8 -0
- package/cloudflare-router-ab/migrations/deriver-a/0010_tenant_root_recovery_attempts.sql +26 -0
- package/cloudflare-router-ab/migrations/deriver-a/0011_tenant_root_source_retirement.sql +100 -0
- package/cloudflare-router-ab/migrations/deriver-b/0001_role_private_storage.sql +14 -0
- package/cloudflare-router-ab/migrations/deriver-b/0002_tenant_root_role_shares.sql +32 -0
- package/cloudflare-router-ab/migrations/deriver-b/0003_tenant_root_command_replays.sql +76 -0
- package/cloudflare-router-ab/migrations/deriver-b/0004_tenant_root_creation_admission.sql +7 -0
- package/cloudflare-router-ab/migrations/deriver-b/0005_tenant_root_refresh_state.sql +15 -0
- package/cloudflare-router-ab/migrations/deriver-b/0006_tenant_root_restore_import_keys.sql +119 -0
- package/cloudflare-router-ab/migrations/deriver-b/0007_tenant_root_restore_refresh_attempts.sql +103 -0
- package/cloudflare-router-ab/migrations/deriver-b/0008_tenant_root_restore_promotion.sql +40 -0
- package/cloudflare-router-ab/migrations/deriver-b/0009_tenant_root_restore_preactivation_cleanup.sql +8 -0
- package/cloudflare-router-ab/migrations/deriver-b/0010_tenant_root_recovery_attempts.sql +26 -0
- package/cloudflare-router-ab/migrations/deriver-b/0011_tenant_root_source_retirement.sql +100 -0
- package/cloudflare-router-ab/migrations/signing-worker/0001_private_storage.sql +67 -0
- package/cloudflare-router-ab/migrations/signing-worker/0002_activation_revocation_fences.sql +3 -0
- package/cloudflare-router-ab/scripts/bootstrap-local-tenant-root.mjs +182 -0
- package/cloudflare-router-ab/scripts/initialize-local-wallet.mjs +17 -0
- package/cloudflare-router-ab/scripts/local-key-material.mjs +29 -0
- package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +1110 -0
- package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +333 -0
- package/cloudflare-router-ab/scripts/start-local-wallet-system.mjs +427 -0
- package/cloudflare-router-ab/wrangler.deriver-a.toml +123 -0
- package/cloudflare-router-ab/wrangler.deriver-b.toml +123 -0
- package/cloudflare-router-ab/wrangler.router.toml +126 -0
- package/cloudflare-router-ab/wrangler.signing-worker.toml +86 -0
- package/cloudflare-router-ab/wrangler.tenant-root-control-plane.toml +56 -0
- package/dist/esm/authorization/capabilityPolicy.js +96 -0
- package/dist/esm/authorization/domain.js +434 -0
- package/dist/esm/authorization/factorEvidence.js +405 -0
- package/dist/esm/authorization/service.js +319 -0
- package/dist/esm/authorization/vaultProxyUse.js +295 -0
- package/dist/esm/cloud-host.js +126 -0
- package/dist/esm/core/AuthService.js +2 -0
- package/dist/esm/core/EmailOtpRecords.js +361 -0
- package/dist/esm/core/EmailOtpStores.js +1460 -0
- package/dist/esm/core/IdentityStore.js +617 -0
- package/dist/esm/core/NearPublicKeyStore.js +242 -0
- package/dist/esm/core/RegistrationCeremonyStore.js +2101 -0
- package/dist/esm/core/SessionService.js +255 -0
- package/dist/esm/core/ThresholdService/config.js +111 -0
- package/dist/esm/core/ThresholdService/ecdsaClientRootProof.js +27 -0
- package/dist/esm/core/ThresholdService/evmCryptoWasm.js +167 -0
- package/dist/esm/core/ThresholdService/index.js +4 -0
- package/dist/esm/core/ThresholdService/kv.js +368 -0
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +360 -0
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillLiveSession.js +282 -0
- package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.js +272 -0
- package/dist/esm/core/ThresholdService/routerAb/internalServiceHttp.js +57 -0
- package/dist/esm/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.js +115 -0
- package/dist/esm/core/ThresholdService/routerAbNormalSigningPolicy.js +31 -0
- package/dist/esm/core/ThresholdService/secureRandomId.js +9 -0
- package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +603 -0
- package/dist/esm/core/ThresholdService/stores/EcdsaSigningStore.js +422 -0
- package/dist/esm/core/ThresholdService/stores/KeyStore.js +140 -0
- package/dist/esm/core/ThresholdService/stores/SessionStore.js +437 -0
- package/dist/esm/core/ThresholdService/stores/StoreConfig.js +13 -0
- package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +722 -0
- package/dist/esm/core/ThresholdService/validation.js +718 -0
- package/dist/esm/core/WalletAuthMethodStore.js +180 -0
- package/dist/esm/core/WalletStore.js +495 -0
- package/dist/esm/core/WebAuthnAuthenticatorStore.js +485 -0
- package/dist/esm/core/WebAuthnCredentialBindingStore.js +594 -0
- package/dist/esm/core/WebAuthnLoginChallengeStore.js +432 -0
- package/dist/esm/core/WebAuthnSyncChallengeStore.js +434 -0
- package/dist/esm/core/authService/AuthService.js +611 -0
- package/dist/esm/core/authService/bytes.js +22 -0
- package/dist/esm/core/authService/configValues.js +15 -0
- package/dist/esm/core/authService/emailOtpChallengeOperations.js +126 -0
- package/dist/esm/core/authService/emailOtpChallengeProof.js +214 -0
- package/dist/esm/core/authService/emailOtpChallengeVerification.js +335 -0
- package/dist/esm/core/authService/emailOtpChallenges.js +260 -0
- package/dist/esm/core/authService/emailOtpConfig.js +231 -0
- package/dist/esm/core/authService/emailOtpDelivery.js +169 -0
- package/dist/esm/core/authService/emailOtpEnrollment.js +141 -0
- package/dist/esm/core/authService/emailOtpGrant.js +74 -0
- package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +322 -0
- package/dist/esm/core/authService/emailOtpSeal.js +78 -0
- package/dist/esm/core/authService/emailOtpUnlock.js +264 -0
- package/dist/esm/core/authService/githubOAuth.js +140 -0
- package/dist/esm/core/authService/googleEmailOtpErrors.js +6 -0
- package/dist/esm/core/authService/googleEmailOtpOperations.js +141 -0
- package/dist/esm/core/authService/googleEmailOtpRegistration.js +674 -0
- package/dist/esm/core/authService/identity.js +57 -0
- package/dist/esm/core/authService/identityOperations.js +32 -0
- package/dist/esm/core/authService/nearAccountOperations.js +229 -0
- package/dist/esm/core/authService/nearPrivateKeySigning.js +110 -0
- package/dist/esm/core/authService/nearPublicKeyMetadata.js +127 -0
- package/dist/esm/core/authService/nearTransactions.js +139 -0
- package/dist/esm/core/authService/oidcVerification.js +262 -0
- package/dist/esm/core/authService/portableCrypto.js +19 -0
- package/dist/esm/core/authService/rateLimits.js +117 -0
- package/dist/esm/core/authService/record.js +8 -0
- package/dist/esm/core/authService/registrationThresholdHelpers.js +131 -0
- package/dist/esm/core/authService/runtime.js +45 -0
- package/dist/esm/core/authService/signerWasmUrls.js +20 -0
- package/dist/esm/core/authService/storeRegistry.js +113 -0
- package/dist/esm/core/authService/thresholdEcdsaKeyInventory.js +146 -0
- package/dist/esm/core/authService/thresholdRuntimePolicy.js +19 -0
- package/dist/esm/core/authService/thresholdStoreSummary.js +32 -0
- package/dist/esm/core/authService/walletRegistrationPlanning.js +49 -0
- package/dist/esm/core/authService/wasm.js +78 -0
- package/dist/esm/core/authService/webauthn.js +746 -0
- package/dist/esm/core/authService/webauthnAuthority.js +17 -0
- package/dist/esm/core/authService/webauthnOidcHelpers.js +91 -0
- package/dist/esm/core/authService/webauthnWalletBinding.js +157 -0
- package/dist/esm/core/config.js +110 -0
- package/dist/esm/core/d1IdentityStore.js +340 -0
- package/dist/esm/core/d1WalletAuthMethodStore.js +768 -0
- package/dist/esm/core/d1WalletStore.js +724 -0
- package/dist/esm/core/defaultConfigsServer.js +9 -0
- package/dist/esm/core/deviceLinking/index.js +5 -0
- package/dist/esm/core/deviceLinking/linkedDeviceEd25519ExportRoot.js +0 -0
- package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +211 -0
- package/dist/esm/core/deviceLinking/linkedDeviceManagement.js +279 -0
- package/dist/esm/core/deviceLinking/linkedDeviceSession.js +1419 -0
- package/dist/esm/core/deviceLinking/requestProof.js +172 -0
- package/dist/esm/core/errors.js +54 -0
- package/dist/esm/core/hostedAccountIds.js +225 -0
- package/dist/esm/core/keyMaterialBrands.js +58 -0
- package/dist/esm/core/logger.js +39 -0
- package/dist/esm/core/nearKeys.js +20 -0
- package/dist/esm/core/nearRelayerAccountProvisioning.js +713 -0
- package/dist/esm/core/nearSignerWasmRuntime.js +87 -0
- package/dist/esm/core/registrationContracts.js +2 -0
- package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +88 -0
- package/dist/esm/core/routerAbSigning/RouterAbNormalSigningRuntime.js +101 -0
- package/dist/esm/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.js +39 -0
- package/dist/esm/core/routerAbSigning/createRouterAbSigningRuntimes.js +91 -0
- package/dist/esm/core/rpcClients/near/NearClient.js +389 -0
- package/dist/esm/core/sessionValidation.js +0 -0
- package/dist/esm/core/signingLanes/LaneAggregateRevocationApplicationService.js +86 -0
- package/dist/esm/core/signingLanes/LaneEffectJournalStore.js +0 -0
- package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +324 -0
- package/dist/esm/core/signingLanes/LaneEnrollmentRevocation.js +173 -0
- package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +200 -0
- package/dist/esm/core/signingLanes/LaneLifecycleStore.js +24 -0
- package/dist/esm/core/signingLanes/SigningLaneStore.js +0 -0
- package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +296 -0
- package/dist/esm/core/signingLanes/WalletKeyStore.js +0 -0
- package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +78 -0
- package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +71 -0
- package/dist/esm/core/signingLanes/index.js +8 -0
- package/dist/esm/core/signingLanes/signingWorkerLaneMaterialIdentity.js +0 -0
- package/dist/esm/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.js +305 -0
- package/dist/esm/core/threeRouteRegistrationContracts.js +5 -0
- package/dist/esm/core/thresholdEcdsaChainTarget.js +49 -0
- package/dist/esm/core/types.js +8 -0
- package/dist/esm/core/utils.js +14 -0
- package/dist/esm/delegateAction/index.js +136 -0
- package/dist/esm/hosted-wallet-gateway-worker.js +18 -0
- package/dist/esm/hosted-wallet-gateway.js +701 -0
- package/dist/esm/index.js +53 -0
- package/dist/esm/local-hosted-wallet-gateway-worker.js +23 -0
- package/dist/esm/node_modules/@near-js/types/lib/esm/provider/response.js +17 -0
- package/dist/esm/router/auth/authRequestValidation.js +264 -0
- package/dist/esm/router/auth/commonRouterUtils.js +305 -0
- package/dist/esm/router/auth/routerApiCredentialAuth.js +91 -0
- package/dist/esm/router/auth/routerApiKeyAuth.js +63 -0
- package/dist/esm/router/auth/walletSessionFailure.js +49 -0
- package/dist/esm/router/auth/webAuthnCredentialCodecs.js +107 -0
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.js +84 -0
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +321 -0
- package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +1581 -0
- package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +1820 -0
- package/dist/esm/router/cloudflare/d1/authorization/d1VaultProxyStore.js +122 -0
- package/dist/esm/router/cloudflare/d1/authorization/walletSessionAuthorityProjection.js +119 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +1831 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.js +118 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +81 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +539 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceManagementService.js +92 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +560 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +136 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.js +95 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.js +91 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionService.js +15 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +732 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.js +195 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetAuthenticatorStore.js +100 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +867 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.js +169 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.js +255 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkSourceReader.js +128 -0
- package/dist/esm/router/cloudflare/d1/deviceLinking/index.js +15 -0
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +311 -0
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.js +21 -0
- package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoWalletSigner.js +65 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +216 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +326 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +346 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +495 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpDeliveryRuntime.js +157 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +248 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +66 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +76 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +539 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +404 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +200 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +84 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +217 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +485 -0
- package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +509 -0
- package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +51 -0
- package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +135 -0
- package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +62 -0
- package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +272 -0
- package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +132 -0
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.js +628 -0
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +871 -0
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +823 -0
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpAttemptStore.js +38 -0
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.js +304 -0
- package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.js +793 -0
- package/dist/esm/router/cloudflare/d1/registration/d1EvmFamilyEcdsaRegistrationBranch.js +120 -0
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +317 -0
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +2084 -0
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +309 -0
- package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +120 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +263 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +3887 -0
- package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +182 -0
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +399 -0
- package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +486 -0
- package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +146 -0
- package/dist/esm/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.js +10 -0
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.js +22 -0
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +167 -0
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.js +38 -0
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.js +20 -0
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +1459 -0
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLockStore.js +114 -0
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.js +16 -0
- package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +170 -0
- package/dist/esm/router/cloudflare/d1/signingLanes/index.js +10 -0
- package/dist/esm/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.js +412 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +1396 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.js +285 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +2018 -0
- package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +792 -0
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +635 -0
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +538 -0
- package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +264 -0
- package/dist/esm/router/cloudflare/durableObjects/thresholdStore.js +514 -0
- package/dist/esm/router/cloudflare/durableObjects/versionedJsonRecordStore.js +192 -0
- package/dist/esm/router/cloudflare/runtime/cloudflare.types.js +0 -0
- package/dist/esm/router/cloudflare/runtime/cloudflareSignerWasm.js +8 -0
- package/dist/esm/router/cloudflare/runtime/createCloudflareRouter.js +19 -0
- package/dist/esm/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.js +94 -0
- package/dist/esm/router/cloudflare/runtime/ed25519SessionAdapter.js +106 -0
- package/dist/esm/router/cloudflare/runtime/environment.js +25 -0
- package/dist/esm/router/cloudflare/runtime/routerAbPrewarm.js +34 -0
- package/dist/esm/router/cloudflare/runtime/routerAbServiceBindings.js +33 -0
- package/dist/esm/router/cloudflare/runtime/sessionAdapterRuntime.js +104 -0
- package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +168 -0
- package/dist/esm/router/cloudflare/runtime/tenantRootCreationGrant.js +147 -0
- package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +143 -0
- package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +227 -0
- package/dist/esm/router/cloudflare/runtime/walletConsoleTenantRootLineage.js +30 -0
- package/dist/esm/router/cloudflare/runtime/walletControlOps.js +107 -0
- package/dist/esm/router/cloudflare/runtime/walletGateway.js +149 -0
- package/dist/esm/router/cloudflare/runtime/walletRuntimeOps.js +322 -0
- package/dist/esm/router/cloudflare/runtime/walletRuntimeOpsHandler.js +48 -0
- package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +597 -0
- package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +272 -0
- package/dist/esm/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.js +477 -0
- package/dist/esm/router/cloudflare/signingLanes/index.js +4 -0
- package/dist/esm/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.js +32 -0
- package/dist/esm/router/cloudflare-adaptor.js +45 -0
- package/dist/esm/router/cloudflare.js +42794 -0
- package/dist/esm/router/domains/ecdsa/routerAbEcdsaStrictRegistration.js +738 -0
- package/dist/esm/router/domains/ecdsa/thresholdEcdsaRequestValidation.js +134 -0
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +368 -0
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +624 -0
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +143 -0
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.js +270 -0
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.js +31 -0
- package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.js +162 -0
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +1366 -0
- package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +465 -0
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.js +1609 -0
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +540 -0
- package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.js +394 -0
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js +572 -0
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.js +555 -0
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.js +268 -0
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +329 -0
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.js +423 -0
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js +432 -0
- package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.js +58 -0
- package/dist/esm/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.js +0 -0
- package/dist/esm/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.js +0 -0
- package/dist/esm/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.js +275 -0
- package/dist/esm/router/domains/emailOtp/emailOtpExportPolicy.js +70 -0
- package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +34 -0
- package/dist/esm/router/domains/emailOtp/emailOtpRouteHandlers.js +218 -0
- package/dist/esm/router/domains/emailOtp/emailOtpSessionRouteHelpers.js +210 -0
- package/dist/esm/router/domains/passkeyCustody/envelopeRevocationAdmission.js +26 -0
- package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +107 -0
- package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.js +45 -0
- package/dist/esm/router/domains/passkeyCustody/registrationCustodyOutcome.js +47 -0
- package/dist/esm/router/domains/passkeyCustody/verifiedCustodyFactor.js +46 -0
- package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.js +32 -0
- package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +170 -0
- package/dist/esm/router/domains/passkeyCustody/walletRecoveryAttempt.js +64 -0
- package/dist/esm/router/domains/passkeyCustody/walletRecoveryFinalization.js +652 -0
- package/dist/esm/router/domains/passkeyCustody/walletRecoveryKeyManifest.js +396 -0
- package/dist/esm/router/domains/passkeyCustody/walletRecoveryRotation.js +87 -0
- package/dist/esm/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.js +89 -0
- package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.js +106 -0
- package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +2669 -0
- package/dist/esm/router/domains/signingOperations/walletExecutionAdmission.js +228 -0
- package/dist/esm/router/domains/syncAccount/syncAccountRequestValidation.js +78 -0
- package/dist/esm/router/domains/tenantRoot/tenantRootCustodyLineage.js +0 -0
- package/dist/esm/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.js +55 -0
- package/dist/esm/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.js +56 -0
- package/dist/esm/router/domains/tenantRoot/tenantRootIdentityResolution.js +111 -0
- package/dist/esm/router/domains/walletRegistration/walletRegistrationInputs.js +0 -0
- package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +2199 -0
- package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +155 -0
- package/dist/esm/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.js +84 -0
- package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +1142 -0
- package/dist/esm/router/express-adaptor.js +84 -0
- package/dist/esm/router/express.js +26616 -0
- package/dist/esm/router/framework/apiCredentialPorts.js +11 -0
- package/dist/esm/router/framework/applyRouteMetering.js +26 -0
- package/dist/esm/router/framework/authServicePort.js +30 -0
- package/dist/esm/router/framework/enforceRoutePolicy.js +92 -0
- package/dist/esm/router/framework/http.js +87 -0
- package/dist/esm/router/framework/logger.js +7 -0
- package/dist/esm/router/framework/modules.js +34 -0
- package/dist/esm/router/framework/ror/index.js +5 -0
- package/dist/esm/router/framework/ror/normalize.js +57 -0
- package/dist/esm/router/framework/ror/options.js +33 -0
- package/dist/esm/router/framework/ror/provider.js +33 -0
- package/dist/esm/router/framework/ror/staticProvider.js +24 -0
- package/dist/esm/router/framework/routeAuthPolicy.js +16 -0
- package/dist/esm/router/framework/routeDefinitions.js +446 -0
- package/dist/esm/router/framework/routeExecutionContext.js +24 -0
- package/dist/esm/router/framework/routeExtensions.js +50 -0
- package/dist/esm/router/framework/routeMeteringPolicy.js +0 -0
- package/dist/esm/router/framework/routeRequestValidation.js +32 -0
- package/dist/esm/router/framework/routeResponses.js +33 -0
- package/dist/esm/router/framework/routerApi.js +42 -0
- package/dist/esm/router/framework/routerApiRouteSurface.js +54 -0
- package/dist/esm/router/framework/routerApiWebhooks.js +60 -0
- package/dist/esm/router/framework/runtimeSnapshotConsumer.js +145 -0
- package/dist/esm/router/framework/versionedJsonRecordStore.js +0 -0
- package/dist/esm/router/ror-adaptor.js +5 -0
- package/dist/esm/router/ror.js +178 -0
- package/dist/esm/router/transport/fetch/createFetchRouter.js +309 -0
- package/dist/esm/router/transport/fetch/fetchRouter.types.js +0 -0
- package/dist/esm/router/transport/fetch/routes/auth.js +219 -0
- package/dist/esm/router/transport/fetch/routes/deviceLinking.js +1196 -0
- package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +264 -0
- package/dist/esm/router/transport/fetch/routes/deviceManagement.js +289 -0
- package/dist/esm/router/transport/fetch/routes/health.js +42 -0
- package/dist/esm/router/transport/fetch/routes/nearPublicKeys.js +39 -0
- package/dist/esm/router/transport/fetch/routes/normalSigningRouterProxy.js +118 -0
- package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +1618 -0
- package/dist/esm/router/transport/fetch/routes/sessions.js +1033 -0
- package/dist/esm/router/transport/fetch/routes/syncAccount.js +187 -0
- package/dist/esm/router/transport/fetch/routes/syncAccountBootstrap.js +214 -0
- package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +1729 -0
- package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +1321 -0
- package/dist/esm/router/transport/fetch/routes/walletExecutionLanePreflight.js +228 -0
- package/dist/esm/router/transport/fetch/routes/walletRegistration.js +73 -0
- package/dist/esm/router/transport/fetch/routes/webauthnAuthenticators.js +43 -0
- package/dist/esm/router/transport/fetch/routes/wellKnown.js +48 -0
- package/dist/esm/shared-ts/src/authorization/capabilityKinds.js +224 -0
- package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +134 -0
- package/dist/esm/shared-ts/src/authorization/index.js +6 -0
- package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +58 -0
- package/dist/esm/shared-ts/src/authorization/walletAuthority.js +802 -0
- package/dist/esm/shared-ts/src/authorization/walletCustodyOperation.js +18 -0
- package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +5 -0
- package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +332 -0
- package/dist/esm/shared-ts/src/device-linking/contracts.js +8 -0
- package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +132 -0
- package/dist/esm/shared-ts/src/device-linking/digests.js +273 -0
- package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +158 -0
- package/dist/esm/shared-ts/src/device-linking/index.js +9 -0
- package/dist/esm/shared-ts/src/device-linking/parsers.js +1412 -0
- package/dist/esm/shared-ts/src/device-linking/requestProof.js +114 -0
- package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +563 -0
- package/dist/esm/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +207 -0
- package/dist/esm/shared-ts/src/near/actions.js +75 -0
- package/dist/esm/shared-ts/src/passkey-custody/ceremonyCommitPayload.js +69 -0
- package/dist/esm/shared-ts/src/passkey-custody/credentialActivity.js +81 -0
- package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +272 -0
- package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +175 -0
- package/dist/esm/shared-ts/src/passkey-custody/index.js +5 -0
- package/dist/esm/shared-ts/src/passkey-custody/primitives.js +92 -0
- package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +53 -0
- package/dist/esm/shared-ts/src/signing-lanes/execution.js +14 -0
- package/dist/esm/shared-ts/src/signing-lanes/index.js +11 -0
- package/dist/esm/shared-ts/src/signing-lanes/linkedEcdsaScope.js +1 -0
- package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +91 -0
- package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +124 -0
- package/dist/esm/shared-ts/src/signing-lanes/participants.js +262 -0
- package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +143 -0
- package/dist/esm/shared-ts/src/signing-lanes/rotation.js +8 -0
- package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +397 -0
- package/dist/esm/shared-ts/src/signing-lanes/rotationLifecycle.js +313 -0
- package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +1620 -0
- package/dist/esm/shared-ts/src/tenant-root/index.js +2 -0
- package/dist/esm/shared-ts/src/tenant-root/tenantRootIdentity.js +198 -0
- package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +440 -0
- package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +85 -0
- package/dist/esm/shared-ts/src/threshold/participants.js +26 -0
- package/dist/esm/shared-ts/src/threshold/sessionPolicy.js +9 -0
- package/dist/esm/shared-ts/src/threshold/signingRootScope.js +40 -0
- package/dist/esm/shared-ts/src/utils/addAuthMethodRegistration.js +104 -0
- package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +36 -0
- package/dist/esm/shared-ts/src/utils/base58.js +28 -0
- package/dist/esm/shared-ts/src/utils/base64.js +70 -0
- package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +27 -0
- package/dist/esm/shared-ts/src/utils/digests.js +33 -0
- package/dist/esm/shared-ts/src/utils/domainIds.js +309 -0
- package/dist/esm/shared-ts/src/utils/ecdsaCapabilityActivation.js +34 -0
- package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +46 -0
- package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +38 -0
- package/dist/esm/shared-ts/src/utils/emailOtpRecoveryKey.js +10 -0
- package/dist/esm/shared-ts/src/utils/encoders.js +2 -0
- package/dist/esm/shared-ts/src/utils/errors.js +88 -0
- package/dist/esm/shared-ts/src/utils/evmRpcResults.js +97 -0
- package/dist/esm/shared-ts/src/utils/jsonRpc.js +64 -0
- package/dist/esm/shared-ts/src/utils/keccak.js +150 -0
- package/dist/esm/shared-ts/src/utils/near.js +99 -0
- package/dist/esm/shared-ts/src/utils/nearRpcResults.js +205 -0
- package/dist/esm/shared-ts/src/utils/normalize.js +87 -0
- package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +201 -0
- package/dist/esm/shared-ts/src/utils/registrationIntent.js +1268 -0
- package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1655 -0
- package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +984 -0
- package/dist/esm/shared-ts/src/utils/routerAbNormalSigningIdentity.js +118 -0
- package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +138 -0
- package/dist/esm/shared-ts/src/utils/routerAbTraceContext.js +36 -0
- package/dist/esm/shared-ts/src/utils/secureRandomId.js +35 -0
- package/dist/esm/shared-ts/src/utils/signingSessionSeal.js +118 -0
- package/dist/esm/shared-ts/src/utils/thresholdEcdsaKeyHandle.js +28 -0
- package/dist/esm/shared-ts/src/utils/validation.js +23 -0
- package/dist/esm/shared-ts/src/utils/walletAddSignerActivation.js +32 -0
- package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +207 -0
- package/dist/esm/shared-ts/src/utils/walletSessionFailure.js +15 -0
- package/dist/esm/shared-ts/src/utils/webauthnDeviceInfo.js +207 -0
- package/dist/esm/shared-ts/src/wallet-recovery/backupAcknowledgement.js +66 -0
- package/dist/esm/shared-ts/src/wallet-recovery/index.js +10 -0
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeIssuance.js +1 -0
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +34 -0
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +80 -0
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodes.js +4 -0
- package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +53 -0
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +108 -0
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +157 -0
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +233 -0
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryRotation.js +3 -0
- package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryTarget.js +29 -0
- package/dist/esm/storage/d1Sql.js +85 -0
- package/dist/esm/storage/tenantRoute.js +89 -0
- package/dist/esm/tenant-root.js +5 -0
- package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +204 -0
- package/dist/esm/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.js +87 -0
- package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +192 -0
- package/dist/esm/threshold/session/signingSessionSeal/guards/index.js +121 -0
- package/dist/esm/threshold/session/signingSessionSeal/idempotency.js +38 -0
- package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +131 -0
- package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +55 -0
- package/dist/esm/threshold/session/signingSessionSeal/index.js +13 -0
- package/dist/esm/threshold/session/signingSessionSeal/observability/audit.js +38 -0
- package/dist/esm/threshold/session/signingSessionSeal/options.js +54 -0
- package/dist/esm/threshold/session/signingSessionSeal/routesOptions.js +45 -0
- package/dist/esm/threshold/session/signingSessionSeal/service.js +316 -0
- package/dist/esm/threshold/session/signingSessionSeal/signingSessionSeal.types.js +0 -0
- package/dist/esm/threshold/session/signingSessionSeal/transport/express.js +151 -0
- package/dist/esm/threshold/session/signingSessionSeal/transport/fetch.js +106 -0
- package/dist/esm/threshold/session/signingSessionSeal/transport/shared.js +159 -0
- package/dist/esm/threshold/statusCodes.js +39 -0
- package/dist/esm/wasm/evm_crypto/pkg/evm_crypto.js +601 -0
- package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +1078 -0
- package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
- package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker.js +503 -0
- package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker_bg.wasm +0 -0
- package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime.js +393 -0
- package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime_bg.wasm +0 -0
- package/dist/esm/wasm/signer.js +2 -0
- package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +147 -0
- package/dist/types/shared-ts/src/authorization/capabilityKinds.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +44 -0
- package/dist/types/shared-ts/src/authorization/index.d.ts +7 -0
- package/dist/types/shared-ts/src/authorization/operationFingerprint.d.ts +39 -0
- package/dist/types/shared-ts/src/authorization/operationFingerprint.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/authorization/walletAuthority.d.ts +168 -0
- package/dist/types/shared-ts/src/authorization/walletAuthority.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/authorization/walletCustodyOperation.d.ts +10 -0
- package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +28 -0
- package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +3 -0
- package/dist/types/shared-ts/src/device-linking/activeWalletSession.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +71 -0
- package/dist/types/shared-ts/src/device-linking/contracts.d.ts +843 -0
- package/dist/types/shared-ts/src/device-linking/contracts.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/device-linking/delegatedActivationPlan.d.ts +37 -0
- package/dist/types/shared-ts/src/device-linking/digests.d.ts +23 -0
- package/dist/types/shared-ts/src/device-linking/ed25519ExportRoot.d.ts +93 -0
- package/dist/types/shared-ts/src/device-linking/index.d.ts +11 -0
- package/dist/types/shared-ts/src/device-linking/parsers.d.ts +124 -0
- package/dist/types/shared-ts/src/device-linking/requestProof.d.ts +26 -0
- package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +182 -0
- package/dist/types/shared-ts/src/device-linking/walletSessionCredentialDelivery.d.ts +84 -0
- package/dist/types/shared-ts/src/index.d.ts +10 -0
- package/dist/types/shared-ts/src/near/actions.d.ts +141 -0
- package/dist/types/shared-ts/src/near/delegate.d.ts +55 -0
- package/dist/types/shared-ts/src/near/index.d.ts +3 -0
- package/dist/types/shared-ts/src/passkey-custody/ceremonyCommitPayload.d.ts +211 -0
- package/dist/types/shared-ts/src/passkey-custody/credentialActivity.d.ts +49 -0
- package/dist/types/shared-ts/src/passkey-custody/credentialObservations.d.ts +74 -0
- package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +191 -0
- package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +140 -0
- package/dist/types/shared-ts/src/passkey-custody/envelopeIndex.d.ts +29 -0
- package/dist/types/shared-ts/src/passkey-custody/index.d.ts +9 -0
- package/dist/types/shared-ts/src/passkey-custody/kekContext.d.ts +34 -0
- package/dist/types/shared-ts/src/passkey-custody/passkeyCustody.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +34 -0
- package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +27 -0
- package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +91 -0
- package/dist/types/shared-ts/src/signing-lanes/execution.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +18 -0
- package/dist/types/shared-ts/src/signing-lanes/index.d.ts +14 -0
- package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.d.ts +62 -0
- package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +30 -0
- package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +48 -0
- package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +89 -0
- package/dist/types/shared-ts/src/signing-lanes/recordParsers.d.ts +128 -0
- package/dist/types/shared-ts/src/signing-lanes/records.d.ts +160 -0
- package/dist/types/shared-ts/src/signing-lanes/records.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +894 -0
- package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +32 -0
- package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +99 -0
- package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +67 -0
- package/dist/types/shared-ts/src/signing-lanes/validation.d.ts +11 -0
- package/dist/types/shared-ts/src/tenant-root/index.d.ts +3 -0
- package/dist/types/shared-ts/src/tenant-root/tenantRootIdentity.d.ts +72 -0
- package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +192 -0
- package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +77 -0
- package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +130 -0
- package/dist/types/shared-ts/src/threshold/index.d.ts +7 -0
- package/dist/types/shared-ts/src/threshold/participants.d.ts +38 -0
- package/dist/types/shared-ts/src/threshold/secp256k1.d.ts +39 -0
- package/dist/types/shared-ts/src/threshold/sessionPolicy.d.ts +5 -0
- package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +24 -0
- package/dist/types/shared-ts/src/utils/addAuthMethodRegistration.d.ts +63 -0
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +295 -0
- package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +11 -0
- package/dist/types/shared-ts/src/utils/authenticatorOptions.d.ts +25 -0
- package/dist/types/shared-ts/src/utils/base58.d.ts +17 -0
- package/dist/types/shared-ts/src/utils/base64.d.ts +53 -0
- package/dist/types/shared-ts/src/utils/bigint.d.ts +3 -0
- package/dist/types/shared-ts/src/utils/canonicalPrimitives.d.ts +12 -0
- package/dist/types/shared-ts/src/utils/digests.d.ts +6 -0
- package/dist/types/shared-ts/src/utils/domainIds.d.ts +140 -0
- package/dist/types/shared-ts/src/utils/domainIds.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/ecdsaCapabilityActivation.d.ts +29 -0
- package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +24 -0
- package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +30 -0
- package/dist/types/shared-ts/src/utils/emailOtpRecoveryKey.d.ts +31 -0
- package/dist/types/shared-ts/src/utils/encoders.d.ts +3 -0
- package/dist/types/shared-ts/src/utils/errors.d.ts +44 -0
- package/dist/types/shared-ts/src/utils/evmRpcResults.d.ts +31 -0
- package/dist/types/shared-ts/src/utils/generated/routerAbEd25519YaoCore.d.ts +128 -0
- package/dist/types/shared-ts/src/utils/index.d.ts +34 -0
- package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +30 -0
- package/dist/types/shared-ts/src/utils/keccak.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/near.d.ts +81 -0
- package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +101 -0
- package/dist/types/shared-ts/src/utils/normalize.d.ts +57 -0
- package/dist/types/shared-ts/src/utils/paillier.d.ts +37 -0
- package/dist/types/shared-ts/src/utils/recoveryDomain.d.ts +12 -0
- package/dist/types/shared-ts/src/utils/registrationEstablishedSession.d.ts +85 -0
- package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +621 -0
- package/dist/types/shared-ts/src/utils/registrationIntent.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +715 -0
- package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivationRefresh.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +339 -0
- package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +71 -0
- package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +51 -0
- package/dist/types/shared-ts/src/utils/routerAbTraceContext.d.ts +16 -0
- package/dist/types/shared-ts/src/utils/secureRandomId.d.ts +6 -0
- package/dist/types/shared-ts/src/utils/signerDomain.d.ts +75 -0
- package/dist/types/shared-ts/src/utils/signerDomain.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/signerSlot.d.ts +11 -0
- package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +153 -0
- package/dist/types/shared-ts/src/utils/signingSessionSeal.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/theme.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/thresholdEcdsaKeyHandle.d.ts +11 -0
- package/dist/types/shared-ts/src/utils/validation.d.ts +35 -0
- package/dist/types/shared-ts/src/utils/walletAddSignerActivation.d.ts +23 -0
- package/dist/types/shared-ts/src/utils/walletAuthAuthority.d.ts +150 -0
- package/dist/types/shared-ts/src/utils/walletAuthAuthority.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +106 -0
- package/dist/types/shared-ts/src/utils/walletCapabilityBindings.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/utils/walletSessionFailure.d.ts +13 -0
- package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +48 -0
- package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +56 -0
- package/dist/types/shared-ts/src/wallet-recovery/index.d.ts +10 -0
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +59 -0
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeIssuance.d.ts +37 -0
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeLocator.d.ts +22 -0
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +79 -0
- package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +11 -0
- package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +42 -0
- package/dist/types/shared-ts/src/wallet-recovery/recoveryKekContext.d.ts +37 -0
- package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +58 -0
- package/dist/types/shared-ts/src/wallet-recovery/walletRecovery.typecheck.d.ts +2 -0
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.d.ts +110 -0
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.d.ts +29 -0
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.d.ts +115 -0
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryRotation.d.ts +18 -0
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.d.ts +12 -0
- package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/capabilityPolicy.d.ts +45 -0
- package/dist/types/wallet-server/src/authorization/capabilityPolicy.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/domain.d.ts +454 -0
- package/dist/types/wallet-server/src/authorization/domain.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/factorEvidence.d.ts +165 -0
- package/dist/types/wallet-server/src/authorization/factorEvidence.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/authorization/service.d.ts +227 -0
- package/dist/types/wallet-server/src/authorization/vaultProxyUse.d.ts +75 -0
- package/dist/types/wallet-server/src/cloud-host.d.ts +94 -0
- package/dist/types/wallet-server/src/core/AuthService.d.ts +3 -0
- package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +33 -0
- package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +336 -0
- package/dist/types/wallet-server/src/core/IdentityStore.d.ts +57 -0
- package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +58 -0
- package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +551 -0
- package/dist/types/wallet-server/src/core/SessionService.d.ts +70 -0
- package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +23 -0
- package/dist/types/wallet-server/src/core/ThresholdService/ecdsaClientRootProof.d.ts +12 -0
- package/dist/types/wallet-server/src/core/ThresholdService/evmCryptoWasm.d.ts +32 -0
- package/dist/types/wallet-server/src/core/ThresholdService/index.d.ts +4 -0
- package/dist/types/wallet-server/src/core/ThresholdService/kv.d.ts +52 -0
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +45 -0
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillLiveSession.d.ts +93 -0
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.d.ts +138 -0
- package/dist/types/wallet-server/src/core/ThresholdService/routerAb/internalServiceHttp.d.ts +30 -0
- package/dist/types/wallet-server/src/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.d.ts +17 -0
- package/dist/types/wallet-server/src/core/ThresholdService/routerAbNormalSigningPolicy.d.ts +21 -0
- package/dist/types/wallet-server/src/core/ThresholdService/secureRandomId.d.ts +2 -0
- package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +128 -0
- package/dist/types/wallet-server/src/core/ThresholdService/stores/EcdsaSigningStore.d.ts +76 -0
- package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +39 -0
- package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +102 -0
- package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +3 -0
- package/dist/types/wallet-server/src/core/ThresholdService/stores/ThresholdStoreConfig.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +98 -0
- package/dist/types/wallet-server/src/core/ThresholdService/thresholdEd25519AuthorityScope.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +193 -0
- package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +12 -0
- package/dist/types/wallet-server/src/core/WalletStore.d.ts +143 -0
- package/dist/types/wallet-server/src/core/WalletStore.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +62 -0
- package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +116 -0
- package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.typecheck.d.ts +13 -0
- package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +50 -0
- package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +50 -0
- package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +493 -0
- package/dist/types/wallet-server/src/core/authService/bytes.d.ts +4 -0
- package/dist/types/wallet-server/src/core/authService/configValues.d.ts +7 -0
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +108 -0
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +177 -0
- package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +46 -0
- package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +110 -0
- package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +34 -0
- package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +65 -0
- package/dist/types/wallet-server/src/core/authService/emailOtpEnrollment.d.ts +79 -0
- package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +42 -0
- package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +116 -0
- package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +35 -0
- package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +70 -0
- package/dist/types/wallet-server/src/core/authService/githubOAuth.d.ts +35 -0
- package/dist/types/wallet-server/src/core/authService/googleEmailOtpErrors.d.ts +2 -0
- package/dist/types/wallet-server/src/core/authService/googleEmailOtpOperations.d.ts +126 -0
- package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +172 -0
- package/dist/types/wallet-server/src/core/authService/identity.d.ts +25 -0
- package/dist/types/wallet-server/src/core/authService/identityOperations.d.ts +19 -0
- package/dist/types/wallet-server/src/core/authService/nearAccountOperations.d.ts +55 -0
- package/dist/types/wallet-server/src/core/authService/nearPrivateKeySigning.d.ts +16 -0
- package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +43 -0
- package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +49 -0
- package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +65 -0
- package/dist/types/wallet-server/src/core/authService/portableCrypto.d.ts +3 -0
- package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +30 -0
- package/dist/types/wallet-server/src/core/authService/record.d.ts +2 -0
- package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +37 -0
- package/dist/types/wallet-server/src/core/authService/runtime.d.ts +20 -0
- package/dist/types/wallet-server/src/core/authService/signerWasmUrls.d.ts +3 -0
- package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +58 -0
- package/dist/types/wallet-server/src/core/authService/thresholdEcdsaKeyInventory.d.ts +72 -0
- package/dist/types/wallet-server/src/core/authService/thresholdRuntimePolicy.d.ts +4 -0
- package/dist/types/wallet-server/src/core/authService/thresholdStoreSummary.d.ts +3 -0
- package/dist/types/wallet-server/src/core/authService/walletRegistrationPlanning.d.ts +19 -0
- package/dist/types/wallet-server/src/core/authService/wasm.d.ts +12 -0
- package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +207 -0
- package/dist/types/wallet-server/src/core/authService/webauthnAuthority.d.ts +5 -0
- package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +52 -0
- package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +48 -0
- package/dist/types/wallet-server/src/core/config.d.ts +13 -0
- package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +44 -0
- package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +214 -0
- package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +108 -0
- package/dist/types/wallet-server/src/core/defaultConfigsServer.d.ts +5 -0
- package/dist/types/wallet-server/src/core/deviceLinking/index.d.ts +5 -0
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEd25519ExportRoot.d.ts +36 -0
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEmailOtpGrant.d.ts +87 -0
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceManagement.d.ts +137 -0
- package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +462 -0
- package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +55 -0
- package/dist/types/wallet-server/src/core/errors.d.ts +10 -0
- package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +31 -0
- package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +28 -0
- package/dist/types/wallet-server/src/core/keyMaterialBrands.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/core/logger.d.ts +21 -0
- package/dist/types/wallet-server/src/core/nearKeys.d.ts +3 -0
- package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +78 -0
- package/dist/types/wallet-server/src/core/nearSignerWasmRuntime.d.ts +3 -0
- package/dist/types/wallet-server/src/core/registrationContracts.d.ts +747 -0
- package/dist/types/wallet-server/src/core/registrationRequests.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +53 -0
- package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +71 -0
- package/dist/types/wallet-server/src/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.d.ts +28 -0
- package/dist/types/wallet-server/src/core/routerAbSigning/createRouterAbSigningRuntimes.d.ts +16 -0
- package/dist/types/wallet-server/src/core/rpcClients/near/NearClient.d.ts +134 -0
- package/dist/types/wallet-server/src/core/sessionValidation.d.ts +9 -0
- package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +35 -0
- package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +63 -0
- package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentActivation.d.ts +13 -0
- package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentRevocation.d.ts +24 -0
- package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleApplicationService.d.ts +141 -0
- package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +229 -0
- package/dist/types/wallet-server/src/core/signingLanes/SigningLaneStore.d.ts +15 -0
- package/dist/types/wallet-server/src/core/signingLanes/WalletExecutionLaneProjection.d.ts +59 -0
- package/dist/types/wallet-server/src/core/signingLanes/WalletKeyStore.d.ts +13 -0
- package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +58 -0
- package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +30 -0
- package/dist/types/wallet-server/src/core/signingLanes/index.d.ts +11 -0
- package/dist/types/wallet-server/src/core/signingLanes/signingWorkerLaneMaterialIdentity.d.ts +21 -0
- package/dist/types/wallet-server/src/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.d.ts +155 -0
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +442 -0
- package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +58 -0
- package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +15 -0
- package/dist/types/wallet-server/src/core/types.d.ts +757 -0
- package/dist/types/wallet-server/src/core/utils.d.ts +3 -0
- package/dist/types/wallet-server/src/delegateAction/index.d.ts +88 -0
- package/dist/types/wallet-server/src/hosted-wallet-gateway-worker.d.ts +10 -0
- package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +126 -0
- package/dist/types/wallet-server/src/index.d.ts +34 -0
- package/dist/types/wallet-server/src/local-hosted-wallet-gateway-worker.d.ts +13 -0
- package/dist/types/wallet-server/src/router/auth/authRequestValidation.d.ts +97 -0
- package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +142 -0
- package/dist/types/wallet-server/src/router/auth/routerApiCredentialAuth.d.ts +26 -0
- package/dist/types/wallet-server/src/router/auth/routerApiKeyAuth.d.ts +16 -0
- package/dist/types/wallet-server/src/router/auth/walletSessionFailure.d.ts +14 -0
- package/dist/types/wallet-server/src/router/auth/webAuthnCredentialCodecs.d.ts +20 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.d.ts +28 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +192 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +13 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +174 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1VaultProxyStore.d.ts +13 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/walletSessionAuthorityProjection.d.ts +24 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +241 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.d.ts +23 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +32 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.d.ts +118 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceManagementService.d.ts +22 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.d.ts +80 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.d.ts +29 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.d.ts +17 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.d.ts +37 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionService.d.ts +12 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +149 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.d.ts +38 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetAuthenticatorStore.d.ts +19 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.d.ts +220 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +88 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.d.ts +54 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkSourceReader.d.ts +23 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/index.d.ts +15 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.d.ts +33 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.d.ts +6 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoWalletSigner.d.ts +27 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.d.ts +80 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.d.ts +48 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +64 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.d.ts +126 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpDeliveryRuntime.d.ts +22 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.d.ts +68 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +15 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +37 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +186 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.d.ts +45 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.d.ts +124 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.d.ts +24 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +51 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +69 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.d.ts +57 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityRecords.d.ts +38 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityService.d.ts +31 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +30 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcBoundary.d.ts +60 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcVerificationService.d.ts +39 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.d.ts +335 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +448 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +256 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpAttemptStore.d.ts +32 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.d.ts +116 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.d.ts +180 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1EvmFamilyEcdsaRegistrationBranch.d.ts +24 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +86 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +121 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +84 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationIntentService.d.ts +31 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +49 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +369 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +106 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.d.ts +104 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.d.ts +70 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +26 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.d.ts +4 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.d.ts +4 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +25 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.d.ts +20 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.d.ts +13 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.d.ts +51 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLockStore.d.ts +28 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.d.ts +5 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneRecords.d.ts +107 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/index.d.ts +10 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.d.ts +118 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +114 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.d.ts +90 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +359 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +143 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.d.ts +42 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +135 -0
- package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +89 -0
- package/dist/types/wallet-server/src/router/cloudflare/durableObjects/thresholdStore.d.ts +19 -0
- package/dist/types/wallet-server/src/router/cloudflare/durableObjects/versionedJsonRecordStore.d.ts +32 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflare.types.d.ts +30 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflareSignerWasm.d.ts +2 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/createCloudflareRouter.d.ts +5 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.d.ts +23 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/ed25519SessionAdapter.d.ts +16 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/environment.d.ts +5 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/routerAbPrewarm.d.ts +9 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/routerAbServiceBindings.d.ts +11 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/sessionAdapterRuntime.d.ts +28 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/staticWalletConsoleBinding.d.ts +27 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/tenantRootCreationGrant.d.ts +24 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +143 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +20 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleTenantRootLineage.d.ts +7 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletControlOps.d.ts +21 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +30 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOps.d.ts +64 -0
- package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOpsHandler.d.ts +3 -0
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.d.ts +217 -0
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.d.ts +73 -0
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.d.ts +100 -0
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/index.d.ts +4 -0
- package/dist/types/wallet-server/src/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.d.ts +6 -0
- package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +75 -0
- package/dist/types/wallet-server/src/router/domains/ecdsa/routerAbEcdsaStrictRegistration.d.ts +199 -0
- package/dist/types/wallet-server/src/router/domains/ecdsa/thresholdEcdsaRequestValidation.d.ts +32 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +172 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.d.ts +156 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +59 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.d.ts +47 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.d.ts +29 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.d.ts +20 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +271 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.d.ts +12 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.d.ts +509 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryActivation.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.d.ts +14 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.d.ts +20 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.d.ts +56 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.d.ts +200 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.d.ts +70 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.d.ts +73 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.d.ts +9 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.d.ts +131 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.d.ts +62 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.d.ts +17 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.d.ts +178 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.d.ts +19 -0
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpExportPolicy.d.ts +32 -0
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRequestValidation.d.ts +13 -0
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRouteHandlers.d.ts +35 -0
- package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpSessionRouteHelpers.d.ts +134 -0
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/envelopeRevocationAdmission.d.ts +31 -0
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +85 -0
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.d.ts +42 -0
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/registrationCustodyOutcome.d.ts +38 -0
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/verifiedCustodyFactor.d.ts +35 -0
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.d.ts +56 -0
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +65 -0
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryAttempt.d.ts +59 -0
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryFinalization.d.ts +81 -0
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryKeyManifest.d.ts +184 -0
- package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryRotation.d.ts +31 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.d.ts +32 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.d.ts +48 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +909 -0
- package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +104 -0
- package/dist/types/wallet-server/src/router/domains/syncAccount/syncAccountRequestValidation.d.ts +30 -0
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootCustodyLineage.d.ts +14 -0
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.d.ts +35 -0
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.d.ts +35 -0
- package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootIdentityResolution.d.ts +56 -0
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +78 -0
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +91 -0
- package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +105 -0
- package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.d.ts +39 -0
- package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRouteHandlers.d.ts +172 -0
- package/dist/types/wallet-server/src/router/express-adaptor.d.ts +22 -0
- package/dist/types/wallet-server/src/router/framework/apiCredentialPorts.d.ts +82 -0
- package/dist/types/wallet-server/src/router/framework/applyRouteMetering.d.ts +23 -0
- package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +1392 -0
- package/dist/types/wallet-server/src/router/framework/enforceRoutePolicy.d.ts +48 -0
- package/dist/types/wallet-server/src/router/framework/http.d.ts +12 -0
- package/dist/types/wallet-server/src/router/framework/logger.d.ts +5 -0
- package/dist/types/wallet-server/src/router/framework/modules.d.ts +17 -0
- package/dist/types/wallet-server/src/router/framework/ror/index.d.ts +7 -0
- package/dist/types/wallet-server/src/router/framework/ror/normalize.d.ts +14 -0
- package/dist/types/wallet-server/src/router/framework/ror/options.d.ts +9 -0
- package/dist/types/wallet-server/src/router/framework/ror/provider.d.ts +17 -0
- package/dist/types/wallet-server/src/router/framework/ror/staticProvider.d.ts +11 -0
- package/dist/types/wallet-server/src/router/framework/routeAuthPolicy.d.ts +34 -0
- package/dist/types/wallet-server/src/router/framework/routeDefinitions.d.ts +27 -0
- package/dist/types/wallet-server/src/router/framework/routeDefinitions.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/router/framework/routeExecutionContext.d.ts +29 -0
- package/dist/types/wallet-server/src/router/framework/routeExtensions.d.ts +27 -0
- package/dist/types/wallet-server/src/router/framework/routeMeteringPolicy.d.ts +17 -0
- package/dist/types/wallet-server/src/router/framework/routeRequestValidation.d.ts +5 -0
- package/dist/types/wallet-server/src/router/framework/routeResponses.d.ts +17 -0
- package/dist/types/wallet-server/src/router/framework/routerApi.d.ts +221 -0
- package/dist/types/wallet-server/src/router/framework/routerApiRouteSurface.d.ts +14 -0
- package/dist/types/wallet-server/src/router/framework/routerApiWebhooks.d.ts +12 -0
- package/dist/types/wallet-server/src/router/framework/runtimeSnapshotConsumer.d.ts +28 -0
- package/dist/types/wallet-server/src/router/framework/versionedJsonRecordStore.d.ts +20 -0
- package/dist/types/wallet-server/src/router/ror-adaptor.d.ts +3 -0
- package/dist/types/wallet-server/src/router/transport/fetch/createFetchRouter.d.ts +8 -0
- package/dist/types/wallet-server/src/router/transport/fetch/fetchRouter.types.d.ts +23 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/auth.d.ts +3 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +202 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.d.ts +92 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceManagement.d.ts +29 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/health.d.ts +4 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/nearPublicKeys.d.ts +3 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/normalSigningRouterProxy.d.ts +33 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/passkeyCustody.d.ts +66 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/sessions.d.ts +31 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/syncAccount.d.ts +3 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/syncAccountBootstrap.d.ts +128 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +87 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEd25519.d.ts +47 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/walletExecutionLanePreflight.d.ts +4 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/walletRegistration.d.ts +3 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/webauthnAuthenticators.d.ts +3 -0
- package/dist/types/wallet-server/src/router/transport/fetch/routes/wellKnown.d.ts +3 -0
- package/dist/types/wallet-server/src/storage/d1Sql.d.ts +14 -0
- package/dist/types/wallet-server/src/storage/tenantRoute.d.ts +136 -0
- package/dist/types/wallet-server/src/storage/tenantRoute.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/tenant-root.d.ts +5 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/crypto/cipher.d.ts +45 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.d.ts +16 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/guards/backends.d.ts +23 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/guards/index.d.ts +46 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotency.d.ts +3 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyBackends.d.ts +24 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyRecords.d.ts +22 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/index.d.ts +23 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/observability/audit.d.ts +9 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/options.d.ts +9 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/routesOptions.d.ts +20 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/service.d.ts +3 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/signingSessionSeal.typecheck.d.ts +2 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/signingSessionSeal.types.d.ts +148 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/express.d.ts +12 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/fetch.d.ts +13 -0
- package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/shared.d.ts +24 -0
- package/dist/types/wallet-server/src/threshold/statusCodes.d.ts +10 -0
- package/dist/types/wallet-server/src/wasm/signer.d.ts +8 -0
- package/migrations/d1-signer/0001_signer_d1_initial.sql +2486 -0
- package/migrations/d1-signer/0002_signer_post_103_canonical_upgrade.sql +1576 -0
- package/migrations/d1-signer/0003_r107_wallet_authorization.sql +299 -0
- package/migrations/d1-signer/0004_remove_legacy_email_recovery.sql +14 -0
- package/migrations/d1-signer/0005_r103p8_linked_owner_auth_bindings.sql +92 -0
- package/migrations/d1-signer/0006_r103p8_linked_device_custody_transfers.sql +77 -0
- package/migrations/d1-signer/0007_r103p8_wallet_session_auth_method_provenance.sql +18 -0
- package/migrations/d1-signer/0008_r103p8_linked_device_session_cas_guard.sql +35 -0
- package/migrations/d1-signer/0009_linked_device_email_otp.sql +405 -0
- package/migrations/d1-signer/0010_linked_device_session_target_factor.sql +78 -0
- package/migrations/d1-signer/0011_linked_device_ed25519_export_root.sql +9 -0
- package/migrations/d1-signer/0012_versioned_json_cas_guard.sql +3 -0
- package/migrations/d1-signer/0013_linked_device_export_authorization.sql +133 -0
- package/migrations/d1-signer/0014_wallet_recovery_code_locators.sql +19 -0
- package/migrations/d1-signer/0015_r103e_authority_baseline.sql +259 -0
- package/migrations/d1-signer/0016_r103e_wallet_session_authorizations_v2.sql +133 -0
- package/migrations/d1-signer/0017_r103e_link_session_state.sql +83 -0
- package/migrations/d1-signer/0018_r103e_linked_device_authority_installations.sql +34 -0
- package/migrations/d1-signer/0019_r103e_email_otp_device_methods.sql +3 -0
- package/migrations/d1-signer/0020_r103e_wallet_session_operation_credentials.sql +12 -0
- package/migrations/d1-signer/0021_linked_device_source_contribution_transcripts.sql +64 -0
- package/migrations/d1-signer/0022_r109c_multi_auth_email_cardinality.sql +118 -0
- package/migrations/d1-signer/0023_r109d_first_email_linked_device.sql +111 -0
- package/migrations/d1-signer/0024_r103f_v2_authorized_operation_claim.sql +99 -0
- package/migrations/d1-signer/0025_r109d_email_enrollment_wallet_cardinality.sql +57 -0
- package/migrations/d1-signer/0026_r115_wallet_recovery_authority_provenance.sql +253 -0
- package/migrations/d1-signer/0027_r115_email_otp_recovery_bootstrap.sql +90 -0
- package/migrations/d1-signer/0028_r103f_phase1_additive_schema_bridge.sql +1119 -0
- package/migrations/d1-signer/0029_r103f_phase0_registration_replay_tokens.sql +135 -0
- package/migrations/d1-signer/0030_r103f_wallet_session_client_capability.sql +17 -0
- package/migrations/d1-signer/0031_r103f_delete_registration_replay_tokens.sql +4 -0
- package/migrations/d1-signer/0032_r103f_exact_authorized_operation_enforcement.sql +149 -0
- package/migrations/d1-signer/0033_r103f_linked_delivery_recipient.sql +6 -0
- package/migrations/d1-signer/0034_r103f_exact_wallet_session_cutover.sql +743 -0
- package/migrations/d1-signer/0035_r103f_linked_delivery_acknowledgement_cleanup_window.sql +413 -0
- package/package.json +132 -0
- package/scripts/d1-local-migrate-signer.mjs +148 -0
- package/src/README.md +75 -0
- package/wrangler.local-hosted-wallet-gateway.toml +37 -0
|
@@ -0,0 +1,2486 @@
|
|
|
1
|
+
-- Canonical D1 schema.
|
|
2
|
+
CREATE TABLE "app_session_versions" (
|
|
3
|
+
namespace TEXT NOT NULL,
|
|
4
|
+
org_id TEXT NOT NULL,
|
|
5
|
+
project_id TEXT NOT NULL,
|
|
6
|
+
env_id TEXT NOT NULL,
|
|
7
|
+
user_id TEXT NOT NULL,
|
|
8
|
+
session_version TEXT NOT NULL,
|
|
9
|
+
record_json TEXT NOT NULL,
|
|
10
|
+
created_at_ms INTEGER NOT NULL,
|
|
11
|
+
updated_at_ms INTEGER NOT NULL,
|
|
12
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, user_id),
|
|
13
|
+
CHECK (length(namespace) > 0),
|
|
14
|
+
CHECK (length(org_id) > 0),
|
|
15
|
+
CHECK (length(project_id) > 0),
|
|
16
|
+
CHECK (length(env_id) > 0),
|
|
17
|
+
CHECK (length(user_id) > 0),
|
|
18
|
+
CHECK (length(session_version) > 0),
|
|
19
|
+
CHECK (json_valid(record_json)),
|
|
20
|
+
CHECK (created_at_ms > 0),
|
|
21
|
+
CHECK (updated_at_ms >= created_at_ms),
|
|
22
|
+
CHECK (COALESCE(json_extract(record_json, '$.version') = 'app_session_version_v1', 0)),
|
|
23
|
+
CHECK (COALESCE(json_extract(record_json, '$.userId') = user_id, 0)),
|
|
24
|
+
CHECK (
|
|
25
|
+
COALESCE(json_extract(record_json, '$.appSessionVersion') = session_version, 0)
|
|
26
|
+
),
|
|
27
|
+
CHECK (COALESCE(json_extract(record_json, '$.createdAtMs') = created_at_ms, 0)),
|
|
28
|
+
CHECK (COALESCE(json_extract(record_json, '$.updatedAtMs') = updated_at_ms, 0))
|
|
29
|
+
);
|
|
30
|
+
CREATE TABLE authorization_sessions (
|
|
31
|
+
namespace TEXT NOT NULL,
|
|
32
|
+
tenant_id TEXT NOT NULL,
|
|
33
|
+
session_id TEXT NOT NULL,
|
|
34
|
+
principal_id TEXT NOT NULL,
|
|
35
|
+
auth_source_kind TEXT NOT NULL,
|
|
36
|
+
auth_source_json TEXT NOT NULL,
|
|
37
|
+
device_id TEXT NOT NULL,
|
|
38
|
+
audience_kind TEXT NOT NULL,
|
|
39
|
+
audience_json TEXT NOT NULL,
|
|
40
|
+
app_session_version TEXT NOT NULL,
|
|
41
|
+
assurance TEXT NOT NULL,
|
|
42
|
+
lifecycle_kind TEXT NOT NULL,
|
|
43
|
+
created_at_ms INTEGER NOT NULL,
|
|
44
|
+
expires_at_ms INTEGER NOT NULL,
|
|
45
|
+
PRIMARY KEY (namespace, tenant_id, session_id),
|
|
46
|
+
CHECK (assurance IN ('session', 'step_up')),
|
|
47
|
+
CHECK (auth_source_kind IN ('oidc_provider', 'passkey')),
|
|
48
|
+
CHECK (audience_kind IN ('first_party_web', 'hosted_wallet_iframe')),
|
|
49
|
+
CHECK (json_valid(auth_source_json)),
|
|
50
|
+
CHECK (json_valid(audience_json)),
|
|
51
|
+
CHECK (lifecycle_kind = 'active'),
|
|
52
|
+
CHECK (expires_at_ms > created_at_ms)
|
|
53
|
+
);
|
|
54
|
+
CREATE TABLE authorization_wallet_session_quotas (
|
|
55
|
+
namespace TEXT NOT NULL,
|
|
56
|
+
tenant_id TEXT NOT NULL,
|
|
57
|
+
quota_id TEXT NOT NULL,
|
|
58
|
+
wallet_session_id TEXT NOT NULL,
|
|
59
|
+
principal_id TEXT NOT NULL,
|
|
60
|
+
remaining_uses INTEGER NOT NULL,
|
|
61
|
+
lifecycle_kind TEXT NOT NULL,
|
|
62
|
+
expires_at_ms INTEGER NOT NULL,
|
|
63
|
+
PRIMARY KEY (namespace, tenant_id, quota_id),
|
|
64
|
+
UNIQUE (namespace, tenant_id, wallet_session_id),
|
|
65
|
+
CHECK (remaining_uses >= 0),
|
|
66
|
+
CHECK (lifecycle_kind IN ('active', 'exhausted')),
|
|
67
|
+
CHECK (
|
|
68
|
+
(lifecycle_kind = 'active' AND remaining_uses > 0)
|
|
69
|
+
OR (lifecycle_kind = 'exhausted' AND remaining_uses = 0)
|
|
70
|
+
)
|
|
71
|
+
);
|
|
72
|
+
CREATE TABLE authorized_operation_audit_events (
|
|
73
|
+
namespace TEXT NOT NULL,
|
|
74
|
+
tenant_id TEXT NOT NULL,
|
|
75
|
+
audit_event_id TEXT NOT NULL,
|
|
76
|
+
authorized_operation_id TEXT NOT NULL,
|
|
77
|
+
operation_fingerprint_digest TEXT NOT NULL,
|
|
78
|
+
authorization_source_kind TEXT NOT NULL,
|
|
79
|
+
authorization_id TEXT,
|
|
80
|
+
evidence_set_digest TEXT,
|
|
81
|
+
quota_id TEXT,
|
|
82
|
+
material_activation_id TEXT,
|
|
83
|
+
result_kind TEXT NOT NULL,
|
|
84
|
+
claimed_at_ms INTEGER NOT NULL,
|
|
85
|
+
completed_at_ms INTEGER, authorization_grant_kind TEXT, material_activation_capability TEXT, material_activation_owner TEXT, material_activation_key_binding TEXT, material_activation_lifecycle_binding TEXT, material_activation_signing_worker TEXT, linked_wallet_id TEXT, linked_enrollment_id TEXT, linked_device_id TEXT, linked_wallet_key_id TEXT, linked_lane_id TEXT, linked_lane_share_epoch TEXT, linked_revocation_epoch INTEGER, linked_scope_org_id TEXT, linked_scope_project_id TEXT, linked_scope_env_id TEXT,
|
|
86
|
+
PRIMARY KEY (namespace, tenant_id, audit_event_id),
|
|
87
|
+
UNIQUE (namespace, tenant_id, authorized_operation_id),
|
|
88
|
+
CHECK (authorization_source_kind IN ('authorization_grant', 'verified_step_up')),
|
|
89
|
+
CHECK (
|
|
90
|
+
(authorization_source_kind = 'authorization_grant'
|
|
91
|
+
AND authorization_id IS NOT NULL
|
|
92
|
+
AND evidence_set_digest IS NULL)
|
|
93
|
+
OR (authorization_source_kind = 'verified_step_up'
|
|
94
|
+
AND authorization_id IS NULL
|
|
95
|
+
AND evidence_set_digest IS NOT NULL)
|
|
96
|
+
),
|
|
97
|
+
CHECK (result_kind IN ('pending', 'succeeded', 'failed_before_side_effect', 'failed_after_side_effect')),
|
|
98
|
+
CHECK (
|
|
99
|
+
(result_kind = 'pending' AND completed_at_ms IS NULL)
|
|
100
|
+
OR (result_kind != 'pending' AND completed_at_ms IS NOT NULL)
|
|
101
|
+
)
|
|
102
|
+
);
|
|
103
|
+
CREATE TABLE "authorized_operations" (
|
|
104
|
+
namespace TEXT NOT NULL,
|
|
105
|
+
tenant_id TEXT NOT NULL,
|
|
106
|
+
authorized_operation_id TEXT NOT NULL,
|
|
107
|
+
audit_event_id TEXT NOT NULL,
|
|
108
|
+
principal_id TEXT NOT NULL,
|
|
109
|
+
capability_id TEXT NOT NULL,
|
|
110
|
+
capability_kind TEXT NOT NULL,
|
|
111
|
+
operation_kind TEXT NOT NULL,
|
|
112
|
+
operation_id TEXT NOT NULL,
|
|
113
|
+
operation_fingerprint_digest TEXT NOT NULL,
|
|
114
|
+
lane_digest TEXT NOT NULL,
|
|
115
|
+
intent_digest TEXT NOT NULL,
|
|
116
|
+
display_digest TEXT NOT NULL,
|
|
117
|
+
authorization_source_kind TEXT NOT NULL,
|
|
118
|
+
authorization_id TEXT,
|
|
119
|
+
evidence_set_digest TEXT,
|
|
120
|
+
quota_id TEXT,
|
|
121
|
+
quota_kind TEXT NOT NULL,
|
|
122
|
+
lifecycle_kind TEXT NOT NULL,
|
|
123
|
+
result_kind TEXT NOT NULL,
|
|
124
|
+
result_digest TEXT,
|
|
125
|
+
result_status INTEGER,
|
|
126
|
+
result_content_type TEXT,
|
|
127
|
+
result_body_text TEXT,
|
|
128
|
+
claimed_at_ms INTEGER NOT NULL,
|
|
129
|
+
completed_at_ms INTEGER,
|
|
130
|
+
material_activation_id TEXT, authorization_grant_kind TEXT, material_activation_capability TEXT, material_activation_owner TEXT, material_activation_key_binding TEXT, material_activation_lifecycle_binding TEXT, material_activation_signing_worker TEXT, linked_wallet_id TEXT, linked_enrollment_id TEXT, linked_device_id TEXT, linked_wallet_key_id TEXT, linked_lane_id TEXT, linked_lane_share_epoch TEXT, linked_revocation_epoch INTEGER, linked_scope_org_id TEXT, linked_scope_project_id TEXT, linked_scope_env_id TEXT,
|
|
131
|
+
PRIMARY KEY (namespace, tenant_id, authorized_operation_id),
|
|
132
|
+
UNIQUE (namespace, tenant_id, operation_fingerprint_digest),
|
|
133
|
+
CHECK (authorization_source_kind IN ('authorization_grant', 'verified_step_up')),
|
|
134
|
+
CHECK (
|
|
135
|
+
(authorization_source_kind = 'authorization_grant'
|
|
136
|
+
AND authorization_id IS NOT NULL
|
|
137
|
+
AND evidence_set_digest IS NULL)
|
|
138
|
+
OR (authorization_source_kind = 'verified_step_up'
|
|
139
|
+
AND authorization_id IS NULL
|
|
140
|
+
AND evidence_set_digest IS NOT NULL)
|
|
141
|
+
),
|
|
142
|
+
CHECK (quota_kind IN ('consume_reusable_wallet_session', 'quota_neutral')),
|
|
143
|
+
CHECK (
|
|
144
|
+
(quota_kind = 'consume_reusable_wallet_session'
|
|
145
|
+
AND authorization_source_kind = 'authorization_grant'
|
|
146
|
+
AND operation_kind NOT IN ('near.export_key', 'evm.export_key')
|
|
147
|
+
AND capability_kind != 'vault_access')
|
|
148
|
+
OR (quota_kind = 'quota_neutral'
|
|
149
|
+
AND (
|
|
150
|
+
operation_kind IN ('near.export_key', 'evm.export_key')
|
|
151
|
+
OR capability_kind = 'vault_access'
|
|
152
|
+
OR authorization_source_kind = 'verified_step_up'
|
|
153
|
+
))
|
|
154
|
+
),
|
|
155
|
+
CHECK (
|
|
156
|
+
(quota_kind = 'consume_reusable_wallet_session' AND quota_id IS NOT NULL)
|
|
157
|
+
OR (quota_kind = 'quota_neutral' AND quota_id IS NULL)
|
|
158
|
+
),
|
|
159
|
+
CHECK (lifecycle_kind IN ('claimed', 'completed')),
|
|
160
|
+
CHECK (
|
|
161
|
+
(lifecycle_kind = 'claimed'
|
|
162
|
+
AND result_kind = 'pending'
|
|
163
|
+
AND result_digest IS NULL
|
|
164
|
+
AND result_status IS NULL
|
|
165
|
+
AND result_content_type IS NULL
|
|
166
|
+
AND result_body_text IS NULL
|
|
167
|
+
AND completed_at_ms IS NULL)
|
|
168
|
+
OR (lifecycle_kind = 'completed'
|
|
169
|
+
AND result_kind IN ('succeeded', 'failed_before_side_effect', 'failed_after_side_effect')
|
|
170
|
+
AND result_digest IS NOT NULL
|
|
171
|
+
AND result_status BETWEEN 100 AND 599
|
|
172
|
+
AND result_content_type IS NOT NULL
|
|
173
|
+
AND trim(result_content_type) = result_content_type
|
|
174
|
+
AND length(result_content_type) BETWEEN 1 AND 255
|
|
175
|
+
AND result_body_text IS NOT NULL
|
|
176
|
+
AND length(CAST(result_body_text AS BLOB)) <= 65536
|
|
177
|
+
AND completed_at_ms IS NOT NULL)
|
|
178
|
+
)
|
|
179
|
+
);
|
|
180
|
+
CREATE TABLE ecdsa_authorization_atomic_guards (
|
|
181
|
+
namespace TEXT NOT NULL,
|
|
182
|
+
tenant_id TEXT NOT NULL,
|
|
183
|
+
check_id TEXT NOT NULL,
|
|
184
|
+
matched INTEGER NOT NULL CHECK (matched = 1),
|
|
185
|
+
PRIMARY KEY (namespace, tenant_id, check_id)
|
|
186
|
+
);
|
|
187
|
+
CREATE TABLE "email_otp_auth_states" (
|
|
188
|
+
namespace TEXT NOT NULL,
|
|
189
|
+
org_id TEXT NOT NULL,
|
|
190
|
+
project_id TEXT NOT NULL,
|
|
191
|
+
env_id TEXT NOT NULL,
|
|
192
|
+
wallet_id TEXT NOT NULL,
|
|
193
|
+
provider_user_id TEXT NOT NULL,
|
|
194
|
+
record_org_id TEXT NOT NULL,
|
|
195
|
+
record_json TEXT NOT NULL,
|
|
196
|
+
created_at_ms INTEGER NOT NULL,
|
|
197
|
+
updated_at_ms INTEGER NOT NULL,
|
|
198
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, wallet_id),
|
|
199
|
+
CHECK (length(namespace) > 0),
|
|
200
|
+
CHECK (length(org_id) > 0),
|
|
201
|
+
CHECK (length(project_id) > 0),
|
|
202
|
+
CHECK (length(env_id) > 0),
|
|
203
|
+
CHECK (length(wallet_id) > 0),
|
|
204
|
+
CHECK (length(provider_user_id) > 0),
|
|
205
|
+
CHECK (length(record_org_id) > 0),
|
|
206
|
+
CHECK (json_valid(record_json)),
|
|
207
|
+
CHECK (created_at_ms > 0),
|
|
208
|
+
CHECK (updated_at_ms >= created_at_ms),
|
|
209
|
+
CHECK (COALESCE(json_extract(record_json, '$.version') = 'email_otp_auth_state_v1', 0)),
|
|
210
|
+
CHECK (COALESCE(json_extract(record_json, '$.walletId') = wallet_id, 0)),
|
|
211
|
+
CHECK (COALESCE(json_extract(record_json, '$.providerUserId') = provider_user_id, 0)),
|
|
212
|
+
CHECK (COALESCE(json_extract(record_json, '$.orgId') = record_org_id, 0)),
|
|
213
|
+
CHECK (COALESCE(json_extract(record_json, '$.createdAtMs') = created_at_ms, 0)),
|
|
214
|
+
CHECK (COALESCE(json_extract(record_json, '$.updatedAtMs') = updated_at_ms, 0))
|
|
215
|
+
);
|
|
216
|
+
CREATE TABLE "email_otp_challenges" (
|
|
217
|
+
namespace TEXT NOT NULL,
|
|
218
|
+
org_id TEXT NOT NULL,
|
|
219
|
+
project_id TEXT NOT NULL,
|
|
220
|
+
env_id TEXT NOT NULL,
|
|
221
|
+
challenge_id TEXT NOT NULL,
|
|
222
|
+
challenge_subject_id TEXT NOT NULL,
|
|
223
|
+
wallet_id TEXT NOT NULL,
|
|
224
|
+
record_org_id TEXT NOT NULL,
|
|
225
|
+
otp_channel TEXT NOT NULL,
|
|
226
|
+
session_hash TEXT NOT NULL,
|
|
227
|
+
app_session_version TEXT NOT NULL,
|
|
228
|
+
action TEXT NOT NULL,
|
|
229
|
+
operation TEXT NOT NULL,
|
|
230
|
+
otp_code TEXT NOT NULL,
|
|
231
|
+
record_json TEXT NOT NULL,
|
|
232
|
+
created_at_ms INTEGER NOT NULL,
|
|
233
|
+
expires_at_ms INTEGER NOT NULL,
|
|
234
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, challenge_id),
|
|
235
|
+
CHECK (length(namespace) > 0),
|
|
236
|
+
CHECK (length(org_id) > 0),
|
|
237
|
+
CHECK (length(project_id) > 0),
|
|
238
|
+
CHECK (length(env_id) > 0),
|
|
239
|
+
CHECK (length(challenge_id) > 0),
|
|
240
|
+
CHECK (length(challenge_subject_id) > 0),
|
|
241
|
+
CHECK (length(wallet_id) > 0),
|
|
242
|
+
CHECK (length(record_org_id) > 0),
|
|
243
|
+
CHECK (otp_channel = 'email_otp'),
|
|
244
|
+
CHECK (length(session_hash) > 0),
|
|
245
|
+
CHECK (length(app_session_version) > 0),
|
|
246
|
+
CHECK (
|
|
247
|
+
action IN (
|
|
248
|
+
'wallet_email_otp_login',
|
|
249
|
+
'wallet_email_otp_registration',
|
|
250
|
+
'wallet_email_otp_device_recovery'
|
|
251
|
+
)
|
|
252
|
+
),
|
|
253
|
+
CHECK (operation IN ('wallet_unlock', 'transaction_sign', 'export_key', 'registration')),
|
|
254
|
+
CHECK (length(otp_code) > 0),
|
|
255
|
+
CHECK (json_valid(record_json)),
|
|
256
|
+
CHECK (created_at_ms > 0),
|
|
257
|
+
CHECK (expires_at_ms > created_at_ms),
|
|
258
|
+
CHECK (COALESCE(json_extract(record_json, '$.version') = 'email_otp_challenge_v1', 0)),
|
|
259
|
+
CHECK (COALESCE(json_extract(record_json, '$.challengeId') = challenge_id, 0)),
|
|
260
|
+
CHECK (
|
|
261
|
+
COALESCE(json_extract(record_json, '$.challengeSubjectId') = challenge_subject_id, 0)
|
|
262
|
+
),
|
|
263
|
+
CHECK (COALESCE(json_extract(record_json, '$.walletId') = wallet_id, 0)),
|
|
264
|
+
CHECK (COALESCE(json_extract(record_json, '$.orgId') = record_org_id, 0)),
|
|
265
|
+
CHECK (COALESCE(json_extract(record_json, '$.otpChannel') = otp_channel, 0)),
|
|
266
|
+
CHECK (COALESCE(json_extract(record_json, '$.sessionHash') = session_hash, 0)),
|
|
267
|
+
CHECK (
|
|
268
|
+
COALESCE(json_extract(record_json, '$.appSessionVersion') = app_session_version, 0)
|
|
269
|
+
),
|
|
270
|
+
CHECK (COALESCE(json_extract(record_json, '$.action') = action, 0)),
|
|
271
|
+
CHECK (COALESCE(json_extract(record_json, '$.operation') = operation, 0)),
|
|
272
|
+
CHECK (COALESCE(json_extract(record_json, '$.otpCode') = otp_code, 0)),
|
|
273
|
+
CHECK (COALESCE(json_extract(record_json, '$.createdAtMs') = created_at_ms, 0)),
|
|
274
|
+
CHECK (COALESCE(json_extract(record_json, '$.expiresAtMs') = expires_at_ms, 0))
|
|
275
|
+
);
|
|
276
|
+
CREATE TABLE "email_otp_grants" (
|
|
277
|
+
namespace TEXT NOT NULL,
|
|
278
|
+
org_id TEXT NOT NULL,
|
|
279
|
+
project_id TEXT NOT NULL,
|
|
280
|
+
env_id TEXT NOT NULL,
|
|
281
|
+
grant_token TEXT NOT NULL,
|
|
282
|
+
user_id TEXT NOT NULL,
|
|
283
|
+
wallet_id TEXT NOT NULL,
|
|
284
|
+
record_org_id TEXT NOT NULL,
|
|
285
|
+
challenge_id TEXT NOT NULL,
|
|
286
|
+
action TEXT NOT NULL,
|
|
287
|
+
record_json TEXT NOT NULL,
|
|
288
|
+
issued_at_ms INTEGER NOT NULL,
|
|
289
|
+
expires_at_ms INTEGER NOT NULL,
|
|
290
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, grant_token),
|
|
291
|
+
CHECK (length(namespace) > 0),
|
|
292
|
+
CHECK (length(org_id) > 0),
|
|
293
|
+
CHECK (length(project_id) > 0),
|
|
294
|
+
CHECK (length(env_id) > 0),
|
|
295
|
+
CHECK (length(grant_token) > 0),
|
|
296
|
+
CHECK (length(user_id) > 0),
|
|
297
|
+
CHECK (length(wallet_id) > 0),
|
|
298
|
+
CHECK (length(challenge_id) > 0),
|
|
299
|
+
CHECK (action IN ('wallet_email_otp_unseal', 'wallet_email_otp_device_recovery')),
|
|
300
|
+
CHECK (json_valid(record_json)),
|
|
301
|
+
CHECK (issued_at_ms > 0),
|
|
302
|
+
CHECK (expires_at_ms > issued_at_ms),
|
|
303
|
+
CHECK (COALESCE(json_extract(record_json, '$.version') = 'email_otp_grant_v1', 0)),
|
|
304
|
+
CHECK (COALESCE(json_extract(record_json, '$.grantToken') = grant_token, 0)),
|
|
305
|
+
CHECK (COALESCE(json_extract(record_json, '$.userId') = user_id, 0)),
|
|
306
|
+
CHECK (COALESCE(json_extract(record_json, '$.walletId') = wallet_id, 0)),
|
|
307
|
+
CHECK (record_org_id = '' OR COALESCE(json_extract(record_json, '$.orgId') = record_org_id, 0)),
|
|
308
|
+
CHECK (COALESCE(json_extract(record_json, '$.challengeId') = challenge_id, 0)),
|
|
309
|
+
CHECK (COALESCE(json_extract(record_json, '$.otpChannel') = 'email_otp', 0)),
|
|
310
|
+
CHECK (COALESCE(json_extract(record_json, '$.action') = action, 0)),
|
|
311
|
+
CHECK (COALESCE(json_extract(record_json, '$.issuedAtMs') = issued_at_ms, 0)),
|
|
312
|
+
CHECK (COALESCE(json_extract(record_json, '$.expiresAtMs') = expires_at_ms, 0))
|
|
313
|
+
);
|
|
314
|
+
CREATE TABLE "email_otp_rate_limits" (
|
|
315
|
+
namespace TEXT NOT NULL,
|
|
316
|
+
org_id TEXT NOT NULL,
|
|
317
|
+
project_id TEXT NOT NULL,
|
|
318
|
+
env_id TEXT NOT NULL,
|
|
319
|
+
rate_key TEXT NOT NULL,
|
|
320
|
+
consumed_count INTEGER NOT NULL,
|
|
321
|
+
reset_at_ms INTEGER NOT NULL,
|
|
322
|
+
updated_at_ms INTEGER NOT NULL,
|
|
323
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, rate_key),
|
|
324
|
+
CHECK (length(namespace) > 0),
|
|
325
|
+
CHECK (length(org_id) > 0),
|
|
326
|
+
CHECK (length(project_id) > 0),
|
|
327
|
+
CHECK (length(env_id) > 0),
|
|
328
|
+
CHECK (length(rate_key) > 0),
|
|
329
|
+
CHECK (consumed_count > 0),
|
|
330
|
+
CHECK (reset_at_ms > 0),
|
|
331
|
+
CHECK (updated_at_ms > 0),
|
|
332
|
+
CHECK (reset_at_ms > updated_at_ms)
|
|
333
|
+
);
|
|
334
|
+
CREATE TABLE "email_otp_recovery_wrapped_enrollment_escrows" (
|
|
335
|
+
namespace TEXT NOT NULL,
|
|
336
|
+
org_id TEXT NOT NULL,
|
|
337
|
+
project_id TEXT NOT NULL,
|
|
338
|
+
env_id TEXT NOT NULL,
|
|
339
|
+
wallet_id TEXT NOT NULL,
|
|
340
|
+
recovery_key_id TEXT NOT NULL,
|
|
341
|
+
recovery_key_status TEXT NOT NULL,
|
|
342
|
+
record_json TEXT NOT NULL,
|
|
343
|
+
issued_at_ms INTEGER NOT NULL,
|
|
344
|
+
updated_at_ms INTEGER NOT NULL,
|
|
345
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, wallet_id, recovery_key_id),
|
|
346
|
+
CHECK (length(namespace) > 0),
|
|
347
|
+
CHECK (length(org_id) > 0),
|
|
348
|
+
CHECK (length(project_id) > 0),
|
|
349
|
+
CHECK (length(env_id) > 0),
|
|
350
|
+
CHECK (length(wallet_id) > 0),
|
|
351
|
+
CHECK (length(recovery_key_id) > 0),
|
|
352
|
+
CHECK (recovery_key_status IN ('active', 'consumed', 'revoked')),
|
|
353
|
+
CHECK (json_valid(record_json)),
|
|
354
|
+
CHECK (issued_at_ms > 0),
|
|
355
|
+
CHECK (updated_at_ms >= issued_at_ms),
|
|
356
|
+
CHECK (
|
|
357
|
+
COALESCE(
|
|
358
|
+
json_extract(record_json, '$.version') = 'email_otp_recovery_wrapped_enrollment_escrow_v1',
|
|
359
|
+
0
|
|
360
|
+
)
|
|
361
|
+
),
|
|
362
|
+
CHECK (
|
|
363
|
+
COALESCE(json_extract(record_json, '$.alg') = 'chacha20poly1305-hkdf-sha256-v1', 0)
|
|
364
|
+
),
|
|
365
|
+
CHECK (
|
|
366
|
+
COALESCE(
|
|
367
|
+
json_extract(record_json, '$.secretKind') = 'email_otp_device_enrollment_escrow',
|
|
368
|
+
0
|
|
369
|
+
)
|
|
370
|
+
),
|
|
371
|
+
CHECK (
|
|
372
|
+
COALESCE(
|
|
373
|
+
json_extract(record_json, '$.escrowKind') = 'recovery_wrapped_enrollment_escrow',
|
|
374
|
+
0
|
|
375
|
+
)
|
|
376
|
+
),
|
|
377
|
+
CHECK (COALESCE(json_extract(record_json, '$.walletId') = wallet_id, 0)),
|
|
378
|
+
CHECK (COALESCE(json_extract(record_json, '$.recoveryKeyId') = recovery_key_id, 0)),
|
|
379
|
+
CHECK (
|
|
380
|
+
COALESCE(json_extract(record_json, '$.recoveryKeyStatus') = recovery_key_status, 0)
|
|
381
|
+
),
|
|
382
|
+
CHECK (COALESCE(json_extract(record_json, '$.authMethod') = 'google_sso_email_otp', 0)),
|
|
383
|
+
CHECK (
|
|
384
|
+
COALESCE(
|
|
385
|
+
json_extract(record_json, '$.userId') = json_extract(record_json, '$.authSubjectId'),
|
|
386
|
+
0
|
|
387
|
+
)
|
|
388
|
+
),
|
|
389
|
+
CHECK (COALESCE(json_extract(record_json, '$.issuedAtMs') = issued_at_ms, 0)),
|
|
390
|
+
CHECK (COALESCE(json_extract(record_json, '$.updatedAtMs') = updated_at_ms, 0)),
|
|
391
|
+
CHECK (
|
|
392
|
+
(
|
|
393
|
+
recovery_key_status = 'active'
|
|
394
|
+
AND json_type(record_json, '$.consumedAtMs') IS NULL
|
|
395
|
+
AND json_type(record_json, '$.revokedAtMs') IS NULL
|
|
396
|
+
)
|
|
397
|
+
OR (
|
|
398
|
+
recovery_key_status = 'consumed'
|
|
399
|
+
AND COALESCE(json_extract(record_json, '$.consumedAtMs') >= issued_at_ms, 0)
|
|
400
|
+
AND json_type(record_json, '$.revokedAtMs') IS NULL
|
|
401
|
+
)
|
|
402
|
+
OR (
|
|
403
|
+
recovery_key_status = 'revoked'
|
|
404
|
+
AND COALESCE(json_extract(record_json, '$.revokedAtMs') >= issued_at_ms, 0)
|
|
405
|
+
AND json_type(record_json, '$.consumedAtMs') IS NULL
|
|
406
|
+
)
|
|
407
|
+
)
|
|
408
|
+
);
|
|
409
|
+
CREATE TABLE "email_otp_registration_attempts" (
|
|
410
|
+
namespace TEXT NOT NULL,
|
|
411
|
+
org_id TEXT NOT NULL,
|
|
412
|
+
project_id TEXT NOT NULL,
|
|
413
|
+
env_id TEXT NOT NULL,
|
|
414
|
+
attempt_id TEXT NOT NULL,
|
|
415
|
+
provider_subject TEXT NOT NULL,
|
|
416
|
+
email TEXT NOT NULL,
|
|
417
|
+
wallet_id TEXT NOT NULL,
|
|
418
|
+
state TEXT NOT NULL,
|
|
419
|
+
app_session_version TEXT NOT NULL,
|
|
420
|
+
runtime_org_id TEXT NOT NULL,
|
|
421
|
+
runtime_policy_key TEXT NOT NULL,
|
|
422
|
+
offer_wallet_ids_json TEXT NOT NULL,
|
|
423
|
+
record_json TEXT NOT NULL,
|
|
424
|
+
created_at_ms INTEGER NOT NULL,
|
|
425
|
+
updated_at_ms INTEGER NOT NULL,
|
|
426
|
+
expires_at_ms INTEGER NOT NULL,
|
|
427
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, attempt_id),
|
|
428
|
+
CHECK (length(namespace) > 0),
|
|
429
|
+
CHECK (length(org_id) > 0),
|
|
430
|
+
CHECK (length(project_id) > 0),
|
|
431
|
+
CHECK (length(env_id) > 0),
|
|
432
|
+
CHECK (length(attempt_id) > 0),
|
|
433
|
+
CHECK (length(provider_subject) > 0),
|
|
434
|
+
CHECK (length(email) > 0),
|
|
435
|
+
CHECK (length(wallet_id) > 0),
|
|
436
|
+
CHECK (state IN ('started', 'key_finalized', 'active', 'abandoned', 'failed', 'expired')),
|
|
437
|
+
CHECK (length(app_session_version) > 0),
|
|
438
|
+
CHECK (json_valid(offer_wallet_ids_json)),
|
|
439
|
+
CHECK (json_type(offer_wallet_ids_json) = 'array'),
|
|
440
|
+
CHECK (json_valid(record_json)),
|
|
441
|
+
CHECK (created_at_ms > 0),
|
|
442
|
+
CHECK (updated_at_ms >= created_at_ms),
|
|
443
|
+
CHECK (expires_at_ms > created_at_ms),
|
|
444
|
+
CHECK (
|
|
445
|
+
COALESCE(
|
|
446
|
+
json_extract(record_json, '$.version') = 'google_email_otp_registration_attempt_v1',
|
|
447
|
+
0
|
|
448
|
+
)
|
|
449
|
+
),
|
|
450
|
+
CHECK (COALESCE(json_extract(record_json, '$.attemptId') = attempt_id, 0)),
|
|
451
|
+
CHECK (COALESCE(json_extract(record_json, '$.providerSubject') = provider_subject, 0)),
|
|
452
|
+
CHECK (COALESCE(json_extract(record_json, '$.email') = email, 0)),
|
|
453
|
+
CHECK (COALESCE(json_extract(record_json, '$.walletId') = wallet_id, 0)),
|
|
454
|
+
CHECK (COALESCE(json_extract(record_json, '$.state') = state, 0)),
|
|
455
|
+
CHECK (
|
|
456
|
+
COALESCE(json_extract(record_json, '$.appSessionVersion') = app_session_version, 0)
|
|
457
|
+
),
|
|
458
|
+
CHECK (runtime_org_id = '' OR COALESCE(json_extract(record_json, '$.runtimePolicyScope.orgId') = runtime_org_id, 0)),
|
|
459
|
+
CHECK (COALESCE(json_extract(record_json, '$.createdAtMs') = created_at_ms, 0)),
|
|
460
|
+
CHECK (COALESCE(json_extract(record_json, '$.updatedAtMs') = updated_at_ms, 0)),
|
|
461
|
+
CHECK (COALESCE(json_extract(record_json, '$.expiresAtMs') = expires_at_ms, 0))
|
|
462
|
+
);
|
|
463
|
+
CREATE TABLE "email_otp_unlock_challenges" (
|
|
464
|
+
namespace TEXT NOT NULL,
|
|
465
|
+
org_id TEXT NOT NULL,
|
|
466
|
+
project_id TEXT NOT NULL,
|
|
467
|
+
env_id TEXT NOT NULL,
|
|
468
|
+
challenge_id TEXT NOT NULL,
|
|
469
|
+
wallet_id TEXT NOT NULL,
|
|
470
|
+
user_id TEXT NOT NULL,
|
|
471
|
+
record_org_id TEXT NOT NULL,
|
|
472
|
+
record_json TEXT NOT NULL,
|
|
473
|
+
created_at_ms INTEGER NOT NULL,
|
|
474
|
+
expires_at_ms INTEGER NOT NULL,
|
|
475
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, challenge_id),
|
|
476
|
+
CHECK (length(namespace) > 0),
|
|
477
|
+
CHECK (length(org_id) > 0),
|
|
478
|
+
CHECK (length(project_id) > 0),
|
|
479
|
+
CHECK (length(env_id) > 0),
|
|
480
|
+
CHECK (length(challenge_id) > 0),
|
|
481
|
+
CHECK (length(wallet_id) > 0),
|
|
482
|
+
CHECK (length(user_id) > 0),
|
|
483
|
+
CHECK (record_org_id = '' OR length(record_org_id) > 0),
|
|
484
|
+
CHECK (json_valid(record_json)),
|
|
485
|
+
CHECK (created_at_ms > 0),
|
|
486
|
+
CHECK (expires_at_ms > created_at_ms),
|
|
487
|
+
CHECK (
|
|
488
|
+
COALESCE(json_extract(record_json, '$.version') = 'email_otp_unlock_challenge_v1', 0)
|
|
489
|
+
),
|
|
490
|
+
CHECK (COALESCE(json_extract(record_json, '$.challengeId') = challenge_id, 0)),
|
|
491
|
+
CHECK (COALESCE(json_extract(record_json, '$.walletId') = wallet_id, 0)),
|
|
492
|
+
CHECK (COALESCE(json_extract(record_json, '$.userId') = user_id, 0)),
|
|
493
|
+
CHECK (record_org_id = '' OR COALESCE(json_extract(record_json, '$.orgId') = record_org_id, 0)),
|
|
494
|
+
CHECK (COALESCE(json_extract(record_json, '$.createdAtMs') = created_at_ms, 0)),
|
|
495
|
+
CHECK (COALESCE(json_extract(record_json, '$.expiresAtMs') = expires_at_ms, 0))
|
|
496
|
+
);
|
|
497
|
+
CREATE TABLE "email_otp_wallet_enrollments" (
|
|
498
|
+
namespace TEXT NOT NULL,
|
|
499
|
+
org_id TEXT NOT NULL,
|
|
500
|
+
project_id TEXT NOT NULL,
|
|
501
|
+
env_id TEXT NOT NULL,
|
|
502
|
+
wallet_id TEXT NOT NULL,
|
|
503
|
+
provider_user_id TEXT NOT NULL,
|
|
504
|
+
record_org_id TEXT NOT NULL,
|
|
505
|
+
verified_email TEXT NOT NULL,
|
|
506
|
+
record_json TEXT NOT NULL,
|
|
507
|
+
created_at_ms INTEGER NOT NULL,
|
|
508
|
+
updated_at_ms INTEGER NOT NULL,
|
|
509
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, wallet_id),
|
|
510
|
+
UNIQUE (namespace, org_id, project_id, env_id, record_org_id, provider_user_id),
|
|
511
|
+
CHECK (length(namespace) > 0),
|
|
512
|
+
CHECK (length(org_id) > 0),
|
|
513
|
+
CHECK (length(project_id) > 0),
|
|
514
|
+
CHECK (length(env_id) > 0),
|
|
515
|
+
CHECK (length(wallet_id) > 0),
|
|
516
|
+
CHECK (length(provider_user_id) > 0),
|
|
517
|
+
CHECK (length(record_org_id) > 0),
|
|
518
|
+
CHECK (length(verified_email) > 0),
|
|
519
|
+
CHECK (json_valid(record_json)),
|
|
520
|
+
CHECK (created_at_ms > 0),
|
|
521
|
+
CHECK (updated_at_ms >= created_at_ms),
|
|
522
|
+
CHECK (
|
|
523
|
+
COALESCE(json_extract(record_json, '$.version') = 'email_otp_wallet_enrollment_v1', 0)
|
|
524
|
+
),
|
|
525
|
+
CHECK (COALESCE(json_extract(record_json, '$.walletId') = wallet_id, 0)),
|
|
526
|
+
CHECK (COALESCE(json_extract(record_json, '$.providerUserId') = provider_user_id, 0)),
|
|
527
|
+
CHECK (COALESCE(json_extract(record_json, '$.orgId') = record_org_id, 0)),
|
|
528
|
+
CHECK (COALESCE(json_extract(record_json, '$.verifiedEmail') = verified_email, 0)),
|
|
529
|
+
CHECK (COALESCE(json_extract(record_json, '$.createdAtMs') = created_at_ms, 0)),
|
|
530
|
+
CHECK (COALESCE(json_extract(record_json, '$.updatedAtMs') = updated_at_ms, 0))
|
|
531
|
+
);
|
|
532
|
+
CREATE TABLE "email_recovery_preparations" (
|
|
533
|
+
namespace TEXT NOT NULL,
|
|
534
|
+
org_id TEXT NOT NULL,
|
|
535
|
+
project_id TEXT NOT NULL,
|
|
536
|
+
env_id TEXT NOT NULL,
|
|
537
|
+
request_id TEXT NOT NULL,
|
|
538
|
+
account_id TEXT NOT NULL,
|
|
539
|
+
wallet_id TEXT NOT NULL,
|
|
540
|
+
rp_id TEXT NOT NULL,
|
|
541
|
+
record_json TEXT NOT NULL,
|
|
542
|
+
created_at_ms INTEGER NOT NULL,
|
|
543
|
+
expires_at_ms INTEGER NOT NULL,
|
|
544
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, request_id),
|
|
545
|
+
CHECK (length(namespace) > 0),
|
|
546
|
+
CHECK (length(org_id) > 0),
|
|
547
|
+
CHECK (length(project_id) > 0),
|
|
548
|
+
CHECK (length(env_id) > 0),
|
|
549
|
+
CHECK (length(request_id) > 0),
|
|
550
|
+
CHECK (length(account_id) > 0),
|
|
551
|
+
CHECK (length(wallet_id) > 0),
|
|
552
|
+
CHECK (length(rp_id) > 0),
|
|
553
|
+
CHECK (json_valid(record_json)),
|
|
554
|
+
CHECK (created_at_ms > 0),
|
|
555
|
+
CHECK (expires_at_ms > created_at_ms),
|
|
556
|
+
CHECK (
|
|
557
|
+
COALESCE(json_extract(record_json, '$.version') = 'email_recovery_preparation_v1', 0)
|
|
558
|
+
),
|
|
559
|
+
CHECK (COALESCE(json_extract(record_json, '$.requestId') = request_id, 0)),
|
|
560
|
+
CHECK (COALESCE(json_extract(record_json, '$.accountId') = account_id, 0)),
|
|
561
|
+
CHECK (COALESCE(json_extract(record_json, '$.rpId') = rp_id, 0)),
|
|
562
|
+
CHECK (COALESCE(json_extract(record_json, '$.walletBinding.walletId') = wallet_id, 0)),
|
|
563
|
+
CHECK (COALESCE(json_extract(record_json, '$.createdAtMs') = created_at_ms, 0)),
|
|
564
|
+
CHECK (COALESCE(json_extract(record_json, '$.expiresAtMs') = expires_at_ms, 0))
|
|
565
|
+
);
|
|
566
|
+
CREATE TABLE google_email_otp_session_exchange_journals (
|
|
567
|
+
namespace TEXT NOT NULL,
|
|
568
|
+
org_id TEXT NOT NULL,
|
|
569
|
+
project_id TEXT NOT NULL,
|
|
570
|
+
env_id TEXT NOT NULL,
|
|
571
|
+
idempotency_key TEXT NOT NULL,
|
|
572
|
+
request_fingerprint TEXT NOT NULL,
|
|
573
|
+
account_mode TEXT NOT NULL,
|
|
574
|
+
lifecycle_kind TEXT NOT NULL,
|
|
575
|
+
phase TEXT NOT NULL,
|
|
576
|
+
version INTEGER NOT NULL,
|
|
577
|
+
phase_data_json TEXT NOT NULL,
|
|
578
|
+
prepared_seams_session_id TEXT NOT NULL,
|
|
579
|
+
prepared_device_id TEXT NOT NULL,
|
|
580
|
+
prepared_created_at_ms INTEGER NOT NULL,
|
|
581
|
+
response_status INTEGER,
|
|
582
|
+
response_body_text TEXT,
|
|
583
|
+
response_set_cookie TEXT,
|
|
584
|
+
created_at_ms INTEGER NOT NULL,
|
|
585
|
+
updated_at_ms INTEGER NOT NULL,
|
|
586
|
+
expires_at_ms INTEGER NOT NULL,
|
|
587
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, idempotency_key),
|
|
588
|
+
CHECK (length(namespace) > 0),
|
|
589
|
+
CHECK (length(org_id) > 0),
|
|
590
|
+
CHECK (length(project_id) > 0),
|
|
591
|
+
CHECK (length(env_id) > 0),
|
|
592
|
+
CHECK (length(idempotency_key) BETWEEN 1 AND 512),
|
|
593
|
+
CHECK (length(request_fingerprint) BETWEEN 1 AND 512),
|
|
594
|
+
CHECK (account_mode = 'login'),
|
|
595
|
+
CHECK (lifecycle_kind IN ('in_progress', 'completed')),
|
|
596
|
+
CHECK (
|
|
597
|
+
phase IN (
|
|
598
|
+
'claimed',
|
|
599
|
+
'session_prepared',
|
|
600
|
+
'completed'
|
|
601
|
+
)
|
|
602
|
+
),
|
|
603
|
+
CHECK (version >= 1),
|
|
604
|
+
CHECK (json_valid(phase_data_json)),
|
|
605
|
+
CHECK (length(CAST(phase_data_json AS BLOB)) <= 65536),
|
|
606
|
+
CHECK (length(prepared_seams_session_id) > 0),
|
|
607
|
+
CHECK (length(prepared_device_id) > 0),
|
|
608
|
+
CHECK (prepared_created_at_ms > 0),
|
|
609
|
+
CHECK (prepared_created_at_ms = created_at_ms),
|
|
610
|
+
CHECK (updated_at_ms >= created_at_ms),
|
|
611
|
+
CHECK (expires_at_ms > created_at_ms),
|
|
612
|
+
CHECK (
|
|
613
|
+
(lifecycle_kind = 'in_progress'
|
|
614
|
+
AND phase != 'completed'
|
|
615
|
+
AND response_status IS NULL
|
|
616
|
+
AND response_body_text IS NULL
|
|
617
|
+
AND response_set_cookie IS NULL)
|
|
618
|
+
OR (lifecycle_kind = 'completed'
|
|
619
|
+
AND phase = 'completed'
|
|
620
|
+
AND response_status BETWEEN 100 AND 599
|
|
621
|
+
AND response_body_text IS NOT NULL
|
|
622
|
+
AND length(CAST(response_body_text AS BLOB)) <= 65536)
|
|
623
|
+
),
|
|
624
|
+
CHECK (response_set_cookie IS NULL OR length(CAST(response_set_cookie AS BLOB)) <= 8192)
|
|
625
|
+
);
|
|
626
|
+
CREATE TABLE hosted_wallet_session_exchange_codes (
|
|
627
|
+
namespace TEXT NOT NULL,
|
|
628
|
+
tenant_id TEXT NOT NULL,
|
|
629
|
+
exchange_code_id TEXT NOT NULL,
|
|
630
|
+
source_session_id TEXT NOT NULL,
|
|
631
|
+
code_hash TEXT NOT NULL,
|
|
632
|
+
nonce_digest TEXT NOT NULL,
|
|
633
|
+
app_origin TEXT NOT NULL,
|
|
634
|
+
wallet_origin TEXT NOT NULL,
|
|
635
|
+
lifecycle_kind TEXT NOT NULL,
|
|
636
|
+
issued_at_ms INTEGER NOT NULL,
|
|
637
|
+
expires_at_ms INTEGER NOT NULL,
|
|
638
|
+
target_session_id TEXT,
|
|
639
|
+
consumed_at_ms INTEGER,
|
|
640
|
+
PRIMARY KEY (namespace, tenant_id, exchange_code_id),
|
|
641
|
+
UNIQUE (namespace, code_hash),
|
|
642
|
+
FOREIGN KEY (namespace, tenant_id, source_session_id)
|
|
643
|
+
REFERENCES authorization_sessions(namespace, tenant_id, session_id),
|
|
644
|
+
CHECK (lifecycle_kind IN ('issued', 'consumed')),
|
|
645
|
+
CHECK (expires_at_ms > issued_at_ms),
|
|
646
|
+
CHECK (
|
|
647
|
+
(lifecycle_kind = 'issued' AND target_session_id IS NULL AND consumed_at_ms IS NULL)
|
|
648
|
+
OR
|
|
649
|
+
(lifecycle_kind = 'consumed' AND target_session_id IS NOT NULL AND consumed_at_ms IS NOT NULL)
|
|
650
|
+
)
|
|
651
|
+
);
|
|
652
|
+
CREATE TABLE "identity_links" (
|
|
653
|
+
namespace TEXT NOT NULL,
|
|
654
|
+
org_id TEXT NOT NULL,
|
|
655
|
+
project_id TEXT NOT NULL,
|
|
656
|
+
env_id TEXT NOT NULL,
|
|
657
|
+
subject TEXT NOT NULL,
|
|
658
|
+
user_id TEXT NOT NULL,
|
|
659
|
+
record_json TEXT NOT NULL,
|
|
660
|
+
created_at_ms INTEGER NOT NULL,
|
|
661
|
+
updated_at_ms INTEGER NOT NULL,
|
|
662
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, subject),
|
|
663
|
+
CHECK (length(namespace) > 0),
|
|
664
|
+
CHECK (length(org_id) > 0),
|
|
665
|
+
CHECK (length(project_id) > 0),
|
|
666
|
+
CHECK (length(env_id) > 0),
|
|
667
|
+
CHECK (length(subject) > 0),
|
|
668
|
+
CHECK (length(user_id) > 0),
|
|
669
|
+
CHECK (json_valid(record_json)),
|
|
670
|
+
CHECK (created_at_ms > 0),
|
|
671
|
+
CHECK (updated_at_ms >= created_at_ms),
|
|
672
|
+
CHECK (COALESCE(json_extract(record_json, '$.version') = 'identity_subject_v1', 0)),
|
|
673
|
+
CHECK (COALESCE(json_extract(record_json, '$.subject') = subject, 0)),
|
|
674
|
+
CHECK (COALESCE(json_extract(record_json, '$.userId') = user_id, 0)),
|
|
675
|
+
CHECK (COALESCE(json_extract(record_json, '$.createdAtMs') = created_at_ms, 0)),
|
|
676
|
+
CHECK (COALESCE(json_extract(record_json, '$.updatedAtMs') = updated_at_ms, 0))
|
|
677
|
+
);
|
|
678
|
+
CREATE TABLE lane_cas_guard (
|
|
679
|
+
guard_id INTEGER PRIMARY KEY CHECK (guard_id = 1)
|
|
680
|
+
);
|
|
681
|
+
CREATE TABLE lane_effect_journal (
|
|
682
|
+
namespace TEXT NOT NULL,
|
|
683
|
+
org_id TEXT NOT NULL,
|
|
684
|
+
project_id TEXT NOT NULL,
|
|
685
|
+
env_id TEXT NOT NULL,
|
|
686
|
+
effect_id TEXT NOT NULL,
|
|
687
|
+
enrollment_id TEXT NOT NULL,
|
|
688
|
+
operation_id TEXT NOT NULL,
|
|
689
|
+
wallet_id TEXT NOT NULL,
|
|
690
|
+
wallet_key_id TEXT NOT NULL,
|
|
691
|
+
lane_id TEXT NOT NULL,
|
|
692
|
+
lane_share_epoch TEXT NOT NULL,
|
|
693
|
+
effect_kind TEXT NOT NULL,
|
|
694
|
+
request_digest_b64u TEXT NOT NULL,
|
|
695
|
+
status TEXT NOT NULL,
|
|
696
|
+
response_digest_b64u TEXT,
|
|
697
|
+
recorded_at_ms INTEGER NOT NULL,
|
|
698
|
+
confirmed_at_ms INTEGER,
|
|
699
|
+
version INTEGER NOT NULL,
|
|
700
|
+
command_digest_b64u TEXT NOT NULL,
|
|
701
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, effect_id),
|
|
702
|
+
UNIQUE (namespace, org_id, project_id, env_id, operation_id, effect_kind),
|
|
703
|
+
FOREIGN KEY (namespace, org_id, project_id, env_id, enrollment_id)
|
|
704
|
+
REFERENCES lane_enrollments(namespace, org_id, project_id, env_id, enrollment_id),
|
|
705
|
+
FOREIGN KEY (namespace, org_id, project_id, env_id, operation_id)
|
|
706
|
+
REFERENCES lane_protocol_operations(namespace, org_id, project_id, env_id, operation_id),
|
|
707
|
+
CHECK (effect_kind IN ('activate_server_material', 'retire_server_material', 'invalidate_holder_material')),
|
|
708
|
+
CHECK (status IN ('recorded', 'confirmed')),
|
|
709
|
+
CHECK (
|
|
710
|
+
(status = 'recorded' AND response_digest_b64u IS NULL AND confirmed_at_ms IS NULL)
|
|
711
|
+
OR (status = 'confirmed' AND response_digest_b64u IS NOT NULL AND confirmed_at_ms IS NOT NULL AND confirmed_at_ms >= recorded_at_ms)
|
|
712
|
+
),
|
|
713
|
+
CHECK (version > 0),
|
|
714
|
+
CHECK (recorded_at_ms >= 0)
|
|
715
|
+
);
|
|
716
|
+
CREATE TABLE lane_enrollments (
|
|
717
|
+
namespace TEXT NOT NULL,
|
|
718
|
+
org_id TEXT NOT NULL,
|
|
719
|
+
project_id TEXT NOT NULL,
|
|
720
|
+
env_id TEXT NOT NULL,
|
|
721
|
+
enrollment_id TEXT NOT NULL,
|
|
722
|
+
wallet_id TEXT NOT NULL,
|
|
723
|
+
manifest_digest_b64u TEXT NOT NULL,
|
|
724
|
+
manifest_json TEXT NOT NULL,
|
|
725
|
+
lifecycle_json TEXT NOT NULL,
|
|
726
|
+
version INTEGER NOT NULL,
|
|
727
|
+
command_digest_b64u TEXT NOT NULL,
|
|
728
|
+
revocation_fence_command_digest_b64u TEXT,
|
|
729
|
+
created_at_ms INTEGER NOT NULL,
|
|
730
|
+
updated_at_ms INTEGER NOT NULL,
|
|
731
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, enrollment_id),
|
|
732
|
+
UNIQUE (namespace, org_id, project_id, env_id, manifest_digest_b64u),
|
|
733
|
+
CHECK (length(enrollment_id) > 0),
|
|
734
|
+
CHECK (length(wallet_id) > 0),
|
|
735
|
+
CHECK (length(manifest_digest_b64u) > 0),
|
|
736
|
+
CHECK (json_valid(manifest_json)),
|
|
737
|
+
CHECK (json_valid(lifecycle_json)),
|
|
738
|
+
CHECK (version > 0),
|
|
739
|
+
CHECK (created_at_ms >= 0 AND updated_at_ms >= created_at_ms)
|
|
740
|
+
);
|
|
741
|
+
CREATE TABLE lane_locks (
|
|
742
|
+
namespace TEXT NOT NULL,
|
|
743
|
+
org_id TEXT NOT NULL,
|
|
744
|
+
project_id TEXT NOT NULL,
|
|
745
|
+
env_id TEXT NOT NULL,
|
|
746
|
+
lock_key TEXT NOT NULL,
|
|
747
|
+
lock_kind TEXT NOT NULL,
|
|
748
|
+
enrollment_id TEXT,
|
|
749
|
+
wallet_key_id TEXT,
|
|
750
|
+
lane_id TEXT,
|
|
751
|
+
lock_id TEXT NOT NULL,
|
|
752
|
+
expires_at_ms INTEGER NOT NULL,
|
|
753
|
+
acquired_at_ms INTEGER NOT NULL,
|
|
754
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, lock_key),
|
|
755
|
+
CHECK (lock_kind IN ('wallet_key', 'enrollment')),
|
|
756
|
+
CHECK (length(lock_id) > 0),
|
|
757
|
+
CHECK (expires_at_ms > acquired_at_ms),
|
|
758
|
+
CHECK ((lock_kind = 'wallet_key' AND wallet_key_id IS NOT NULL AND enrollment_id IS NULL AND lane_id IS NULL) OR
|
|
759
|
+
(lock_kind = 'enrollment' AND enrollment_id IS NOT NULL AND wallet_key_id IS NULL AND lane_id IS NULL))
|
|
760
|
+
);
|
|
761
|
+
CREATE TABLE lane_product_epochs (
|
|
762
|
+
namespace TEXT NOT NULL,
|
|
763
|
+
org_id TEXT NOT NULL,
|
|
764
|
+
project_id TEXT NOT NULL,
|
|
765
|
+
env_id TEXT NOT NULL,
|
|
766
|
+
wallet_id TEXT NOT NULL,
|
|
767
|
+
wallet_key_id TEXT NOT NULL,
|
|
768
|
+
lane_id TEXT NOT NULL,
|
|
769
|
+
lane_share_epoch TEXT NOT NULL,
|
|
770
|
+
enrollment_id TEXT NOT NULL,
|
|
771
|
+
operation_id TEXT NOT NULL,
|
|
772
|
+
target_material_activation_id TEXT NOT NULL,
|
|
773
|
+
material_activation_json TEXT NOT NULL,
|
|
774
|
+
holder_participant_json TEXT NOT NULL,
|
|
775
|
+
signing_worker_participant_json TEXT NOT NULL,
|
|
776
|
+
participant_set_binding_digest_b64u TEXT NOT NULL,
|
|
777
|
+
revocation_epoch INTEGER NOT NULL,
|
|
778
|
+
lane_kind TEXT NOT NULL,
|
|
779
|
+
key_family TEXT NOT NULL,
|
|
780
|
+
public_identity_digest_b64u TEXT NOT NULL,
|
|
781
|
+
state TEXT NOT NULL,
|
|
782
|
+
product_json TEXT NOT NULL,
|
|
783
|
+
version INTEGER NOT NULL DEFAULT 1,
|
|
784
|
+
command_digest_b64u TEXT NOT NULL,
|
|
785
|
+
created_at_ms INTEGER NOT NULL,
|
|
786
|
+
updated_at_ms INTEGER NOT NULL,
|
|
787
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, wallet_key_id, lane_id, lane_share_epoch),
|
|
788
|
+
UNIQUE (namespace, org_id, project_id, env_id, target_material_activation_id),
|
|
789
|
+
FOREIGN KEY (namespace, org_id, project_id, env_id, enrollment_id)
|
|
790
|
+
REFERENCES lane_enrollments(namespace, org_id, project_id, env_id, enrollment_id),
|
|
791
|
+
FOREIGN KEY (namespace, org_id, project_id, env_id, operation_id)
|
|
792
|
+
REFERENCES lane_protocol_operations(namespace, org_id, project_id, env_id, operation_id),
|
|
793
|
+
CHECK (json_valid(material_activation_json)),
|
|
794
|
+
CHECK (json_valid(holder_participant_json)),
|
|
795
|
+
CHECK (json_valid(signing_worker_participant_json)),
|
|
796
|
+
CHECK (length(participant_set_binding_digest_b64u) > 0),
|
|
797
|
+
CHECK (revocation_epoch >= 0),
|
|
798
|
+
CHECK (json_valid(product_json)),
|
|
799
|
+
CHECK (state IN ('pending_visibility', 'active', 'retired', 'revocation_pending', 'revoked')),
|
|
800
|
+
CHECK (lane_kind IN ('owner_passkey', 'owner_email_otp', 'linked_device', 'delegated_execution', 'recovery', 'break_glass')),
|
|
801
|
+
CHECK (length(command_digest_b64u) > 0),
|
|
802
|
+
CHECK (version > 0),
|
|
803
|
+
CHECK (key_family IN ('ed25519', 'ecdsa_secp256k1')),
|
|
804
|
+
CHECK (created_at_ms >= 0 AND updated_at_ms >= created_at_ms)
|
|
805
|
+
);
|
|
806
|
+
CREATE TABLE lane_protocol_operations (
|
|
807
|
+
namespace TEXT NOT NULL,
|
|
808
|
+
org_id TEXT NOT NULL,
|
|
809
|
+
project_id TEXT NOT NULL,
|
|
810
|
+
env_id TEXT NOT NULL,
|
|
811
|
+
operation_id TEXT NOT NULL,
|
|
812
|
+
enrollment_id TEXT NOT NULL,
|
|
813
|
+
wallet_id TEXT NOT NULL,
|
|
814
|
+
wallet_key_id TEXT NOT NULL,
|
|
815
|
+
source_lane_id TEXT NOT NULL,
|
|
816
|
+
source_lane_share_epoch TEXT NOT NULL,
|
|
817
|
+
source_revocation_epoch INTEGER NOT NULL,
|
|
818
|
+
target_lane_id TEXT NOT NULL,
|
|
819
|
+
target_lane_share_epoch TEXT NOT NULL,
|
|
820
|
+
target_material_activation_id TEXT NOT NULL,
|
|
821
|
+
key_family TEXT NOT NULL,
|
|
822
|
+
job_json TEXT NOT NULL,
|
|
823
|
+
lifecycle_json TEXT NOT NULL,
|
|
824
|
+
version INTEGER NOT NULL,
|
|
825
|
+
command_digest_b64u TEXT NOT NULL,
|
|
826
|
+
created_at_ms INTEGER NOT NULL,
|
|
827
|
+
updated_at_ms INTEGER NOT NULL,
|
|
828
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, operation_id),
|
|
829
|
+
UNIQUE (namespace, org_id, project_id, env_id, target_material_activation_id),
|
|
830
|
+
FOREIGN KEY (namespace, org_id, project_id, env_id, enrollment_id)
|
|
831
|
+
REFERENCES lane_enrollments(namespace, org_id, project_id, env_id, enrollment_id),
|
|
832
|
+
CHECK (source_revocation_epoch >= 0),
|
|
833
|
+
CHECK (key_family IN ('ed25519', 'ecdsa_secp256k1')),
|
|
834
|
+
CHECK (json_valid(job_json)),
|
|
835
|
+
CHECK (json_valid(lifecycle_json)),
|
|
836
|
+
CHECK (version > 0),
|
|
837
|
+
CHECK (created_at_ms >= 0 AND updated_at_ms >= created_at_ms)
|
|
838
|
+
);
|
|
839
|
+
CREATE TABLE lane_receipts (
|
|
840
|
+
namespace TEXT NOT NULL,
|
|
841
|
+
org_id TEXT NOT NULL,
|
|
842
|
+
project_id TEXT NOT NULL,
|
|
843
|
+
env_id TEXT NOT NULL,
|
|
844
|
+
receipt_id TEXT NOT NULL,
|
|
845
|
+
enrollment_id TEXT NOT NULL,
|
|
846
|
+
operation_id TEXT,
|
|
847
|
+
receipt_kind TEXT NOT NULL,
|
|
848
|
+
receipt_digest_b64u TEXT NOT NULL,
|
|
849
|
+
receipt_json TEXT NOT NULL,
|
|
850
|
+
created_at_ms INTEGER NOT NULL,
|
|
851
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, receipt_id),
|
|
852
|
+
UNIQUE (namespace, org_id, project_id, env_id, operation_id, receipt_kind),
|
|
853
|
+
FOREIGN KEY (namespace, org_id, project_id, env_id, enrollment_id)
|
|
854
|
+
REFERENCES lane_enrollments(namespace, org_id, project_id, env_id, enrollment_id),
|
|
855
|
+
FOREIGN KEY (namespace, org_id, project_id, env_id, operation_id)
|
|
856
|
+
REFERENCES lane_protocol_operations(namespace, org_id, project_id, env_id, operation_id),
|
|
857
|
+
CHECK (json_valid(receipt_json)),
|
|
858
|
+
CHECK (created_at_ms >= 0)
|
|
859
|
+
);
|
|
860
|
+
CREATE TABLE linked_device_owner_planning_snapshots (
|
|
861
|
+
namespace TEXT NOT NULL,
|
|
862
|
+
org_id TEXT NOT NULL,
|
|
863
|
+
project_id TEXT NOT NULL,
|
|
864
|
+
env_id TEXT NOT NULL,
|
|
865
|
+
link_session_id TEXT NOT NULL,
|
|
866
|
+
wallet_id TEXT NOT NULL,
|
|
867
|
+
owner_context_json TEXT NOT NULL,
|
|
868
|
+
payload_json TEXT NOT NULL,
|
|
869
|
+
policy_digest_b64u TEXT NOT NULL,
|
|
870
|
+
operation_id TEXT NOT NULL,
|
|
871
|
+
idempotency_key TEXT NOT NULL,
|
|
872
|
+
ordered_key_bindings_json TEXT NOT NULL,
|
|
873
|
+
protocol_versions_json TEXT NOT NULL,
|
|
874
|
+
expires_at_ms INTEGER NOT NULL,
|
|
875
|
+
source_children_json TEXT NOT NULL,
|
|
876
|
+
ordered_owner_source_lane_hints_json TEXT NOT NULL,
|
|
877
|
+
snapshot_json TEXT NOT NULL,
|
|
878
|
+
snapshot_digest_b64u TEXT NOT NULL,
|
|
879
|
+
created_at_ms INTEGER NOT NULL,
|
|
880
|
+
updated_at_ms INTEGER NOT NULL,
|
|
881
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, link_session_id),
|
|
882
|
+
CHECK (length(link_session_id) > 0),
|
|
883
|
+
CHECK (length(wallet_id) > 0),
|
|
884
|
+
CHECK (length(policy_digest_b64u) > 0),
|
|
885
|
+
CHECK (length(operation_id) > 0),
|
|
886
|
+
CHECK (length(idempotency_key) > 0),
|
|
887
|
+
CHECK (json_valid(owner_context_json)),
|
|
888
|
+
CHECK (json_valid(payload_json)),
|
|
889
|
+
CHECK (json_valid(ordered_key_bindings_json)),
|
|
890
|
+
CHECK (json_valid(protocol_versions_json)),
|
|
891
|
+
CHECK (json_valid(source_children_json)),
|
|
892
|
+
CHECK (json_valid(ordered_owner_source_lane_hints_json)),
|
|
893
|
+
CHECK (json_valid(snapshot_json)),
|
|
894
|
+
CHECK (expires_at_ms > 0),
|
|
895
|
+
CHECK (created_at_ms > 0 AND updated_at_ms >= created_at_ms)
|
|
896
|
+
);
|
|
897
|
+
CREATE TABLE linked_device_provisioning_records (
|
|
898
|
+
namespace TEXT NOT NULL,
|
|
899
|
+
org_id TEXT NOT NULL,
|
|
900
|
+
project_id TEXT NOT NULL,
|
|
901
|
+
env_id TEXT NOT NULL,
|
|
902
|
+
link_session_id TEXT NOT NULL,
|
|
903
|
+
enrollment_id TEXT NOT NULL,
|
|
904
|
+
wallet_id TEXT NOT NULL,
|
|
905
|
+
device_id TEXT NOT NULL,
|
|
906
|
+
manifest_digest_b64u TEXT NOT NULL,
|
|
907
|
+
deliveries_json TEXT NOT NULL,
|
|
908
|
+
aggregate_receipt_json TEXT,
|
|
909
|
+
created_at_ms INTEGER NOT NULL,
|
|
910
|
+
updated_at_ms INTEGER NOT NULL,
|
|
911
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, link_session_id),
|
|
912
|
+
FOREIGN KEY (namespace, org_id, project_id, env_id, link_session_id)
|
|
913
|
+
REFERENCES linked_device_sessions(namespace, org_id, project_id, env_id, link_session_id),
|
|
914
|
+
CHECK (length(enrollment_id) > 0),
|
|
915
|
+
CHECK (length(wallet_id) > 0),
|
|
916
|
+
CHECK (length(device_id) > 0),
|
|
917
|
+
CHECK (length(manifest_digest_b64u) > 0),
|
|
918
|
+
CHECK (json_valid(deliveries_json)),
|
|
919
|
+
CHECK (aggregate_receipt_json IS NULL OR json_valid(aggregate_receipt_json))
|
|
920
|
+
);
|
|
921
|
+
CREATE TABLE linked_device_request_proof_nonces (
|
|
922
|
+
namespace TEXT NOT NULL,
|
|
923
|
+
org_id TEXT NOT NULL,
|
|
924
|
+
project_id TEXT NOT NULL,
|
|
925
|
+
env_id TEXT NOT NULL,
|
|
926
|
+
link_session_id TEXT NOT NULL,
|
|
927
|
+
request_nonce_b64u TEXT NOT NULL,
|
|
928
|
+
proof_digest_b64u TEXT NOT NULL,
|
|
929
|
+
issued_at_ms INTEGER NOT NULL,
|
|
930
|
+
expires_at_ms INTEGER NOT NULL,
|
|
931
|
+
consumed_at_ms INTEGER NOT NULL,
|
|
932
|
+
PRIMARY KEY (
|
|
933
|
+
namespace,
|
|
934
|
+
org_id,
|
|
935
|
+
project_id,
|
|
936
|
+
env_id,
|
|
937
|
+
link_session_id,
|
|
938
|
+
request_nonce_b64u
|
|
939
|
+
),
|
|
940
|
+
CHECK (length(link_session_id) > 0),
|
|
941
|
+
CHECK (length(request_nonce_b64u) > 0),
|
|
942
|
+
CHECK (length(proof_digest_b64u) > 0),
|
|
943
|
+
CHECK (issued_at_ms > 0),
|
|
944
|
+
CHECK (expires_at_ms > issued_at_ms),
|
|
945
|
+
CHECK (consumed_at_ms >= issued_at_ms),
|
|
946
|
+
CHECK (consumed_at_ms < expires_at_ms)
|
|
947
|
+
);
|
|
948
|
+
CREATE TABLE linked_device_session_transcripts (
|
|
949
|
+
namespace TEXT NOT NULL,
|
|
950
|
+
org_id TEXT NOT NULL,
|
|
951
|
+
project_id TEXT NOT NULL,
|
|
952
|
+
env_id TEXT NOT NULL,
|
|
953
|
+
link_session_id TEXT NOT NULL,
|
|
954
|
+
transcript_kind TEXT NOT NULL,
|
|
955
|
+
digest_b64u TEXT NOT NULL,
|
|
956
|
+
transcript_json TEXT NOT NULL,
|
|
957
|
+
created_at_ms INTEGER NOT NULL,
|
|
958
|
+
PRIMARY KEY (
|
|
959
|
+
namespace,
|
|
960
|
+
org_id,
|
|
961
|
+
project_id,
|
|
962
|
+
env_id,
|
|
963
|
+
link_session_id,
|
|
964
|
+
transcript_kind
|
|
965
|
+
),
|
|
966
|
+
FOREIGN KEY (namespace, org_id, project_id, env_id, link_session_id)
|
|
967
|
+
REFERENCES linked_device_sessions(namespace, org_id, project_id, env_id, link_session_id),
|
|
968
|
+
CHECK (transcript_kind IN ('claim', 'approval')),
|
|
969
|
+
CHECK (length(digest_b64u) > 0),
|
|
970
|
+
CHECK (json_valid(transcript_json)),
|
|
971
|
+
CHECK (created_at_ms > 0)
|
|
972
|
+
);
|
|
973
|
+
CREATE TABLE linked_device_sessions (
|
|
974
|
+
namespace TEXT NOT NULL,
|
|
975
|
+
org_id TEXT NOT NULL,
|
|
976
|
+
project_id TEXT NOT NULL,
|
|
977
|
+
env_id TEXT NOT NULL,
|
|
978
|
+
link_session_id TEXT NOT NULL,
|
|
979
|
+
link_public_key_b64u TEXT NOT NULL,
|
|
980
|
+
device_public_key_b64u TEXT NOT NULL,
|
|
981
|
+
state TEXT NOT NULL,
|
|
982
|
+
record_json TEXT NOT NULL,
|
|
983
|
+
revision INTEGER NOT NULL,
|
|
984
|
+
expires_at_ms INTEGER NOT NULL,
|
|
985
|
+
claim_expires_at_ms INTEGER,
|
|
986
|
+
claim_digest_b64u TEXT,
|
|
987
|
+
approval_digest_b64u TEXT,
|
|
988
|
+
created_at_ms INTEGER NOT NULL,
|
|
989
|
+
updated_at_ms INTEGER NOT NULL,
|
|
990
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, link_session_id),
|
|
991
|
+
CHECK (length(link_session_id) > 0),
|
|
992
|
+
CHECK (length(link_public_key_b64u) > 0),
|
|
993
|
+
CHECK (length(device_public_key_b64u) > 0),
|
|
994
|
+
CHECK (state IN (
|
|
995
|
+
'displaying_qr',
|
|
996
|
+
'claimed_by_owner',
|
|
997
|
+
'awaiting_target_passkey',
|
|
998
|
+
'provisioning',
|
|
999
|
+
'active',
|
|
1000
|
+
'expired_unclaimed',
|
|
1001
|
+
'expired_claimed',
|
|
1002
|
+
'cancelled_unclaimed',
|
|
1003
|
+
'cancelled_claimed_precommit',
|
|
1004
|
+
'committed_completion_required'
|
|
1005
|
+
)),
|
|
1006
|
+
CHECK (json_valid(record_json)),
|
|
1007
|
+
CHECK (revision > 0),
|
|
1008
|
+
CHECK (expires_at_ms > 0),
|
|
1009
|
+
CHECK (claim_expires_at_ms IS NULL OR claim_expires_at_ms > 0),
|
|
1010
|
+
CHECK (claim_digest_b64u IS NULL OR length(claim_digest_b64u) > 0),
|
|
1011
|
+
CHECK (approval_digest_b64u IS NULL OR length(approval_digest_b64u) > 0),
|
|
1012
|
+
CHECK (created_at_ms > 0 AND updated_at_ms >= created_at_ms)
|
|
1013
|
+
);
|
|
1014
|
+
CREATE TABLE linked_device_source_handoffs (
|
|
1015
|
+
namespace TEXT NOT NULL,
|
|
1016
|
+
org_id TEXT NOT NULL,
|
|
1017
|
+
project_id TEXT NOT NULL,
|
|
1018
|
+
env_id TEXT NOT NULL,
|
|
1019
|
+
link_session_id TEXT NOT NULL,
|
|
1020
|
+
enrollment_id TEXT NOT NULL,
|
|
1021
|
+
wallet_id TEXT NOT NULL,
|
|
1022
|
+
device_id TEXT NOT NULL,
|
|
1023
|
+
target_ready_json TEXT NOT NULL,
|
|
1024
|
+
target_ready_digest_b64u TEXT NOT NULL,
|
|
1025
|
+
manifest_digest_b64u TEXT NOT NULL,
|
|
1026
|
+
deliveries_json TEXT,
|
|
1027
|
+
deliveries_digest_b64u TEXT,
|
|
1028
|
+
created_at_ms INTEGER NOT NULL,
|
|
1029
|
+
updated_at_ms INTEGER NOT NULL,
|
|
1030
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, link_session_id),
|
|
1031
|
+
FOREIGN KEY (namespace, org_id, project_id, env_id, link_session_id)
|
|
1032
|
+
REFERENCES linked_device_sessions(namespace, org_id, project_id, env_id, link_session_id),
|
|
1033
|
+
CHECK (length(enrollment_id) > 0),
|
|
1034
|
+
CHECK (length(wallet_id) > 0),
|
|
1035
|
+
CHECK (length(device_id) > 0),
|
|
1036
|
+
CHECK (length(target_ready_digest_b64u) > 0),
|
|
1037
|
+
CHECK (length(manifest_digest_b64u) > 0),
|
|
1038
|
+
CHECK (json_valid(target_ready_json)),
|
|
1039
|
+
CHECK (
|
|
1040
|
+
(deliveries_json IS NULL AND deliveries_digest_b64u IS NULL)
|
|
1041
|
+
OR
|
|
1042
|
+
(deliveries_json IS NOT NULL AND json_valid(deliveries_json) AND length(deliveries_digest_b64u) > 0)
|
|
1043
|
+
)
|
|
1044
|
+
);
|
|
1045
|
+
CREATE TABLE linked_device_target_commit_reservations (
|
|
1046
|
+
namespace TEXT NOT NULL,
|
|
1047
|
+
org_id TEXT NOT NULL,
|
|
1048
|
+
project_id TEXT NOT NULL,
|
|
1049
|
+
env_id TEXT NOT NULL,
|
|
1050
|
+
link_session_id TEXT NOT NULL,
|
|
1051
|
+
registration_digest_b64u TEXT NOT NULL,
|
|
1052
|
+
state TEXT NOT NULL,
|
|
1053
|
+
reserved_at_ms INTEGER NOT NULL,
|
|
1054
|
+
committed_at_ms INTEGER,
|
|
1055
|
+
key_manifest_digest_b64u TEXT,
|
|
1056
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, link_session_id),
|
|
1057
|
+
FOREIGN KEY (namespace, org_id, project_id, env_id, link_session_id)
|
|
1058
|
+
REFERENCES linked_device_sessions(namespace, org_id, project_id, env_id, link_session_id),
|
|
1059
|
+
CHECK (length(registration_digest_b64u) > 0),
|
|
1060
|
+
CHECK (state IN ('reserved', 'committed')),
|
|
1061
|
+
CHECK (
|
|
1062
|
+
(state = 'reserved' AND committed_at_ms IS NULL AND key_manifest_digest_b64u IS NULL)
|
|
1063
|
+
OR
|
|
1064
|
+
(state = 'committed' AND committed_at_ms IS NOT NULL AND length(key_manifest_digest_b64u) > 0)
|
|
1065
|
+
)
|
|
1066
|
+
);
|
|
1067
|
+
CREATE TABLE linked_device_target_credentials (
|
|
1068
|
+
namespace TEXT NOT NULL,
|
|
1069
|
+
org_id TEXT NOT NULL,
|
|
1070
|
+
project_id TEXT NOT NULL,
|
|
1071
|
+
env_id TEXT NOT NULL,
|
|
1072
|
+
link_session_id TEXT NOT NULL,
|
|
1073
|
+
wallet_id TEXT NOT NULL,
|
|
1074
|
+
enrollment_id TEXT NOT NULL,
|
|
1075
|
+
device_id TEXT NOT NULL,
|
|
1076
|
+
state TEXT NOT NULL,
|
|
1077
|
+
preparation_digest_b64u TEXT NOT NULL,
|
|
1078
|
+
preparation_json TEXT NOT NULL,
|
|
1079
|
+
registration_json TEXT,
|
|
1080
|
+
credential_id_b64u TEXT,
|
|
1081
|
+
credential_public_key_b64u TEXT,
|
|
1082
|
+
credential_counter INTEGER,
|
|
1083
|
+
key_manifest_digest_b64u TEXT,
|
|
1084
|
+
prepared_at_ms INTEGER NOT NULL,
|
|
1085
|
+
expires_at_ms INTEGER NOT NULL,
|
|
1086
|
+
registered_at_ms INTEGER,
|
|
1087
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, link_session_id),
|
|
1088
|
+
FOREIGN KEY (namespace, org_id, project_id, env_id, link_session_id)
|
|
1089
|
+
REFERENCES linked_device_sessions(namespace, org_id, project_id, env_id, link_session_id),
|
|
1090
|
+
CHECK (length(wallet_id) > 0),
|
|
1091
|
+
CHECK (length(enrollment_id) > 0),
|
|
1092
|
+
CHECK (length(device_id) > 0),
|
|
1093
|
+
CHECK (state IN ('prepared', 'registered')),
|
|
1094
|
+
CHECK (length(preparation_digest_b64u) > 0),
|
|
1095
|
+
CHECK (json_valid(preparation_json)),
|
|
1096
|
+
CHECK (expires_at_ms > prepared_at_ms),
|
|
1097
|
+
CHECK (
|
|
1098
|
+
(state = 'prepared'
|
|
1099
|
+
AND registration_json IS NULL
|
|
1100
|
+
AND credential_id_b64u IS NULL
|
|
1101
|
+
AND credential_public_key_b64u IS NULL
|
|
1102
|
+
AND credential_counter IS NULL
|
|
1103
|
+
AND key_manifest_digest_b64u IS NULL
|
|
1104
|
+
AND registered_at_ms IS NULL)
|
|
1105
|
+
OR
|
|
1106
|
+
(state = 'registered'
|
|
1107
|
+
AND json_valid(registration_json)
|
|
1108
|
+
AND length(credential_id_b64u) > 0
|
|
1109
|
+
AND length(credential_public_key_b64u) > 0
|
|
1110
|
+
AND credential_counter >= 0
|
|
1111
|
+
AND length(key_manifest_digest_b64u) > 0
|
|
1112
|
+
AND registered_at_ms > 0)
|
|
1113
|
+
)
|
|
1114
|
+
);
|
|
1115
|
+
CREATE TABLE linked_device_target_deployment_descriptors (
|
|
1116
|
+
namespace TEXT NOT NULL,
|
|
1117
|
+
org_id TEXT NOT NULL,
|
|
1118
|
+
project_id TEXT NOT NULL,
|
|
1119
|
+
env_id TEXT NOT NULL,
|
|
1120
|
+
link_session_id TEXT NOT NULL,
|
|
1121
|
+
target_preparation_digest_b64u TEXT NOT NULL,
|
|
1122
|
+
registration_digest_b64u TEXT NOT NULL,
|
|
1123
|
+
child_index INTEGER NOT NULL,
|
|
1124
|
+
request_digest_b64u TEXT NOT NULL,
|
|
1125
|
+
descriptor_digest_b64u TEXT NOT NULL,
|
|
1126
|
+
descriptor_json TEXT NOT NULL,
|
|
1127
|
+
issued_at_ms INTEGER NOT NULL,
|
|
1128
|
+
expires_at_ms INTEGER NOT NULL,
|
|
1129
|
+
PRIMARY KEY (
|
|
1130
|
+
namespace,
|
|
1131
|
+
org_id,
|
|
1132
|
+
project_id,
|
|
1133
|
+
env_id,
|
|
1134
|
+
link_session_id,
|
|
1135
|
+
target_preparation_digest_b64u,
|
|
1136
|
+
registration_digest_b64u,
|
|
1137
|
+
child_index
|
|
1138
|
+
),
|
|
1139
|
+
CHECK (length(target_preparation_digest_b64u) > 0),
|
|
1140
|
+
CHECK (length(registration_digest_b64u) > 0),
|
|
1141
|
+
CHECK (child_index >= 0),
|
|
1142
|
+
CHECK (length(request_digest_b64u) > 0),
|
|
1143
|
+
CHECK (length(descriptor_digest_b64u) > 0),
|
|
1144
|
+
CHECK (json_valid(descriptor_json)),
|
|
1145
|
+
CHECK (issued_at_ms > 0 AND expires_at_ms > issued_at_ms)
|
|
1146
|
+
);
|
|
1147
|
+
CREATE TABLE linked_device_wallet_session_authorizations (
|
|
1148
|
+
namespace TEXT NOT NULL,
|
|
1149
|
+
org_id TEXT NOT NULL,
|
|
1150
|
+
project_id TEXT NOT NULL,
|
|
1151
|
+
env_id TEXT NOT NULL,
|
|
1152
|
+
tenant_id TEXT NOT NULL,
|
|
1153
|
+
authorization_id TEXT NOT NULL,
|
|
1154
|
+
principal_id TEXT NOT NULL,
|
|
1155
|
+
wallet_id TEXT NOT NULL,
|
|
1156
|
+
enrollment_id TEXT NOT NULL,
|
|
1157
|
+
device_id TEXT NOT NULL,
|
|
1158
|
+
wallet_session_id TEXT NOT NULL,
|
|
1159
|
+
quota_id TEXT NOT NULL,
|
|
1160
|
+
key_manifest_digest_b64u TEXT NOT NULL,
|
|
1161
|
+
permission_json TEXT NOT NULL,
|
|
1162
|
+
revocation_epoch INTEGER NOT NULL,
|
|
1163
|
+
lifecycle_kind TEXT NOT NULL,
|
|
1164
|
+
issued_at_ms INTEGER NOT NULL,
|
|
1165
|
+
expires_at_ms INTEGER NOT NULL,
|
|
1166
|
+
revoked_at_ms INTEGER,
|
|
1167
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, tenant_id, authorization_id),
|
|
1168
|
+
UNIQUE (namespace, org_id, project_id, env_id, tenant_id, wallet_session_id),
|
|
1169
|
+
UNIQUE (namespace, org_id, project_id, env_id, tenant_id, quota_id),
|
|
1170
|
+
CHECK (length(authorization_id) > 0),
|
|
1171
|
+
CHECK (length(principal_id) > 0),
|
|
1172
|
+
CHECK (length(wallet_id) > 0),
|
|
1173
|
+
CHECK (length(enrollment_id) > 0),
|
|
1174
|
+
CHECK (length(device_id) > 0),
|
|
1175
|
+
CHECK (length(wallet_session_id) > 0),
|
|
1176
|
+
CHECK (length(quota_id) > 0),
|
|
1177
|
+
CHECK (length(key_manifest_digest_b64u) > 0),
|
|
1178
|
+
CHECK (json_valid(permission_json)),
|
|
1179
|
+
CHECK (revocation_epoch >= 0),
|
|
1180
|
+
CHECK (lifecycle_kind IN ('active', 'revoked')),
|
|
1181
|
+
CHECK (issued_at_ms > 0 AND expires_at_ms > issued_at_ms),
|
|
1182
|
+
CHECK (
|
|
1183
|
+
(lifecycle_kind = 'active' AND revoked_at_ms IS NULL)
|
|
1184
|
+
OR (lifecycle_kind = 'revoked' AND revoked_at_ms IS NOT NULL AND revoked_at_ms >= issued_at_ms)
|
|
1185
|
+
)
|
|
1186
|
+
);
|
|
1187
|
+
CREATE TABLE linked_device_wallet_session_quotas (
|
|
1188
|
+
namespace TEXT NOT NULL,
|
|
1189
|
+
org_id TEXT NOT NULL,
|
|
1190
|
+
project_id TEXT NOT NULL,
|
|
1191
|
+
env_id TEXT NOT NULL,
|
|
1192
|
+
tenant_id TEXT NOT NULL,
|
|
1193
|
+
quota_id TEXT NOT NULL,
|
|
1194
|
+
authorization_id TEXT NOT NULL,
|
|
1195
|
+
wallet_session_id TEXT NOT NULL,
|
|
1196
|
+
principal_id TEXT NOT NULL,
|
|
1197
|
+
remaining_uses INTEGER NOT NULL,
|
|
1198
|
+
lifecycle_kind TEXT NOT NULL,
|
|
1199
|
+
expires_at_ms INTEGER NOT NULL,
|
|
1200
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, tenant_id, quota_id),
|
|
1201
|
+
UNIQUE (namespace, org_id, project_id, env_id, tenant_id, wallet_session_id),
|
|
1202
|
+
FOREIGN KEY (
|
|
1203
|
+
namespace, org_id, project_id, env_id, tenant_id, authorization_id
|
|
1204
|
+
) REFERENCES linked_device_wallet_session_authorizations(
|
|
1205
|
+
namespace, org_id, project_id, env_id, tenant_id, authorization_id
|
|
1206
|
+
),
|
|
1207
|
+
CHECK (length(quota_id) > 0),
|
|
1208
|
+
CHECK (length(authorization_id) > 0),
|
|
1209
|
+
CHECK (length(wallet_session_id) > 0),
|
|
1210
|
+
CHECK (length(principal_id) > 0),
|
|
1211
|
+
CHECK (remaining_uses >= 0),
|
|
1212
|
+
CHECK (lifecycle_kind IN ('active', 'exhausted', 'revoked')),
|
|
1213
|
+
CHECK (
|
|
1214
|
+
(remaining_uses > 0 AND lifecycle_kind = 'active')
|
|
1215
|
+
OR (remaining_uses = 0 AND lifecycle_kind IN ('exhausted', 'revoked'))
|
|
1216
|
+
),
|
|
1217
|
+
CHECK (expires_at_ms > 0)
|
|
1218
|
+
);
|
|
1219
|
+
CREATE TABLE near_public_keys (
|
|
1220
|
+
namespace TEXT NOT NULL,
|
|
1221
|
+
org_id TEXT NOT NULL,
|
|
1222
|
+
project_id TEXT NOT NULL,
|
|
1223
|
+
env_id TEXT NOT NULL,
|
|
1224
|
+
user_id TEXT NOT NULL,
|
|
1225
|
+
public_key TEXT NOT NULL,
|
|
1226
|
+
kind TEXT NOT NULL,
|
|
1227
|
+
signer_slot INTEGER,
|
|
1228
|
+
record_json TEXT NOT NULL,
|
|
1229
|
+
created_at_ms INTEGER NOT NULL,
|
|
1230
|
+
updated_at_ms INTEGER NOT NULL,
|
|
1231
|
+
removed_at_ms INTEGER,
|
|
1232
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, user_id, public_key),
|
|
1233
|
+
CHECK (length(user_id) > 0),
|
|
1234
|
+
CHECK (length(public_key) > 0),
|
|
1235
|
+
CHECK (kind IN ('threshold', 'local', 'backup', 'ephemeral')),
|
|
1236
|
+
CHECK (signer_slot IS NULL OR signer_slot >= 1),
|
|
1237
|
+
CHECK (json_valid(record_json)),
|
|
1238
|
+
CHECK (created_at_ms > 0),
|
|
1239
|
+
CHECK (updated_at_ms > 0),
|
|
1240
|
+
CHECK (removed_at_ms IS NULL OR removed_at_ms > 0)
|
|
1241
|
+
);
|
|
1242
|
+
CREATE TABLE "recovery_executions" (
|
|
1243
|
+
namespace TEXT NOT NULL,
|
|
1244
|
+
org_id TEXT NOT NULL,
|
|
1245
|
+
project_id TEXT NOT NULL,
|
|
1246
|
+
env_id TEXT NOT NULL,
|
|
1247
|
+
session_id TEXT NOT NULL,
|
|
1248
|
+
chain_id_key TEXT NOT NULL,
|
|
1249
|
+
account_address TEXT NOT NULL,
|
|
1250
|
+
action TEXT NOT NULL,
|
|
1251
|
+
status TEXT NOT NULL,
|
|
1252
|
+
record_json TEXT NOT NULL,
|
|
1253
|
+
created_at_ms INTEGER NOT NULL,
|
|
1254
|
+
updated_at_ms INTEGER NOT NULL,
|
|
1255
|
+
PRIMARY KEY (
|
|
1256
|
+
namespace,
|
|
1257
|
+
org_id,
|
|
1258
|
+
project_id,
|
|
1259
|
+
env_id,
|
|
1260
|
+
session_id,
|
|
1261
|
+
chain_id_key,
|
|
1262
|
+
account_address,
|
|
1263
|
+
action
|
|
1264
|
+
),
|
|
1265
|
+
CHECK (length(namespace) > 0),
|
|
1266
|
+
CHECK (length(org_id) > 0),
|
|
1267
|
+
CHECK (length(project_id) > 0),
|
|
1268
|
+
CHECK (length(env_id) > 0),
|
|
1269
|
+
CHECK (length(session_id) > 0),
|
|
1270
|
+
CHECK (length(chain_id_key) > 0),
|
|
1271
|
+
CHECK (length(account_address) > 0),
|
|
1272
|
+
CHECK (length(action) > 0),
|
|
1273
|
+
CHECK (status IN ('pending', 'submitted', 'confirmed', 'failed', 'skipped')),
|
|
1274
|
+
CHECK (json_valid(record_json)),
|
|
1275
|
+
CHECK (created_at_ms > 0),
|
|
1276
|
+
CHECK (updated_at_ms >= created_at_ms),
|
|
1277
|
+
CHECK (COALESCE(json_extract(record_json, '$.version') = 'recovery_execution_v1', 0)),
|
|
1278
|
+
CHECK (COALESCE(json_extract(record_json, '$.sessionId') = session_id, 0)),
|
|
1279
|
+
CHECK (COALESCE(json_extract(record_json, '$.chainIdKey') = chain_id_key, 0)),
|
|
1280
|
+
CHECK (COALESCE(json_extract(record_json, '$.accountAddress') = account_address, 0)),
|
|
1281
|
+
CHECK (COALESCE(json_extract(record_json, '$.action') = action, 0)),
|
|
1282
|
+
CHECK (COALESCE(json_extract(record_json, '$.status') = status, 0)),
|
|
1283
|
+
CHECK (COALESCE(json_extract(record_json, '$.createdAtMs') = created_at_ms, 0)),
|
|
1284
|
+
CHECK (COALESCE(json_extract(record_json, '$.updatedAtMs') = updated_at_ms, 0))
|
|
1285
|
+
);
|
|
1286
|
+
CREATE TABLE "recovery_sessions" (
|
|
1287
|
+
namespace TEXT NOT NULL,
|
|
1288
|
+
org_id TEXT NOT NULL,
|
|
1289
|
+
project_id TEXT NOT NULL,
|
|
1290
|
+
env_id TEXT NOT NULL,
|
|
1291
|
+
session_id TEXT NOT NULL,
|
|
1292
|
+
near_account_id TEXT NOT NULL,
|
|
1293
|
+
record_json TEXT NOT NULL,
|
|
1294
|
+
expires_at_ms INTEGER NOT NULL,
|
|
1295
|
+
created_at_ms INTEGER NOT NULL,
|
|
1296
|
+
updated_at_ms INTEGER NOT NULL,
|
|
1297
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, session_id),
|
|
1298
|
+
CHECK (length(namespace) > 0),
|
|
1299
|
+
CHECK (length(org_id) > 0),
|
|
1300
|
+
CHECK (length(project_id) > 0),
|
|
1301
|
+
CHECK (length(env_id) > 0),
|
|
1302
|
+
CHECK (length(session_id) > 0),
|
|
1303
|
+
CHECK (length(near_account_id) > 0),
|
|
1304
|
+
CHECK (json_valid(record_json)),
|
|
1305
|
+
CHECK (expires_at_ms > 0),
|
|
1306
|
+
CHECK (created_at_ms > 0),
|
|
1307
|
+
CHECK (updated_at_ms >= created_at_ms),
|
|
1308
|
+
CHECK (expires_at_ms > created_at_ms),
|
|
1309
|
+
CHECK (COALESCE(json_extract(record_json, '$.version') = 'recovery_session_v1', 0)),
|
|
1310
|
+
CHECK (COALESCE(json_extract(record_json, '$.sessionId') = session_id, 0)),
|
|
1311
|
+
CHECK (COALESCE(json_extract(record_json, '$.nearAccountId') = near_account_id, 0)),
|
|
1312
|
+
CHECK (
|
|
1313
|
+
COALESCE(
|
|
1314
|
+
json_extract(record_json, '$.status') IN (
|
|
1315
|
+
'prepared',
|
|
1316
|
+
'verified',
|
|
1317
|
+
'near_recovered',
|
|
1318
|
+
'evm_recovering',
|
|
1319
|
+
'completed',
|
|
1320
|
+
'failed',
|
|
1321
|
+
'cancelled'
|
|
1322
|
+
),
|
|
1323
|
+
0
|
|
1324
|
+
)
|
|
1325
|
+
),
|
|
1326
|
+
CHECK (COALESCE(json_extract(record_json, '$.createdAtMs') = created_at_ms, 0)),
|
|
1327
|
+
CHECK (COALESCE(json_extract(record_json, '$.updatedAtMs') = updated_at_ms, 0)),
|
|
1328
|
+
CHECK (COALESCE(json_extract(record_json, '$.expiresAtMs') = expires_at_ms, 0))
|
|
1329
|
+
);
|
|
1330
|
+
CREATE TABLE registration_ceremony_cas_guard (
|
|
1331
|
+
guard_id INTEGER PRIMARY KEY CHECK (guard_id = 1)
|
|
1332
|
+
);
|
|
1333
|
+
CREATE TABLE registration_ceremony_records (
|
|
1334
|
+
namespace TEXT NOT NULL,
|
|
1335
|
+
org_id TEXT NOT NULL,
|
|
1336
|
+
project_id TEXT NOT NULL,
|
|
1337
|
+
env_id TEXT NOT NULL,
|
|
1338
|
+
record_scope TEXT NOT NULL,
|
|
1339
|
+
record_id TEXT NOT NULL,
|
|
1340
|
+
version INTEGER NOT NULL,
|
|
1341
|
+
record_json TEXT NOT NULL,
|
|
1342
|
+
expires_at_ms INTEGER NOT NULL,
|
|
1343
|
+
created_at_ms INTEGER NOT NULL DEFAULT (unixepoch() * 1000),
|
|
1344
|
+
updated_at_ms INTEGER NOT NULL DEFAULT (unixepoch() * 1000),
|
|
1345
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, record_scope, record_id),
|
|
1346
|
+
CHECK (version > 0),
|
|
1347
|
+
CHECK (expires_at_ms > 0),
|
|
1348
|
+
CHECK (json_valid(record_json))
|
|
1349
|
+
);
|
|
1350
|
+
CREATE TABLE reusable_wallet_sessions (
|
|
1351
|
+
namespace TEXT NOT NULL,
|
|
1352
|
+
tenant_id TEXT NOT NULL,
|
|
1353
|
+
wallet_session_id TEXT NOT NULL,
|
|
1354
|
+
principal_id TEXT NOT NULL,
|
|
1355
|
+
wallet_id TEXT NOT NULL,
|
|
1356
|
+
authority_digest TEXT NOT NULL,
|
|
1357
|
+
mint_id TEXT NOT NULL,
|
|
1358
|
+
quota_id TEXT NOT NULL,
|
|
1359
|
+
lifecycle_kind TEXT NOT NULL,
|
|
1360
|
+
created_at_ms INTEGER NOT NULL,
|
|
1361
|
+
expires_at_ms INTEGER NOT NULL, authorization_id TEXT,
|
|
1362
|
+
PRIMARY KEY (namespace, tenant_id, wallet_session_id),
|
|
1363
|
+
UNIQUE (namespace, tenant_id, quota_id),
|
|
1364
|
+
FOREIGN KEY (namespace, tenant_id, quota_id)
|
|
1365
|
+
REFERENCES authorization_wallet_session_quotas(namespace, tenant_id, quota_id),
|
|
1366
|
+
UNIQUE (namespace, tenant_id, mint_id),
|
|
1367
|
+
CHECK (lifecycle_kind IN ('active', 'superseded')),
|
|
1368
|
+
CHECK (expires_at_ms > created_at_ms)
|
|
1369
|
+
);
|
|
1370
|
+
CREATE TABLE router_ab_normal_signing_admission_records (
|
|
1371
|
+
namespace TEXT NOT NULL,
|
|
1372
|
+
org_id TEXT NOT NULL,
|
|
1373
|
+
project_id TEXT NOT NULL,
|
|
1374
|
+
env_id TEXT NOT NULL,
|
|
1375
|
+
signing_root_version TEXT NOT NULL,
|
|
1376
|
+
record_kind TEXT NOT NULL,
|
|
1377
|
+
record_key TEXT NOT NULL,
|
|
1378
|
+
decision TEXT,
|
|
1379
|
+
retry_after_ms INTEGER,
|
|
1380
|
+
request_id TEXT,
|
|
1381
|
+
lifecycle_id TEXT,
|
|
1382
|
+
expires_at_ms INTEGER,
|
|
1383
|
+
updated_at_ms INTEGER NOT NULL,
|
|
1384
|
+
PRIMARY KEY (
|
|
1385
|
+
namespace,
|
|
1386
|
+
org_id,
|
|
1387
|
+
project_id,
|
|
1388
|
+
env_id,
|
|
1389
|
+
signing_root_version,
|
|
1390
|
+
record_kind,
|
|
1391
|
+
record_key
|
|
1392
|
+
),
|
|
1393
|
+
CHECK (record_kind IN ('project_policy', 'abuse', 'quota')),
|
|
1394
|
+
CHECK (updated_at_ms >= 0),
|
|
1395
|
+
CHECK (
|
|
1396
|
+
(record_kind = 'project_policy'
|
|
1397
|
+
AND decision IN ('allowed', 'rejected')
|
|
1398
|
+
AND request_id IS NULL
|
|
1399
|
+
AND lifecycle_id IS NULL
|
|
1400
|
+
AND expires_at_ms IS NULL)
|
|
1401
|
+
OR
|
|
1402
|
+
(record_kind = 'abuse'
|
|
1403
|
+
AND decision IN ('allowed', 'rate_limited', 'rejected')
|
|
1404
|
+
AND request_id IS NULL
|
|
1405
|
+
AND lifecycle_id IS NULL
|
|
1406
|
+
AND expires_at_ms IS NULL)
|
|
1407
|
+
OR
|
|
1408
|
+
(record_kind = 'quota'
|
|
1409
|
+
AND decision IS NULL
|
|
1410
|
+
AND retry_after_ms IS NULL
|
|
1411
|
+
AND length(request_id) > 0
|
|
1412
|
+
AND length(lifecycle_id) > 0
|
|
1413
|
+
AND expires_at_ms > updated_at_ms)
|
|
1414
|
+
),
|
|
1415
|
+
CHECK (
|
|
1416
|
+
(decision IN ('rejected', 'rate_limited') AND retry_after_ms > 0)
|
|
1417
|
+
OR
|
|
1418
|
+
(decision = 'allowed' AND retry_after_ms IS NULL)
|
|
1419
|
+
OR
|
|
1420
|
+
(record_kind = 'quota' AND retry_after_ms IS NULL)
|
|
1421
|
+
)
|
|
1422
|
+
);
|
|
1423
|
+
CREATE TABLE router_ab_yao_capability_replacements (
|
|
1424
|
+
namespace TEXT NOT NULL,
|
|
1425
|
+
org_id TEXT NOT NULL,
|
|
1426
|
+
project_id TEXT NOT NULL,
|
|
1427
|
+
env_id TEXT NOT NULL,
|
|
1428
|
+
operation_id TEXT NOT NULL,
|
|
1429
|
+
operation_fingerprint TEXT NOT NULL,
|
|
1430
|
+
previous_capability_binding_json TEXT NOT NULL,
|
|
1431
|
+
next_capability_binding_json TEXT NOT NULL,
|
|
1432
|
+
created_at_ms INTEGER NOT NULL,
|
|
1433
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, operation_id),
|
|
1434
|
+
CHECK (length(operation_id) > 0),
|
|
1435
|
+
CHECK (length(operation_fingerprint) > 0),
|
|
1436
|
+
CHECK (json_valid(previous_capability_binding_json)),
|
|
1437
|
+
CHECK (json_valid(next_capability_binding_json)),
|
|
1438
|
+
CHECK (created_at_ms >= 0)
|
|
1439
|
+
);
|
|
1440
|
+
CREATE TABLE router_ab_yao_versioned_json_cas_guard (
|
|
1441
|
+
guard_id INTEGER PRIMARY KEY CHECK (guard_id = 1)
|
|
1442
|
+
);
|
|
1443
|
+
CREATE TABLE router_ab_yao_versioned_json_records (
|
|
1444
|
+
namespace TEXT NOT NULL,
|
|
1445
|
+
org_id TEXT NOT NULL,
|
|
1446
|
+
project_id TEXT NOT NULL,
|
|
1447
|
+
env_id TEXT NOT NULL,
|
|
1448
|
+
record_key TEXT NOT NULL,
|
|
1449
|
+
version INTEGER NOT NULL,
|
|
1450
|
+
record_json TEXT NOT NULL,
|
|
1451
|
+
created_at_ms INTEGER NOT NULL DEFAULT (unixepoch() * 1000),
|
|
1452
|
+
updated_at_ms INTEGER NOT NULL DEFAULT (unixepoch() * 1000),
|
|
1453
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, record_key),
|
|
1454
|
+
CHECK (version > 0),
|
|
1455
|
+
CHECK (json_valid(record_json))
|
|
1456
|
+
);
|
|
1457
|
+
CREATE TABLE vault_proxy_secrets (
|
|
1458
|
+
namespace TEXT NOT NULL,
|
|
1459
|
+
tenant_id TEXT NOT NULL,
|
|
1460
|
+
capability_id TEXT NOT NULL,
|
|
1461
|
+
vault_id TEXT NOT NULL,
|
|
1462
|
+
item_id TEXT NOT NULL,
|
|
1463
|
+
destination TEXT NOT NULL,
|
|
1464
|
+
sealed_secret_b64u TEXT NOT NULL,
|
|
1465
|
+
nonce_b64u TEXT NOT NULL,
|
|
1466
|
+
created_at_ms INTEGER NOT NULL,
|
|
1467
|
+
PRIMARY KEY (namespace, tenant_id, vault_id, item_id),
|
|
1468
|
+
CHECK (length(destination) > 0),
|
|
1469
|
+
CHECK (length(sealed_secret_b64u) > 0),
|
|
1470
|
+
CHECK (length(nonce_b64u) > 0),
|
|
1471
|
+
CHECK (created_at_ms > 0)
|
|
1472
|
+
);
|
|
1473
|
+
CREATE TABLE verified_grant_evidence_sets (
|
|
1474
|
+
namespace TEXT NOT NULL,
|
|
1475
|
+
tenant_id TEXT NOT NULL,
|
|
1476
|
+
evidence_set_id TEXT NOT NULL,
|
|
1477
|
+
principal_id TEXT NOT NULL,
|
|
1478
|
+
session_id TEXT NOT NULL,
|
|
1479
|
+
device_id TEXT NOT NULL,
|
|
1480
|
+
evidence_set_digest TEXT NOT NULL,
|
|
1481
|
+
evidence_json TEXT NOT NULL,
|
|
1482
|
+
capability_kind TEXT NOT NULL,
|
|
1483
|
+
operation_kind TEXT NOT NULL,
|
|
1484
|
+
lane_digest TEXT NOT NULL,
|
|
1485
|
+
intent_digest TEXT NOT NULL,
|
|
1486
|
+
display_digest TEXT NOT NULL,
|
|
1487
|
+
assurance TEXT NOT NULL,
|
|
1488
|
+
expires_at_ms INTEGER NOT NULL,
|
|
1489
|
+
PRIMARY KEY (namespace, tenant_id, evidence_set_id),
|
|
1490
|
+
FOREIGN KEY (namespace, tenant_id, session_id)
|
|
1491
|
+
REFERENCES authorization_sessions(namespace, tenant_id, session_id),
|
|
1492
|
+
CHECK (json_valid(evidence_json)),
|
|
1493
|
+
CHECK (assurance IN ('session', 'step_up')),
|
|
1494
|
+
CHECK (
|
|
1495
|
+
(capability_kind = 'vault_access'
|
|
1496
|
+
AND operation_kind IN ('vault.proxy_use', 'vault.reveal'))
|
|
1497
|
+
OR (capability_kind = 'near_ed25519_mpc_signing'
|
|
1498
|
+
AND operation_kind IN (
|
|
1499
|
+
'near.sign_transaction',
|
|
1500
|
+
'near.sign_delegate_action',
|
|
1501
|
+
'near.sign_nep413_message',
|
|
1502
|
+
'near.export_key'
|
|
1503
|
+
))
|
|
1504
|
+
OR (capability_kind = 'evm_ecdsa_mpc_signing'
|
|
1505
|
+
AND operation_kind IN ('evm.sign_transaction', 'evm.export_key'))
|
|
1506
|
+
)
|
|
1507
|
+
);
|
|
1508
|
+
CREATE TABLE "wallet_auth_methods" (
|
|
1509
|
+
namespace TEXT NOT NULL,
|
|
1510
|
+
org_id TEXT NOT NULL,
|
|
1511
|
+
project_id TEXT NOT NULL,
|
|
1512
|
+
env_id TEXT NOT NULL,
|
|
1513
|
+
wallet_id TEXT NOT NULL,
|
|
1514
|
+
rp_id TEXT NOT NULL DEFAULT '',
|
|
1515
|
+
kind TEXT NOT NULL,
|
|
1516
|
+
status TEXT NOT NULL,
|
|
1517
|
+
wallet_auth_method_id TEXT NOT NULL,
|
|
1518
|
+
auth_identifier_key TEXT NOT NULL,
|
|
1519
|
+
credential_id_b64u TEXT,
|
|
1520
|
+
credential_public_key_b64u TEXT,
|
|
1521
|
+
email_hash_hex TEXT,
|
|
1522
|
+
registration_authority_id TEXT,
|
|
1523
|
+
record_json TEXT NOT NULL,
|
|
1524
|
+
created_at_ms INTEGER NOT NULL,
|
|
1525
|
+
updated_at_ms INTEGER NOT NULL,
|
|
1526
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, wallet_auth_method_id),
|
|
1527
|
+
CHECK (length(wallet_id) > 0),
|
|
1528
|
+
CHECK (kind IN ('passkey', 'email_otp')),
|
|
1529
|
+
CHECK (status IN ('active', 'revoked')),
|
|
1530
|
+
CHECK (length(wallet_auth_method_id) > 0),
|
|
1531
|
+
CHECK (length(auth_identifier_key) > 0),
|
|
1532
|
+
CHECK (json_valid(record_json)),
|
|
1533
|
+
CHECK (created_at_ms >= 0),
|
|
1534
|
+
CHECK (updated_at_ms >= created_at_ms),
|
|
1535
|
+
CHECK (
|
|
1536
|
+
(
|
|
1537
|
+
kind = 'passkey'
|
|
1538
|
+
AND length(rp_id) > 0
|
|
1539
|
+
AND credential_id_b64u IS NOT NULL
|
|
1540
|
+
AND length(credential_id_b64u) > 0
|
|
1541
|
+
AND credential_public_key_b64u IS NOT NULL
|
|
1542
|
+
AND length(credential_public_key_b64u) > 0
|
|
1543
|
+
AND email_hash_hex IS NULL
|
|
1544
|
+
AND registration_authority_id IS NULL
|
|
1545
|
+
AND auth_identifier_key = credential_id_b64u
|
|
1546
|
+
AND wallet_auth_method_id = 'passkey:' || rp_id || ':' || credential_id_b64u
|
|
1547
|
+
)
|
|
1548
|
+
OR
|
|
1549
|
+
(
|
|
1550
|
+
kind = 'email_otp'
|
|
1551
|
+
AND rp_id = ''
|
|
1552
|
+
AND credential_id_b64u IS NULL
|
|
1553
|
+
AND credential_public_key_b64u IS NULL
|
|
1554
|
+
AND email_hash_hex IS NOT NULL
|
|
1555
|
+
AND length(email_hash_hex) > 0
|
|
1556
|
+
AND registration_authority_id IS NOT NULL
|
|
1557
|
+
AND length(registration_authority_id) > 0
|
|
1558
|
+
AND auth_identifier_key = email_hash_hex
|
|
1559
|
+
AND wallet_auth_method_id = 'email_otp:' || wallet_id || ':' || email_hash_hex
|
|
1560
|
+
)
|
|
1561
|
+
)
|
|
1562
|
+
);
|
|
1563
|
+
CREATE TABLE wallet_ecdsa_pending_session_activations (
|
|
1564
|
+
namespace TEXT NOT NULL,
|
|
1565
|
+
org_id TEXT NOT NULL,
|
|
1566
|
+
project_id TEXT NOT NULL,
|
|
1567
|
+
env_id TEXT NOT NULL,
|
|
1568
|
+
wallet_id TEXT NOT NULL,
|
|
1569
|
+
lifecycle_id TEXT NOT NULL,
|
|
1570
|
+
request_id TEXT NOT NULL,
|
|
1571
|
+
record_json TEXT NOT NULL,
|
|
1572
|
+
expires_at_ms INTEGER NOT NULL,
|
|
1573
|
+
PRIMARY KEY (
|
|
1574
|
+
namespace,
|
|
1575
|
+
org_id,
|
|
1576
|
+
project_id,
|
|
1577
|
+
env_id,
|
|
1578
|
+
wallet_id,
|
|
1579
|
+
lifecycle_id,
|
|
1580
|
+
request_id
|
|
1581
|
+
),
|
|
1582
|
+
CHECK (json_valid(record_json)),
|
|
1583
|
+
CHECK (expires_at_ms > 0)
|
|
1584
|
+
);
|
|
1585
|
+
CREATE TABLE "wallet_signers" (
|
|
1586
|
+
namespace TEXT NOT NULL,
|
|
1587
|
+
org_id TEXT NOT NULL,
|
|
1588
|
+
project_id TEXT NOT NULL,
|
|
1589
|
+
env_id TEXT NOT NULL,
|
|
1590
|
+
wallet_id TEXT NOT NULL,
|
|
1591
|
+
signer_family TEXT NOT NULL,
|
|
1592
|
+
signer_id TEXT NOT NULL,
|
|
1593
|
+
chain_target_key TEXT,
|
|
1594
|
+
record_json TEXT NOT NULL,
|
|
1595
|
+
created_at_ms INTEGER NOT NULL,
|
|
1596
|
+
updated_at_ms INTEGER NOT NULL,
|
|
1597
|
+
PRIMARY KEY (
|
|
1598
|
+
namespace,
|
|
1599
|
+
org_id,
|
|
1600
|
+
project_id,
|
|
1601
|
+
env_id,
|
|
1602
|
+
wallet_id,
|
|
1603
|
+
signer_family,
|
|
1604
|
+
signer_id
|
|
1605
|
+
),
|
|
1606
|
+
CHECK (length(wallet_id) > 0),
|
|
1607
|
+
CHECK (signer_family IN ('ed25519', 'ecdsa')),
|
|
1608
|
+
CHECK (length(signer_id) > 0),
|
|
1609
|
+
CHECK (json_valid(record_json)),
|
|
1610
|
+
CHECK (created_at_ms >= 0),
|
|
1611
|
+
CHECK (updated_at_ms >= created_at_ms),
|
|
1612
|
+
CHECK (COALESCE(json_extract(record_json, '$.walletId') = wallet_id, 0)),
|
|
1613
|
+
CHECK (COALESCE(json_extract(record_json, '$.signerId') = signer_id, 0)),
|
|
1614
|
+
CHECK (
|
|
1615
|
+
(
|
|
1616
|
+
signer_family = 'ed25519'
|
|
1617
|
+
AND chain_target_key IS NULL
|
|
1618
|
+
AND substr(signer_id, 1, 8) = 'ed25519:'
|
|
1619
|
+
AND COALESCE(
|
|
1620
|
+
json_extract(record_json, '$.version') = 'wallet_signer_ed25519_v1',
|
|
1621
|
+
0
|
|
1622
|
+
)
|
|
1623
|
+
)
|
|
1624
|
+
OR
|
|
1625
|
+
(
|
|
1626
|
+
signer_family = 'ecdsa'
|
|
1627
|
+
AND chain_target_key IS NOT NULL
|
|
1628
|
+
AND length(chain_target_key) > 0
|
|
1629
|
+
AND signer_id = 'ecdsa:' || chain_target_key
|
|
1630
|
+
AND COALESCE(
|
|
1631
|
+
json_extract(record_json, '$.version') = 'wallet_signer_ecdsa_v1',
|
|
1632
|
+
0
|
|
1633
|
+
)
|
|
1634
|
+
AND COALESCE(json_extract(record_json, '$.chainTargetKey') = chain_target_key, 0)
|
|
1635
|
+
)
|
|
1636
|
+
)
|
|
1637
|
+
);
|
|
1638
|
+
CREATE TABLE "wallets" (
|
|
1639
|
+
namespace TEXT NOT NULL,
|
|
1640
|
+
org_id TEXT NOT NULL,
|
|
1641
|
+
project_id TEXT NOT NULL,
|
|
1642
|
+
env_id TEXT NOT NULL,
|
|
1643
|
+
wallet_id TEXT NOT NULL,
|
|
1644
|
+
record_json TEXT NOT NULL,
|
|
1645
|
+
created_at_ms INTEGER NOT NULL,
|
|
1646
|
+
updated_at_ms INTEGER NOT NULL,
|
|
1647
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, wallet_id),
|
|
1648
|
+
CHECK (length(wallet_id) > 0),
|
|
1649
|
+
CHECK (json_valid(record_json)),
|
|
1650
|
+
CHECK (created_at_ms >= 0),
|
|
1651
|
+
CHECK (updated_at_ms >= created_at_ms),
|
|
1652
|
+
CHECK (COALESCE(json_extract(record_json, '$.version') = 'wallet_v1', 0)),
|
|
1653
|
+
CHECK (COALESCE(json_extract(record_json, '$.walletId') = wallet_id, 0))
|
|
1654
|
+
);
|
|
1655
|
+
CREATE TABLE webauthn_authenticators (
|
|
1656
|
+
namespace TEXT NOT NULL,
|
|
1657
|
+
org_id TEXT NOT NULL,
|
|
1658
|
+
project_id TEXT NOT NULL,
|
|
1659
|
+
env_id TEXT NOT NULL,
|
|
1660
|
+
user_id TEXT NOT NULL,
|
|
1661
|
+
credential_id_b64u TEXT NOT NULL,
|
|
1662
|
+
credential_public_key_b64u TEXT NOT NULL,
|
|
1663
|
+
counter INTEGER NOT NULL,
|
|
1664
|
+
created_at_ms INTEGER NOT NULL,
|
|
1665
|
+
updated_at_ms INTEGER NOT NULL, device_info_json TEXT NOT NULL DEFAULT '{}',
|
|
1666
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, user_id, credential_id_b64u),
|
|
1667
|
+
CHECK (length(user_id) > 0),
|
|
1668
|
+
CHECK (length(credential_id_b64u) > 0),
|
|
1669
|
+
CHECK (length(credential_public_key_b64u) > 0),
|
|
1670
|
+
CHECK (counter >= 0),
|
|
1671
|
+
CHECK (created_at_ms > 0),
|
|
1672
|
+
CHECK (updated_at_ms > 0)
|
|
1673
|
+
);
|
|
1674
|
+
CREATE TABLE "webauthn_challenges" (
|
|
1675
|
+
namespace TEXT NOT NULL,
|
|
1676
|
+
org_id TEXT NOT NULL,
|
|
1677
|
+
project_id TEXT NOT NULL,
|
|
1678
|
+
env_id TEXT NOT NULL,
|
|
1679
|
+
challenge_id TEXT NOT NULL,
|
|
1680
|
+
challenge_kind TEXT NOT NULL,
|
|
1681
|
+
record_json TEXT NOT NULL,
|
|
1682
|
+
created_at_ms INTEGER NOT NULL,
|
|
1683
|
+
expires_at_ms INTEGER NOT NULL,
|
|
1684
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, challenge_id),
|
|
1685
|
+
CHECK (length(challenge_id) > 0),
|
|
1686
|
+
CHECK (challenge_kind IN ('login', 'sync', 'recovery_registration')),
|
|
1687
|
+
CHECK (json_valid(record_json)),
|
|
1688
|
+
CHECK (created_at_ms > 0),
|
|
1689
|
+
CHECK (expires_at_ms > created_at_ms)
|
|
1690
|
+
);
|
|
1691
|
+
CREATE TABLE "webauthn_credential_bindings" (
|
|
1692
|
+
namespace TEXT NOT NULL,
|
|
1693
|
+
org_id TEXT NOT NULL,
|
|
1694
|
+
project_id TEXT NOT NULL,
|
|
1695
|
+
env_id TEXT NOT NULL,
|
|
1696
|
+
rp_id TEXT NOT NULL,
|
|
1697
|
+
credential_id_b64u TEXT NOT NULL,
|
|
1698
|
+
user_id TEXT NOT NULL,
|
|
1699
|
+
signer_slot INTEGER,
|
|
1700
|
+
record_json TEXT NOT NULL,
|
|
1701
|
+
created_at_ms INTEGER NOT NULL,
|
|
1702
|
+
updated_at_ms INTEGER NOT NULL,
|
|
1703
|
+
PRIMARY KEY (namespace, org_id, project_id, env_id, rp_id, credential_id_b64u),
|
|
1704
|
+
CHECK (length(rp_id) > 0),
|
|
1705
|
+
CHECK (length(credential_id_b64u) > 0),
|
|
1706
|
+
CHECK (length(user_id) > 0),
|
|
1707
|
+
CHECK (signer_slot IS NULL OR signer_slot >= 1),
|
|
1708
|
+
CHECK (json_valid(record_json)),
|
|
1709
|
+
CHECK (created_at_ms > 0),
|
|
1710
|
+
CHECK (updated_at_ms > 0)
|
|
1711
|
+
);
|
|
1712
|
+
CREATE INDEX authorized_operation_audit_fingerprint_idx
|
|
1713
|
+
ON authorized_operation_audit_events(namespace, tenant_id, operation_fingerprint_digest);
|
|
1714
|
+
CREATE INDEX authorized_operation_audit_linked_device_activity_idx
|
|
1715
|
+
ON authorized_operation_audit_events(
|
|
1716
|
+
namespace,
|
|
1717
|
+
authorization_grant_kind,
|
|
1718
|
+
linked_scope_org_id,
|
|
1719
|
+
linked_scope_project_id,
|
|
1720
|
+
linked_scope_env_id,
|
|
1721
|
+
linked_wallet_id,
|
|
1722
|
+
linked_enrollment_id,
|
|
1723
|
+
linked_device_id
|
|
1724
|
+
);
|
|
1725
|
+
CREATE INDEX authorized_operations_tenant_fingerprint_idx
|
|
1726
|
+
ON authorized_operations(namespace, tenant_id, operation_fingerprint_digest);
|
|
1727
|
+
CREATE INDEX authorized_operations_tenant_lifecycle_idx
|
|
1728
|
+
ON authorized_operations(namespace, tenant_id, lifecycle_kind);
|
|
1729
|
+
CREATE INDEX email_otp_challenges_context_idx
|
|
1730
|
+
ON email_otp_challenges (
|
|
1731
|
+
namespace,
|
|
1732
|
+
org_id,
|
|
1733
|
+
project_id,
|
|
1734
|
+
env_id,
|
|
1735
|
+
challenge_subject_id,
|
|
1736
|
+
wallet_id,
|
|
1737
|
+
record_org_id,
|
|
1738
|
+
otp_channel,
|
|
1739
|
+
session_hash,
|
|
1740
|
+
app_session_version,
|
|
1741
|
+
action,
|
|
1742
|
+
operation,
|
|
1743
|
+
expires_at_ms
|
|
1744
|
+
);
|
|
1745
|
+
CREATE INDEX email_otp_challenges_expires_idx
|
|
1746
|
+
ON email_otp_challenges (
|
|
1747
|
+
namespace,
|
|
1748
|
+
org_id,
|
|
1749
|
+
project_id,
|
|
1750
|
+
env_id,
|
|
1751
|
+
expires_at_ms
|
|
1752
|
+
);
|
|
1753
|
+
CREATE INDEX email_otp_grants_expires_idx
|
|
1754
|
+
ON email_otp_grants (
|
|
1755
|
+
namespace,
|
|
1756
|
+
org_id,
|
|
1757
|
+
project_id,
|
|
1758
|
+
env_id,
|
|
1759
|
+
expires_at_ms
|
|
1760
|
+
);
|
|
1761
|
+
CREATE INDEX email_otp_rate_limits_reset_idx
|
|
1762
|
+
ON email_otp_rate_limits (
|
|
1763
|
+
namespace,
|
|
1764
|
+
org_id,
|
|
1765
|
+
project_id,
|
|
1766
|
+
env_id,
|
|
1767
|
+
reset_at_ms
|
|
1768
|
+
);
|
|
1769
|
+
CREATE INDEX email_otp_recovery_wrapped_escrows_wallet_idx
|
|
1770
|
+
ON email_otp_recovery_wrapped_enrollment_escrows (
|
|
1771
|
+
namespace,
|
|
1772
|
+
org_id,
|
|
1773
|
+
project_id,
|
|
1774
|
+
env_id,
|
|
1775
|
+
wallet_id,
|
|
1776
|
+
recovery_key_status,
|
|
1777
|
+
updated_at_ms
|
|
1778
|
+
);
|
|
1779
|
+
CREATE INDEX email_otp_registration_attempts_subject_idx
|
|
1780
|
+
ON email_otp_registration_attempts (
|
|
1781
|
+
namespace,
|
|
1782
|
+
org_id,
|
|
1783
|
+
project_id,
|
|
1784
|
+
env_id,
|
|
1785
|
+
provider_subject,
|
|
1786
|
+
email,
|
|
1787
|
+
state,
|
|
1788
|
+
expires_at_ms,
|
|
1789
|
+
app_session_version,
|
|
1790
|
+
runtime_org_id,
|
|
1791
|
+
runtime_policy_key,
|
|
1792
|
+
updated_at_ms
|
|
1793
|
+
);
|
|
1794
|
+
CREATE INDEX email_otp_registration_attempts_wallet_idx
|
|
1795
|
+
ON email_otp_registration_attempts (
|
|
1796
|
+
namespace,
|
|
1797
|
+
org_id,
|
|
1798
|
+
project_id,
|
|
1799
|
+
env_id,
|
|
1800
|
+
wallet_id,
|
|
1801
|
+
state,
|
|
1802
|
+
expires_at_ms
|
|
1803
|
+
);
|
|
1804
|
+
CREATE INDEX email_otp_unlock_challenges_expires_idx
|
|
1805
|
+
ON email_otp_unlock_challenges (
|
|
1806
|
+
namespace,
|
|
1807
|
+
org_id,
|
|
1808
|
+
project_id,
|
|
1809
|
+
env_id,
|
|
1810
|
+
expires_at_ms
|
|
1811
|
+
);
|
|
1812
|
+
CREATE INDEX email_otp_wallet_enrollments_provider_idx
|
|
1813
|
+
ON email_otp_wallet_enrollments (
|
|
1814
|
+
namespace,
|
|
1815
|
+
org_id,
|
|
1816
|
+
project_id,
|
|
1817
|
+
env_id,
|
|
1818
|
+
record_org_id,
|
|
1819
|
+
provider_user_id,
|
|
1820
|
+
updated_at_ms
|
|
1821
|
+
);
|
|
1822
|
+
CREATE INDEX email_recovery_preparations_account_idx
|
|
1823
|
+
ON email_recovery_preparations (
|
|
1824
|
+
namespace,
|
|
1825
|
+
org_id,
|
|
1826
|
+
project_id,
|
|
1827
|
+
env_id,
|
|
1828
|
+
account_id,
|
|
1829
|
+
created_at_ms
|
|
1830
|
+
);
|
|
1831
|
+
CREATE INDEX email_recovery_preparations_expires_idx
|
|
1832
|
+
ON email_recovery_preparations (
|
|
1833
|
+
namespace,
|
|
1834
|
+
org_id,
|
|
1835
|
+
project_id,
|
|
1836
|
+
env_id,
|
|
1837
|
+
expires_at_ms
|
|
1838
|
+
);
|
|
1839
|
+
CREATE INDEX google_email_otp_session_exchange_journals_expires_idx
|
|
1840
|
+
ON google_email_otp_session_exchange_journals (
|
|
1841
|
+
namespace,
|
|
1842
|
+
org_id,
|
|
1843
|
+
project_id,
|
|
1844
|
+
env_id,
|
|
1845
|
+
expires_at_ms
|
|
1846
|
+
);
|
|
1847
|
+
CREATE INDEX identity_links_user_idx
|
|
1848
|
+
ON identity_links (
|
|
1849
|
+
namespace,
|
|
1850
|
+
org_id,
|
|
1851
|
+
project_id,
|
|
1852
|
+
env_id,
|
|
1853
|
+
user_id,
|
|
1854
|
+
created_at_ms
|
|
1855
|
+
);
|
|
1856
|
+
CREATE INDEX idx_authorization_sessions_expiry
|
|
1857
|
+
ON authorization_sessions(namespace, tenant_id, expires_at_ms);
|
|
1858
|
+
CREATE INDEX idx_registration_ceremony_records_expiry
|
|
1859
|
+
ON registration_ceremony_records (
|
|
1860
|
+
namespace,
|
|
1861
|
+
org_id,
|
|
1862
|
+
project_id,
|
|
1863
|
+
env_id,
|
|
1864
|
+
expires_at_ms
|
|
1865
|
+
);
|
|
1866
|
+
CREATE UNIQUE INDEX idx_reusable_wallet_sessions_active_authority
|
|
1867
|
+
ON reusable_wallet_sessions(namespace, tenant_id, wallet_id, authority_digest)
|
|
1868
|
+
WHERE lifecycle_kind = 'active';
|
|
1869
|
+
CREATE INDEX idx_reusable_wallet_sessions_principal
|
|
1870
|
+
ON reusable_wallet_sessions(namespace, tenant_id, principal_id, lifecycle_kind, expires_at_ms);
|
|
1871
|
+
CREATE INDEX idx_router_ab_normal_signing_admission_expiry
|
|
1872
|
+
ON router_ab_normal_signing_admission_records (
|
|
1873
|
+
namespace,
|
|
1874
|
+
org_id,
|
|
1875
|
+
project_id,
|
|
1876
|
+
env_id,
|
|
1877
|
+
record_kind,
|
|
1878
|
+
expires_at_ms
|
|
1879
|
+
);
|
|
1880
|
+
CREATE INDEX idx_router_ab_yao_versioned_json_records_updated
|
|
1881
|
+
ON router_ab_yao_versioned_json_records (
|
|
1882
|
+
namespace,
|
|
1883
|
+
org_id,
|
|
1884
|
+
project_id,
|
|
1885
|
+
env_id,
|
|
1886
|
+
updated_at_ms
|
|
1887
|
+
);
|
|
1888
|
+
CREATE INDEX idx_verified_grant_evidence_sets_expiry
|
|
1889
|
+
ON verified_grant_evidence_sets(namespace, tenant_id, expires_at_ms);
|
|
1890
|
+
CREATE INDEX lane_enrollments_wallet_idx
|
|
1891
|
+
ON lane_enrollments(namespace, org_id, project_id, env_id, wallet_id, updated_at_ms);
|
|
1892
|
+
CREATE UNIQUE INDEX lane_product_epochs_one_active_idx
|
|
1893
|
+
ON lane_product_epochs(namespace, org_id, project_id, env_id, wallet_key_id, lane_id)
|
|
1894
|
+
WHERE state = 'active';
|
|
1895
|
+
CREATE INDEX lane_product_epochs_wallet_active_idx
|
|
1896
|
+
ON lane_product_epochs(namespace, org_id, project_id, env_id, wallet_id, state, updated_at_ms);
|
|
1897
|
+
CREATE INDEX lane_protocol_operations_enrollment_idx
|
|
1898
|
+
ON lane_protocol_operations(namespace, org_id, project_id, env_id, enrollment_id, operation_id);
|
|
1899
|
+
CREATE UNIQUE INDEX linked_device_owner_planning_snapshots_operation_idx
|
|
1900
|
+
ON linked_device_owner_planning_snapshots(
|
|
1901
|
+
namespace, org_id, project_id, env_id, operation_id
|
|
1902
|
+
);
|
|
1903
|
+
CREATE INDEX linked_device_owner_planning_snapshots_wallet_idx
|
|
1904
|
+
ON linked_device_owner_planning_snapshots(
|
|
1905
|
+
namespace, org_id, project_id, env_id, wallet_id, expires_at_ms
|
|
1906
|
+
);
|
|
1907
|
+
CREATE INDEX linked_device_request_proof_nonces_expiry_idx
|
|
1908
|
+
ON linked_device_request_proof_nonces(
|
|
1909
|
+
namespace,
|
|
1910
|
+
org_id,
|
|
1911
|
+
project_id,
|
|
1912
|
+
env_id,
|
|
1913
|
+
expires_at_ms
|
|
1914
|
+
);
|
|
1915
|
+
CREATE INDEX linked_device_session_transcripts_digest_idx
|
|
1916
|
+
ON linked_device_session_transcripts(
|
|
1917
|
+
namespace,
|
|
1918
|
+
org_id,
|
|
1919
|
+
project_id,
|
|
1920
|
+
env_id,
|
|
1921
|
+
digest_b64u
|
|
1922
|
+
);
|
|
1923
|
+
CREATE INDEX linked_device_sessions_state_idx
|
|
1924
|
+
ON linked_device_sessions(namespace, org_id, project_id, env_id, state, updated_at_ms);
|
|
1925
|
+
CREATE UNIQUE INDEX linked_device_target_credentials_credential_idx
|
|
1926
|
+
ON linked_device_target_credentials(
|
|
1927
|
+
namespace,
|
|
1928
|
+
org_id,
|
|
1929
|
+
project_id,
|
|
1930
|
+
env_id,
|
|
1931
|
+
credential_id_b64u
|
|
1932
|
+
)
|
|
1933
|
+
WHERE credential_id_b64u IS NOT NULL;
|
|
1934
|
+
CREATE INDEX linked_device_target_deployment_descriptors_wallet_idx
|
|
1935
|
+
ON linked_device_target_deployment_descriptors(
|
|
1936
|
+
namespace,
|
|
1937
|
+
org_id,
|
|
1938
|
+
project_id,
|
|
1939
|
+
env_id,
|
|
1940
|
+
expires_at_ms
|
|
1941
|
+
);
|
|
1942
|
+
CREATE INDEX linked_device_wallet_session_authorizations_identity_idx
|
|
1943
|
+
ON linked_device_wallet_session_authorizations(
|
|
1944
|
+
namespace, org_id, project_id, env_id, tenant_id, device_id, wallet_session_id
|
|
1945
|
+
);
|
|
1946
|
+
CREATE INDEX linked_device_wallet_session_quotas_identity_idx
|
|
1947
|
+
ON linked_device_wallet_session_quotas(
|
|
1948
|
+
namespace, org_id, project_id, env_id, tenant_id, authorization_id, wallet_session_id
|
|
1949
|
+
);
|
|
1950
|
+
CREATE INDEX near_public_keys_user_idx
|
|
1951
|
+
ON near_public_keys (
|
|
1952
|
+
namespace,
|
|
1953
|
+
org_id,
|
|
1954
|
+
project_id,
|
|
1955
|
+
env_id,
|
|
1956
|
+
user_id,
|
|
1957
|
+
signer_slot,
|
|
1958
|
+
created_at_ms
|
|
1959
|
+
);
|
|
1960
|
+
CREATE INDEX recovery_executions_session_idx
|
|
1961
|
+
ON recovery_executions (
|
|
1962
|
+
namespace,
|
|
1963
|
+
org_id,
|
|
1964
|
+
project_id,
|
|
1965
|
+
env_id,
|
|
1966
|
+
session_id,
|
|
1967
|
+
chain_id_key,
|
|
1968
|
+
account_address,
|
|
1969
|
+
action
|
|
1970
|
+
);
|
|
1971
|
+
CREATE INDEX recovery_executions_status_idx
|
|
1972
|
+
ON recovery_executions (
|
|
1973
|
+
namespace,
|
|
1974
|
+
org_id,
|
|
1975
|
+
project_id,
|
|
1976
|
+
env_id,
|
|
1977
|
+
status,
|
|
1978
|
+
action,
|
|
1979
|
+
updated_at_ms
|
|
1980
|
+
);
|
|
1981
|
+
CREATE INDEX recovery_sessions_expiry_idx
|
|
1982
|
+
ON recovery_sessions (
|
|
1983
|
+
namespace,
|
|
1984
|
+
org_id,
|
|
1985
|
+
project_id,
|
|
1986
|
+
env_id,
|
|
1987
|
+
expires_at_ms
|
|
1988
|
+
);
|
|
1989
|
+
CREATE INDEX recovery_sessions_near_account_idx
|
|
1990
|
+
ON recovery_sessions (
|
|
1991
|
+
namespace,
|
|
1992
|
+
org_id,
|
|
1993
|
+
project_id,
|
|
1994
|
+
env_id,
|
|
1995
|
+
near_account_id,
|
|
1996
|
+
updated_at_ms DESC
|
|
1997
|
+
);
|
|
1998
|
+
CREATE UNIQUE INDEX reusable_wallet_sessions_authorization_idx
|
|
1999
|
+
ON reusable_wallet_sessions(namespace, tenant_id, authorization_id);
|
|
2000
|
+
CREATE UNIQUE INDEX wallet_auth_methods_email_uidx
|
|
2001
|
+
ON wallet_auth_methods (
|
|
2002
|
+
namespace,
|
|
2003
|
+
org_id,
|
|
2004
|
+
project_id,
|
|
2005
|
+
env_id,
|
|
2006
|
+
wallet_id,
|
|
2007
|
+
email_hash_hex
|
|
2008
|
+
)
|
|
2009
|
+
WHERE kind = 'email_otp' AND email_hash_hex IS NOT NULL;
|
|
2010
|
+
CREATE INDEX wallet_auth_methods_identifier_idx
|
|
2011
|
+
ON wallet_auth_methods (
|
|
2012
|
+
namespace,
|
|
2013
|
+
org_id,
|
|
2014
|
+
project_id,
|
|
2015
|
+
env_id,
|
|
2016
|
+
kind,
|
|
2017
|
+
auth_identifier_key
|
|
2018
|
+
);
|
|
2019
|
+
CREATE UNIQUE INDEX wallet_auth_methods_passkey_uidx
|
|
2020
|
+
ON wallet_auth_methods (
|
|
2021
|
+
namespace,
|
|
2022
|
+
org_id,
|
|
2023
|
+
project_id,
|
|
2024
|
+
env_id,
|
|
2025
|
+
rp_id,
|
|
2026
|
+
credential_id_b64u
|
|
2027
|
+
)
|
|
2028
|
+
WHERE kind = 'passkey' AND credential_id_b64u IS NOT NULL;
|
|
2029
|
+
CREATE INDEX wallet_auth_methods_wallet_idx
|
|
2030
|
+
ON wallet_auth_methods (
|
|
2031
|
+
namespace,
|
|
2032
|
+
org_id,
|
|
2033
|
+
project_id,
|
|
2034
|
+
env_id,
|
|
2035
|
+
wallet_id,
|
|
2036
|
+
rp_id,
|
|
2037
|
+
status
|
|
2038
|
+
);
|
|
2039
|
+
CREATE INDEX wallet_signers_chain_target_idx
|
|
2040
|
+
ON wallet_signers (
|
|
2041
|
+
namespace,
|
|
2042
|
+
org_id,
|
|
2043
|
+
project_id,
|
|
2044
|
+
env_id,
|
|
2045
|
+
signer_family,
|
|
2046
|
+
chain_target_key
|
|
2047
|
+
);
|
|
2048
|
+
CREATE INDEX wallet_signers_wallet_idx
|
|
2049
|
+
ON wallet_signers (namespace, org_id, project_id, env_id, wallet_id, signer_family);
|
|
2050
|
+
CREATE INDEX webauthn_authenticators_user_idx
|
|
2051
|
+
ON webauthn_authenticators (
|
|
2052
|
+
namespace,
|
|
2053
|
+
org_id,
|
|
2054
|
+
project_id,
|
|
2055
|
+
env_id,
|
|
2056
|
+
user_id,
|
|
2057
|
+
created_at_ms
|
|
2058
|
+
);
|
|
2059
|
+
CREATE INDEX webauthn_challenges_expiry_idx
|
|
2060
|
+
ON webauthn_challenges (
|
|
2061
|
+
namespace,
|
|
2062
|
+
org_id,
|
|
2063
|
+
project_id,
|
|
2064
|
+
env_id,
|
|
2065
|
+
challenge_kind,
|
|
2066
|
+
expires_at_ms
|
|
2067
|
+
);
|
|
2068
|
+
CREATE INDEX webauthn_credential_bindings_user_idx
|
|
2069
|
+
ON webauthn_credential_bindings (
|
|
2070
|
+
namespace,
|
|
2071
|
+
org_id,
|
|
2072
|
+
project_id,
|
|
2073
|
+
env_id,
|
|
2074
|
+
user_id,
|
|
2075
|
+
rp_id,
|
|
2076
|
+
signer_slot
|
|
2077
|
+
);
|
|
2078
|
+
CREATE TRIGGER authorized_operation_audit_claim
|
|
2079
|
+
AFTER INSERT ON authorized_operations
|
|
2080
|
+
WHEN NEW.lifecycle_kind = 'claimed'
|
|
2081
|
+
BEGIN
|
|
2082
|
+
INSERT INTO authorized_operation_audit_events (
|
|
2083
|
+
namespace, tenant_id, audit_event_id, authorized_operation_id,
|
|
2084
|
+
operation_fingerprint_digest, authorization_source_kind, authorization_id,
|
|
2085
|
+
authorization_grant_kind, evidence_set_digest, quota_id, material_activation_id,
|
|
2086
|
+
material_activation_capability, material_activation_owner,
|
|
2087
|
+
material_activation_key_binding, material_activation_lifecycle_binding,
|
|
2088
|
+
material_activation_signing_worker, linked_wallet_id, linked_enrollment_id,
|
|
2089
|
+
linked_device_id, linked_wallet_key_id, linked_lane_id, linked_lane_share_epoch,
|
|
2090
|
+
linked_revocation_epoch, linked_scope_org_id, linked_scope_project_id,
|
|
2091
|
+
linked_scope_env_id, result_kind, claimed_at_ms, completed_at_ms
|
|
2092
|
+
) VALUES (
|
|
2093
|
+
NEW.namespace, NEW.tenant_id, NEW.audit_event_id, NEW.authorized_operation_id,
|
|
2094
|
+
NEW.operation_fingerprint_digest, NEW.authorization_source_kind, NEW.authorization_id,
|
|
2095
|
+
NEW.authorization_grant_kind, NEW.evidence_set_digest, NEW.quota_id,
|
|
2096
|
+
NEW.material_activation_id, NEW.material_activation_capability,
|
|
2097
|
+
NEW.material_activation_owner, NEW.material_activation_key_binding,
|
|
2098
|
+
NEW.material_activation_lifecycle_binding, NEW.material_activation_signing_worker,
|
|
2099
|
+
NEW.linked_wallet_id, NEW.linked_enrollment_id, NEW.linked_device_id,
|
|
2100
|
+
NEW.linked_wallet_key_id, NEW.linked_lane_id, NEW.linked_lane_share_epoch,
|
|
2101
|
+
NEW.linked_revocation_epoch, NEW.linked_scope_org_id, NEW.linked_scope_project_id,
|
|
2102
|
+
NEW.linked_scope_env_id, NEW.result_kind, NEW.claimed_at_ms, NEW.completed_at_ms
|
|
2103
|
+
);
|
|
2104
|
+
END;
|
|
2105
|
+
CREATE TRIGGER authorized_operation_audit_complete
|
|
2106
|
+
AFTER UPDATE OF lifecycle_kind ON authorized_operations
|
|
2107
|
+
WHEN OLD.lifecycle_kind = 'claimed' AND NEW.lifecycle_kind = 'completed'
|
|
2108
|
+
BEGIN
|
|
2109
|
+
UPDATE authorized_operation_audit_events
|
|
2110
|
+
SET result_kind = NEW.result_kind,
|
|
2111
|
+
completed_at_ms = NEW.completed_at_ms
|
|
2112
|
+
WHERE namespace = NEW.namespace
|
|
2113
|
+
AND tenant_id = NEW.tenant_id
|
|
2114
|
+
AND authorized_operation_id = NEW.authorized_operation_id;
|
|
2115
|
+
|
|
2116
|
+
SELECT CASE
|
|
2117
|
+
WHEN changes() != 1
|
|
2118
|
+
THEN RAISE(ABORT, 'authorized_operation_audit_completion_rejected')
|
|
2119
|
+
END;
|
|
2120
|
+
END;
|
|
2121
|
+
CREATE TRIGGER authorized_operation_complete_atomic
|
|
2122
|
+
BEFORE UPDATE OF lifecycle_kind ON authorized_operations
|
|
2123
|
+
WHEN OLD.lifecycle_kind = 'completed' OR NEW.lifecycle_kind != 'completed'
|
|
2124
|
+
BEGIN
|
|
2125
|
+
SELECT RAISE(ABORT, 'authorized_operation_lifecycle_transition_rejected');
|
|
2126
|
+
END;
|
|
2127
|
+
CREATE TRIGGER authorized_operation_grant_shape_guard
|
|
2128
|
+
BEFORE INSERT ON authorized_operations
|
|
2129
|
+
WHEN NEW.lifecycle_kind = 'claimed'
|
|
2130
|
+
AND (
|
|
2131
|
+
NEW.authorization_source_kind NOT IN ('authorization_grant', 'verified_step_up')
|
|
2132
|
+
OR (NEW.authorization_source_kind = 'authorization_grant'
|
|
2133
|
+
AND (NEW.authorization_grant_kind IS NULL OR NEW.authorization_grant_kind NOT IN (
|
|
2134
|
+
'wallet_session_authorization',
|
|
2135
|
+
'linked_device_wallet_session_authorization_v1'
|
|
2136
|
+
)))
|
|
2137
|
+
OR (NEW.authorization_source_kind = 'authorization_grant'
|
|
2138
|
+
AND NEW.authorization_grant_kind = 'linked_device_wallet_session_authorization_v1'
|
|
2139
|
+
AND (NEW.linked_scope_org_id IS NULL
|
|
2140
|
+
OR NEW.linked_scope_project_id IS NULL
|
|
2141
|
+
OR NEW.linked_scope_env_id IS NULL))
|
|
2142
|
+
OR (NEW.authorization_source_kind = 'verified_step_up'
|
|
2143
|
+
AND NEW.authorization_grant_kind IS NOT NULL)
|
|
2144
|
+
)
|
|
2145
|
+
BEGIN
|
|
2146
|
+
SELECT RAISE(ABORT, 'authorization_grant_kind_rejected');
|
|
2147
|
+
END;
|
|
2148
|
+
CREATE TRIGGER authorized_operation_linked_grant_claim_atomic
|
|
2149
|
+
AFTER INSERT ON authorized_operations
|
|
2150
|
+
WHEN NEW.lifecycle_kind = 'claimed'
|
|
2151
|
+
AND NEW.authorization_source_kind = 'authorization_grant'
|
|
2152
|
+
AND NEW.authorization_grant_kind = 'linked_device_wallet_session_authorization_v1'
|
|
2153
|
+
BEGIN
|
|
2154
|
+
SELECT CASE
|
|
2155
|
+
WHEN NEW.quota_kind != 'consume_reusable_wallet_session'
|
|
2156
|
+
OR NEW.capability_kind NOT IN ('near_ed25519_mpc_signing', 'evm_ecdsa_mpc_signing')
|
|
2157
|
+
OR NEW.operation_kind IN ('near.export_key', 'evm.export_key')
|
|
2158
|
+
OR NOT EXISTS (
|
|
2159
|
+
SELECT 1
|
|
2160
|
+
FROM linked_device_wallet_session_authorizations AS grant_record
|
|
2161
|
+
JOIN lane_enrollments AS enrollment
|
|
2162
|
+
ON enrollment.namespace = grant_record.namespace
|
|
2163
|
+
AND enrollment.org_id = grant_record.org_id
|
|
2164
|
+
AND enrollment.project_id = grant_record.project_id
|
|
2165
|
+
AND enrollment.env_id = grant_record.env_id
|
|
2166
|
+
AND enrollment.org_id = NEW.linked_scope_org_id
|
|
2167
|
+
AND enrollment.project_id = NEW.linked_scope_project_id
|
|
2168
|
+
AND enrollment.env_id = NEW.linked_scope_env_id
|
|
2169
|
+
AND enrollment.enrollment_id = grant_record.enrollment_id
|
|
2170
|
+
AND enrollment.wallet_id = grant_record.wallet_id
|
|
2171
|
+
AND json_extract(enrollment.lifecycle_json, '$.state') = 'active'
|
|
2172
|
+
AND json_extract(enrollment.lifecycle_json, '$.manifestDigestB64u') = grant_record.key_manifest_digest_b64u
|
|
2173
|
+
JOIN lane_product_epochs AS product
|
|
2174
|
+
ON product.namespace = grant_record.namespace
|
|
2175
|
+
AND product.org_id = grant_record.org_id
|
|
2176
|
+
AND product.project_id = grant_record.project_id
|
|
2177
|
+
AND product.env_id = grant_record.env_id
|
|
2178
|
+
AND product.org_id = NEW.linked_scope_org_id
|
|
2179
|
+
AND product.project_id = NEW.linked_scope_project_id
|
|
2180
|
+
AND product.env_id = NEW.linked_scope_env_id
|
|
2181
|
+
AND product.enrollment_id = grant_record.enrollment_id
|
|
2182
|
+
AND product.wallet_id = grant_record.wallet_id
|
|
2183
|
+
AND product.wallet_id = NEW.linked_wallet_id
|
|
2184
|
+
AND product.enrollment_id = NEW.linked_enrollment_id
|
|
2185
|
+
AND product.wallet_key_id = NEW.linked_wallet_key_id
|
|
2186
|
+
AND product.lane_id = NEW.linked_lane_id
|
|
2187
|
+
AND product.lane_share_epoch = NEW.linked_lane_share_epoch
|
|
2188
|
+
AND product.target_material_activation_id = NEW.material_activation_id
|
|
2189
|
+
AND product.revocation_epoch = NEW.linked_revocation_epoch
|
|
2190
|
+
AND product.state = 'active'
|
|
2191
|
+
AND product.lane_kind = 'linked_device'
|
|
2192
|
+
AND (
|
|
2193
|
+
(NEW.capability_kind = 'near_ed25519_mpc_signing' AND product.key_family = 'ed25519')
|
|
2194
|
+
OR (NEW.capability_kind = 'evm_ecdsa_mpc_signing' AND product.key_family = 'ecdsa_secp256k1')
|
|
2195
|
+
)
|
|
2196
|
+
AND json_extract(product.material_activation_json, '$.activationId') = NEW.material_activation_id
|
|
2197
|
+
AND json_extract(product.material_activation_json, '$.capability') = NEW.material_activation_capability
|
|
2198
|
+
AND json_extract(product.material_activation_json, '$.materialOwner') = NEW.material_activation_owner
|
|
2199
|
+
AND json_extract(product.material_activation_json, '$.keyBinding') = NEW.material_activation_key_binding
|
|
2200
|
+
AND json_extract(product.material_activation_json, '$.lifecycleBinding') = NEW.material_activation_lifecycle_binding
|
|
2201
|
+
AND json_extract(product.material_activation_json, '$.signingWorker') = NEW.material_activation_signing_worker
|
|
2202
|
+
JOIN lane_protocol_operations AS protocol
|
|
2203
|
+
ON protocol.namespace = product.namespace
|
|
2204
|
+
AND protocol.org_id = product.org_id
|
|
2205
|
+
AND protocol.project_id = product.project_id
|
|
2206
|
+
AND protocol.env_id = product.env_id
|
|
2207
|
+
AND protocol.org_id = NEW.linked_scope_org_id
|
|
2208
|
+
AND protocol.project_id = NEW.linked_scope_project_id
|
|
2209
|
+
AND protocol.env_id = NEW.linked_scope_env_id
|
|
2210
|
+
AND protocol.operation_id = product.operation_id
|
|
2211
|
+
AND protocol.enrollment_id = product.enrollment_id
|
|
2212
|
+
AND protocol.enrollment_id = NEW.linked_enrollment_id
|
|
2213
|
+
AND protocol.wallet_id = NEW.linked_wallet_id
|
|
2214
|
+
AND protocol.wallet_key_id = NEW.linked_wallet_key_id
|
|
2215
|
+
AND protocol.target_lane_id = NEW.linked_lane_id
|
|
2216
|
+
AND protocol.target_lane_share_epoch = NEW.linked_lane_share_epoch
|
|
2217
|
+
AND protocol.target_material_activation_id = product.target_material_activation_id
|
|
2218
|
+
AND protocol.target_material_activation_id = NEW.material_activation_id
|
|
2219
|
+
AND json_extract(protocol.lifecycle_json, '$.state') = 'active'
|
|
2220
|
+
WHERE grant_record.namespace = NEW.namespace
|
|
2221
|
+
AND grant_record.org_id = NEW.linked_scope_org_id
|
|
2222
|
+
AND grant_record.project_id = NEW.linked_scope_project_id
|
|
2223
|
+
AND grant_record.env_id = NEW.linked_scope_env_id
|
|
2224
|
+
AND grant_record.org_id = product.org_id
|
|
2225
|
+
AND grant_record.project_id = product.project_id
|
|
2226
|
+
AND grant_record.env_id = product.env_id
|
|
2227
|
+
AND grant_record.tenant_id = NEW.tenant_id
|
|
2228
|
+
AND grant_record.authorization_id = NEW.authorization_id
|
|
2229
|
+
AND grant_record.principal_id = NEW.principal_id
|
|
2230
|
+
AND grant_record.quota_id = NEW.quota_id
|
|
2231
|
+
AND grant_record.wallet_id = NEW.linked_wallet_id
|
|
2232
|
+
AND grant_record.enrollment_id = NEW.linked_enrollment_id
|
|
2233
|
+
AND grant_record.device_id = NEW.linked_device_id
|
|
2234
|
+
AND grant_record.lifecycle_kind = 'active'
|
|
2235
|
+
AND grant_record.expires_at_ms > NEW.claimed_at_ms
|
|
2236
|
+
AND json_extract(grant_record.permission_json, '$.kind') = 'owner_equivalent_signing'
|
|
2237
|
+
AND json_extract(grant_record.permission_json, '$.administrationScope') = 'signing_only'
|
|
2238
|
+
AND json_extract(grant_record.permission_json, '$.localUserPresence') = 'required'
|
|
2239
|
+
)
|
|
2240
|
+
THEN RAISE(ABORT, 'authorization_linked_device_rejected')
|
|
2241
|
+
END;
|
|
2242
|
+
|
|
2243
|
+
UPDATE linked_device_wallet_session_quotas
|
|
2244
|
+
SET remaining_uses = remaining_uses - 1,
|
|
2245
|
+
lifecycle_kind = CASE WHEN remaining_uses = 1 THEN 'exhausted' ELSE 'active' END
|
|
2246
|
+
WHERE NEW.quota_kind = 'consume_reusable_wallet_session'
|
|
2247
|
+
AND namespace = NEW.namespace
|
|
2248
|
+
AND org_id = NEW.linked_scope_org_id
|
|
2249
|
+
AND project_id = NEW.linked_scope_project_id
|
|
2250
|
+
AND env_id = NEW.linked_scope_env_id
|
|
2251
|
+
AND tenant_id = NEW.tenant_id
|
|
2252
|
+
AND quota_id = NEW.quota_id
|
|
2253
|
+
AND authorization_id = NEW.authorization_id
|
|
2254
|
+
AND principal_id = NEW.principal_id
|
|
2255
|
+
AND lifecycle_kind = 'active'
|
|
2256
|
+
AND remaining_uses > 0
|
|
2257
|
+
AND expires_at_ms > NEW.claimed_at_ms;
|
|
2258
|
+
|
|
2259
|
+
SELECT CASE
|
|
2260
|
+
WHEN NEW.quota_kind = 'consume_reusable_wallet_session' AND changes() != 1
|
|
2261
|
+
THEN RAISE(ABORT, 'authorization_wallet_session_quota_rejected')
|
|
2262
|
+
END;
|
|
2263
|
+
END;
|
|
2264
|
+
CREATE TRIGGER authorized_operation_owner_grant_claim_atomic
|
|
2265
|
+
AFTER INSERT ON authorized_operations
|
|
2266
|
+
WHEN NEW.lifecycle_kind = 'claimed'
|
|
2267
|
+
AND NEW.authorization_source_kind = 'authorization_grant'
|
|
2268
|
+
AND NEW.authorization_grant_kind = 'wallet_session_authorization'
|
|
2269
|
+
BEGIN
|
|
2270
|
+
SELECT CASE
|
|
2271
|
+
WHEN NOT EXISTS (
|
|
2272
|
+
SELECT 1
|
|
2273
|
+
FROM reusable_wallet_sessions AS session
|
|
2274
|
+
WHERE session.namespace = NEW.namespace
|
|
2275
|
+
AND session.tenant_id = NEW.tenant_id
|
|
2276
|
+
AND session.authorization_id = NEW.authorization_id
|
|
2277
|
+
AND session.principal_id = NEW.principal_id
|
|
2278
|
+
AND (NEW.quota_kind = 'quota_neutral' OR session.quota_id = NEW.quota_id)
|
|
2279
|
+
AND session.lifecycle_kind = 'active'
|
|
2280
|
+
AND session.expires_at_ms > NEW.claimed_at_ms
|
|
2281
|
+
)
|
|
2282
|
+
THEN RAISE(ABORT, 'authorization_wallet_session_rejected')
|
|
2283
|
+
END;
|
|
2284
|
+
|
|
2285
|
+
UPDATE authorization_wallet_session_quotas
|
|
2286
|
+
SET remaining_uses = remaining_uses - 1,
|
|
2287
|
+
lifecycle_kind = CASE WHEN remaining_uses = 1 THEN 'exhausted' ELSE 'active' END
|
|
2288
|
+
WHERE NEW.quota_kind = 'consume_reusable_wallet_session'
|
|
2289
|
+
AND namespace = NEW.namespace
|
|
2290
|
+
AND tenant_id = NEW.tenant_id
|
|
2291
|
+
AND quota_id = NEW.quota_id
|
|
2292
|
+
AND wallet_session_id = (
|
|
2293
|
+
SELECT session.wallet_session_id
|
|
2294
|
+
FROM reusable_wallet_sessions AS session
|
|
2295
|
+
WHERE session.namespace = NEW.namespace
|
|
2296
|
+
AND session.tenant_id = NEW.tenant_id
|
|
2297
|
+
AND session.authorization_id = NEW.authorization_id
|
|
2298
|
+
AND session.quota_id = NEW.quota_id
|
|
2299
|
+
)
|
|
2300
|
+
AND principal_id = NEW.principal_id
|
|
2301
|
+
AND lifecycle_kind = 'active'
|
|
2302
|
+
AND remaining_uses > 0
|
|
2303
|
+
AND expires_at_ms > NEW.claimed_at_ms;
|
|
2304
|
+
|
|
2305
|
+
SELECT CASE
|
|
2306
|
+
WHEN NEW.quota_kind = 'consume_reusable_wallet_session' AND changes() != 1
|
|
2307
|
+
THEN RAISE(ABORT, 'authorization_wallet_session_quota_rejected')
|
|
2308
|
+
END;
|
|
2309
|
+
END;
|
|
2310
|
+
CREATE TRIGGER authorized_operation_step_up_claim_atomic
|
|
2311
|
+
AFTER INSERT ON authorized_operations
|
|
2312
|
+
WHEN NEW.lifecycle_kind = 'claimed'
|
|
2313
|
+
AND NEW.authorization_source_kind = 'verified_step_up'
|
|
2314
|
+
BEGIN
|
|
2315
|
+
SELECT CASE
|
|
2316
|
+
WHEN NOT EXISTS (
|
|
2317
|
+
SELECT 1
|
|
2318
|
+
FROM verified_grant_evidence_sets AS evidence
|
|
2319
|
+
JOIN authorization_sessions AS session
|
|
2320
|
+
ON session.namespace = evidence.namespace
|
|
2321
|
+
AND session.tenant_id = evidence.tenant_id
|
|
2322
|
+
AND session.session_id = evidence.session_id
|
|
2323
|
+
AND session.principal_id = evidence.principal_id
|
|
2324
|
+
WHERE evidence.namespace = NEW.namespace
|
|
2325
|
+
AND evidence.tenant_id = NEW.tenant_id
|
|
2326
|
+
AND evidence.evidence_set_digest = NEW.evidence_set_digest
|
|
2327
|
+
AND evidence.principal_id = NEW.principal_id
|
|
2328
|
+
AND evidence.capability_kind = NEW.capability_kind
|
|
2329
|
+
AND evidence.operation_kind = NEW.operation_kind
|
|
2330
|
+
AND evidence.lane_digest = NEW.lane_digest
|
|
2331
|
+
AND evidence.intent_digest = NEW.intent_digest
|
|
2332
|
+
AND evidence.display_digest = NEW.display_digest
|
|
2333
|
+
AND evidence.assurance = 'step_up'
|
|
2334
|
+
AND evidence.expires_at_ms > NEW.claimed_at_ms
|
|
2335
|
+
AND session.lifecycle_kind = 'active'
|
|
2336
|
+
AND session.expires_at_ms > NEW.claimed_at_ms
|
|
2337
|
+
)
|
|
2338
|
+
THEN RAISE(ABORT, 'authorization_evidence_claim_rejected')
|
|
2339
|
+
END;
|
|
2340
|
+
END;
|
|
2341
|
+
CREATE TRIGGER lane_cas_guard_no_delete
|
|
2342
|
+
BEFORE DELETE ON lane_cas_guard
|
|
2343
|
+
BEGIN
|
|
2344
|
+
SELECT RAISE(ABORT, 'lane_cas_guard is immutable');
|
|
2345
|
+
END;
|
|
2346
|
+
CREATE TRIGGER linked_device_wallet_session_authorization_identity_insert
|
|
2347
|
+
BEFORE INSERT ON linked_device_wallet_session_authorizations
|
|
2348
|
+
WHEN NEW.principal_id != 'linked-device:' || NEW.device_id
|
|
2349
|
+
OR NEW.wallet_session_id = NEW.authorization_id
|
|
2350
|
+
OR NEW.wallet_session_id = NEW.quota_id
|
|
2351
|
+
OR NEW.authorization_id = NEW.quota_id
|
|
2352
|
+
OR json_extract(NEW.permission_json, '$.kind') IS NOT 'owner_equivalent_signing'
|
|
2353
|
+
OR json_extract(NEW.permission_json, '$.administrationScope') IS NOT 'signing_only'
|
|
2354
|
+
OR json_extract(NEW.permission_json, '$.localUserPresence') IS NOT 'required'
|
|
2355
|
+
BEGIN
|
|
2356
|
+
SELECT RAISE(ABORT, 'linked_device_wallet_session_authorization_identity_rejected');
|
|
2357
|
+
END;
|
|
2358
|
+
CREATE TRIGGER linked_device_wallet_session_authorization_identity_update
|
|
2359
|
+
BEFORE UPDATE OF principal_id, device_id, authorization_id, wallet_session_id, quota_id, permission_json
|
|
2360
|
+
ON linked_device_wallet_session_authorizations
|
|
2361
|
+
WHEN NEW.principal_id != 'linked-device:' || NEW.device_id
|
|
2362
|
+
OR NEW.wallet_session_id = NEW.authorization_id
|
|
2363
|
+
OR NEW.wallet_session_id = NEW.quota_id
|
|
2364
|
+
OR NEW.authorization_id = NEW.quota_id
|
|
2365
|
+
OR json_extract(NEW.permission_json, '$.kind') IS NOT 'owner_equivalent_signing'
|
|
2366
|
+
OR json_extract(NEW.permission_json, '$.administrationScope') IS NOT 'signing_only'
|
|
2367
|
+
OR json_extract(NEW.permission_json, '$.localUserPresence') IS NOT 'required'
|
|
2368
|
+
BEGIN
|
|
2369
|
+
SELECT RAISE(ABORT, 'linked_device_wallet_session_authorization_identity_rejected');
|
|
2370
|
+
END;
|
|
2371
|
+
CREATE TRIGGER linked_device_wallet_session_authorization_revoke_atomic
|
|
2372
|
+
AFTER UPDATE OF lifecycle_kind ON linked_device_wallet_session_authorizations
|
|
2373
|
+
WHEN OLD.lifecycle_kind = 'active' AND NEW.lifecycle_kind = 'revoked'
|
|
2374
|
+
BEGIN
|
|
2375
|
+
UPDATE linked_device_wallet_session_quotas
|
|
2376
|
+
SET remaining_uses = 0,
|
|
2377
|
+
lifecycle_kind = 'revoked'
|
|
2378
|
+
WHERE namespace = NEW.namespace
|
|
2379
|
+
AND org_id = NEW.org_id
|
|
2380
|
+
AND project_id = NEW.project_id
|
|
2381
|
+
AND env_id = NEW.env_id
|
|
2382
|
+
AND tenant_id = NEW.tenant_id
|
|
2383
|
+
AND authorization_id = NEW.authorization_id
|
|
2384
|
+
AND quota_id = NEW.quota_id
|
|
2385
|
+
AND lifecycle_kind != 'revoked';
|
|
2386
|
+
|
|
2387
|
+
SELECT CASE
|
|
2388
|
+
WHEN changes() != 1
|
|
2389
|
+
THEN RAISE(ABORT, 'linked_device_wallet_session_quota_revoke_rejected')
|
|
2390
|
+
END;
|
|
2391
|
+
END;
|
|
2392
|
+
CREATE TRIGGER linked_device_wallet_session_quota_revoke_guard
|
|
2393
|
+
BEFORE UPDATE OF lifecycle_kind, remaining_uses ON linked_device_wallet_session_quotas
|
|
2394
|
+
WHEN NEW.lifecycle_kind = 'revoked'
|
|
2395
|
+
AND NOT EXISTS (
|
|
2396
|
+
SELECT 1
|
|
2397
|
+
FROM linked_device_wallet_session_authorizations AS authorization
|
|
2398
|
+
WHERE authorization.namespace = NEW.namespace
|
|
2399
|
+
AND authorization.org_id = NEW.org_id
|
|
2400
|
+
AND authorization.project_id = NEW.project_id
|
|
2401
|
+
AND authorization.env_id = NEW.env_id
|
|
2402
|
+
AND authorization.tenant_id = NEW.tenant_id
|
|
2403
|
+
AND authorization.authorization_id = NEW.authorization_id
|
|
2404
|
+
AND authorization.quota_id = NEW.quota_id
|
|
2405
|
+
AND authorization.lifecycle_kind = 'revoked'
|
|
2406
|
+
)
|
|
2407
|
+
BEGIN
|
|
2408
|
+
SELECT RAISE(ABORT, 'linked_device_wallet_session_quota_revoke_rejected');
|
|
2409
|
+
END;
|
|
2410
|
+
CREATE TRIGGER registration_ceremony_cas_guard_no_delete
|
|
2411
|
+
BEFORE DELETE ON registration_ceremony_cas_guard
|
|
2412
|
+
BEGIN
|
|
2413
|
+
SELECT RAISE(ABORT, 'registration_ceremony_cas_guard is immutable');
|
|
2414
|
+
END;
|
|
2415
|
+
CREATE TRIGGER reusable_wallet_session_authorization_identity_insert
|
|
2416
|
+
BEFORE INSERT ON reusable_wallet_sessions
|
|
2417
|
+
WHEN NEW.authorization_id IS NULL
|
|
2418
|
+
OR trim(NEW.authorization_id) = ''
|
|
2419
|
+
OR NEW.authorization_id = NEW.wallet_session_id
|
|
2420
|
+
OR NEW.authorization_id = NEW.quota_id
|
|
2421
|
+
OR NEW.wallet_session_id = NEW.quota_id
|
|
2422
|
+
BEGIN
|
|
2423
|
+
SELECT RAISE(ABORT, 'reusable_wallet_session_authorization_identity_rejected');
|
|
2424
|
+
END;
|
|
2425
|
+
CREATE TRIGGER reusable_wallet_session_authorization_identity_update
|
|
2426
|
+
BEFORE UPDATE OF authorization_id, wallet_session_id ON reusable_wallet_sessions
|
|
2427
|
+
WHEN NEW.authorization_id IS NULL
|
|
2428
|
+
OR trim(NEW.authorization_id) = ''
|
|
2429
|
+
OR NEW.authorization_id = NEW.wallet_session_id
|
|
2430
|
+
OR NEW.authorization_id = NEW.quota_id
|
|
2431
|
+
OR NEW.wallet_session_id = NEW.quota_id
|
|
2432
|
+
BEGIN
|
|
2433
|
+
SELECT RAISE(ABORT, 'reusable_wallet_session_authorization_identity_rejected');
|
|
2434
|
+
END;
|
|
2435
|
+
CREATE TRIGGER router_ab_yao_versioned_json_cas_guard_no_delete
|
|
2436
|
+
BEFORE DELETE ON router_ab_yao_versioned_json_cas_guard
|
|
2437
|
+
BEGIN
|
|
2438
|
+
SELECT RAISE(ABORT, 'router_ab_yao_versioned_json_cas_guard is immutable');
|
|
2439
|
+
END;
|
|
2440
|
+
CREATE TRIGGER trg_hosted_wallet_exchange_create_target_session
|
|
2441
|
+
AFTER UPDATE OF lifecycle_kind ON hosted_wallet_session_exchange_codes
|
|
2442
|
+
WHEN OLD.lifecycle_kind = 'issued' AND NEW.lifecycle_kind = 'consumed'
|
|
2443
|
+
BEGIN
|
|
2444
|
+
INSERT INTO authorization_sessions (
|
|
2445
|
+
namespace,
|
|
2446
|
+
tenant_id,
|
|
2447
|
+
session_id,
|
|
2448
|
+
principal_id,
|
|
2449
|
+
auth_source_kind,
|
|
2450
|
+
auth_source_json,
|
|
2451
|
+
device_id,
|
|
2452
|
+
audience_kind,
|
|
2453
|
+
audience_json,
|
|
2454
|
+
app_session_version,
|
|
2455
|
+
assurance,
|
|
2456
|
+
lifecycle_kind,
|
|
2457
|
+
created_at_ms,
|
|
2458
|
+
expires_at_ms
|
|
2459
|
+
)
|
|
2460
|
+
SELECT
|
|
2461
|
+
source.namespace,
|
|
2462
|
+
source.tenant_id,
|
|
2463
|
+
NEW.target_session_id,
|
|
2464
|
+
source.principal_id,
|
|
2465
|
+
source.auth_source_kind,
|
|
2466
|
+
source.auth_source_json,
|
|
2467
|
+
source.device_id,
|
|
2468
|
+
'hosted_wallet_iframe',
|
|
2469
|
+
json_object('appOrigin', NEW.app_origin, 'walletOrigin', NEW.wallet_origin),
|
|
2470
|
+
source.app_session_version,
|
|
2471
|
+
source.assurance,
|
|
2472
|
+
'active',
|
|
2473
|
+
NEW.consumed_at_ms,
|
|
2474
|
+
source.expires_at_ms
|
|
2475
|
+
FROM authorization_sessions AS source
|
|
2476
|
+
WHERE source.namespace = NEW.namespace
|
|
2477
|
+
AND source.tenant_id = NEW.tenant_id
|
|
2478
|
+
AND source.session_id = NEW.source_session_id
|
|
2479
|
+
AND source.lifecycle_kind = 'active'
|
|
2480
|
+
AND source.expires_at_ms > NEW.consumed_at_ms;
|
|
2481
|
+
|
|
2482
|
+
SELECT CASE
|
|
2483
|
+
WHEN changes() != 1
|
|
2484
|
+
THEN RAISE(ABORT, 'hosted_wallet_source_session_unavailable')
|
|
2485
|
+
END;
|
|
2486
|
+
END;
|