@hilbras/keystone 1.5.0 → 1.9.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 (559) hide show
  1. package/CHANGELOG.md +272 -0
  2. package/README.md +59 -25
  3. package/dist/cli.js +25 -27
  4. package/dist/cli.js.map +1 -1
  5. package/dist/config.d.ts +15 -1
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +45 -8
  8. package/dist/config.js.map +1 -1
  9. package/dist/container.d.ts +4 -1
  10. package/dist/container.d.ts.map +1 -1
  11. package/dist/container.js.map +1 -1
  12. package/dist/db/migrations/0008_flashy_firestar.sql +5 -0
  13. package/dist/db/migrations/0009_daffy_changeling.sql +1 -0
  14. package/dist/db/migrations/0010_wealthy_shadow_king.sql +37 -0
  15. package/dist/db/migrations/0011_overrated_vector.sql +18 -0
  16. package/dist/db/migrations/0012_brave_darkhawk.sql +28 -0
  17. package/dist/db/migrations/0013_wonderful_chimera.sql +5 -0
  18. package/dist/db/migrations/0014_magical_morph.sql +48 -0
  19. package/{src/db/migrations/meta/0007_snapshot.json → dist/db/migrations/meta/0008_snapshot.json} +136 -32
  20. package/{src/db/migrations/meta/0006_snapshot.json → dist/db/migrations/meta/0009_snapshot.json} +359 -30
  21. package/{src/db/migrations/meta/0005_snapshot.json → dist/db/migrations/meta/0010_snapshot.json} +459 -29
  22. package/{src/db/migrations/meta/0004_snapshot.json → dist/db/migrations/meta/0011_snapshot.json} +594 -30
  23. package/dist/db/migrations/meta/0012_snapshot.json +3891 -0
  24. package/dist/db/migrations/meta/0013_snapshot.json +3919 -0
  25. package/dist/db/migrations/meta/0014_snapshot.json +4311 -0
  26. package/dist/db/migrations/meta/_journal.json +49 -0
  27. package/dist/db/reencryptOidcSecrets.d.ts +2 -0
  28. package/dist/db/reencryptOidcSecrets.d.ts.map +1 -0
  29. package/dist/db/reencryptOidcSecrets.js +41 -0
  30. package/dist/db/reencryptOidcSecrets.js.map +1 -0
  31. package/dist/db/schema.d.ts +2521 -53
  32. package/dist/db/schema.d.ts.map +1 -1
  33. package/dist/db/schema.js +118 -3
  34. package/dist/db/schema.js.map +1 -1
  35. package/dist/db/seed.js +67 -40
  36. package/dist/db/seed.js.map +1 -1
  37. package/dist/di.d.ts.map +1 -1
  38. package/dist/di.js +11 -3
  39. package/dist/di.js.map +1 -1
  40. package/dist/index.d.ts +2 -2
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +26 -2
  43. package/dist/index.js.map +1 -1
  44. package/dist/lib/errors.d.ts +2 -1
  45. package/dist/lib/errors.d.ts.map +1 -1
  46. package/dist/lib/errors.js +10 -0
  47. package/dist/lib/errors.js.map +1 -1
  48. package/dist/plugins/appContext.d.ts.map +1 -1
  49. package/dist/plugins/appContext.js +3 -12
  50. package/dist/plugins/appContext.js.map +1 -1
  51. package/dist/plugins/audit.d.ts.map +1 -1
  52. package/dist/plugins/audit.js +26 -6
  53. package/dist/plugins/audit.js.map +1 -1
  54. package/dist/plugins/auth.d.ts.map +1 -1
  55. package/dist/plugins/auth.js +32 -7
  56. package/dist/plugins/auth.js.map +1 -1
  57. package/dist/plugins/metrics.d.ts.map +1 -1
  58. package/dist/plugins/mtls.d.ts.map +1 -1
  59. package/dist/plugins/permissions.d.ts.map +1 -1
  60. package/dist/plugins/permissions.js +29 -9
  61. package/dist/plugins/permissions.js.map +1 -1
  62. package/dist/plugins/rateLimit.d.ts +15 -0
  63. package/dist/plugins/rateLimit.d.ts.map +1 -1
  64. package/dist/plugins/rateLimit.js +11 -1
  65. package/dist/plugins/rateLimit.js.map +1 -1
  66. package/dist/plugins/requestLogger.d.ts.map +1 -1
  67. package/dist/repositories/apiKey.d.ts.map +1 -1
  68. package/dist/repositories/application.d.ts.map +1 -1
  69. package/dist/repositories/application.js +1 -1
  70. package/dist/repositories/application.js.map +1 -1
  71. package/dist/repositories/audit.d.ts.map +1 -1
  72. package/dist/repositories/index.d.ts +3 -0
  73. package/dist/repositories/index.d.ts.map +1 -1
  74. package/dist/repositories/index.js +3 -0
  75. package/dist/repositories/index.js.map +1 -1
  76. package/dist/repositories/mfaChallenge.d.ts +23 -0
  77. package/dist/repositories/mfaChallenge.d.ts.map +1 -0
  78. package/dist/repositories/mfaChallenge.js +71 -0
  79. package/dist/repositories/mfaChallenge.js.map +1 -0
  80. package/dist/repositories/oidcConnection.d.ts +27 -43
  81. package/dist/repositories/oidcConnection.d.ts.map +1 -1
  82. package/dist/repositories/oidcConnection.js +15 -6
  83. package/dist/repositories/oidcConnection.js.map +1 -1
  84. package/dist/repositories/organization.d.ts +9 -9
  85. package/dist/repositories/organization.d.ts.map +1 -1
  86. package/dist/repositories/organization.js +91 -37
  87. package/dist/repositories/organization.js.map +1 -1
  88. package/dist/repositories/permission.d.ts.map +1 -1
  89. package/dist/repositories/permission.js +27 -5
  90. package/dist/repositories/permission.js.map +1 -1
  91. package/dist/repositories/samlConnection.d.ts +28 -28
  92. package/dist/repositories/samlConnection.d.ts.map +1 -1
  93. package/dist/repositories/samlConnection.js +12 -4
  94. package/dist/repositories/samlConnection.js.map +1 -1
  95. package/dist/repositories/scimConnection.d.ts +38 -0
  96. package/dist/repositories/scimConnection.d.ts.map +1 -0
  97. package/dist/repositories/scimConnection.js +123 -0
  98. package/dist/repositories/scimConnection.js.map +1 -0
  99. package/dist/repositories/scimGroup.d.ts +36 -0
  100. package/dist/repositories/scimGroup.d.ts.map +1 -0
  101. package/dist/repositories/scimGroup.js +113 -0
  102. package/dist/repositories/scimGroup.js.map +1 -0
  103. package/dist/repositories/session.d.ts +23 -13
  104. package/dist/repositories/session.d.ts.map +1 -1
  105. package/dist/repositories/session.js +13 -1
  106. package/dist/repositories/session.js.map +1 -1
  107. package/dist/repositories/types.d.ts +112 -5
  108. package/dist/repositories/types.d.ts.map +1 -1
  109. package/dist/repositories/types.js +7 -1
  110. package/dist/repositories/types.js.map +1 -1
  111. package/dist/repositories/user.d.ts +23 -1
  112. package/dist/repositories/user.d.ts.map +1 -1
  113. package/dist/repositories/user.js +180 -4
  114. package/dist/repositories/user.js.map +1 -1
  115. package/dist/routes/admin/billing.js +4 -4
  116. package/dist/routes/admin/billing.js.map +1 -1
  117. package/dist/routes/admin/helpers.d.ts +16 -20
  118. package/dist/routes/admin/helpers.d.ts.map +1 -1
  119. package/dist/routes/admin/helpers.js +53 -10
  120. package/dist/routes/admin/helpers.js.map +1 -1
  121. package/dist/routes/admin/organizations.d.ts.map +1 -1
  122. package/dist/routes/admin/organizations.js +76 -69
  123. package/dist/routes/admin/organizations.js.map +1 -1
  124. package/dist/routes/admin/permissions.d.ts.map +1 -1
  125. package/dist/routes/admin/permissions.js +48 -14
  126. package/dist/routes/admin/permissions.js.map +1 -1
  127. package/dist/routes/admin/platform.d.ts.map +1 -1
  128. package/dist/routes/admin/platform.js +86 -35
  129. package/dist/routes/admin/platform.js.map +1 -1
  130. package/dist/routes/admin/sso.d.ts.map +1 -1
  131. package/dist/routes/admin/sso.js +143 -12
  132. package/dist/routes/admin/sso.js.map +1 -1
  133. package/dist/routes/admin/webhooks.js +8 -8
  134. package/dist/routes/admin/webhooks.js.map +1 -1
  135. package/dist/routes/apiKeys.d.ts.map +1 -1
  136. package/dist/routes/apiKeys.js +23 -5
  137. package/dist/routes/apiKeys.js.map +1 -1
  138. package/dist/routes/auth.d.ts.map +1 -1
  139. package/dist/routes/auth.js +112 -22
  140. package/dist/routes/auth.js.map +1 -1
  141. package/dist/routes/authz.d.ts.map +1 -1
  142. package/dist/routes/authz.js +16 -4
  143. package/dist/routes/authz.js.map +1 -1
  144. package/dist/routes/config.d.ts.map +1 -1
  145. package/dist/routes/config.js +16 -14
  146. package/dist/routes/config.js.map +1 -1
  147. package/dist/routes/federation.d.ts.map +1 -1
  148. package/dist/routes/federation.js +17 -3
  149. package/dist/routes/federation.js.map +1 -1
  150. package/dist/routes/magicLinks.d.ts.map +1 -1
  151. package/dist/routes/magicLinks.js +15 -3
  152. package/dist/routes/magicLinks.js.map +1 -1
  153. package/dist/routes/oauth.d.ts.map +1 -1
  154. package/dist/routes/oauth.js +22 -3
  155. package/dist/routes/oauth.js.map +1 -1
  156. package/dist/routes/oauth2.d.ts.map +1 -1
  157. package/dist/routes/oauth2.js +104 -11
  158. package/dist/routes/oauth2.js.map +1 -1
  159. package/dist/routes/oidcEnterprise.d.ts.map +1 -1
  160. package/dist/routes/oidcEnterprise.js +67 -21
  161. package/dist/routes/oidcEnterprise.js.map +1 -1
  162. package/dist/routes/password.d.ts.map +1 -1
  163. package/dist/routes/password.js.map +1 -1
  164. package/dist/routes/profile.js +4 -4
  165. package/dist/routes/profile.js.map +1 -1
  166. package/dist/routes/saml.d.ts +9 -0
  167. package/dist/routes/saml.d.ts.map +1 -1
  168. package/dist/routes/saml.js +187 -11
  169. package/dist/routes/saml.js.map +1 -1
  170. package/dist/routes/scim.d.ts +13 -0
  171. package/dist/routes/scim.d.ts.map +1 -1
  172. package/dist/routes/scim.js +885 -110
  173. package/dist/routes/scim.js.map +1 -1
  174. package/dist/routes/sdk.d.ts.map +1 -1
  175. package/dist/routes/sdk.js +24 -8
  176. package/dist/routes/sdk.js.map +1 -1
  177. package/dist/routes/serviceAccounts.d.ts.map +1 -1
  178. package/dist/routes/serviceAccounts.js +2 -1
  179. package/dist/routes/serviceAccounts.js.map +1 -1
  180. package/dist/routes/setup.d.ts.map +1 -1
  181. package/dist/routes/setup.js +15 -16
  182. package/dist/routes/setup.js.map +1 -1
  183. package/dist/routes/smsOtp.js +1 -1
  184. package/dist/routes/smsOtp.js.map +1 -1
  185. package/dist/routes/totp.d.ts.map +1 -1
  186. package/dist/routes/totp.js +113 -23
  187. package/dist/routes/totp.js.map +1 -1
  188. package/dist/routes/webauthn.d.ts.map +1 -1
  189. package/dist/routes/webauthn.js +44 -8
  190. package/dist/routes/webauthn.js.map +1 -1
  191. package/dist/routes/workflows.d.ts.map +1 -1
  192. package/dist/routes/workflows.js +58 -25
  193. package/dist/routes/workflows.js.map +1 -1
  194. package/dist/sdk/index.d.ts.map +1 -1
  195. package/dist/sdk/index.js +141 -40
  196. package/dist/sdk/index.js.map +1 -1
  197. package/dist/sdk/types.d.ts +60 -29
  198. package/dist/sdk/types.d.ts.map +1 -1
  199. package/dist/services/application/authentication.d.ts +39 -1
  200. package/dist/services/application/authentication.d.ts.map +1 -1
  201. package/dist/services/application/authentication.js +43 -1
  202. package/dist/services/application/authentication.js.map +1 -1
  203. package/dist/services/application/identity.d.ts +10 -7
  204. package/dist/services/application/identity.d.ts.map +1 -1
  205. package/dist/services/application/identity.js +13 -10
  206. package/dist/services/application/identity.js.map +1 -1
  207. package/dist/services/application/organization.d.ts +11 -7
  208. package/dist/services/application/organization.d.ts.map +1 -1
  209. package/dist/services/application/organization.js +160 -12
  210. package/dist/services/application/organization.js.map +1 -1
  211. package/dist/services/applications.js +2 -2
  212. package/dist/services/applications.js.map +1 -1
  213. package/dist/services/audit.d.ts +1 -0
  214. package/dist/services/audit.d.ts.map +1 -1
  215. package/dist/services/audit.js +13 -0
  216. package/dist/services/audit.js.map +1 -1
  217. package/dist/services/cache.d.ts.map +1 -1
  218. package/dist/services/configuration/profiles.d.ts +4 -0
  219. package/dist/services/configuration/profiles.d.ts.map +1 -1
  220. package/dist/services/configuration/profiles.js +50 -0
  221. package/dist/services/configuration/profiles.js.map +1 -1
  222. package/dist/services/configuration.d.ts.map +1 -1
  223. package/dist/services/configuration.js.map +1 -1
  224. package/dist/services/connectors/google.d.ts.map +1 -1
  225. package/dist/services/connectors/google.js +3 -2
  226. package/dist/services/connectors/google.js.map +1 -1
  227. package/dist/services/connectors/oidc.d.ts.map +1 -1
  228. package/dist/services/connectors/oidc.js +6 -3
  229. package/dist/services/connectors/oidc.js.map +1 -1
  230. package/dist/services/connectors/zitadel.d.ts.map +1 -1
  231. package/dist/services/connectors/zitadel.js +4 -3
  232. package/dist/services/connectors/zitadel.js.map +1 -1
  233. package/dist/services/domain/authentication.d.ts +43 -4
  234. package/dist/services/domain/authentication.d.ts.map +1 -1
  235. package/dist/services/domain/authentication.js +82 -20
  236. package/dist/services/domain/authentication.js.map +1 -1
  237. package/dist/services/domain/authorization.d.ts +11 -0
  238. package/dist/services/domain/authorization.d.ts.map +1 -1
  239. package/dist/services/domain/authorization.js +36 -1
  240. package/dist/services/domain/authorization.js.map +1 -1
  241. package/dist/services/domain/identity.d.ts +21 -9
  242. package/dist/services/domain/identity.d.ts.map +1 -1
  243. package/dist/services/domain/identity.js +187 -10
  244. package/dist/services/domain/identity.js.map +1 -1
  245. package/dist/services/domain/organization.d.ts +6 -9
  246. package/dist/services/domain/organization.d.ts.map +1 -1
  247. package/dist/services/domain/organization.js +48 -30
  248. package/dist/services/domain/organization.js.map +1 -1
  249. package/dist/services/emailVerification.d.ts +2 -2
  250. package/dist/services/enterpriseSso.d.ts +13 -6
  251. package/dist/services/enterpriseSso.d.ts.map +1 -1
  252. package/dist/services/enterpriseSso.js +75 -6
  253. package/dist/services/enterpriseSso.js.map +1 -1
  254. package/dist/services/events/subscribers/auditLog.js +1 -1
  255. package/dist/services/events/subscribers/auditLog.js.map +1 -1
  256. package/dist/services/events/types.d.ts +7 -1
  257. package/dist/services/events/types.d.ts.map +1 -1
  258. package/dist/services/events/types.js.map +1 -1
  259. package/dist/services/events/validate.d.ts.map +1 -1
  260. package/dist/services/events/validate.js +27 -0
  261. package/dist/services/events/validate.js.map +1 -1
  262. package/dist/services/features.d.ts.map +1 -1
  263. package/dist/services/features.js.map +1 -1
  264. package/dist/services/federation.d.ts +6 -1
  265. package/dist/services/federation.d.ts.map +1 -1
  266. package/dist/services/federation.js +31 -4
  267. package/dist/services/federation.js.map +1 -1
  268. package/dist/services/ipControls.js +2 -2
  269. package/dist/services/ipControls.js.map +1 -1
  270. package/dist/services/magicLinks.d.ts +2 -2
  271. package/dist/services/mfa.d.ts +53 -0
  272. package/dist/services/mfa.d.ts.map +1 -0
  273. package/dist/services/mfa.js +157 -0
  274. package/dist/services/mfa.js.map +1 -0
  275. package/dist/services/oauth2.d.ts +16 -12
  276. package/dist/services/oauth2.d.ts.map +1 -1
  277. package/dist/services/oauth2.js +22 -13
  278. package/dist/services/oauth2.js.map +1 -1
  279. package/dist/services/oidcSecretFormat.d.ts +3 -0
  280. package/dist/services/oidcSecretFormat.d.ts.map +1 -0
  281. package/dist/services/oidcSecretFormat.js +5 -0
  282. package/dist/services/oidcSecretFormat.js.map +1 -0
  283. package/dist/services/organizations.d.ts +4 -16
  284. package/dist/services/organizations.d.ts.map +1 -1
  285. package/dist/services/organizations.js +0 -62
  286. package/dist/services/organizations.js.map +1 -1
  287. package/dist/services/permissions.d.ts.map +1 -1
  288. package/dist/services/permissions.js +9 -1
  289. package/dist/services/permissions.js.map +1 -1
  290. package/dist/services/plugins/registry.d.ts.map +1 -1
  291. package/dist/services/plugins/registry.js.map +1 -1
  292. package/dist/services/plugins/types.d.ts.map +1 -1
  293. package/dist/services/queue/bullmq.d.ts.map +1 -1
  294. package/dist/services/queue/inProcess.d.ts.map +1 -1
  295. package/dist/services/redis.d.ts +1 -1
  296. package/dist/services/redis.d.ts.map +1 -1
  297. package/dist/services/scimCredentials.d.ts +46 -0
  298. package/dist/services/scimCredentials.d.ts.map +1 -0
  299. package/dist/services/scimCredentials.js +123 -0
  300. package/dist/services/scimCredentials.js.map +1 -0
  301. package/dist/services/scimLegacyMigration.d.ts +12 -0
  302. package/dist/services/scimLegacyMigration.d.ts.map +1 -0
  303. package/dist/services/scimLegacyMigration.js +44 -0
  304. package/dist/services/scimLegacyMigration.js.map +1 -0
  305. package/dist/services/secrets/awsKms.d.ts +2 -2
  306. package/dist/services/secrets/awsKms.d.ts.map +1 -1
  307. package/dist/services/secrets/awsKms.js +3 -5
  308. package/dist/services/secrets/awsKms.js.map +1 -1
  309. package/dist/services/secrets/azureKeyVault.d.ts.map +1 -1
  310. package/dist/services/secrets/database.d.ts.map +1 -1
  311. package/dist/services/secrets/database.js.map +1 -1
  312. package/dist/services/secrets/environment.d.ts.map +1 -1
  313. package/dist/services/secrets/environment.js.map +1 -1
  314. package/dist/services/secrets/index.d.ts.map +1 -1
  315. package/dist/services/secrets/password.d.ts.map +1 -1
  316. package/dist/services/secrets/password.js +0 -4
  317. package/dist/services/secrets/password.js.map +1 -1
  318. package/dist/services/secrets/provider.d.ts +2 -3
  319. package/dist/services/secrets/provider.d.ts.map +1 -1
  320. package/dist/services/secrets/vault.d.ts.map +1 -1
  321. package/dist/services/setup/configWriter.d.ts.map +1 -1
  322. package/dist/services/setup/configWriter.js.map +1 -1
  323. package/dist/services/ssoEndpointPolicy.d.ts +8 -0
  324. package/dist/services/ssoEndpointPolicy.d.ts.map +1 -0
  325. package/dist/services/ssoEndpointPolicy.js +136 -0
  326. package/dist/services/ssoEndpointPolicy.js.map +1 -0
  327. package/dist/services/stepUp.d.ts +35 -0
  328. package/dist/services/stepUp.d.ts.map +1 -0
  329. package/dist/services/stepUp.js +65 -0
  330. package/dist/services/stepUp.js.map +1 -0
  331. package/dist/services/tokens.d.ts +37 -11
  332. package/dist/services/tokens.d.ts.map +1 -1
  333. package/dist/services/tokens.js +75 -14
  334. package/dist/services/tokens.js.map +1 -1
  335. package/dist/services/totp.d.ts +46 -0
  336. package/dist/services/totp.d.ts.map +1 -1
  337. package/dist/services/totp.js +178 -41
  338. package/dist/services/totp.js.map +1 -1
  339. package/dist/services/users.d.ts +20 -12
  340. package/dist/services/users.d.ts.map +1 -1
  341. package/dist/services/users.js +24 -51
  342. package/dist/services/users.js.map +1 -1
  343. package/dist/services/webauthn.d.ts +8 -4
  344. package/dist/services/webauthn.d.ts.map +1 -1
  345. package/dist/services/webauthn.js +4 -4
  346. package/dist/services/webauthn.js.map +1 -1
  347. package/dist/services/webhooks.d.ts +20 -20
  348. package/dist/services/workflows/engine.d.ts +4 -2
  349. package/dist/services/workflows/engine.d.ts.map +1 -1
  350. package/dist/services/workflows/engine.js +181 -12
  351. package/dist/services/workflows/engine.js.map +1 -1
  352. package/dist/services/workflows/steps.d.ts +2 -0
  353. package/dist/services/workflows/steps.d.ts.map +1 -1
  354. package/dist/services/workflows/steps.js +8 -75
  355. package/dist/services/workflows/steps.js.map +1 -1
  356. package/dist/setup-server.js.map +1 -1
  357. package/dist/types.d.ts +33 -4
  358. package/dist/types.d.ts.map +1 -1
  359. package/dist/types.js +26 -2
  360. package/dist/types.js.map +1 -1
  361. package/package.json +26 -3
  362. package/dist/tests/errors.test.d.ts +0 -2
  363. package/dist/tests/errors.test.d.ts.map +0 -1
  364. package/dist/tests/errors.test.js +0 -64
  365. package/dist/tests/errors.test.js.map +0 -1
  366. package/dist/tests/events.test.d.ts +0 -2
  367. package/dist/tests/events.test.d.ts.map +0 -1
  368. package/dist/tests/events.test.js +0 -45
  369. package/dist/tests/events.test.js.map +0 -1
  370. package/dist/tests/featureFlags.test.d.ts +0 -2
  371. package/dist/tests/featureFlags.test.d.ts.map +0 -1
  372. package/dist/tests/featureFlags.test.js +0 -24
  373. package/dist/tests/featureFlags.test.js.map +0 -1
  374. package/dist/tests/integration/queue.test.d.ts +0 -2
  375. package/dist/tests/integration/queue.test.d.ts.map +0 -1
  376. package/dist/tests/integration/queue.test.js +0 -49
  377. package/dist/tests/integration/queue.test.js.map +0 -1
  378. package/dist/tests/plugins.test.d.ts +0 -2
  379. package/dist/tests/plugins.test.d.ts.map +0 -1
  380. package/dist/tests/plugins.test.js +0 -56
  381. package/dist/tests/plugins.test.js.map +0 -1
  382. package/dist/tests/result.test.d.ts +0 -2
  383. package/dist/tests/result.test.d.ts.map +0 -1
  384. package/dist/tests/result.test.js +0 -46
  385. package/dist/tests/result.test.js.map +0 -1
  386. package/dist/tests/setup/configWriter.test.d.ts +0 -2
  387. package/dist/tests/setup/configWriter.test.d.ts.map +0 -1
  388. package/dist/tests/setup/configWriter.test.js +0 -55
  389. package/dist/tests/setup/configWriter.test.js.map +0 -1
  390. package/dist/tests/setup/validation.test.d.ts +0 -2
  391. package/dist/tests/setup/validation.test.d.ts.map +0 -1
  392. package/dist/tests/setup/validation.test.js +0 -26
  393. package/dist/tests/setup/validation.test.js.map +0 -1
  394. package/dist/tests/smoke.test.d.ts +0 -2
  395. package/dist/tests/smoke.test.d.ts.map +0 -1
  396. package/dist/tests/smoke.test.js +0 -124
  397. package/dist/tests/smoke.test.js.map +0 -1
  398. package/src/cli.ts +0 -172
  399. package/src/config.ts +0 -143
  400. package/src/container.ts +0 -48
  401. package/src/db/index.ts +0 -53
  402. package/src/db/migrations/0000_skinny_ben_parker.sql +0 -553
  403. package/src/db/migrations/0001_brief_joseph.sql +0 -10
  404. package/src/db/migrations/0002_add_account_lockout.sql +0 -3
  405. package/src/db/migrations/0003_steep_rachel_grey.sql +0 -1
  406. package/src/db/migrations/0004_clever_bill_hollister.sql +0 -20
  407. package/src/db/migrations/0005_steep_the_call.sql +0 -2
  408. package/src/db/migrations/0006_ambitious_boomer.sql +0 -17
  409. package/src/db/migrations/0007_greedy_vindicator.sql +0 -40
  410. package/src/db/migrations/meta/0000_snapshot.json +0 -2964
  411. package/src/db/migrations/meta/0001_snapshot.json +0 -3031
  412. package/src/db/migrations/meta/0003_snapshot.json +0 -3051
  413. package/src/db/migrations/meta/_journal.json +0 -62
  414. package/src/db/schema.ts +0 -676
  415. package/src/db/seed.ts +0 -146
  416. package/src/di.ts +0 -81
  417. package/src/index.ts +0 -326
  418. package/src/lib/errors.ts +0 -139
  419. package/src/lib/result.ts +0 -44
  420. package/src/lib/webhookSignature.ts +0 -41
  421. package/src/plugins/appContext.ts +0 -76
  422. package/src/plugins/audit.ts +0 -42
  423. package/src/plugins/auth.ts +0 -230
  424. package/src/plugins/metrics.ts +0 -41
  425. package/src/plugins/mtls.ts +0 -94
  426. package/src/plugins/permissions.ts +0 -29
  427. package/src/plugins/rateLimit.ts +0 -133
  428. package/src/plugins/requestLogger.ts +0 -25
  429. package/src/plugins/tracing.ts +0 -22
  430. package/src/repositories/apiKey.ts +0 -158
  431. package/src/repositories/application.ts +0 -70
  432. package/src/repositories/audit.ts +0 -32
  433. package/src/repositories/index.ts +0 -9
  434. package/src/repositories/oidcConnection.ts +0 -111
  435. package/src/repositories/organization.ts +0 -167
  436. package/src/repositories/permission.ts +0 -153
  437. package/src/repositories/samlConnection.ts +0 -96
  438. package/src/repositories/session.ts +0 -86
  439. package/src/repositories/types.ts +0 -134
  440. package/src/repositories/user.ts +0 -161
  441. package/src/routes/admin/billing.ts +0 -48
  442. package/src/routes/admin/helpers.ts +0 -50
  443. package/src/routes/admin/index.ts +0 -16
  444. package/src/routes/admin/organizations.ts +0 -299
  445. package/src/routes/admin/permissions.ts +0 -80
  446. package/src/routes/admin/platform.ts +0 -335
  447. package/src/routes/admin/sso.ts +0 -138
  448. package/src/routes/admin/webhooks.ts +0 -73
  449. package/src/routes/admin.ts +0 -1
  450. package/src/routes/apiKeys.ts +0 -60
  451. package/src/routes/auth.ts +0 -214
  452. package/src/routes/authz.ts +0 -38
  453. package/src/routes/config.ts +0 -67
  454. package/src/routes/emailVerification.ts +0 -73
  455. package/src/routes/federation.ts +0 -156
  456. package/src/routes/helpers.ts +0 -17
  457. package/src/routes/magicLinks.ts +0 -107
  458. package/src/routes/oauth.ts +0 -167
  459. package/src/routes/oauth2.ts +0 -284
  460. package/src/routes/oidcEnterprise.ts +0 -166
  461. package/src/routes/password.ts +0 -90
  462. package/src/routes/profile.ts +0 -44
  463. package/src/routes/saml.ts +0 -209
  464. package/src/routes/scim.ts +0 -199
  465. package/src/routes/sdk.ts +0 -141
  466. package/src/routes/serviceAccounts.ts +0 -124
  467. package/src/routes/sessions.ts +0 -62
  468. package/src/routes/setup.ts +0 -315
  469. package/src/routes/smsOtp.ts +0 -67
  470. package/src/routes/totp.ts +0 -122
  471. package/src/routes/webauthn.ts +0 -147
  472. package/src/routes/workflows.ts +0 -157
  473. package/src/sdk/index.ts +0 -152
  474. package/src/sdk/types.ts +0 -54
  475. package/src/services/anomalyDetection.ts +0 -73
  476. package/src/services/application/authentication.ts +0 -75
  477. package/src/services/application/identity.ts +0 -56
  478. package/src/services/application/index.ts +0 -3
  479. package/src/services/application/organization.ts +0 -77
  480. package/src/services/applications.ts +0 -89
  481. package/src/services/audit.ts +0 -41
  482. package/src/services/auditExport.ts +0 -59
  483. package/src/services/billing.ts +0 -87
  484. package/src/services/cache.ts +0 -131
  485. package/src/services/configuration/profiles.ts +0 -115
  486. package/src/services/configuration.ts +0 -120
  487. package/src/services/connectors/google.ts +0 -92
  488. package/src/services/connectors/oidc.ts +0 -111
  489. package/src/services/connectors/registry.ts +0 -124
  490. package/src/services/connectors/types.ts +0 -38
  491. package/src/services/connectors/zitadel.ts +0 -77
  492. package/src/services/devices.ts +0 -76
  493. package/src/services/domain/authentication.ts +0 -279
  494. package/src/services/domain/authorization.ts +0 -49
  495. package/src/services/domain/identity.ts +0 -108
  496. package/src/services/domain/index.ts +0 -4
  497. package/src/services/domain/organization.ts +0 -114
  498. package/src/services/email.ts +0 -167
  499. package/src/services/emailVerification.ts +0 -75
  500. package/src/services/enterpriseSso.ts +0 -58
  501. package/src/services/events/bus.ts +0 -43
  502. package/src/services/events/subscribers/anomaly.ts +0 -13
  503. package/src/services/events/subscribers/auditLog.ts +0 -21
  504. package/src/services/events/subscribers/webhook.ts +0 -39
  505. package/src/services/events/subscribers/webhookDispatch.ts +0 -14
  506. package/src/services/events/types.ts +0 -106
  507. package/src/services/events/validate.ts +0 -118
  508. package/src/services/featureFlags.ts +0 -90
  509. package/src/services/features.ts +0 -22
  510. package/src/services/federation.ts +0 -30
  511. package/src/services/hibp.ts +0 -28
  512. package/src/services/ipControls.ts +0 -99
  513. package/src/services/magicLinks.ts +0 -51
  514. package/src/services/oauth2.ts +0 -216
  515. package/src/services/organizations.ts +0 -171
  516. package/src/services/permissions.ts +0 -146
  517. package/src/services/plugins/registry.ts +0 -242
  518. package/src/services/plugins/types.ts +0 -98
  519. package/src/services/queue/bullmq.ts +0 -104
  520. package/src/services/queue/inProcess.ts +0 -75
  521. package/src/services/queue/index.ts +0 -19
  522. package/src/services/queue/types.ts +0 -26
  523. package/src/services/redis.ts +0 -16
  524. package/src/services/secrets/awsKms.ts +0 -97
  525. package/src/services/secrets/azureKeyVault.ts +0 -171
  526. package/src/services/secrets/database.ts +0 -166
  527. package/src/services/secrets/environment.ts +0 -117
  528. package/src/services/secrets/index.ts +0 -50
  529. package/src/services/secrets/password.ts +0 -73
  530. package/src/services/secrets/provider.ts +0 -36
  531. package/src/services/secrets/vault.ts +0 -149
  532. package/src/services/secrets.ts +0 -2
  533. package/src/services/serviceAccounts.ts +0 -74
  534. package/src/services/setup/configWriter.ts +0 -200
  535. package/src/services/setup/diagnostics.ts +0 -76
  536. package/src/services/setup/token.ts +0 -42
  537. package/src/services/setup/types.ts +0 -40
  538. package/src/services/setup/validation.ts +0 -205
  539. package/src/services/sms.ts +0 -81
  540. package/src/services/smsOtp.ts +0 -74
  541. package/src/services/tokens.ts +0 -287
  542. package/src/services/totp.ts +0 -113
  543. package/src/services/users.ts +0 -239
  544. package/src/services/webauthn.ts +0 -193
  545. package/src/services/webhooks.ts +0 -190
  546. package/src/services/workflows/engine.ts +0 -125
  547. package/src/services/workflows/steps.ts +0 -129
  548. package/src/services/zitadel.ts +0 -277
  549. package/src/setup-server.ts +0 -71
  550. package/src/tests/errors.test.ts +0 -74
  551. package/src/tests/events.test.ts +0 -52
  552. package/src/tests/featureFlags.test.ts +0 -26
  553. package/src/tests/integration/queue.test.ts +0 -54
  554. package/src/tests/plugins.test.ts +0 -73
  555. package/src/tests/result.test.ts +0 -52
  556. package/src/tests/setup/configWriter.test.ts +0 -69
  557. package/src/tests/setup/validation.test.ts +0 -29
  558. package/src/tests/smoke.test.ts +0 -136
  559. package/src/types.ts +0 -70
