@portaidentity/server 1.7.2 → 1.8.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 (487) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/applications/index.d.ts +2 -2
  3. package/dist/applications/index.d.ts.map +1 -1
  4. package/dist/applications/index.js +2 -2
  5. package/dist/applications/index.js.map +1 -1
  6. package/dist/applications/repository.d.ts +49 -4
  7. package/dist/applications/repository.d.ts.map +1 -1
  8. package/dist/applications/repository.js +148 -10
  9. package/dist/applications/repository.js.map +1 -1
  10. package/dist/applications/service.d.ts +35 -17
  11. package/dist/applications/service.d.ts.map +1 -1
  12. package/dist/applications/service.js +144 -35
  13. package/dist/applications/service.js.map +1 -1
  14. package/dist/applications/types.d.ts +1 -1
  15. package/dist/applications/types.d.ts.map +1 -1
  16. package/dist/applications/validators.d.ts +14 -0
  17. package/dist/applications/validators.d.ts.map +1 -0
  18. package/dist/applications/validators.js +14 -0
  19. package/dist/applications/validators.js.map +1 -0
  20. package/dist/auth/effective-branding.d.ts +35 -0
  21. package/dist/auth/effective-branding.d.ts.map +1 -0
  22. package/dist/auth/effective-branding.js +81 -0
  23. package/dist/auth/effective-branding.js.map +1 -0
  24. package/dist/auth/email-service.d.ts +3 -8
  25. package/dist/auth/email-service.d.ts.map +1 -1
  26. package/dist/auth/email-service.js +22 -30
  27. package/dist/auth/email-service.js.map +1 -1
  28. package/dist/auth/i18n.d.ts +5 -0
  29. package/dist/auth/i18n.d.ts.map +1 -1
  30. package/dist/auth/i18n.js +6 -5
  31. package/dist/auth/i18n.js.map +1 -1
  32. package/dist/auth/rate-limiter.d.ts +6 -10
  33. package/dist/auth/rate-limiter.d.ts.map +1 -1
  34. package/dist/auth/rate-limiter.js +12 -16
  35. package/dist/auth/rate-limiter.js.map +1 -1
  36. package/dist/auth/recovery-job-processor.d.ts.map +1 -1
  37. package/dist/auth/recovery-job-processor.js +1 -1
  38. package/dist/auth/recovery-job-processor.js.map +1 -1
  39. package/dist/auth/template-engine.d.ts +3 -1
  40. package/dist/auth/template-engine.d.ts.map +1 -1
  41. package/dist/auth/template-engine.js +1 -1
  42. package/dist/auth/template-engine.js.map +1 -1
  43. package/dist/cli/commands/init.d.ts +1 -1
  44. package/dist/cli/commands/init.d.ts.map +1 -1
  45. package/dist/cli/commands/init.js +12 -12
  46. package/dist/cli/commands/init.js.map +1 -1
  47. package/dist/cli/error-handler.d.ts +3 -2
  48. package/dist/cli/error-handler.d.ts.map +1 -1
  49. package/dist/cli/error-handler.js +9 -2
  50. package/dist/cli/error-handler.js.map +1 -1
  51. package/dist/cli/index.d.ts +1 -1
  52. package/dist/cli/index.d.ts.map +1 -1
  53. package/dist/cli/index.js +1 -1
  54. package/dist/cli/index.js.map +1 -1
  55. package/dist/clients/index.d.ts +1 -1
  56. package/dist/clients/index.js +1 -1
  57. package/dist/clients/repository.d.ts +18 -0
  58. package/dist/clients/repository.d.ts.map +1 -1
  59. package/dist/clients/repository.js +36 -0
  60. package/dist/clients/repository.js.map +1 -1
  61. package/dist/clients/secret-repository.d.ts +35 -8
  62. package/dist/clients/secret-repository.d.ts.map +1 -1
  63. package/dist/clients/secret-repository.js +69 -16
  64. package/dist/clients/secret-repository.js.map +1 -1
  65. package/dist/clients/secret-service.d.ts +5 -9
  66. package/dist/clients/secret-service.d.ts.map +1 -1
  67. package/dist/clients/secret-service.js +13 -22
  68. package/dist/clients/secret-service.js.map +1 -1
  69. package/dist/clients/service.d.ts +10 -13
  70. package/dist/clients/service.d.ts.map +1 -1
  71. package/dist/clients/service.js +112 -40
  72. package/dist/clients/service.js.map +1 -1
  73. package/dist/clients/types.d.ts +1 -1
  74. package/dist/clients/types.d.ts.map +1 -1
  75. package/dist/clients/validators.d.ts +83 -1
  76. package/dist/clients/validators.d.ts.map +1 -1
  77. package/dist/clients/validators.js +110 -0
  78. package/dist/clients/validators.js.map +1 -1
  79. package/dist/config/index.d.ts +1 -0
  80. package/dist/config/index.d.ts.map +1 -1
  81. package/dist/config/index.js +1 -0
  82. package/dist/config/index.js.map +1 -1
  83. package/dist/config/schema.d.ts +1 -0
  84. package/dist/config/schema.d.ts.map +1 -1
  85. package/dist/config/schema.js +23 -1
  86. package/dist/config/schema.js.map +1 -1
  87. package/dist/custom-claims/repository.d.ts +14 -9
  88. package/dist/custom-claims/repository.d.ts.map +1 -1
  89. package/dist/custom-claims/repository.js +38 -11
  90. package/dist/custom-claims/repository.js.map +1 -1
  91. package/dist/custom-claims/service.d.ts +11 -6
  92. package/dist/custom-claims/service.d.ts.map +1 -1
  93. package/dist/custom-claims/service.js +43 -20
  94. package/dist/custom-claims/service.js.map +1 -1
  95. package/dist/index.js +8 -2
  96. package/dist/index.js.map +1 -1
  97. package/dist/lib/admin-permissions.d.ts +12 -7
  98. package/dist/lib/admin-permissions.d.ts.map +1 -1
  99. package/dist/lib/admin-permissions.js +26 -16
  100. package/dist/lib/admin-permissions.js.map +1 -1
  101. package/dist/lib/audit-log.d.ts +2 -2
  102. package/dist/lib/audit-log.d.ts.map +1 -1
  103. package/dist/lib/audit-log.js +1 -1
  104. package/dist/lib/audit-log.js.map +1 -1
  105. package/dist/lib/authority-revocation.d.ts +18 -0
  106. package/dist/lib/authority-revocation.d.ts.map +1 -0
  107. package/dist/lib/authority-revocation.js +37 -0
  108. package/dist/lib/authority-revocation.js.map +1 -0
  109. package/dist/lib/branding-assets.d.ts +35 -5
  110. package/dist/lib/branding-assets.d.ts.map +1 -1
  111. package/dist/lib/branding-assets.js +33 -26
  112. package/dist/lib/branding-assets.js.map +1 -1
  113. package/dist/lib/bulk-operations.d.ts +1 -1
  114. package/dist/lib/bulk-operations.d.ts.map +1 -1
  115. package/dist/lib/bulk-operations.js +1 -13
  116. package/dist/lib/bulk-operations.js.map +1 -1
  117. package/dist/lib/cursor.d.ts +2 -0
  118. package/dist/lib/cursor.d.ts.map +1 -1
  119. package/dist/lib/cursor.js +2 -7
  120. package/dist/lib/cursor.js.map +1 -1
  121. package/dist/lib/database.d.ts.map +1 -1
  122. package/dist/lib/database.js +5 -0
  123. package/dist/lib/database.js.map +1 -1
  124. package/dist/lib/deletion-cleanup.d.ts +43 -0
  125. package/dist/lib/deletion-cleanup.d.ts.map +1 -0
  126. package/dist/lib/deletion-cleanup.js +207 -0
  127. package/dist/lib/deletion-cleanup.js.map +1 -0
  128. package/dist/lib/image-validator.d.ts +3 -1
  129. package/dist/lib/image-validator.d.ts.map +1 -1
  130. package/dist/lib/image-validator.js +32 -19
  131. package/dist/lib/image-validator.js.map +1 -1
  132. package/dist/lib/log-format.d.ts +20 -0
  133. package/dist/lib/log-format.d.ts.map +1 -0
  134. package/dist/lib/log-format.js +22 -0
  135. package/dist/lib/log-format.js.map +1 -0
  136. package/dist/lib/logger.d.ts +3 -1
  137. package/dist/lib/logger.d.ts.map +1 -1
  138. package/dist/lib/logger.js +21 -4
  139. package/dist/lib/logger.js.map +1 -1
  140. package/dist/lib/redis.d.ts.map +1 -1
  141. package/dist/lib/redis.js +3 -0
  142. package/dist/lib/redis.js.map +1 -1
  143. package/dist/lib/session-tracking.d.ts +73 -11
  144. package/dist/lib/session-tracking.d.ts.map +1 -1
  145. package/dist/lib/session-tracking.js +76 -32
  146. package/dist/lib/session-tracking.js.map +1 -1
  147. package/dist/lib/signing-key-crypto.d.ts.map +1 -1
  148. package/dist/lib/signing-key-crypto.js +4 -5
  149. package/dist/lib/signing-key-crypto.js.map +1 -1
  150. package/dist/lib/signing-keys.d.ts +3 -4
  151. package/dist/lib/signing-keys.d.ts.map +1 -1
  152. package/dist/lib/signing-keys.js +66 -41
  153. package/dist/lib/signing-keys.js.map +1 -1
  154. package/dist/lib/super-admin-protection.d.ts +5 -5
  155. package/dist/lib/super-admin-protection.d.ts.map +1 -1
  156. package/dist/lib/super-admin-protection.js +6 -9
  157. package/dist/lib/super-admin-protection.js.map +1 -1
  158. package/dist/lib/system-config-catalog.d.ts +268 -0
  159. package/dist/lib/system-config-catalog.d.ts.map +1 -0
  160. package/dist/lib/system-config-catalog.js +90 -0
  161. package/dist/lib/system-config-catalog.js.map +1 -0
  162. package/dist/lib/system-config.d.ts +30 -33
  163. package/dist/lib/system-config.d.ts.map +1 -1
  164. package/dist/lib/system-config.js +78 -93
  165. package/dist/lib/system-config.js.map +1 -1
  166. package/dist/lib/with-timeout.d.ts +32 -0
  167. package/dist/lib/with-timeout.d.ts.map +1 -0
  168. package/dist/lib/with-timeout.js +45 -0
  169. package/dist/lib/with-timeout.js.map +1 -0
  170. package/dist/middleware/admin-auth.d.ts +6 -5
  171. package/dist/middleware/admin-auth.d.ts.map +1 -1
  172. package/dist/middleware/admin-auth.js +30 -20
  173. package/dist/middleware/admin-auth.js.map +1 -1
  174. package/dist/middleware/admin-cors.d.ts +3 -3
  175. package/dist/middleware/admin-cors.js +3 -3
  176. package/dist/middleware/admin-mutation-audit.d.ts +3 -2
  177. package/dist/middleware/admin-mutation-audit.d.ts.map +1 -1
  178. package/dist/middleware/admin-mutation-audit.js +12 -5
  179. package/dist/middleware/admin-mutation-audit.js.map +1 -1
  180. package/dist/middleware/admin-rate-limiter.d.ts +7 -8
  181. package/dist/middleware/admin-rate-limiter.d.ts.map +1 -1
  182. package/dist/middleware/admin-rate-limiter.js +7 -8
  183. package/dist/middleware/admin-rate-limiter.js.map +1 -1
  184. package/dist/middleware/client-secret-hash.d.ts +10 -29
  185. package/dist/middleware/client-secret-hash.d.ts.map +1 -1
  186. package/dist/middleware/client-secret-hash.js +161 -59
  187. package/dist/middleware/client-secret-hash.js.map +1 -1
  188. package/dist/middleware/health.d.ts +17 -0
  189. package/dist/middleware/health.d.ts.map +1 -1
  190. package/dist/middleware/health.js +25 -21
  191. package/dist/middleware/health.js.map +1 -1
  192. package/dist/middleware/ready.d.ts.map +1 -1
  193. package/dist/middleware/ready.js +1 -12
  194. package/dist/middleware/ready.js.map +1 -1
  195. package/dist/middleware/require-existing-organization.d.ts +18 -0
  196. package/dist/middleware/require-existing-organization.d.ts.map +1 -0
  197. package/dist/middleware/require-existing-organization.js +38 -0
  198. package/dist/middleware/require-existing-organization.js.map +1 -0
  199. package/dist/middleware/require-permission.d.ts.map +1 -1
  200. package/dist/middleware/require-permission.js +35 -1
  201. package/dist/middleware/require-permission.js.map +1 -1
  202. package/dist/middleware/require-user-organization.d.ts.map +1 -1
  203. package/dist/middleware/require-user-organization.js +4 -2
  204. package/dist/middleware/require-user-organization.js.map +1 -1
  205. package/dist/middleware/security-headers.d.ts +18 -0
  206. package/dist/middleware/security-headers.d.ts.map +1 -1
  207. package/dist/middleware/security-headers.js +32 -1
  208. package/dist/middleware/security-headers.js.map +1 -1
  209. package/dist/middleware/tenant-resolver.d.ts +1 -2
  210. package/dist/middleware/tenant-resolver.d.ts.map +1 -1
  211. package/dist/middleware/tenant-resolver.js +1 -5
  212. package/dist/middleware/tenant-resolver.js.map +1 -1
  213. package/dist/middleware/token-rate-limiter.d.ts +37 -16
  214. package/dist/middleware/token-rate-limiter.d.ts.map +1 -1
  215. package/dist/middleware/token-rate-limiter.js +126 -54
  216. package/dist/middleware/token-rate-limiter.js.map +1 -1
  217. package/dist/oidc/account-finder.d.ts +5 -5
  218. package/dist/oidc/account-finder.d.ts.map +1 -1
  219. package/dist/oidc/account-finder.js +31 -23
  220. package/dist/oidc/account-finder.js.map +1 -1
  221. package/dist/oidc/adapter-factory.d.ts.map +1 -1
  222. package/dist/oidc/adapter-factory.js +83 -3
  223. package/dist/oidc/adapter-factory.js.map +1 -1
  224. package/dist/oidc/configuration.d.ts +3 -8
  225. package/dist/oidc/configuration.d.ts.map +1 -1
  226. package/dist/oidc/configuration.js +64 -50
  227. package/dist/oidc/configuration.js.map +1 -1
  228. package/dist/oidc/provider.d.ts.map +1 -1
  229. package/dist/oidc/provider.js +7 -0
  230. package/dist/oidc/provider.js.map +1 -1
  231. package/dist/oidc/redis-adapter.d.ts +2 -3
  232. package/dist/oidc/redis-adapter.d.ts.map +1 -1
  233. package/dist/oidc/redis-adapter.js +54 -46
  234. package/dist/oidc/redis-adapter.js.map +1 -1
  235. package/dist/organizations/branding-url.d.ts +17 -0
  236. package/dist/organizations/branding-url.d.ts.map +1 -0
  237. package/dist/organizations/branding-url.js +38 -0
  238. package/dist/organizations/branding-url.js.map +1 -0
  239. package/dist/organizations/index.d.ts +2 -2
  240. package/dist/organizations/index.d.ts.map +1 -1
  241. package/dist/organizations/index.js +1 -1
  242. package/dist/organizations/index.js.map +1 -1
  243. package/dist/organizations/repository.d.ts +22 -32
  244. package/dist/organizations/repository.d.ts.map +1 -1
  245. package/dist/organizations/repository.js +64 -45
  246. package/dist/organizations/repository.js.map +1 -1
  247. package/dist/organizations/service.d.ts +14 -46
  248. package/dist/organizations/service.d.ts.map +1 -1
  249. package/dist/organizations/service.js +60 -112
  250. package/dist/organizations/service.js.map +1 -1
  251. package/dist/organizations/types.d.ts +1 -15
  252. package/dist/organizations/types.d.ts.map +1 -1
  253. package/dist/organizations/validators.d.ts +41 -0
  254. package/dist/organizations/validators.d.ts.map +1 -0
  255. package/dist/organizations/validators.js +48 -0
  256. package/dist/organizations/validators.js.map +1 -0
  257. package/dist/portability/apply.d.ts +15 -0
  258. package/dist/portability/apply.d.ts.map +1 -0
  259. package/dist/portability/apply.js +274 -0
  260. package/dist/portability/apply.js.map +1 -0
  261. package/dist/portability/authorization.d.ts +30 -0
  262. package/dist/portability/authorization.d.ts.map +1 -0
  263. package/dist/portability/authorization.js +130 -0
  264. package/dist/portability/authorization.js.map +1 -0
  265. package/dist/portability/cleanup.d.ts +29 -0
  266. package/dist/portability/cleanup.d.ts.map +1 -0
  267. package/dist/portability/cleanup.js +167 -0
  268. package/dist/portability/cleanup.js.map +1 -0
  269. package/dist/portability/export.d.ts +18 -0
  270. package/dist/portability/export.d.ts.map +1 -0
  271. package/dist/portability/export.js +125 -0
  272. package/dist/portability/export.js.map +1 -0
  273. package/dist/portability/import-repository.d.ts +204 -0
  274. package/dist/portability/import-repository.d.ts.map +1 -0
  275. package/dist/portability/import-repository.js +347 -0
  276. package/dist/portability/import-repository.js.map +1 -0
  277. package/dist/portability/import-user-client-writers.d.ts +40 -0
  278. package/dist/portability/import-user-client-writers.d.ts.map +1 -0
  279. package/dist/portability/import-user-client-writers.js +168 -0
  280. package/dist/portability/import-user-client-writers.js.map +1 -0
  281. package/dist/portability/index.d.ts +8 -0
  282. package/dist/portability/index.d.ts.map +1 -0
  283. package/dist/portability/index.js +8 -0
  284. package/dist/portability/index.js.map +1 -0
  285. package/dist/portability/plan-support.d.ts +137 -0
  286. package/dist/portability/plan-support.d.ts.map +1 -0
  287. package/dist/portability/plan-support.js +336 -0
  288. package/dist/portability/plan-support.js.map +1 -0
  289. package/dist/portability/plan.d.ts +34 -0
  290. package/dist/portability/plan.d.ts.map +1 -0
  291. package/dist/portability/plan.js +450 -0
  292. package/dist/portability/plan.js.map +1 -0
  293. package/dist/portability/repository.d.ts +95 -0
  294. package/dist/portability/repository.d.ts.map +1 -0
  295. package/dist/portability/repository.js +388 -0
  296. package/dist/portability/repository.js.map +1 -0
  297. package/dist/portability/schema.d.ts +589 -0
  298. package/dist/portability/schema.d.ts.map +1 -0
  299. package/dist/portability/schema.js +458 -0
  300. package/dist/portability/schema.js.map +1 -0
  301. package/dist/portability/types.d.ts +381 -0
  302. package/dist/portability/types.d.ts.map +1 -0
  303. package/dist/portability/types.js +19 -0
  304. package/dist/portability/types.js.map +1 -0
  305. package/dist/rbac/errors.d.ts +4 -0
  306. package/dist/rbac/errors.d.ts.map +1 -1
  307. package/dist/rbac/errors.js +7 -0
  308. package/dist/rbac/errors.js.map +1 -1
  309. package/dist/rbac/index.d.ts +3 -3
  310. package/dist/rbac/index.d.ts.map +1 -1
  311. package/dist/rbac/index.js +3 -3
  312. package/dist/rbac/index.js.map +1 -1
  313. package/dist/rbac/mapping-repository.d.ts +84 -9
  314. package/dist/rbac/mapping-repository.d.ts.map +1 -1
  315. package/dist/rbac/mapping-repository.js +222 -55
  316. package/dist/rbac/mapping-repository.js.map +1 -1
  317. package/dist/rbac/permission-repository.d.ts +36 -19
  318. package/dist/rbac/permission-repository.d.ts.map +1 -1
  319. package/dist/rbac/permission-repository.js +93 -35
  320. package/dist/rbac/permission-repository.js.map +1 -1
  321. package/dist/rbac/permission-service.d.ts +18 -19
  322. package/dist/rbac/permission-service.d.ts.map +1 -1
  323. package/dist/rbac/permission-service.js +100 -57
  324. package/dist/rbac/permission-service.js.map +1 -1
  325. package/dist/rbac/role-repository.d.ts +29 -24
  326. package/dist/rbac/role-repository.d.ts.map +1 -1
  327. package/dist/rbac/role-repository.js +66 -43
  328. package/dist/rbac/role-repository.js.map +1 -1
  329. package/dist/rbac/role-service.d.ts +35 -32
  330. package/dist/rbac/role-service.d.ts.map +1 -1
  331. package/dist/rbac/role-service.js +210 -96
  332. package/dist/rbac/role-service.js.map +1 -1
  333. package/dist/rbac/slugs.d.ts +16 -27
  334. package/dist/rbac/slugs.d.ts.map +1 -1
  335. package/dist/rbac/slugs.js +36 -59
  336. package/dist/rbac/slugs.js.map +1 -1
  337. package/dist/rbac/types.d.ts +2 -4
  338. package/dist/rbac/types.d.ts.map +1 -1
  339. package/dist/rbac/types.js.map +1 -1
  340. package/dist/rbac/user-role-service.d.ts +23 -24
  341. package/dist/rbac/user-role-service.d.ts.map +1 -1
  342. package/dist/rbac/user-role-service.js +117 -61
  343. package/dist/rbac/user-role-service.js.map +1 -1
  344. package/dist/routes/applications.d.ts +4 -2
  345. package/dist/routes/applications.d.ts.map +1 -1
  346. package/dist/routes/applications.js +57 -19
  347. package/dist/routes/applications.js.map +1 -1
  348. package/dist/routes/audit.js +1 -1
  349. package/dist/routes/audit.js.map +1 -1
  350. package/dist/routes/branding.d.ts +3 -3
  351. package/dist/routes/branding.d.ts.map +1 -1
  352. package/dist/routes/branding.js +44 -16
  353. package/dist/routes/branding.js.map +1 -1
  354. package/dist/routes/bulk.d.ts +0 -5
  355. package/dist/routes/bulk.d.ts.map +1 -1
  356. package/dist/routes/bulk.js +3 -5
  357. package/dist/routes/bulk.js.map +1 -1
  358. package/dist/routes/clients.d.ts +4 -4
  359. package/dist/routes/clients.d.ts.map +1 -1
  360. package/dist/routes/clients.js +111 -52
  361. package/dist/routes/clients.js.map +1 -1
  362. package/dist/routes/config.d.ts +17 -12
  363. package/dist/routes/config.d.ts.map +1 -1
  364. package/dist/routes/config.js +165 -64
  365. package/dist/routes/config.js.map +1 -1
  366. package/dist/routes/custom-claims.d.ts.map +1 -1
  367. package/dist/routes/custom-claims.js +8 -2
  368. package/dist/routes/custom-claims.js.map +1 -1
  369. package/dist/routes/exports.d.ts +2 -1
  370. package/dist/routes/exports.d.ts.map +1 -1
  371. package/dist/routes/exports.js +57 -1
  372. package/dist/routes/exports.js.map +1 -1
  373. package/dist/routes/imports.d.ts +2 -2
  374. package/dist/routes/imports.d.ts.map +1 -1
  375. package/dist/routes/imports.js +95 -40
  376. package/dist/routes/imports.js.map +1 -1
  377. package/dist/routes/interactions.d.ts.map +1 -1
  378. package/dist/routes/interactions.js +16 -34
  379. package/dist/routes/interactions.js.map +1 -1
  380. package/dist/routes/invitation.d.ts.map +1 -1
  381. package/dist/routes/invitation.js +10 -23
  382. package/dist/routes/invitation.js.map +1 -1
  383. package/dist/routes/keys.d.ts.map +1 -1
  384. package/dist/routes/keys.js +26 -13
  385. package/dist/routes/keys.js.map +1 -1
  386. package/dist/routes/magic-link.d.ts.map +1 -1
  387. package/dist/routes/magic-link.js +5 -17
  388. package/dist/routes/magic-link.js.map +1 -1
  389. package/dist/routes/organizations.d.ts +1 -2
  390. package/dist/routes/organizations.d.ts.map +1 -1
  391. package/dist/routes/organizations.js +43 -104
  392. package/dist/routes/organizations.js.map +1 -1
  393. package/dist/routes/password-reset.d.ts.map +1 -1
  394. package/dist/routes/password-reset.js +13 -35
  395. package/dist/routes/password-reset.js.map +1 -1
  396. package/dist/routes/permissions.d.ts +1 -1
  397. package/dist/routes/permissions.d.ts.map +1 -1
  398. package/dist/routes/permissions.js +58 -17
  399. package/dist/routes/permissions.js.map +1 -1
  400. package/dist/routes/public-branding.d.ts +16 -0
  401. package/dist/routes/public-branding.d.ts.map +1 -0
  402. package/dist/routes/public-branding.js +52 -0
  403. package/dist/routes/public-branding.js.map +1 -0
  404. package/dist/routes/roles.d.ts +1 -1
  405. package/dist/routes/roles.d.ts.map +1 -1
  406. package/dist/routes/roles.js +63 -21
  407. package/dist/routes/roles.js.map +1 -1
  408. package/dist/routes/sessions.d.ts.map +1 -1
  409. package/dist/routes/sessions.js +23 -12
  410. package/dist/routes/sessions.js.map +1 -1
  411. package/dist/routes/two-factor.d.ts.map +1 -1
  412. package/dist/routes/two-factor.js +91 -38
  413. package/dist/routes/two-factor.js.map +1 -1
  414. package/dist/routes/user-roles.d.ts.map +1 -1
  415. package/dist/routes/user-roles.js +56 -9
  416. package/dist/routes/user-roles.js.map +1 -1
  417. package/dist/routes/users.d.ts +4 -8
  418. package/dist/routes/users.d.ts.map +1 -1
  419. package/dist/routes/users.js +108 -265
  420. package/dist/routes/users.js.map +1 -1
  421. package/dist/server.d.ts.map +1 -1
  422. package/dist/server.js +53 -37
  423. package/dist/server.js.map +1 -1
  424. package/dist/two-factor/errors.d.ts +9 -0
  425. package/dist/two-factor/errors.d.ts.map +1 -1
  426. package/dist/two-factor/errors.js +12 -0
  427. package/dist/two-factor/errors.js.map +1 -1
  428. package/dist/two-factor/index.d.ts +5 -4
  429. package/dist/two-factor/index.d.ts.map +1 -1
  430. package/dist/two-factor/index.js +4 -4
  431. package/dist/two-factor/index.js.map +1 -1
  432. package/dist/two-factor/repository.d.ts +17 -6
  433. package/dist/two-factor/repository.d.ts.map +1 -1
  434. package/dist/two-factor/repository.js +37 -9
  435. package/dist/two-factor/repository.js.map +1 -1
  436. package/dist/two-factor/service.d.ts.map +1 -1
  437. package/dist/two-factor/service.js +26 -19
  438. package/dist/two-factor/service.js.map +1 -1
  439. package/dist/two-factor/totp.d.ts +13 -2
  440. package/dist/two-factor/totp.d.ts.map +1 -1
  441. package/dist/two-factor/totp.js +20 -7
  442. package/dist/two-factor/totp.js.map +1 -1
  443. package/dist/two-factor/types.d.ts +3 -0
  444. package/dist/two-factor/types.d.ts.map +1 -1
  445. package/dist/two-factor/types.js +5 -0
  446. package/dist/two-factor/types.js.map +1 -1
  447. package/dist/users/gdpr.d.ts +2 -40
  448. package/dist/users/gdpr.d.ts.map +1 -1
  449. package/dist/users/gdpr.js +3 -110
  450. package/dist/users/gdpr.js.map +1 -1
  451. package/dist/users/index.d.ts +5 -4
  452. package/dist/users/index.d.ts.map +1 -1
  453. package/dist/users/index.js +5 -4
  454. package/dist/users/index.js.map +1 -1
  455. package/dist/users/repository.d.ts +49 -3
  456. package/dist/users/repository.d.ts.map +1 -1
  457. package/dist/users/repository.js +169 -18
  458. package/dist/users/repository.js.map +1 -1
  459. package/dist/users/service.d.ts +19 -51
  460. package/dist/users/service.d.ts.map +1 -1
  461. package/dist/users/service.js +72 -122
  462. package/dist/users/service.js.map +1 -1
  463. package/dist/users/types.d.ts +4 -5
  464. package/dist/users/types.d.ts.map +1 -1
  465. package/dist/users/types.js.map +1 -1
  466. package/dist/users/validators.d.ts +28 -0
  467. package/dist/users/validators.d.ts.map +1 -0
  468. package/dist/users/validators.js +25 -0
  469. package/dist/users/validators.js.map +1 -0
  470. package/locales/default/en/errors.json +2 -1
  471. package/migrations/024_application_client_correction.sql +39 -0
  472. package/migrations/025_record_deletion_lifecycle.sql +26 -0
  473. package/migrations/026_simplify_user_lifecycle.sql +33 -0
  474. package/migrations/027_branding_asset_size_limits.sql +19 -0
  475. package/migrations/028_totp_replay_protection.sql +17 -0
  476. package/migrations/029_public_session_identifiers.sql +16 -0
  477. package/migrations/030_global_configuration_catalog.sql +39 -0
  478. package/migrations/031_monotonic_updated_at.sql +28 -0
  479. package/package.json +2 -2
  480. package/dist/lib/data-import-plan.d.ts +0 -50
  481. package/dist/lib/data-import-plan.d.ts.map +0 -1
  482. package/dist/lib/data-import-plan.js +0 -235
  483. package/dist/lib/data-import-plan.js.map +0 -1
  484. package/dist/lib/data-import.d.ts +0 -276
  485. package/dist/lib/data-import.d.ts.map +0 -1
  486. package/dist/lib/data-import.js +0 -1694
  487. package/dist/lib/data-import.js.map +0 -1
