n8n 2.16.0 → 2.17.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 (323) hide show
  1. package/README.md +1 -1
  2. package/dist/active-workflow-manager.d.ts +3 -1
  3. package/dist/active-workflow-manager.js +37 -4
  4. package/dist/active-workflow-manager.js.map +1 -1
  5. package/dist/auth/auth.service.d.ts +5 -2
  6. package/dist/auth/auth.service.js +10 -6
  7. package/dist/auth/auth.service.js.map +1 -1
  8. package/dist/build.tsbuildinfo +1 -1
  9. package/dist/commands/base-command.js +8 -2
  10. package/dist/commands/base-command.js.map +1 -1
  11. package/dist/commands/start.d.ts +1 -0
  12. package/dist/commands/start.js +7 -0
  13. package/dist/commands/start.js.map +1 -1
  14. package/dist/constants.d.ts +2 -0
  15. package/dist/constants.js +5 -1
  16. package/dist/constants.js.map +1 -1
  17. package/dist/controllers/ai.controller.d.ts +11 -2
  18. package/dist/controllers/ai.controller.js +54 -2
  19. package/dist/controllers/ai.controller.js.map +1 -1
  20. package/dist/controllers/auth.controller.js +1 -1
  21. package/dist/controllers/auth.controller.js.map +1 -1
  22. package/dist/controllers/e2e.controller.js +3 -0
  23. package/dist/controllers/e2e.controller.js.map +1 -1
  24. package/dist/controllers/me.controller.d.ts +1 -0
  25. package/dist/controllers/me.controller.js +12 -0
  26. package/dist/controllers/me.controller.js.map +1 -1
  27. package/dist/controllers/project.controller.d.ts +3 -1
  28. package/dist/controllers/project.controller.js +9 -2
  29. package/dist/controllers/project.controller.js.map +1 -1
  30. package/dist/controllers/role.controller.d.ts +6 -4
  31. package/dist/controllers/role.controller.js +28 -8
  32. package/dist/controllers/role.controller.js.map +1 -1
  33. package/dist/controllers/users.controller.d.ts +4 -1
  34. package/dist/controllers/users.controller.js +8 -2
  35. package/dist/controllers/users.controller.js.map +1 -1
  36. package/dist/credentials/credentials.controller.js +3 -0
  37. package/dist/credentials/credentials.controller.js.map +1 -1
  38. package/dist/credentials/credentials.service.d.ts +3 -2
  39. package/dist/credentials/credentials.service.js +21 -10
  40. package/dist/credentials/credentials.service.js.map +1 -1
  41. package/dist/credentials/validation.js +2 -2
  42. package/dist/credentials/validation.js.map +1 -1
  43. package/dist/credentials-helper.d.ts +3 -1
  44. package/dist/credentials-helper.js +14 -2
  45. package/dist/credentials-helper.js.map +1 -1
  46. package/dist/eventbus/event-message-classes/index.d.ts +2 -2
  47. package/dist/eventbus/event-message-classes/index.js +7 -0
  48. package/dist/eventbus/event-message-classes/index.js.map +1 -1
  49. package/dist/events/maps/relay.event-map.d.ts +92 -0
  50. package/dist/events/relays/log-streaming.event-relay.d.ts +7 -0
  51. package/dist/events/relays/log-streaming.event-relay.js +87 -2
  52. package/dist/events/relays/log-streaming.event-relay.js.map +1 -1
  53. package/dist/events/relays/telemetry.event-relay.d.ts +5 -0
  54. package/dist/events/relays/telemetry.event-relay.js +58 -5
  55. package/dist/events/relays/telemetry.event-relay.js.map +1 -1
  56. package/dist/execution-lifecycle/execution-lifecycle-hooks.d.ts +1 -1
  57. package/dist/execution-lifecycle/execution-lifecycle-hooks.js +22 -9
  58. package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
  59. package/dist/instance-settings-loader/instance-settings-loader.service.d.ts +9 -0
  60. package/dist/instance-settings-loader/instance-settings-loader.service.js +36 -0
  61. package/dist/instance-settings-loader/instance-settings-loader.service.js.map +1 -0
  62. package/dist/instance-settings-loader/loaders/owner.instance-settings-loader.d.ts +10 -0
  63. package/dist/instance-settings-loader/loaders/owner.instance-settings-loader.js +72 -0
  64. package/dist/instance-settings-loader/loaders/owner.instance-settings-loader.js.map +1 -0
  65. package/dist/modules/chat-hub/stream-capturer.js +3 -0
  66. package/dist/modules/chat-hub/stream-capturer.js.map +1 -1
  67. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.d.ts +2 -2
  68. package/dist/modules/external-secrets.ee/external-secrets-settings.controller.ee.d.ts +5 -2
  69. package/dist/modules/external-secrets.ee/external-secrets-settings.controller.ee.js +10 -3
  70. package/dist/modules/external-secrets.ee/external-secrets-settings.controller.ee.js.map +1 -1
  71. package/dist/modules/external-secrets.ee/secrets-providers-connections.controller.ee.js +5 -5
  72. package/dist/modules/external-secrets.ee/secrets-providers-connections.controller.ee.js.map +1 -1
  73. package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.d.ts +6 -6
  74. package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.js +14 -9
  75. package/dist/modules/external-secrets.ee/secrets-providers-connections.service.ee.js.map +1 -1
  76. package/dist/modules/external-secrets.ee/secrets-providers-project.controller.ee.js +3 -3
  77. package/dist/modules/external-secrets.ee/secrets-providers-project.controller.ee.js.map +1 -1
  78. package/dist/modules/instance-ai/eval/api-docs.d.ts +1 -0
  79. package/dist/modules/instance-ai/eval/api-docs.js +78 -0
  80. package/dist/modules/instance-ai/eval/api-docs.js.map +1 -0
  81. package/dist/modules/instance-ai/eval/execution.service.d.ts +25 -0
  82. package/dist/modules/instance-ai/eval/execution.service.js +291 -0
  83. package/dist/modules/instance-ai/eval/execution.service.js.map +1 -0
  84. package/dist/modules/instance-ai/eval/mock-handler.d.ts +9 -0
  85. package/dist/modules/instance-ai/eval/mock-handler.js +264 -0
  86. package/dist/modules/instance-ai/eval/mock-handler.js.map +1 -0
  87. package/dist/modules/instance-ai/eval/node-config.d.ts +2 -0
  88. package/dist/modules/instance-ai/eval/node-config.js +15 -0
  89. package/dist/modules/instance-ai/eval/node-config.js.map +1 -0
  90. package/dist/modules/instance-ai/eval/pin-data-generator.d.ts +12 -0
  91. package/dist/modules/instance-ai/eval/pin-data-generator.js +301 -0
  92. package/dist/modules/instance-ai/eval/pin-data-generator.js.map +1 -0
  93. package/dist/modules/instance-ai/eval/request-sanitizer.d.ts +3 -0
  94. package/dist/modules/instance-ai/eval/request-sanitizer.js +50 -0
  95. package/dist/modules/instance-ai/eval/request-sanitizer.js.map +1 -0
  96. package/dist/modules/instance-ai/eval/workflow-analysis.d.ts +16 -0
  97. package/dist/modules/instance-ai/eval/workflow-analysis.js +217 -0
  98. package/dist/modules/instance-ai/eval/workflow-analysis.js.map +1 -0
  99. package/dist/modules/instance-ai/filesystem/index.d.ts +0 -1
  100. package/dist/modules/instance-ai/filesystem/index.js +1 -3
  101. package/dist/modules/instance-ai/filesystem/index.js.map +1 -1
  102. package/dist/modules/instance-ai/filesystem/local-gateway.js +1 -1
  103. package/dist/modules/instance-ai/instance-ai-memory.service.d.ts +11 -7
  104. package/dist/modules/instance-ai/instance-ai-memory.service.js +21 -41
  105. package/dist/modules/instance-ai/instance-ai-memory.service.js.map +1 -1
  106. package/dist/modules/instance-ai/instance-ai-settings.service.d.ts +4 -0
  107. package/dist/modules/instance-ai/instance-ai-settings.service.js +26 -6
  108. package/dist/modules/instance-ai/instance-ai-settings.service.js.map +1 -1
  109. package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +8 -3
  110. package/dist/modules/instance-ai/instance-ai.adapter.service.js +189 -35
  111. package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
  112. package/dist/modules/instance-ai/instance-ai.controller.d.ts +10 -11
  113. package/dist/modules/instance-ai/instance-ai.controller.js +101 -44
  114. package/dist/modules/instance-ai/instance-ai.controller.js.map +1 -1
  115. package/dist/modules/instance-ai/instance-ai.module.d.ts +1 -2
  116. package/dist/modules/instance-ai/instance-ai.module.js +4 -5
  117. package/dist/modules/instance-ai/instance-ai.module.js.map +1 -1
  118. package/dist/modules/instance-ai/instance-ai.service.d.ts +9 -8
  119. package/dist/modules/instance-ai/instance-ai.service.js +189 -61
  120. package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
  121. package/dist/modules/instance-ai/internal-messages.js +1 -1
  122. package/dist/modules/instance-ai/internal-messages.js.map +1 -1
  123. package/dist/modules/instance-ai/proxy-token-manager.d.ts +15 -0
  124. package/dist/modules/instance-ai/proxy-token-manager.js +64 -0
  125. package/dist/modules/instance-ai/proxy-token-manager.js.map +1 -0
  126. package/dist/modules/instance-ai/snapshot-pruning.service.d.ts +4 -1
  127. package/dist/modules/instance-ai/snapshot-pruning.service.js +18 -6
  128. package/dist/modules/instance-ai/snapshot-pruning.service.js.map +1 -1
  129. package/dist/modules/instance-ai/storage/db-snapshot-storage.d.ts +4 -0
  130. package/dist/modules/instance-ai/storage/db-snapshot-storage.js +25 -0
  131. package/dist/modules/instance-ai/storage/db-snapshot-storage.js.map +1 -1
  132. package/dist/modules/instance-ai/storage/typeorm-memory-storage.js +1 -1
  133. package/dist/modules/instance-ai/storage/typeorm-memory-storage.js.map +1 -1
  134. package/dist/modules/instance-ai/web-research/brave-search.d.ts +1 -1
  135. package/dist/modules/instance-ai/web-research/brave-search.js +2 -1
  136. package/dist/modules/instance-ai/web-research/brave-search.js.map +1 -1
  137. package/dist/modules/instance-version-history/database/entities/instance-version-history.entity.d.ts +7 -0
  138. package/dist/modules/instance-version-history/database/entities/instance-version-history.entity.js +37 -0
  139. package/dist/modules/instance-version-history/database/entities/instance-version-history.entity.js.map +1 -0
  140. package/dist/modules/instance-version-history/database/repositories/instance-version-history.repository.d.ts +5 -0
  141. package/dist/modules/instance-version-history/database/repositories/instance-version-history.repository.js +26 -0
  142. package/dist/modules/instance-version-history/database/repositories/instance-version-history.repository.js.map +1 -0
  143. package/dist/modules/instance-version-history/instance-version-history.controller.d.ts +26 -0
  144. package/dist/modules/instance-version-history/instance-version-history.controller.js +85 -0
  145. package/dist/modules/instance-version-history/instance-version-history.controller.js.map +1 -0
  146. package/dist/modules/instance-version-history/instance-version-history.module.d.ts +5 -0
  147. package/dist/modules/instance-version-history/instance-version-history.module.js +60 -0
  148. package/dist/modules/instance-version-history/instance-version-history.module.js.map +1 -0
  149. package/dist/modules/instance-version-history/instance-version-history.service.d.ts +18 -0
  150. package/dist/modules/instance-version-history/instance-version-history.service.js +120 -0
  151. package/dist/modules/instance-version-history/instance-version-history.service.js.map +1 -0
  152. package/dist/modules/instance-version-history/instance-version-history.types.d.ts +12 -0
  153. package/dist/modules/instance-version-history/instance-version-history.types.js +27 -0
  154. package/dist/modules/instance-version-history/instance-version-history.types.js.map +1 -0
  155. package/dist/modules/provisioning.ee/provisioning.service.ee.d.ts +5 -2
  156. package/dist/modules/provisioning.ee/provisioning.service.ee.js +55 -11
  157. package/dist/modules/provisioning.ee/provisioning.service.ee.js.map +1 -1
  158. package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.d.ts +7 -5
  159. package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.js +40 -10
  160. package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.js.map +1 -1
  161. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.d.ts +3 -1
  162. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js +1 -0
  163. package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js.map +1 -1
  164. package/dist/modules/provisioning.ee/role-resolver-types.d.ts +14 -2
  165. package/dist/modules/provisioning.ee/role-resolver.service.ee.js +16 -6
  166. package/dist/modules/provisioning.ee/role-resolver.service.ee.js.map +1 -1
  167. package/dist/modules/source-control.ee/source-control-context.factory.d.ts +12 -0
  168. package/dist/modules/source-control.ee/source-control-context.factory.js +112 -0
  169. package/dist/modules/source-control.ee/source-control-context.factory.js.map +1 -0
  170. package/dist/modules/source-control.ee/source-control-export.service.ee.d.ts +2 -2
  171. package/dist/modules/source-control.ee/source-control-export.service.ee.js +9 -11
  172. package/dist/modules/source-control.ee/source-control-export.service.ee.js.map +1 -1
  173. package/dist/modules/source-control.ee/source-control-git.service.ee.js +3 -3
  174. package/dist/modules/source-control.ee/source-control-git.service.ee.js.map +1 -1
  175. package/dist/modules/source-control.ee/source-control-import.service.ee.d.ts +6 -4
  176. package/dist/modules/source-control.ee/source-control-import.service.ee.js +29 -85
  177. package/dist/modules/source-control.ee/source-control-import.service.ee.js.map +1 -1
  178. package/dist/modules/source-control.ee/source-control-scoped.service.d.ts +4 -4
  179. package/dist/modules/source-control.ee/source-control-scoped.service.js +9 -40
  180. package/dist/modules/source-control.ee/source-control-scoped.service.js.map +1 -1
  181. package/dist/modules/source-control.ee/source-control-status.service.ee.d.ts +3 -1
  182. package/dist/modules/source-control.ee/source-control-status.service.ee.js +99 -59
  183. package/dist/modules/source-control.ee/source-control-status.service.ee.js.map +1 -1
  184. package/dist/modules/source-control.ee/source-control.service.ee.d.ts +3 -1
  185. package/dist/modules/source-control.ee/source-control.service.ee.js +6 -4
  186. package/dist/modules/source-control.ee/source-control.service.ee.js.map +1 -1
  187. package/dist/modules/source-control.ee/types/source-control-context.d.ts +12 -4
  188. package/dist/modules/source-control.ee/types/source-control-context.js +32 -6
  189. package/dist/modules/source-control.ee/types/source-control-context.js.map +1 -1
  190. package/dist/modules/sso-saml/saml.controller.ee.d.ts +2 -3
  191. package/dist/modules/sso-saml/saml.controller.ee.js +3 -15
  192. package/dist/modules/sso-saml/saml.controller.ee.js.map +1 -1
  193. package/dist/modules/token-exchange/controllers/embed-auth.controller.d.ts +5 -1
  194. package/dist/modules/token-exchange/controllers/embed-auth.controller.js +50 -11
  195. package/dist/modules/token-exchange/controllers/embed-auth.controller.js.map +1 -1
  196. package/dist/modules/token-exchange/{token-exchange.controller.d.ts → controllers/token-exchange.controller.d.ts} +1 -1
  197. package/dist/modules/token-exchange/{token-exchange.controller.js → controllers/token-exchange.controller.js} +50 -5
  198. package/dist/modules/token-exchange/controllers/token-exchange.controller.js.map +1 -0
  199. package/dist/modules/token-exchange/database/entities/trusted-key-source.entity.d.ts +10 -0
  200. package/dist/modules/token-exchange/database/entities/trusted-key-source.entity.js +45 -0
  201. package/dist/modules/token-exchange/database/entities/trusted-key-source.entity.js.map +1 -0
  202. package/dist/modules/token-exchange/database/entities/trusted-key.entity.d.ts +9 -0
  203. package/dist/modules/token-exchange/database/entities/trusted-key.entity.js +43 -0
  204. package/dist/modules/token-exchange/database/entities/trusted-key.entity.js.map +1 -0
  205. package/dist/modules/token-exchange/database/repositories/trusted-key-source.repository.d.ts +5 -0
  206. package/dist/modules/token-exchange/database/repositories/trusted-key-source.repository.js +26 -0
  207. package/dist/modules/token-exchange/database/repositories/trusted-key-source.repository.js.map +1 -0
  208. package/dist/modules/token-exchange/database/repositories/trusted-key.repository.d.ts +7 -0
  209. package/dist/modules/token-exchange/database/repositories/trusted-key.repository.js +32 -0
  210. package/dist/modules/token-exchange/database/repositories/trusted-key.repository.js.map +1 -0
  211. package/dist/modules/token-exchange/services/identity-resolution.service.d.ts +20 -2
  212. package/dist/modules/token-exchange/services/identity-resolution.service.js +178 -4
  213. package/dist/modules/token-exchange/services/identity-resolution.service.js.map +1 -1
  214. package/dist/modules/token-exchange/services/jti-cleanup.service.js +1 -1
  215. package/dist/modules/token-exchange/services/jti-cleanup.service.js.map +1 -1
  216. package/dist/modules/token-exchange/services/jwks-resolver.d.ts +30 -0
  217. package/dist/modules/token-exchange/services/jwks-resolver.js +190 -0
  218. package/dist/modules/token-exchange/services/jwks-resolver.js.map +1 -0
  219. package/dist/modules/token-exchange/services/scoped-jwt.strategy.d.ts +12 -0
  220. package/dist/modules/token-exchange/services/scoped-jwt.strategy.js +92 -0
  221. package/dist/modules/token-exchange/services/scoped-jwt.strategy.js.map +1 -0
  222. package/dist/modules/token-exchange/services/token-exchange.service.d.ts +18 -4
  223. package/dist/modules/token-exchange/services/token-exchange.service.js +65 -6
  224. package/dist/modules/token-exchange/services/token-exchange.service.js.map +1 -1
  225. package/dist/modules/token-exchange/services/trusted-key.service.d.ts +40 -6
  226. package/dist/modules/token-exchange/services/trusted-key.service.js +374 -32
  227. package/dist/modules/token-exchange/services/trusted-key.service.js.map +1 -1
  228. package/dist/modules/token-exchange/token-exchange.config.d.ts +4 -0
  229. package/dist/modules/token-exchange/token-exchange.config.js +20 -0
  230. package/dist/modules/token-exchange/token-exchange.config.js.map +1 -1
  231. package/dist/modules/token-exchange/token-exchange.module.js +7 -2
  232. package/dist/modules/token-exchange/token-exchange.module.js.map +1 -1
  233. package/dist/modules/token-exchange/token-exchange.schemas.d.ts +35 -5
  234. package/dist/modules/token-exchange/token-exchange.schemas.js +16 -7
  235. package/dist/modules/token-exchange/token-exchange.schemas.js.map +1 -1
  236. package/dist/modules/token-exchange/token-exchange.types.d.ts +5 -2
  237. package/dist/modules/token-exchange/token-exchange.types.js +2 -0
  238. package/dist/modules/token-exchange/token-exchange.types.js.map +1 -1
  239. package/dist/oauth/oauth.service.d.ts +1 -0
  240. package/dist/oauth/oauth.service.js +39 -2
  241. package/dist/oauth/oauth.service.js.map +1 -1
  242. package/dist/public-api/index.js +32 -4
  243. package/dist/public-api/index.js.map +1 -1
  244. package/dist/public-api/types.d.ts +11 -1
  245. package/dist/public-api/v1/handlers/community-packages/community-packages.handler.d.ts +1 -0
  246. package/dist/public-api/v1/handlers/community-packages/community-packages.handler.js +5 -5
  247. package/dist/public-api/v1/handlers/community-packages/community-packages.handler.js.map +1 -1
  248. package/dist/public-api/v1/handlers/credentials/credentials.handler.js +7 -12
  249. package/dist/public-api/v1/handlers/credentials/credentials.handler.js.map +1 -1
  250. package/dist/public-api/v1/handlers/credentials/credentials.service.d.ts +3 -4
  251. package/dist/public-api/v1/handlers/credentials/credentials.service.js +21 -33
  252. package/dist/public-api/v1/handlers/credentials/credentials.service.js.map +1 -1
  253. package/dist/public-api/v1/handlers/data-tables/data-tables.handler.js +5 -5
  254. package/dist/public-api/v1/handlers/data-tables/data-tables.rows.handler.js +5 -5
  255. package/dist/public-api/v1/handlers/executions/executions.handler.js +8 -8
  256. package/dist/public-api/v1/handlers/insights/insights.handler.d.ts +6 -0
  257. package/dist/public-api/v1/handlers/insights/insights.handler.js +57 -0
  258. package/dist/public-api/v1/handlers/insights/insights.handler.js.map +1 -0
  259. package/dist/public-api/v1/handlers/workflows/workflows.handler.js +14 -35
  260. package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
  261. package/dist/public-api/v1/handlers/workflows/workflows.service.d.ts +6 -4
  262. package/dist/public-api/v1/handlers/workflows/workflows.service.js +7 -15
  263. package/dist/public-api/v1/handlers/workflows/workflows.service.js.map +1 -1
  264. package/dist/public-api/v1/openapi.yml +322 -7
  265. package/dist/public-api/v1/shared/middlewares/global.middleware.d.ts +1 -1
  266. package/dist/public-api/v1/shared/middlewares/global.middleware.js +19 -8
  267. package/dist/public-api/v1/shared/middlewares/global.middleware.js.map +1 -1
  268. package/dist/security-audit/risk-reporters/credentials-risk-reporter.d.ts +2 -3
  269. package/dist/security-audit/risk-reporters/credentials-risk-reporter.js +2 -5
  270. package/dist/security-audit/risk-reporters/credentials-risk-reporter.js.map +1 -1
  271. package/dist/services/ai-gateway.service.d.ts +44 -0
  272. package/dist/services/ai-gateway.service.js +228 -0
  273. package/dist/services/ai-gateway.service.js.map +1 -0
  274. package/dist/services/api-key-auth.strategy.d.ts +10 -0
  275. package/dist/services/api-key-auth.strategy.js +71 -0
  276. package/dist/services/api-key-auth.strategy.js.map +1 -0
  277. package/dist/services/frontend.service.js +7 -0
  278. package/dist/services/frontend.service.js.map +1 -1
  279. package/dist/services/import.service.d.ts +1 -0
  280. package/dist/services/import.service.js +25 -2
  281. package/dist/services/import.service.js.map +1 -1
  282. package/dist/services/ownership.service.d.ts +4 -1
  283. package/dist/services/ownership.service.js +11 -5
  284. package/dist/services/ownership.service.js.map +1 -1
  285. package/dist/services/project.service.ee.js +1 -1
  286. package/dist/services/project.service.ee.js.map +1 -1
  287. package/dist/services/pruning/workflow-history-compaction.service.js +4 -4
  288. package/dist/services/pruning/workflow-history-compaction.service.js.map +1 -1
  289. package/dist/services/public-api-key.service.d.ts +6 -13
  290. package/dist/services/public-api-key.service.js +12 -80
  291. package/dist/services/public-api-key.service.js.map +1 -1
  292. package/dist/services/user.service.js +6 -0
  293. package/dist/services/user.service.js.map +1 -1
  294. package/dist/utils/validate-redirect-url.d.ts +1 -0
  295. package/dist/utils/validate-redirect-url.js +17 -0
  296. package/dist/utils/validate-redirect-url.js.map +1 -0
  297. package/dist/webhooks/webhook-form-data.js +6 -2
  298. package/dist/webhooks/webhook-form-data.js.map +1 -1
  299. package/dist/webhooks/webhook.service.js +19 -4
  300. package/dist/webhooks/webhook.service.js.map +1 -1
  301. package/dist/workflow-execute-additional-data.js +2 -0
  302. package/dist/workflow-execute-additional-data.js.map +1 -1
  303. package/dist/workflow-helpers.d.ts +1 -0
  304. package/dist/workflow-helpers.js +21 -0
  305. package/dist/workflow-helpers.js.map +1 -1
  306. package/dist/workflow-runner.js +25 -1
  307. package/dist/workflow-runner.js.map +1 -1
  308. package/dist/workflows/workflow-creation.service.d.ts +8 -5
  309. package/dist/workflows/workflow-creation.service.js +36 -17
  310. package/dist/workflows/workflow-creation.service.js.map +1 -1
  311. package/dist/workflows/workflow.service.ee.js +4 -1
  312. package/dist/workflows/workflow.service.ee.js.map +1 -1
  313. package/dist/workflows/workflow.service.js +4 -1
  314. package/dist/workflows/workflow.service.js.map +1 -1
  315. package/dist/workflows/workflows.controller.d.ts +2 -2
  316. package/package.json +25 -26
  317. package/dist/modules/instance-ai/filesystem/local-fs-provider.d.ts +0 -26
  318. package/dist/modules/instance-ai/filesystem/local-fs-provider.js +0 -321
  319. package/dist/modules/instance-ai/filesystem/local-fs-provider.js.map +0 -1
  320. package/dist/modules/token-exchange/token-exchange.controller.js.map +0 -1
  321. package/dist/modules/token-exchange/token-exchange.service.d.ts +0 -9
  322. package/dist/modules/token-exchange/token-exchange.service.js +0 -66
  323. package/dist/modules/token-exchange/token-exchange.service.js.map +0 -1
