@noodleseed/one 0.63.0 → 0.64.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 (440) hide show
  1. package/dist/auth-discovery.d.ts +17 -0
  2. package/dist/auth-discovery.d.ts.map +1 -0
  3. package/dist/auth-discovery.js +54 -0
  4. package/dist/auth-discovery.js.map +1 -0
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +3 -0
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/catalog-data-platform-auth.d.ts +7 -0
  9. package/dist/commands/catalog-data-platform-auth.d.ts.map +1 -0
  10. package/dist/commands/catalog-data-platform-auth.js +47 -0
  11. package/dist/commands/catalog-data-platform-auth.js.map +1 -0
  12. package/dist/commands/catalog.d.ts.map +1 -1
  13. package/dist/commands/catalog.js +6 -3
  14. package/dist/commands/catalog.js.map +1 -1
  15. package/dist/commands/docs-mcp.d.ts +3 -3
  16. package/dist/commands/docs-mcp.js +3 -3
  17. package/dist/commands/platform-auth-finalization-args.d.ts +13 -0
  18. package/dist/commands/platform-auth-finalization-args.d.ts.map +1 -0
  19. package/dist/commands/platform-auth-finalization-args.js +29 -0
  20. package/dist/commands/platform-auth-finalization-args.js.map +1 -0
  21. package/dist/commands/platform-auth-migration-args.d.ts +71 -0
  22. package/dist/commands/platform-auth-migration-args.d.ts.map +1 -0
  23. package/dist/commands/platform-auth-migration-args.js +320 -0
  24. package/dist/commands/platform-auth-migration-args.js.map +1 -0
  25. package/dist/commands/platform-auth-migration-ops.d.ts +3 -0
  26. package/dist/commands/platform-auth-migration-ops.d.ts.map +1 -0
  27. package/dist/commands/platform-auth-migration-ops.js +369 -0
  28. package/dist/commands/platform-auth-migration-ops.js.map +1 -0
  29. package/dist/commands/project-setup.js +1 -1
  30. package/dist/commands/project-setup.js.map +1 -1
  31. package/dist/config.d.ts +4 -4
  32. package/dist/config.d.ts.map +1 -1
  33. package/dist/control-plane.d.ts +0 -11
  34. package/dist/control-plane.d.ts.map +1 -1
  35. package/dist/control-plane.js +1 -8
  36. package/dist/control-plane.js.map +1 -1
  37. package/dist/doctor.d.ts.map +1 -1
  38. package/dist/doctor.js +3 -5
  39. package/dist/doctor.js.map +1 -1
  40. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  41. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +4 -0
  42. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  43. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  44. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
  45. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  46. package/node_modules/@noodle-borg/auth/dist/jwt-issuer.d.ts +2 -2
  47. package/node_modules/@noodle-borg/auth/dist/jwt-issuer.d.ts.map +1 -1
  48. package/node_modules/@noodle-borg/auth/dist/jwt-issuer.js +1 -1
  49. package/node_modules/@noodle-borg/auth/dist/verify.d.ts +1 -1
  50. package/node_modules/@noodle-borg/auth/dist/verify.d.ts.map +1 -1
  51. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.d.ts +26 -0
  52. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.d.ts.map +1 -1
  53. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.js +105 -1
  54. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.js.map +1 -1
  55. package/node_modules/@noodle-borg/service/dist/control-plane-auth-bootstrap.d.ts +25 -0
  56. package/node_modules/@noodle-borg/service/dist/control-plane-auth-bootstrap.d.ts.map +1 -0
  57. package/node_modules/@noodle-borg/service/dist/control-plane-auth-bootstrap.js +99 -0
  58. package/node_modules/@noodle-borg/service/dist/control-plane-auth-bootstrap.js.map +1 -0
  59. package/node_modules/@noodle-borg/service/dist/index.d.ts +15 -0
  60. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  61. package/node_modules/@noodle-borg/service/dist/index.js +15 -0
  62. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  63. package/node_modules/@noodle-borg/service/dist/main.js +112 -19
  64. package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
  65. package/node_modules/@noodle-borg/service/dist/oauth/app.d.ts +1 -1
  66. package/node_modules/@noodle-borg/service/dist/oauth/app.d.ts.map +1 -1
  67. package/node_modules/@noodle-borg/service/dist/oauth/app.js +9 -1
  68. package/node_modules/@noodle-borg/service/dist/oauth/app.js.map +1 -1
  69. package/node_modules/@noodle-borg/service/dist/oauth/authorization-initiation.d.ts +24 -0
  70. package/node_modules/@noodle-borg/service/dist/oauth/authorization-initiation.d.ts.map +1 -0
  71. package/node_modules/@noodle-borg/service/dist/oauth/authorization-initiation.js +88 -0
  72. package/node_modules/@noodle-borg/service/dist/oauth/authorization-initiation.js.map +1 -0
  73. package/node_modules/@noodle-borg/service/dist/oauth/branding.d.ts +2 -0
  74. package/node_modules/@noodle-borg/service/dist/oauth/branding.d.ts.map +1 -1
  75. package/node_modules/@noodle-borg/service/dist/oauth/branding.js +3 -2
  76. package/node_modules/@noodle-borg/service/dist/oauth/branding.js.map +1 -1
  77. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts +1 -1
  78. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts.map +1 -1
  79. package/node_modules/@noodle-borg/service/dist/oauth/consent-token.d.ts +5 -0
  80. package/node_modules/@noodle-borg/service/dist/oauth/consent-token.d.ts.map +1 -0
  81. package/node_modules/@noodle-borg/service/dist/oauth/consent-token.js +19 -0
  82. package/node_modules/@noodle-borg/service/dist/oauth/consent-token.js.map +1 -0
  83. package/node_modules/@noodle-borg/service/dist/oauth/consent.js +1 -1
  84. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.d.ts.map +1 -1
  85. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.js +216 -28
  86. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.js.map +1 -1
  87. package/node_modules/@noodle-borg/service/dist/oauth/first-party-client.d.ts +13 -0
  88. package/node_modules/@noodle-borg/service/dist/oauth/first-party-client.d.ts.map +1 -0
  89. package/node_modules/@noodle-borg/service/dist/oauth/first-party-client.js +62 -0
  90. package/node_modules/@noodle-borg/service/dist/oauth/first-party-client.js.map +1 -0
  91. package/node_modules/@noodle-borg/service/dist/oauth/metadata.d.ts +4 -0
  92. package/node_modules/@noodle-borg/service/dist/oauth/metadata.d.ts.map +1 -0
  93. package/node_modules/@noodle-borg/service/dist/oauth/metadata.js +20 -0
  94. package/node_modules/@noodle-borg/service/dist/oauth/metadata.js.map +1 -0
  95. package/node_modules/@noodle-borg/service/dist/oauth/paths.d.ts.map +1 -1
  96. package/node_modules/@noodle-borg/service/dist/oauth/paths.js +2 -0
  97. package/node_modules/@noodle-borg/service/dist/oauth/paths.js.map +1 -1
  98. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-guard.d.ts +15 -0
  99. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-guard.d.ts.map +1 -0
  100. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-guard.js +58 -0
  101. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-guard.js.map +1 -0
  102. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-postgres.d.ts +8 -0
  103. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-postgres.d.ts.map +1 -0
  104. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-postgres.js +49 -0
  105. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-postgres.js.map +1 -0
  106. package/node_modules/@noodle-borg/service/dist/oauth/postgres-time.d.ts +3 -0
  107. package/node_modules/@noodle-borg/service/dist/oauth/postgres-time.d.ts.map +1 -0
  108. package/node_modules/@noodle-borg/service/dist/oauth/postgres-time.js +7 -0
  109. package/node_modules/@noodle-borg/service/dist/oauth/postgres-time.js.map +1 -0
  110. package/node_modules/@noodle-borg/service/dist/oauth/provider.d.ts +20 -25
  111. package/node_modules/@noodle-borg/service/dist/oauth/provider.d.ts.map +1 -1
  112. package/node_modules/@noodle-borg/service/dist/oauth/provider.js +105 -196
  113. package/node_modules/@noodle-borg/service/dist/oauth/provider.js.map +1 -1
  114. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.d.ts +36 -0
  115. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.d.ts.map +1 -0
  116. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js +157 -0
  117. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js.map +1 -0
  118. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres-schema.d.ts +4 -0
  119. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres-schema.d.ts.map +1 -0
  120. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres-schema.js +110 -0
  121. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres-schema.js.map +1 -0
  122. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.d.ts +7 -4
  123. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.d.ts.map +1 -1
  124. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.js +63 -120
  125. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.js.map +1 -1
  126. package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts +19 -6
  127. package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts.map +1 -1
  128. package/node_modules/@noodle-borg/service/dist/oauth/store.js +24 -2
  129. package/node_modules/@noodle-borg/service/dist/oauth/store.js.map +1 -1
  130. package/node_modules/@noodle-borg/service/dist/oauth/tokens.d.ts +1 -1
  131. package/node_modules/@noodle-borg/service/dist/oauth/tokens.d.ts.map +1 -1
  132. package/node_modules/@noodle-borg/service/dist/oauth/tokens.js +1 -1
  133. package/node_modules/@noodle-borg/service/dist/oauth/tokens.js.map +1 -1
  134. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-availability.d.ts +4 -0
  135. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-availability.d.ts.map +1 -0
  136. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-availability.js +8 -0
  137. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-availability.js.map +1 -0
  138. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.d.ts +34 -0
  139. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.d.ts.map +1 -0
  140. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.js +109 -0
  141. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.js.map +1 -0
  142. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.d.ts +22 -0
  143. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.d.ts.map +1 -0
  144. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.js +30 -0
  145. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.js.map +1 -0
  146. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.d.ts +21 -0
  147. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.d.ts.map +1 -0
  148. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.js +56 -0
  149. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.js.map +1 -0
  150. package/node_modules/@noodle-borg/service/dist/oauth/upstream-federation.d.ts +30 -0
  151. package/node_modules/@noodle-borg/service/dist/oauth/upstream-federation.d.ts.map +1 -0
  152. package/node_modules/@noodle-borg/service/dist/oauth/upstream-federation.js +94 -0
  153. package/node_modules/@noodle-borg/service/dist/oauth/upstream-federation.js.map +1 -0
  154. package/node_modules/@noodle-borg/service/dist/oauth/upstream-human.d.ts +33 -0
  155. package/node_modules/@noodle-borg/service/dist/oauth/upstream-human.d.ts.map +1 -0
  156. package/node_modules/@noodle-borg/service/dist/oauth/upstream-human.js +27 -0
  157. package/node_modules/@noodle-borg/service/dist/oauth/upstream-human.js.map +1 -0
  158. package/node_modules/@noodle-borg/service/dist/oauth/upstream-provider-choice.d.ts +13 -0
  159. package/node_modules/@noodle-borg/service/dist/oauth/upstream-provider-choice.d.ts.map +1 -0
  160. package/node_modules/@noodle-borg/service/dist/oauth/upstream-provider-choice.js +63 -0
  161. package/node_modules/@noodle-borg/service/dist/oauth/upstream-provider-choice.js.map +1 -0
  162. package/node_modules/@noodle-borg/service/dist/oauth/upstream-rollout-store.d.ts +20 -0
  163. package/node_modules/@noodle-borg/service/dist/oauth/upstream-rollout-store.d.ts.map +1 -0
  164. package/node_modules/@noodle-borg/service/dist/oauth/upstream-rollout-store.js +40 -0
  165. package/node_modules/@noodle-borg/service/dist/oauth/upstream-rollout-store.js.map +1 -0
  166. package/node_modules/@noodle-borg/service/dist/oauth/workos-events.d.ts +115 -0
  167. package/node_modules/@noodle-borg/service/dist/oauth/workos-events.d.ts.map +1 -0
  168. package/node_modules/@noodle-borg/service/dist/oauth/workos-events.js +310 -0
  169. package/node_modules/@noodle-borg/service/dist/oauth/workos-events.js.map +1 -0
  170. package/node_modules/@noodle-borg/service/dist/oauth/workos.d.ts +65 -0
  171. package/node_modules/@noodle-borg/service/dist/oauth/workos.d.ts.map +1 -0
  172. package/node_modules/@noodle-borg/service/dist/oauth/workos.js +85 -0
  173. package/node_modules/@noodle-borg/service/dist/oauth/workos.js.map +1 -0
  174. package/node_modules/@noodle-borg/service/dist/options.d.ts +11 -2
  175. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  176. package/node_modules/@noodle-borg/service/dist/personal-workspace.d.ts +2 -0
  177. package/node_modules/@noodle-borg/service/dist/personal-workspace.d.ts.map +1 -1
  178. package/node_modules/@noodle-borg/service/dist/personal-workspace.js +8 -2
  179. package/node_modules/@noodle-borg/service/dist/personal-workspace.js.map +1 -1
  180. package/node_modules/@noodle-borg/service/dist/platform-auth-configuration.d.ts +67 -0
  181. package/node_modules/@noodle-borg/service/dist/platform-auth-configuration.d.ts.map +1 -0
  182. package/node_modules/@noodle-borg/service/dist/platform-auth-configuration.js +54 -0
  183. package/node_modules/@noodle-borg/service/dist/platform-auth-configuration.js.map +1 -0
  184. package/node_modules/@noodle-borg/service/dist/platform-auth-frozen-candidate-postgres.d.ts +25 -0
  185. package/node_modules/@noodle-borg/service/dist/platform-auth-frozen-candidate-postgres.d.ts.map +1 -0
  186. package/node_modules/@noodle-borg/service/dist/platform-auth-frozen-candidate-postgres.js +61 -0
  187. package/node_modules/@noodle-borg/service/dist/platform-auth-frozen-candidate-postgres.js.map +1 -0
  188. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-legacy-sources-postgres.d.ts +32 -0
  189. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-legacy-sources-postgres.d.ts.map +1 -0
  190. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-legacy-sources-postgres.js +231 -0
  191. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-legacy-sources-postgres.js.map +1 -0
  192. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-postgres.d.ts +29 -0
  193. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-postgres.d.ts.map +1 -0
  194. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-postgres.js +350 -0
  195. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-postgres.js.map +1 -0
  196. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-subjects-postgres.d.ts +50 -0
  197. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-subjects-postgres.d.ts.map +1 -0
  198. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-subjects-postgres.js +239 -0
  199. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-subjects-postgres.js.map +1 -0
  200. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-paging.d.ts +66 -0
  201. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-paging.d.ts.map +1 -0
  202. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-paging.js +77 -0
  203. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-paging.js.map +1 -0
  204. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-postgres.d.ts +40 -0
  205. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-postgres.d.ts.map +1 -0
  206. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-postgres.js +355 -0
  207. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-postgres.js.map +1 -0
  208. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-progress-postgres.d.ts +41 -0
  209. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-progress-postgres.d.ts.map +1 -0
  210. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-progress-postgres.js +230 -0
  211. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-progress-postgres.js.map +1 -0
  212. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.d.ts +20 -0
  213. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.d.ts.map +1 -0
  214. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.js +126 -0
  215. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.js.map +1 -0
  216. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-sources.d.ts +8 -0
  217. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-sources.d.ts.map +1 -0
  218. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-sources.js +86 -0
  219. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-sources.js.map +1 -0
  220. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-postgres.d.ts +42 -0
  221. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-postgres.d.ts.map +1 -0
  222. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-postgres.js +368 -0
  223. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-postgres.js.map +1 -0
  224. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-runs-postgres.d.ts +86 -0
  225. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-runs-postgres.d.ts.map +1 -0
  226. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-runs-postgres.js +474 -0
  227. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-runs-postgres.js.map +1 -0
  228. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-schema.d.ts +17 -0
  229. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-schema.d.ts.map +1 -0
  230. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-schema.js +435 -0
  231. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-schema.js.map +1 -0
  232. package/node_modules/@noodle-borg/service/dist/platform-auth-migration.d.ts +202 -0
  233. package/node_modules/@noodle-borg/service/dist/platform-auth-migration.d.ts.map +1 -0
  234. package/node_modules/@noodle-borg/service/dist/platform-auth-migration.js +313 -0
  235. package/node_modules/@noodle-borg/service/dist/platform-auth-migration.js.map +1 -0
  236. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-batches.d.ts +48 -0
  237. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-batches.d.ts.map +1 -0
  238. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-batches.js +158 -0
  239. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-batches.js.map +1 -0
  240. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-effects.d.ts +43 -0
  241. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-effects.d.ts.map +1 -0
  242. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-effects.js +92 -0
  243. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-effects.js.map +1 -0
  244. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-operation-postgres.d.ts +31 -0
  245. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-operation-postgres.d.ts.map +1 -0
  246. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-operation-postgres.js +94 -0
  247. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-operation-postgres.js.map +1 -0
  248. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-ports.d.ts +102 -0
  249. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-ports.d.ts.map +1 -0
  250. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-ports.js +2 -0
  251. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-ports.js.map +1 -0
  252. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-postgres.d.ts +17 -0
  253. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-postgres.d.ts.map +1 -0
  254. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-postgres.js +367 -0
  255. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-postgres.js.map +1 -0
  256. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-remote-status.d.ts +10 -0
  257. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-remote-status.d.ts.map +1 -0
  258. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-remote-status.js +37 -0
  259. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-remote-status.js.map +1 -0
  260. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-rollout.d.ts +36 -0
  261. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-rollout.d.ts.map +1 -0
  262. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-rollout.js +156 -0
  263. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-rollout.js.map +1 -0
  264. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-schema.d.ts +4 -0
  265. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-schema.d.ts.map +1 -0
  266. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-schema.js +162 -0
  267. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-schema.js.map +1 -0
  268. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-postgres.d.ts +92 -0
  269. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-postgres.d.ts.map +1 -0
  270. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-postgres.js +271 -0
  271. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-postgres.js.map +1 -0
  272. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-support.d.ts +13 -0
  273. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-support.d.ts.map +1 -0
  274. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-support.js +67 -0
  275. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-support.js.map +1 -0
  276. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-support.d.ts +15 -0
  277. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-support.d.ts.map +1 -0
  278. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-support.js +47 -0
  279. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-support.js.map +1 -0
  280. package/node_modules/@noodle-borg/service/dist/platform-auth-operator.d.ts +1569 -0
  281. package/node_modules/@noodle-borg/service/dist/platform-auth-operator.d.ts.map +1 -0
  282. package/node_modules/@noodle-borg/service/dist/platform-auth-operator.js +274 -0
  283. package/node_modules/@noodle-borg/service/dist/platform-auth-operator.js.map +1 -0
  284. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres-support.d.ts +41 -0
  285. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres-support.d.ts.map +1 -0
  286. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres-support.js +163 -0
  287. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres-support.js.map +1 -0
  288. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres.d.ts +34 -0
  289. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres.d.ts.map +1 -0
  290. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres.js +274 -0
  291. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres.js.map +1 -0
  292. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-schema.d.ts +3 -0
  293. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-schema.d.ts.map +1 -0
  294. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-schema.js +120 -0
  295. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-schema.js.map +1 -0
  296. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification.d.ts +79 -0
  297. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification.d.ts.map +1 -0
  298. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification.js +88 -0
  299. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification.js.map +1 -0
  300. package/node_modules/@noodle-borg/service/dist/platform-auth-rollback-guard.d.ts +6 -0
  301. package/node_modules/@noodle-borg/service/dist/platform-auth-rollback-guard.d.ts.map +1 -0
  302. package/node_modules/@noodle-borg/service/dist/platform-auth-rollback-guard.js +38 -0
  303. package/node_modules/@noodle-borg/service/dist/platform-auth-rollback-guard.js.map +1 -0
  304. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-postgres.d.ts +61 -0
  305. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-postgres.d.ts.map +1 -0
  306. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-postgres.js +292 -0
  307. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-postgres.js.map +1 -0
  308. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-readiness-postgres.d.ts +19 -0
  309. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-readiness-postgres.d.ts.map +1 -0
  310. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-readiness-postgres.js +121 -0
  311. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-readiness-postgres.js.map +1 -0
  312. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-support.d.ts +119 -0
  313. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-support.d.ts.map +1 -0
  314. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-support.js +194 -0
  315. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-support.js.map +1 -0
  316. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.d.ts +36 -0
  317. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.d.ts.map +1 -0
  318. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.js +93 -0
  319. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.js.map +1 -0
  320. package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.d.ts +32 -0
  321. package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.d.ts.map +1 -0
  322. package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.js +68 -0
  323. package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.js.map +1 -0
  324. package/node_modules/@noodle-borg/service/dist/platform-identity-maintenance.d.ts +36 -0
  325. package/node_modules/@noodle-borg/service/dist/platform-identity-maintenance.d.ts.map +1 -0
  326. package/node_modules/@noodle-borg/service/dist/platform-identity-maintenance.js +92 -0
  327. package/node_modules/@noodle-borg/service/dist/platform-identity-maintenance.js.map +1 -0
  328. package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.d.ts +23 -0
  329. package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.d.ts.map +1 -0
  330. package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.js +231 -0
  331. package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.js.map +1 -0
  332. package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.d.ts +13 -0
  333. package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.d.ts.map +1 -0
  334. package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.js +399 -0
  335. package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.js.map +1 -0
  336. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-enqueue.d.ts +18 -0
  337. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-enqueue.d.ts.map +1 -0
  338. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-enqueue.js +25 -0
  339. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-enqueue.js.map +1 -0
  340. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-evidence-postgres.d.ts +15 -0
  341. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-evidence-postgres.d.ts.map +1 -0
  342. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-evidence-postgres.js +74 -0
  343. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-evidence-postgres.js.map +1 -0
  344. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.d.ts +19 -0
  345. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.d.ts.map +1 -0
  346. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.js +249 -0
  347. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.js.map +1 -0
  348. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-recovery-postgres.d.ts +34 -0
  349. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-recovery-postgres.d.ts.map +1 -0
  350. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-recovery-postgres.js +275 -0
  351. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-recovery-postgres.js.map +1 -0
  352. package/node_modules/@noodle-borg/service/dist/platform-identity-sync.d.ts +98 -0
  353. package/node_modules/@noodle-borg/service/dist/platform-identity-sync.d.ts.map +1 -0
  354. package/node_modules/@noodle-borg/service/dist/platform-identity-sync.js +179 -0
  355. package/node_modules/@noodle-borg/service/dist/platform-identity-sync.js.map +1 -0
  356. package/node_modules/@noodle-borg/service/dist/platform-identity.d.ts +110 -0
  357. package/node_modules/@noodle-borg/service/dist/platform-identity.d.ts.map +1 -0
  358. package/node_modules/@noodle-borg/service/dist/platform-identity.js +312 -0
  359. package/node_modules/@noodle-borg/service/dist/platform-identity.js.map +1 -0
  360. package/node_modules/@noodle-borg/service/dist/routes/auth-discovery.d.ts +6 -0
  361. package/node_modules/@noodle-borg/service/dist/routes/auth-discovery.d.ts.map +1 -0
  362. package/node_modules/@noodle-borg/service/dist/routes/auth-discovery.js +36 -0
  363. package/node_modules/@noodle-borg/service/dist/routes/auth-discovery.js.map +1 -0
  364. package/node_modules/@noodle-borg/service/dist/routes/billing-read.d.ts.map +1 -1
  365. package/node_modules/@noodle-borg/service/dist/routes/billing-read.js +3 -9
  366. package/node_modules/@noodle-borg/service/dist/routes/billing-read.js.map +1 -1
  367. package/node_modules/@noodle-borg/service/dist/routes/billing-stripe.d.ts.map +1 -1
  368. package/node_modules/@noodle-borg/service/dist/routes/billing-stripe.js +3 -3
  369. package/node_modules/@noodle-borg/service/dist/routes/billing-stripe.js.map +1 -1
  370. package/node_modules/@noodle-borg/service/dist/routes/github-run-claim.d.ts.map +1 -1
  371. package/node_modules/@noodle-borg/service/dist/routes/github-run-claim.js +3 -1
  372. package/node_modules/@noodle-borg/service/dist/routes/github-run-claim.js.map +1 -1
  373. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration-dispatch.d.ts +8 -0
  374. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration-dispatch.d.ts.map +1 -0
  375. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration-dispatch.js +40 -0
  376. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration-dispatch.js.map +1 -0
  377. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration.d.ts +13 -0
  378. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration.d.ts.map +1 -0
  379. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration.js +158 -0
  380. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration.js.map +1 -0
  381. package/node_modules/@noodle-borg/service/dist/serve-options.d.ts +21 -3
  382. package/node_modules/@noodle-borg/service/dist/serve-options.d.ts.map +1 -1
  383. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  384. package/node_modules/@noodle-borg/service/dist/serve.js +61 -146
  385. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  386. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.d.ts +1 -0
  387. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.d.ts.map +1 -1
  388. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js +3 -0
  389. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js.map +1 -1
  390. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  391. package/node_modules/@noodle-borg/service/dist/service.js +17 -29
  392. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  393. package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts.map +1 -1
  394. package/node_modules/@noodle-borg/service/dist/store/control-plane.js +60 -19
  395. package/node_modules/@noodle-borg/service/dist/store/control-plane.js.map +1 -1
  396. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts +1 -2
  397. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts.map +1 -1
  398. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js +0 -40
  399. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js.map +1 -1
  400. package/node_modules/@noodle-borg/service/dist/store/postgres-personal-workspace.d.ts +5 -0
  401. package/node_modules/@noodle-borg/service/dist/store/postgres-personal-workspace.d.ts.map +1 -0
  402. package/node_modules/@noodle-borg/service/dist/store/postgres-personal-workspace.js +176 -0
  403. package/node_modules/@noodle-borg/service/dist/store/postgres-personal-workspace.js.map +1 -0
  404. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts +2 -0
  405. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  406. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +43 -1
  407. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  408. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js +2 -1
  409. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js.map +1 -1
  410. package/node_modules/@noodle-borg/service/dist/workos-directory.d.ts +71 -0
  411. package/node_modules/@noodle-borg/service/dist/workos-directory.d.ts.map +1 -0
  412. package/node_modules/@noodle-borg/service/dist/workos-directory.js +175 -0
  413. package/node_modules/@noodle-borg/service/dist/workos-directory.js.map +1 -0
  414. package/node_modules/@noodle-borg/service/package.json +1 -0
  415. package/node_modules/@workos-inc/node/LICENSE +21 -0
  416. package/node_modules/@workos-inc/node/README.md +140 -0
  417. package/node_modules/@workos-inc/node/lib/factory-B8vTFojy.d.cts +9727 -0
  418. package/node_modules/@workos-inc/node/lib/factory-B8vTFojy.d.mts +9727 -0
  419. package/node_modules/@workos-inc/node/lib/factory-CoKXdPX2.cjs +8426 -0
  420. package/node_modules/@workos-inc/node/lib/factory-CoKXdPX2.cjs.map +1 -0
  421. package/node_modules/@workos-inc/node/lib/factory-MKPb5Egh.mjs +8241 -0
  422. package/node_modules/@workos-inc/node/lib/factory-MKPb5Egh.mjs.map +1 -0
  423. package/node_modules/@workos-inc/node/lib/index.cjs +449 -0
  424. package/node_modules/@workos-inc/node/lib/index.cjs.map +1 -0
  425. package/node_modules/@workos-inc/node/lib/index.d.cts +478 -0
  426. package/node_modules/@workos-inc/node/lib/index.d.mts +478 -0
  427. package/node_modules/@workos-inc/node/lib/index.mjs +394 -0
  428. package/node_modules/@workos-inc/node/lib/index.mjs.map +1 -0
  429. package/node_modules/@workos-inc/node/lib/index.worker.cjs +60 -0
  430. package/node_modules/@workos-inc/node/lib/index.worker.cjs.map +1 -0
  431. package/node_modules/@workos-inc/node/lib/index.worker.d.cts +16 -0
  432. package/node_modules/@workos-inc/node/lib/index.worker.d.mts +16 -0
  433. package/node_modules/@workos-inc/node/lib/index.worker.mjs +35 -0
  434. package/node_modules/@workos-inc/node/lib/index.worker.mjs.map +1 -0
  435. package/node_modules/@workos-inc/node/lib/webapi-BgpV54gi.mjs +3224 -0
  436. package/node_modules/@workos-inc/node/lib/webapi-BgpV54gi.mjs.map +1 -0
  437. package/node_modules/@workos-inc/node/lib/webapi-BzGFatFp.cjs +3271 -0
  438. package/node_modules/@workos-inc/node/lib/webapi-BzGFatFp.cjs.map +1 -0
  439. package/node_modules/@workos-inc/node/package.json +96 -0
  440. package/package.json +2 -1