@@ -16,8 +16,9 @@
16
16
  * - Cookie signing with rotation support
17
17
  */
18
18
  import { config } from '../config/index.js';
19
- import { HTML_CSP } from '../middleware/security-headers.js';
19
+ import { buildHtmlCsp, HTML_CSP } from '../middleware/security-headers.js';
20
20
  import { renderPage } from '../auth/template-engine.js';
21
+ import { DEFAULT_BRANDING_PRIMARY_COLOR, resolveEffectiveBranding, } from '../auth/effective-branding.js';
21
22
  import { resolveLocale, getTranslationFunction } from '../auth/i18n.js';
22
23
  import { logger } from '../lib/logger.js';
23
24
  import { getUserById } from '../users/service.js';
@@ -36,25 +37,10 @@ export function buildDefaultBranding() {
36
37
  return {
37
38
  logoUrl: null,
38
39
  faviconUrl: null,
39
- primaryColor: '#3B82F6',
40
+ primaryColor: DEFAULT_BRANDING_PRIMARY_COLOR,
40
41
  companyName: '',
41
42
  customCss: null,
42
- };
43
- }
44
- /**
45
- * Build branding context from a resolved organization.
46
- * Maps Organization entity fields to the TemplateContext branding shape.
47
- *
48
- * @param org - The resolved organization
49
- * @returns Branding object for TemplateContext
50
- */
51
- function buildBrandingFromOrg(org) {
52
- return {
53
- logoUrl: org.brandingLogoUrl,
54
- faviconUrl: org.brandingFaviconUrl,
55
- primaryColor: org.brandingPrimaryColor ?? '#3B82F6',
56
- companyName: org.brandingCompanyName ?? org.name,
57
- customCss: org.brandingCustomCss,
43
+ imageSources: [],
58
44
  };
59
45
  }