@@ -1,7 +1,15 @@
1
- import type { User } from '@n8n/db';
1
+ import type { Project, User } from '@n8n/db';
2
+ import type { RemoteResourceOwner } from './resource-owner';
2
3
  export declare class SourceControlContext {
3
- private readonly userInternal;
4
- constructor(userInternal: User);
5
- get user(): User;
4
+ readonly user: User;
5
+ readonly authorizedProjects: Project[];
6
+ readonly accessibleWorkflowIds: string[];
7
+ private readonly _hasAccessToAllProjects;
8
+ private readonly authorizedProjectIds;
9
+ private readonly authorizedProjectsByTeamId;
10
+ private readonly authorizedProjectsByOwnerEmail;
11
+ constructor(user: User, authorizedProjects: Project[], accessibleWorkflowIds: string[]);
6
12
  hasAccessToAllProjects(): boolean;
13
+ canAccessProject(projectId: string): boolean;
14
+ findAuthorizedProjectByOwner(owner: RemoteResourceOwner): Project | undefined;
7
15
  }
@@ -3,14 +3,40 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SourceControlContext = void 0;
4
4
  const permissions_1 = require("@n8n/permissions");
5
5
  class SourceControlContext {
6
- constructor(userInternal) {
7
- this.userInternal = userInternal;
8
- }
9
- get user() {
10
- return this.userInternal;
6
+ constructor(user, authorizedProjects, accessibleWorkflowIds) {
7
+ this.user = user;
8
+ this.authorizedProjects = authorizedProjects;
9
+ this.accessibleWorkflowIds = accessibleWorkflowIds;
10
+ this.authorizedProjectsByTeamId = new Map();
11
+ this.authorizedProjectsByOwnerEmail = new Map();
12
+ this._hasAccessToAllProjects = (0, permissions_1.hasGlobalScope)(this.user, 'project:update');
13
+ this.authorizedProjectIds = new Set(this.authorizedProjects.map((project) => project.id));
14
+ for (const project of this.authorizedProjects) {
15
+ if (project.type === 'team') {
16
+ this.authorizedProjectsByTeamId.set(project.id, project);
17
+ }
18
+ if (project.type === 'personal') {
19
+ const ownerEmail = project.projectRelations?.find((relation) => relation.role.slug === permissions_1.PROJECT_OWNER_ROLE_SLUG)?.user?.email;
20
+ if (ownerEmail) {
21
+ this.authorizedProjectsByOwnerEmail.set(ownerEmail, project);
22
+ }
23
+ }
24
+ }
11
25
  }
12
26
  hasAccessToAllProjects() {
13
- return (0, permissions_1.hasGlobalScope)(this.userInternal, 'project:update');
27
+ return this._hasAccessToAllProjects;
28
+ }
29
+ canAccessProject(projectId) {
30
+ return this._hasAccessToAllProjects || this.authorizedProjectIds.has(projectId);
31
+ }
32
+ findAuthorizedProjectByOwner(owner) {
33
+ if (typeof owner === 'string') {
34
+ return this.authorizedProjectsByOwnerEmail.get(owner);
35
+ }
36
+ if (owner.type === 'personal') {
37
+ return this.authorizedProjectsByOwnerEmail.get(owner.personalEmail);
38
+ }
39
+ return this.authorizedProjectsByTeamId.get(owner.teamId);
14
40
  }
15
41
  }
16
42
  exports.SourceControlContext = SourceControlContext;
@@ -1 +1 @@
1
- {"version":3,"file":"source-control-context.js","sourceRoot":"","sources":["../../../../src/modules/source-control.ee/types/source-control-context.ts"],"names":[],"mappings":";;;AACA,kDAAkD;AAElD,MAAa,oBAAoB;IAChC,YAA6B,YAAkB;QAAlB,iBAAY,GAAZ,YAAY,CAAM;IAAG,CAAC;IAEnD,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED,sBAAsB;QACrB,OAAO,IAAA,4BAAc,EAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAC5D,CAAC;CACD;AAVD,oDAUC"}
1
+ {"version":3,"file":"source-control-context.js","sourceRoot":"","sources":["../../../../src/modules/source-control.ee/types/source-control-context.ts"],"names":[],"mappings":";;;AACA,kDAA2E;AAI3E,MAAa,oBAAoB;IAShC,YACU,IAAU,EACV,kBAA6B,EAC7B,qBAA+B;QAF/B,SAAI,GAAJ,IAAI,CAAM;QACV,uBAAkB,GAAlB,kBAAkB,CAAW;QAC7B,0BAAqB,GAArB,qBAAqB,CAAU;QAPxB,+BAA0B,GAAG,IAAI,GAAG,EAAmB,CAAC;QAExD,mCAA8B,GAAG,IAAI,GAAG,EAAmB,CAAC;QAO5E,IAAI,CAAC,uBAAuB,GAAG,IAAA,4BAAc,EAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAC3E,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1F,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7B,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACjC,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAChD,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,qCAAuB,CAC5D,EAAE,IAAI,EAAE,KAAK,CAAC;gBACf,IAAI,UAAU,EAAE,CAAC;oBAChB,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC9D,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,sBAAsB;QACrB,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACrC,CAAC;IAED,gBAAgB,CAAC,SAAiB;QACjC,OAAO,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjF,CAAC;IAED,4BAA4B,CAAC,KAA0B;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;CACD;AAhDD,oDAgDC"}
@@ -31,6 +31,7 @@ export declare class SamlController {
31
31
  };
32
32
  };
