@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,119 @@
1
+ import { type PlatformAuthRolloutState } from './platform-auth-migration.js';
2
+ export type Operation = 'activate' | 'rollback' | 'finalize';
3
+ export interface Aggregate {
4
+ readonly unresolvedImports: number;
5
+ readonly pendingOutbox: number;
6
+ readonly candidates: number;
7
+ readonly inventoryBlockers: number;
8
+ }
9
+ export interface Lineage {
10
+ readonly inventoryRunId: string;
11
+ readonly inventoryRunHash: string;
12
+ readonly inventoryChecksum: string;
13
+ readonly importRunId: string;
14
+ readonly importRunHash: string;
15
+ readonly importLineageChecksum: string;
16
+ readonly workosRealm: string;
17
+ readonly workosRealmFingerprint: string;
18
+ }
19
+ export interface DurableState extends PlatformAuthRolloutState {
20
+ readonly recoveryClientIds: readonly string[];
21
+ readonly workosRecoveryEnabled: boolean;
22
+ readonly workosDefaultSince: string | null;
23
+ readonly workosStageSince: string | null;
24
+ }
25
+ export interface PlatformAuthRolloutSafeResult {
26
+ readonly generation: number;
27
+ readonly workosPercentage: number;
28
+ readonly lifecycle: 'google' | 'workos' | 'finalized';
29
+ readonly canaryClientSetHash: string;
30
+ readonly canaryClientCount: number;
31
+ readonly recoveryClientSetHash: string;
32
+ readonly recoveryClientCount: number;
33
+ readonly workosDefaultSince: string | null;
34
+ }
35
+ export type PlatformAuthRolloutOperationInput = {
36
+ readonly operation: 'finalize';
37
+ readonly rollbackRehearsalChecksum: string;
38
+ readonly stagingWorkosOnlySmokeChecksum: string;
39
+ } | {
40
+ readonly operation: 'activate' | 'rollback';
41
+ readonly rollbackRehearsalChecksum?: never;
42
+ readonly stagingWorkosOnlySmokeChecksum?: never;
43
+ };
44
+ type RolloutTarget = {
45
+ readonly percentage: number;
46
+ readonly releaseSha: string;
47
+ } & ({
48
+ readonly cohortMode: 'preserve';
49
+ readonly canaryClientIds?: never;
50
+ readonly recoveryClientIds?: never;
51
+ } | {
52
+ readonly cohortMode: 'replace';
53
+ readonly canaryClientIds: readonly string[];
54
+ readonly recoveryClientIds: readonly string[];
55
+ });
56
+ export type CohortInput = PlatformAuthRolloutOperationInput & RolloutTarget;
57
+ export type EffectiveCohortInput = PlatformAuthRolloutOperationInput & {
58
+ readonly percentage: number;
59
+ readonly releaseSha: string;
60
+ readonly cohortMode: 'preserve' | 'replace';
61
+ readonly canaryClientIds: readonly string[];
62
+ readonly recoveryClientIds: readonly string[];
63
+ };
64
+ export declare function effectiveCohorts(state: DurableState, input: CohortInput): EffectiveCohortInput;
65
+ /** Any newly selected route that can reach WorkOS needs a reconciled remote identity set. */
66
+ export declare function platformAuthRolloutRequiresReadiness(state: DurableState, input: EffectiveCohortInput): boolean;
67
+ export declare function previewRequest(state: DurableState, aggregate: Aggregate, lineage: Lineage, input: EffectiveCohortInput): {
68
+ rollbackRehearsalChecksum: string | null;
69
+ stagingWorkosOnlySmokeChecksum: string | null;
70
+ state: DurableState;
71
+ aggregate: Aggregate;
72
+ lineage: {
73
+ inventoryRunHash: string;
74
+ inventoryChecksum: string;
75
+ importRunHash: string;
76
+ importLineageChecksum: string;
77
+ workosRealmFingerprint: string;
78
+ };
79
+ operation: "activate" | "rollback" | "finalize";
80
+ percentage: number;
81
+ cohortMode: "replace" | "preserve";
82
+ canaryClientIds: readonly string[];
83
+ recoveryClientIds: readonly string[];
84
+ releaseSha: string;
85
+ };
86
+ export declare function previewMatches(preview: {
87
+ readonly expected_generation: string;
88
+ readonly operation: Operation;
89
+ readonly percentage: number;
90
+ readonly canary_client_set_hash: string;
91
+ readonly canary_client_count: number;
92
+ readonly recovery_client_set_hash: string;
93
+ readonly recovery_client_count: number;
94
+ readonly rollback_rehearsal_checksum: string | null;
95
+ readonly staging_workos_only_smoke_checksum: string | null;
96
+ readonly release_sha: string;
97
+ }, input: EffectiveCohortInput & {
98
+ readonly expectedGeneration: number;
99
+ }): boolean;
100
+ export declare function lineageMatches(preview: {
101
+ readonly inventory_run_hash: string | null;
102
+ readonly import_run_hash: string | null;
103
+ readonly inventory_checksum?: string | null;
104
+ readonly import_lineage_checksum?: string | null;
105
+ readonly workos_realm_fingerprint: string | null;
106
+ }, lineage: Lineage): boolean;
107
+ export declare function validateTransition(state: DurableState, input: EffectiveCohortInput, now: Date): void;
108
+ export declare function validateFinalize(state: DurableState, input: EffectiveCohortInput, aggregate: Aggregate, candidatesReady: boolean, now: Date): void;
109
+ export declare function nextState(state: DurableState, input: EffectiveCohortInput, now: Date): DurableState;
110
+ export declare function safeState(state: DurableState): PlatformAuthRolloutSafeResult;
111
+ export declare function decodeSafeState(value: unknown): PlatformAuthRolloutSafeResult;
112
+ export declare function assertSha(releaseSha: string): void;
113
+ export declare function hash(value: unknown): string;
114
+ export declare function sorted(values: readonly string[] | undefined): readonly string[];
115
+ export declare function validLineageId(value: string): boolean;
116
+ export declare function validRealm(value: string): boolean;
117
+ export declare function validOperatorFingerprint(value: string): boolean;
118
+ export {};
119
+ //# sourceMappingURL=platform-auth-rollout-support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-auth-rollout-support.d.ts","sourceRoot":"","sources":["../src/platform-auth-rollout-support.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,194 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { PlatformAuthMigrationError, } from './platform-auth-migration.js';
3
+ export function effectiveCohorts(state, input) {
4
+ return {
5
+ ...input,
6
+ canaryClientIds: input.cohortMode === 'preserve' ? state.canaryClientIds : sorted(input.canaryClientIds),
7
+ recoveryClientIds: input.cohortMode === 'preserve' ? state.recoveryClientIds : sorted(input.recoveryClientIds),
8
+ };
9
+ }
10
+ /** Any newly selected route that can reach WorkOS needs a reconciled remote identity set. */
11
+ export function platformAuthRolloutRequiresReadiness(state, input) {
12
+ if (input.percentage > 0)
13
+ return true;
14
+ if (input.recoveryClientIds.length === 0)
15
+ return false;
16
+ return input.operation !== 'rollback' || state.workosPercentage === 0;
17
+ }
18
+ export function previewRequest(state, aggregate, lineage, input) {
19
+ return {
20
+ state,
21
+ aggregate,
22
+ lineage: {
23
+ inventoryRunHash: lineage.inventoryRunHash,
24
+ inventoryChecksum: lineage.inventoryChecksum,
25
+ importRunHash: lineage.importRunHash,
26
+ importLineageChecksum: lineage.importLineageChecksum,
27
+ workosRealmFingerprint: lineage.workosRealmFingerprint,
28
+ },
29
+ operation: input.operation,
30
+ percentage: input.percentage,
31
+ cohortMode: input.cohortMode,
32
+ canaryClientIds: input.canaryClientIds,
33
+ recoveryClientIds: input.recoveryClientIds,
34
+ releaseSha: input.releaseSha,
35
+ ...rolloutFinalizationEvidence(input),
36
+ };
37
+ }
38
+ export function previewMatches(preview, input) {
39
+ const evidence = rolloutFinalizationEvidence(input);
40
+ return (Number(preview.expected_generation) === input.expectedGeneration &&
41
+ preview.operation === input.operation &&
42
+ preview.percentage === input.percentage &&
43
+ preview.canary_client_set_hash === hash(input.canaryClientIds) &&
44
+ preview.canary_client_count === input.canaryClientIds.length &&
45
+ preview.recovery_client_set_hash === hash(input.recoveryClientIds) &&
46
+ preview.recovery_client_count === input.recoveryClientIds.length &&
47
+ preview.rollback_rehearsal_checksum === evidence.rollbackRehearsalChecksum &&
48
+ preview.staging_workos_only_smoke_checksum === evidence.stagingWorkosOnlySmokeChecksum &&
49
+ preview.release_sha === input.releaseSha);
50
+ }
51
+ export function lineageMatches(preview, lineage) {
52
+ return (preview.inventory_run_hash === lineage.inventoryRunHash &&
53
+ preview.import_run_hash === lineage.importRunHash &&
54
+ preview.inventory_checksum === lineage.inventoryChecksum &&
55
+ preview.import_lineage_checksum === lineage.importLineageChecksum &&
56
+ preview.workos_realm_fingerprint === lineage.workosRealmFingerprint);
57
+ }
58
+ export function validateTransition(state, input, now) {
59
+ const raw = input;
60
+ if ((input.operation === 'finalize' &&
61
+ (!validChecksum(input.rollbackRehearsalChecksum) ||
62
+ !validChecksum(input.stagingWorkosOnlySmokeChecksum))) ||
63
+ (input.operation !== 'finalize' &&
64
+ (raw.rollbackRehearsalChecksum !== undefined ||
65
+ raw.stagingWorkosOnlySmokeChecksum !== undefined)))
66
+ throw new PlatformAuthMigrationError('rollout_transition_invalid');
67
+ const canaries = input.canaryClientIds;
68
+ const recovery = input.recoveryClientIds;
69
+ if (state.lifecycle === 'finalized' ||
70
+ canaries.some((id) => !validClientId(id)) ||
71
+ recovery.some((id) => !validClientId(id)))
72
+ throw new PlatformAuthMigrationError('rollout_transition_invalid');
73
+ if (!Number.isInteger(input.percentage) ||
74
+ input.percentage < 0 ||
75
+ input.percentage > 100 ||
76
+ (input.operation === 'activate' && input.percentage < state.workosPercentage) ||
77
+ (input.operation === 'rollback' && input.percentage !== 0))
78
+ throw new PlatformAuthMigrationError('rollout_transition_invalid');
79
+ if (input.operation !== 'activate' || input.percentage === state.workosPercentage)
80
+ return;
81
+ const nextPercentage = new Map([
82
+ [0, 1],
83
+ [1, 10],
84
+ [10, 50],
85
+ [50, 100],
86
+ ]).get(state.workosPercentage);
87
+ const stageSince = state.workosStageSince === null ? Number.NaN : Date.parse(state.workosStageSince);
88
+ if (input.percentage !== nextPercentage ||
89
+ (state.workosPercentage > 0 &&
90
+ (!Number.isFinite(stageSince) || stageSince > now.getTime() - 24 * 60 * 60 * 1_000)))
91
+ throw new PlatformAuthMigrationError('rollout_transition_invalid');
92
+ }
93
+ export function validateFinalize(state, input, aggregate, candidatesReady, now) {
94
+ if (state.workosPercentage !== 100 ||
95
+ input.percentage !== 100 ||
96
+ aggregate.unresolvedImports !== 0 ||
97
+ aggregate.pendingOutbox !== 0 ||
98
+ aggregate.candidates === 0 ||
99
+ aggregate.inventoryBlockers !== 0 ||
100
+ state.workosDefaultSince === null ||
101
+ Date.parse(state.workosDefaultSince) > now.getTime() - 14 * 24 * 60 * 60 * 1_000 ||
102
+ !candidatesReady)
103
+ throw new PlatformAuthMigrationError('finalize_precondition_failed');
104
+ }
105
+ export function nextState(state, input, now) {
106
+ const canaryClientIds = input.operation === 'rollback' ? state.canaryClientIds : input.canaryClientIds;
107
+ const recoveryClientIds = input.operation === 'rollback' ? state.recoveryClientIds : input.recoveryClientIds;
108
+ return {
109
+ generation: state.generation + 1,
110
+ workosPercentage: input.percentage,
111
+ canaryClientIds,
112
+ recoveryClientIds,
113
+ workosStageSince: input.operation === 'rollback'
114
+ ? null
115
+ : input.operation === 'activate' && input.percentage > state.workosPercentage
116
+ ? now.toISOString()
117
+ : state.workosStageSince,
118
+ workosDefaultSince: input.operation === 'rollback' || input.percentage < 100
119
+ ? null
120
+ : (state.workosDefaultSince ?? now.toISOString()),
121
+ workosRecoveryEnabled: input.operation === 'finalize' || input.percentage === 100
122
+ ? false
123
+ : input.operation === 'rollback' && state.workosPercentage > 0
124
+ ? true
125
+ : state.workosRecoveryEnabled,
126
+ lifecycle: input.operation === 'finalize' ? 'finalized' : input.percentage === 0 ? 'google' : 'workos',
127
+ };
128
+ }
129
+ export function safeState(state) {
130
+ return {
131
+ generation: state.generation,
132
+ workosPercentage: state.workosPercentage,
133
+ lifecycle: state.lifecycle,
134
+ canaryClientSetHash: hash(state.canaryClientIds),
135
+ canaryClientCount: state.canaryClientIds.length,
136
+ recoveryClientSetHash: hash(state.recoveryClientIds),
137
+ recoveryClientCount: state.recoveryClientIds.length,
138
+ workosDefaultSince: state.workosDefaultSince,
139
+ };
140
+ }
141
+ export function decodeSafeState(value) {
142
+ if (typeof value !== 'object' || value === null)
143
+ throw new PlatformAuthMigrationError('idempotency_conflict');
144
+ const result = value;
145
+ if (typeof result.generation !== 'number' ||
146
+ typeof result.workosPercentage !== 'number' ||
147
+ (result.lifecycle !== 'google' &&
148
+ result.lifecycle !== 'workos' &&
149
+ result.lifecycle !== 'finalized') ||
150
+ typeof result.canaryClientSetHash !== 'string' ||
151
+ typeof result.canaryClientCount !== 'number' ||
152
+ typeof result.recoveryClientSetHash !== 'string' ||
153
+ typeof result.recoveryClientCount !== 'number' ||
154
+ (result.workosDefaultSince !== null && typeof result.workosDefaultSince !== 'string'))
155
+ throw new PlatformAuthMigrationError('idempotency_conflict');
156
+ return result;
157
+ }
158
+ export function assertSha(releaseSha) {
159
+ if (!/^[0-9a-f]{40}$/.test(releaseSha))
160
+ throw new PlatformAuthMigrationError('release_sha_mismatch');
161
+ }
162
+ export function hash(value) {
163
+ return createHash('sha256').update(JSON.stringify(value)).digest('hex');
164
+ }
165
+ function rolloutFinalizationEvidence(input) {
166
+ return input.operation === 'finalize'
167
+ ? {
168
+ rollbackRehearsalChecksum: input.rollbackRehearsalChecksum,
169
+ stagingWorkosOnlySmokeChecksum: input.stagingWorkosOnlySmokeChecksum,
170
+ }
171
+ : {
172
+ rollbackRehearsalChecksum: null,
173
+ stagingWorkosOnlySmokeChecksum: null,
174
+ };
175
+ }
176
+ function validChecksum(value) {
177
+ return /^[0-9a-f]{64}$/.test(value);
178
+ }
179
+ export function sorted(values) {
180
+ return [...new Set(values ?? [])].sort();
181
+ }
182
+ export function validLineageId(value) {
183
+ return value.trim() === value && value.length > 0 && value.length <= 256;
184
+ }
185
+ export function validRealm(value) {
186
+ return value.trim() === value && value.length > 0 && value.length <= 256;
187
+ }
188
+ export function validOperatorFingerprint(value) {
189
+ return value.length > 0 && value.length <= 256 && value.trim() === value;
190
+ }
191
+ function validClientId(value) {
192
+ return value.length > 0 && value.length <= 256 && value.trim() === value;
193
+ }
194
+ //# sourceMappingURL=platform-auth-rollout-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-auth-rollout-support.js","sourceRoot":"","sources":["../src/platform-auth-rollout-support.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { Pool } from 'pg';
2
+ import { WorkOSEventProcessor, type WorkOSEventsClient } from './oauth/workos-events.js';
3
+ import { type PlatformAuthDirectory } from './platform-auth-migration.js';
4
+ import { PostgresPlatformAuthOperator } from './platform-auth-operator-postgres.js';
5
+ import { type PlatformIdentitySyncDirectory, PlatformIdentitySyncProcessor } from './platform-identity-sync.js';
6
+ export interface PostgresPlatformAuthRuntime {
7
+ readonly operator: PostgresPlatformAuthOperator;
8
+ readonly outboxProcessor: PlatformIdentitySyncProcessor;
9
+ readonly eventsProcessor: WorkOSEventProcessor;
10
+ }
11
+ /** Leave the migration runtime dormant until the complete WorkOS configuration is present. */
12
+ export declare function createConfiguredPostgresPlatformAuthRuntime(input: {
13
+ readonly pool: Pool;
14
+ readonly releaseSha: string;
15
+ readonly workos: {
16
+ readonly apiKey?: string;
17
+ readonly clientId?: string;
18
+ readonly realm?: string;
19
+ } | undefined;
20
+ readonly workloadSubjects: readonly string[] | undefined;
21
+ }): Promise<PostgresPlatformAuthRuntime | undefined>;
22
+ /** Builds the durable migration/control runtime once the ordinary Postgres schemas already exist. */
23
+ export declare function createPostgresPlatformAuthRuntime(input: {
24
+ readonly pool: Pool;
25
+ readonly releaseSha: string;
26
+ readonly workos: {
27
+ readonly apiKey: string;
28
+ readonly clientId: string;
29
+ readonly realm: string;
30
+ };
31
+ readonly workloadSubjects?: readonly string[];
32
+ readonly syntheticSubjects?: readonly string[];
33
+ readonly directory?: PlatformAuthDirectory & PlatformIdentitySyncDirectory;
34
+ readonly eventsClient?: WorkOSEventsClient;
35
+ }): Promise<PostgresPlatformAuthRuntime>;
36
+ //# sourceMappingURL=platform-auth-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-auth-runtime.d.ts","sourceRoot":"","sources":["../src/platform-auth-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAEL,oBAAoB,EACpB,KAAK,kBAAkB,EAExB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAKpF,OAAO,EACL,KAAK,6BAA6B,EAClC,6BAA6B,EAC9B,MAAM,6BAA6B,CAAC;AAKrC,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,4BAA4B,CAAC;IAChD,QAAQ,CAAC,eAAe,EAAE,6BAA6B,CAAC;IACxD,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC;CAChD;AAED,8FAA8F;AAC9F,wBAAgB,2CAA2C,CAAC,KAAK,EAAE;IACjE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EACX;QACE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACzB,GACD,SAAS,CAAC;IACd,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CAC1D,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAWnD;AAED,qGAAqG;AACrG,wBAAsB,iCAAiC,CAAC,KAAK,EAAE;IAC7D,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,GAAG,6BAA6B,CAAC;IAC3E,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;CAC5C,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAiEvC"}
@@ -0,0 +1,93 @@
1
+ import { PostgresWorkOSIdentityEventStore, WorkOSEventProcessor, WorkOSEventsSdkClient, } from './oauth/workos-events.js';
2
+ import { PLATFORM_AUTH_INVENTORY_SOURCES, PostgresPlatformAuthInventoryStore, } from './platform-auth-inventory-postgres.js';
3
+ import { PlatformAuthImportService, } from './platform-auth-migration.js';
4
+ import { PostgresPlatformAuthMigrationStore } from './platform-auth-migration-postgres.js';
5
+ import { PostgresPlatformAuthOperator } from './platform-auth-operator-postgres.js';
6
+ import { ensurePlatformAuthOperatorSchema } from './platform-auth-operator-schema.js';
7
+ import { WorkOSLinkedCandidateVerificationWorker } from './platform-auth-remote-verification.js';
8
+ import { PostgresPlatformAuthRemoteVerificationStore } from './platform-auth-remote-verification-postgres.js';
9
+ import { PostgresPlatformAuthRolloutStore } from './platform-auth-rollout-postgres.js';
10
+ import { PlatformIdentitySyncProcessor, } from './platform-identity-sync.js';
11
+ import { PostgresPlatformIdentitySyncStore } from './platform-identity-sync-postgres.js';
12
+ import { PostgresPlatformIdentitySyncRecoveryStore } from './platform-identity-sync-recovery-postgres.js';
13
+ import { WorkOSDirectoryAdapter } from './workos-directory.js';
14
+ /** Leave the migration runtime dormant until the complete WorkOS configuration is present. */
15
+ export function createConfiguredPostgresPlatformAuthRuntime(input) {
16
+ const { workos } = input;
17
+ if (workos?.apiKey === undefined || workos.clientId === undefined || workos.realm === undefined) {
18
+ return Promise.resolve(undefined);
19
+ }
20
+ return createPostgresPlatformAuthRuntime({
21
+ pool: input.pool,
22
+ releaseSha: input.releaseSha,
23
+ workos: { apiKey: workos.apiKey, clientId: workos.clientId, realm: workos.realm },
24
+ workloadSubjects: input.workloadSubjects ?? [],
25
+ });
26
+ }
27
+ /** Builds the durable migration/control runtime once the ordinary Postgres schemas already exist. */
28
+ export async function createPostgresPlatformAuthRuntime(input) {
29
+ if (!/^[0-9a-f]{40}$/.test(input.releaseSha)) {
30
+ throw new Error('WorkOS platform-auth runtime requires an exact release SHA');
31
+ }
32
+ await ensurePlatformAuthOperatorSchema(input.pool);
33
+ const directory = input.directory ??
34
+ WorkOSDirectoryAdapter.fromApiKey(input.workos.apiKey, input.workos.clientId);
35
+ const outboxProcessor = new PlatformIdentitySyncProcessor({
36
+ store: new PostgresPlatformIdentitySyncStore(input.pool, { workosRealm: input.workos.realm }),
37
+ directory,
38
+ });
39
+ const eventsProcessor = new WorkOSEventProcessor({
40
+ client: input.eventsClient ?? new WorkOSEventsSdkClient(input.workos.apiKey),
41
+ store: new PostgresWorkOSIdentityEventStore(input.pool),
42
+ realm: input.workos.realm,
43
+ });
44
+ const migrationStore = new PostgresPlatformAuthMigrationStore(input.pool);
45
+ const remoteVerificationStore = new PostgresPlatformAuthRemoteVerificationStore(input.pool);
46
+ const remoteVerificationWorker = new WorkOSLinkedCandidateVerificationWorker(remoteVerificationStore, directory);
47
+ const operator = new PostgresPlatformAuthOperator({
48
+ pool: input.pool,
49
+ inventoryStore: new PostgresPlatformAuthInventoryStore(input.pool, {
50
+ workosRealm: input.workos.realm,
51
+ workosPageSource: {
52
+ listPage: async (page) => {
53
+ if (directory.listInventoryPage === undefined) {
54
+ throw new Error('WorkOS directory does not support paged inventory snapshots');
55
+ }
56
+ return directory.listInventoryPage(page);
57
+ },
58
+ },
59
+ sourceAvailability: configuredInventorySources(),
60
+ excludedSubjects: [
61
+ ...(input.workloadSubjects ?? []).map((subject) => ({
62
+ subject,
63
+ kind: 'workload',
64
+ })),
65
+ ...(input.syntheticSubjects ?? []).map((subject) => ({
66
+ subject,
67
+ kind: 'synthetic',
68
+ })),
69
+ ],
70
+ }),
71
+ migrationStore,
72
+ importService: new PlatformAuthImportService(migrationStore, directory),
73
+ rolloutStore: new PostgresPlatformAuthRolloutStore(input.pool, {
74
+ buildInfo: { version: 'runtime', gitSha: input.releaseSha, buildTime: 'runtime' },
75
+ workos: { clientId: input.workos.clientId, realm: input.workos.realm },
76
+ remoteVerificationStore,
77
+ }),
78
+ releaseSha: input.releaseSha,
79
+ workosRealm: input.workos.realm,
80
+ outboxProcessor,
81
+ outboxRecoveryStore: new PostgresPlatformIdentitySyncRecoveryStore(input.pool, {
82
+ workosRealm: input.workos.realm,
83
+ }),
84
+ eventsProcessor,
85
+ remoteVerificationWorker,
86
+ remoteVerificationStore,
87
+ });
88
+ return { operator, outboxProcessor, eventsProcessor };
89
+ }
90
+ function configuredInventorySources() {
91
+ return Object.fromEntries(PLATFORM_AUTH_INVENTORY_SOURCES.map((source) => [source, 'configured']));
92
+ }
93
+ //# sourceMappingURL=platform-auth-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-auth-runtime.js","sourceRoot":"","sources":["../src/platform-auth-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { Pool } from 'pg';
2
+ import { type DurableUpstreamHumanRollout, type UpstreamHumanRolloutStore } from './oauth/upstream-rollout-store.js';
3
+ import type { PlatformAuthOperator } from './platform-auth-operator.js';
4
+ import { type PostgresPlatformAuthRuntime } from './platform-auth-runtime.js';
5
+ export interface PlatformAuthServiceBootstrap {
6
+ readonly operator?: PlatformAuthOperator;
7
+ readonly runtime?: PostgresPlatformAuthRuntime;
8
+ readonly rolloutStore?: UpstreamHumanRolloutStore;
9
+ readonly assertContinuity?: () => Promise<void>;
10
+ }
11
+ /** A WorkOS-only process may start only when every new authorization deterministically selects WorkOS. */
12
+ export declare function assertWorkOSOnlyContinuity(input: {
13
+ readonly googleHumanAuthAvailable: boolean;
14
+ readonly workosHumanAuthAvailable: boolean;
15
+ readonly durablePlatformIdentityAvailable: boolean;
16
+ readonly rollout?: DurableUpstreamHumanRollout;
17
+ }): void;
18
+ /** Resolve the durable WorkOS migration runtime before any HTTP listener can be created. */
19
+ export declare function resolvePlatformAuthServiceBootstrap(input: {
20
+ readonly pool?: Pool;
21
+ readonly releaseSha: string;
22
+ readonly workos: {
23
+ readonly apiKey?: string;
24
+ readonly clientId?: string;
25
+ readonly realm?: string;
26
+ } | undefined;
27
+ readonly workloadSubjects: readonly string[] | undefined;
28
+ readonly googleHumanAuthAvailable: boolean;
29
+ readonly durablePlatformIdentityAvailable: boolean;
30
+ readonly configuredOperator?: PlatformAuthOperator;
31
+ }): Promise<PlatformAuthServiceBootstrap>;
32
+ //# sourceMappingURL=platform-auth-service-bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-auth-service-bootstrap.d.ts","sourceRoot":"","sources":["../src/platform-auth-service-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EACL,KAAK,2BAA2B,EAEhC,KAAK,yBAAyB,EAC/B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,yBAAyB,CAAC;IAClD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,0GAA0G;AAC1G,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,gCAAgC,EAAE,OAAO,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC;CAChD,GAAG,IAAI,CAQP;AAED,4FAA4F;AAC5F,wBAAsB,mCAAmC,CAAC,KAAK,EAAE;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EACX;QACE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACzB,GACD,SAAS,CAAC;IACd,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,gCAAgC,EAAE,OAAO,CAAC;IACnD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;CACpD,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAuDxC"}
@@ -0,0 +1,68 @@
1
+ import { PostgresUpstreamHumanRolloutStore, } from './oauth/upstream-rollout-store.js';
2
+ import { guardPlatformAuthRollback } from './platform-auth-rollback-guard.js';
3
+ import { createConfiguredPostgresPlatformAuthRuntime, } from './platform-auth-runtime.js';
4
+ /** A WorkOS-only process may start only when every new authorization deterministically selects WorkOS. */
5
+ export function assertWorkOSOnlyContinuity(input) {
6
+ if (input.googleHumanAuthAvailable || !input.workosHumanAuthAvailable)
7
+ return;
8
+ if (!input.durablePlatformIdentityAvailable) {
9
+ throw new Error('WorkOS-only OAuth requires durable Postgres identity and rollout state');
10
+ }
11
+ if (input.rollout?.workosPercentage !== 100 || input.rollout.lifecycle !== 'finalized') {
12
+ throw new Error('WorkOS-only OAuth requires a durable finalized 100% WorkOS rollout state');
13
+ }
14
+ }
15
+ /** Resolve the durable WorkOS migration runtime before any HTTP listener can be created. */
16
+ export async function resolvePlatformAuthServiceBootstrap(input) {
17
+ const workosComplete = input.workos?.apiKey !== undefined &&
18
+ input.workos.clientId !== undefined &&
19
+ input.workos.realm !== undefined;
20
+ if (workosComplete &&
21
+ !input.googleHumanAuthAvailable &&
22
+ (input.pool === undefined || !input.durablePlatformIdentityAvailable)) {
23
+ throw new Error('WorkOS-only OAuth requires durable Postgres identity and rollout state');
24
+ }
25
+ if (input.pool === undefined) {
26
+ return input.configuredOperator === undefined
27
+ ? {}
28
+ : {
29
+ operator: guardPlatformAuthRollback(input.configuredOperator, {
30
+ googleHumanAuthAvailable: input.googleHumanAuthAvailable,
31
+ }),
32
+ };
33
+ }
34
+ const runtime = await createConfiguredPostgresPlatformAuthRuntime({
35
+ pool: input.pool,
36
+ releaseSha: input.releaseSha,
37
+ workos: input.workos,
38
+ workloadSubjects: input.workloadSubjects,
39
+ });
40
+ const rolloutStore = new PostgresUpstreamHumanRolloutStore(input.pool, {
41
+ ...(workosComplete
42
+ ? { workos: { clientId: input.workos.clientId, realm: input.workos.realm } }
43
+ : {}),
44
+ });
45
+ const assertContinuity = async () => {
46
+ const rollout = await rolloutStore.get();
47
+ assertWorkOSOnlyContinuity({
48
+ googleHumanAuthAvailable: input.googleHumanAuthAvailable,
49
+ workosHumanAuthAvailable: workosComplete,
50
+ durablePlatformIdentityAvailable: input.durablePlatformIdentityAvailable,
51
+ rollout,
52
+ });
53
+ };
54
+ await assertContinuity();
55
+ const resolvedOperator = input.configuredOperator ?? runtime?.operator;
56
+ const operator = resolvedOperator === undefined
57
+ ? undefined
58
+ : guardPlatformAuthRollback(resolvedOperator, {
59
+ googleHumanAuthAvailable: input.googleHumanAuthAvailable,
60
+ });
61
+ return {
62
+ rolloutStore,
63
+ assertContinuity,
64
+ ...(operator === undefined ? {} : { operator }),
65
+ ...(runtime === undefined ? {} : { runtime }),
66
+ };
67
+ }
68
+ //# sourceMappingURL=platform-auth-service-bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-auth-service-bootstrap.js","sourceRoot":"","sources":["../src/platform-auth-service-bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type Logger } from '@noodle-borg/transport-http';
2
+ import type { PlatformIdentitySyncBatchResult } from './platform-identity-sync.js';
3
+ export declare const PLATFORM_IDENTITY_MAINTENANCE_INTERVAL_MS = 30000;
4
+ export interface PlatformIdentityMaintenanceSync {
5
+ processOnce(limit?: number): Promise<PlatformIdentitySyncBatchResult>;
6
+ }
7
+ export interface PlatformIdentityMaintenanceEvents {
8
+ processOnce(): Promise<{
9
+ readonly processed: number;
10
+ readonly cursor?: string;
11
+ }>;
12
+ }
13
+ export interface PlatformIdentityMaintenanceReadiness {
14
+ markMaintenanceSuccess(components: readonly ('outbox' | 'events')[]): Promise<void>;
15
+ }
16
+ /** Single-flight maintenance sweep. Logs are aggregate-only by construction. */
17
+ export declare class PlatformIdentityMaintenanceWorker {
18
+ #private;
19
+ constructor(input: {
20
+ readonly sync?: PlatformIdentityMaintenanceSync;
21
+ readonly events?: PlatformIdentityMaintenanceEvents;
22
+ readonly readiness?: PlatformIdentityMaintenanceReadiness;
23
+ readonly logger?: Logger;
24
+ readonly batchSize?: number;
25
+ });
26
+ runOnce(): Promise<void>;
27
+ }
28
+ export declare function startPlatformIdentityMaintenanceWorker(input: {
29
+ readonly sync?: PlatformIdentityMaintenanceSync;
30
+ readonly events?: PlatformIdentityMaintenanceEvents;
31
+ readonly readiness?: PlatformIdentityMaintenanceReadiness;
32
+ readonly logger?: Logger;
33
+ readonly batchSize?: number;
34
+ readonly intervalMs?: number;
35
+ }): NodeJS.Timeout;
36
+ //# sourceMappingURL=platform-identity-maintenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-identity-maintenance.d.ts","sourceRoot":"","sources":["../src/platform-identity-maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAc,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAEnF,eAAO,MAAM,yCAAyC,QAAS,CAAC;AAEhE,MAAM,WAAW,+BAA+B;IAC9C,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,iCAAiC;IAChD,WAAW,IAAI,OAAO,CAAC;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClF;AAED,MAAM,WAAW,oCAAoC;IACnD,sBAAsB,CAAC,UAAU,EAAE,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrF;AAED,gFAAgF;AAChF,qBAAa,iCAAiC;;gBAQhC,KAAK,EAAE;QACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,+BAA+B,CAAC;QAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,iCAAiC,CAAC;QACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,oCAAoC,CAAC;QAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;KAC7B;IAWK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAuD/B;AAED,wBAAgB,sCAAsC,CAAC,KAAK,EAAE;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,+BAA+B,CAAC;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,iCAAiC,CAAC;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,oCAAoC,CAAC;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,MAAM,CAAC,OAAO,CASjB"}