60
46
  /**
@@ -123,7 +109,7 @@ export async function logoutSourceHook(ctx, form) {
123
109
  try {
124
110
  // Resolve org for branding (best-effort, defaults on failure)
125
111
  const org = await resolveOrgForProviderHook(ctx);
126
- const branding = org ? buildBrandingFromOrg(org) : buildDefaultBranding();
112
+ const branding = org ? await resolveEffectiveBranding(org) : buildDefaultBranding();
127
113
  // Resolve locale and translation function
128
114
  const locale = await resolveLocale(undefined, undefined, org?.defaultLocale ?? '');
129
115
  const t = getTranslationFunction(locale, org?.slug);
@@ -153,7 +139,7 @@ export async function logoutSourceHook(ctx, form) {
153
139
  returnUrl: returnUrl ?? null,
154
140
  });
155
141
  ctx.type = 'text/html';
156
- ctx.set('Content-Security-Policy', HTML_CSP);
142
+ ctx.set('Content-Security-Policy', buildHtmlCsp(branding.imageSources));
157
143
  ctx.body = html;
158
144
  }
159
145
  catch (err) {
@@ -193,14 +179,15 @@ export async function postLogoutSuccessSourceHook(ctx) {
193
179
  orgSlug: '',
194
180
  });
195
181
  ctx.type = 'text/html';
196
- ctx.set('Content-Security-Policy', HTML_CSP);
182
+ ctx.set('Content-Security-Policy', buildHtmlCsp(branding.imageSources));
197
183
  ctx.body = html;
198
184
  }
199
185
  catch (err) {
200
186
  logger.error({ err }, 'Failed to render custom post-logout page');
201
187
  ctx.type = 'text/html';
202
188
  ctx.set('Content-Security-Policy', HTML_CSP);
203
- ctx.body = '<!DOCTYPE html><html><body><h1>Signed out</h1><p>You have been signed out successfully.</p></body></html>';
189
+ ctx.body =
190
+ '<!DOCTYPE html><html><body><h1>Signed out</h1><p>You have been signed out successfully.</p></body></html>';
204
191
  }
205
192
  }
206
193
  /**
@@ -232,7 +219,7 @@ function isSessionNotFoundError(out, error) {
232
219
  *
233
220
  * Resolves the session cookie name from the provider (defaulting to
234
221
  * `_session`) and delegates to the shared, signing-free `clearSessionCookies`
235
- * helper so the middleware and this hook use one tested code path (PF-002).
222
+ * helper so the middleware and this hook use one tested code path.
236
223
  *
237
224
  * @param ctx - oidc-provider's enhanced Koa context
238
225
  */