package/CHANGELOG.md CHANGED
@@ -5,6 +5,244 @@ All notable changes to Hilbras Keystone are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.9.0] - 2026-09-25
9
+
10
+ ### Security
11
+
12
+ SCIM was a single global credential. In 1.8.x a deployment could provision
13
+ exactly one organization, the bearer token was stored and compared in plaintext,
14
+ and mutations reached global user records.
15
+
16
+ - SCIM credentials are per-organization. Every connection belongs to exactly one
17
+ organization, at most one is live per organization, and every user and group
18
+ read and write is filtered by it. A cross-tenant target returns `404`, so the
19
+ endpoint is not a tenant oracle.
20
+ - Bearer tokens are stored only as a SHA-256 digest and resolved by that digest,
21
+ so a database dump yields no usable token and the comparison carries no timing
22
+ signal. Connections can expire, be rotated, and be revoked.
23
+ - Issuing, rotating, and revoking a SCIM credential is owner-only. A SCIM token
24
+ provisions and deactivates tenant users, so a mere admin or member cannot mint
25
+ one.
26
+ - Deprovisioning removes the organization's membership and deactivates the
27
+ account only when no membership remains. Previously it deactivated a shared
28
+ account in every organization that user belonged to, without those
29
+ organizations' authorization.
30
+ - SCIM refuses to change the global attributes of a shared user, to reactivate a
31
+ shared account, and to remove the last owner of an organization.
32
+ - SCIM can no longer attach a user who already belongs to another organization,
33
+ and the conflict message no longer names the organization that holds them.
34
+ - Unauthenticated SCIM traffic is budgeted before the authentication hook emits
35
+ audit and webhook events, closing an unauthenticated write-amplification path.
36
+ - SCIM request budgets are keyed per credential, so one noisy identity provider
37
+ cannot exhaust every other tenant's allowance.
38
+
39
+ ### Changed
40
+
41
+ - `SCIM_BEARER_TOKEN` and `SCIM_ORG_ID` are deprecated. They are adopted once
42
+ into a connection at startup and then ignored, so an upgrade does not break an
43
+ existing identity provider. Adoption is one-time in any state, so a restart
44
+ cannot resurrect a revoked credential.
45
+ - Deprovisioning a single-tenant user now removes the membership as well as
46
+ deactivating the account. Deprovisioning a shared user removes only the
47
+ membership, and a follow-up `DELETE` returns `404`.
48
+ - `POST /scim/v2/Users` is create-or-update; profile fields for an existing
49
+ member are applied rather than dropped.
50
+ - A user removed from an organization can be re-provisioned. Previously the
51
+ global email lookup found the inactive row and returned `409` forever.
52
+ - Rotating a credential revokes the previous token immediately
53
+ (`SCIM_ROTATION_GRACE_SECONDS` defaults to `0`). A grace window is now an
54
+ explicit opt-in and is not a revocation mechanism.
55
+ - Groups are real organization-scoped records. The synthetic role-bucket
56
+ projection (`<orgId>:<role>` ids) is removed.
57
+ - Malformed path ids return a SCIM `404` instead of surfacing a driver error, and
58
+ validation and internal failures return SCIM `Error` objects.
59
+
60
+ ### Added
61
+
62
+ - `scim_connections` with rotation, revocation, expiry, and a token hint.
63
+ - `scim_groups` and `scim_group_members`, organization-scoped throughout.
64
+ - `PATCH /scim/v2/Users/:userId` and `POST /scim/v2/Users/.search`.
65
+ - Group create, replace, patch, delete, and member management endpoints.
66
+ - `filter`, `startIndex`, and `count` on list endpoints; unsupported filters are
67
+ rejected rather than silently ignored.
68
+ - `GET /scim/v2/ServiceProviderConfig` and `GET /scim/v2/ResourceTypes`.
69
+ - Owner-only admin API for creating, listing, rotating, and revoking SCIM
70
+ connections, with a dashboard UI for the same.
71
+ - `findByIdInOrg`, `updateInOrg`, `listOrgIdsForUser`, and `removeFromOrg`
72
+ repository methods for organization-scoped user access.
73
+ - Audit events `scim_connection_created`, `scim_connection_rotated`,
74
+ `scim_connection_revoked`, `scim_access_denied`, `scim_authentication_failed`,
75
+ and the `scim_group_*` group events.
76
+ - `docs/MIGRATION-1.9.md`.
77
+
78
+ ## [1.8.0] - 2026-09-25
79
+
80
+ ### Security
81
+
82
+ MFA was advisory in 1.7.x. A user with TOTP enabled could sign in with only a
83
+ password, and when a code was supplied it was verified *after* the access token,
84
+ refresh token, and session had already been created. 1.8.0 makes the second
85
+ factor mandatory.
86
+
87
+ - Password authentication now stops at `requires_mfa` for MFA-enabled accounts.
88
+ No access token, refresh token, or session row is created at that stage.
89
+ - New `POST /auth/mfa/verify` completes the transition. The challenge is opaque,
90
+ stored only as a hash, short-lived, single-use, and bounded by an attempt
91
+ budget enforced in the database.
92
+ - Token issuance is guarded at a single chokepoint. A token cannot be minted for
93
+ an MFA-enabled user without a recorded factor, so no login path bypasses MFA by
94
+ omission.
95
+ - TOTP verification uses the user's own decrypted secret. Each time-step is
96
+ accepted exactly once, so a captured code is rejected even against a freshly
97
+ issued challenge.
98
+ - Enabling MFA revokes every existing refresh token and session for the account.
99
+ Sessions record how MFA was satisfied, and refresh rotation refuses sessions
100
+ with no recorded factor.
101
+ - Backup codes carry 80 bits of entropy, are stored as a keyed (peppered) hash,
102
+ expire after 90 days, and are consumed by a conditional update so concurrent
103
+ use has exactly one winner.
104
+ - TOTP secrets are written with AES-256-GCM. Values written by earlier versions
105
+ used AES-256-CBC and remain readable.
106
+
107
+ ### Changed
108
+
109
+ - `POST /auth/login` and `POST /auth/token-login` return `401` with
110
+ `code: "MFA_REQUIRED"` and a challenge when MFA is required. See
111
+ [MIGRATION-1.8.md](docs/MIGRATION-1.8.md).
112
+ - The undocumented `totp_code` field on the login endpoints is removed and
113
+ ignored.
114
+ - `POST /auth/totp/backup` now regenerates backup codes and requires a current
115
+ TOTP code. `POST /auth/totp/backup/verify` consumes a backup code.
116
+ - `POST /auth/totp/verify` additionally reports `sessionsRevoked`.
117
+ - WebAuthn assertions satisfy MFA on their own. Magic links refuse to downgrade a
118
+ TOTP-protected account, and SAML, enterprise OIDC, federation, and OAuth2
119
+ report a typed `mfa_required` error.
120
+ - OAuth2 authorization codes carry the MFA factor of the session that approved
121
+ them, so the token exchange cannot launder an unverified login.
122
+ - Access tokens for MFA sessions carry `mfa_verified`, `mfa_factor`, and `amr`.
123
+ - Factor management requires step-up: `/auth/totp/enroll`, `/auth/totp/verify`,
124
+ `/auth/totp/backup`, `/auth/totp/disable`, and passkey registration for a
125
+ TOTP-protected account all require the account password in addition to the
126
+ session.
127
+ - A passkey registered after TOTP was enabled is treated as a single factor and
128
+ cannot be used to sign in on its own.
129
+ - Disabling TOTP deletes its backup codes.
130
+ - Failed MFA factor attempts count toward the account lockout.
131
+ - `SDK.authentication.login()` returns a discriminated union; `completeMfa()` is
132
+ new.
133
+
134
+ ### Fixed
135
+
136
+ - `/auth/mfa/verify` wrote session cookies under a name derived from the login
137
+ flow instead of the client id, so MFA-completed sessions were not readable by
138
+ the auth plugin and every application on the cookie domain shared one name.
139
+ - The MFA step no longer accepted accounts that are deactivated, under review,
140
+ or locked out, which the password step already refused.
141
+ - Repeated password steps no longer cancel an MFA challenge created moments
142
+ earlier.
143
+ - `MFA_CHALLENGE_TTL_SECONDS`, `MFA_MAX_ATTEMPTS`, and
144
+ `TOTP_BACKUP_CODE_TTL_SECONDS` are validated at startup and fall back to their
145
+ defaults instead of silently breaking every login.
146
+ - The MFA factor copied out of a verified token into the authorization-code
147
+ table is validated against the column's check constraint.
148
+ - SAML now reports `mfa_required` for MFA-protected accounts instead of
149
+ collapsing the failure into a generic validation error.
150
+
151
+ ### Added
152
+
153
+ - `mfa_challenges` table, `MfaChallengeRepository`, and `MfaService`.
154
+ - `MFA_CHALLENGE_TTL_SECONDS`, `MFA_MAX_ATTEMPTS`, and
155
+ `TOTP_BACKUP_CODE_TTL_SECONDS` configuration.
156
+ - Audit events `mfa_challenge_created`, `mfa_challenge_failed`,
157
+ `mfa_challenge_expired`, `mfa_challenge_rejected`, `mfa_verified`,
158
+ `mfa_bypass_blocked`, and `mfa_backup_code_regenerated`.
159
+ - Dedicated rate limits for MFA verification and every TOTP management endpoint.
160
+ - MFA challenge step in the admin dashboard login form.
161
+ - `docs/MIGRATION-1.8.md`.
162
+ - MFA security regression suite (`src/tests/security/mfa.test.ts`).
163
+
164
+ ## [1.7.0] - 2026-09-24
165
+
166
+ ### Added
167
+
168
+ - Dedicated owner-only platform-role endpoint at `PATCH /v1/admin/platform/users/:userId/role`.
169
+ - Centralized platform and organization authorization guards with explicit organization context.
170
+ - Versioned audit events for platform-role, membership, permission, and denied-authorization transitions.
171
+ - Dedicated authorization regression suite covering privilege escalation, tenant isolation, workflow safety, secret disclosure, and audit metadata.
172
+ - RBAC and authorization-boundary documentation.
173
+
174
+ ### Changed
175
+
176
+ - Platform roles are explicitly limited to `owner` and `user`.
177
+ - Organization roles are explicitly limited to `owner`, `admin`, and `member`.
178
+ - Authorization checks now require an explicit `organizationId`.
179
+ - Frontend administration clients use the dedicated platform-role endpoint and safe workflow definitions.
180
+ - SAML metadata lookups require both connection and organization identifiers.
181
+
182
+ ### Fixed
183
+
184
+ - Organization user routes can no longer mutate global users or deactivate shared accounts.
185
+ - Generic profile and in-process identity contracts can no longer carry a platform role.
186
+ - Organization admins cannot promote themselves or other members to organization owner.
187
+ - The sole organization owner cannot be demoted or removed.
188
+ - Tenant workflows now use a closed safe-step allowlist; plugin aliases, arbitrary webhooks, organization creation, and authorization-mutating steps fail closed.
189
+ - Global workflows require platform-owner access, and workflow execution rechecks organization membership.
190
+ - Organization creation always assigns an owner; actorless global deactivation APIs were removed from the organization domain.
191
+ - Last-owner transitions use database row locks to prevent concurrent demotion/removal.
192
+ - Platform-user deactivation now disables login, invalidates existing sessions, revokes refresh tokens and user API keys, and preserves the last active owner invariant.
193
+ - User-management responses redact application secret hashes, OIDC/API-key credentials, configuration values, password hashes, TOTP secrets, and metadata.
194
+ - SAML/OIDC public lookups require an organization context; new OIDC client secrets are encrypted at rest, and legacy plaintext values are re-encrypted on first callback use.
195
+ - OAuth/OIDC client context no longer places an organization claim in a user token unless the user is a member of that application's organization.
196
+ - Failed authorization attempts and role transitions now produce structured audit evidence.
197
+ - SAML schema validation now has a signed-response regression test and audience/destination/recipient checks, alongside one-time transaction claiming and OIDC ID-token/JWKS verification.
198
+ - Enterprise SSO requires an explicit connection/subject identity link and rejects platform-owner tenant login; generic OAuth no longer auto-links by email.
199
+ - SCIM is scoped to `SCIM_ORG_ID`, cannot re-enable quarantined or platform-owner accounts, attributes audits to the SCIM credential, and deactivates rather than deleting users.
200
+ - OIDC endpoint checks cover private, carrier-grade, benchmarking, dotted/hex IPv4-mapped, DNS-pinned, and redirecting targets.
201
+ - Legacy account migration quarantines ambiguous unverified rows instead of activating them.
202
+ - SAML semantic validation and OIDC/JWKS checks are covered by signed-response tests; OAuth2 refresh success and failure emit audit events.
203
+ - Refresh-token rotation and OAuth authorization-code consumption are atomic and client-bound.
204
+ - Legacy unverified accounts are quarantined for explicit review during the deactivation migration.
205
+ - OIDC endpoint configuration blocks private/redirected targets by default; SCIM reflects account deactivation.
206
+ - Added a blocking `oxlint` gate with warnings denied; CI now runs lint separately from typecheck.
207
+ - Pinned safe transitive versions for `@xmldom/xmldom`, `fast-uri`, and `find-my-way`; the High-severity production audit gate now passes.
208
+ - API-key validation uses public user projections and emits `api_key_used` audit events; the compiled OIDC re-encryption helper closes its database pool before exit.
209
+
210
+ ### Security
211
+
212
+ - Critical organization-admin-to-platform-owner escalation paths are closed at HTTP, application, domain, SDK, and repository boundaries.
213
+ - Cross-tenant authorization context is resolved from authenticated database membership rather than client-controlled application context.
214
+ - Workflow definitions that are malformed or contain blocked authorization steps fail closed.
215
+
216
+ ### Breaking Changes
217
+
218
+ - Organization user PATCH/DELETE endpoints no longer mutate global accounts; they return a migration response. Use platform user administration or organization member endpoints.
219
+ - `/v1/authz/check` requests must include `organizationId`.
220
+ - Custom organization role names are no longer accepted; only `owner`, `admin`, and `member` are supported.
221
+ - Public SAML/OIDC initiation and metadata URLs require `organizationId`.
222
+ - Direct authorization SDK calls now require both actor and organization IDs.
223
+ - OIDC connections require a JWKS URI; OAuth2 application-bound refresh requests must provide the bound `client_id` and `client_secret`.
224
+ - SCIM requires both `SCIM_BEARER_TOKEN` and `SCIM_ORG_ID`, and operates only within that organization.
225
+ - Legacy unverified accounts may be marked `account_review_required` and require explicit review.
226
+ - Tenant workflow definitions containing authorization-mutating, plugin, organization-creation, or arbitrary webhook steps are rejected or blocked.
227
+
228
+ ### Migration
229
+
230
+ - Move platform role changes to `PATCH /v1/admin/platform/users/:userId/role`.
231
+ - Use `/v1/admin/organizations/:id/members/:userId` for organization role changes.
232
+ - Remove unsafe workflow steps before deployment.
233
+ - Update SAML/OIDC URLs to include the organization ID.
234
+ - Update authorization-check clients to send the organization ID explicitly.
235
+
236
+ ### Dependencies
237
+
238
+ - No dependency changes in this release. Existing dependency audit findings remain tracked for the planned supply-chain phase.
239
+
240
+ ### Testing
241
+
242
+ - Backend typecheck and build pass.
243
+ - Backend test suite passes with the security regression suite enabled.
244
+ - Frontend production build passes.
245
+
8
246
  ## [1.1.0] - 2026-09-19