@@ -0,0 +1,368 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { loadBoundFrozenImportCandidate } from './platform-auth-frozen-candidate-postgres.js';
3
+ import { PlatformAuthMigrationError, } from './platform-auth-migration.js';
4
+ import { candidateDigest, migrationHash as hash, PostgresPlatformAuthMigrationRunStore, } from './platform-auth-migration-runs-postgres.js';
5
+ import { normalizePlatformIdentityEmail } from './platform-identity.js';
6
+ /** Durable migration ledger adapter. It deliberately commits claims before calling an upstream directory. */
7
+ export class PostgresPlatformAuthMigrationStore {
8
+ #pool;
9
+ #runs;
10
+ constructor(pool) {
11
+ this.#pool = pool;
12
+ this.#runs = new PostgresPlatformAuthMigrationRunStore(pool);
13
+ }
14
+ createRun(input) {
15
+ return this.#runs.createRun(input);
16
+ }
17
+ listFrozenCandidates(runId) {
18
+ return this.#runs.listFrozenCandidates(runId);
19
+ }
20
+ listFrozenCandidateBatch(runId, options) {
21
+ return this.#runs.listFrozenCandidateBatch(runId, options);
22
+ }
23
+ completeRun(runId) {
24
+ return this.#runs.completeRun(runId);
25
+ }
26
+ async recordBackfill(input) {
27
+ if (input.source.provider !== 'google' ||
28
+ input.source.subject !== input.principalId ||
29
+ input.runId === undefined ||
30
+ input.verifiedEmail === undefined)
31
+ throw new PlatformAuthMigrationError('invalid_import');
32
+ const connection = this.#pool.connect === undefined ? this.#pool : await this.#pool.connect();
33
+ try {
34
+ await connection.query('BEGIN');
35
+ await connection.query('SELECT pg_advisory_xact_lock(hashtextextended($1, 0))', [
36
+ `platform-backfill-source:${hash(input.source)}`,
37
+ ]);
38
+ await connection.query('SELECT pg_advisory_xact_lock(hashtextextended($1, 0))', [
39
+ `platform-backfill-principal:${hash(input.principalId)}`,
40
+ ]);
41
+ const email = normalizePlatformIdentityEmail(input.verifiedEmail);
42
+ await connection.query('SELECT pg_advisory_xact_lock(hashtextextended($1, 0))', [
43
+ `platform-backfill-email:${hash(email)}`,
44
+ ]);
45
+ const running = await connection.query(`SELECT inventory_run_id, inventory_checksum, release_sha,
46
+ workos_realm_fingerprint, lineage_checksum
47
+ FROM identity_migration_runs
48
+ WHERE id = $1 AND kind = 'backfill' AND state = 'running' FOR UPDATE`, [input.runId]);
49
+ const run = running.rows[0];
50
+ if (run === undefined ||
51
+ run.inventory_run_id === null ||
52
+ run.inventory_checksum === null ||
53
+ run.workos_realm_fingerprint === null ||
54
+ run.lineage_checksum === null)
55
+ throw new PlatformAuthMigrationError('invalid_import');
56
+ const frozen = await connection.query(`SELECT candidate.principal_id, candidate.normalized_email, candidate.email_fingerprint,
57
+ candidate.provenance, candidate.blocker_codes, candidate.source_fingerprint,
58
+ candidate.candidate_fingerprint, candidate.source_realm,
59
+ inventory.frozen_checksum, inventory.release_sha,
60
+ inventory.workos_realm_fingerprint,
61
+ inventory.source_fingerprint AS source_set_fingerprint
62
+ FROM platform_auth_inventory_candidates candidate
63
+ JOIN identity_migration_runs inventory ON inventory.id = candidate.migration_run_id
64
+ WHERE candidate.migration_run_id = $1 AND candidate.source_subject = $2
65
+ AND inventory.kind = 'inventory' AND inventory.state = 'completed'
66
+ FOR UPDATE`, [run.inventory_run_id, input.source.subject]);
67
+ const candidate = frozen.rows[0];
68
+ if (candidate === undefined ||
69
+ candidate.frozen_checksum !== run.inventory_checksum ||
70
+ candidate.release_sha !== run.release_sha ||
71
+ candidate.source_realm !== input.source.realm ||
72
+ candidate.workos_realm_fingerprint !== run.workos_realm_fingerprint ||
73
+ candidate.source_set_fingerprint === null ||
74
+ run.lineage_checksum !==
75
+ hash({
76
+ inventoryRunHash: hash(run.inventory_run_id),
77
+ inventoryChecksum: run.inventory_checksum,
78
+ candidateSetChecksum: candidate.source_set_fingerprint,
79
+ workosRealmFingerprint: run.workos_realm_fingerprint,
80
+ releaseSha: run.release_sha,
81
+ }) ||
82
+ candidate.normalized_email !== email ||
83
+ candidate.email_fingerprint !== hash(email) ||
84
+ candidate.blocker_codes.length !== 0 ||
85
+ candidate.candidate_fingerprint !== candidateDigest(candidate))
86
+ throw new PlatformAuthMigrationError('invalid_import');
87
+ const existing = await connection.query(`SELECT principal_id, source_fingerprint, verified_email_fingerprint FROM identity_backfill_ledger
88
+ WHERE source_provider = $1 AND source_realm = $2 AND source_subject = $3`, [input.source.provider, input.source.realm, input.source.subject]);
89
+ if (existing.rows[0] !== undefined && existing.rows[0].principal_id !== input.principalId)
90
+ throw new PlatformAuthMigrationError('source_remap_forbidden');
91
+ if (existing.rows[0] !== undefined) {
92
+ // Verified-email evidence is immutable migration lineage. A recovery needs a separately
93
+ // audited dual-auth/manual-evidence ceremony; a fresh inventory must not reinterpret it.
94
+ if (existing.rows[0].source_fingerprint !== hash(input.source) ||
95
+ existing.rows[0].verified_email_fingerprint !==
96
+ hash(normalizePlatformIdentityEmail(input.verifiedEmail)))
97
+ throw new PlatformAuthMigrationError('source_remap_forbidden');
98
+ }
99
+ await connection.query(`INSERT INTO platform_principals
100
+ (principal_id, status, billing_identity_issuer, billing_subject)
101
+ VALUES ($1, 'active', 'https://accounts.google.com', $1)
102
+ ON CONFLICT (principal_id) DO NOTHING`, [input.principalId]);
103
+ const principal = await connection.query('SELECT status, billing_identity_issuer, billing_subject FROM platform_principals WHERE principal_id = $1 FOR UPDATE', [input.principalId]);
104
+ if (principal.rows[0] === undefined ||
105
+ principal.rows[0].billing_identity_issuer !== 'https://accounts.google.com' ||
106
+ principal.rows[0].billing_subject !== input.source.subject)
107
+ throw new PlatformAuthMigrationError('source_remap_forbidden');
108
+ if (principal.rows[0].status !== 'active')
109
+ throw new PlatformAuthMigrationError('invalid_import');
110
+ await connection.query(`INSERT INTO platform_identity_links (provider, realm, external_id, principal_id)
111
+ VALUES ('google', $1, $2, $3)
112
+ ON CONFLICT (provider, realm, external_id) DO NOTHING`, [input.source.realm, input.source.subject, input.principalId]);
113
+ const link = await connection.query(`SELECT principal_id, disabled_at FROM platform_identity_links
114
+ WHERE provider = 'google' AND realm = $1 AND external_id = $2 FOR UPDATE`, [input.source.realm, input.source.subject]);
115
+ if (link.rows[0]?.principal_id !== input.principalId || link.rows[0].disabled_at !== null)
116
+ throw new PlatformAuthMigrationError('source_remap_forbidden');
117
+ await connection.query(`INSERT INTO platform_verified_emails
118
+ (principal_id, original_email, normalized_email, provider, realm)
119
+ VALUES ($1, $2, $3, 'google', $4)
120
+ ON CONFLICT (principal_id, normalized_email, provider, realm) DO NOTHING`, [input.principalId, input.verifiedEmail, email, input.source.realm]);
121
+ const emailEvidence = await connection.query(`SELECT
122
+ (SELECT count(*)::text FROM platform_verified_emails
123
+ WHERE principal_id = $1 AND provider = 'google' AND realm = $2
124
+ AND status = 'active') AS current_google,
125
+ (SELECT count(*)::text FROM platform_verified_emails
126
+ WHERE principal_id = $1 AND provider = 'google' AND realm = $2
127
+ AND status = 'active' AND normalized_email = $3) AS exact,
128
+ (SELECT count(DISTINCT principal_id)::text FROM platform_verified_emails
129
+ WHERE status = 'active' AND normalized_email = $3) AS global_principals`, [input.principalId, input.source.realm, email]);
130
+ if (Number(emailEvidence.rows[0]?.current_google ?? 0) !== 1 ||
131
+ Number(emailEvidence.rows[0]?.exact ?? 0) !== 1 ||
132
+ Number(emailEvidence.rows[0]?.global_principals ?? 0) !== 1)
133
+ throw new PlatformAuthMigrationError('source_remap_forbidden');
134
+ if (existing.rows[0] !== undefined) {
135
+ await connection.query('COMMIT');
136
+ return 'already_backfilled';
137
+ }
138
+ const inserted = await connection.query(`INSERT INTO identity_backfill_ledger
139
+ (source_provider, source_realm, source_subject, principal_id, migration_run_id, source_fingerprint, verified_email_fingerprint)
140
+ VALUES ($1, $2, $3, $4, $5, $6, $7)
141
+ ON CONFLICT (source_provider, source_realm, source_subject) DO NOTHING RETURNING principal_id`, [
142
+ input.source.provider,
143
+ input.source.realm,
144
+ input.source.subject,
145
+ input.principalId,
146
+ input.runId ?? null,
147
+ hash(input.source),
148
+ hash(input.verifiedEmail === undefined
149
+ ? ''
150
+ : normalizePlatformIdentityEmail(input.verifiedEmail)),
151
+ ]);
152
+ if (inserted.rows[0] !== undefined) {
153
+ await connection.query('COMMIT');
154
+ return 'backfilled';
155
+ }
156
+ const raced = await connection.query(`SELECT principal_id FROM identity_backfill_ledger
157
+ WHERE source_provider = $1 AND source_realm = $2 AND source_subject = $3`, [input.source.provider, input.source.realm, input.source.subject]);
158
+ if (raced.rows[0]?.principal_id !== input.principalId)
159
+ throw new PlatformAuthMigrationError('source_remap_forbidden');
160
+ await connection.query('COMMIT');
161
+ return 'already_backfilled';
162
+ }
163
+ catch (error) {
164
+ await connection.query('ROLLBACK').catch(() => undefined);
165
+ throw error;
166
+ }
167
+ finally {
168
+ connection.release?.();
169
+ }
170
+ }
171
+ async claimImport(input, options = {}) {
172
+ const email = normalizePlatformIdentityEmail(input.verifiedEmail);
173
+ if (input.principalId.length === 0 ||
174
+ input.principalId.length > 64 ||
175
+ input.realm.trim().length === 0)
176
+ throw new PlatformAuthMigrationError('invalid_import');
177
+ const leaseToken = randomUUID();
178
+ const connection = this.#pool.connect === undefined ? this.#pool : await this.#pool.connect();
179
+ try {
180
+ await connection.query('BEGIN ISOLATION LEVEL REPEATABLE READ');
181
+ await connection.query('LOCK TABLE platform_principals, platform_identity_links, platform_verified_emails IN SHARE MODE');
182
+ const runResult = await connection.query(`SELECT kind, release_sha, workos_realm_fingerprint, inventory_run_id,
183
+ inventory_checksum, lineage_checksum
184
+ FROM identity_migration_runs
185
+ WHERE id = $1 AND kind IN ('import', 'reconcile') AND state = 'running' FOR UPDATE`, [input.runId]);
186
+ const run = runResult.rows[0];
187
+ const realm = input.realm.trim();
188
+ if (run === undefined ||
189
+ run.inventory_run_id === null ||
190
+ run.inventory_checksum === null ||
191
+ run.lineage_checksum === null ||
192
+ run.workos_realm_fingerprint !== hash(realm))
193
+ throw new PlatformAuthMigrationError('reconciliation_drift');
194
+ const candidate = await loadBoundFrozenImportCandidate(connection, {
195
+ inventoryRunId: run.inventory_run_id,
196
+ inventoryChecksum: run.inventory_checksum,
197
+ releaseSha: run.release_sha,
198
+ workosRealmFingerprint: run.workos_realm_fingerprint,
199
+ lineageChecksum: run.lineage_checksum,
200
+ principalId: input.principalId,
201
+ normalizedEmail: email,
202
+ });
203
+ const principal = await connection.query(`SELECT status, billing_identity_issuer, billing_subject
204
+ FROM platform_principals WHERE principal_id = $1`, [input.principalId]);
205
+ const exactPrincipal = principal.rows[0];
206
+ if (exactPrincipal?.status !== 'active' ||
207
+ exactPrincipal.billing_identity_issuer !== 'https://accounts.google.com' ||
208
+ exactPrincipal.billing_subject !== input.principalId)
209
+ throw new PlatformAuthMigrationError('reconciliation_drift');
210
+ const links = await connection.query(`SELECT count(*) FILTER (WHERE disabled_at IS NULL)::text AS enabled,
211
+ count(*) FILTER (WHERE disabled_at IS NULL AND realm = $2
212
+ AND external_id = $1)::text AS exact
213
+ FROM platform_identity_links
214
+ WHERE provider = 'google' AND principal_id = $1`, [input.principalId, candidate.source_realm]);
215
+ if (Number(links.rows[0]?.enabled ?? 0) !== 1 || Number(links.rows[0]?.exact ?? 0) !== 1)
216
+ throw new PlatformAuthMigrationError('reconciliation_drift');
217
+ const emails = await connection.query(`SELECT
218
+ (SELECT count(*)::text FROM platform_verified_emails
219
+ WHERE principal_id = $1 AND provider = 'google' AND realm = $2
220
+ AND status = 'active') AS current_google,
221
+ (SELECT count(*)::text FROM platform_verified_emails
222
+ WHERE principal_id = $1 AND provider = 'google' AND realm = $2
223
+ AND status = 'active' AND normalized_email = $3) AS exact,
224
+ (SELECT count(DISTINCT principal_id)::text FROM platform_verified_emails
225
+ WHERE status = 'active' AND normalized_email = $3) AS global_principals`, [input.principalId, candidate.source_realm, email]);
226
+ if (Number(emails.rows[0]?.current_google ?? 0) !== 1 ||
227
+ Number(emails.rows[0]?.exact ?? 0) !== 1 ||
228
+ Number(emails.rows[0]?.global_principals ?? 0) !== 1)
229
+ throw new PlatformAuthMigrationError('reconciliation_drift');
230
+ const existing = await connection.query(`SELECT ledger.migration_run_id, ledger.realm, ledger.normalized_email,
231
+ ledger.email_fingerprint, ledger.external_id, ledger.state, ledger.lease_token,
232
+ ledger.lease_expires_at, ledger.retry_at, ledger.attempt_count,
233
+ prior.lineage_checksum
234
+ FROM workos_import_ledger ledger
235
+ LEFT JOIN identity_migration_runs prior ON prior.id = ledger.migration_run_id
236
+ WHERE ledger.principal_id = $1 FOR UPDATE OF ledger`, [input.principalId]);
237
+ const previous = existing.rows[0];
238
+ if (previous !== undefined &&
239
+ (previous.realm !== realm ||
240
+ previous.normalized_email !== email ||
241
+ previous.email_fingerprint !== hash(email) ||
242
+ previous.external_id !== input.principalId ||
243
+ (previous.migration_run_id !== input.runId &&
244
+ (run.kind !== 'reconcile' || previous.lineage_checksum !== run.lineage_checksum))))
245
+ throw new PlatformAuthMigrationError('reconciliation_drift');
246
+ if (previous !== undefined &&
247
+ (previous.state === 'linked' ||
248
+ ((previous.state === 'blocked' || previous.state === 'failed') &&
249
+ options.terminalRetry !== 'explicit_operator_reconcile')))
250
+ throw new PlatformAuthMigrationError('stale_lease');
251
+ const now = Date.now();
252
+ if (previous !== undefined &&
253
+ ((previous.lease_token !== null &&
254
+ (previous.lease_expires_at === null || previous.lease_expires_at.getTime() > now)) ||
255
+ (previous.retry_at !== null && previous.retry_at.getTime() > now)))
256
+ throw new PlatformAuthMigrationError('stale_lease');
257
+ const attempt = (previous?.attempt_count ?? 0) + 1;
258
+ if (previous === undefined) {
259
+ await connection.query(`INSERT INTO workos_import_ledger
260
+ (principal_id, migration_run_id, realm, normalized_email, email_fingerprint,
261
+ external_id, state, lease_token, lease_expires_at, attempt_count, retry_at, updated_at)
262
+ VALUES ($1, $2, $3, $4, $5, $1, 'pending', $6,
263
+ now() + interval '30 seconds', 1, NULL, now())`, [input.principalId, input.runId, realm, email, hash(email), leaseToken]);
264
+ }
265
+ else {
266
+ await connection.query(`UPDATE workos_import_ledger
267
+ SET migration_run_id = $2, lease_token = $3,
268
+ lease_expires_at = now() + interval '30 seconds',
269
+ attempt_count = $4, retry_at = NULL, updated_at = now()
270
+ WHERE principal_id = $1`, [input.principalId, input.runId, leaseToken, attempt]);
271
+ }
272
+ await connection.query('COMMIT');
273
+ return {
274
+ key: `${input.runId}\0${realm}\0${input.principalId}`,
275
+ leaseToken,
276
+ attempt,
277
+ };
278
+ }
279
+ catch (error) {
280
+ await connection.query('ROLLBACK').catch(() => undefined);
281
+ if (postgresCode(error) === '23505')
282
+ throw new PlatformAuthMigrationError('reconciliation_drift');
283
+ throw error;
284
+ }
285
+ finally {
286
+ connection.release?.();
287
+ }
288
+ }
289
+ async finishImport(lease, result) {
290
+ const { runId, realm, principalId } = parseLeaseKey(lease.key);
291
+ if (result.state === 'linked' && result.remoteUserId === undefined)
292
+ throw new PlatformAuthMigrationError('invalid_import');
293
+ if (result.retryAt !== undefined &&
294
+ (result.state !== 'reconcile_required' || !Number.isFinite(Date.parse(result.retryAt))))
295
+ throw new PlatformAuthMigrationError('invalid_import');
296
+ if (result.state === 'linked') {
297
+ const conflict = await this.#pool.query(`SELECT principal_id FROM platform_identity_links
298
+ WHERE provider = 'workos' AND realm = $1 AND external_id = $2`, [realm, result.remoteUserId]);
299
+ if (conflict.rows[0] !== undefined && conflict.rows[0].principal_id !== principalId)
300
+ throw new PlatformAuthMigrationError('reconciliation_drift');
301
+ const principalRealm = await this.#pool.query(`SELECT external_id FROM platform_identity_links
302
+ WHERE provider = 'workos' AND realm = $1 AND principal_id = $2`, [realm, principalId]);
303
+ if (principalRealm.rows[0] !== undefined &&
304
+ principalRealm.rows[0].external_id !== result.remoteUserId)
305
+ throw new PlatformAuthMigrationError('reconciliation_drift');
306
+ }
307
+ const row = await this.#pool.query(`WITH existing_link AS (
308
+ SELECT principal_id FROM platform_identity_links
309
+ WHERE provider = 'workos' AND realm = $2 AND external_id = $6 AND principal_id = $3
310
+ ), linked AS (
311
+ INSERT INTO platform_identity_links (provider, realm, external_id, principal_id)
312
+ SELECT 'workos', $2, $6, $3 WHERE $5 = 'linked' AND EXISTS (
313
+ SELECT 1 FROM workos_import_ledger
314
+ WHERE principal_id = $3 AND realm = $2 AND migration_run_id = $1
315
+ AND lease_token = $4 AND attempt_count = $7 AND lease_expires_at > now()
316
+ )
317
+ ON CONFLICT (provider, realm, external_id) DO NOTHING
318
+ RETURNING principal_id
319
+ ), link_ok AS (
320
+ SELECT principal_id FROM existing_link UNION ALL SELECT principal_id FROM linked
321
+ ), updated AS (
322
+ UPDATE workos_import_ledger
323
+ SET state = $5, remote_user_id = $6,
324
+ linked_at = CASE WHEN $5 = 'linked' THEN now() ELSE linked_at END,
325
+ outcome_code = $5,
326
+ retry_at = CASE WHEN $5 = 'reconcile_required'
327
+ THEN COALESCE($10::timestamptz, now()) ELSE NULL END,
328
+ lease_token = NULL, lease_expires_at = NULL, updated_at = now()
329
+ WHERE principal_id = $3 AND realm = $2 AND migration_run_id = $1
330
+ AND lease_token = $4 AND attempt_count = $7 AND lease_expires_at > now()
331
+ AND ($5 <> 'linked' OR EXISTS (SELECT 1 FROM link_ok WHERE principal_id = $3))
332
+ RETURNING principal_id, state, attempt_count, email_fingerprint, external_id, retry_at
333
+ ) INSERT INTO workos_import_attempt_evidence
334
+ (principal_id, principal_fingerprint, migration_run_id, attempt, outcome_code,
335
+ external_id_fingerprint, email_fingerprint, retry_at)
336
+ SELECT NULL, $9, $1, attempt_count, $5, $8, email_fingerprint, retry_at FROM updated
337
+ RETURNING outcome_code AS state`, [
338
+ runId,
339
+ realm,
340
+ principalId,
341
+ lease.leaseToken,
342
+ result.state,
343
+ result.remoteUserId ?? null,
344
+ lease.attempt,
345
+ hash(principalId),
346
+ hash(principalId),
347
+ result.retryAt ?? null,
348
+ ]);
349
+ if (row.rows[0] === undefined)
350
+ throw new PlatformAuthMigrationError('stale_lease');
351
+ return { state: row.rows[0].state };
352
+ }
353
+ }
354
+ function postgresCode(error) {
355
+ return typeof error === 'object' && error !== null && 'code' in error
356
+ ? String(error.code)
357
+ : undefined;
358
+ }
359
+ function parseLeaseKey(key) {
360
+ const [runId, realm, principalId, extra] = key.split('\0');
361
+ if (runId === undefined ||
362
+ realm === undefined ||
363
+ principalId === undefined ||
364
+ extra !== undefined)
365
+ throw new PlatformAuthMigrationError('invalid_import');
366
+ return { runId, realm, principalId };
367
+ }
368
+ //# sourceMappingURL=platform-auth-migration-postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-auth-migration-postgres.js","sourceRoot":"","sources":["../src/platform-auth-migration-postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAC9F,OAAO,EAGL,0BAA0B,GAE3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,eAAe,EACf,aAAa,IAAI,IAAI,EAKrB,qCAAqC,GACtC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAWxE,6GAA6G;AAC7G,MAAM,OAAO,kCAAkC;IACpC,KAAK,CAEZ;IACO,KAAK,CAAwC;IAEtD,YACE,IAEC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,qCAAqC,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,SAAS,CAAC,KAAoC;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,oBAAoB,CAAC,KAAa;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,wBAAwB,CACtB,KAAa,EACb,OAIC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KASpB;QACC,IACE,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;YAClC,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,WAAW;YAC1C,KAAK,CAAC,KAAK,KAAK,SAAS;YACzB,KAAK,CAAC,aAAa,KAAK,SAAS;YAEjC,MAAM,IAAI,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QACzD,MAAM,UAAU,GACd,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7E,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChC,MAAM,UAAU,CAAC,KAAK,CAAC,uDAAuD,EAAE;gBAC9E,4BAA4B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;aACjD,CAAC,CAAC;YACH,MAAM,UAAU,CAAC,KAAK,CAAC,uDAAuD,EAAE;gBAC9E,+BAA+B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;aACzD,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,8BAA8B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAClE,MAAM,UAAU,CAAC,KAAK,CAAC,uDAAuD,EAAE;gBAC9E,2BAA2B,IAAI,CAAC,KAAK,CAAC,EAAE;aACzC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,KAAK,CAOpC;;;+EAGuE,EACvE,CAAC,KAAK,CAAC,KAAK,CAAC,CACd,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,IACE,GAAG,KAAK,SAAS;gBACjB,GAAG,CAAC,gBAAgB,KAAK,IAAI;gBAC7B,GAAG,CAAC,kBAAkB,KAAK,IAAI;gBAC/B,GAAG,CAAC,wBAAwB,KAAK,IAAI;gBACrC,GAAG,CAAC,gBAAgB,KAAK,IAAI;gBAE7B,MAAM,IAAI,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAcnC;;;;;;;;;;qBAUa,EACb,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAC7C,CAAC;YACF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,IACE,SAAS,KAAK,SAAS;gBACvB,SAAS,CAAC,eAAe,KAAK,GAAG,CAAC,kBAAkB;gBACpD,SAAS,CAAC,WAAW,KAAK,GAAG,CAAC,WAAW;gBACzC,SAAS,CAAC,YAAY,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK;gBAC7C,SAAS,CAAC,wBAAwB,KAAK,GAAG,CAAC,wBAAwB;gBACnE,SAAS,CAAC,sBAAsB,KAAK,IAAI;gBACzC,GAAG,CAAC,gBAAgB;oBAClB,IAAI,CAAC;wBACH,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;wBAC5C,iBAAiB,EAAE,GAAG,CAAC,kBAAkB;wBACzC,oBAAoB,EAAE,SAAS,CAAC,sBAAsB;wBACtD,sBAAsB,EAAE,GAAG,CAAC,wBAAwB;wBACpD,UAAU,EAAE,GAAG,CAAC,WAAW;qBAC5B,CAAC;gBACJ,SAAS,CAAC,gBAAgB,KAAK,KAAK;gBACpC,SAAS,CAAC,iBAAiB,KAAK,IAAI,CAAC,KAAK,CAAC;gBAC3C,SAAS,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;gBACpC,SAAS,CAAC,qBAAqB,KAAK,eAAe,CAAC,SAAS,CAAC;gBAE9D,MAAM,IAAI,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CAKrC;gFACwE,EACxE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAClE,CAAC;YACF,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,KAAK,CAAC,WAAW;gBACvF,MAAM,IAAI,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;YACjE,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACnC,wFAAwF;gBACxF,yFAAyF;gBACzF,IACE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC1D,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,0BAA0B;wBACzC,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;oBAE3D,MAAM,IAAI,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,UAAU,CAAC,KAAK,CACpB;;;+CAGuC,EACvC,CAAC,KAAK,CAAC,WAAW,CAAC,CACpB,CAAC;YACF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,KAAK,CAKtC,qHAAqH,EACrH,CAAC,KAAK,CAAC,WAAW,CAAC,CACpB,CAAC;YACF,IACE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;gBAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,uBAAuB,KAAK,6BAA6B;gBAC3E,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,KAAK,KAAK,CAAC,MAAM,CAAC,OAAO;gBAE1D,MAAM,IAAI,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;YACjE,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ;gBACvC,MAAM,IAAI,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;YACzD,MAAM,UAAU,CAAC,KAAK,CACpB;;+DAEuD,EACvD,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAC9D,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAIjC;mFAC2E,EAC3E,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAC3C,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,KAAK,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI;gBACvF,MAAM,IAAI,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;YACjE,MAAM,UAAU,CAAC,KAAK,CACpB;;;kFAG0E,EAC1E,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CACpE,CAAC;YACF,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,KAAK,CAK1C;;;;;;;;qFAQ6E,EAC7E,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAC/C,CAAC;YACF,IACE,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,IAAI,CAAC,CAAC,KAAK,CAAC;gBACxD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;gBAC/C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,IAAI,CAAC,CAAC,KAAK,CAAC;gBAE3D,MAAM,IAAI,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;YACjE,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACjC,OAAO,oBAAoB,CAAC;YAC9B,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CACrC;;;qGAG6F,EAC7F;gBACE,KAAK,CAAC,MAAM,CAAC,QAAQ;gBACrB,KAAK,CAAC,MAAM,CAAC,KAAK;gBAClB,KAAK,CAAC,MAAM,CAAC,OAAO;gBACpB,KAAK,CAAC,WAAW;gBACjB,KAAK,CAAC,KAAK,IAAI,IAAI;gBACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAClB,IAAI,CACF,KAAK,CAAC,aAAa,KAAK,SAAS;oBAC/B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,8BAA8B,CAAC,KAAK,CAAC,aAAa,CAAC,CACxD;aACF,CACF,CAAC;YACF,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACjC,OAAO,YAAY,CAAC;YACtB,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,KAAK,CAClC;gFACwE,EACxE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAClE,CAAC;YACF,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,KAAK,KAAK,CAAC,WAAW;gBACnD,MAAM,IAAI,0BAA0B,CAAC,wBAAwB,CAAC,CAAC;YACjE,MAAM,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACjC,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC1D,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CACf,KAA8B,EAC9B,UAAsE,EAAE;QAExE,MAAM,KAAK,GAAG,8BAA8B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClE,IACE,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAC9B,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE;YAC7B,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAE/B,MAAM,IAAI,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC;QAChC,MAAM,UAAU,GACd,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7E,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAChE,MAAM,UAAU,CAAC,KAAK,CACpB,iGAAiG,CAClG,CAAC;YACF,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,KAAK,CAQtC;;;6FAGqF,EACrF,CAAC,KAAK,CAAC,KAAK,CAAC,CACd,CAAC;YACF,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACjC,IACE,GAAG,KAAK,SAAS;gBACjB,GAAG,CAAC,gBAAgB,KAAK,IAAI;gBAC7B,GAAG,CAAC,kBAAkB,KAAK,IAAI;gBAC/B,GAAG,CAAC,gBAAgB,KAAK,IAAI;gBAC7B,GAAG,CAAC,wBAAwB,KAAK,IAAI,CAAC,KAAK,CAAC;gBAE5C,MAAM,IAAI,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;YAC/D,MAAM,SAAS,GAAG,MAAM,8BAA8B,CAAC,UAAU,EAAE;gBACjE,cAAc,EAAE,GAAG,CAAC,gBAAgB;gBACpC,iBAAiB,EAAE,GAAG,CAAC,kBAAkB;gBACzC,UAAU,EAAE,GAAG,CAAC,WAAW;gBAC3B,sBAAsB,EAAE,GAAG,CAAC,wBAAwB;gBACpD,eAAe,EAAE,GAAG,CAAC,gBAAgB;gBACrC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,eAAe,EAAE,KAAK;aACvB,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,KAAK,CAKtC;4DACoD,EACpD,CAAC,KAAK,CAAC,WAAW,CAAC,CACpB,CAAC;YACF,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzC,IACE,cAAc,EAAE,MAAM,KAAK,QAAQ;gBACnC,cAAc,CAAC,uBAAuB,KAAK,6BAA6B;gBACxE,cAAc,CAAC,eAAe,KAAK,KAAK,CAAC,WAAW;gBAEpD,MAAM,IAAI,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,KAAK,CAIlC;;;;0DAIkD,EAClD,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,YAAY,CAAC,CAC5C,CAAC;YACF,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;gBACtF,MAAM,IAAI,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAKnC;;;;;;;;qFAQ6E,EAC7E,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CACnD,CAAC;YACF,IACE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,IAAI,CAAC,CAAC,KAAK,CAAC;gBACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;gBACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,IAAI,CAAC,CAAC,KAAK,CAAC;gBAEpD,MAAM,IAAI,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CAarC;;;;;;8DAMsD,EACtD,CAAC,KAAK,CAAC,WAAW,CAAC,CACpB,CAAC;YACF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClC,IACE,QAAQ,KAAK,SAAS;gBACtB,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK;oBACvB,QAAQ,CAAC,gBAAgB,KAAK,KAAK;oBACnC,QAAQ,CAAC,iBAAiB,KAAK,IAAI,CAAC,KAAK,CAAC;oBAC1C,QAAQ,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;oBAC1C,CAAC,QAAQ,CAAC,gBAAgB,KAAK,KAAK,CAAC,KAAK;wBACxC,CAAC,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,QAAQ,CAAC,gBAAgB,KAAK,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAEtF,MAAM,IAAI,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;YAC/D,IACE,QAAQ,KAAK,SAAS;gBACtB,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ;oBAC1B,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC;wBAC5D,OAAO,CAAC,aAAa,KAAK,6BAA6B,CAAC,CAAC;gBAE7D,MAAM,IAAI,0BAA0B,CAAC,aAAa,CAAC,CAAC;YACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IACE,QAAQ,KAAK,SAAS;gBACtB,CAAC,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI;oBAC7B,CAAC,QAAQ,CAAC,gBAAgB,KAAK,IAAI,IAAI,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC;oBAClF,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC;gBAEpE,MAAM,IAAI,0BAA0B,CAAC,aAAa,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACnD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,UAAU,CAAC,KAAK,CACpB;;;;kEAIwD,EACxD,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CACxE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,CAAC,KAAK,CACpB;;;;oCAI0B,EAC1B,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CACtD,CAAC;YACJ,CAAC;YACD,MAAM,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACjC,OAAO;gBACL,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,CAAC,WAAW,EAAE;gBACrD,UAAU;gBACV,OAAO;aACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC1D,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,OAAO;gBACjC,MAAM,IAAI,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;YAC/D,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,KAA8B,EAC9B,MAIC;QAID,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;YAChE,MAAM,IAAI,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QACzD,IACE,MAAM,CAAC,OAAO,KAAK,SAAS;YAC5B,CAAC,MAAM,CAAC,KAAK,KAAK,oBAAoB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAEvF,MAAM,IAAI,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CACrC;uEAC+D,EAC/D,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,CAC7B,CAAC;YACF,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,WAAW;gBACjF,MAAM,IAAI,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAC3C;wEACgE,EAChE,CAAC,KAAK,EAAE,WAAW,CAAC,CACrB,CAAC;YACF,IACE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;gBACpC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,YAAY;gBAE1D,MAAM,IAAI,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCA8BiC,EACjC;YACE,KAAK;YACL,KAAK;YACL,WAAW;YACX,KAAK,CAAC,UAAU;YAChB,MAAM,CAAC,KAAK;YACZ,MAAM,CAAC,YAAY,IAAI,IAAI;YAC3B,KAAK,CAAC,OAAO;YACb,IAAI,CAAC,WAAW,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC;YACjB,MAAM,CAAC,OAAO,IAAI,IAAI;SACvB,CACF,CAAC;QACF,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,MAAM,IAAI,0BAA0B,CAAC,aAAa,CAAC,CAAC;QACnF,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;CACF;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK;QACnE,CAAC,CAAC,MAAM,CAAE,KAAqC,CAAC,IAAI,CAAC;QACrD,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAKhC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3D,IACE,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,SAAS;QACnB,WAAW,KAAK,SAAS;QACzB,KAAK,KAAK,SAAS;QAEnB,MAAM,IAAI,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;IACzD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACvC,CAAC"}
@@ -0,0 +1,86 @@
1
+ import type { PlatformIdentityQueryable } from './platform-identity-postgres.js';
2
+ export type PlatformAuthMigrationRunKind = 'inventory' | 'backfill' | 'import' | 'reconcile';
3
+ export type PlatformAuthMigrationRunInput = {
4
+ readonly runId: string;
5
+ readonly releaseSha: string;
6
+ readonly workosRealm: string;
7
+ readonly actorFingerprint: string;
8
+ } & ({
9
+ readonly kind: 'inventory';
10
+ } | {
11
+ readonly kind: 'backfill' | 'import' | 'reconcile';
12
+ readonly inventoryRunId: string;
13
+ readonly inventoryChecksum: string;
14
+ });
15
+ export interface PlatformAuthMigrationRun {
16
+ readonly runId: string;
17
+ readonly kind: PlatformAuthMigrationRunKind;
18
+ readonly state: 'running' | 'completed';
19
+ readonly lineageChecksum: string;
20
+ readonly inventoryRunId?: string;
21
+ readonly inventoryChecksum?: string;
22
+ }
23
+ export interface PlatformAuthFrozenCandidate {
24
+ readonly source: {
25
+ readonly provider: 'google';
26
+ readonly realm: string;
27
+ readonly subject: string;
28
+ };
29
+ readonly principalId: string;
30
+ readonly verifiedEmail: string;
31
+ readonly candidateFingerprint: string;
32
+ }
33
+ export interface PlatformAuthFrozenCandidatePage {
34
+ readonly candidates: readonly PlatformAuthFrozenCandidate[];
35
+ readonly nextAfterFingerprint?: string;
36
+ }
37
+ export interface FrozenCandidateRow {
38
+ readonly source_subject: string;
39
+ readonly source_realm: string | null;
40
+ readonly principal_id: string | null;
41
+ readonly normalized_email: string | null;
42
+ readonly email_fingerprint: string | null;
43
+ readonly provenance: readonly string[];
44
+ readonly blocker_codes: readonly string[];
45
+ readonly source_fingerprint: string;
46
+ readonly candidate_fingerprint: string | null;
47
+ }
48
+ type Connection = PlatformIdentityQueryable & {
49
+ release?: () => void;
50
+ };
51
+ type Pool = PlatformIdentityQueryable & {
52
+ connect?: () => Promise<Connection>;
53
+ };
54
+ export declare class PostgresPlatformAuthMigrationRunStore {
55
+ #private;
56
+ constructor(pool: Pool);
57
+ createRun(input: PlatformAuthMigrationRunInput): Promise<PlatformAuthMigrationRun>;
58
+ listFrozenCandidates(runId: string): Promise<readonly PlatformAuthFrozenCandidate[]>;
59
+ listFrozenCandidateBatch(runId: string, options: {
60
+ readonly limit: number;
61
+ readonly afterFingerprint?: string;
62
+ readonly eligibility?: 'all' | 'actionable' | 'operator_reconcile';
63
+ }): Promise<PlatformAuthFrozenCandidatePage>;
64
+ completeRun(runId: string): Promise<PlatformAuthMigrationRun>;
65
+ }
66
+ export declare function loadFrozenInventory(pool: PlatformIdentityQueryable, expected: {
67
+ readonly inventoryRunId: string;
68
+ readonly inventoryChecksum: string;
69
+ readonly releaseSha: string;
70
+ readonly workosRealmFingerprint: string;
71
+ readonly requireBlockerFree: boolean;
72
+ }): Promise<{
73
+ readonly googleRealm: string;
74
+ readonly lineageChecksum: string;
75
+ readonly candidates: readonly FrozenCandidateRow[];
76
+ }>;
77
+ export declare function candidateDigest(candidate: {
78
+ readonly principal_id: string | null;
79
+ readonly email_fingerprint: string | null;
80
+ readonly provenance: readonly string[];
81
+ readonly blocker_codes: readonly string[];
82
+ readonly source_fingerprint: string;
83
+ }): string;
84
+ export declare function migrationHash(value: unknown): string;
85
+ export {};
86
+ //# sourceMappingURL=platform-auth-migration-runs-postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-auth-migration-runs-postgres.d.ts","sourceRoot":"","sources":["../src/platform-auth-migration-runs-postgres.ts"],"names":[],"mappings":"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"}