@@ -240,7 +227,9 @@ function clearProviderSessionCookies(
240
227
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
241
228
  ctx) {
242
229
  const cookieNameFn = ctx?.oidc?.provider?.cookieName;
243
- const sessionCookieName = typeof cookieNameFn === 'function' ? cookieNameFn.call(ctx.oidc.provider, 'session') : '_session';
230
+ const sessionCookieName = typeof cookieNameFn === 'function'
231
+ ? cookieNameFn.call(ctx.oidc.provider, 'session')
232
+ : '_session';
244
233
  clearSessionCookies(ctx, sessionCookieName);
245
234
  }
246
235
  /**
@@ -265,12 +254,12 @@ ctx, out, _error) {
265
254
  try {
266
255
  // Resolve org from client context for branding (best-effort)
267
256
  const org = await resolveOrgForProviderHook(ctx);
268
- const branding = org ? buildBrandingFromOrg(org) : buildDefaultBranding();
257
+ const branding = org ? await resolveEffectiveBranding(org) : buildDefaultBranding();
269
258
  // Resolve locale and translation function
270
259
  const locale = await resolveLocale(undefined, undefined, org?.defaultLocale ?? '');
271
260
  const t = getTranslationFunction(locale, org?.slug);
272
261
  // ---------------------------------------------------------------------
273
- // Graceful SessionNotFound recovery (Bug #1, AR-4).
262
+ // Gracefully recover when the provider cannot resolve its session.
274
263
  //
275
264
  // node-oidc-provider throws `SessionNotFound` during authorize/resume when
276
265
  // the interaction's recorded session uid no longer matches the live session
@@ -290,9 +279,7 @@ ctx, out, _error) {
290
279
  if (isSessionNotFound) {
291
280
  clearProviderSessionCookies(ctx);
292
281
  }
293
- const errorMessage = isSessionNotFound
294
- ? t('errors.session_expired')
295
- : t('errors.generic');
282
+ const errorMessage = isSessionNotFound ? t('errors.session_expired') : t('errors.generic');
296
283
  // SECURITY: Never expose raw error_description to the user — it may
297
284
  // contain internal details. Use generic i18n message instead.
298
285
  // OIDC error codes (e.g., 'invalid_client') are safe standard strings.
@@ -306,7 +293,7 @@ ctx, out, _error) {
306
293
  errorCode: out.error,
307
294
  });
308
295
  ctx.type = 'text/html';
309
- ctx.set('Content-Security-Policy', HTML_CSP);
296
+ ctx.set('Content-Security-Policy', buildHtmlCsp(branding.imageSources));
310
297
  ctx.body = html;
311
298
  }
312
299
  catch (err) {
@@ -333,7 +320,7 @@ ctx, out, _error) {
333
320
  * scopes, and `issueRefreshToken` returns false — so no refresh token is minted.
334
321
  * This is exactly the CLI failure ("no refresh_token available" ~1h later).
335
322
  *
336
- * The upgrade is strictly gated (AR-6 / AR-7): only when the request asked for
323
+ * The upgrade is strictly gated: it applies only when the request asked for
337
324
  * `offline_access`, the client allows the `refresh_token` grant, AND the grant
338
325
  * does not already include `offline_access`. In every other case the grant is
339
326
  * returned unchanged — identical to the provider default — so no other client
@@ -345,15 +332,14 @@ ctx, out, _error) {
345
332
  export async function loadExistingGrant(
346
333
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
347
334
  ctx) {
348
- const grantId = ctx.oidc.result?.consent?.grantId ||
349
- ctx.oidc.session.grantIdFor(ctx.oidc.client.clientId);
335
+ const grantId = ctx.oidc.result?.consent?.grantId || ctx.oidc.session.grantIdFor(ctx.oidc.client.clientId);
350
336
  if (!grantId)
351
337
  return undefined;
352
338
  const grant = await ctx.oidc.provider.Grant.find(grantId);
353
339
  if (!grant)
354
340
  return undefined;
355
- // AR-6/AR-7: upgrade an existing grant to include offline_access when the
356
- // request asked for it, the client allows refresh_token, and it's missing.
341
+ // Upgrade an existing grant only when the request asked for offline_access,
342
+ // the client allows refresh_token, and the scope is missing.
357
343
  const requestedScopes = String(ctx.oidc.params?.scope ?? '')
358
344
  .split(' ')
359
345
  .filter(Boolean);
@@ -432,10 +418,10 @@ export function buildProviderConfiguration(params) {
432
418
  AccessToken: 'opaque',
433
419
  ClientCredentials: 'opaque',
434
420
  },
435
- // PKCE — required for all authorization code flows, S256 only.
436
- // This is a security best practice that prevents authorization code interception.
421
+ // Public authorization-code clients always require PKCE. Confidential clients use their
422
+ // persisted setting, while S256 remains the only accepted challenge method.
437
423
  pkce: {
438
- required: () => true,
424
+ required: (_ctx, client) => client['urn:porta:client_type'] === 'public' || client['urn:porta:require_pkce'] === true,
439
425
  methods: ['S256'],
440
426
  },
441
427
  // Token TTLs from system_config table
@@ -454,10 +440,11 @@ export function buildProviderConfiguration(params) {
454
440
  // This explicit function ensures refresh tokens are issued whenever the client
455
441
  // lists 'refresh_token' in its grant_types AND the auth request included offline_access.
456
442
  issueRefreshToken: async (_ctx, client, code) => {
457
- return client.grantTypeAllowed('refresh_token') && (code.scopes.has('offline_access') ||
458
- // Fallback: also issue for confidential web clients (web + auth method != none)
459
- (client.applicationType === 'web' &&
460
- client.tokenEndpointAuthMethod !== 'none'));
443
+ return (client.grantTypeAllowed('refresh_token') &&
444
+ (code.scopes.has('offline_access') ||
445
+ // Fallback: also issue for confidential web clients (web + auth method != none)
446
+ (client.applicationType === 'web' &&
447
+ client.tokenEndpointAuthMethod !== 'none')));
461
448
  },
462
449
  // Enable refresh token rotation — each refresh generates a new token
463
450
  rotateRefreshToken: true,
@@ -472,14 +459,29 @@ export function buildProviderConfiguration(params) {
472
459
  openid: [
473
460
  'sub',
474
461
  // RBAC claims — always included
475
- 'roles', 'permissions',
462
+ 'roles',
463
+ 'permissions',
476
464
  // Custom ERP claims — always included
477
- 'department', 'employee_id', 'cost_center', 'job_title',
465
+ 'department',
466
+ 'employee_id',
467
+ 'cost_center',
468
+ 'job_title',
478
469
  ],
479
470
  profile: [
480
- 'name', 'given_name', 'family_name', 'middle_name', 'nickname',
481
- 'preferred_username', 'profile', 'picture', 'website',
482
- 'gender', 'birthdate', 'zoneinfo', 'locale', 'updated_at',
471
+ 'name',
472
+ 'given_name',
473
+ 'family_name',
474
+ 'middle_name',
475
+ 'nickname',
476
+ 'preferred_username',
477
+ 'profile',
478
+ 'picture',
479
+ 'website',
480
+ 'gender',
481
+ 'birthdate',
482
+ 'zoneinfo',
483
+ 'locale',
484
+ 'updated_at',
483
485
  ],
484
486
  email: ['email', 'email_verified'],
485
487
  address: ['address'],
@@ -489,7 +491,7 @@ export function buildProviderConfiguration(params) {
489
491
  responseTypes: ['code'],
490
492
  grantTypes: ['authorization_code', 'client_credentials', 'refresh_token'],
491
493
  // Interaction URL — where users are redirected for login/consent.
492
- // Placeholder for RD-03; real login UI implemented in RD-07.
494
+ // The host application owns the concrete login and consent interaction UI.
493
495
  interactions: {
494
496
  url: interactionUrl,
495
497
  },
@@ -502,8 +504,18 @@ export function buildProviderConfiguration(params) {
502
504
  // This is the same check used by the HSTS header in security-headers.ts.
503
505
  cookies: {
504
506
  keys: cookieKeys,
505
- long: { signed: true, httpOnly: true, sameSite: 'lax', secure: config.issuerBaseUrl.startsWith('https://') },
506
- short: { signed: true, httpOnly: true, sameSite: 'lax', secure: config.issuerBaseUrl.startsWith('https://') },
507
+ long: {
508
+ signed: true,
509
+ httpOnly: true,
510
+ sameSite: 'lax',
511
+ secure: config.issuerBaseUrl.startsWith('https://'),
512
+ },
513
+ short: {
514
+ signed: true,
515
+ httpOnly: true,
516
+ sameSite: 'lax',
517
+ secure: config.issuerBaseUrl.startsWith('https://'),
518
+ },
507
519
  },
508
520
  // CORS handler — checks client's allowed_origins
509
521
  clientBasedCORS,
@@ -519,6 +531,8 @@ export function buildProviderConfiguration(params) {
519
531
  'client_name',
520
532
  'urn:porta:allowed_origins',
521
533
  'urn:porta:client_type',
534
+ 'urn:porta:require_pkce',
535
+ 'urn:porta:internal_application_id',
522
536
  // Per-client login method override. Raw value from findForOidc():
523
537
  // null → inherit organization.defaultLoginMethods
524
538
  // string[] → explicit override (subset of ['password','magic_link'])
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/oidc/configuration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/oidc/configuration.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/oidc/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAOzD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,IAAI,EAAE;QAAE,IAAI,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAC7B,GAAG,EAAE,aAAa,CAAC;CACpB,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0CpB"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/oidc/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAOzD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,IAAI,EAAE;QAAE,IAAI,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAC7B,GAAG,EAAE,aAAa,CAAC;CACpB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiDpB"}
@@ -63,6 +63,13 @@ export async function createOidcProvider(params) {
63
63
  // in the Koa router (server.ts strips the /:orgSlug prefix).
64
64
  const provider = new Provider(config.issuerBaseUrl, configuration);
65
65
  registerProtocolSecurityObservers(provider);
66
+ provider.on('server_error', (context) => {
67
+ // oidc-provider owns its internal error response. When a Redis command fails during that
68
+ // request, expose only the correct availability status and retain its generic response body.
69
+ if (getRedis().status !== 'ready') {
70
+ context.status = 503;
71
+ }
72
+ });
66
73
  // Enable proxy mode — required for path-based multi-tenancy so the
67
74
  // provider trusts forwarded headers and handles URL rewriting correctly.
68
75
  provider.proxy = true;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/oidc/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,iCAAiC,EAAE,MAAM,iCAAiC,CAAC;AAEpF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAGxC;IACC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAE7B,kEAAkE;IAClE,MAAM,aAAa,GAAG,0BAA0B,CAAC;QAC/C,GAAG;QACH,IAAI;QACJ,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW;QACX,cAAc,EAAE,oBAAoB,EAAE;QACtC,eAAe,EAAE,QAAQ;QACzB,2BAA2B;QAC3B,oEAAoE;QACpE,0EAA0E;QAC1E,cAAc,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE;YAKnC,MAAM,GAAG,GACN,GAA8B,CAAC,GAAG,IAAK,GAA8B,CAAC,OAAO,EAAE,GAAG,CAAC;YACtF,MAAM,GAAG,GAAG,GAAG,EAAE,kBAAkB,CAAC;YACpC,IAAI,GAAG,EAAE,EAAE,IAAI,WAAW,EAAE,GAAG,EAAE,CAAC;gBAChC,QAAQ,EAAE;qBACP,GAAG,CAAC,mBAAmB,WAAW,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;qBAC7D,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,iCAAiC,CAAC,CAAC,CAAC;YACtF,CAAC;YACD,OAAO,gBAAgB,WAAW,CAAC,GAAG,EAAE,CAAC;QAC3C,CAAC;KACF,CAAC,CAAC;IAEH,wCAAwC;IACxC,sEAAsE;IACtE,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IACnE,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IAE5C,mEAAmE;IACnE,yEAAyE;IACzE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;IAEtB,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/oidc/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,iCAAiC,EAAE,MAAM,iCAAiC,CAAC;AAEpF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAGxC;IACC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAE7B,kEAAkE;IAClE,MAAM,aAAa,GAAG,0BAA0B,CAAC;QAC/C,GAAG;QACH,IAAI;QACJ,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW;QACX,cAAc,EAAE,oBAAoB,EAAE;QACtC,eAAe,EAAE,QAAQ;QACzB,2BAA2B;QAC3B,oEAAoE;QACpE,0EAA0E;QAC1E,cAAc,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE;YAKnC,MAAM,GAAG,GACN,GAA8B,CAAC,GAAG,IAAK,GAA8B,CAAC,OAAO,EAAE,GAAG,CAAC;YACtF,MAAM,GAAG,GAAG,GAAG,EAAE,kBAAkB,CAAC;YACpC,IAAI,GAAG,EAAE,EAAE,IAAI,WAAW,EAAE,GAAG,EAAE,CAAC;gBAChC,QAAQ,EAAE;qBACP,GAAG,CAAC,mBAAmB,WAAW,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;qBAC7D,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,iCAAiC,CAAC,CAAC,CAAC;YACtF,CAAC;YACD,OAAO,gBAAgB,WAAW,CAAC,GAAG,EAAE,CAAC;QAC3C,CAAC;KACF,CAAC,CAAC;IAEH,wCAAwC;IACxC,sEAAsE;IACtE,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IACnE,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE;QACtC,yFAAyF;QACzF,6FAA6F;QAC7F,IAAI,QAAQ,EAAE,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAClC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,mEAAmE;IACnE,yEAAyE;IACzE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;IAEtB,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -91,9 +91,8 @@ export declare class RedisAdapter {
91
91
  /**
92
92
  * Mark an artifact as consumed.
93
93
  *
94
- * Reads the current payload, adds a `consumed` timestamp (epoch seconds),
95
- * and writes it back with the remaining TTL preserved. This is used for
96
- * authorization code replay detection.
94
+ * Atomically adds a `consumed` timestamp while preserving the existing TTL. A missing or already
95
+ * consumed artifact is rejected so concurrent authorization-code requests cannot both succeed.
97
96
  *
98
97
  * @param id - Artifact ID to mark as consumed
99
98
  */