33
33
  relayState: string;
34
+ metadata?: string | undefined;
34
35
  mapping?: {
35
36
  email: string;
36
37
  firstName: string;
@@ -39,7 +40,6 @@ export declare class SamlController {
39
40
  n8nInstanceRole?: string | undefined;
40
41
  n8nProjectRoles?: string[] | undefined;
41
42
  } | undefined;
42
- metadata?: string | undefined;
43
43
  metadataUrl?: string | undefined;
44
44
  loginEnabled?: boolean | undefined;
45
45
  loginLabel?: string | undefined;
@@ -61,6 +61,7 @@ export declare class SamlController {
61
61
  };
62
62
  };
63
63
  relayState: string;
64
+ metadata?: string | undefined;
64
65
  mapping?: {
65
66
  email: string;
66
67
  firstName: string;
@@ -69,7 +70,6 @@ export declare class SamlController {
69
70
  n8nInstanceRole?: string | undefined;
70
71
  n8nProjectRoles?: string[] | undefined;
71
72
  } | undefined;
72
- metadata?: string | undefined;
73
73
  metadataUrl?: string | undefined;
74
74
  loginEnabled?: boolean | undefined;
75
75
  loginLabel?: string | undefined;
@@ -84,5 +84,4 @@ export declare class SamlController {
84
84
  }>, res: Response): Promise<string | Response<any, Record<string, any>>>;