9
247
 
10
248
  Security hardening, architecture improvements, and enterprise SSO enhancements.
@@ -112,6 +350,40 @@ Auth & infrastructure upgrades — jose 6, ioredis 6, bullmq 6, simplewebauthn 1
112
350
  - **jose 6 migration** — Replaced `KeyLike` with `CryptoKey` in secrets provider, tokens service, and database/environment secrets providers.
113
351
  - **simplewebauthn 14 migration** — Renamed `AuthenticatorTransportFuture` to `AuthenticatorTransport` in webauthn service.
114
352
 
353
+ ## [1.6.0] - 2026-09-20
354
+
355
+ Frontend upgrades — React 19, Vite 8, Tailwind 4, TypeScript 7.
356
+
357
+ ### Changed
358
+
359
+ - **React** 18.3.1 → 19.3.0
360
+ - **React DOM** 18.3.1 → 19.3.0
361
+ - **Vite** 5.4.21 → 8.3.0
362
+ - **@vitejs/plugin-react** 4.7.0 → 6.1.1
363
+ - **Tailwind CSS** 3.4.19 → 4.3.3 — complete rewrite: config moved from JS to CSS `@theme` directive, PostCSS plugin replaced with `@tailwindcss/vite`.
364
+ - **@simplewebauthn/browser** 13.3.0 → 14.0.0
365
+ - **TypeScript** 5.9.3 → 7.0.2 (frontend)
366
+ - **@types/react** 18.3.31 → 19.0.0
367
+ - **@types/react-dom** 18.3.7 → 19.0.0
368
+
369
+ ### Removed
370
+
371
+ - **autoprefixer** — not needed with Tailwind 4.
372
+ - **postcss** — not needed with Tailwind 4.
373
+ - **tailwindcss-animate** — animations built into Tailwind 4.
374
+
375
+ ### Added
376
+
377
+ - **@tailwindcss/vite** — replaces PostCSS plugin approach.
378
+
379
+ ### Migration notes
380
+
381
+ - `tailwind.config.js` deleted — config now lives in `src/tailwind.css` using `@theme` directive.
382
+ - `postcss.config.js` deleted — Tailwind 4 uses Vite plugin directly.
383
+ - `src/index.css` updated to use `@import "./tailwind.css"` instead of `@tailwind base/components/utilities`.
384
+
385
+ [1.7.0]: https://github.com/Hilbras/Keystone/releases/tag/v1.7.0
386
+ [1.6.0]: https://github.com/Hilbras/Keystone/releases/tag/v1.6.0
115
387
  [1.5.0]: https://github.com/Hilbras/Keystone/releases/tag/v1.5.0
