n8n 2.0.1 → 2.1.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 (349) hide show
  1. package/dist/active-executions.js +7 -1
  2. package/dist/active-executions.js.map +1 -1
  3. package/dist/active-workflow-manager.d.ts +0 -1
  4. package/dist/active-workflow-manager.js +5 -8
  5. package/dist/active-workflow-manager.js.map +1 -1
  6. package/dist/auth/auth.service.js +1 -7
  7. package/dist/auth/auth.service.js.map +1 -1
  8. package/dist/build.tsbuildinfo +1 -1
  9. package/dist/commands/base-command.js +1 -2
  10. package/dist/commands/base-command.js.map +1 -1
  11. package/dist/commands/start.js +3 -0
  12. package/dist/commands/start.js.map +1 -1
  13. package/dist/commands/user-management/reset.js +1 -1
  14. package/dist/commands/user-management/reset.js.map +1 -1
  15. package/dist/commands/worker.js +3 -0
  16. package/dist/commands/worker.js.map +1 -1
  17. package/dist/concurrency/concurrency-control.service.js +2 -1
  18. package/dist/concurrency/concurrency-control.service.js.map +1 -1
  19. package/dist/config/schema.js.map +1 -1
  20. package/dist/config/types.d.ts +0 -1
  21. package/dist/controllers/ai.controller.d.ts +3 -0
  22. package/dist/controllers/ai.controller.js +2 -1
  23. package/dist/controllers/ai.controller.js.map +1 -1
  24. package/dist/controllers/api-keys.controller.js +5 -0
  25. package/dist/controllers/api-keys.controller.js.map +1 -1
  26. package/dist/controllers/e2e.controller.d.ts +1 -0
  27. package/dist/controllers/e2e.controller.js +10 -11
  28. package/dist/controllers/e2e.controller.js.map +1 -1
  29. package/dist/controllers/invitation.controller.d.ts +3 -1
  30. package/dist/controllers/invitation.controller.js +6 -7
  31. package/dist/controllers/invitation.controller.js.map +1 -1
  32. package/dist/controllers/oauth/oauth1-credential.controller.d.ts +6 -3
  33. package/dist/controllers/oauth/oauth1-credential.controller.js +39 -57
  34. package/dist/controllers/oauth/oauth1-credential.controller.js.map +1 -1
  35. package/dist/controllers/oauth/oauth2-credential.controller.d.ts +8 -5
  36. package/dist/controllers/oauth/oauth2-credential.controller.js +41 -179
  37. package/dist/controllers/oauth/oauth2-credential.controller.js.map +1 -1
  38. package/dist/controllers/owner.controller.d.ts +4 -10
  39. package/dist/controllers/owner.controller.js +6 -42
  40. package/dist/controllers/owner.controller.js.map +1 -1
  41. package/dist/controllers/project.controller.d.ts +4 -0
  42. package/dist/credentials/credential-resolution-provider.interface.d.ts +12 -0
  43. package/dist/credentials/credential-resolution-provider.interface.js +3 -0
  44. package/dist/credentials/credential-resolution-provider.interface.js.map +1 -0
  45. package/dist/credentials/credentials-finder.service.d.ts +4 -0
  46. package/dist/credentials/credentials-finder.service.js +3 -0
  47. package/dist/credentials/credentials-finder.service.js.map +1 -1
  48. package/dist/credentials/credentials.controller.d.ts +12 -4
  49. package/dist/credentials/credentials.controller.js +9 -6
  50. package/dist/credentials/credentials.controller.js.map +1 -1
  51. package/dist/credentials/credentials.service.d.ts +13 -0
  52. package/dist/credentials/credentials.service.ee.d.ts +9 -2
  53. package/dist/credentials/credentials.service.ee.js +4 -1
  54. package/dist/credentials/credentials.service.ee.js.map +1 -1
  55. package/dist/credentials/credentials.service.js +10 -6
  56. package/dist/credentials/credentials.service.js.map +1 -1
  57. package/dist/credentials/dynamic-credential-storage.interface.d.ts +11 -0
  58. package/dist/credentials/dynamic-credential-storage.interface.js +3 -0
  59. package/dist/credentials/dynamic-credential-storage.interface.js.map +1 -0
  60. package/dist/credentials/dynamic-credentials-proxy.d.ts +14 -0
  61. package/dist/credentials/dynamic-credentials-proxy.js +50 -0
  62. package/dist/credentials/dynamic-credentials-proxy.js.map +1 -0
  63. package/dist/credentials-helper.d.ts +5 -2
  64. package/dist/credentials-helper.js +25 -7
  65. package/dist/credentials-helper.js.map +1 -1
  66. package/dist/environments.ee/source-control/source-control-import.service.ee.js.map +1 -1
  67. package/dist/environments.ee/source-control/source-control-status.service.ee.d.ts +2 -2
  68. package/dist/environments.ee/source-control/source-control.controller.ee.d.ts +4 -4
  69. package/dist/environments.ee/source-control/source-control.service.ee.d.ts +2 -2
  70. package/dist/environments.ee/source-control/source-control.service.ee.js +67 -39
  71. package/dist/environments.ee/source-control/source-control.service.ee.js.map +1 -1
  72. package/dist/errors/single-webhook-trigger.error.d.ts +4 -0
  73. package/dist/errors/single-webhook-trigger.error.js +11 -0
  74. package/dist/errors/single-webhook-trigger.error.js.map +1 -0
  75. package/dist/eventbus/event-message-classes/index.d.ts +2 -2
  76. package/dist/eventbus/event-message-classes/index.js +1 -0
  77. package/dist/eventbus/event-message-classes/index.js.map +1 -1
  78. package/dist/events/maps/relay.event-map.d.ts +6 -1
  79. package/dist/events/relays/log-streaming.event-relay.d.ts +1 -0
  80. package/dist/events/relays/log-streaming.event-relay.js +12 -0
  81. package/dist/events/relays/log-streaming.event-relay.js.map +1 -1
  82. package/dist/events/relays/telemetry.event-relay.js +14 -3
  83. package/dist/events/relays/telemetry.event-relay.js.map +1 -1
  84. package/dist/execution-lifecycle/execution-lifecycle-hooks.d.ts +2 -2
  85. package/dist/execution-lifecycle/execution-lifecycle-hooks.js +15 -3
  86. package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
  87. package/dist/license.d.ts +6 -0
  88. package/dist/license.js +27 -0
  89. package/dist/license.js.map +1 -1
  90. package/dist/load-nodes-and-credentials.d.ts +2 -0
  91. package/dist/load-nodes-and-credentials.js +97 -86
  92. package/dist/load-nodes-and-credentials.js.map +1 -1
  93. package/dist/modules/breaking-changes/rules/index.d.ts +1 -1
  94. package/dist/modules/breaking-changes/rules/v2/index.d.ts +2 -1
  95. package/dist/modules/breaking-changes/rules/v2/index.js +2 -0
  96. package/dist/modules/breaking-changes/rules/v2/index.js.map +1 -1
  97. package/dist/modules/breaking-changes/rules/v2/pyodide-removed.rule.js +2 -1
  98. package/dist/modules/breaking-changes/rules/v2/pyodide-removed.rule.js.map +1 -1
  99. package/dist/modules/breaking-changes/rules/v2/settings-file-permissions.rule.d.ts +3 -3
  100. package/dist/modules/breaking-changes/rules/v2/settings-file-permissions.rule.js +11 -4
  101. package/dist/modules/breaking-changes/rules/v2/settings-file-permissions.rule.js.map +1 -1
  102. package/dist/modules/breaking-changes/rules/v2/start-node-removed.rule.d.ts +11 -0
  103. package/dist/modules/breaking-changes/rules/v2/start-node-removed.rule.js +63 -0
  104. package/dist/modules/breaking-changes/rules/v2/start-node-removed.rule.js.map +1 -0
  105. package/dist/modules/breaking-changes/rules/v2/task-runner-docker-image.rule.d.ts +3 -0
  106. package/dist/modules/breaking-changes/rules/v2/task-runner-docker-image.rule.js +15 -2
  107. package/dist/modules/breaking-changes/rules/v2/task-runner-docker-image.rule.js.map +1 -1
  108. package/dist/modules/breaking-changes/rules/v2/task-runners.rule.d.ts +3 -2
  109. package/dist/modules/breaking-changes/rules/v2/task-runners.rule.js +11 -2
  110. package/dist/modules/breaking-changes/rules/v2/task-runners.rule.js.map +1 -1
  111. package/dist/modules/chat-hub/chat-hub-agent.entity.d.ts +4 -3
  112. package/dist/modules/chat-hub/chat-hub-agent.entity.js +4 -0
  113. package/dist/modules/chat-hub/chat-hub-agent.entity.js.map +1 -1
  114. package/dist/modules/chat-hub/chat-hub-agent.service.d.ts +5 -21
  115. package/dist/modules/chat-hub/chat-hub-agent.service.js +17 -11
  116. package/dist/modules/chat-hub/chat-hub-agent.service.js.map +1 -1
  117. package/dist/modules/chat-hub/chat-hub-credentials.service.js +4 -2
  118. package/dist/modules/chat-hub/chat-hub-credentials.service.js.map +1 -1
  119. package/dist/modules/chat-hub/chat-hub-message.entity.js +1 -1
  120. package/dist/modules/chat-hub/chat-hub-message.entity.js.map +1 -1
  121. package/dist/modules/chat-hub/chat-hub-session.entity.d.ts +2 -0
  122. package/dist/modules/chat-hub/chat-hub-session.entity.js +6 -1
  123. package/dist/modules/chat-hub/chat-hub-session.entity.js.map +1 -1
  124. package/dist/modules/chat-hub/chat-hub-workflow.service.d.ts +17 -4
  125. package/dist/modules/chat-hub/chat-hub-workflow.service.js +161 -31
  126. package/dist/modules/chat-hub/chat-hub-workflow.service.js.map +1 -1
  127. package/dist/modules/chat-hub/chat-hub.attachment.service.d.ts +2 -0
  128. package/dist/modules/chat-hub/chat-hub.attachment.service.js +12 -0
  129. package/dist/modules/chat-hub/chat-hub.attachment.service.js.map +1 -1
  130. package/dist/modules/chat-hub/chat-hub.constants.d.ts +7 -3
  131. package/dist/modules/chat-hub/chat-hub.constants.js +468 -10
  132. package/dist/modules/chat-hub/chat-hub.constants.js.map +1 -1
  133. package/dist/modules/chat-hub/chat-hub.controller.d.ts +3 -1
  134. package/dist/modules/chat-hub/chat-hub.controller.js +7 -14
  135. package/dist/modules/chat-hub/chat-hub.controller.js.map +1 -1
  136. package/dist/modules/chat-hub/chat-hub.models.service.d.ts +35 -0
  137. package/dist/modules/chat-hub/chat-hub.models.service.js +640 -0
  138. package/dist/modules/chat-hub/chat-hub.models.service.js.map +1 -0
  139. package/dist/modules/chat-hub/chat-hub.module.js +0 -8
  140. package/dist/modules/chat-hub/chat-hub.module.js.map +1 -1
  141. package/dist/modules/chat-hub/chat-hub.service.d.ts +13 -26
  142. package/dist/modules/chat-hub/chat-hub.service.js +162 -760
  143. package/dist/modules/chat-hub/chat-hub.service.js.map +1 -1
  144. package/dist/modules/chat-hub/chat-hub.types.d.ts +27 -6
  145. package/dist/modules/chat-hub/chat-hub.types.js +11 -3
  146. package/dist/modules/chat-hub/chat-hub.types.js.map +1 -1
  147. package/dist/modules/chat-hub/chat-session.repository.js +17 -2
  148. package/dist/modules/chat-hub/chat-session.repository.js.map +1 -1
  149. package/dist/modules/chat-hub/context-limits.js +62 -5
  150. package/dist/modules/chat-hub/context-limits.js.map +1 -1
  151. package/dist/modules/data-table/data-table-column.repository.d.ts +15 -0
  152. package/dist/modules/data-table/data-table-column.repository.js +33 -17
  153. package/dist/modules/data-table/data-table-column.repository.js.map +1 -1
  154. package/dist/modules/data-table/data-table-ddl.service.d.ts +1 -0
  155. package/dist/modules/data-table/data-table-ddl.service.js +5 -0
  156. package/dist/modules/data-table/data-table-ddl.service.js.map +1 -1
  157. package/dist/modules/data-table/data-table-rows.repository.js +1 -1
  158. package/dist/modules/data-table/data-table-rows.repository.js.map +1 -1
  159. package/dist/modules/data-table/data-table.controller.d.ts +16 -1
  160. package/dist/modules/data-table/data-table.controller.js +39 -35
  161. package/dist/modules/data-table/data-table.controller.js.map +1 -1
  162. package/dist/modules/data-table/data-table.repository.d.ts +4 -1
  163. package/dist/modules/data-table/data-table.repository.js +12 -2
  164. package/dist/modules/data-table/data-table.repository.js.map +1 -1
  165. package/dist/modules/data-table/data-table.service.d.ts +13 -1
  166. package/dist/modules/data-table/data-table.service.js +13 -1
  167. package/dist/modules/data-table/data-table.service.js.map +1 -1
  168. package/dist/modules/data-table/errors/data-table-column-not-found.error.d.ts +2 -2
  169. package/dist/modules/data-table/errors/data-table-column-not-found.error.js +3 -5
  170. package/dist/modules/data-table/errors/data-table-column-not-found.error.js.map +1 -1
  171. package/dist/modules/data-table/errors/data-table-not-found.error.d.ts +2 -2
  172. package/dist/modules/data-table/errors/data-table-not-found.error.js +3 -5
  173. package/dist/modules/data-table/errors/data-table-not-found.error.js.map +1 -1
  174. package/dist/modules/data-table/utils/sql-utils.d.ts +1 -0
  175. package/dist/modules/data-table/utils/sql-utils.js +10 -0
  176. package/dist/modules/data-table/utils/sql-utils.js.map +1 -1
  177. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/bearer-token-extractor.d.ts +9 -0
  178. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/bearer-token-extractor.js +42 -0
  179. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/bearer-token-extractor.js.map +1 -0
  180. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/http-header-extractor.d.ts +9 -0
  181. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/http-header-extractor.js +141 -0
  182. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/http-header-extractor.js.map +1 -0
  183. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/index.d.ts +2 -0
  184. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/index.js +5 -0
  185. package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/index.js.map +1 -0
  186. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/identifier-interface.d.ts +7 -0
  187. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/identifier-interface.js +7 -0
  188. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/identifier-interface.js.map +1 -0
  189. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.d.ts +78 -0
  190. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js +223 -0
  191. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js.map +1 -0
  192. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.d.ts +37 -0
  193. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js +160 -0
  194. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js.map +1 -0
  195. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-utils.d.ts +13 -0
  196. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-utils.js +17 -0
  197. package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-utils.js.map +1 -0
  198. package/dist/modules/dynamic-credentials.ee/credential-resolvers/index.d.ts +2 -0
  199. package/dist/modules/dynamic-credentials.ee/credential-resolvers/index.js +5 -0
  200. package/dist/modules/dynamic-credentials.ee/credential-resolvers/index.js.map +1 -0
  201. package/dist/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.d.ts +103 -0
  202. package/dist/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.js +174 -0
  203. package/dist/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.js.map +1 -0
  204. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-entry-storage.d.ts +9 -0
  205. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-entry-storage.js +56 -0
  206. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-entry-storage.js.map +1 -0
  207. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/storage-interface.d.ts +5 -0
  208. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/storage-interface.js +3 -0
  209. package/dist/modules/dynamic-credentials.ee/credential-resolvers/storage/storage-interface.js.map +1 -0
  210. package/dist/modules/dynamic-credentials.ee/credential-resolvers/stub-credential-resolver.d.ts +28 -0
  211. package/dist/modules/dynamic-credentials.ee/credential-resolvers/stub-credential-resolver.js +86 -0
  212. package/dist/modules/dynamic-credentials.ee/credential-resolvers/stub-credential-resolver.js.map +1 -0
  213. package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.d.ts +16 -0
  214. package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.js +172 -0
  215. package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.js.map +1 -0
  216. package/dist/modules/dynamic-credentials.ee/database/entities/credential-resolver.d.ts +8 -0
  217. package/dist/modules/dynamic-credentials.ee/database/entities/credential-resolver.js +33 -0
  218. package/dist/modules/dynamic-credentials.ee/database/entities/credential-resolver.js.map +1 -0
  219. package/dist/modules/dynamic-credentials.ee/database/entities/dynamic-credential-entry.d.ts +11 -0
  220. package/dist/modules/dynamic-credentials.ee/database/entities/dynamic-credential-entry.js +60 -0
  221. package/dist/modules/dynamic-credentials.ee/database/entities/dynamic-credential-entry.js.map +1 -0
  222. package/dist/modules/dynamic-credentials.ee/database/repositories/credential-resolver.repository.d.ts +5 -0
  223. package/dist/modules/dynamic-credentials.ee/database/repositories/credential-resolver.repository.js +26 -0
  224. package/dist/modules/dynamic-credentials.ee/database/repositories/credential-resolver.repository.js.map +1 -0
  225. package/dist/modules/dynamic-credentials.ee/database/repositories/dynamic-credential-entry.repository.d.ts +5 -0
  226. package/dist/modules/dynamic-credentials.ee/database/repositories/dynamic-credential-entry.repository.js +26 -0
  227. package/dist/modules/dynamic-credentials.ee/database/repositories/dynamic-credential-entry.repository.js.map +1 -0
  228. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.d.ts +9 -0
  229. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js +61 -0
  230. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js.map +1 -0
  231. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.d.ts +6 -0
  232. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js +91 -0
  233. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js.map +1 -0
  234. package/dist/modules/dynamic-credentials.ee/errors/credential-resolution.error.d.ts +6 -0
  235. package/dist/modules/dynamic-credentials.ee/errors/credential-resolution.error.js +12 -0
  236. package/dist/modules/dynamic-credentials.ee/errors/credential-resolution.error.js.map +1 -0
  237. package/dist/modules/dynamic-credentials.ee/errors/credential-resolver-not-found.error.d.ts +4 -0
  238. package/dist/modules/dynamic-credentials.ee/errors/credential-resolver-not-found.error.js +11 -0
  239. package/dist/modules/dynamic-credentials.ee/errors/credential-resolver-not-found.error.js.map +1 -0
  240. package/dist/modules/dynamic-credentials.ee/errors/credential-storage.error.d.ts +6 -0
  241. package/dist/modules/dynamic-credentials.ee/errors/credential-storage.error.js +12 -0
  242. package/dist/modules/dynamic-credentials.ee/errors/credential-storage.error.js.map +1 -0
  243. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-registry.service.d.ts +11 -0
  244. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-registry.service.js +64 -0
  245. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-registry.service.js.map +1 -0
  246. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.d.ts +22 -0
  247. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js +150 -0
  248. package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js.map +1 -0
  249. package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.d.ts +33 -0
  250. package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js +118 -0
  251. package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js.map +1 -0
  252. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.d.ts +18 -0
  253. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.js +94 -0
  254. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.js.map +1 -0
  255. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.d.ts +20 -0
  256. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js +146 -0
  257. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js.map +1 -0
  258. package/dist/modules/dynamic-credentials.ee/services/index.d.ts +5 -0
  259. package/dist/modules/dynamic-credentials.ee/services/index.js +22 -0
  260. package/dist/modules/dynamic-credentials.ee/services/index.js.map +1 -0
  261. package/dist/modules/dynamic-credentials.ee/services/shared-fields.d.ts +2 -0
  262. package/dist/modules/dynamic-credentials.ee/services/shared-fields.js +13 -0
  263. package/dist/modules/dynamic-credentials.ee/services/shared-fields.js.map +1 -0
  264. package/dist/modules/dynamic-credentials.ee/workflow-status.controller.d.ts +8 -0
  265. package/dist/modules/dynamic-credentials.ee/workflow-status.controller.js +62 -0
  266. package/dist/modules/dynamic-credentials.ee/workflow-status.controller.js.map +1 -0
  267. package/dist/modules/external-secrets.ee/external-secrets-manager.ee.js +40 -24
  268. package/dist/modules/external-secrets.ee/external-secrets-manager.ee.js.map +1 -1
  269. package/dist/modules/insights/database/repositories/insights-by-period.repository.d.ts +2 -2
  270. package/dist/modules/insights/insights-collection.service.d.ts +2 -0
  271. package/dist/modules/insights/insights-collection.service.js +30 -6
  272. package/dist/modules/insights/insights-collection.service.js.map +1 -1
  273. package/dist/modules/insights/insights.service.d.ts +1 -1
  274. package/dist/modules/workflow-index/workflow-index.service.js +17 -10
  275. package/dist/modules/workflow-index/workflow-index.service.js.map +1 -1
  276. package/dist/oauth/oauth.service.d.ts +52 -0
  277. package/dist/oauth/oauth.service.js +416 -0
  278. package/dist/oauth/oauth.service.js.map +1 -0
  279. package/dist/oauth/types.d.ts +28 -0
  280. package/dist/oauth/types.js +16 -0
  281. package/dist/oauth/types.js.map +1 -0
  282. package/dist/public-api/v1/handlers/credentials/credentials.service.js +6 -8
  283. package/dist/public-api/v1/handlers/credentials/credentials.service.js.map +1 -1
  284. package/dist/public-api/v1/handlers/workflows/workflows.handler.js +2 -1
  285. package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
  286. package/dist/public-api/v1/openapi.yml +4 -0
  287. package/dist/requests.d.ts +1 -0
  288. package/dist/scaling/job-processor.js +8 -2
  289. package/dist/scaling/job-processor.js.map +1 -1
  290. package/dist/scaling/worker-status.service.ee.js +20 -2
  291. package/dist/scaling/worker-status.service.ee.js.map +1 -1
  292. package/dist/server.js +5 -3
  293. package/dist/server.js.map +1 -1
  294. package/dist/services/ai-workflow-builder.service.d.ts +1 -0
  295. package/dist/services/ai-workflow-builder.service.js +5 -3
  296. package/dist/services/ai-workflow-builder.service.js.map +1 -1
  297. package/dist/services/ai.service.js +3 -0
  298. package/dist/services/ai.service.js.map +1 -1
  299. package/dist/services/cache/cache.service.d.ts +1 -0
  300. package/dist/services/cache/cache.service.js +4 -0
  301. package/dist/services/cache/cache.service.js.map +1 -1
  302. package/dist/services/frontend.service.d.ts +6 -4
  303. package/dist/services/frontend.service.js +14 -9
  304. package/dist/services/frontend.service.js.map +1 -1
  305. package/dist/services/ownership.service.d.ts +13 -3
  306. package/dist/services/ownership.service.js +59 -4
  307. package/dist/services/ownership.service.js.map +1 -1
  308. package/dist/services/project.service.ee.js +1 -1
  309. package/dist/services/project.service.ee.js.map +1 -1
  310. package/dist/services/public-api-key.service.d.ts +1 -0
  311. package/dist/services/public-api-key.service.js +8 -0
  312. package/dist/services/public-api-key.service.js.map +1 -1
  313. package/dist/services/user.service.d.ts +4 -3
  314. package/dist/services/user.service.js +50 -4
  315. package/dist/services/user.service.js.map +1 -1
  316. package/dist/telemetry/index.js +1 -0
  317. package/dist/telemetry/index.js.map +1 -1
  318. package/dist/webhooks/test-webhook-registrations.service.d.ts +5 -3
  319. package/dist/webhooks/test-webhook-registrations.service.js +25 -6
  320. package/dist/webhooks/test-webhook-registrations.service.js.map +1 -1
  321. package/dist/webhooks/test-webhooks.d.ts +1 -0
  322. package/dist/webhooks/test-webhooks.js +17 -10
  323. package/dist/webhooks/test-webhooks.js.map +1 -1
  324. package/dist/webhooks/waiting-forms.js +2 -0
  325. package/dist/webhooks/waiting-forms.js.map +1 -1
  326. package/dist/webhooks/webhook-helpers.js +12 -3
  327. package/dist/webhooks/webhook-helpers.js.map +1 -1
  328. package/dist/workflow-execute-additional-data.d.ts +2 -1
  329. package/dist/workflow-execute-additional-data.js +5 -3
  330. package/dist/workflow-execute-additional-data.js.map +1 -1
  331. package/dist/workflow-runner.js +1 -0
  332. package/dist/workflow-runner.js.map +1 -1
  333. package/dist/workflows/workflow-execution.service.js +3 -0
  334. package/dist/workflows/workflow-execution.service.js.map +1 -1
  335. package/dist/workflows/workflow-history/workflow-history.service.d.ts +1 -1
  336. package/dist/workflows/workflow-history/workflow-history.service.js +2 -1
  337. package/dist/workflows/workflow-history/workflow-history.service.js.map +1 -1
  338. package/dist/workflows/workflow.request.d.ts +2 -0
  339. package/dist/workflows/workflow.service.d.ts +2 -0
  340. package/dist/workflows/workflow.service.js +4 -2
  341. package/dist/workflows/workflow.service.js.map +1 -1
  342. package/dist/workflows/workflows.controller.js +15 -17
  343. package/dist/workflows/workflows.controller.js.map +1 -1
  344. package/package.json +18 -18
  345. package/templates/form-trigger-completion.handlebars +1 -4
  346. package/templates/form-trigger.handlebars +1 -2
  347. package/dist/controllers/oauth/abstract-oauth.controller.d.ts +0 -47
  348. package/dist/controllers/oauth/abstract-oauth.controller.js +0 -185
  349. package/dist/controllers/oauth/abstract-oauth.controller.js.map +0 -1