@@ -1 +1 @@
1
- {"version":3,"file":"redis-adapter.d.ts","sourceRoot":"","sources":["../../src/oidc/redis-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,+EAA+E;IAC/E,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IAEvB,YAAY,IAAI,EAAE,MAAM,EAEvB;IAED;;;;OAIG;IACH,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEhC;IAED;;;;OAIG;IACH,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpC;IAED;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9C;IAED;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1C;IAED;;;;;;;;;;OAUG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DlF;IAED;;;;;;;OAOG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAY1D;IAED;;;;;;;;OAQG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAO1E;IAED;;;;;;;;OAQG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAOhE;IAED;;;;;;;;OAQG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBvC;IAED;;;;;;;OAOG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BvC;IAED;;;;;;;;;OASG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBpD;CACF;AAoBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B1E"}
1
+ {"version":3,"file":"redis-adapter.d.ts","sourceRoot":"","sources":["../../src/oidc/redis-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAwB5D;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,+EAA+E;IAC/E,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IAEvB,YAAY,IAAI,EAAE,MAAM,EAEvB;IAED;;;;OAIG;IACH,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEhC;IAED;;;;OAIG;IACH,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpC;IAED;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9C;IAED;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1C;IAED;;;;;;;;;;OAUG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DlF;IAED;;;;;;;OAOG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAmB1D;IAED;;;;;;;;OAQG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAO1E;IAED;;;;;;;;OAQG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAOhE;IAED;;;;;;;OAOG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUvC;IAED;;;;;;;OAOG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BvC;IAED;;;;;;;;;OASG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBpD;CACF;AAoBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC1E"}
@@ -11,9 +11,31 @@
11
11
  * oidc:{type}:user_code:{uc} — User code index → primary ID (device flow)
12
12
  * oidc:{type}:grant:{grantId} — Grant set of primary IDs (for revocation)
13
13
  */
14
+ import { errors } from 'oidc-provider';
14
15
  import { getRedis } from '../lib/redis.js';
15
16
  import { logger } from '../lib/logger.js';
16
- import { upsertSession, revokeSession } from '../lib/session-tracking.js';
17
+ import { getSession, upsertSession, revokeSession } from '../lib/session-tracking.js';
18
+ /**
19
+ * Atomically marks one Redis-backed OIDC artifact as consumed without changing its expiry.
20
+ *
21
+ * A separate read and write permits concurrent requests to consume the same single-use artifact.
22
+ * Redis executes this script as one operation, so only the first request can add `consumed`.
23
+ */
24
+ const CONSUME_UNCONSUMED_ARTIFACT = `
25
+ local payloadJson = redis.call('GET', KEYS[1])
26
+ if not payloadJson then
27
+ return 0
28
+ end
29
+
30
+ local payload = cjson.decode(payloadJson)
31
+ if payload.consumed ~= nil then
32
+ return 0
33
+ end
34
+
35
+ payload.consumed = tonumber(ARGV[1])
36
+ redis.call('SET', KEYS[1], cjson.encode(payload), 'KEEPTTL')
37
+ return 1
38
+ `;
17
39
  /**
18
40
  * Redis adapter implementing the node-oidc-provider storage interface.
19
41
  *
@@ -73,6 +95,19 @@ export class RedisAdapter {
73
95
  async upsert(id, payload, expiresIn) {
74
96
  const redis = getRedis();
75
97
  const mainKey = this.key(id);
98
+ // PostgreSQL is the revocation authority for Session payloads. Persist it
99
+ // before preparing or executing Redis writes so a tracking failure cannot
100
+ // publish a Session that administrative deletion is unable to revoke.
101
+ if (this.name === 'Session') {
102
+ const expiresAt = new Date(Date.now() + expiresIn * 1000);
103
+ await upsertSession({
104
+ sessionId: id,
105
+ userId: typeof payload.accountId === 'string' ? payload.accountId : undefined,
106
+ organizationId: typeof payload.orgId === 'string' ? payload.orgId : undefined,
107
+ grantId: typeof payload.grantId === 'string' ? payload.grantId : undefined,
108
+ expiresAt,
109
+ });
110
+ }
76
111
  // Use pipeline for atomic multi-key operations
77
112
  const pipeline = redis.pipeline();
78
113
  // Store the full payload with TTL
@@ -110,22 +145,9 @@ export class RedisAdapter {
110
145
  pipeline.expire(grantSetKey, expiresIn);
111
146
  }
112
147
  }
113
- await pipeline.exec();
114
- // Fire-and-forget: mirror session data to PostgreSQL for admin listing.
115
- // Only Session model needs tracking — other models (Interaction, AuthorizationCode, etc.)
116
- // are short-lived artifacts that don't need admin visibility.
117
- if (this.name === 'Session') {
118
- const expiresAt = new Date(Date.now() + expiresIn * 1000);
119
- upsertSession({
120
- sessionId: id,
121
- userId: payload.accountId,
122
- organizationId: payload.orgId,
123
- grantId: payload.grantId,
124
- expiresAt,
125
- }).catch(() => {
126
- // Intentionally swallowed — tracking must never break the OIDC flow.
127
- // upsertSession already logs warnings internally.
128
- });
148
+ const results = await pipeline.exec();
149
+ if (results === null || results.some(([error]) => error !== null)) {
150
+ throw new Error('Redis pipeline execution failed');
129
151
  }
130
152
  }
131
153
  /**
@@ -141,6 +163,12 @@ export class RedisAdapter {
141
163
  const data = await redis.get(this.key(id));
142
164
  if (!data)
143
165
  return undefined;
166
+ if (this.name === 'Session') {
167
+ const tracking = await getSession(id);
168
+ if (!tracking || tracking.revokedAt !== null || tracking.expiresAt.getTime() <= Date.now()) {
169
+ return undefined;
170
+ }
171
+ }
144
172
  try {
145
173
  return JSON.parse(data);
146
174
  }
@@ -184,34 +212,17 @@ export class RedisAdapter {
184
212
  /**
185
213
  * Mark an artifact as consumed.
186
214
  *
187
- * Reads the current payload, adds a `consumed` timestamp (epoch seconds),
188
- * and writes it back with the remaining TTL preserved. This is used for
189
- * authorization code replay detection.
215
+ * Atomically adds a `consumed` timestamp while preserving the existing TTL. A missing or already
216
+ * consumed artifact is rejected so concurrent authorization-code requests cannot both succeed.
190
217
  *
191
218
  * @param id - Artifact ID to mark as consumed
192
219
  */
193
220
  async consume(id) {
194
221
  const redis = getRedis();
195
222
  const mainKey = this.key(id);
196
- const data = await redis.get(mainKey);
197
- if (!data)
198
- return;
199
- try {
200
- const payload = JSON.parse(data);
201
- payload.consumed = Math.floor(Date.now() / 1000);
202
- // Preserve the remaining TTL when updating the payload
203
- const ttl = await redis.ttl(mainKey);
204
- if (ttl > 0) {
205
- await redis.set(mainKey, JSON.stringify(payload), 'EX', ttl);
206
- }
207
- else {
208
- // No TTL set (or key is expiring imminently) — just update
209
- await redis.set(mainKey, JSON.stringify(payload));
210
- }
211
- }
212
- catch (error) {
213
- logger.warn({ key: mainKey, error }, 'Failed to consume OIDC artifact in Redis');
214
- }
223
+ const consumed = await redis.eval(CONSUME_UNCONSUMED_ARTIFACT, 1, mainKey, Math.floor(Date.now() / 1000));
224
+ if (consumed !== 1)
225
+ throw new errors.InvalidGrant();
215
226
  }
216
227
  /**
217
228
  * Delete an artifact and its associated index keys.
@@ -240,15 +251,12 @@ export class RedisAdapter {
240
251
  // If JSON parse fails, just delete the main key
241
252
  }
242
253
  }
243
- await redis.del(...keysToDelete);
244
- // Fire-and-forget: mark session as revoked in PostgreSQL tracking table.
245
- // Only Session model needs tracking — other model destroys don't need admin visibility.
254
+ // Session revocation is the durable authority boundary. Complete it before
255
+ // deleting Redis so a concurrent publication cannot restore a live session.
246
256
  if (this.name === 'Session') {
247
- revokeSession(id).catch(() => {
248
- // Intentionally swallowed — tracking must never break the OIDC flow.
249
- // revokeSession already logs warnings internally.
250
- });
257
+ await revokeSession(id);
251
258
  }
259
+ await redis.del(...keysToDelete);
252
260
  }
253
261
  /**
254
262
  * Revoke all artifacts associated with a grant.
@@ -1 +1 @@
1
- {"version":3,"file":"redis-adapter.js","sourceRoot":"","sources":["../../src/oidc/redis-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis-adapter.js","sourceRoot":"","sources":["../../src/oidc/redis-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGtF;;;;;GAKG;AACH,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;CAcnC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IACvB,+EAA+E;IACrE,IAAI,CAAS;IAEvB,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACO,GAAG,CAAC,EAAU;QACtB,OAAO,QAAQ,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACO,MAAM,CAAC,GAAW;QAC1B,OAAO,QAAQ,IAAI,CAAC,IAAI,QAAQ,GAAG,EAAE,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACO,WAAW,CAAC,QAAgB;QACpC,OAAO,QAAQ,IAAI,CAAC,IAAI,cAAc,QAAQ,EAAE,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACO,QAAQ,CAAC,OAAe;QAChC,OAAO,QAAQ,IAAI,CAAC,IAAI,UAAU,OAAO,EAAE,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAAuB,EAAE,SAAiB;QACjE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE7B,0EAA0E;QAC1E,0EAA0E;QAC1E,sEAAsE;QACtE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;YAC1D,MAAM,aAAa,CAAC;gBAClB,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBAC7E,cAAc,EAAE,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBAC7E,OAAO,EAAE,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBAC1E,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAED,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAElC,kCAAkC;QAClC,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,0EAA0E;QAC1E,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,iFAAiF;QACjF,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnD,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CAAC,EAAU;QACnB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3C,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAE5B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC3F,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,oCAAoC,CAAC,CAAC;YAChF,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEvD,IAAI,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QAE1B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS,CAAC,GAAW;QACzB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QAE1B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAC/B,2BAA2B,EAC3B,CAAC,EACD,OAAO,EACP,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAC9B,CAAC;QACF,IAAI,QAAQ,KAAK,CAAC;YAAE,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;IACtD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE7B,6CAA6C;QAC7C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,CAAC;gBACnD,oCAAoC;gBACpC,IAAI,OAAO,CAAC,GAAG;oBAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7D,IAAI,OAAO,CAAC,QAAQ;oBAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC9E,CAAC;YAAC,MAAM,CAAC;gBACP,gDAAgD;YAClD,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,4EAA4E;QAC5E,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE3C,qCAAqC;QACrC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAElD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,mEAAmE;YACnE,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,2DAA2D;QAC3D,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAElC,8BAA8B;QAC9B,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,8EAA8E;AAC9E,sDAAsD;AACtD,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,iBAAiB,GAAG;IACxB,SAAS;IACT,aAAa;IACb,mBAAmB;IACnB,iBAAiB;IACjB,mBAAmB;IACnB,4BAA4B;CAC7B,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAkB;IACzD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAElC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,oEAAoE;QACpE,qDAAqD;QACrD,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;YACtC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,QAAQ,KAAK,UAAU,OAAO,EAAE,CAAC;gBAClD,yCAAyC;gBACzC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC/C,8CAA8C;gBAC9C,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC5B,+CAA+C;gBAC/C,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;oBAC/B,YAAY,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,QAAQ,EAAE,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,+DAA+D;QAC/D,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,QAAQ,EAAE,EACjB,gEAAgE,CACjE,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Validate and normalize an externally hosted branding image URL.
3
+ *
4
+ * Production accepts credential-free HTTPS URLs. Development and test
5
+ * environments additionally accept HTTP on exact loopback hosts so local
6
+ * identity flows can load local assets without weakening deployed systems.
7
+ */
8
+ /**
9
+ * Return the normalized branding URL or reject values that are unsafe to render.
10
+ *
11
+ * @param value - User-supplied absolute image URL.
12
+ * @returns The URL with surrounding whitespace removed.
13
+ * @throws OrganizationValidationError when the URL is malformed, contains credentials, or uses a
14
+ * disallowed protocol or host.
15
+ */
16
+ export declare function validateBrandingImageUrl(value: string): string;
17
+ //# sourceMappingURL=branding-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branding-url.d.ts","sourceRoot":"","sources":["../../src/organizations/branding-url.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAqB9D"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Validate and normalize an externally hosted branding image URL.
3
+ *
4
+ * Production accepts credential-free HTTPS URLs. Development and test
5
+ * environments additionally accept HTTP on exact loopback hosts so local
6
+ * identity flows can load local assets without weakening deployed systems.
7
+ */
8
+ import { config } from '../config/index.js';
9
+ import { OrganizationValidationError } from './errors.js';
10
+ const LOOPBACK_HOSTS = new Set(['localhost', '127.0.0.1', '[::1]']);
11
+ /**
12
+ * Return the normalized branding URL or reject values that are unsafe to render.
13
+ *
14
+ * @param value - User-supplied absolute image URL.
15
+ * @returns The URL with surrounding whitespace removed.
16
+ * @throws OrganizationValidationError when the URL is malformed, contains credentials, or uses a
17
+ * disallowed protocol or host.
18
+ */
19
+ export function validateBrandingImageUrl(value) {
20
+ const normalized = value.trim();
21
+ let url;
22
+ try {
23
+ url = new URL(normalized);
24
+ }
25
+ catch {
26
+ throw new OrganizationValidationError('Branding image URL is invalid');
27
+ }
28
+ if (url.username !== '' || url.password !== '') {
29
+ throw new OrganizationValidationError('Branding image URL is invalid');
30
+ }
31
+ if (url.protocol === 'https:')
32
+ return normalized;
33
+ const localHttpAllowed = config.nodeEnv !== 'production' && url.protocol === 'http:' && LOOPBACK_HOSTS.has(url.hostname);
34
+ if (localHttpAllowed)
35
+ return normalized;
36
+ throw new OrganizationValidationError('Branding image URL is invalid');
37
+ }
38
+ //# sourceMappingURL=branding-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branding-url.js","sourceRoot":"","sources":["../../src/organizations/branding-url.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAa;IACpD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,GAAQ,CAAC;IAEb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,2BAA2B,CAAC,+BAA+B,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,2BAA2B,CAAC,+BAA+B,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC;IAEjD,MAAM,gBAAgB,GACpB,MAAM,CAAC,OAAO,KAAK,YAAY,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClG,IAAI,gBAAgB;QAAE,OAAO,UAAU,CAAC;IAExC,MAAM,IAAI,2BAA2B,CAAC,+BAA+B,CAAC,CAAC;AACzE,CAAC"}
@@ -6,8 +6,8 @@
6
6
  * (repository, cache) are NOT exported — they are consumed only by
7
7
  * the service layer and tenant resolver.
8
8
  */
9
- export type { Organization, OrganizationRow, OrganizationStatus, CreateOrganizationInput, UpdateOrganizationInput, BrandingInput, ListOrganizationsOptions, PaginatedResult, CascadeCounts, DestroyResult, } from './types.js';
10
- export { createOrganization, getOrganizationById, getOrganizationBySlug, updateOrganization, updateOrganizationBranding, suspendOrganization, activateOrganization, archiveOrganization, restoreOrganization, listOrganizations, listOrganizationsCursor, validateSlugAvailability, getCascadeCounts, destroyOrganization, } from './service.js';
9
+ export type { Organization, OrganizationRow, OrganizationStatus, CreateOrganizationInput, UpdateOrganizationInput, BrandingInput, ListOrganizationsOptions, PaginatedResult, } from './types.js';
10
+ export { createOrganization, getOrganizationById, getOrganizationBySlug, updateOrganization, updateOrganizationBranding, suspendOrganization, activateOrganization, listOrganizations, listOrganizationsCursor, validateSlugAvailability, deleteOrganization, } from './service.js';
11
11
  export type { ListOrganizationsCursorOptions } from './repository.js';
12
12
  export type { CursorPaginatedResult } from '../lib/cursor.js';
13
13
  export { OrganizationNotFoundError, OrganizationValidationError, } from './errors.js';