85
85
  configTestPost(_req: AuthenticatedRequest, res: Response, payload: SamlPreferences): Promise<string | Response<any, Record<string, any>>>;
86
86
  private handleInitSSO;
87
- private validateRedirectUrl;
88
87
  }
@@ -26,6 +26,7 @@ const auth_error_1 = require("../../errors/response-errors/auth.error");
26
26
  const event_service_1 = require("../../events/event.service");
27
27
  const response_helper_1 = require("../../response-helper");
28
28
  const url_service_1 = require("../../services/url.service");
29
+ const validate_redirect_url_1 = require("../../utils/validate-redirect-url");
29
30
  const sso_helpers_1 = require("../../sso.ee/sso-helpers");
30
31
  const saml_enabled_middleware_1 = require("./middleware/saml-enabled-middleware");
31
32
  const saml_helpers_1 = require("./saml-helpers");
@@ -98,7 +99,7 @@ let SamlController = class SamlController {
98
99
  }
99
100
  else {
100
101
  const safeRedirectUrl = payload.RelayState
101
- ? this.validateRedirectUrl(payload.RelayState)
102
+ ? (0, validate_redirect_url_1.validateRedirectUrl)(payload.RelayState)
102
103
  : '/';
103
104
  return res.redirect(this.urlService.getInstanceBaseUrl() + safeRedirectUrl);
104
105
  }