116
388
  [1.4.0]: https://github.com/Hilbras/Keystone/releases/tag/v1.4.0
117
389
  [1.3.0]: https://github.com/Hilbras/Keystone/releases/tag/v1.3.0
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Hilbras Keystone
2
2
 
3
+ **Current version: `1.7.0`**
4
+
3
5
  > A provider-agnostic, API-first identity platform for Hilbras products and third-party applications.
4
6
 
5
7
  Keystone is a **standalone identity platform**, not a wrapper around another identity system. It authenticates users, issues signed tokens, enforces authorization, audits every security decision, and federates identities from any OIDC provider.
@@ -9,17 +11,31 @@ Keystone is a **standalone identity platform**, not a wrapper around another ide
9
11
  ## What Keystone becomes
10
12
 
11
13
  - **Identity Provider (IdP)** — OIDC/OAuth2 provider with JWKS discovery.
12
- - **Authentication Service** — email/password, social login, magic links, WebAuthn/Passkeys, TOTP, SMS OTP.
14
+ - **Authentication Service** — email/password with mandatory MFA enforcement, social login, magic links, WebAuthn/Passkeys, TOTP, SMS OTP.
13
15
  - **Authorization Engine** — RBAC/ABAC permissions with `/v1/authz/check`.
14
16
  - **Token Authority** — short-lived JWT access tokens, rotating refresh tokens, opaque API keys.
