@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.
Files changed (1075) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +8 -0
  3. package/artifact-manifest.json +464 -0
  4. package/cloudflare-router-ab/build/deriver-a/index.js +2 -0
  5. package/cloudflare-router-ab/build/deriver-a/index_bg.wasm +0 -0
  6. package/cloudflare-router-ab/build/deriver-a/package.json +16 -0
  7. package/cloudflare-router-ab/build/deriver-a/worker/shim.mjs +4 -0
  8. package/cloudflare-router-ab/build/deriver-b/index.js +2 -0
  9. package/cloudflare-router-ab/build/deriver-b/index_bg.wasm +0 -0
  10. package/cloudflare-router-ab/build/deriver-b/package.json +16 -0
  11. package/cloudflare-router-ab/build/deriver-b/worker/shim.mjs +4 -0
  12. package/cloudflare-router-ab/build/local-tools/darwin-arm64/router_ab_local_init +0 -0
  13. package/cloudflare-router-ab/build/router/index.js +2 -0
  14. package/cloudflare-router-ab/build/router/index_bg.wasm +0 -0
  15. package/cloudflare-router-ab/build/router/package.json +16 -0
  16. package/cloudflare-router-ab/build/router/worker/shim.mjs +4 -0
  17. package/cloudflare-router-ab/build/signing-worker/index.js +2 -0
  18. package/cloudflare-router-ab/build/signing-worker/index_bg.wasm +0 -0
  19. package/cloudflare-router-ab/build/signing-worker/package.json +16 -0
  20. package/cloudflare-router-ab/build/signing-worker/worker/shim.mjs +4 -0
  21. package/cloudflare-router-ab/build/tenant-root-control-plane/index.js +2 -0
  22. package/cloudflare-router-ab/build/tenant-root-control-plane/index_bg.wasm +0 -0
  23. package/cloudflare-router-ab/build/tenant-root-control-plane/package.json +16 -0
  24. package/cloudflare-router-ab/build/tenant-root-control-plane/worker/shim.mjs +4 -0
  25. package/cloudflare-router-ab/env/tenant-root-control-plane.local.example +6 -0
  26. package/cloudflare-router-ab/migrations/deriver-a/0001_role_private_storage.sql +14 -0
  27. package/cloudflare-router-ab/migrations/deriver-a/0002_tenant_root_role_shares.sql +32 -0
  28. package/cloudflare-router-ab/migrations/deriver-a/0003_tenant_root_command_replays.sql +76 -0
  29. package/cloudflare-router-ab/migrations/deriver-a/0004_tenant_root_creation_admission.sql +7 -0
  30. package/cloudflare-router-ab/migrations/deriver-a/0005_tenant_root_refresh_state.sql +15 -0
  31. package/cloudflare-router-ab/migrations/deriver-a/0006_tenant_root_restore_import_keys.sql +119 -0
  32. package/cloudflare-router-ab/migrations/deriver-a/0007_tenant_root_restore_refresh_attempts.sql +103 -0
  33. package/cloudflare-router-ab/migrations/deriver-a/0008_tenant_root_restore_promotion.sql +40 -0
  34. package/cloudflare-router-ab/migrations/deriver-a/0009_tenant_root_restore_preactivation_cleanup.sql +8 -0
  35. package/cloudflare-router-ab/migrations/deriver-a/0010_tenant_root_recovery_attempts.sql +26 -0
  36. package/cloudflare-router-ab/migrations/deriver-a/0011_tenant_root_source_retirement.sql +100 -0
  37. package/cloudflare-router-ab/migrations/deriver-b/0001_role_private_storage.sql +14 -0
  38. package/cloudflare-router-ab/migrations/deriver-b/0002_tenant_root_role_shares.sql +32 -0
  39. package/cloudflare-router-ab/migrations/deriver-b/0003_tenant_root_command_replays.sql +76 -0
  40. package/cloudflare-router-ab/migrations/deriver-b/0004_tenant_root_creation_admission.sql +7 -0
  41. package/cloudflare-router-ab/migrations/deriver-b/0005_tenant_root_refresh_state.sql +15 -0
  42. package/cloudflare-router-ab/migrations/deriver-b/0006_tenant_root_restore_import_keys.sql +119 -0
  43. package/cloudflare-router-ab/migrations/deriver-b/0007_tenant_root_restore_refresh_attempts.sql +103 -0
  44. package/cloudflare-router-ab/migrations/deriver-b/0008_tenant_root_restore_promotion.sql +40 -0
  45. package/cloudflare-router-ab/migrations/deriver-b/0009_tenant_root_restore_preactivation_cleanup.sql +8 -0
  46. package/cloudflare-router-ab/migrations/deriver-b/0010_tenant_root_recovery_attempts.sql +26 -0
  47. package/cloudflare-router-ab/migrations/deriver-b/0011_tenant_root_source_retirement.sql +100 -0
  48. package/cloudflare-router-ab/migrations/signing-worker/0001_private_storage.sql +67 -0
  49. package/cloudflare-router-ab/migrations/signing-worker/0002_activation_revocation_fences.sql +3 -0
  50. package/cloudflare-router-ab/scripts/bootstrap-local-tenant-root.mjs +182 -0
  51. package/cloudflare-router-ab/scripts/initialize-local-wallet.mjs +17 -0
  52. package/cloudflare-router-ab/scripts/local-key-material.mjs +29 -0
  53. package/cloudflare-router-ab/scripts/prepare-local-runtime-config.mjs +1110 -0
  54. package/cloudflare-router-ab/scripts/start-local-role-workers.mjs +333 -0
  55. package/cloudflare-router-ab/scripts/start-local-wallet-system.mjs +427 -0
  56. package/cloudflare-router-ab/wrangler.deriver-a.toml +123 -0
  57. package/cloudflare-router-ab/wrangler.deriver-b.toml +123 -0
  58. package/cloudflare-router-ab/wrangler.router.toml +126 -0
  59. package/cloudflare-router-ab/wrangler.signing-worker.toml +86 -0
  60. package/cloudflare-router-ab/wrangler.tenant-root-control-plane.toml +56 -0
  61. package/dist/esm/authorization/capabilityPolicy.js +96 -0
  62. package/dist/esm/authorization/domain.js +434 -0
  63. package/dist/esm/authorization/factorEvidence.js +405 -0
  64. package/dist/esm/authorization/service.js +319 -0
  65. package/dist/esm/authorization/vaultProxyUse.js +295 -0
  66. package/dist/esm/cloud-host.js +126 -0
  67. package/dist/esm/core/AuthService.js +2 -0
  68. package/dist/esm/core/EmailOtpRecords.js +361 -0
  69. package/dist/esm/core/EmailOtpStores.js +1460 -0
  70. package/dist/esm/core/IdentityStore.js +617 -0
  71. package/dist/esm/core/NearPublicKeyStore.js +242 -0
  72. package/dist/esm/core/RegistrationCeremonyStore.js +2101 -0
  73. package/dist/esm/core/SessionService.js +255 -0
  74. package/dist/esm/core/ThresholdService/config.js +111 -0
  75. package/dist/esm/core/ThresholdService/ecdsaClientRootProof.js +27 -0
  76. package/dist/esm/core/ThresholdService/evmCryptoWasm.js +167 -0
  77. package/dist/esm/core/ThresholdService/index.js +4 -0
  78. package/dist/esm/core/ThresholdService/kv.js +368 -0
  79. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.js +360 -0
  80. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPoolFillLiveSession.js +282 -0
  81. package/dist/esm/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.js +272 -0
  82. package/dist/esm/core/ThresholdService/routerAb/internalServiceHttp.js +57 -0
  83. package/dist/esm/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.js +115 -0
  84. package/dist/esm/core/ThresholdService/routerAbNormalSigningPolicy.js +31 -0
  85. package/dist/esm/core/ThresholdService/secureRandomId.js +9 -0
  86. package/dist/esm/core/ThresholdService/stores/CloudflareDurableObjectStore.js +603 -0
  87. package/dist/esm/core/ThresholdService/stores/EcdsaSigningStore.js +422 -0
  88. package/dist/esm/core/ThresholdService/stores/KeyStore.js +140 -0
  89. package/dist/esm/core/ThresholdService/stores/SessionStore.js +437 -0
  90. package/dist/esm/core/ThresholdService/stores/StoreConfig.js +13 -0
  91. package/dist/esm/core/ThresholdService/stores/WalletSessionStore.js +722 -0
  92. package/dist/esm/core/ThresholdService/validation.js +718 -0
  93. package/dist/esm/core/WalletAuthMethodStore.js +180 -0
  94. package/dist/esm/core/WalletStore.js +495 -0
  95. package/dist/esm/core/WebAuthnAuthenticatorStore.js +485 -0
  96. package/dist/esm/core/WebAuthnCredentialBindingStore.js +594 -0
  97. package/dist/esm/core/WebAuthnLoginChallengeStore.js +432 -0
  98. package/dist/esm/core/WebAuthnSyncChallengeStore.js +434 -0
  99. package/dist/esm/core/authService/AuthService.js +611 -0
  100. package/dist/esm/core/authService/bytes.js +22 -0
  101. package/dist/esm/core/authService/configValues.js +15 -0
  102. package/dist/esm/core/authService/emailOtpChallengeOperations.js +126 -0
  103. package/dist/esm/core/authService/emailOtpChallengeProof.js +214 -0
  104. package/dist/esm/core/authService/emailOtpChallengeVerification.js +335 -0
  105. package/dist/esm/core/authService/emailOtpChallenges.js +260 -0
  106. package/dist/esm/core/authService/emailOtpConfig.js +231 -0
  107. package/dist/esm/core/authService/emailOtpDelivery.js +169 -0
  108. package/dist/esm/core/authService/emailOtpEnrollment.js +141 -0
  109. package/dist/esm/core/authService/emailOtpGrant.js +74 -0
  110. package/dist/esm/core/authService/emailOtpRegistrationEnrollment.js +322 -0
  111. package/dist/esm/core/authService/emailOtpSeal.js +78 -0
  112. package/dist/esm/core/authService/emailOtpUnlock.js +264 -0
  113. package/dist/esm/core/authService/githubOAuth.js +140 -0
  114. package/dist/esm/core/authService/googleEmailOtpErrors.js +6 -0
  115. package/dist/esm/core/authService/googleEmailOtpOperations.js +141 -0
  116. package/dist/esm/core/authService/googleEmailOtpRegistration.js +674 -0
  117. package/dist/esm/core/authService/identity.js +57 -0
  118. package/dist/esm/core/authService/identityOperations.js +32 -0
  119. package/dist/esm/core/authService/nearAccountOperations.js +229 -0
  120. package/dist/esm/core/authService/nearPrivateKeySigning.js +110 -0
  121. package/dist/esm/core/authService/nearPublicKeyMetadata.js +127 -0
  122. package/dist/esm/core/authService/nearTransactions.js +139 -0
  123. package/dist/esm/core/authService/oidcVerification.js +262 -0
  124. package/dist/esm/core/authService/portableCrypto.js +19 -0
  125. package/dist/esm/core/authService/rateLimits.js +117 -0
  126. package/dist/esm/core/authService/record.js +8 -0
  127. package/dist/esm/core/authService/registrationThresholdHelpers.js +131 -0
  128. package/dist/esm/core/authService/runtime.js +45 -0
  129. package/dist/esm/core/authService/signerWasmUrls.js +20 -0
  130. package/dist/esm/core/authService/storeRegistry.js +113 -0
  131. package/dist/esm/core/authService/thresholdEcdsaKeyInventory.js +146 -0
  132. package/dist/esm/core/authService/thresholdRuntimePolicy.js +19 -0
  133. package/dist/esm/core/authService/thresholdStoreSummary.js +32 -0
  134. package/dist/esm/core/authService/walletRegistrationPlanning.js +49 -0
  135. package/dist/esm/core/authService/wasm.js +78 -0
  136. package/dist/esm/core/authService/webauthn.js +746 -0
  137. package/dist/esm/core/authService/webauthnAuthority.js +17 -0
  138. package/dist/esm/core/authService/webauthnOidcHelpers.js +91 -0
  139. package/dist/esm/core/authService/webauthnWalletBinding.js +157 -0
  140. package/dist/esm/core/config.js +110 -0
  141. package/dist/esm/core/d1IdentityStore.js +340 -0
  142. package/dist/esm/core/d1WalletAuthMethodStore.js +768 -0
  143. package/dist/esm/core/d1WalletStore.js +724 -0
  144. package/dist/esm/core/defaultConfigsServer.js +9 -0
  145. package/dist/esm/core/deviceLinking/index.js +5 -0
  146. package/dist/esm/core/deviceLinking/linkedDeviceEd25519ExportRoot.js +0 -0
  147. package/dist/esm/core/deviceLinking/linkedDeviceEmailOtpGrant.js +211 -0
  148. package/dist/esm/core/deviceLinking/linkedDeviceManagement.js +279 -0
  149. package/dist/esm/core/deviceLinking/linkedDeviceSession.js +1419 -0
  150. package/dist/esm/core/deviceLinking/requestProof.js +172 -0
  151. package/dist/esm/core/errors.js +54 -0
  152. package/dist/esm/core/hostedAccountIds.js +225 -0
  153. package/dist/esm/core/keyMaterialBrands.js +58 -0
  154. package/dist/esm/core/logger.js +39 -0
  155. package/dist/esm/core/nearKeys.js +20 -0
  156. package/dist/esm/core/nearRelayerAccountProvisioning.js +713 -0
  157. package/dist/esm/core/nearSignerWasmRuntime.js +87 -0
  158. package/dist/esm/core/registrationContracts.js +2 -0
  159. package/dist/esm/core/routerAbSigning/RouterAbEcdsaPresignRuntime.js +88 -0
  160. package/dist/esm/core/routerAbSigning/RouterAbNormalSigningRuntime.js +101 -0
  161. package/dist/esm/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.js +39 -0
  162. package/dist/esm/core/routerAbSigning/createRouterAbSigningRuntimes.js +91 -0
  163. package/dist/esm/core/rpcClients/near/NearClient.js +389 -0
  164. package/dist/esm/core/sessionValidation.js +0 -0
  165. package/dist/esm/core/signingLanes/LaneAggregateRevocationApplicationService.js +86 -0
  166. package/dist/esm/core/signingLanes/LaneEffectJournalStore.js +0 -0
  167. package/dist/esm/core/signingLanes/LaneEnrollmentActivation.js +324 -0
  168. package/dist/esm/core/signingLanes/LaneEnrollmentRevocation.js +173 -0
  169. package/dist/esm/core/signingLanes/LaneLifecycleApplicationService.js +200 -0
  170. package/dist/esm/core/signingLanes/LaneLifecycleStore.js +24 -0
  171. package/dist/esm/core/signingLanes/SigningLaneStore.js +0 -0
  172. package/dist/esm/core/signingLanes/WalletExecutionLaneProjection.js +296 -0
  173. package/dist/esm/core/signingLanes/WalletKeyStore.js +0 -0
  174. package/dist/esm/core/signingLanes/ecdsaServerRetirement.js +78 -0
  175. package/dist/esm/core/signingLanes/ed25519ServerRetirement.js +71 -0
  176. package/dist/esm/core/signingLanes/index.js +8 -0
  177. package/dist/esm/core/signingLanes/signingWorkerLaneMaterialIdentity.js +0 -0
  178. package/dist/esm/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.js +305 -0
  179. package/dist/esm/core/threeRouteRegistrationContracts.js +5 -0
  180. package/dist/esm/core/thresholdEcdsaChainTarget.js +49 -0
  181. package/dist/esm/core/types.js +8 -0
  182. package/dist/esm/core/utils.js +14 -0
  183. package/dist/esm/delegateAction/index.js +136 -0
  184. package/dist/esm/hosted-wallet-gateway-worker.js +18 -0
  185. package/dist/esm/hosted-wallet-gateway.js +701 -0
  186. package/dist/esm/index.js +53 -0
  187. package/dist/esm/local-hosted-wallet-gateway-worker.js +23 -0
  188. package/dist/esm/node_modules/@near-js/types/lib/esm/provider/response.js +17 -0
  189. package/dist/esm/router/auth/authRequestValidation.js +264 -0
  190. package/dist/esm/router/auth/commonRouterUtils.js +305 -0
  191. package/dist/esm/router/auth/routerApiCredentialAuth.js +91 -0
  192. package/dist/esm/router/auth/routerApiKeyAuth.js +63 -0
  193. package/dist/esm/router/auth/walletSessionFailure.js +49 -0
  194. package/dist/esm/router/auth/webAuthnCredentialCodecs.js +107 -0
  195. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.js +84 -0
  196. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthConfig.js +321 -0
  197. package/dist/esm/router/cloudflare/d1/auth/d1RouterApiAuthService.js +1581 -0
  198. package/dist/esm/router/cloudflare/d1/authorization/d1AuthorizationStore.js +1820 -0
  199. package/dist/esm/router/cloudflare/d1/authorization/d1VaultProxyStore.js +122 -0
  200. package/dist/esm/router/cloudflare/d1/authorization/walletSessionAuthorityProjection.js +119 -0
  201. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.js +1831 -0
  202. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.js +118 -0
  203. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.js +81 -0
  204. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.js +539 -0
  205. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceManagementService.js +92 -0
  206. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.js +560 -0
  207. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.js +136 -0
  208. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.js +95 -0
  209. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.js +91 -0
  210. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionService.js +15 -0
  211. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.js +732 -0
  212. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.js +195 -0
  213. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetAuthenticatorStore.js +100 -0
  214. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.js +867 -0
  215. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.js +169 -0
  216. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.js +255 -0
  217. package/dist/esm/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkSourceReader.js +128 -0
  218. package/dist/esm/router/cloudflare/d1/deviceLinking/index.js +15 -0
  219. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.js +311 -0
  220. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.js +21 -0
  221. package/dist/esm/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoWalletSigner.js +65 -0
  222. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.js +216 -0
  223. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.js +326 -0
  224. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.js +346 -0
  225. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.js +495 -0
  226. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpDeliveryRuntime.js +157 -0
  227. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.js +248 -0
  228. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.js +66 -0
  229. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.js +76 -0
  230. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.js +539 -0
  231. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.js +404 -0
  232. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.js +200 -0
  233. package/dist/esm/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.js +84 -0
  234. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.js +217 -0
  235. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.js +485 -0
  236. package/dist/esm/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.js +509 -0
  237. package/dist/esm/router/cloudflare/d1/identity/d1IdentityRecords.js +51 -0
  238. package/dist/esm/router/cloudflare/d1/identity/d1IdentityService.js +135 -0
  239. package/dist/esm/router/cloudflare/d1/near/d1NearPublicKeyStore.js +62 -0
  240. package/dist/esm/router/cloudflare/d1/oidc/d1OidcBoundary.js +272 -0
  241. package/dist/esm/router/cloudflare/d1/oidc/d1OidcVerificationService.js +132 -0
  242. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.js +628 -0
  243. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.js +871 -0
  244. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.js +823 -0
  245. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpAttemptStore.js +38 -0
  246. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.js +304 -0
  247. package/dist/esm/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.js +793 -0
  248. package/dist/esm/router/cloudflare/d1/registration/d1EvmFamilyEcdsaRegistrationBranch.js +120 -0
  249. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.js +317 -0
  250. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.js +2084 -0
  251. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.js +309 -0
  252. package/dist/esm/router/cloudflare/d1/registration/d1RegistrationIntentService.js +120 -0
  253. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.js +263 -0
  254. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationService.js +3887 -0
  255. package/dist/esm/router/cloudflare/d1/registration/d1WalletRegistrationSetup.js +182 -0
  256. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.js +399 -0
  257. package/dist/esm/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.js +486 -0
  258. package/dist/esm/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.js +146 -0
  259. package/dist/esm/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.js +10 -0
  260. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.js +22 -0
  261. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.js +167 -0
  262. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.js +38 -0
  263. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.js +20 -0
  264. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.js +1459 -0
  265. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneLockStore.js +114 -0
  266. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.js +16 -0
  267. package/dist/esm/router/cloudflare/d1/signingLanes/d1LaneRecords.js +170 -0
  268. package/dist/esm/router/cloudflare/d1/signingLanes/index.js +10 -0
  269. package/dist/esm/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.js +412 -0
  270. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAddSignerService.js +1396 -0
  271. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.js +285 -0
  272. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthMethodService.js +2018 -0
  273. package/dist/esm/router/cloudflare/d1/wallet/d1WalletAuthorityStore.js +792 -0
  274. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.js +635 -0
  275. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnRecords.js +538 -0
  276. package/dist/esm/router/cloudflare/d1/webauthn/d1WebAuthnStore.js +264 -0
  277. package/dist/esm/router/cloudflare/durableObjects/thresholdStore.js +514 -0
  278. package/dist/esm/router/cloudflare/durableObjects/versionedJsonRecordStore.js +192 -0
  279. package/dist/esm/router/cloudflare/runtime/cloudflare.types.js +0 -0
  280. package/dist/esm/router/cloudflare/runtime/cloudflareSignerWasm.js +8 -0
  281. package/dist/esm/router/cloudflare/runtime/createCloudflareRouter.js +19 -0
  282. package/dist/esm/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.js +94 -0
  283. package/dist/esm/router/cloudflare/runtime/ed25519SessionAdapter.js +106 -0
  284. package/dist/esm/router/cloudflare/runtime/environment.js +25 -0
  285. package/dist/esm/router/cloudflare/runtime/routerAbPrewarm.js +34 -0
  286. package/dist/esm/router/cloudflare/runtime/routerAbServiceBindings.js +33 -0
  287. package/dist/esm/router/cloudflare/runtime/sessionAdapterRuntime.js +104 -0
  288. package/dist/esm/router/cloudflare/runtime/staticWalletConsoleBinding.js +168 -0
  289. package/dist/esm/router/cloudflare/runtime/tenantRootCreationGrant.js +147 -0
  290. package/dist/esm/router/cloudflare/runtime/walletConsoleOps.js +143 -0
  291. package/dist/esm/router/cloudflare/runtime/walletConsoleOpsClient.js +227 -0
  292. package/dist/esm/router/cloudflare/runtime/walletConsoleTenantRootLineage.js +30 -0
  293. package/dist/esm/router/cloudflare/runtime/walletControlOps.js +107 -0
  294. package/dist/esm/router/cloudflare/runtime/walletGateway.js +149 -0
  295. package/dist/esm/router/cloudflare/runtime/walletRuntimeOps.js +322 -0
  296. package/dist/esm/router/cloudflare/runtime/walletRuntimeOpsHandler.js +48 -0
  297. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.js +597 -0
  298. package/dist/esm/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.js +272 -0
  299. package/dist/esm/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.js +477 -0
  300. package/dist/esm/router/cloudflare/signingLanes/index.js +4 -0
  301. package/dist/esm/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.js +32 -0
  302. package/dist/esm/router/cloudflare-adaptor.js +45 -0
  303. package/dist/esm/router/cloudflare.js +42794 -0
  304. package/dist/esm/router/domains/ecdsa/routerAbEcdsaStrictRegistration.js +738 -0
  305. package/dist/esm/router/domains/ecdsa/thresholdEcdsaRequestValidation.js +134 -0
  306. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.js +368 -0
  307. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.js +624 -0
  308. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.js +143 -0
  309. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.js +270 -0
  310. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.js +31 -0
  311. package/dist/esm/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.js +162 -0
  312. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.js +1366 -0
  313. package/dist/esm/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.js +465 -0
  314. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.js +1609 -0
  315. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.js +540 -0
  316. package/dist/esm/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.js +394 -0
  317. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.js +572 -0
  318. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.js +555 -0
  319. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.js +268 -0
  320. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.js +329 -0
  321. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.js +423 -0
  322. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.js +432 -0
  323. package/dist/esm/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.js +58 -0
  324. package/dist/esm/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.js +0 -0
  325. package/dist/esm/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.js +0 -0
  326. package/dist/esm/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.js +275 -0
  327. package/dist/esm/router/domains/emailOtp/emailOtpExportPolicy.js +70 -0
  328. package/dist/esm/router/domains/emailOtp/emailOtpRequestValidation.js +34 -0
  329. package/dist/esm/router/domains/emailOtp/emailOtpRouteHandlers.js +218 -0
  330. package/dist/esm/router/domains/emailOtp/emailOtpSessionRouteHelpers.js +210 -0
  331. package/dist/esm/router/domains/passkeyCustody/envelopeRevocationAdmission.js +26 -0
  332. package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.js +107 -0
  333. package/dist/esm/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.js +45 -0
  334. package/dist/esm/router/domains/passkeyCustody/registrationCustodyOutcome.js +47 -0
  335. package/dist/esm/router/domains/passkeyCustody/verifiedCustodyFactor.js +46 -0
  336. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.js +32 -0
  337. package/dist/esm/router/domains/passkeyCustody/walletCustodyRegistrationCommit.js +170 -0
  338. package/dist/esm/router/domains/passkeyCustody/walletRecoveryAttempt.js +64 -0
  339. package/dist/esm/router/domains/passkeyCustody/walletRecoveryFinalization.js +652 -0
  340. package/dist/esm/router/domains/passkeyCustody/walletRecoveryKeyManifest.js +396 -0
  341. package/dist/esm/router/domains/passkeyCustody/walletRecoveryRotation.js +87 -0
  342. package/dist/esm/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.js +89 -0
  343. package/dist/esm/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.js +106 -0
  344. package/dist/esm/router/domains/signingOperations/routerAbPrivateSigningWorker.js +2669 -0
  345. package/dist/esm/router/domains/signingOperations/walletExecutionAdmission.js +228 -0
  346. package/dist/esm/router/domains/syncAccount/syncAccountRequestValidation.js +78 -0
  347. package/dist/esm/router/domains/tenantRoot/tenantRootCustodyLineage.js +0 -0
  348. package/dist/esm/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.js +55 -0
  349. package/dist/esm/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.js +56 -0
  350. package/dist/esm/router/domains/tenantRoot/tenantRootIdentityResolution.js +111 -0
  351. package/dist/esm/router/domains/walletRegistration/walletRegistrationInputs.js +0 -0
  352. package/dist/esm/router/domains/walletRegistration/walletRegistrationRoutes.js +2199 -0
  353. package/dist/esm/router/domains/walletRegistration/walletRegistrationSetupPayload.js +155 -0
  354. package/dist/esm/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.js +84 -0
  355. package/dist/esm/router/domains/walletUnlock/walletUnlockRouteHandlers.js +1142 -0
  356. package/dist/esm/router/express-adaptor.js +84 -0
  357. package/dist/esm/router/express.js +26616 -0
  358. package/dist/esm/router/framework/apiCredentialPorts.js +11 -0
  359. package/dist/esm/router/framework/applyRouteMetering.js +26 -0
  360. package/dist/esm/router/framework/authServicePort.js +30 -0
  361. package/dist/esm/router/framework/enforceRoutePolicy.js +92 -0
  362. package/dist/esm/router/framework/http.js +87 -0
  363. package/dist/esm/router/framework/logger.js +7 -0
  364. package/dist/esm/router/framework/modules.js +34 -0
  365. package/dist/esm/router/framework/ror/index.js +5 -0
  366. package/dist/esm/router/framework/ror/normalize.js +57 -0
  367. package/dist/esm/router/framework/ror/options.js +33 -0
  368. package/dist/esm/router/framework/ror/provider.js +33 -0
  369. package/dist/esm/router/framework/ror/staticProvider.js +24 -0
  370. package/dist/esm/router/framework/routeAuthPolicy.js +16 -0
  371. package/dist/esm/router/framework/routeDefinitions.js +446 -0
  372. package/dist/esm/router/framework/routeExecutionContext.js +24 -0
  373. package/dist/esm/router/framework/routeExtensions.js +50 -0
  374. package/dist/esm/router/framework/routeMeteringPolicy.js +0 -0
  375. package/dist/esm/router/framework/routeRequestValidation.js +32 -0
  376. package/dist/esm/router/framework/routeResponses.js +33 -0
  377. package/dist/esm/router/framework/routerApi.js +42 -0
  378. package/dist/esm/router/framework/routerApiRouteSurface.js +54 -0
  379. package/dist/esm/router/framework/routerApiWebhooks.js +60 -0
  380. package/dist/esm/router/framework/runtimeSnapshotConsumer.js +145 -0
  381. package/dist/esm/router/framework/versionedJsonRecordStore.js +0 -0
  382. package/dist/esm/router/ror-adaptor.js +5 -0
  383. package/dist/esm/router/ror.js +178 -0
  384. package/dist/esm/router/transport/fetch/createFetchRouter.js +309 -0
  385. package/dist/esm/router/transport/fetch/fetchRouter.types.js +0 -0
  386. package/dist/esm/router/transport/fetch/routes/auth.js +219 -0
  387. package/dist/esm/router/transport/fetch/routes/deviceLinking.js +1196 -0
  388. package/dist/esm/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.js +264 -0
  389. package/dist/esm/router/transport/fetch/routes/deviceManagement.js +289 -0
  390. package/dist/esm/router/transport/fetch/routes/health.js +42 -0
  391. package/dist/esm/router/transport/fetch/routes/nearPublicKeys.js +39 -0
  392. package/dist/esm/router/transport/fetch/routes/normalSigningRouterProxy.js +118 -0
  393. package/dist/esm/router/transport/fetch/routes/passkeyCustody.js +1618 -0
  394. package/dist/esm/router/transport/fetch/routes/sessions.js +1033 -0
  395. package/dist/esm/router/transport/fetch/routes/syncAccount.js +187 -0
  396. package/dist/esm/router/transport/fetch/routes/syncAccountBootstrap.js +214 -0
  397. package/dist/esm/router/transport/fetch/routes/thresholdEcdsa.js +1729 -0
  398. package/dist/esm/router/transport/fetch/routes/thresholdEd25519.js +1321 -0
  399. package/dist/esm/router/transport/fetch/routes/walletExecutionLanePreflight.js +228 -0
  400. package/dist/esm/router/transport/fetch/routes/walletRegistration.js +73 -0
  401. package/dist/esm/router/transport/fetch/routes/webauthnAuthenticators.js +43 -0
  402. package/dist/esm/router/transport/fetch/routes/wellKnown.js +48 -0
  403. package/dist/esm/shared-ts/src/authorization/capabilityKinds.js +224 -0
  404. package/dist/esm/shared-ts/src/authorization/delegatedAuthority.js +134 -0
  405. package/dist/esm/shared-ts/src/authorization/index.js +6 -0
  406. package/dist/esm/shared-ts/src/authorization/operationFingerprint.js +58 -0
  407. package/dist/esm/shared-ts/src/authorization/walletAuthority.js +802 -0
  408. package/dist/esm/shared-ts/src/authorization/walletCustodyOperation.js +18 -0
  409. package/dist/esm/shared-ts/src/authorization/walletSessionIssuance.js +5 -0
  410. package/dist/esm/shared-ts/src/device-linking/committedSignerPackages.js +332 -0
  411. package/dist/esm/shared-ts/src/device-linking/contracts.js +8 -0
  412. package/dist/esm/shared-ts/src/device-linking/delegatedActivationPlan.js +132 -0
  413. package/dist/esm/shared-ts/src/device-linking/digests.js +273 -0
  414. package/dist/esm/shared-ts/src/device-linking/ed25519ExportRoot.js +158 -0
  415. package/dist/esm/shared-ts/src/device-linking/index.js +9 -0
  416. package/dist/esm/shared-ts/src/device-linking/parsers.js +1412 -0
  417. package/dist/esm/shared-ts/src/device-linking/requestProof.js +114 -0
  418. package/dist/esm/shared-ts/src/device-linking/sourceContribution.js +563 -0
  419. package/dist/esm/shared-ts/src/device-linking/walletSessionCredentialDelivery.js +207 -0
  420. package/dist/esm/shared-ts/src/near/actions.js +75 -0
  421. package/dist/esm/shared-ts/src/passkey-custody/ceremonyCommitPayload.js +69 -0
  422. package/dist/esm/shared-ts/src/passkey-custody/credentialActivity.js +81 -0
  423. package/dist/esm/shared-ts/src/passkey-custody/custodyEnvelope.js +272 -0
  424. package/dist/esm/shared-ts/src/passkey-custody/custodySecretBinding.js +175 -0
  425. package/dist/esm/shared-ts/src/passkey-custody/index.js +5 -0
  426. package/dist/esm/shared-ts/src/passkey-custody/primitives.js +92 -0
  427. package/dist/esm/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.js +53 -0
  428. package/dist/esm/shared-ts/src/signing-lanes/execution.js +14 -0
  429. package/dist/esm/shared-ts/src/signing-lanes/index.js +11 -0
  430. package/dist/esm/shared-ts/src/signing-lanes/linkedEcdsaScope.js +1 -0
  431. package/dist/esm/shared-ts/src/signing-lanes/ownerContinuity.js +91 -0
  432. package/dist/esm/shared-ts/src/signing-lanes/participantDigest.js +124 -0
  433. package/dist/esm/shared-ts/src/signing-lanes/participants.js +262 -0
  434. package/dist/esm/shared-ts/src/signing-lanes/recordParsers.js +143 -0
  435. package/dist/esm/shared-ts/src/signing-lanes/rotation.js +8 -0
  436. package/dist/esm/shared-ts/src/signing-lanes/rotationDigests.js +397 -0
  437. package/dist/esm/shared-ts/src/signing-lanes/rotationLifecycle.js +313 -0
  438. package/dist/esm/shared-ts/src/signing-lanes/rotationParsers.js +1620 -0
  439. package/dist/esm/shared-ts/src/tenant-root/index.js +2 -0
  440. package/dist/esm/shared-ts/src/tenant-root/tenantRootIdentity.js +198 -0
  441. package/dist/esm/shared-ts/src/tenant-root/tenantRootOperationRecord.js +440 -0
  442. package/dist/esm/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.js +85 -0
  443. package/dist/esm/shared-ts/src/threshold/participants.js +26 -0
  444. package/dist/esm/shared-ts/src/threshold/sessionPolicy.js +9 -0
  445. package/dist/esm/shared-ts/src/threshold/signingRootScope.js +40 -0
  446. package/dist/esm/shared-ts/src/utils/addAuthMethodRegistration.js +104 -0
  447. package/dist/esm/shared-ts/src/utils/addWalletAuthMethod.js +36 -0
  448. package/dist/esm/shared-ts/src/utils/base58.js +28 -0
  449. package/dist/esm/shared-ts/src/utils/base64.js +70 -0
  450. package/dist/esm/shared-ts/src/utils/canonicalPrimitives.js +27 -0
  451. package/dist/esm/shared-ts/src/utils/digests.js +33 -0
  452. package/dist/esm/shared-ts/src/utils/domainIds.js +309 -0
  453. package/dist/esm/shared-ts/src/utils/ecdsaCapabilityActivation.js +34 -0
  454. package/dist/esm/shared-ts/src/utils/ecdsaKeyFactsInventory.js +46 -0
  455. package/dist/esm/shared-ts/src/utils/emailOtpDomain.js +38 -0
  456. package/dist/esm/shared-ts/src/utils/emailOtpRecoveryKey.js +10 -0
  457. package/dist/esm/shared-ts/src/utils/encoders.js +2 -0
  458. package/dist/esm/shared-ts/src/utils/errors.js +88 -0
  459. package/dist/esm/shared-ts/src/utils/evmRpcResults.js +97 -0
  460. package/dist/esm/shared-ts/src/utils/jsonRpc.js +64 -0
  461. package/dist/esm/shared-ts/src/utils/keccak.js +150 -0
  462. package/dist/esm/shared-ts/src/utils/near.js +99 -0
  463. package/dist/esm/shared-ts/src/utils/nearRpcResults.js +205 -0
  464. package/dist/esm/shared-ts/src/utils/normalize.js +87 -0
  465. package/dist/esm/shared-ts/src/utils/registrationEstablishedSession.js +201 -0
  466. package/dist/esm/shared-ts/src/utils/registrationIntent.js +1268 -0
  467. package/dist/esm/shared-ts/src/utils/routerAbEcdsaDerivation.js +1655 -0
  468. package/dist/esm/shared-ts/src/utils/routerAbEd25519Yao.js +984 -0
  469. package/dist/esm/shared-ts/src/utils/routerAbNormalSigningIdentity.js +118 -0
  470. package/dist/esm/shared-ts/src/utils/routerAbPublicKeyset.js +138 -0
  471. package/dist/esm/shared-ts/src/utils/routerAbTraceContext.js +36 -0
  472. package/dist/esm/shared-ts/src/utils/secureRandomId.js +35 -0
  473. package/dist/esm/shared-ts/src/utils/signingSessionSeal.js +118 -0
  474. package/dist/esm/shared-ts/src/utils/thresholdEcdsaKeyHandle.js +28 -0
  475. package/dist/esm/shared-ts/src/utils/validation.js +23 -0
  476. package/dist/esm/shared-ts/src/utils/walletAddSignerActivation.js +32 -0
  477. package/dist/esm/shared-ts/src/utils/walletAuthAuthority.js +207 -0
  478. package/dist/esm/shared-ts/src/utils/walletSessionFailure.js +15 -0
  479. package/dist/esm/shared-ts/src/utils/webauthnDeviceInfo.js +207 -0
  480. package/dist/esm/shared-ts/src/wallet-recovery/backupAcknowledgement.js +66 -0
  481. package/dist/esm/shared-ts/src/wallet-recovery/index.js +10 -0
  482. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeIssuance.js +1 -0
  483. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeLocator.js +34 -0
  484. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodeReservation.js +80 -0
  485. package/dist/esm/shared-ts/src/wallet-recovery/recoveryCodes.js +4 -0
  486. package/dist/esm/shared-ts/src/wallet-recovery/recoveryKeyId.js +53 -0
  487. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.js +108 -0
  488. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.js +157 -0
  489. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.js +233 -0
  490. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryRotation.js +3 -0
  491. package/dist/esm/shared-ts/src/wallet-recovery/walletRecoveryTarget.js +29 -0
  492. package/dist/esm/storage/d1Sql.js +85 -0
  493. package/dist/esm/storage/tenantRoute.js +89 -0
  494. package/dist/esm/tenant-root.js +5 -0
  495. package/dist/esm/threshold/session/signingSessionSeal/crypto/cipher.js +204 -0
  496. package/dist/esm/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.js +87 -0
  497. package/dist/esm/threshold/session/signingSessionSeal/guards/backends.js +192 -0
  498. package/dist/esm/threshold/session/signingSessionSeal/guards/index.js +121 -0
  499. package/dist/esm/threshold/session/signingSessionSeal/idempotency.js +38 -0
  500. package/dist/esm/threshold/session/signingSessionSeal/idempotencyBackends.js +131 -0
  501. package/dist/esm/threshold/session/signingSessionSeal/idempotencyRecords.js +55 -0
  502. package/dist/esm/threshold/session/signingSessionSeal/index.js +13 -0
  503. package/dist/esm/threshold/session/signingSessionSeal/observability/audit.js +38 -0
  504. package/dist/esm/threshold/session/signingSessionSeal/options.js +54 -0
  505. package/dist/esm/threshold/session/signingSessionSeal/routesOptions.js +45 -0
  506. package/dist/esm/threshold/session/signingSessionSeal/service.js +316 -0
  507. package/dist/esm/threshold/session/signingSessionSeal/signingSessionSeal.types.js +0 -0
  508. package/dist/esm/threshold/session/signingSessionSeal/transport/express.js +151 -0
  509. package/dist/esm/threshold/session/signingSessionSeal/transport/fetch.js +106 -0
  510. package/dist/esm/threshold/session/signingSessionSeal/transport/shared.js +159 -0
  511. package/dist/esm/threshold/statusCodes.js +39 -0
  512. package/dist/esm/wasm/evm_crypto/pkg/evm_crypto.js +601 -0
  513. package/dist/esm/wasm/evm_crypto/pkg/evm_crypto_bg.wasm +0 -0
  514. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker.js +1078 -0
  515. package/dist/esm/wasm/near_signer/pkg/wasm_signer_worker_bg.wasm +0 -0
  516. package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker.js +503 -0
  517. package/dist/esm/wasm/router_ab_ecdsa_signing_worker/pkg/router_ab_ecdsa_signing_worker_bg.wasm +0 -0
  518. package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime.js +393 -0
  519. package/dist/esm/wasm/shamir3pass_runtime/pkg/shamir3pass_runtime_bg.wasm +0 -0
  520. package/dist/esm/wasm/signer.js +2 -0
  521. package/dist/types/shared-ts/src/authorization/capabilityKinds.d.ts +147 -0
  522. package/dist/types/shared-ts/src/authorization/capabilityKinds.typecheck.d.ts +2 -0
  523. package/dist/types/shared-ts/src/authorization/delegatedAuthority.d.ts +44 -0
  524. package/dist/types/shared-ts/src/authorization/index.d.ts +7 -0
  525. package/dist/types/shared-ts/src/authorization/operationFingerprint.d.ts +39 -0
  526. package/dist/types/shared-ts/src/authorization/operationFingerprint.typecheck.d.ts +2 -0
  527. package/dist/types/shared-ts/src/authorization/walletAuthority.d.ts +168 -0
  528. package/dist/types/shared-ts/src/authorization/walletAuthority.typecheck.d.ts +2 -0
  529. package/dist/types/shared-ts/src/authorization/walletCustodyOperation.d.ts +10 -0
  530. package/dist/types/shared-ts/src/authorization/walletSessionIssuance.d.ts +28 -0
  531. package/dist/types/shared-ts/src/device-linking/activeWalletSession.d.ts +3 -0
  532. package/dist/types/shared-ts/src/device-linking/activeWalletSession.typecheck.d.ts +2 -0
  533. package/dist/types/shared-ts/src/device-linking/committedSignerPackages.d.ts +71 -0
  534. package/dist/types/shared-ts/src/device-linking/contracts.d.ts +843 -0
  535. package/dist/types/shared-ts/src/device-linking/contracts.typecheck.d.ts +2 -0
  536. package/dist/types/shared-ts/src/device-linking/delegatedActivationPlan.d.ts +37 -0
  537. package/dist/types/shared-ts/src/device-linking/digests.d.ts +23 -0
  538. package/dist/types/shared-ts/src/device-linking/ed25519ExportRoot.d.ts +93 -0
  539. package/dist/types/shared-ts/src/device-linking/index.d.ts +11 -0
  540. package/dist/types/shared-ts/src/device-linking/parsers.d.ts +124 -0
  541. package/dist/types/shared-ts/src/device-linking/requestProof.d.ts +26 -0
  542. package/dist/types/shared-ts/src/device-linking/sourceContribution.d.ts +182 -0
  543. package/dist/types/shared-ts/src/device-linking/walletSessionCredentialDelivery.d.ts +84 -0
  544. package/dist/types/shared-ts/src/index.d.ts +10 -0
  545. package/dist/types/shared-ts/src/near/actions.d.ts +141 -0
  546. package/dist/types/shared-ts/src/near/delegate.d.ts +55 -0
  547. package/dist/types/shared-ts/src/near/index.d.ts +3 -0
  548. package/dist/types/shared-ts/src/passkey-custody/ceremonyCommitPayload.d.ts +211 -0
  549. package/dist/types/shared-ts/src/passkey-custody/credentialActivity.d.ts +49 -0
  550. package/dist/types/shared-ts/src/passkey-custody/credentialObservations.d.ts +74 -0
  551. package/dist/types/shared-ts/src/passkey-custody/custodyEnvelope.d.ts +191 -0
  552. package/dist/types/shared-ts/src/passkey-custody/custodySecretBinding.d.ts +140 -0
  553. package/dist/types/shared-ts/src/passkey-custody/envelopeIndex.d.ts +29 -0
  554. package/dist/types/shared-ts/src/passkey-custody/index.d.ts +9 -0
  555. package/dist/types/shared-ts/src/passkey-custody/kekContext.d.ts +34 -0
  556. package/dist/types/shared-ts/src/passkey-custody/passkeyCustody.typecheck.d.ts +2 -0
  557. package/dist/types/shared-ts/src/passkey-custody/primitives.d.ts +34 -0
  558. package/dist/types/shared-ts/src/signing-lanes/evmFamilySigningKeySlotId.d.ts +27 -0
  559. package/dist/types/shared-ts/src/signing-lanes/execution.d.ts +91 -0
  560. package/dist/types/shared-ts/src/signing-lanes/execution.typecheck.d.ts +2 -0
  561. package/dist/types/shared-ts/src/signing-lanes/ids.d.ts +18 -0
  562. package/dist/types/shared-ts/src/signing-lanes/index.d.ts +14 -0
  563. package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.d.ts +62 -0
  564. package/dist/types/shared-ts/src/signing-lanes/linkedEcdsaScope.typecheck.d.ts +2 -0
  565. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.d.ts +30 -0
  566. package/dist/types/shared-ts/src/signing-lanes/ownerContinuity.typecheck.d.ts +2 -0
  567. package/dist/types/shared-ts/src/signing-lanes/participantDigest.d.ts +48 -0
  568. package/dist/types/shared-ts/src/signing-lanes/participantDigest.typecheck.d.ts +2 -0
  569. package/dist/types/shared-ts/src/signing-lanes/participants.d.ts +89 -0
  570. package/dist/types/shared-ts/src/signing-lanes/recordParsers.d.ts +128 -0
  571. package/dist/types/shared-ts/src/signing-lanes/records.d.ts +160 -0
  572. package/dist/types/shared-ts/src/signing-lanes/records.typecheck.d.ts +2 -0
  573. package/dist/types/shared-ts/src/signing-lanes/rotation.d.ts +894 -0
  574. package/dist/types/shared-ts/src/signing-lanes/rotation.typecheck.d.ts +2 -0
  575. package/dist/types/shared-ts/src/signing-lanes/rotationDigests.d.ts +32 -0
  576. package/dist/types/shared-ts/src/signing-lanes/rotationLifecycle.d.ts +99 -0
  577. package/dist/types/shared-ts/src/signing-lanes/rotationParsers.d.ts +67 -0
  578. package/dist/types/shared-ts/src/signing-lanes/validation.d.ts +11 -0
  579. package/dist/types/shared-ts/src/tenant-root/index.d.ts +3 -0
  580. package/dist/types/shared-ts/src/tenant-root/tenantRootIdentity.d.ts +72 -0
  581. package/dist/types/shared-ts/src/tenant-root/tenantRootOperationRecord.d.ts +192 -0
  582. package/dist/types/shared-ts/src/threshold/ecdsaDerivationRoleLocalBootstrap.d.ts +77 -0
  583. package/dist/types/shared-ts/src/threshold/ed25519OperationFingerprint.d.ts +130 -0
  584. package/dist/types/shared-ts/src/threshold/index.d.ts +7 -0
  585. package/dist/types/shared-ts/src/threshold/participants.d.ts +38 -0
  586. package/dist/types/shared-ts/src/threshold/secp256k1.d.ts +39 -0
  587. package/dist/types/shared-ts/src/threshold/sessionPolicy.d.ts +5 -0
  588. package/dist/types/shared-ts/src/threshold/signingRootScope.d.ts +24 -0
  589. package/dist/types/shared-ts/src/utils/addAuthMethodRegistration.d.ts +63 -0
  590. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.d.ts +295 -0
  591. package/dist/types/shared-ts/src/utils/addWalletAuthMethod.typecheck.d.ts +11 -0
  592. package/dist/types/shared-ts/src/utils/authenticatorOptions.d.ts +25 -0
  593. package/dist/types/shared-ts/src/utils/base58.d.ts +17 -0
  594. package/dist/types/shared-ts/src/utils/base64.d.ts +53 -0
  595. package/dist/types/shared-ts/src/utils/bigint.d.ts +3 -0
  596. package/dist/types/shared-ts/src/utils/canonicalPrimitives.d.ts +12 -0
  597. package/dist/types/shared-ts/src/utils/digests.d.ts +6 -0
  598. package/dist/types/shared-ts/src/utils/domainIds.d.ts +140 -0
  599. package/dist/types/shared-ts/src/utils/domainIds.typecheck.d.ts +2 -0
  600. package/dist/types/shared-ts/src/utils/ecdsaCapabilityActivation.d.ts +29 -0
  601. package/dist/types/shared-ts/src/utils/ecdsaKeyFactsInventory.d.ts +24 -0
  602. package/dist/types/shared-ts/src/utils/emailOtpDomain.d.ts +30 -0
  603. package/dist/types/shared-ts/src/utils/emailOtpRecoveryKey.d.ts +31 -0
  604. package/dist/types/shared-ts/src/utils/encoders.d.ts +3 -0
  605. package/dist/types/shared-ts/src/utils/errors.d.ts +44 -0
  606. package/dist/types/shared-ts/src/utils/evmRpcResults.d.ts +31 -0
  607. package/dist/types/shared-ts/src/utils/generated/routerAbEd25519YaoCore.d.ts +128 -0
  608. package/dist/types/shared-ts/src/utils/index.d.ts +34 -0
  609. package/dist/types/shared-ts/src/utils/jsonRpc.d.ts +30 -0
  610. package/dist/types/shared-ts/src/utils/keccak.d.ts +2 -0
  611. package/dist/types/shared-ts/src/utils/near.d.ts +81 -0
  612. package/dist/types/shared-ts/src/utils/nearRpcResults.d.ts +101 -0
  613. package/dist/types/shared-ts/src/utils/normalize.d.ts +57 -0
  614. package/dist/types/shared-ts/src/utils/paillier.d.ts +37 -0
  615. package/dist/types/shared-ts/src/utils/recoveryDomain.d.ts +12 -0
  616. package/dist/types/shared-ts/src/utils/registrationEstablishedSession.d.ts +85 -0
  617. package/dist/types/shared-ts/src/utils/registrationIntent.d.ts +621 -0
  618. package/dist/types/shared-ts/src/utils/registrationIntent.typecheck.d.ts +2 -0
  619. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.d.ts +715 -0
  620. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivation.typecheck.d.ts +2 -0
  621. package/dist/types/shared-ts/src/utils/routerAbEcdsaDerivationRefresh.typecheck.d.ts +2 -0
  622. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.d.ts +339 -0
  623. package/dist/types/shared-ts/src/utils/routerAbEd25519Yao.typecheck.d.ts +2 -0
  624. package/dist/types/shared-ts/src/utils/routerAbNormalSigningIdentity.d.ts +71 -0
  625. package/dist/types/shared-ts/src/utils/routerAbPublicKeyset.d.ts +51 -0
  626. package/dist/types/shared-ts/src/utils/routerAbTraceContext.d.ts +16 -0
  627. package/dist/types/shared-ts/src/utils/secureRandomId.d.ts +6 -0
  628. package/dist/types/shared-ts/src/utils/signerDomain.d.ts +75 -0
  629. package/dist/types/shared-ts/src/utils/signerDomain.typecheck.d.ts +2 -0
  630. package/dist/types/shared-ts/src/utils/signerSlot.d.ts +11 -0
  631. package/dist/types/shared-ts/src/utils/signingSessionSeal.d.ts +153 -0
  632. package/dist/types/shared-ts/src/utils/signingSessionSeal.typecheck.d.ts +2 -0
  633. package/dist/types/shared-ts/src/utils/theme.d.ts +2 -0
  634. package/dist/types/shared-ts/src/utils/thresholdEcdsaKeyHandle.d.ts +11 -0
  635. package/dist/types/shared-ts/src/utils/validation.d.ts +35 -0
  636. package/dist/types/shared-ts/src/utils/walletAddSignerActivation.d.ts +23 -0
  637. package/dist/types/shared-ts/src/utils/walletAuthAuthority.d.ts +150 -0
  638. package/dist/types/shared-ts/src/utils/walletAuthAuthority.typecheck.d.ts +2 -0
  639. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.d.ts +106 -0
  640. package/dist/types/shared-ts/src/utils/walletCapabilityBindings.typecheck.d.ts +2 -0
  641. package/dist/types/shared-ts/src/utils/walletSessionFailure.d.ts +13 -0
  642. package/dist/types/shared-ts/src/utils/webauthnDeviceInfo.d.ts +48 -0
  643. package/dist/types/shared-ts/src/wallet-recovery/backupAcknowledgement.d.ts +56 -0
  644. package/dist/types/shared-ts/src/wallet-recovery/index.d.ts +10 -0
  645. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeAttempt.d.ts +59 -0
  646. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeIssuance.d.ts +37 -0
  647. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeLocator.d.ts +22 -0
  648. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodeReservation.d.ts +79 -0
  649. package/dist/types/shared-ts/src/wallet-recovery/recoveryCodes.d.ts +11 -0
  650. package/dist/types/shared-ts/src/wallet-recovery/recoveryEnvelopes.d.ts +42 -0
  651. package/dist/types/shared-ts/src/wallet-recovery/recoveryKekContext.d.ts +37 -0
  652. package/dist/types/shared-ts/src/wallet-recovery/recoveryKeyId.d.ts +58 -0
  653. package/dist/types/shared-ts/src/wallet-recovery/walletRecovery.typecheck.d.ts +2 -0
  654. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryCommittedProjection.d.ts +110 -0
  655. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEcdsaPossession.d.ts +29 -0
  656. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryEnvelopeSet.d.ts +115 -0
  657. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryRotation.d.ts +18 -0
  658. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.d.ts +12 -0
  659. package/dist/types/shared-ts/src/wallet-recovery/walletRecoveryTarget.typecheck.d.ts +2 -0
  660. package/dist/types/wallet-server/src/authorization/capabilityPolicy.d.ts +45 -0
  661. package/dist/types/wallet-server/src/authorization/capabilityPolicy.typecheck.d.ts +2 -0
  662. package/dist/types/wallet-server/src/authorization/domain.d.ts +454 -0
  663. package/dist/types/wallet-server/src/authorization/domain.typecheck.d.ts +2 -0
  664. package/dist/types/wallet-server/src/authorization/factorEvidence.d.ts +165 -0
  665. package/dist/types/wallet-server/src/authorization/factorEvidence.typecheck.d.ts +2 -0
  666. package/dist/types/wallet-server/src/authorization/service.d.ts +227 -0
  667. package/dist/types/wallet-server/src/authorization/vaultProxyUse.d.ts +75 -0
  668. package/dist/types/wallet-server/src/cloud-host.d.ts +94 -0
  669. package/dist/types/wallet-server/src/core/AuthService.d.ts +3 -0
  670. package/dist/types/wallet-server/src/core/EmailOtpRecords.d.ts +33 -0
  671. package/dist/types/wallet-server/src/core/EmailOtpStores.d.ts +336 -0
  672. package/dist/types/wallet-server/src/core/IdentityStore.d.ts +57 -0
  673. package/dist/types/wallet-server/src/core/NearPublicKeyStore.d.ts +58 -0
  674. package/dist/types/wallet-server/src/core/RegistrationCeremonyStore.d.ts +551 -0
  675. package/dist/types/wallet-server/src/core/SessionService.d.ts +70 -0
  676. package/dist/types/wallet-server/src/core/ThresholdService/config.d.ts +23 -0
  677. package/dist/types/wallet-server/src/core/ThresholdService/ecdsaClientRootProof.d.ts +12 -0
  678. package/dist/types/wallet-server/src/core/ThresholdService/evmCryptoWasm.d.ts +32 -0
  679. package/dist/types/wallet-server/src/core/ThresholdService/index.d.ts +4 -0
  680. package/dist/types/wallet-server/src/core/ThresholdService/kv.d.ts +52 -0
  681. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillHandlers.d.ts +45 -0
  682. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPoolFillLiveSession.d.ts +93 -0
  683. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/ecdsaDerivationPresignBridge.d.ts +138 -0
  684. package/dist/types/wallet-server/src/core/ThresholdService/routerAb/internalServiceHttp.d.ts +30 -0
  685. package/dist/types/wallet-server/src/core/ThresholdService/routerAbEcdsaSigningWorkerWasm.d.ts +17 -0
  686. package/dist/types/wallet-server/src/core/ThresholdService/routerAbNormalSigningPolicy.d.ts +21 -0
  687. package/dist/types/wallet-server/src/core/ThresholdService/secureRandomId.d.ts +2 -0
  688. package/dist/types/wallet-server/src/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts +128 -0
  689. package/dist/types/wallet-server/src/core/ThresholdService/stores/EcdsaSigningStore.d.ts +76 -0
  690. package/dist/types/wallet-server/src/core/ThresholdService/stores/KeyStore.d.ts +39 -0
  691. package/dist/types/wallet-server/src/core/ThresholdService/stores/SessionStore.d.ts +102 -0
  692. package/dist/types/wallet-server/src/core/ThresholdService/stores/StoreConfig.d.ts +3 -0
  693. package/dist/types/wallet-server/src/core/ThresholdService/stores/ThresholdStoreConfig.typecheck.d.ts +2 -0
  694. package/dist/types/wallet-server/src/core/ThresholdService/stores/WalletSessionStore.d.ts +98 -0
  695. package/dist/types/wallet-server/src/core/ThresholdService/thresholdEd25519AuthorityScope.typecheck.d.ts +2 -0
  696. package/dist/types/wallet-server/src/core/ThresholdService/validation.d.ts +193 -0
  697. package/dist/types/wallet-server/src/core/WalletAuthMethodStore.d.ts +12 -0
  698. package/dist/types/wallet-server/src/core/WalletStore.d.ts +143 -0
  699. package/dist/types/wallet-server/src/core/WalletStore.typecheck.d.ts +2 -0
  700. package/dist/types/wallet-server/src/core/WebAuthnAuthenticatorStore.d.ts +62 -0
  701. package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.d.ts +116 -0
  702. package/dist/types/wallet-server/src/core/WebAuthnCredentialBindingStore.typecheck.d.ts +13 -0
  703. package/dist/types/wallet-server/src/core/WebAuthnLoginChallengeStore.d.ts +50 -0
  704. package/dist/types/wallet-server/src/core/WebAuthnSyncChallengeStore.d.ts +50 -0
  705. package/dist/types/wallet-server/src/core/authService/AuthService.d.ts +493 -0
  706. package/dist/types/wallet-server/src/core/authService/bytes.d.ts +4 -0
  707. package/dist/types/wallet-server/src/core/authService/configValues.d.ts +7 -0
  708. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeOperations.d.ts +108 -0
  709. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeProof.d.ts +177 -0
  710. package/dist/types/wallet-server/src/core/authService/emailOtpChallengeVerification.d.ts +46 -0
  711. package/dist/types/wallet-server/src/core/authService/emailOtpChallenges.d.ts +110 -0
  712. package/dist/types/wallet-server/src/core/authService/emailOtpConfig.d.ts +34 -0
  713. package/dist/types/wallet-server/src/core/authService/emailOtpDelivery.d.ts +65 -0
  714. package/dist/types/wallet-server/src/core/authService/emailOtpEnrollment.d.ts +79 -0
  715. package/dist/types/wallet-server/src/core/authService/emailOtpGrant.d.ts +42 -0
  716. package/dist/types/wallet-server/src/core/authService/emailOtpRegistrationEnrollment.d.ts +116 -0
  717. package/dist/types/wallet-server/src/core/authService/emailOtpSeal.d.ts +35 -0
  718. package/dist/types/wallet-server/src/core/authService/emailOtpUnlock.d.ts +70 -0
  719. package/dist/types/wallet-server/src/core/authService/githubOAuth.d.ts +35 -0
  720. package/dist/types/wallet-server/src/core/authService/googleEmailOtpErrors.d.ts +2 -0
  721. package/dist/types/wallet-server/src/core/authService/googleEmailOtpOperations.d.ts +126 -0
  722. package/dist/types/wallet-server/src/core/authService/googleEmailOtpRegistration.d.ts +172 -0
  723. package/dist/types/wallet-server/src/core/authService/identity.d.ts +25 -0
  724. package/dist/types/wallet-server/src/core/authService/identityOperations.d.ts +19 -0
  725. package/dist/types/wallet-server/src/core/authService/nearAccountOperations.d.ts +55 -0
  726. package/dist/types/wallet-server/src/core/authService/nearPrivateKeySigning.d.ts +16 -0
  727. package/dist/types/wallet-server/src/core/authService/nearPublicKeyMetadata.d.ts +43 -0
  728. package/dist/types/wallet-server/src/core/authService/nearTransactions.d.ts +49 -0
  729. package/dist/types/wallet-server/src/core/authService/oidcVerification.d.ts +65 -0
  730. package/dist/types/wallet-server/src/core/authService/portableCrypto.d.ts +3 -0
  731. package/dist/types/wallet-server/src/core/authService/rateLimits.d.ts +30 -0
  732. package/dist/types/wallet-server/src/core/authService/record.d.ts +2 -0
  733. package/dist/types/wallet-server/src/core/authService/registrationThresholdHelpers.d.ts +37 -0
  734. package/dist/types/wallet-server/src/core/authService/runtime.d.ts +20 -0
  735. package/dist/types/wallet-server/src/core/authService/signerWasmUrls.d.ts +3 -0
  736. package/dist/types/wallet-server/src/core/authService/storeRegistry.d.ts +58 -0
  737. package/dist/types/wallet-server/src/core/authService/thresholdEcdsaKeyInventory.d.ts +72 -0
  738. package/dist/types/wallet-server/src/core/authService/thresholdRuntimePolicy.d.ts +4 -0
  739. package/dist/types/wallet-server/src/core/authService/thresholdStoreSummary.d.ts +3 -0
  740. package/dist/types/wallet-server/src/core/authService/walletRegistrationPlanning.d.ts +19 -0
  741. package/dist/types/wallet-server/src/core/authService/wasm.d.ts +12 -0
  742. package/dist/types/wallet-server/src/core/authService/webauthn.d.ts +207 -0
  743. package/dist/types/wallet-server/src/core/authService/webauthnAuthority.d.ts +5 -0
  744. package/dist/types/wallet-server/src/core/authService/webauthnOidcHelpers.d.ts +52 -0
  745. package/dist/types/wallet-server/src/core/authService/webauthnWalletBinding.d.ts +48 -0
  746. package/dist/types/wallet-server/src/core/config.d.ts +13 -0
  747. package/dist/types/wallet-server/src/core/d1IdentityStore.d.ts +44 -0
  748. package/dist/types/wallet-server/src/core/d1WalletAuthMethodStore.d.ts +214 -0
  749. package/dist/types/wallet-server/src/core/d1WalletStore.d.ts +108 -0
  750. package/dist/types/wallet-server/src/core/defaultConfigsServer.d.ts +5 -0
  751. package/dist/types/wallet-server/src/core/deviceLinking/index.d.ts +5 -0
  752. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEd25519ExportRoot.d.ts +36 -0
  753. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceEmailOtpGrant.d.ts +87 -0
  754. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceManagement.d.ts +137 -0
  755. package/dist/types/wallet-server/src/core/deviceLinking/linkedDeviceSession.d.ts +462 -0
  756. package/dist/types/wallet-server/src/core/deviceLinking/requestProof.d.ts +55 -0
  757. package/dist/types/wallet-server/src/core/errors.d.ts +10 -0
  758. package/dist/types/wallet-server/src/core/hostedAccountIds.d.ts +31 -0
  759. package/dist/types/wallet-server/src/core/keyMaterialBrands.d.ts +28 -0
  760. package/dist/types/wallet-server/src/core/keyMaterialBrands.typecheck.d.ts +2 -0
  761. package/dist/types/wallet-server/src/core/logger.d.ts +21 -0
  762. package/dist/types/wallet-server/src/core/nearKeys.d.ts +3 -0
  763. package/dist/types/wallet-server/src/core/nearRelayerAccountProvisioning.d.ts +78 -0
  764. package/dist/types/wallet-server/src/core/nearSignerWasmRuntime.d.ts +3 -0
  765. package/dist/types/wallet-server/src/core/registrationContracts.d.ts +747 -0
  766. package/dist/types/wallet-server/src/core/registrationRequests.typecheck.d.ts +2 -0
  767. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbEcdsaPresignRuntime.d.ts +53 -0
  768. package/dist/types/wallet-server/src/core/routerAbSigning/RouterAbNormalSigningRuntime.d.ts +71 -0
  769. package/dist/types/wallet-server/src/core/routerAbSigning/createCloudflareDurableObjectRouterAbSigningRuntimes.d.ts +28 -0
  770. package/dist/types/wallet-server/src/core/routerAbSigning/createRouterAbSigningRuntimes.d.ts +16 -0
  771. package/dist/types/wallet-server/src/core/rpcClients/near/NearClient.d.ts +134 -0
  772. package/dist/types/wallet-server/src/core/sessionValidation.d.ts +9 -0
  773. package/dist/types/wallet-server/src/core/signingLanes/LaneAggregateRevocationApplicationService.d.ts +35 -0
  774. package/dist/types/wallet-server/src/core/signingLanes/LaneEffectJournalStore.d.ts +63 -0
  775. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentActivation.d.ts +13 -0
  776. package/dist/types/wallet-server/src/core/signingLanes/LaneEnrollmentRevocation.d.ts +24 -0
  777. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleApplicationService.d.ts +141 -0
  778. package/dist/types/wallet-server/src/core/signingLanes/LaneLifecycleStore.d.ts +229 -0
  779. package/dist/types/wallet-server/src/core/signingLanes/SigningLaneStore.d.ts +15 -0
  780. package/dist/types/wallet-server/src/core/signingLanes/WalletExecutionLaneProjection.d.ts +59 -0
  781. package/dist/types/wallet-server/src/core/signingLanes/WalletKeyStore.d.ts +13 -0
  782. package/dist/types/wallet-server/src/core/signingLanes/ecdsaServerRetirement.d.ts +58 -0
  783. package/dist/types/wallet-server/src/core/signingLanes/ed25519ServerRetirement.d.ts +30 -0
  784. package/dist/types/wallet-server/src/core/signingLanes/index.d.ts +11 -0
  785. package/dist/types/wallet-server/src/core/signingLanes/signingWorkerLaneMaterialIdentity.d.ts +21 -0
  786. package/dist/types/wallet-server/src/core/signingMaterial/ordinaryInactiveSignerMaterialReservation.d.ts +155 -0
  787. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.d.ts +442 -0
  788. package/dist/types/wallet-server/src/core/threeRouteRegistrationContracts.typecheck.d.ts +58 -0
  789. package/dist/types/wallet-server/src/core/thresholdEcdsaChainTarget.d.ts +15 -0
  790. package/dist/types/wallet-server/src/core/types.d.ts +757 -0
  791. package/dist/types/wallet-server/src/core/utils.d.ts +3 -0
  792. package/dist/types/wallet-server/src/delegateAction/index.d.ts +88 -0
  793. package/dist/types/wallet-server/src/hosted-wallet-gateway-worker.d.ts +10 -0
  794. package/dist/types/wallet-server/src/hosted-wallet-gateway.d.ts +126 -0
  795. package/dist/types/wallet-server/src/index.d.ts +34 -0
  796. package/dist/types/wallet-server/src/local-hosted-wallet-gateway-worker.d.ts +13 -0
  797. package/dist/types/wallet-server/src/router/auth/authRequestValidation.d.ts +97 -0
  798. package/dist/types/wallet-server/src/router/auth/commonRouterUtils.d.ts +142 -0
  799. package/dist/types/wallet-server/src/router/auth/routerApiCredentialAuth.d.ts +26 -0
  800. package/dist/types/wallet-server/src/router/auth/routerApiKeyAuth.d.ts +16 -0
  801. package/dist/types/wallet-server/src/router/auth/walletSessionFailure.d.ts +14 -0
  802. package/dist/types/wallet-server/src/router/auth/webAuthnCredentialCodecs.d.ts +20 -0
  803. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthBoundary.d.ts +28 -0
  804. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthConfig.d.ts +192 -0
  805. package/dist/types/wallet-server/src/router/cloudflare/d1/auth/d1RouterApiAuthService.d.ts +13 -0
  806. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1AuthorizationStore.d.ts +174 -0
  807. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/d1VaultProxyStore.d.ts +13 -0
  808. package/dist/types/wallet-server/src/router/cloudflare/d1/authorization/walletSessionAuthorityProjection.d.ts +24 -0
  809. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceAuthorityInstallService.d.ts +241 -0
  810. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEd25519ExportRootStore.d.ts +23 -0
  811. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpGrantStore.d.ts +32 -0
  812. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceEmailOtpTargetFactor.d.ts +118 -0
  813. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceManagementService.d.ts +22 -0
  814. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceOwnerAuthorizationProvider.d.ts +80 -0
  815. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRequestProofNonceStore.d.ts +29 -0
  816. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceRouteService.d.ts +17 -0
  817. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionRecords.d.ts +37 -0
  818. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionService.d.ts +12 -0
  819. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSessionStore.d.ts +149 -0
  820. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceSourceContributionPreparationPlanner.d.ts +38 -0
  821. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetAuthenticatorStore.d.ts +19 -0
  822. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetCredentialProvider.d.ts +220 -0
  823. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceTargetPlanner.d.ts +88 -0
  824. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkBuilder.d.ts +54 -0
  825. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/d1LinkedDeviceVerifiedLinkSourceReader.d.ts +23 -0
  826. package/dist/types/wallet-server/src/router/cloudflare/d1/deviceLinking/index.d.ts +15 -0
  827. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoCapabilityPersistence.d.ts +33 -0
  828. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoProductRegistrationPartitionedStateStore.d.ts +6 -0
  829. package/dist/types/wallet-server/src/router/cloudflare/d1/ed25519Yao/d1Ed25519YaoWalletSigner.d.ts +27 -0
  830. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeIssuer.d.ts +80 -0
  831. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeService.d.ts +48 -0
  832. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeStore.d.ts +64 -0
  833. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpChallengeVerifier.d.ts +126 -0
  834. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpDeliveryRuntime.d.ts +22 -0
  835. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpEnrollmentStore.d.ts +68 -0
  836. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpGrantStore.d.ts +15 -0
  837. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRateLimitStore.d.ts +37 -0
  838. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecords.d.ts +186 -0
  839. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRecoveryService.d.ts +45 -0
  840. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpRegistrationEnrollmentFinalizer.d.ts +124 -0
  841. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1EmailOtpServerSealRuntime.d.ts +24 -0
  842. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationAttemptStore.d.ts +51 -0
  843. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpRegistrationRecords.d.ts +69 -0
  844. package/dist/types/wallet-server/src/router/cloudflare/d1/emailOtp/d1GoogleEmailOtpSessionResolver.d.ts +57 -0
  845. package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityRecords.d.ts +38 -0
  846. package/dist/types/wallet-server/src/router/cloudflare/d1/identity/d1IdentityService.d.ts +31 -0
  847. package/dist/types/wallet-server/src/router/cloudflare/d1/near/d1NearPublicKeyStore.d.ts +30 -0
  848. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcBoundary.d.ts +60 -0
  849. package/dist/types/wallet-server/src/router/cloudflare/d1/oidc/d1OidcVerificationService.d.ts +39 -0
  850. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyEnvelopeStore.d.ts +335 -0
  851. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1PasskeyCustodyRouteService.d.ts +448 -0
  852. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletCustodyCommitStore.d.ts +256 -0
  853. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpAttemptStore.d.ts +32 -0
  854. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpRecords.d.ts +116 -0
  855. package/dist/types/wallet-server/src/router/cloudflare/d1/passkeyCustody/d1WalletRecoveryGoogleEmailOtpService.d.ts +180 -0
  856. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1EvmFamilyEcdsaRegistrationBranch.d.ts +24 -0
  857. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecordStore.d.ts +86 -0
  858. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyRecords.d.ts +121 -0
  859. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationCeremonyStore.d.ts +84 -0
  860. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1RegistrationIntentService.d.ts +31 -0
  861. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationCommitStore.d.ts +49 -0
  862. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationService.d.ts +369 -0
  863. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/d1WalletRegistrationSetup.d.ts +106 -0
  864. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationEstablishedSessionIssuer.d.ts +104 -0
  865. package/dist/types/wallet-server/src/router/cloudflare/d1/registration/walletRegistrationSessionCommitReceipt.d.ts +70 -0
  866. package/dist/types/wallet-server/src/router/cloudflare/d1/signingAdmission/d1RouterAbNormalSigningAdmissionStore.d.ts +26 -0
  867. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1EcdsaLanePrivateBindingResolver.d.ts +4 -0
  868. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneAggregateRevocationApplicationService.d.ts +4 -0
  869. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEffectJournalStore.d.ts +25 -0
  870. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneEnrollmentGateway.d.ts +20 -0
  871. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleApplicationService.d.ts +13 -0
  872. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLifecycleStore.d.ts +51 -0
  873. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneLockStore.d.ts +28 -0
  874. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneProtocolCommitter.d.ts +5 -0
  875. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/d1LaneRecords.d.ts +107 -0
  876. package/dist/types/wallet-server/src/router/cloudflare/d1/signingLanes/index.d.ts +10 -0
  877. package/dist/types/wallet-server/src/router/cloudflare/d1/versionedJson/d1VersionedJsonRecordStore.d.ts +118 -0
  878. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.d.ts +114 -0
  879. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAddSignerService.typecheck.d.ts +2 -0
  880. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodBoundary.d.ts +90 -0
  881. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthMethodService.d.ts +359 -0
  882. package/dist/types/wallet-server/src/router/cloudflare/d1/wallet/d1WalletAuthorityStore.d.ts +143 -0
  883. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnAuthService.d.ts +42 -0
  884. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnRecords.d.ts +135 -0
  885. package/dist/types/wallet-server/src/router/cloudflare/d1/webauthn/d1WebAuthnStore.d.ts +89 -0
  886. package/dist/types/wallet-server/src/router/cloudflare/durableObjects/thresholdStore.d.ts +19 -0
  887. package/dist/types/wallet-server/src/router/cloudflare/durableObjects/versionedJsonRecordStore.d.ts +32 -0
  888. package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflare.types.d.ts +30 -0
  889. package/dist/types/wallet-server/src/router/cloudflare/runtime/cloudflareSignerWasm.d.ts +2 -0
  890. package/dist/types/wallet-server/src/router/cloudflare/runtime/createCloudflareRouter.d.ts +5 -0
  891. package/dist/types/wallet-server/src/router/cloudflare/runtime/createSelfHostedCloudflareSigningWorker.d.ts +23 -0
  892. package/dist/types/wallet-server/src/router/cloudflare/runtime/ed25519SessionAdapter.d.ts +16 -0
  893. package/dist/types/wallet-server/src/router/cloudflare/runtime/environment.d.ts +5 -0
  894. package/dist/types/wallet-server/src/router/cloudflare/runtime/routerAbPrewarm.d.ts +9 -0
  895. package/dist/types/wallet-server/src/router/cloudflare/runtime/routerAbServiceBindings.d.ts +11 -0
  896. package/dist/types/wallet-server/src/router/cloudflare/runtime/sessionAdapterRuntime.d.ts +28 -0
  897. package/dist/types/wallet-server/src/router/cloudflare/runtime/staticWalletConsoleBinding.d.ts +27 -0
  898. package/dist/types/wallet-server/src/router/cloudflare/runtime/tenantRootCreationGrant.d.ts +24 -0
  899. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOps.d.ts +143 -0
  900. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleOpsClient.d.ts +20 -0
  901. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletConsoleTenantRootLineage.d.ts +7 -0
  902. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletControlOps.d.ts +21 -0
  903. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletGateway.d.ts +30 -0
  904. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOps.d.ts +64 -0
  905. package/dist/types/wallet-server/src/router/cloudflare/runtime/walletRuntimeOpsHandler.d.ts +3 -0
  906. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneCurveExecution.d.ts +217 -0
  907. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareLaneProtocolCommitter.d.ts +73 -0
  908. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/cloudflareOrdinaryInactiveSignerMaterialReservation.d.ts +100 -0
  909. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/index.d.ts +4 -0
  910. package/dist/types/wallet-server/src/router/cloudflare/signingLanes/linkedDeviceEd25519CeremonyBinding.d.ts +6 -0
  911. package/dist/types/wallet-server/src/router/cloudflare-adaptor.d.ts +75 -0
  912. package/dist/types/wallet-server/src/router/domains/ecdsa/routerAbEcdsaStrictRegistration.d.ts +199 -0
  913. package/dist/types/wallet-server/src/router/domains/ecdsa/thresholdEcdsaRequestValidation.d.ts +32 -0
  914. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.d.ts +172 -0
  915. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistration.typecheck.d.ts +2 -0
  916. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitionedStateStore.d.ts +156 -0
  917. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPartitioning.d.ts +59 -0
  918. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationPersistence.d.ts +47 -0
  919. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRunner.d.ts +29 -0
  920. package/dist/types/wallet-server/src/router/domains/ed25519Yao/capabilityLifecycle/routerAbEd25519YaoProductRegistrationRequestScopedRuntime.d.ts +20 -0
  921. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExport.d.ts +271 -0
  922. package/dist/types/wallet-server/src/router/domains/ed25519Yao/export/routerAbEd25519YaoExportRequestScopedCloudflare.d.ts +12 -0
  923. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecovery.d.ts +509 -0
  924. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryActivation.typecheck.d.ts +2 -0
  925. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryRequestScopedCloudflare.d.ts +14 -0
  926. package/dist/types/wallet-server/src/router/domains/ed25519Yao/recovery/routerAbEd25519YaoRecoveryWalletSessionAuthorization.d.ts +20 -0
  927. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoHttpRegistrationBackend.d.ts +56 -0
  928. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistration.d.ts +200 -0
  929. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationExecutionRecord.d.ts +70 -0
  930. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationIntentAuthorization.d.ts +73 -0
  931. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationRequestScopedCloudflare.d.ts +9 -0
  932. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.d.ts +131 -0
  933. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationSideEffectBoundary.typecheck.d.ts +2 -0
  934. package/dist/types/wallet-server/src/router/domains/ed25519Yao/registration/routerAbEd25519YaoRegistrationTwoPhaseRunner.d.ts +62 -0
  935. package/dist/types/wallet-server/src/router/domains/ed25519Yao/routerAbEd25519YaoGatewayEnvelope.d.ts +17 -0
  936. package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.d.ts +178 -0
  937. package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/routerAbEd25519YaoWalletSession.typecheck.d.ts +2 -0
  938. package/dist/types/wallet-server/src/router/domains/ed25519Yao/session/thresholdEd25519RequestValidation.d.ts +19 -0
  939. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpExportPolicy.d.ts +32 -0
  940. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRequestValidation.d.ts +13 -0
  941. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpRouteHandlers.d.ts +35 -0
  942. package/dist/types/wallet-server/src/router/domains/emailOtp/emailOtpSessionRouteHelpers.d.ts +134 -0
  943. package/dist/types/wallet-server/src/router/domains/passkeyCustody/envelopeRevocationAdmission.d.ts +31 -0
  944. package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrieval.d.ts +85 -0
  945. package/dist/types/wallet-server/src/router/domains/passkeyCustody/passkeyCustodyEnvelopeRetrievalRoute.d.ts +42 -0
  946. package/dist/types/wallet-server/src/router/domains/passkeyCustody/registrationCustodyOutcome.d.ts +38 -0
  947. package/dist/types/wallet-server/src/router/domains/passkeyCustody/verifiedCustodyFactor.d.ts +35 -0
  948. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationAdmission.d.ts +56 -0
  949. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletCustodyRegistrationCommit.d.ts +65 -0
  950. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryAttempt.d.ts +59 -0
  951. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryFinalization.d.ts +81 -0
  952. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryKeyManifest.d.ts +184 -0
  953. package/dist/types/wallet-server/src/router/domains/passkeyCustody/walletRecoveryRotation.d.ts +31 -0
  954. package/dist/types/wallet-server/src/router/domains/signingOperations/ed25519AuthorizedOperationReceipt.d.ts +32 -0
  955. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbNormalSigningAdmissionCore.d.ts +48 -0
  956. package/dist/types/wallet-server/src/router/domains/signingOperations/routerAbPrivateSigningWorker.d.ts +909 -0
  957. package/dist/types/wallet-server/src/router/domains/signingOperations/walletExecutionAdmission.d.ts +104 -0
  958. package/dist/types/wallet-server/src/router/domains/syncAccount/syncAccountRequestValidation.d.ts +30 -0
  959. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootCustodyLineage.d.ts +14 -0
  960. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEcdsaWalletSessionComposition.d.ts +35 -0
  961. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootEd25519WalletSessionComposition.d.ts +35 -0
  962. package/dist/types/wallet-server/src/router/domains/tenantRoot/tenantRootIdentityResolution.d.ts +56 -0
  963. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationInputs.d.ts +78 -0
  964. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationRoutes.d.ts +91 -0
  965. package/dist/types/wallet-server/src/router/domains/walletRegistration/walletRegistrationSetupPayload.d.ts +105 -0
  966. package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRequestedCapabilitiesValidation.d.ts +39 -0
  967. package/dist/types/wallet-server/src/router/domains/walletUnlock/walletUnlockRouteHandlers.d.ts +172 -0
  968. package/dist/types/wallet-server/src/router/express-adaptor.d.ts +22 -0
  969. package/dist/types/wallet-server/src/router/framework/apiCredentialPorts.d.ts +82 -0
  970. package/dist/types/wallet-server/src/router/framework/applyRouteMetering.d.ts +23 -0
  971. package/dist/types/wallet-server/src/router/framework/authServicePort.d.ts +1392 -0
  972. package/dist/types/wallet-server/src/router/framework/enforceRoutePolicy.d.ts +48 -0
  973. package/dist/types/wallet-server/src/router/framework/http.d.ts +12 -0
  974. package/dist/types/wallet-server/src/router/framework/logger.d.ts +5 -0
  975. package/dist/types/wallet-server/src/router/framework/modules.d.ts +17 -0
  976. package/dist/types/wallet-server/src/router/framework/ror/index.d.ts +7 -0
  977. package/dist/types/wallet-server/src/router/framework/ror/normalize.d.ts +14 -0
  978. package/dist/types/wallet-server/src/router/framework/ror/options.d.ts +9 -0
  979. package/dist/types/wallet-server/src/router/framework/ror/provider.d.ts +17 -0
  980. package/dist/types/wallet-server/src/router/framework/ror/staticProvider.d.ts +11 -0
  981. package/dist/types/wallet-server/src/router/framework/routeAuthPolicy.d.ts +34 -0
  982. package/dist/types/wallet-server/src/router/framework/routeDefinitions.d.ts +27 -0
  983. package/dist/types/wallet-server/src/router/framework/routeDefinitions.typecheck.d.ts +2 -0
  984. package/dist/types/wallet-server/src/router/framework/routeExecutionContext.d.ts +29 -0
  985. package/dist/types/wallet-server/src/router/framework/routeExtensions.d.ts +27 -0
  986. package/dist/types/wallet-server/src/router/framework/routeMeteringPolicy.d.ts +17 -0
  987. package/dist/types/wallet-server/src/router/framework/routeRequestValidation.d.ts +5 -0
  988. package/dist/types/wallet-server/src/router/framework/routeResponses.d.ts +17 -0
  989. package/dist/types/wallet-server/src/router/framework/routerApi.d.ts +221 -0
  990. package/dist/types/wallet-server/src/router/framework/routerApiRouteSurface.d.ts +14 -0
  991. package/dist/types/wallet-server/src/router/framework/routerApiWebhooks.d.ts +12 -0
  992. package/dist/types/wallet-server/src/router/framework/runtimeSnapshotConsumer.d.ts +28 -0
  993. package/dist/types/wallet-server/src/router/framework/versionedJsonRecordStore.d.ts +20 -0
  994. package/dist/types/wallet-server/src/router/ror-adaptor.d.ts +3 -0
  995. package/dist/types/wallet-server/src/router/transport/fetch/createFetchRouter.d.ts +8 -0
  996. package/dist/types/wallet-server/src/router/transport/fetch/fetchRouter.types.d.ts +23 -0
  997. package/dist/types/wallet-server/src/router/transport/fetch/routes/auth.d.ts +3 -0
  998. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinking.d.ts +202 -0
  999. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceLinkingOwnerAuthorization.d.ts +92 -0
  1000. package/dist/types/wallet-server/src/router/transport/fetch/routes/deviceManagement.d.ts +29 -0
  1001. package/dist/types/wallet-server/src/router/transport/fetch/routes/health.d.ts +4 -0
  1002. package/dist/types/wallet-server/src/router/transport/fetch/routes/nearPublicKeys.d.ts +3 -0
  1003. package/dist/types/wallet-server/src/router/transport/fetch/routes/normalSigningRouterProxy.d.ts +33 -0
  1004. package/dist/types/wallet-server/src/router/transport/fetch/routes/passkeyCustody.d.ts +66 -0
  1005. package/dist/types/wallet-server/src/router/transport/fetch/routes/sessions.d.ts +31 -0
  1006. package/dist/types/wallet-server/src/router/transport/fetch/routes/syncAccount.d.ts +3 -0
  1007. package/dist/types/wallet-server/src/router/transport/fetch/routes/syncAccountBootstrap.d.ts +128 -0
  1008. package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEcdsa.d.ts +87 -0
  1009. package/dist/types/wallet-server/src/router/transport/fetch/routes/thresholdEd25519.d.ts +47 -0
  1010. package/dist/types/wallet-server/src/router/transport/fetch/routes/walletExecutionLanePreflight.d.ts +4 -0
  1011. package/dist/types/wallet-server/src/router/transport/fetch/routes/walletRegistration.d.ts +3 -0
  1012. package/dist/types/wallet-server/src/router/transport/fetch/routes/webauthnAuthenticators.d.ts +3 -0
  1013. package/dist/types/wallet-server/src/router/transport/fetch/routes/wellKnown.d.ts +3 -0
  1014. package/dist/types/wallet-server/src/storage/d1Sql.d.ts +14 -0
  1015. package/dist/types/wallet-server/src/storage/tenantRoute.d.ts +136 -0
  1016. package/dist/types/wallet-server/src/storage/tenantRoute.typecheck.d.ts +2 -0
  1017. package/dist/types/wallet-server/src/tenant-root.d.ts +5 -0
  1018. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/crypto/cipher.d.ts +45 -0
  1019. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/crypto/shamir3PassWasm.d.ts +16 -0
  1020. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/guards/backends.d.ts +23 -0
  1021. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/guards/index.d.ts +46 -0
  1022. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotency.d.ts +3 -0
  1023. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyBackends.d.ts +24 -0
  1024. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/idempotencyRecords.d.ts +22 -0
  1025. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/index.d.ts +23 -0
  1026. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/observability/audit.d.ts +9 -0
  1027. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/options.d.ts +9 -0
  1028. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/routesOptions.d.ts +20 -0
  1029. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/service.d.ts +3 -0
  1030. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/signingSessionSeal.typecheck.d.ts +2 -0
  1031. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/signingSessionSeal.types.d.ts +148 -0
  1032. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/express.d.ts +12 -0
  1033. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/fetch.d.ts +13 -0
  1034. package/dist/types/wallet-server/src/threshold/session/signingSessionSeal/transport/shared.d.ts +24 -0
  1035. package/dist/types/wallet-server/src/threshold/statusCodes.d.ts +10 -0
  1036. package/dist/types/wallet-server/src/wasm/signer.d.ts +8 -0
  1037. package/migrations/d1-signer/0001_signer_d1_initial.sql +2486 -0
  1038. package/migrations/d1-signer/0002_signer_post_103_canonical_upgrade.sql +1576 -0
  1039. package/migrations/d1-signer/0003_r107_wallet_authorization.sql +299 -0
  1040. package/migrations/d1-signer/0004_remove_legacy_email_recovery.sql +14 -0
  1041. package/migrations/d1-signer/0005_r103p8_linked_owner_auth_bindings.sql +92 -0
  1042. package/migrations/d1-signer/0006_r103p8_linked_device_custody_transfers.sql +77 -0
  1043. package/migrations/d1-signer/0007_r103p8_wallet_session_auth_method_provenance.sql +18 -0
  1044. package/migrations/d1-signer/0008_r103p8_linked_device_session_cas_guard.sql +35 -0
  1045. package/migrations/d1-signer/0009_linked_device_email_otp.sql +405 -0
  1046. package/migrations/d1-signer/0010_linked_device_session_target_factor.sql +78 -0
  1047. package/migrations/d1-signer/0011_linked_device_ed25519_export_root.sql +9 -0
  1048. package/migrations/d1-signer/0012_versioned_json_cas_guard.sql +3 -0
  1049. package/migrations/d1-signer/0013_linked_device_export_authorization.sql +133 -0
  1050. package/migrations/d1-signer/0014_wallet_recovery_code_locators.sql +19 -0
  1051. package/migrations/d1-signer/0015_r103e_authority_baseline.sql +259 -0
  1052. package/migrations/d1-signer/0016_r103e_wallet_session_authorizations_v2.sql +133 -0
  1053. package/migrations/d1-signer/0017_r103e_link_session_state.sql +83 -0
  1054. package/migrations/d1-signer/0018_r103e_linked_device_authority_installations.sql +34 -0
  1055. package/migrations/d1-signer/0019_r103e_email_otp_device_methods.sql +3 -0
  1056. package/migrations/d1-signer/0020_r103e_wallet_session_operation_credentials.sql +12 -0
  1057. package/migrations/d1-signer/0021_linked_device_source_contribution_transcripts.sql +64 -0
  1058. package/migrations/d1-signer/0022_r109c_multi_auth_email_cardinality.sql +118 -0
  1059. package/migrations/d1-signer/0023_r109d_first_email_linked_device.sql +111 -0
  1060. package/migrations/d1-signer/0024_r103f_v2_authorized_operation_claim.sql +99 -0
  1061. package/migrations/d1-signer/0025_r109d_email_enrollment_wallet_cardinality.sql +57 -0
  1062. package/migrations/d1-signer/0026_r115_wallet_recovery_authority_provenance.sql +253 -0
  1063. package/migrations/d1-signer/0027_r115_email_otp_recovery_bootstrap.sql +90 -0
  1064. package/migrations/d1-signer/0028_r103f_phase1_additive_schema_bridge.sql +1119 -0
  1065. package/migrations/d1-signer/0029_r103f_phase0_registration_replay_tokens.sql +135 -0
  1066. package/migrations/d1-signer/0030_r103f_wallet_session_client_capability.sql +17 -0
  1067. package/migrations/d1-signer/0031_r103f_delete_registration_replay_tokens.sql +4 -0
  1068. package/migrations/d1-signer/0032_r103f_exact_authorized_operation_enforcement.sql +149 -0
  1069. package/migrations/d1-signer/0033_r103f_linked_delivery_recipient.sql +6 -0
  1070. package/migrations/d1-signer/0034_r103f_exact_wallet_session_cutover.sql +743 -0
  1071. package/migrations/d1-signer/0035_r103f_linked_delivery_acknowledgement_cleanup_window.sql +413 -0
  1072. package/package.json +132 -0
  1073. package/scripts/d1-local-migrate-signer.mjs +148 -0
  1074. package/src/README.md +75 -0
  1075. 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;