@@ -140,7 +141,7 @@ let SamlController = class SamlController {
140
141
  }
141
142
  catch {
142
143
  }
143
- return await this.handleInitSSO(res, this.validateRedirectUrl(redirectUrl));
144
+ return await this.handleInitSSO(res, (0, validate_redirect_url_1.validateRedirectUrl)(redirectUrl));
144
145
  }
145
146
  async configTestPost(_req, res, payload) {
146
147
  return await this.handleInitSSO(res, (0, service_provider_ee_1.getServiceProviderConfigTestReturnUrl)(), payload);
@@ -165,19 +166,6 @@ let SamlController = class SamlController {
165
166
  throw new auth_error_1.AuthError('SAML redirect failed, please check your SAML configuration.');
166
167
  }
167
168
  }
168
- validateRedirectUrl(redirectUrl) {
169
- if (typeof redirectUrl !== 'string' || redirectUrl.trim() === '') {
170
- return '/';
171
- }
172
- const trimmed = redirectUrl.trim();
173
- if (!trimmed.startsWith('/')) {
174
- return '/';
175
- }
176
- if (trimmed.startsWith('//')) {
177
- return '/';
178
- }
179
- return trimmed;
180
- }
181
169
  };
182
170
  exports.SamlController = SamlController;
183
171
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"saml.controller.ee.js","sourceRoot":"","sources":["../../../src/modules/sso-saml/saml.controller.ee.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"saml.controller.ee.js","sourceRoot":"","sources":["../../../src/modules/sso-saml/saml.controller.ee.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,18 @@
1
1
  import { EmbedLoginBodyDto, EmbedLoginQueryDto } from '@n8n/api-types';
2
2
  import type { Response } from 'express';
3
3
  import { AuthService } from '../../../auth/auth.service';
4
+ import { EventService } from '../../../events/event.service';
4
5
  import { AuthlessRequest } from '../../../requests';
5
6
  import { UrlService } from '../../../services/url.service';
6
7
  import { TokenExchangeService } from '../services/token-exchange.service';
8
+ import { TokenExchangeConfig } from '../token-exchange.config';
7
9
  export declare class EmbedAuthController {
10
+ private readonly config;
8
11
  private readonly tokenExchangeService;
9
12
  private readonly authService;
10
13
  private readonly urlService;
11
- constructor(tokenExchangeService: TokenExchangeService, authService: AuthService, urlService: UrlService);
14
+ private readonly eventService;
15
+ constructor(config: TokenExchangeConfig, tokenExchangeService: TokenExchangeService, authService: AuthService, urlService: UrlService, eventService: EventService);
12
16
  getLogin(req: AuthlessRequest, res: Response, query: EmbedLoginQueryDto): Promise<void>;
13
17
  postLogin(req: AuthlessRequest, res: Response, body: EmbedLoginBodyDto): Promise<void>;
14
18
  private handleLogin;
@@ -17,31 +17,65 @@ const api_types_1 = require("@n8n/api-types");
17
17
  const constants_1 = require("@n8n/constants");
18
18
  const decorators_1 = require("@n8n/decorators");
19
19
  const auth_service_1 = require("../../../auth/auth.service");
20
+ const event_service_1 = require("../../../events/event.service");
20
21
  const url_service_1 = require("../../../services/url.service");
22
+ const validate_redirect_url_1 = require("../../../utils/validate-redirect-url");
21
23
  const token_exchange_service_1 = require("../services/token-exchange.service");
24
+ const token_exchange_config_1 = require("../token-exchange.config");
25
+ const di_1 = require("@n8n/di");
26
+ const configService = di_1.Container.get(token_exchange_config_1.TokenExchangeConfig);
22
27
  let EmbedAuthController = class EmbedAuthController {
23
- constructor(tokenExchangeService, authService, urlService) {
28
+ constructor(config, tokenExchangeService, authService, urlService, eventService) {
29
+ this.config = config;
24
30
  this.tokenExchangeService = tokenExchangeService;
25
31
  this.authService = authService;
26
32
  this.urlService = urlService;
33
+ this.eventService = eventService;
27
34
  }
28
35
  async getLogin(req, res, query) {
29
- return await this.handleLogin(query.token, req, res);
36
+ if (!this.config.embedEnabled) {
37
+ res.status(501).json({
38
+ error: 'server_error',
39
+ error_description: 'Embed login is not enabled on this instance',
40
+ });
41
+ return;
42
+ }
43
+ return await this.handleLogin(query.token, req, res, query.redirectTo);
30
44
  }
31
45
  async postLogin(req, res, body) {
32
- return await this.handleLogin(body.token, req, res);
46
+ if (!this.config.embedEnabled) {
47
+ res.status(501).json({
48
+ error: 'server_error',
49
+ error_description: 'Embed login is not enabled on this instance',
50
+ });
51
+ return;
52
+ }
53
+ return await this.handleLogin(body.token, req, res, body.redirectTo);
33
54
  }
34
- async handleLogin(subjectToken, req, res) {
35
- const user = await this.tokenExchangeService.embedLogin(subjectToken);
36
- this.authService.issueCookie(res, user, true, req.browserId);
37
- res.redirect(this.urlService.getInstanceBaseUrl() + '/');
55
+ async handleLogin(subjectToken, req, res, redirect) {
56
+ const { user, subject, issuer, kid } = await this.tokenExchangeService.embedLogin(subjectToken);
57
+ this.authService.issueCookie(res, user, true, req.browserId, true, {
58
+ sameSite: 'none',
59
+ secure: true,
60
+ });
61
+ this.eventService.emit('embed-login', {
62
+ subject,
63
+ issuer,
64
+ kid,
65
+ clientIp: req.ip ?? 'unknown',
66
+ });
67
+ const safePath = (0, validate_redirect_url_1.validateRedirectUrl)(redirect ?? '');
68
+ res.redirect(this.urlService.getInstanceBaseUrl() + safePath);
38
69
  }
39
70
  };
40
71
  exports.EmbedAuthController = EmbedAuthController;
41
72
  __decorate([
42
73
  (0, decorators_1.Get)('/', {
43
74
  skipAuth: true,
44
- ipRateLimit: { limit: 20, windowMs: 1 * constants_1.Time.minutes.toMilliseconds },
75
+ ipRateLimit: {
76
+ limit: configService.rateLimitEmbedLogin,
77
+ windowMs: 1 * constants_1.Time.minutes.toMilliseconds,
78
+ },
45
79
  }),
46
80
  __param(2, decorators_1.Query),
47
81
  __metadata("design:type", Function),
@@ -51,7 +85,10 @@ __decorate([
51
85
  __decorate([
52
86
  (0, decorators_1.Post)('/', {
53
87
  skipAuth: true,
54
- ipRateLimit: { limit: 20, windowMs: 1 * constants_1.Time.minutes.toMilliseconds },
88
+ ipRateLimit: {
89
+ limit: configService.rateLimitEmbedLogin,
90
+ windowMs: 1 * constants_1.Time.minutes.toMilliseconds,
91
+ },
55
92
  }),
56
93
  __param(2, decorators_1.Body),
57
94
  __metadata("design:type", Function),
@@ -60,8 +97,10 @@ __decorate([
60
97
  ], EmbedAuthController.prototype, "postLogin", null);
61
98
  exports.EmbedAuthController = EmbedAuthController = __decorate([
62
99
  (0, decorators_1.RestController)('/auth/embed'),
63
- __metadata("design:paramtypes", [token_exchange_service_1.TokenExchangeService,
100
+ __metadata("design:paramtypes", [token_exchange_config_1.TokenExchangeConfig,
101
+ token_exchange_service_1.TokenExchangeService,
64
102
  auth_service_1.AuthService,
65
- url_service_1.UrlService])
103
+ url_service_1.UrlService,
104
+ event_service_1.EventService])
66
105
  ], EmbedAuthController);
67
106
  //# sourceMappingURL=embed-auth.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"embed-auth.controller.js","sourceRoot":"","sources":["../../../../src/modules/token-exchange/controllers/embed-auth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,8CAAuE;AACvE,8CAAsC;AACtC,gDAAyE;AAGzE,sDAAkD;AAElD,wDAAoD;AAEpD,+EAA0E;AAGnE,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC/B,YACkB,oBAA0C,EAC1C,WAAwB,EACxB,UAAsB;QAFtB,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,gBAAW,GAAX,WAAW,CAAa;QACxB,eAAU,GAAV,UAAU,CAAY;IACrC,CAAC;IAME,AAAN,KAAK,CAAC,QAAQ,CAAC,GAAoB,EAAE,GAAa,EAAS,KAAyB;QACnF,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAMK,AAAN,KAAK,CAAC,SAAS,CAAC,GAAoB,EAAE,GAAa,EAAQ,IAAuB;QACjF,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,YAAoB,EAAE,GAAoB,EAAE,GAAa;QAClF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAEtE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAM7D,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,GAAG,GAAG,CAAC,CAAC;IAC1D,CAAC;CACD,CAAA;AAlCY,kDAAmB;AAWzB;IAJL,IAAA,gBAAG,EAAC,GAAG,EAAE;QACT,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,gBAAI,CAAC,OAAO,CAAC,cAAc,EAAE;KACrE,CAAC;IACmD,WAAA,kBAAK,CAAA;;qDAAQ,8BAAkB;;mDAEnF;AAMK;IAJL,IAAA,iBAAI,EAAC,GAAG,EAAE;QACV,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,gBAAI,CAAC,OAAO,CAAC,cAAc,EAAE;KACrE,CAAC;IACoD,WAAA,iBAAI,CAAA;;qDAAO,6BAAiB;;oDAEjF;8BArBW,mBAAmB;IAD/B,IAAA,2BAAc,EAAC,aAAa,CAAC;qCAGW,6CAAoB;QAC7B,0BAAW;QACZ,wBAAU;GAJ5B,mBAAmB,CAkC/B"}
1
+ {"version":3,"file":"embed-auth.controller.js","sourceRoot":"","sources":["../../../../src/modules/token-exchange/controllers/embed-auth.controller.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Response } from 'express';
2
- import { AuthlessRequest } from '../../requests';
2
+ import { AuthlessRequest } from '../../../requests';
3
3
  export declare class TokenExchangeController {
4
4
  private readonly config;
5
5
  private readonly errorReporter;
@@ -14,11 +14,14 @@ const constants_1 = require("@n8n/constants");
14
14
  const decorators_1 = require("@n8n/decorators");
15
15
  const di_1 = require("@n8n/di");
16
16
  const n8n_core_1 = require("n8n-core");
17
- const event_service_1 = require("../../events/event.service");
18
17
  const zod_1 = require("zod");
19
- const token_exchange_config_1 = require("./token-exchange.config");
20
- const token_exchange_schemas_1 = require("./token-exchange.schemas");
21
- const token_exchange_service_1 = require("./token-exchange.service");
18
+ const auth_error_1 = require("../../../errors/response-errors/auth.error");
19
+ const bad_request_error_1 = require("../../../errors/response-errors/bad-request.error");
20
+ const event_service_1 = require("../../../events/event.service");
21
+ const token_exchange_service_1 = require("../services/token-exchange.service");
22
+ const token_exchange_config_1 = require("../token-exchange.config");
23
+ const token_exchange_schemas_1 = require("../token-exchange.schemas");
24
+ const configService = di_1.Container.get(token_exchange_config_1.TokenExchangeConfig);
22
25
  let TokenExchangeController = class TokenExchangeController {
23
26
  constructor() {
24
27
  this.config = di_1.Container.get(token_exchange_config_1.TokenExchangeConfig);
@@ -73,6 +76,45 @@ let TokenExchangeController = class TokenExchangeController {
73
76
  });
74
77
  }
75
78
  catch (error) {
79
+ if (error instanceof auth_error_1.AuthError) {
80
+ this.eventService.emit('token-exchange-failed', {
81
+ subject: '',
82
+ failureReason: error.message,
83
+ grantType: parsed.data.grant_type,
84
+ clientIp,
85
+ });
86
+ res.status(400).json({
87
+ error: 'invalid_grant',
88
+ error_description: 'Token exchange failed',
89
+ });
90
+ return;
91
+ }
92
+ if (error instanceof bad_request_error_1.BadRequestError) {
93
+ this.eventService.emit('token-exchange-failed', {
94
+ subject: '',
95
+ failureReason: error.message,
96
+ grantType: parsed.data.grant_type,
97
+ clientIp,
98
+ });
99
+ res.status(400).json({
100
+ error: 'invalid_request',
101
+ error_description: error.message,
102
+ });
103
+ return;
104
+ }
105
+ if (error instanceof zod_1.ZodError) {
106
+ this.eventService.emit('token-exchange-failed', {
107
+ subject: '',
108
+ failureReason: 'invalid_claims',
109
+ grantType: parsed.data.grant_type,
110
+ clientIp,
111
+ });
112
+ res.status(400).json({
113
+ error: 'invalid_request',
114
+ error_description: 'Token claims validation failed',
115
+ });
116
+ return;
117
+ }
76
118
  this.errorReporter.error(error instanceof Error ? error : new Error(String(error)));
77
119
  this.eventService.emit('token-exchange-failed', {
78
120
  subject: '',
@@ -91,7 +133,10 @@ exports.TokenExchangeController = TokenExchangeController;
91
133
  __decorate([
92
134
  (0, decorators_1.Post)('/token', {
93
135
  skipAuth: true,
94
- ipRateLimit: { limit: 20, windowMs: 1 * constants_1.Time.minutes.toMilliseconds },
136
+ ipRateLimit: {
137
+ limit: configService.rateLimitTokenExchange,
138
+ windowMs: 1 * constants_1.Time.minutes.toMilliseconds,
139
+ },
95
140
  }),
96
141
  __metadata("design:type", Function),
97
142
  __metadata("design:paramtypes", [Object, Object]),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-exchange.controller.js","sourceRoot":"","sources":["../../../../src/modules/token-exchange/controllers/token-exchange.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAAsC;AACtC,gDAAuD;AACvD,gCAAoC;AAEpC,uCAAyC;AACzC,6BAAkC;AAElC,oEAAgE;AAChE,kFAA6E;AAC7E,0DAAsD;AAGtD,+EAA0E;AAC1E,oEAA+D;AAC/D,sEAAkG;AAElG,MAAM,aAAa,GAAG,cAAS,CAAC,GAAG,CAAC,2CAAmB,CAAC,CAAC;AAGlD,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAA7B;QACW,WAAM,GAAG,cAAS,CAAC,GAAG,CAAC,2CAAmB,CAAC,CAAC;QAE5C,kBAAa,GAAG,cAAS,CAAC,GAAG,CAAC,wBAAa,CAAC,CAAC;QAE7C,iBAAY,GAAG,cAAS,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC;QAE3C,yBAAoB,GAAG,cAAS,CAAC,GAAG,CAAC,6CAAoB,CAAC,CAAC;IA6H7E,CAAC;IA/GM,AAAN,KAAK,CAAC,aAAa,CAAC,GAAoB,EAAE,GAAa;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACpB,KAAK,EAAE,cAAc;gBACrB,iBAAiB,EAAE,gDAAgD;aACnE,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC;QAIrC,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAC;aAC/B,MAAM,CAAC,EAAE,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;aAC7C,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,aAAa,EAAE,UAAU,KAAK,kDAAyB,EAAE,CAAC;YAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACpB,KAAK,EAAE,wBAAwB;gBAC/B,iBAAiB,EAAE,uBAAuB,kDAAyB,GAAG;aACtE,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAGD,MAAM,MAAM,GAAG,mDAA0B,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACpB,KAAK,EAAE,iBAAiB;gBACxB,iBAAiB,EAAE,UAAU,EAAE,OAAO,IAAI,4BAA4B;aACtE,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAGD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAErE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBAClD,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;gBACzB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;gBAC9B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;gBACjC,QAAQ;gBACR,MAAM,EAAE,MAAM,CAAC,MAAM;aACrB,CAAC,CAAC;YAEH,GAAG,CAAC,IAAI,CAAC;gBACR,YAAY,EAAE,MAAM,CAAC,WAAW;gBAChC,UAAU,EAAE,QAAQ;gBACpB,UAAU,EAAE,MAAM,CAAC,SAAS;gBAC5B,iBAAiB,EAAE,+CAA+C;aAClE,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,sBAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBAC/C,OAAO,EAAE,EAAE;oBACX,aAAa,EAAE,KAAK,CAAC,OAAO;oBAC5B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;oBACjC,QAAQ;iBACR,CAAC,CAAC;gBACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACpB,KAAK,EAAE,eAAe;oBACtB,iBAAiB,EAAE,uBAAuB;iBAC1C,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YAED,IAAI,KAAK,YAAY,mCAAe,EAAE,CAAC;gBACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBAC/C,OAAO,EAAE,EAAE;oBACX,aAAa,EAAE,KAAK,CAAC,OAAO;oBAC5B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;oBACjC,QAAQ;iBACR,CAAC,CAAC;gBACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACpB,KAAK,EAAE,iBAAiB;oBACxB,iBAAiB,EAAE,KAAK,CAAC,OAAO;iBAChC,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YAED,IAAI,KAAK,YAAY,cAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBAC/C,OAAO,EAAE,EAAE;oBACX,aAAa,EAAE,gBAAgB;oBAC/B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;oBACjC,QAAQ;iBACR,CAAC,CAAC;gBACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACpB,KAAK,EAAE,iBAAiB;oBACxB,iBAAiB,EAAE,gCAAgC;iBACnD,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YAED,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBAC/C,OAAO,EAAE,EAAE;gBACX,aAAa,EAAE,gBAAgB;gBAC/B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;gBACjC,QAAQ;aACR,CAAC,CAAC;YACH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACpB,KAAK,EAAE,cAAc;gBACrB,iBAAiB,EAAE,oDAAoD;aACvE,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;CACD,CAAA;AApIY,0DAAuB;AAqB7B;IAPL,IAAA,iBAAI,EAAC,QAAQ,EAAE;QACf,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE;YACZ,KAAK,EAAE,aAAa,CAAC,sBAAsB;YAC3C,QAAQ,EAAE,CAAC,GAAG,gBAAI,CAAC,OAAO,CAAC,cAAc;SACzC;KACD,CAAC;;;;4DA+GD;kCAnIW,uBAAuB;IADnC,IAAA,2BAAc,EAAC,aAAa,CAAC;GACjB,uBAAuB,CAoInC"}
@@ -0,0 +1,10 @@
1
+ import { WithTimestamps } from '@n8n/db';
2
+ import type { TrustedKeySourceStatus, TrustedKeySourceType } from '../../token-exchange.schemas';
3
+ export declare class TrustedKeySourceEntity extends WithTimestamps {
4
+ id: string;
5
+ type: TrustedKeySourceType;
6
+ config: string;
7
+ status: TrustedKeySourceStatus;
8
+ lastError: string | null;
9
+ lastRefreshedAt: Date | null;
10
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TrustedKeySourceEntity = void 0;
13
+ const db_1 = require("@n8n/db");
14
+ const typeorm_1 = require("@n8n/typeorm");
15
+ let TrustedKeySourceEntity = class TrustedKeySourceEntity extends db_1.WithTimestamps {
16
+ };
17
+ exports.TrustedKeySourceEntity = TrustedKeySourceEntity;
18
+ __decorate([
19
+ (0, typeorm_1.PrimaryColumn)('varchar', { length: 36 }),
20
+ __metadata("design:type", String)
21
+ ], TrustedKeySourceEntity.prototype, "id", void 0);
22
+ __decorate([
23
+ (0, typeorm_1.Column)({ type: 'varchar', length: 32 }),
24
+ __metadata("design:type", String)
25
+ ], TrustedKeySourceEntity.prototype, "type", void 0);
26
+ __decorate([
27
+ (0, typeorm_1.Column)('text'),
28
+ __metadata("design:type", String)
29
+ ], TrustedKeySourceEntity.prototype, "config", void 0);
30
+ __decorate([
31
+ (0, typeorm_1.Column)({ type: 'varchar', length: 32, default: 'pending' }),
32
+ __metadata("design:type", String)
33
+ ], TrustedKeySourceEntity.prototype, "status", void 0);
34
+ __decorate([
35
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
36
+ __metadata("design:type", Object)
37
+ ], TrustedKeySourceEntity.prototype, "lastError", void 0);
38
+ __decorate([
39
+ (0, db_1.DateTimeColumn)({ nullable: true }),
40
+ __metadata("design:type", Object)
41
+ ], TrustedKeySourceEntity.prototype, "lastRefreshedAt", void 0);
42
+ exports.TrustedKeySourceEntity = TrustedKeySourceEntity = __decorate([
43
+ (0, typeorm_1.Entity)('trusted_key_source')
44
+ ], TrustedKeySourceEntity);
45
+ //# sourceMappingURL=trusted-key-source.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trusted-key-source.entity.js","sourceRoot":"","sources":["../../../../../src/modules/token-exchange/database/entities/trusted-key-source.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAyD;AACzD,0CAA6D;AAKtD,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,mBAAc;CAkBzD,CAAA;AAlBY,wDAAsB;AAElC;IADC,IAAA,uBAAa,EAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;kDAC9B;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;oDACb;AAG3B;IADC,IAAA,gBAAM,EAAC,MAAM,CAAC;;sDACA;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;;sDAC7B;AAG/B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDAChB;AAGzB;IADC,IAAA,mBAAc,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+DACN;iCAjBjB,sBAAsB;IADlC,IAAA,gBAAM,EAAC,oBAAoB,CAAC;GAChB,sBAAsB,CAkBlC"}
@@ -0,0 +1,9 @@
1
+ import type { Relation } from '@n8n/typeorm';
2
+ import { TrustedKeySourceEntity } from './trusted-key-source.entity';
3
+ export declare class TrustedKeyEntity {
4
+ sourceId: string;
5
+ kid: string;
6
+ data: string;
7
+ createdAt: Date;
8
+ source: Relation<TrustedKeySourceEntity>;
9
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TrustedKeyEntity = void 0;
13
+ const db_1 = require("@n8n/db");
14
+ const typeorm_1 = require("@n8n/typeorm");
15
+ const trusted_key_source_entity_1 = require("./trusted-key-source.entity");
16
+ let TrustedKeyEntity = class TrustedKeyEntity {
17
+ };
18
+ exports.TrustedKeyEntity = TrustedKeyEntity;
19
+ __decorate([
20
+ (0, typeorm_1.PrimaryColumn)('varchar', { length: 36 }),
21
+ __metadata("design:type", String)
22
+ ], TrustedKeyEntity.prototype, "sourceId", void 0);
23
+ __decorate([
24
+ (0, typeorm_1.PrimaryColumn)('varchar', { length: 255 }),
25
+ __metadata("design:type", String)
26
+ ], TrustedKeyEntity.prototype, "kid", void 0);
27
+ __decorate([
28
+ (0, typeorm_1.Column)('text'),
29
+ __metadata("design:type", String)
30
+ ], TrustedKeyEntity.prototype, "data", void 0);
31
+ __decorate([
32
+ (0, db_1.DateTimeColumn)(),
33
+ __metadata("design:type", Date)
34
+ ], TrustedKeyEntity.prototype, "createdAt", void 0);
35
+ __decorate([
36
+ (0, typeorm_1.ManyToOne)(() => trusted_key_source_entity_1.TrustedKeySourceEntity, { onDelete: 'CASCADE' }),
37
+ (0, typeorm_1.JoinColumn)({ name: 'sourceId' }),
38
+ __metadata("design:type", Object)
39
+ ], TrustedKeyEntity.prototype, "source", void 0);
40
+ exports.TrustedKeyEntity = TrustedKeyEntity = __decorate([
41
+ (0, typeorm_1.Entity)('trusted_key')
42
+ ], TrustedKeyEntity);
43
+ //# sourceMappingURL=trusted-key.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trusted-key.entity.js","sourceRoot":"","sources":["../../../../../src/modules/token-exchange/database/entities/trusted-key.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAyC;AAEzC,0CAAoF;AAEpF,2EAAqE;AAG9D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAgB5B,CAAA;AAhBY,4CAAgB;AAE5B;IADC,IAAA,uBAAa,EAAC,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;kDACxB;AAGjB;IADC,IAAA,uBAAa,EAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;6CAC9B;AAGZ;IADC,IAAA,gBAAM,EAAC,MAAM,CAAC;;8CACF;AAGb;IADC,IAAA,mBAAc,GAAE;8BACN,IAAI;mDAAC;AAIhB;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kDAAsB,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAChE,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;;gDACQ;2BAf7B,gBAAgB;IAD5B,IAAA,gBAAM,EAAC,aAAa,CAAC;GACT,gBAAgB,CAgB5B"}
@@ -0,0 +1,5 @@
1
+ import { DataSource, Repository } from '@n8n/typeorm';
2
+ import { TrustedKeySourceEntity } from '../entities/trusted-key-source.entity';
3
+ export declare class TrustedKeySourceRepository extends Repository<TrustedKeySourceEntity> {
4
+ constructor(dataSource: DataSource);
5
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TrustedKeySourceRepository = void 0;
13
+ const di_1 = require("@n8n/di");
14
+ const typeorm_1 = require("@n8n/typeorm");
15
+ const trusted_key_source_entity_1 = require("../entities/trusted-key-source.entity");
16
+ let TrustedKeySourceRepository = class TrustedKeySourceRepository extends typeorm_1.Repository {
17
+ constructor(dataSource) {
18
+ super(trusted_key_source_entity_1.TrustedKeySourceEntity, dataSource.manager);
19
+ }
20
+ };
21
+ exports.TrustedKeySourceRepository = TrustedKeySourceRepository;
22
+ exports.TrustedKeySourceRepository = TrustedKeySourceRepository = __decorate([
23
+ (0, di_1.Service)(),
24
+ __metadata("design:paramtypes", [typeorm_1.DataSource])
25
+ ], TrustedKeySourceRepository);
26
+ //# sourceMappingURL=trusted-key-source.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trusted-key-source.repository.js","sourceRoot":"","sources":["../../../../../src/modules/token-exchange/database/repositories/trusted-key-source.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAkC;AAClC,0CAAsD;AAEtD,qFAA+E;AAGxE,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,oBAAkC;IACjF,YAAY,UAAsB;QACjC,KAAK,CAAC,kDAAsB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;CACD,CAAA;AAJY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,YAAO,GAAE;qCAEe,oBAAU;GADtB,0BAA0B,CAItC"}
@@ -0,0 +1,7 @@
1
+ import { DataSource, Repository } from '@n8n/typeorm';
2
+ import { TrustedKeyEntity } from '../entities/trusted-key.entity';
3
+ export declare class TrustedKeyRepository extends Repository<TrustedKeyEntity> {
4
+ constructor(dataSource: DataSource);
5
+ findBySourceAndKid(sourceId: string, kid: string): Promise<TrustedKeyEntity | null>;
6
+ findAllByKid(kid: string): Promise<TrustedKeyEntity[]>;
7
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TrustedKeyRepository = void 0;
13
+ const di_1 = require("@n8n/di");
14
+ const typeorm_1 = require("@n8n/typeorm");
15
+ const trusted_key_entity_1 = require("../entities/trusted-key.entity");
16
+ let TrustedKeyRepository = class TrustedKeyRepository extends typeorm_1.Repository {
17
+ constructor(dataSource) {
18
+ super(trusted_key_entity_1.TrustedKeyEntity, dataSource.manager);
19
+ }
20
+ async findBySourceAndKid(sourceId, kid) {
21
+ return await this.findOneBy({ sourceId, kid });
22
+ }
23
+ async findAllByKid(kid) {
24
+ return await this.findBy({ kid });
25
+ }
26
+ };
27
+ exports.TrustedKeyRepository = TrustedKeyRepository;
28
+ exports.TrustedKeyRepository = TrustedKeyRepository = __decorate([
29
+ (0, di_1.Service)(),
30
+ __metadata("design:paramtypes", [typeorm_1.DataSource])
31
+ ], TrustedKeyRepository);
32
+ //# sourceMappingURL=trusted-key.repository.js.map