15
17
  - **Machine Identity Manager** — scoped, rotatable, auditable service credentials.
16
18
  - **Federation Broker** — delegate login to Google, GitHub, Azure, Okta, Keycloak, Zitadel, or any OIDC provider and issue Keystone tokens.
17
19
  - **Enterprise SSO** — SAML 2.0 and OIDC enterprise connectors with SCIM user provisioning.
18
20
  - **Audit & Compliance** — immutable audit log, event bus, webhooks, and anomaly detection.
19
- - **Workflow Platform** — configurable post-auth workflows (assign roles, create orgs, send email, fire webhooks).
21
+ - **Workflow Platform** — configurable post-auth workflows (organization-scoped notification, email, and webhook steps).
20
22
 
21
23
  ---
22
24
 
25
+ ## What's new in v1.7.0
26
+
27
+ - **Authorization boundary hardening** — platform roles (`owner`/`user`) and organization roles (`owner`/`admin`/`member`) are now separate namespaces.
28
+ - **Dedicated platform-role API** — platform role changes use `PATCH /v1/admin/platform/users/:userId/role` and require a platform owner.
29
+ - **Tenant-safe workflows** — organization workflows can no longer assign global roles or add cross-organization memberships.
30
+ - **Secret-safe user responses** — administrative and organization user responses use a redacted public projection.
31
+ - **Authorization auditing** — role, membership, permission, and denied-authorization events include actor, target, organization, and transition metadata.
32
+
33
+ > **Migration:** organization user PATCH/DELETE endpoints no longer mutate global accounts. Use the platform user administration endpoint for account-wide changes and organization member endpoints for membership roles.
34
+
35
+ ## What's new in v1.6.0
36
+
37
+ - **Frontend overhaul** — React 19, Vite 8, Tailwind 4 (config migrated from JS to CSS `@theme` directive), TypeScript 7. Removed autoprefixer, postcss, tailwindcss-animate in favor of Tailwind 4 built-in features.
38
+
23
39
  ## What's new in v1.5.0