@@ -0,0 +1,174 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.OAuthCredentialResolver = void 0;
16
+ const backend_common_1 = require("@n8n/backend-common");
17
+ const decorators_1 = require("@n8n/decorators");
18
+ const n8n_core_1 = require("n8n-core");
19
+ const n8n_workflow_1 = require("n8n-workflow");
20
+ const zod_1 = __importDefault(require("zod"));
21
+ const oauth2_introspection_identifier_1 = require("./identifiers/oauth2-introspection-identifier");
22
+ const oauth2_userinfo_identifier_1 = require("./identifiers/oauth2-userinfo-identifier");
23
+ const dynamic_credential_entry_storage_1 = require("./storage/dynamic-credential-entry-storage");
24
+ const OAuthCredentialResolverOptionsSchema = zod_1.default.discriminatedUnion('validation', [
25
+ oauth2_introspection_identifier_1.OAuth2IntrospectionOptionsSchema,
26
+ oauth2_userinfo_identifier_1.OAuth2UserInfoOptionsSchema,
27
+ ]);
28
+ let OAuthCredentialResolver = class OAuthCredentialResolver {
29
+ constructor(logger, oAuth2TokenIntrospectionIdentifier, oAuth2UserInfoIdentifier, storage, cipher) {
30
+ this.logger = logger;
31
+ this.oAuth2TokenIntrospectionIdentifier = oAuth2TokenIntrospectionIdentifier;
32
+ this.oAuth2UserInfoIdentifier = oAuth2UserInfoIdentifier;
33
+ this.storage = storage;
34
+ this.cipher = cipher;
35
+ this.metadata = {
36
+ name: 'credential-resolver.oauth2-1.0',
37
+ description: 'OAuth2 based credential resolver',
38
+ displayName: 'OAuth2 Resolver',
39
+ options: [
40
+ {
41
+ displayName: 'Metadata URL',
42
+ name: 'metadataUri',
43
+ type: 'string',
44
+ required: true,
45
+ default: '',
46
+ placeholder: 'https://auth.example.com/.well-known/openid-configuration',
47
+ description: 'OAuth2 server metadata endpoint URL',
48
+ },
49
+ {
50
+ displayName: 'Validation Method',
51
+ name: 'validation',
52
+ type: 'options',
53
+ options: [
54
+ {
55
+ name: 'OAuth2 Token Introspection',
56
+ value: 'oauth2-introspection',
57
+ description: 'Validate token via OAuth2 Token Introspection Endpoint',
58
+ },
59
+ {
60
+ name: 'OAuth2 UserInfo Endpoint',
61
+ value: 'oauth2-userinfo',
62
+ description: 'Validate token via OAuth2 UserInfo Endpoint',
63
+ },
64
+ ],
65
+ default: 'oauth2-introspection',
66
+ description: 'Validation method to use for token validation',
67
+ },
68
+ {
69
+ displayName: 'Client ID',
70
+ name: 'clientId',
71
+ type: 'string',
72
+ default: '',
73
+ description: 'OAuth2 client ID for introspection',
74
+ displayOptions: {
75
+ hide: {
76
+ validation: ['oauth2-userinfo'],
77
+ },
78
+ show: {
79
+ validation: ['oauth2-introspection'],
80
+ },
81
+ },
82
+ },
83
+ {
84
+ displayName: 'Client Secret',
85
+ name: 'clientSecret',
86
+ type: 'string',
87
+ default: '',
88
+ typeOptions: { password: true },
89
+ description: 'OAuth2 client secret for introspection',
90
+ displayOptions: {
91
+ hide: {
92
+ validation: ['oauth2-userinfo'],
93
+ },
94
+ show: {
95
+ validation: ['oauth2-introspection'],
96
+ },
97
+ },
98
+ },
99
+ {
100
+ displayName: 'Subject Claim',
101
+ name: 'subjectClaim',
102
+ type: 'string',
103
+ default: 'sub',
104
+ description: 'Token claim to use as subject identifier',
105
+ },
106
+ ],
107
+ };
108
+ }
109
+ async getSecret(credentialId, context, handle) {
110
+ const parsedOptions = await this.parseOptions(handle.configuration);
111
+ const key = await this.resolveIdentifier(context, parsedOptions);
112
+ const data = await this.storage.getCredentialData(credentialId, key, handle.resolverId, parsedOptions);
113
+ if (!data) {
114
+ throw new decorators_1.CredentialResolverDataNotFoundError();
115
+ }
116
+ const plaintext = this.cipher.decrypt(data);
117
+ try {
118
+ const secret = (0, n8n_workflow_1.jsonParse)(plaintext);
119
+ return secret;
120
+ }
121
+ catch (error) {
122
+ this.logger.error('Failed to parse decrypted credential data', { error });
123
+ throw new decorators_1.CredentialResolverDataNotFoundError();
124
+ }
125
+ }
126
+ async setSecret(credentialId, context, data, handle) {
127
+ const parsedOptions = await this.parseOptions(handle.configuration);
128
+ const key = await this.resolveIdentifier(context, parsedOptions);
129
+ const encryptedData = this.cipher.encrypt(data);
130
+ await this.storage.setCredentialData(credentialId, key, handle.resolverId, encryptedData, parsedOptions);
131
+ }
132
+ async deleteSecret(credentialId, context, handle) {
133
+ const parsedOptions = await this.parseOptions(handle.configuration);
134
+ const key = await this.resolveIdentifier(context, parsedOptions);
135
+ await this.storage.deleteCredentialData(credentialId, key, handle.resolverId, parsedOptions);
136
+ }
137
+ async parseOptions(options) {
138
+ const result = await OAuthCredentialResolverOptionsSchema.safeParseAsync(options);
139
+ if (result.error) {
140
+ this.logger.error('Invalid options provided to OAuthCredentialResolver', {
141
+ error: result.error,
142
+ });
143
+ throw new decorators_1.CredentialResolverValidationError(`Invalid options for OAuthCredentialResolver: ${result.error.message}`);
144
+ }
145
+ return result.data;
146
+ }
147
+ async validateOptions(options) {
148
+ const [identifier, parsedOptions] = await this.getIdentifier(options);
149
+ await identifier.validateOptions(parsedOptions);
150
+ }
151
+ async getIdentifier(options) {
152
+ const parsedOptions = await this.parseOptions(options);
153
+ if (parsedOptions.validation === 'oauth2-introspection') {
154
+ return [this.oAuth2TokenIntrospectionIdentifier, parsedOptions];
155
+ }
156
+ else {
157
+ return [this.oAuth2UserInfoIdentifier, parsedOptions];
158
+ }
159
+ }
160
+ async resolveIdentifier(context, options) {
161
+ const [identifier, parsedOptions] = await this.getIdentifier(options);
162
+ return await identifier.resolve(context, parsedOptions);
163
+ }
164
+ };
165
+ exports.OAuthCredentialResolver = OAuthCredentialResolver;
166
+ exports.OAuthCredentialResolver = OAuthCredentialResolver = __decorate([
167
+ (0, decorators_1.CredentialResolver)(),
168
+ __metadata("design:paramtypes", [backend_common_1.Logger,
169
+ oauth2_introspection_identifier_1.OAuth2TokenIntrospectionIdentifier,
170
+ oauth2_userinfo_identifier_1.OAuth2UserInfoIdentifier,
171
+ dynamic_credential_entry_storage_1.DynamicCredentialEntryStorage,
172
+ n8n_core_1.Cipher])
173
+ ], OAuthCredentialResolver);
174
+ //# sourceMappingURL=oauth-credential-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-credential-resolver.js","sourceRoot":"","sources":["../../../../src/modules/dynamic-credentials.ee/credential-resolvers/oauth-credential-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ICredentialEntriesStorage } from './storage-interface';
2
+ import { DynamicCredentialEntryRepository } from '../../database/repositories/dynamic-credential-entry.repository';
3
+ export declare class DynamicCredentialEntryStorage implements ICredentialEntriesStorage {
4
+ private readonly dynamicCredentialEntryRepository;
5
+ constructor(dynamicCredentialEntryRepository: DynamicCredentialEntryRepository);
6
+ getCredentialData(credentialId: string, subjectId: string, resolverId: string, _: Record<string, unknown>): Promise<string | null>;
7
+ setCredentialData(credentialId: string, subjectId: string, resolverId: string, data: string, _: Record<string, unknown>): Promise<void>;
8
+ deleteCredentialData(credentialId: string, subjectId: string, resolverId: string, _: Record<string, unknown>): Promise<void>;
9
+ }
@@ -0,0 +1,56 @@
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.DynamicCredentialEntryStorage = void 0;
13
+ const di_1 = require("@n8n/di");
14
+ const dynamic_credential_entry_1 = require("../../database/entities/dynamic-credential-entry");
15
+ const dynamic_credential_entry_repository_1 = require("../../database/repositories/dynamic-credential-entry.repository");
16
+ let DynamicCredentialEntryStorage = class DynamicCredentialEntryStorage {
17
+ constructor(dynamicCredentialEntryRepository) {
18
+ this.dynamicCredentialEntryRepository = dynamicCredentialEntryRepository;
19
+ }
20
+ async getCredentialData(credentialId, subjectId, resolverId, _) {
21
+ const entry = await this.dynamicCredentialEntryRepository.findOne({
22
+ where: {
23
+ credentialId,
24
+ subjectId,
25
+ resolverId,
26
+ },
27
+ });
28
+ return entry?.data ?? null;
29
+ }
30
+ async setCredentialData(credentialId, subjectId, resolverId, data, _) {
31
+ let entry = await this.dynamicCredentialEntryRepository.findOne({
32
+ where: { credentialId, subjectId, resolverId },
33
+ });
34
+ if (!entry) {
35
+ entry = new dynamic_credential_entry_1.DynamicCredentialEntry();
36
+ entry.credentialId = credentialId;
37
+ entry.subjectId = subjectId;
38
+ entry.resolverId = resolverId;
39
+ }
40
+ entry.data = data;
41
+ await this.dynamicCredentialEntryRepository.save(entry);
42
+ }
43
+ async deleteCredentialData(credentialId, subjectId, resolverId, _) {
44
+ await this.dynamicCredentialEntryRepository.delete({
45
+ credentialId,
46
+ subjectId,
47
+ resolverId,
48
+ });
49
+ }
50
+ };
51
+ exports.DynamicCredentialEntryStorage = DynamicCredentialEntryStorage;
52
+ exports.DynamicCredentialEntryStorage = DynamicCredentialEntryStorage = __decorate([
53
+ (0, di_1.Service)(),
54
+ __metadata("design:paramtypes", [dynamic_credential_entry_repository_1.DynamicCredentialEntryRepository])
55
+ ], DynamicCredentialEntryStorage);
56
+ //# sourceMappingURL=dynamic-credential-entry-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-credential-entry-storage.js","sourceRoot":"","sources":["../../../../../src/modules/dynamic-credentials.ee/credential-resolvers/storage/dynamic-credential-entry-storage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAkC;AAGlC,+FAA0F;AAC1F,yHAAmH;AAG5G,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACzC,YACkB,gCAAkE;QAAlE,qCAAgC,GAAhC,gCAAgC,CAAkC;IACjF,CAAC;IAEJ,KAAK,CAAC,iBAAiB,CACtB,YAAoB,EACpB,SAAiB,EACjB,UAAkB,EAClB,CAA0B;QAE1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC;YACjE,KAAK,EAAE;gBACN,YAAY;gBACZ,SAAS;gBACT,UAAU;aACV;SACD,CAAC,CAAC;QAEH,OAAO,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,iBAAiB,CACtB,YAAoB,EACpB,SAAiB,EACjB,UAAkB,EAClB,IAAY,EACZ,CAA0B;QAE1B,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC;YAC/D,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,GAAG,IAAI,iDAAsB,EAAE,CAAC;YACrC,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;YAClC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,oBAAoB,CACzB,YAAoB,EACpB,SAAiB,EACjB,UAAkB,EAClB,CAA0B;QAE1B,MAAM,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC;YAClD,YAAY;YACZ,SAAS;YACT,UAAU;SACV,CAAC,CAAC;IACJ,CAAC;CACD,CAAA;AAxDY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,YAAO,GAAE;qCAG2C,sEAAgC;GAFxE,6BAA6B,CAwDzC"}
@@ -0,0 +1,5 @@
1
+ export interface ICredentialEntriesStorage {
2
+ getCredentialData(credentialId: string, subjectId: string, resolverId: string, storageOptions: Record<string, unknown>): Promise<string | null>;
3
+ setCredentialData(credentialId: string, subjectId: string, resolverId: string, data: string, storageOptions: Record<string, unknown>): Promise<void>;
4
+ deleteCredentialData?(credentialId: string, subjectId: string, resolverId: string, storageOptions: Record<string, unknown>): Promise<void>;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=storage-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-interface.js","sourceRoot":"","sources":["../../../../../src/modules/dynamic-credentials.ee/credential-resolvers/storage/storage-interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import { Logger } from '@n8n/backend-common';
2
+ import { CredentialResolverConfiguration, CredentialResolverHandle, ICredentialResolver } from '@n8n/decorators';
3
+ import { ICredentialContext, ICredentialDataDecryptedObject } from 'n8n-workflow';
4
+ export declare class StubCredentialResolver implements ICredentialResolver {
5
+ private readonly logger;
6
+ private secretsStore;
7
+ constructor(logger: Logger);
8
+ metadata: {
9
+ name: string;
10
+ description: string;
11
+ displayName: string;
12
+ options: {
13
+ displayName: string;
14
+ name: string;
15
+ type: "string";
16
+ default: string;
17
+ placeholder: string;
18
+ description: string;
19
+ }[];
20
+ };
21
+ private generateKey;
22
+ getSecret(credentialId: string, context: ICredentialContext, handle: CredentialResolverHandle): Promise<ICredentialDataDecryptedObject>;
23
+ setSecret(credentialId: string, context: ICredentialContext, data: ICredentialDataDecryptedObject, handle: CredentialResolverHandle): Promise<void>;
24
+ deleteSecret(credentialId: string, context: ICredentialContext, handle: CredentialResolverHandle): Promise<void>;
25
+ private parseOptions;
26
+ validateOptions(options: CredentialResolverConfiguration): Promise<void>;
27
+ validateIdentity(_identity: string, _handle: CredentialResolverHandle): Promise<void>;
28
+ }
@@ -0,0 +1,86 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.StubCredentialResolver = void 0;
16
+ const backend_common_1 = require("@n8n/backend-common");
17
+ const decorators_1 = require("@n8n/decorators");
18
+ const zod_1 = __importDefault(require("zod"));
19
+ const StubOptionsSchema = zod_1.default.object({
20
+ prefix: zod_1.default.string().default(''),
21
+ });
22
+ let StubCredentialResolver = class StubCredentialResolver {
23
+ constructor(logger) {
24
+ this.logger = logger;
25
+ this.secretsStore = new Map();
26
+ this.metadata = {
27
+ name: 'credential-resolver.stub-1.0',
28
+ description: 'A stub credential resolver for testing purposes',
29
+ displayName: 'Stub Resolver',
30
+ options: [
31
+ {
32
+ displayName: 'Prefix',
33
+ name: 'prefix',
34
+ type: 'string',
35
+ default: '',
36
+ placeholder: 'Optional prefix for stored credentials',
37
+ description: 'An optional prefix to namespace stored credentials (useful for testing)',
38
+ },
39
+ ],
40
+ };
41
+ }
42
+ generateKey(credentialId, context, options) {
43
+ return `${options.prefix}:${credentialId}:${context.identity}`;
44
+ }
45
+ async getSecret(credentialId, context, handle) {
46
+ const parsedOptions = await this.parseOptions(handle.configuration);
47
+ const key = this.generateKey(credentialId, context, parsedOptions);
48
+ const secret = this.secretsStore.get(key);
49
+ if (!secret) {
50
+ throw new decorators_1.CredentialResolverDataNotFoundError();
51
+ }
52
+ return secret;
53
+ }
54
+ async setSecret(credentialId, context, data, handle) {
55
+ const parsedOptions = await this.parseOptions(handle.configuration);
56
+ const key = this.generateKey(credentialId, context, parsedOptions);
57
+ this.secretsStore.set(key, data);
58
+ }
59
+ async deleteSecret(credentialId, context, handle) {
60
+ const parsedOptions = await this.parseOptions(handle.configuration);
61
+ const key = this.generateKey(credentialId, context, parsedOptions);
62
+ this.secretsStore.delete(key);
63
+ }
64
+ async parseOptions(options) {
65
+ const result = await StubOptionsSchema.safeParseAsync(options);
66
+ if (result.error) {
67
+ this.logger.error('Invalid options provided to StubCredentialResolver', {
68
+ error: result.error,
69
+ });
70
+ throw new decorators_1.CredentialResolverValidationError(`Invalid options for StubCredentialResolver: ${result.error.message}`);
71
+ }
72
+ return result.data;
73
+ }
74
+ async validateOptions(options) {
75
+ await this.parseOptions(options);
76
+ }
77
+ async validateIdentity(_identity, _handle) {
78
+ return;
79
+ }
80
+ };
81
+ exports.StubCredentialResolver = StubCredentialResolver;
82
+ exports.StubCredentialResolver = StubCredentialResolver = __decorate([
83
+ (0, decorators_1.CredentialResolver)(),
84
+ __metadata("design:paramtypes", [backend_common_1.Logger])
85
+ ], StubCredentialResolver);
86
+ //# sourceMappingURL=stub-credential-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stub-credential-resolver.js","sourceRoot":"","sources":["../../../../src/modules/dynamic-credentials.ee/credential-resolvers/stub-credential-resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAA6C;AAC7C,gDAOyB;AAEzB,8CAAoB;AAEpB,MAAM,iBAAiB,GAAG,aAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9B,CAAC,CAAC;AASI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAGlC,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAFnC,iBAAY,GAAgD,IAAI,GAAG,EAAE,CAAC;QAI9E,aAAQ,GAAG;YACV,IAAI,EAAE,8BAA8B;YACpC,WAAW,EAAE,iDAAiD;YAC9D,WAAW,EAAE,eAAe;YAC5B,OAAO,EAAE;gBACR;oBACC,WAAW,EAAE,QAAQ;oBACrB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAiB;oBACvB,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,wCAAwC;oBACrD,WAAW,EAAE,yEAAyE;iBACtF;aACD;SACD,CAAC;IAhB4C,CAAC;IAmBvC,WAAW,CAClB,YAAoB,EACpB,OAA2B,EAC3B,OAAoB;QAEpB,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAChE,CAAC;IAMD,KAAK,CAAC,SAAS,CACd,YAAoB,EACpB,OAA2B,EAC3B,MAAgC;QAEhC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,gDAAmC,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAGD,KAAK,CAAC,SAAS,CACd,YAAoB,EACpB,OAA2B,EAC3B,IAAoC,EACpC,MAAgC;QAEhC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAGD,KAAK,CAAC,YAAY,CACjB,YAAoB,EACpB,OAA2B,EAC3B,MAAgC;QAEhC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,OAAwC;QAClE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,EAAE;gBACvE,KAAK,EAAE,MAAM,CAAC,KAAK;aACnB,CAAC,CAAC;YACH,MAAM,IAAI,8CAAiC,CAC1C,+CAA+C,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CACrE,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAwC;QAC7D,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,OAAiC;QAC1E,OAAO;IACR,CAAC;CACD,CAAA;AA3FY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,+BAAkB,GAAE;qCAIiB,uBAAM;GAH/B,sBAAsB,CA2FlC"}
@@ -0,0 +1,16 @@
1
+ import { CreateCredentialResolverDto, CredentialResolver, UpdateCredentialResolverDto, CredentialResolverType } from '@n8n/api-types';
2
+ import { AuthenticatedRequest } from '@n8n/db';
3
+ import { Response } from 'express';
4
+ import { DynamicCredentialResolverService } from './services/credential-resolver.service';
5
+ export declare class CredentialResolversController {
6
+ private readonly service;
7
+ constructor(service: DynamicCredentialResolverService);
8
+ listResolvers(_req: AuthenticatedRequest, _res: Response): Promise<CredentialResolver[]>;
9
+ listResolverTypes(_req: AuthenticatedRequest, _res: Response): CredentialResolverType[];
10
+ createResolver(_req: AuthenticatedRequest, _res: Response, dto: CreateCredentialResolverDto): Promise<CredentialResolver>;
11
+ getResolver(_req: AuthenticatedRequest, _res: Response, id: string): Promise<CredentialResolver>;
12
+ updateResolver(_req: AuthenticatedRequest, _res: Response, id: string, dto: UpdateCredentialResolverDto): Promise<CredentialResolver>;
13
+ deleteResolver(_req: AuthenticatedRequest, _res: Response, id: string): Promise<{
14
+ success: true;
15
+ }>;
16
+ }
@@ -0,0 +1,172 @@
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.CredentialResolversController = void 0;
16
+ const api_types_1 = require("@n8n/api-types");
17
+ const decorators_1 = require("@n8n/decorators");
18
+ const bad_request_error_1 = require("../../errors/response-errors/bad-request.error");
19
+ const internal_server_error_1 = require("../../errors/response-errors/internal-server.error");
20
+ const not_found_error_1 = require("../../errors/response-errors/not-found.error");
21
+ const credential_resolver_not_found_error_1 = require("./errors/credential-resolver-not-found.error");
22
+ const credential_resolver_service_1 = require("./services/credential-resolver.service");
23
+ let CredentialResolversController = class CredentialResolversController {
24
+ constructor(service) {
25
+ this.service = service;
26
+ }
27
+ async listResolvers(_req, _res) {
28
+ try {
29
+ return api_types_1.credentialResolversSchema.parse(await this.service.findAll());
30
+ }
31
+ catch (e) {
32
+ if (e instanceof Error) {
33
+ throw new internal_server_error_1.InternalServerError(e.message, e);
34
+ }
35
+ throw e;
36
+ }
37
+ }
38
+ listResolverTypes(_req, _res) {
39
+ try {
40
+ const types = this.service.getAvailableTypes();
41
+ return api_types_1.credentialResolverTypesSchema.parse(types.map((t) => t.metadata));
42
+ }
43
+ catch (e) {
44
+ if (e instanceof Error) {
45
+ throw new internal_server_error_1.InternalServerError(e.message, e);
46
+ }
47
+ throw e;
48
+ }
49
+ }
50
+ async createResolver(_req, _res, dto) {
51
+ try {
52
+ const createdResolver = await this.service.create({
53
+ name: dto.name,
54
+ type: dto.type,
55
+ config: dto.config,
56
+ });
57
+ return api_types_1.credentialResolverSchema.parse(createdResolver);
58
+ }
59
+ catch (e) {
60
+ if (e instanceof decorators_1.CredentialResolverValidationError) {
61
+ throw new bad_request_error_1.BadRequestError(e.message);
62
+ }
63
+ if (e instanceof Error) {
64
+ throw new internal_server_error_1.InternalServerError(e.message, e);
65
+ }
66
+ throw e;
67
+ }
68
+ }
69
+ async getResolver(_req, _res, id) {
70
+ try {
71
+ return api_types_1.credentialResolverSchema.parse(await this.service.findById(id));
72
+ }
73
+ catch (e) {
74
+ if (e instanceof credential_resolver_not_found_error_1.DynamicCredentialResolverNotFoundError) {
75
+ throw new not_found_error_1.NotFoundError(e.message);
76
+ }
77
+ if (e instanceof Error) {
78
+ throw new internal_server_error_1.InternalServerError(e.message, e);
79
+ }
80
+ throw e;
81
+ }
82
+ }
83
+ async updateResolver(_req, _res, id, dto) {
84
+ try {
85
+ return api_types_1.credentialResolverSchema.parse(await this.service.update(id, {
86
+ type: dto.type,
87
+ name: dto.name,
88
+ config: dto.config,
89
+ }));
90
+ }
91
+ catch (e) {
92
+ if (e instanceof credential_resolver_not_found_error_1.DynamicCredentialResolverNotFoundError) {
93
+ throw new not_found_error_1.NotFoundError(e.message);
94
+ }
95
+ if (e instanceof decorators_1.CredentialResolverValidationError) {
96
+ throw new bad_request_error_1.BadRequestError(e.message);
97
+ }
98
+ if (e instanceof Error) {
99
+ throw new internal_server_error_1.InternalServerError(e.message, e);
100
+ }
101
+ throw e;
102
+ }
103
+ }
104
+ async deleteResolver(_req, _res, id) {
105
+ try {
106
+ await this.service.delete(id);
107
+ return { success: true };
108
+ }
109
+ catch (e) {
110
+ if (e instanceof credential_resolver_not_found_error_1.DynamicCredentialResolverNotFoundError) {
111
+ throw new not_found_error_1.NotFoundError(e.message);
112
+ }
113
+ if (e instanceof Error) {
114
+ throw new internal_server_error_1.InternalServerError(e.message, e);
115
+ }
116
+ throw e;
117
+ }
118
+ }
119
+ };
120
+ exports.CredentialResolversController = CredentialResolversController;
121
+ __decorate([
122
+ (0, decorators_1.Get)('/'),
123
+ (0, decorators_1.GlobalScope)('credentialResolver:list'),
124
+ __metadata("design:type", Function),
125
+ __metadata("design:paramtypes", [Object, Object]),
126
+ __metadata("design:returntype", Promise)
127
+ ], CredentialResolversController.prototype, "listResolvers", null);
128
+ __decorate([
129
+ (0, decorators_1.Get)('/types'),
130
+ (0, decorators_1.GlobalScope)('credentialResolver:list'),
131
+ __metadata("design:type", Function),
132
+ __metadata("design:paramtypes", [Object, Object]),
133
+ __metadata("design:returntype", Array)
134
+ ], CredentialResolversController.prototype, "listResolverTypes", null);
135
+ __decorate([
136
+ (0, decorators_1.Post)('/'),
137
+ (0, decorators_1.GlobalScope)('credentialResolver:create'),
138
+ __param(2, decorators_1.Body),
139
+ __metadata("design:type", Function),
140
+ __metadata("design:paramtypes", [Object, Object, api_types_1.CreateCredentialResolverDto]),
141
+ __metadata("design:returntype", Promise)
142
+ ], CredentialResolversController.prototype, "createResolver", null);
143
+ __decorate([
144
+ (0, decorators_1.Get)('/:id'),
145
+ (0, decorators_1.GlobalScope)('credentialResolver:read'),
146
+ __param(2, (0, decorators_1.Param)('id')),
147
+ __metadata("design:type", Function),
148
+ __metadata("design:paramtypes", [Object, Object, String]),
149
+ __metadata("design:returntype", Promise)
150
+ ], CredentialResolversController.prototype, "getResolver", null);
151
+ __decorate([
152
+ (0, decorators_1.Patch)('/:id'),
153
+ (0, decorators_1.GlobalScope)('credentialResolver:update'),
154
+ __param(2, (0, decorators_1.Param)('id')),
155
+ __param(3, decorators_1.Body),
156
+ __metadata("design:type", Function),
157
+ __metadata("design:paramtypes", [Object, Object, String, api_types_1.UpdateCredentialResolverDto]),
158
+ __metadata("design:returntype", Promise)
159
+ ], CredentialResolversController.prototype, "updateResolver", null);
160
+ __decorate([
161
+ (0, decorators_1.Delete)('/:id'),
162
+ (0, decorators_1.GlobalScope)('credentialResolver:delete'),
163
+ __param(2, (0, decorators_1.Param)('id')),
164
+ __metadata("design:type", Function),
165
+ __metadata("design:paramtypes", [Object, Object, String]),
166
+ __metadata("design:returntype", Promise)
167
+ ], CredentialResolversController.prototype, "deleteResolver", null);
168
+ exports.CredentialResolversController = CredentialResolversController = __decorate([
169
+ (0, decorators_1.RestController)('/credential-resolvers'),
170
+ __metadata("design:paramtypes", [credential_resolver_service_1.DynamicCredentialResolverService])
171
+ ], CredentialResolversController);
172
+ //# sourceMappingURL=credential-resolvers.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-resolvers.controller.js","sourceRoot":"","sources":["../../../src/modules/dynamic-credentials.ee/credential-resolvers.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { WithTimestampsAndStringId } from '@n8n/db';
2
+ import type { CredentialResolverConfiguration } from '@n8n/decorators';
3
+ export declare class DynamicCredentialResolver extends WithTimestampsAndStringId {
4
+ name: string;
5
+ type: string;
6
+ config: string;
7
+ decryptedConfig?: CredentialResolverConfiguration;
8
+ }
@@ -0,0 +1,33 @@
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.DynamicCredentialResolver = void 0;
13
+ const db_1 = require("@n8n/db");
14
+ const typeorm_1 = require("@n8n/typeorm");
15
+ let DynamicCredentialResolver = class DynamicCredentialResolver extends db_1.WithTimestampsAndStringId {
16
+ };
17
+ exports.DynamicCredentialResolver = DynamicCredentialResolver;
18
+ __decorate([
19
+ (0, typeorm_1.Column)({ type: 'varchar', length: 128 }),
20
+ __metadata("design:type", String)
21
+ ], DynamicCredentialResolver.prototype, "name", void 0);
22
+ __decorate([
23
+ (0, typeorm_1.Column)({ type: 'varchar', length: 128 }),
24
+ __metadata("design:type", String)
25
+ ], DynamicCredentialResolver.prototype, "type", void 0);
26
+ __decorate([
27
+ (0, typeorm_1.Column)({ type: 'text' }),
28
+ __metadata("design:type", String)
29
+ ], DynamicCredentialResolver.prototype, "config", void 0);
30
+ exports.DynamicCredentialResolver = DynamicCredentialResolver = __decorate([
31
+ (0, typeorm_1.Entity)()
32
+ ], DynamicCredentialResolver);
33
+ //# sourceMappingURL=credential-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-resolver.js","sourceRoot":"","sources":["../../../../../src/modules/dynamic-credentials.ee/database/entities/credential-resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAoD;AAEpD,0CAA8C;AAGvC,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,8BAAyB;CAYvE,CAAA;AAZY,8DAAyB;AAErC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;uDAC5B;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;uDAC5B;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yDACV;oCARH,yBAAyB;IADrC,IAAA,gBAAM,GAAE;GACI,yBAAyB,CAYrC"}