24
40
 
25
41
  - **Auth & infrastructure upgrades** — jose 6, ioredis 6, bullmq 6, @simplewebauthn/server 14, nodemailer 10. Updated KeyLike→CryptoKey for jose 6 and AuthenticatorTransportFuture→AuthenticatorTransport for simplewebauthn 14.
@@ -540,11 +556,13 @@ If Keystone feels slow or uses a lot of memory during development, see [`docs/PE
540
556
  | GET | `/v1/admin/organizations/:id` | Organization details |
541
557
  | POST/GET | `/v1/admin/organizations/:id/applications` | Create / list apps |
542
558
  | PATCH | `/v1/admin/organizations/:id/applications/:appId` | Update app |
543
- | POST/GET | `/v1/admin/organizations/:id/invites` | Invite / list invites |
544
- | GET | `/v1/admin/organizations/:id/members` | List members |
545
- | PATCH/DELETE | `/v1/admin/organizations/:id/members/:userId` | Update / remove member |
546
- | GET | `/v1/admin/organizations/:id/users` | List users in org |
547
- | GET/PATCH/DELETE | `/v1/admin/organizations/:id/users/:userId` | Manage user |
559
+ | POST | `/v1/admin/organizations/:id/invites` | Invite a member with an organization role |
560
+ | GET | `/v1/admin/organizations/:id/members` | List redacted organization members |
561
+ | PATCH/DELETE | `/v1/admin/organizations/:id/members/:userId` | Update/remove an organization membership role |
562
+ | GET | `/v1/admin/organizations/:id/users` | List redacted users in the organization |
563
+ | GET | `/v1/admin/organizations/:id/users/:userId` | Read a redacted organization user |
564
+ | PATCH | `/v1/admin/platform/users/:userId` | Update non-role platform user fields (**owner only**) |
565
+ | PATCH | `/v1/admin/platform/users/:userId/role` | Change a platform role (`owner`/`user`, **owner only**) |
548
566
  | GET | `/v1/admin/permissions` | **Owner only** — list all permissions |
549
567
  | GET/POST/DELETE | `/v1/admin/roles/:role/permissions` | **Owner only** — manage role permissions |
550
568
  | GET/DELETE | `/v1/admin/organizations/:id/api-keys` | Org-scoped API keys |
@@ -577,24 +595,38 @@ If Keystone feels slow or uses a lot of memory during development, see [`docs/PE
577
595
 
578
596
  ### SCIM Provisioning
579
597
 
598
+ Every request is authorized by a per-organization SCIM connection and scoped to
599
+ that organization. Cross-tenant targets return `404`.
600
+
580
601
  | Method | Path | Description |
581
602
  |--------|------|-------------|
582
- | GET | `/scim/v2/Users` | List all users (SCIM) |
583
- | GET | `/scim/v2/Users/:userId` | Get user by ID (SCIM) |
584
- | POST | `/scim/v2/Users` | Create user (SCIM) |
585
- | PUT | `/scim/v2/Users/:userId` | Update user (SCIM) |
586
- | DELETE | `/scim/v2/Users/:userId` | Delete user (SCIM) |
587
- | GET | `/scim/v2/Groups` | List groups (SCIM) |
588
- | GET | `/scim/v2/Groups/:groupId` | Get group by ID (SCIM) |
603
+ | GET | `/scim/v2/Users` | List users (filter, pagination) |
604
+ | GET | `/scim/v2/Users/:userId` | Get user by ID |
605
+ | POST | `/scim/v2/Users` | Provision or update a user |
606
+ | PUT | `/scim/v2/Users/:userId` | Replace user |
607
+ | PATCH | `/scim/v2/Users/:userId` | Partial update |
608
+ | DELETE | `/scim/v2/Users/:userId` | Deprovision user |
609
+ | POST | `/scim/v2/Users/.search` | Search users |
610
+ | GET | `/scim/v2/Groups` | List groups (filter) |
611
+ | GET | `/scim/v2/Groups/:groupId` | Get group by ID |
612
+ | POST/PUT/PATCH/DELETE | `/scim/v2/Groups/:groupId` | Manage groups |
613
+ | GET/POST | `/scim/v2/Groups/:groupId/members` | Manage group members |
614
+ | GET | `/scim/v2/ServiceProviderConfig` | Supported features |
615
+
616
+ Bearer tokens are created, rotated, and revoked per organization under
617
+ `/v1/admin/organizations/:id/scim-connections` (owner-only). The token is shown
618
+ once and stored only as a digest.
589
619
 
590
620
  ### MFA & Security
591
621
 
592
622
  | Method | Path | Description |
593
623
  |--------|------|-------------|
594
- | POST | `/totp/enroll` | Enroll TOTP MFA |
595
- | POST | `/totp/verify` | Verify TOTP code |
624
+ | POST | `/mfa/verify` | Complete a login MFA challenge and receive tokens |
625
+ | POST | `/totp/enroll` | Begin TOTP enrollment |
626
+ | POST | `/totp/verify` | Confirm enrollment; revokes existing sessions |
596
627
  | POST | `/totp/disable` | Disable TOTP MFA |
597
- | POST | `/totp/backup` | Verify backup code |
628
+ | POST | `/totp/backup` | Regenerate backup codes (requires a TOTP code) |
629
+ | POST | `/totp/backup/verify` | Consume a backup code |
598
630
  | POST | `/sms-otp/send` | Send SMS OTP |
599
631
  | POST | `/sms-otp/verify` | Verify SMS OTP |
600
632
  | POST | `/magic-link/send` | Send magic link |
@@ -617,11 +649,11 @@ If Keystone feels slow or uses a lot of memory during development, see [`docs/PE
617
649
 
618
650
  | Method | Path | Description |
619
651
  |--------|------|-------------|
620
- | GET | `/workflows` | List workflows (requires orgId) |
621
- | POST | `/workflows` | Create workflow |
622
- | GET | `/workflows/:id` | Get workflow |
623
- | DELETE | `/workflows/:id` | Delete workflow |
624
- | GET | `/workflows/:id/runs` | List workflow runs |
652
+ | GET | `/v1/admin/workflows?orgId=...` | List organization-scoped workflows |
653
+ | POST | `/v1/admin/workflows` | Create a workflow with safe steps and an `orgId` |
654
+ | GET | `/v1/admin/workflows/:id` | Get a workflow |
655
+ | DELETE | `/v1/admin/workflows/:id` | Delete a workflow |
656
+ | GET | `/v1/admin/workflows/:id/runs` | List workflow runs |
625
657
 
626
658
  ### Discovery
627
659
 
@@ -653,7 +685,7 @@ npx keystone migrate
653
685
  # Validate required configuration
654
686
  npx keystone config:validate
655
687
 
656
- # Create the first platform owner
688
+ # Create a local platform user (use --role owner for a platform owner)
657
689
  npx keystone user:create --email admin@example.com --password 'Str0ngP@ss!' --role owner
658
690
 
659
691
  # Create an organization from the command line
@@ -671,8 +703,10 @@ npx keystone org:create --name "Acme" --owner-email admin@example.com
671
703
  - Every authentication decision is audited.
672
704
  - Cookies use `HttpOnly`, `Secure`, and `SameSite`.
673
705
  - OAuth2 public clients must use PKCE.
674
- - All admin endpoints require owner or role-based authorization.
675
- - All workflow operations require organization membership.
706
+ - Platform roles (`owner`, `user`) are never interchangeable with organization roles (`owner`, `admin`, `member`).
707
+ - Only platform owners can change platform roles; organization member APIs cannot mutate global users.
708
+ - User responses use a redacted public projection and never include password hashes, TOTP secrets, or sensitive metadata.
709
+ - All workflow operations require organization membership and reject authorization-mutating tenant steps.
676
710
  - XML output (SAML metadata) is escaped to prevent injection.
677
711
  - Rate limit nonces use cryptographically secure random bytes.
678
712
  - Internal implementation details are not exposed in API responses.
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from "commander";
3
3
  const program = new Command();
4
- program.name("keystone").description("Hilbras Keystone CLI").version("1.0.0");
4
+ program.name("keystone").description("Hilbras Keystone CLI").version("1.9.0");
5
5
  program
6
6
  .command("init")
7
7
  .description("Create a sample .env file for Keystone")
@@ -48,15 +48,17 @@ program
48
48
  .requiredOption("--password <password>", "User password")
49
49
  .option("--username <username>", "Username")
50
50
  .option("--name <name>", "Display name")
51
- .option("--role <role>", "Role (e.g. owner, admin, member)", "member")
51
+ .option("--role <role>", "Platform role (owner or user)", "user")
52
52
  .action(async (options) => {
53
53
  const { initializeContainer } = await import("./di.js");
54
54
  const { AuthenticationDomainService } = await import("./services/domain/index.js");
55
- const { db } = await import("./db/index.js");
56
- const { users } = await import("./db/schema.js");
57
- const { eq } = await import("drizzle-orm");
55
+ if (options.role !== "owner" && options.role !== "user") {
56
+ console.error("Role must be either owner or user");
57
+ process.exit(1);
58
+ }
59
+ const { MfaService } = await import("./services/mfa.js");
58
60
  const container = initializeContainer();
59
- const authService = new AuthenticationDomainService(container.userRepository, container.applicationRepository);
61
+ const authService = new AuthenticationDomainService(container.userRepository, container.applicationRepository, container.organizationRepository, new MfaService(container.mfaChallengeRepository, container.userRepository));
60
62
  const result = await authService.register({
61
63
  email: options.email,
62
64
  password: options.password,
@@ -68,8 +70,13 @@ program
68
70
  console.error(`Failed to create user: ${result.error.message}`);
69
71
  process.exit(1);
70
72
  }
71
- if (options.role !== "member") {
72
- await db.update(users).set({ role: options.role }).where(eq(users.id, result.data.user.id));
73
+ if (options.role === "owner") {
74
+ await container.userRepository.updateRole(result.data.user.id, "owner");
75
+ const { persistAudit } = await import("./services/audit.js");
76
+ await persistAudit({
77
+ event: "platform_role_changed",
78
+ metadata: { actor: "cli", targetUserId: result.data.user.id, newRole: "owner" },
79
+ });
73
80
  }
74
81
  console.log(`Created user ${result.data.user.id} (${result.data.user.email}) with role ${options.role}`);
75
82
  });
@@ -79,38 +86,29 @@ program
79
86
  .requiredOption("--name <name>", "Organization name")
80
87
  .option("--slug <slug>", "Organization slug")
81
88
  .option("--plan <plan>", "Billing plan", "free")
82
- .option("--owner-email <email>", "Owner email")
89
+ .requiredOption("--owner-email <email>", "Existing platform user email that will own the organization")
83
90
  .action(async (options) => {
84
91
  const { initializeContainer } = await import("./di.js");
85
92
  const { OrganizationDomainService } = await import("./services/domain/index.js");
86
- const { DrizzleUserRepository, DrizzleOrganizationRepository } = await import("./repositories/index.js");
93
+ const { DrizzleUserRepository } = await import("./repositories/index.js");
87
94
  const container = initializeContainer();
88
- const orgService = new OrganizationDomainService(container.organizationRepository, container.applicationRepository, container.userRepository);
95
+ const orgService = new OrganizationDomainService(container.organizationRepository, container.applicationRepository);
96
+ const users = new DrizzleUserRepository();
97
+ const owner = await users.findByEmail(options.ownerEmail);
98
+ if (!owner) {
99
+ console.error(`Owner email ${options.ownerEmail} not found; organization was not created`);
100
+ process.exit(1);
101
+ }
89
102
  const orgResult = await orgService.createOrganization({
90
103
  name: options.name,
91
104
  slug: options.slug,
92
105
  plan: options.plan,
93
- });
106
+ }, owner.id);
94
107
  if (!orgResult.success) {
95
108
  console.error(`Failed to create organization: ${orgResult.error.message}`);
96
109
  process.exit(1);
97
110
  }
98
111
  const org = orgResult.data;
99
- if (options.ownerEmail) {
100
- const users = new DrizzleUserRepository();
101
- const owner = await users.findByEmail(options.ownerEmail);
102
- if (owner) {
103
- const orgs = new DrizzleOrganizationRepository();
104
- await orgs.addMembership({
105
- orgId: org.id,
106
- userId: owner.id,
107
- role: "owner",
108
- });
109
- }
110
- else {
111
- console.warn(`Owner email ${options.ownerEmail} not found; organization created without owner`);
112
- }
113
- }
114
112
  console.log(`Created organization ${org.id} (${org.slug})`);
115
113
  });
116
114
  program
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -15,9 +15,10 @@ export declare const config: {
15
15
  readonly ZITADEL_GOOGLE_IDP_ID: string;
16
16
  readonly ZITADEL_GITHUB_IDP_ID: string;
17
17
  readonly COOKIE_NAME: string;
18
- readonly COOKIE_DOMAIN: string;
18
+ readonly COOKIE_DOMAIN: string | undefined;
19
19
  readonly COOKIE_SECURE: boolean;
20
20
  readonly COOKIE_SAME_SITE: "strict" | "lax" | "none";
21
+ readonly ALLOW_PRIVATE_SSO_ENDPOINTS: boolean;
21
22
  readonly AUTH_API_PUBLIC_URL: string;
22
23
  readonly ACCESS_TOKEN_TTL_SECONDS: number;
23
24
  readonly REFRESH_TOKEN_TTL_SECONDS: number;
@@ -43,6 +44,19 @@ export declare const config: {
43
44
  readonly OAUTH_CODE_TTL_SECONDS: number;
44
45
  readonly TOTP_ISSUER: string;
45
46
  readonly TOTP_ENCRYPTION_KEY: string;
47
+ readonly SCIM_BEARER_TOKEN: string;
48
+ readonly SCIM_ORG_ID: string;
49
+ /** How long a rotated-out SCIM token keeps working. */
50
+ readonly SCIM_ROTATION_GRACE_SECONDS: number;
51
+ /** Rate limit applied to every SCIM request, keyed by credential. */
52
+ readonly SCIM_RATE_LIMIT_MAX: number;
53
+ readonly SCIM_RATE_LIMIT_WINDOW_SECONDS: number;
54
+ /** Budget for unauthenticated SCIM requests, which run before the credential limiter. */
55
+ readonly SCIM_AUTH_FAILURE_MAX: number;
56
+ readonly SCIM_AUTH_FAILURE_WINDOW_SECONDS: number;
57
+ readonly MFA_CHALLENGE_TTL_SECONDS: number;
58
+ readonly MFA_MAX_ATTEMPTS: number;
59
+ readonly TOTP_BACKUP_CODE_TTL_SECONDS: number;
46
60
  readonly EMAIL_PROVIDER: string;
47
61
  readonly EMAIL_FROM: string;
48
62
  readonly SMTP_HOST: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;+BA6BsG,QAAQ,GAAG,KAAK,GAAG,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmExI,CAAC;AAEX,wBAAgB,cAAc,IAAI,MAAM,CAMvC;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AA6DA,eAAO,MAAM,MAAM;aACjB,QAAQ;aACR,IAAI;aACJ,IAAI;aAEJ,YAAY;aACZ,SAAS;aAGT,cAAc;aACd,cAAc;aACd,kBAAkB;aAGlB,yBAAyB;aACzB,6BAA6B;aAC7B,mBAAmB;aAGnB,iBAAiB;aACjB,qBAAqB;aAGrB,qBAAqB;aACrB,qBAAqB;aAErB,WAAW;aACX,aAAa;aACb,aAAa;aACb,gBAAgB,EAAuG,QAAQ,GAAG,KAAK,GAAG,MAAM;aAChJ,2BAA2B;aAE3B,mBAAmB;aACnB,wBAAwB;aACxB,yBAAyB;aAGzB,eAAe;aACf,cAAc;aAGd,uBAAuB;aAGvB,yBAAyB;aAGzB,uBAAuB;aAGvB,gBAAgB;aAGhB,gBAAgB;aAEhB,gBAAgB;aAEhB,gBAAgB;aAEhB,eAAe;aAEf,mBAAmB;aACnB,yBAAyB;aACzB,qBAAqB;aACrB,wBAAwB;aAExB,yBAAyB;aACzB,gCAAgC;aAEhC,kBAAkB;aAIlB,2BAA2B;aAC3B,sBAAsB;aACtB,sBAAsB;aACtB,WAAW;aACX,mBAAmB;aAInB,iBAAiB;aACjB,WAAW;IACX,uDAAuD;aAGvD,2BAA2B;IAC3B,qEAAqE;aACrE,mBAAmB;aACnB,8BAA8B;IAC9B,yFAAyF;aACzF,qBAAqB;aACrB,gCAAgC;aAChC,yBAAyB;aACzB,gBAAgB;aAChB,4BAA4B;aAC5B,cAAc;aACd,UAAU;aACV,SAAS;aACT,SAAS;aACT,SAAS;aACT,SAAS;aACT,WAAW;aACX,gBAAgB;aAChB,eAAe;aACf,cAAc;aACd,YAAY;aACZ,kBAAkB;aAClB,iBAAiB;aACjB,kBAAkB;aAClB,4BAA4B;aAC5B,2BAA2B;aAC3B,iBAAiB;aACjB,oBAAoB;aACpB,sBAAsB;CACd,CAAC;AAEX,wBAAgB,cAAc,IAAI,MAAM,CAMvC;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C"}