n8n 1.42.1 → 1.43.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/dist/AbstractServer.js +4 -1
  2. package/dist/AbstractServer.js.map +1 -1
  3. package/dist/ActiveWebhooks.js +2 -2
  4. package/dist/ActiveWebhooks.js.map +1 -1
  5. package/dist/ActiveWorkflowManager.js +2 -7
  6. package/dist/ActiveWorkflowManager.js.map +1 -1
  7. package/dist/CredentialsHelper.d.ts +5 -7
  8. package/dist/CredentialsHelper.js +38 -34
  9. package/dist/CredentialsHelper.js.map +1 -1
  10. package/dist/Interfaces.d.ts +2 -1
  11. package/dist/Interfaces.js.map +1 -1
  12. package/dist/InternalHooks.d.ts +29 -3
  13. package/dist/InternalHooks.js +39 -9
  14. package/dist/InternalHooks.js.map +1 -1
  15. package/dist/Ldap/helpers.d.ts +1 -29
  16. package/dist/Ldap/helpers.js +16 -7
  17. package/dist/Ldap/helpers.js.map +1 -1
  18. package/dist/Ldap/ldap.service.js +1 -1
  19. package/dist/Ldap/ldap.service.js.map +1 -1
  20. package/dist/License.d.ts +4 -0
  21. package/dist/License.js +13 -0
  22. package/dist/License.js.map +1 -1
  23. package/dist/Mfa/mfa.service.d.ts +1 -1
  24. package/dist/Mfa/mfa.service.js +22 -10
  25. package/dist/Mfa/mfa.service.js.map +1 -1
  26. package/dist/PublicApi/types.d.ts +5 -2
  27. package/dist/PublicApi/types.js.map +1 -1
  28. package/dist/PublicApi/v1/handlers/audit/audit.handler.d.ts +3 -1
  29. package/dist/PublicApi/v1/handlers/audit/audit.handler.js +1 -1
  30. package/dist/PublicApi/v1/handlers/audit/audit.handler.js.map +1 -1
  31. package/dist/PublicApi/v1/handlers/credentials/credentials.handler.d.ts +6 -5
  32. package/dist/PublicApi/v1/handlers/credentials/credentials.handler.js +1 -3
  33. package/dist/PublicApi/v1/handlers/credentials/credentials.handler.js.map +1 -1
  34. package/dist/PublicApi/v1/handlers/credentials/credentials.service.js +4 -2
  35. package/dist/PublicApi/v1/handlers/credentials/credentials.service.js.map +1 -1
  36. package/dist/PublicApi/v1/handlers/executions/executions.handler.d.ts +2 -2
  37. package/dist/PublicApi/v1/handlers/executions/executions.handler.js +3 -6
  38. package/dist/PublicApi/v1/handlers/executions/executions.handler.js.map +1 -1
  39. package/dist/PublicApi/v1/handlers/sourceControl/sourceControl.handler.d.ts +3 -1
  40. package/dist/PublicApi/v1/handlers/sourceControl/sourceControl.handler.js +1 -1
  41. package/dist/PublicApi/v1/handlers/sourceControl/sourceControl.handler.js.map +1 -1
  42. package/dist/PublicApi/v1/handlers/tags/tags.handler.d.ts +15 -5
  43. package/dist/PublicApi/v1/handlers/tags/tags.handler.js +5 -5
  44. package/dist/PublicApi/v1/handlers/tags/tags.handler.js.map +1 -1
  45. package/dist/PublicApi/v1/handlers/users/users.handler.ee.d.ts +6 -3
  46. package/dist/PublicApi/v1/handlers/users/users.handler.ee.js +2 -2
  47. package/dist/PublicApi/v1/handlers/users/users.handler.ee.js.map +1 -1
  48. package/dist/PublicApi/v1/handlers/workflows/workflows.handler.d.ts +22 -8
  49. package/dist/PublicApi/v1/handlers/workflows/workflows.handler.js +48 -44
  50. package/dist/PublicApi/v1/handlers/workflows/workflows.handler.js.map +1 -1
  51. package/dist/PublicApi/v1/handlers/workflows/workflows.service.d.ts +4 -2
  52. package/dist/PublicApi/v1/handlers/workflows/workflows.service.js +18 -13
  53. package/dist/PublicApi/v1/handlers/workflows/workflows.service.js.map +1 -1
  54. package/dist/PublicApi/v1/shared/middlewares/global.middleware.d.ts +8 -2
  55. package/dist/PublicApi/v1/shared/middlewares/global.middleware.js +22 -7
  56. package/dist/PublicApi/v1/shared/middlewares/global.middleware.js.map +1 -1
  57. package/dist/Server.js +4 -0
  58. package/dist/Server.js.map +1 -1
  59. package/dist/UserManagement/PermissionChecker.d.ts +4 -6
  60. package/dist/UserManagement/PermissionChecker.js +22 -31
  61. package/dist/UserManagement/PermissionChecker.js.map +1 -1
  62. package/dist/UserManagement/email/NodeMailer.js +1 -0
  63. package/dist/UserManagement/email/NodeMailer.js.map +1 -1
  64. package/dist/WaitTracker.js +3 -3
  65. package/dist/WaitTracker.js.map +1 -1
  66. package/dist/WaitingWebhooks.js +1 -8
  67. package/dist/WaitingWebhooks.js.map +1 -1
  68. package/dist/WebhookHelpers.js +7 -14
  69. package/dist/WebhookHelpers.js.map +1 -1
  70. package/dist/WorkflowExecuteAdditionalData.d.ts +2 -2
  71. package/dist/WorkflowExecuteAdditionalData.js +10 -11
  72. package/dist/WorkflowExecuteAdditionalData.js.map +1 -1
  73. package/dist/WorkflowRunner.js +1 -1
  74. package/dist/WorkflowRunner.js.map +1 -1
  75. package/dist/auth/auth.service.js +2 -2
  76. package/dist/auth/auth.service.js.map +1 -1
  77. package/dist/build.tsbuildinfo +1 -1
  78. package/dist/commands/import/credentials.d.ts +2 -2
  79. package/dist/commands/import/credentials.js +55 -31
  80. package/dist/commands/import/credentials.js.map +1 -1
  81. package/dist/commands/import/workflow.d.ts +2 -1
  82. package/dist/commands/import/workflow.js +50 -21
  83. package/dist/commands/import/workflow.js.map +1 -1
  84. package/dist/commands/ldap/reset.d.ts +9 -0
  85. package/dist/commands/ldap/reset.js +96 -1
  86. package/dist/commands/ldap/reset.js.map +1 -1
  87. package/dist/commands/mfa/disable.js +11 -2
  88. package/dist/commands/mfa/disable.js.map +1 -1
  89. package/dist/commands/user-management/reset.js +5 -3
  90. package/dist/commands/user-management/reset.js.map +1 -1
  91. package/dist/commands/worker.js +1 -3
  92. package/dist/commands/worker.js.map +1 -1
  93. package/dist/config/index.d.ts +1 -0
  94. package/dist/config/schema.d.ts +6 -0
  95. package/dist/config/schema.js +6 -0
  96. package/dist/config/schema.js.map +1 -1
  97. package/dist/constants.d.ts +19 -14
  98. package/dist/constants.js +5 -0
  99. package/dist/constants.js.map +1 -1
  100. package/dist/controllers/auth.controller.js +2 -2
  101. package/dist/controllers/auth.controller.js.map +1 -1
  102. package/dist/controllers/dynamicNodeParameters.controller.d.ts +3 -5
  103. package/dist/controllers/dynamicNodeParameters.controller.js +10 -37
  104. package/dist/controllers/dynamicNodeParameters.controller.js.map +1 -1
  105. package/dist/controllers/invitation.controller.js +3 -3
  106. package/dist/controllers/invitation.controller.js.map +1 -1
  107. package/dist/controllers/oauth/abstractOAuth.controller.js +1 -1
  108. package/dist/controllers/oauth/abstractOAuth.controller.js.map +1 -1
  109. package/dist/controllers/passwordReset.controller.js +4 -4
  110. package/dist/controllers/passwordReset.controller.js.map +1 -1
  111. package/dist/controllers/project.controller.d.ts +32 -0
  112. package/dist/controllers/project.controller.js +227 -0
  113. package/dist/controllers/project.controller.js.map +1 -0
  114. package/dist/controllers/role.controller.d.ts +13 -0
  115. package/dist/controllers/role.controller.js +42 -0
  116. package/dist/controllers/role.controller.js.map +1 -0
  117. package/dist/controllers/users.controller.d.ts +9 -3
  118. package/dist/controllers/users.controller.js +62 -64
  119. package/dist/controllers/users.controller.js.map +1 -1
  120. package/dist/controllers/workflowStatistics.controller.d.ts +1 -1
  121. package/dist/controllers/workflowStatistics.controller.js +5 -3
  122. package/dist/controllers/workflowStatistics.controller.js.map +1 -1
  123. package/dist/credentials/credentials.controller.d.ts +25 -12
  124. package/dist/credentials/credentials.controller.js +67 -137
  125. package/dist/credentials/credentials.controller.js.map +1 -1
  126. package/dist/credentials/credentials.service.d.ts +30 -7
  127. package/dist/credentials/credentials.service.ee.d.ts +23 -15
  128. package/dist/credentials/credentials.service.ee.js +42 -39
  129. package/dist/credentials/credentials.service.ee.js.map +1 -1
  130. package/dist/credentials/credentials.service.js +157 -28
  131. package/dist/credentials/credentials.service.js.map +1 -1
  132. package/dist/databases/config.js +2 -0
  133. package/dist/databases/config.js.map +1 -1
  134. package/dist/databases/dsl/Column.js +5 -2
  135. package/dist/databases/dsl/Column.js.map +1 -1
  136. package/dist/databases/dsl/Table.d.ts +1 -0
  137. package/dist/databases/dsl/Table.js +2 -0
  138. package/dist/databases/dsl/Table.js.map +1 -1
  139. package/dist/databases/entities/ExecutionEntity.js +1 -1
  140. package/dist/databases/entities/ExecutionEntity.js.map +1 -1
  141. package/dist/databases/entities/Project.d.ts +12 -0
  142. package/dist/databases/entities/Project.js +41 -0
  143. package/dist/databases/entities/Project.js.map +1 -0
  144. package/dist/databases/entities/ProjectRelation.d.ts +11 -0
  145. package/dist/databases/entities/ProjectRelation.js +43 -0
  146. package/dist/databases/entities/ProjectRelation.js.map +1 -0
  147. package/dist/databases/entities/SharedCredentials.d.ts +3 -3
  148. package/dist/databases/entities/SharedCredentials.js +9 -9
  149. package/dist/databases/entities/SharedCredentials.js.map +1 -1
  150. package/dist/databases/entities/SharedWorkflow.d.ts +4 -4
  151. package/dist/databases/entities/SharedWorkflow.js +9 -9
  152. package/dist/databases/entities/SharedWorkflow.js.map +1 -1
  153. package/dist/databases/entities/User.d.ts +4 -1
  154. package/dist/databases/entities/User.js +20 -5
  155. package/dist/databases/entities/User.js.map +1 -1
  156. package/dist/databases/entities/index.d.ts +4 -0
  157. package/dist/databases/entities/index.js +4 -0
  158. package/dist/databases/entities/index.js.map +1 -1
  159. package/dist/databases/migrations/common/1711390882123-MoveSshKeysToDatabase.js +4 -0
  160. package/dist/databases/migrations/common/1711390882123-MoveSshKeysToDatabase.js.map +1 -1
  161. package/dist/databases/migrations/common/1714133768519-CreateProject.d.ts +13 -0
  162. package/dist/databases/migrations/common/1714133768519-CreateProject.js +221 -0
  163. package/dist/databases/migrations/common/1714133768519-CreateProject.js.map +1 -0
  164. package/dist/databases/migrations/common/1714133768521-MakeExecutionStatusNonNullable.d.ts +4 -0
  165. package/dist/databases/migrations/common/1714133768521-MakeExecutionStatusNonNullable.js +22 -0
  166. package/dist/databases/migrations/common/1714133768521-MakeExecutionStatusNonNullable.js.map +1 -0
  167. package/dist/databases/migrations/mysqldb/index.js +4 -0
  168. package/dist/databases/migrations/mysqldb/index.js.map +1 -1
  169. package/dist/databases/migrations/postgresdb/index.js +4 -0
  170. package/dist/databases/migrations/postgresdb/index.js.map +1 -1
  171. package/dist/databases/migrations/sqlite/index.js +4 -0
  172. package/dist/databases/migrations/sqlite/index.js.map +1 -1
  173. package/dist/databases/repositories/credentials.repository.d.ts +0 -2
  174. package/dist/databases/repositories/credentials.repository.js +10 -10
  175. package/dist/databases/repositories/credentials.repository.js.map +1 -1
  176. package/dist/databases/repositories/project.repository.d.ts +13 -0
  177. package/dist/databases/repositories/project.repository.js +56 -0
  178. package/dist/databases/repositories/project.repository.js.map +1 -0
  179. package/dist/databases/repositories/projectRelation.repository.d.ts +12 -0
  180. package/dist/databases/repositories/projectRelation.repository.js +59 -0
  181. package/dist/databases/repositories/projectRelation.repository.js.map +1 -0
  182. package/dist/databases/repositories/sharedCredentials.repository.d.ts +19 -8
  183. package/dist/databases/repositories/sharedCredentials.repository.js +73 -24
  184. package/dist/databases/repositories/sharedCredentials.repository.js.map +1 -1
  185. package/dist/databases/repositories/sharedWorkflow.repository.d.ts +14 -21
  186. package/dist/databases/repositories/sharedWorkflow.repository.js +104 -71
  187. package/dist/databases/repositories/sharedWorkflow.repository.js.map +1 -1
  188. package/dist/databases/repositories/user.repository.d.ts +7 -1
  189. package/dist/databases/repositories/user.repository.js +25 -0
  190. package/dist/databases/repositories/user.repository.js.map +1 -1
  191. package/dist/databases/repositories/workflow.repository.d.ts +3 -6
  192. package/dist/databases/repositories/workflow.repository.js +13 -24
  193. package/dist/databases/repositories/workflow.repository.js.map +1 -1
  194. package/dist/databases/repositories/workflowStatistics.repository.js +13 -11
  195. package/dist/databases/repositories/workflowStatistics.repository.js.map +1 -1
  196. package/dist/databases/subscribers/UserSubscriber.d.ts +6 -0
  197. package/dist/databases/subscribers/UserSubscriber.js +64 -0
  198. package/dist/databases/subscribers/UserSubscriber.js.map +1 -0
  199. package/dist/databases/subscribers/index.d.ts +4 -0
  200. package/dist/databases/subscribers/index.js +8 -0
  201. package/dist/databases/subscribers/index.js.map +1 -0
  202. package/dist/decorators/{Scopes.d.ts → Scoped.d.ts} +1 -0
  203. package/dist/decorators/Scoped.js +26 -0
  204. package/dist/decorators/Scoped.js.map +1 -0
  205. package/dist/decorators/constants.d.ts +1 -1
  206. package/dist/decorators/constants.js +2 -2
  207. package/dist/decorators/constants.js.map +1 -1
  208. package/dist/decorators/index.d.ts +1 -1
  209. package/dist/decorators/index.js +4 -3
  210. package/dist/decorators/index.js.map +1 -1
  211. package/dist/decorators/registerController.d.ts +2 -2
  212. package/dist/decorators/registerController.js +17 -13
  213. package/dist/decorators/registerController.js.map +1 -1
  214. package/dist/decorators/types.d.ts +6 -1
  215. package/dist/environments/sourceControl/sourceControlExport.service.ee.js +44 -2
  216. package/dist/environments/sourceControl/sourceControlExport.service.ee.js.map +1 -1
  217. package/dist/environments/sourceControl/sourceControlImport.service.ee.d.ts +2 -1
  218. package/dist/environments/sourceControl/sourceControlImport.service.ee.js +75 -55
  219. package/dist/environments/sourceControl/sourceControlImport.service.ee.js.map +1 -1
  220. package/dist/environments/sourceControl/types/exportableCredential.d.ts +2 -1
  221. package/dist/environments/sourceControl/types/exportableWorkflow.d.ts +2 -1
  222. package/dist/environments/sourceControl/types/resourceOwner.d.ts +8 -0
  223. package/dist/environments/sourceControl/types/resourceOwner.js +3 -0
  224. package/dist/environments/sourceControl/types/resourceOwner.js.map +1 -0
  225. package/dist/errors/aborted-execution-retry.error.d.ts +4 -0
  226. package/dist/errors/aborted-execution-retry.error.js +13 -0
  227. package/dist/errors/aborted-execution-retry.error.js.map +1 -0
  228. package/dist/errors/response-errors/forbidden.error.d.ts +4 -0
  229. package/dist/errors/response-errors/forbidden.error.js +11 -0
  230. package/dist/errors/response-errors/forbidden.error.js.map +1 -0
  231. package/dist/errors/response-errors/unauthenticated.error.d.ts +4 -0
  232. package/dist/errors/response-errors/unauthenticated.error.js +11 -0
  233. package/dist/errors/response-errors/unauthenticated.error.js.map +1 -0
  234. package/dist/executions/execution.service.ee.js +8 -7
  235. package/dist/executions/execution.service.ee.js.map +1 -1
  236. package/dist/executions/execution.service.js +5 -0
  237. package/dist/executions/execution.service.js.map +1 -1
  238. package/dist/executions/executions.controller.js +15 -9
  239. package/dist/executions/executions.controller.js.map +1 -1
  240. package/dist/middlewares/listQuery/dtos/credentials.filter.dto.d.ts +1 -0
  241. package/dist/middlewares/listQuery/dtos/credentials.filter.dto.js +6 -0
  242. package/dist/middlewares/listQuery/dtos/credentials.filter.dto.js.map +1 -1
  243. package/dist/middlewares/listQuery/dtos/workflow.filter.dto.d.ts +1 -0
  244. package/dist/middlewares/listQuery/dtos/workflow.filter.dto.js +6 -0
  245. package/dist/middlewares/listQuery/dtos/workflow.filter.dto.js.map +1 -1
  246. package/dist/permissions/checkAccess.d.ts +7 -0
  247. package/dist/permissions/checkAccess.js +64 -0
  248. package/dist/permissions/checkAccess.js.map +1 -0
  249. package/dist/permissions/global-roles.d.ts +4 -0
  250. package/dist/permissions/{roles.js → global-roles.js} +11 -5
  251. package/dist/permissions/global-roles.js.map +1 -0
  252. package/dist/permissions/project-roles.d.ts +4 -0
  253. package/dist/permissions/project-roles.js +53 -0
  254. package/dist/permissions/project-roles.js.map +1 -0
  255. package/dist/permissions/resource-roles.d.ts +5 -0
  256. package/dist/permissions/resource-roles.js +23 -0
  257. package/dist/permissions/resource-roles.js.map +1 -0
  258. package/dist/push/index.d.ts +1 -1
  259. package/dist/requests.d.ts +83 -17
  260. package/dist/requests.js.map +1 -1
  261. package/dist/services/activeWorkflows.service.js +4 -2
  262. package/dist/services/activeWorkflows.service.js.map +1 -1
  263. package/dist/services/credentials-tester.service.js +1 -1
  264. package/dist/services/credentials-tester.service.js.map +1 -1
  265. package/dist/services/events.service.js +19 -13
  266. package/dist/services/events.service.js.map +1 -1
  267. package/dist/services/frontend.service.js +6 -0
  268. package/dist/services/frontend.service.js.map +1 -1
  269. package/dist/services/import.service.d.ts +1 -1
  270. package/dist/services/import.service.js +4 -5
  271. package/dist/services/import.service.js.map +1 -1
  272. package/dist/services/ownership.service.d.ts +9 -3
  273. package/dist/services/ownership.service.js +47 -15
  274. package/dist/services/ownership.service.js.map +1 -1
  275. package/dist/services/project.service.d.ts +61 -0
  276. package/dist/services/project.service.js +277 -0
  277. package/dist/services/project.service.js.map +1 -0
  278. package/dist/services/role.service.d.ts +31 -0
  279. package/dist/services/role.service.js +142 -0
  280. package/dist/services/role.service.js.map +1 -0
  281. package/dist/services/user.service.d.ts +3 -3
  282. package/dist/services/user.service.js +14 -6
  283. package/dist/services/user.service.js.map +1 -1
  284. package/dist/services/userOnboarding.service.js +6 -1
  285. package/dist/services/userOnboarding.service.js.map +1 -1
  286. package/dist/sso/saml/saml.service.ee.js +1 -1
  287. package/dist/sso/saml/saml.service.ee.js.map +1 -1
  288. package/dist/sso/saml/samlHelpers.d.ts +1 -1
  289. package/dist/sso/saml/samlHelpers.js +14 -22
  290. package/dist/sso/saml/samlHelpers.js.map +1 -1
  291. package/dist/telemetry/index.js +4 -0
  292. package/dist/telemetry/index.js.map +1 -1
  293. package/dist/utils.d.ts +1 -0
  294. package/dist/utils.js +3 -1
  295. package/dist/utils.js.map +1 -1
  296. package/dist/workflows/workflow.request.d.ts +12 -4
  297. package/dist/workflows/workflow.service.d.ts +16 -7
  298. package/dist/workflows/workflow.service.ee.d.ts +8 -8
  299. package/dist/workflows/workflow.service.ee.js +28 -35
  300. package/dist/workflows/workflow.service.ee.js.map +1 -1
  301. package/dist/workflows/workflow.service.js +93 -39
  302. package/dist/workflows/workflow.service.js.map +1 -1
  303. package/dist/workflows/workflowExecution.service.d.ts +2 -1
  304. package/dist/workflows/workflowExecution.service.js +2 -2
  305. package/dist/workflows/workflowExecution.service.js.map +1 -1
  306. package/dist/workflows/workflowHistory/workflowHistory.service.ee.d.ts +0 -1
  307. package/dist/workflows/workflowHistory/workflowHistory.service.ee.js +10 -14
  308. package/dist/workflows/workflowHistory/workflowHistory.service.ee.js.map +1 -1
  309. package/dist/workflows/workflowSharing.service.d.ts +12 -3
  310. package/dist/workflows/workflowSharing.service.js +24 -10
  311. package/dist/workflows/workflowSharing.service.js.map +1 -1
  312. package/dist/workflows/workflows.controller.d.ts +98 -11
  313. package/dist/workflows/workflows.controller.js +106 -77
  314. package/dist/workflows/workflows.controller.js.map +1 -1
  315. package/dist/workflows/workflows.types.d.ts +8 -2
  316. package/package.json +8 -8
  317. package/dist/decorators/Scopes.js +0 -15
  318. package/dist/decorators/Scopes.js.map +0 -1
  319. package/dist/errors/response-errors/unauthorized.error.d.ts +0 -4
  320. package/dist/errors/response-errors/unauthorized.error.js +0 -11
  321. package/dist/errors/response-errors/unauthorized.error.js.map +0 -1
  322. package/dist/permissions/roles.d.ts +0 -4
  323. package/dist/permissions/roles.js.map +0 -1
@@ -7,6 +7,7 @@ export declare class ImportCredentialsCommand extends BaseCommand {
7
7
  input: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
8
8
  separate: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
9
  userId: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ projectId: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
11
  };
11
12
  private transactionManager;
12
13
  init(): Promise<void>;
@@ -14,10 +15,9 @@ export declare class ImportCredentialsCommand extends BaseCommand {
14
15
  catch(error: Error): Promise<void>;
15
16
  private reportSuccess;
16
17
  private storeCredential;
17
- private getOwner;
18
18
  private checkRelations;
19
19
  private readCredentials;
20
- private getAssignee;
21
20
  private getCredentialOwner;
22
21
  private credentialExists;
22
+ private getProject;
23
23
  }
@@ -39,7 +39,9 @@ const commandHelpers_1 = require("../../databases/utils/commandHelpers");
39
39
  const BaseCommand_1 = require("../BaseCommand");
40
40
  const n8n_workflow_1 = require("n8n-workflow");
41
41
  const constants_1 = require("../../constants");
42
- const user_repository_1 = require("../../databases/repositories/user.repository");
42
+ const project_repository_1 = require("../../databases/repositories/project.repository");
43
+ const Project_1 = require("../../databases/entities/Project");
44
+ const User_1 = require("../../databases/entities/User");
43
45
  class ImportCredentialsCommand extends BaseCommand_1.BaseCommand {
44
46
  async init() {
45
47
  (0, commandHelpers_1.disableAutoGeneratedIds)(CredentialsEntity_1.CredentialsEntity);
@@ -59,16 +61,19 @@ class ImportCredentialsCommand extends BaseCommand_1.BaseCommand {
59
61
  }
60
62
  }
61
63
  }
62
- const user = flags.userId ? await this.getAssignee(flags.userId) : await this.getOwner();
64
+ if (flags.projectId && flags.userId) {
65
+ throw new n8n_workflow_1.ApplicationError('You cannot use `--userId` and `--projectId` together. Use one or the other.');
66
+ }
63
67
  const credentials = await this.readCredentials(flags.input, flags.separate);
64
68
  await Db.getConnection().transaction(async (transactionManager) => {
65
69
  this.transactionManager = transactionManager;
66
- const result = await this.checkRelations(credentials, flags.userId);
70
+ const project = await this.getProject(flags.userId, flags.projectId);
71
+ const result = await this.checkRelations(credentials, flags.projectId, flags.userId);
67
72
  if (!result.success) {
68
73
  throw new n8n_workflow_1.ApplicationError(result.message);
69
74
  }
70
75
  for (const credential of credentials) {
71
- await this.storeCredential(credential, user);
76
+ await this.storeCredential(credential, project);
72
77
  }
73
78
  });
74
79
  this.reportSuccess(credentials.length);
@@ -80,7 +85,7 @@ class ImportCredentialsCommand extends BaseCommand_1.BaseCommand {
80
85
  reportSuccess(total) {
81
86
  this.logger.info(`Successfully imported ${total} ${total === 1 ? 'credential.' : 'credentials.'}`);
82
87
  }
83
- async storeCredential(credential, user) {
88
+ async storeCredential(credential, project) {
84
89
  const result = await this.transactionManager.upsert(CredentialsEntity_1.CredentialsEntity, credential, ['id']);
85
90
  const sharingExists = await this.transactionManager.existsBy(SharedCredentials_1.SharedCredentials, {
86
91
  credentialsId: credential.id,
@@ -89,20 +94,13 @@ class ImportCredentialsCommand extends BaseCommand_1.BaseCommand {
89
94
  if (!sharingExists) {
90
95
  await this.transactionManager.upsert(SharedCredentials_1.SharedCredentials, {
91
96
  credentialsId: result.identifiers[0].id,
92
- userId: user.id,
93
97
  role: 'credential:owner',
94
- }, ['credentialsId', 'userId']);
95
- }
96
- }
97
- async getOwner() {
98
- const owner = await typedi_1.Container.get(user_repository_1.UserRepository).findOneBy({ role: 'global:owner' });
99
- if (!owner) {
100
- throw new n8n_workflow_1.ApplicationError(`Failed to find owner. ${constants_1.UM_FIX_INSTRUCTION}`);
98
+ projectId: project.id,
99
+ }, ['credentialsId', 'projectId']);
101
100
  }
102
- return owner;
103
101
  }
104
- async checkRelations(credentials, userId) {
105
- if (!userId) {
102
+ async checkRelations(credentials, projectId, userId) {
103
+ if (!projectId && !userId) {
106
104
  return {
107
105
  success: true,
108
106
  message: undefined,
@@ -115,14 +113,21 @@ class ImportCredentialsCommand extends BaseCommand_1.BaseCommand {
115
113
  if (!(await this.credentialExists(credential.id))) {
116
114
  continue;
117
115
  }
118
- const ownerId = await this.getCredentialOwner(credential.id);
119
- if (!ownerId) {
116
+ const { user, project: ownerProject } = await this.getCredentialOwner(credential.id);
117
+ if (!ownerProject) {
120
118
  continue;
121
119
  }
122
- if (ownerId !== userId) {
120
+ if (ownerProject.id !== projectId) {
121
+ const currentOwner = ownerProject.type === 'personal'
122
+ ? `the user with the ID "${user.id}"`
123
+ : `the project with the ID "${ownerProject.id}"`;
124
+ const newOwner = userId
125
+ ?
126
+ `the user with the ID "${userId}"`
127
+ : `the project with the ID "${projectId}"`;
123
128
  return {
124
129
  success: false,
125
- message: `The credential with id "${credential.id}" is already owned by the user with the id "${ownerId}". It can't be re-owned by the user with the id "${userId}"`,
130
+ message: `The credential with ID "${credential.id}" is already owned by ${currentOwner}. It can't be re-owned by ${newOwner}.`,
126
131
  };
127
132
  }
128
133
  }
@@ -158,23 +163,38 @@ class ImportCredentialsCommand extends BaseCommand_1.BaseCommand {
158
163
  return credential;
159
164
  });
160
165
  }
161
- async getAssignee(userId) {
162
- const user = await typedi_1.Container.get(user_repository_1.UserRepository).findOneBy({ id: userId });
163
- if (!user) {
164
- throw new n8n_workflow_1.ApplicationError('Failed to find user', { extra: { userId } });
165
- }
166
- return user;
167
- }
168
166
  async getCredentialOwner(credentialsId) {
169
- const sharedCredential = await this.transactionManager.findOneBy(SharedCredentials_1.SharedCredentials, {
170
- credentialsId,
171
- role: 'credential:owner',
167
+ const sharedCredential = await this.transactionManager.findOne(SharedCredentials_1.SharedCredentials, {
168
+ where: { credentialsId, role: 'credential:owner' },
169
+ relations: { project: true },
172
170
  });
173
- return sharedCredential === null || sharedCredential === void 0 ? void 0 : sharedCredential.userId;
171
+ if (sharedCredential && sharedCredential.project.type === 'personal') {
172
+ const user = await this.transactionManager.findOneByOrFail(User_1.User, {
173
+ projectRelations: {
174
+ role: 'project:personalOwner',
175
+ projectId: sharedCredential.projectId,
176
+ },
177
+ });
178
+ return { user, project: sharedCredential.project };
179
+ }
180
+ return {};
174
181
  }
175
182
  async credentialExists(credentialId) {
176
183
  return await this.transactionManager.existsBy(CredentialsEntity_1.CredentialsEntity, { id: credentialId });
177
184
  }
185
+ async getProject(userId, projectId) {
186
+ if (projectId) {
187
+ return await this.transactionManager.findOneByOrFail(Project_1.Project, { id: projectId });
188
+ }
189
+ if (!userId) {
190
+ const owner = await this.transactionManager.findOneBy(User_1.User, { role: 'global:owner' });
191
+ if (!owner) {
192
+ throw new n8n_workflow_1.ApplicationError(`Failed to find owner. ${constants_1.UM_FIX_INSTRUCTION}`);
193
+ }
194
+ userId = owner.id;
195
+ }
196
+ return await typedi_1.Container.get(project_repository_1.ProjectRepository).getPersonalProjectForUserOrFail(userId, this.transactionManager);
197
+ }
178
198
  }
179
199
  exports.ImportCredentialsCommand = ImportCredentialsCommand;
180
200
  ImportCredentialsCommand.description = 'Import credentials';
@@ -182,6 +202,7 @@ ImportCredentialsCommand.examples = [
182
202
  '$ n8n import:credentials --input=file.json',
183
203
  '$ n8n import:credentials --separate --input=backups/latest/',
184
204
  '$ n8n import:credentials --input=file.json --userId=1d64c3d2-85fe-4a83-a649-e446b07b3aae',
205
+ '$ n8n import:credentials --input=file.json --projectId=Ox8O54VQrmBrb4qL',
185
206
  '$ n8n import:credentials --separate --input=backups/latest/ --userId=1d64c3d2-85fe-4a83-a649-e446b07b3aae',
186
207
  ];
187
208
  ImportCredentialsCommand.flags = {
@@ -196,5 +217,8 @@ ImportCredentialsCommand.flags = {
196
217
  userId: core_1.Flags.string({
197
218
  description: 'The ID of the user to assign the imported credentials to',
198
219
  }),
220
+ projectId: core_1.Flags.string({
221
+ description: 'The ID of the project to assign the imported credential to',
222
+ }),
199
223
  };
200
224
  //# sourceMappingURL=credentials.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../src/commands/import/credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../src/commands/import/credentials.ts"],"names":[],"mappings":"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"}
@@ -7,14 +7,15 @@ export declare class ImportWorkflowsCommand extends BaseCommand {
7
7
  input: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
8
8
  separate: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
9
  userId: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ projectId: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
10
11
  };
11
12
  init(): Promise<void>;
12
13
  run(): Promise<void>;
13
14
  private checkRelations;
14
15
  catch(error: Error): Promise<void>;
15
16
  private reportSuccess;
16
- private getOwner;
17
17
  private getWorkflowOwner;
18
18
  private workflowExists;
19
19
  private readWorkflows;
20
+ private getProject;
20
21
  }
@@ -18,6 +18,7 @@ const workflow_repository_1 = require("../../databases/repositories/workflow.rep
18
18
  const import_service_1 = require("../../services/import.service");
19
19
  const BaseCommand_1 = require("../BaseCommand");
20
20
  const sharedWorkflow_repository_1 = require("../../databases/repositories/sharedWorkflow.repository");
21
+ const project_repository_1 = require("../../databases/repositories/project.repository");
21
22
  function assertHasWorkflowsToImport(workflows) {
22
23
  if (!Array.isArray(workflows)) {
23
24
  throw new n8n_workflow_1.ApplicationError('File does not seem to contain workflows. Make sure the workflows are contained in an array.');
@@ -36,7 +37,6 @@ class ImportWorkflowsCommand extends BaseCommand_1.BaseCommand {
36
37
  await super.init();
37
38
  }
38
39
  async run() {
39
- var _a;
40
40
  const { flags } = await this.parse(ImportWorkflowsCommand);
41
41
  if (!flags.input) {
42
42
  this.logger.info('An input file or directory with --input must be provided');
@@ -50,18 +50,21 @@ class ImportWorkflowsCommand extends BaseCommand_1.BaseCommand {
50
50
  }
51
51
  }
52
52
  }
53
- const owner = await this.getOwner();
53
+ if (flags.projectId && flags.userId) {
54
+ throw new n8n_workflow_1.ApplicationError('You cannot use `--userId` and `--projectId` together. Use one or the other.');
55
+ }
56
+ const project = await this.getProject(flags.userId, flags.projectId);
54
57
  const workflows = await this.readWorkflows(flags.input, flags.separate);
55
- const result = await this.checkRelations(workflows, flags.userId);
58
+ const result = await this.checkRelations(workflows, flags.projectId, flags.userId);
56
59
  if (!result.success) {
57
60
  throw new n8n_workflow_1.ApplicationError(result.message);
58
61
  }
59
62
  this.logger.info(`Importing ${workflows.length} workflows...`);
60
- await typedi_1.Container.get(import_service_1.ImportService).importWorkflows(workflows, (_a = flags.userId) !== null && _a !== void 0 ? _a : owner.id);
63
+ await typedi_1.Container.get(import_service_1.ImportService).importWorkflows(workflows, project.id);
61
64
  this.reportSuccess(workflows.length);
62
65
  }
63
- async checkRelations(workflows, userId) {
64
- if (!userId) {
66
+ async checkRelations(workflows, projectId, userId) {
67
+ if (!userId && !projectId) {
65
68
  return {
66
69
  success: true,
67
70
  message: undefined,
@@ -71,14 +74,21 @@ class ImportWorkflowsCommand extends BaseCommand_1.BaseCommand {
71
74
  if (!(await this.workflowExists(workflow))) {
72
75
  continue;
73
76
  }
74
- const ownerId = await this.getWorkflowOwner(workflow);
75
- if (!ownerId) {
77
+ const { user, project: ownerProject } = await this.getWorkflowOwner(workflow);
78
+ if (!ownerProject) {
76
79
  continue;
77
80
  }
78
- if (ownerId !== userId) {
81
+ if (ownerProject.id !== projectId) {
82
+ const currentOwner = ownerProject.type === 'personal'
83
+ ? `the user with the ID "${user.id}"`
84
+ : `the project with the ID "${ownerProject.id}"`;
85
+ const newOwner = userId
86
+ ?
87
+ `the user with the ID "${userId}"`
88
+ : `the project with the ID "${projectId}"`;
79
89
  return {
80
90
  success: false,
81
- message: `The credential with id "${workflow.id}" is already owned by the user with the id "${ownerId}". It can't be re-owned by the user with the id "${userId}"`,
91
+ message: `The credential with ID "${workflow.id}" is already owned by ${currentOwner}. It can't be re-owned by ${newOwner}.`,
82
92
  };
83
93
  }
84
94
  }
@@ -94,19 +104,21 @@ class ImportWorkflowsCommand extends BaseCommand_1.BaseCommand {
94
104
  reportSuccess(total) {
95
105
  this.logger.info(`Successfully imported ${total} ${total === 1 ? 'workflow.' : 'workflows.'}`);
96
106
  }
97
- async getOwner() {
98
- const owner = await typedi_1.Container.get(user_repository_1.UserRepository).findOneBy({ role: 'global:owner' });
99
- if (!owner) {
100
- throw new n8n_workflow_1.ApplicationError(`Failed to find owner. ${constants_1.UM_FIX_INSTRUCTION}`);
101
- }
102
- return owner;
103
- }
104
107
  async getWorkflowOwner(workflow) {
105
- const sharing = await typedi_1.Container.get(sharedWorkflow_repository_1.SharedWorkflowRepository).findOneBy({
106
- workflowId: workflow.id,
107
- role: 'workflow:owner',
108
+ const sharing = await typedi_1.Container.get(sharedWorkflow_repository_1.SharedWorkflowRepository).findOne({
109
+ where: { workflowId: workflow.id, role: 'workflow:owner' },
110
+ relations: { project: true },
108
111
  });
109
- return sharing === null || sharing === void 0 ? void 0 : sharing.userId;
112
+ if (sharing && sharing.project.type === 'personal') {
113
+ const user = await typedi_1.Container.get(user_repository_1.UserRepository).findOneByOrFail({
114
+ projectRelations: {
115
+ role: 'project:personalOwner',
116
+ projectId: sharing.projectId,
117
+ },
118
+ });
119
+ return { user, project: sharing.project };
120
+ }
121
+ return {};
110
122
  }
111
123
  async workflowExists(workflow) {
112
124
  return await typedi_1.Container.get(workflow_repository_1.WorkflowRepository).existsBy({ id: workflow.id });
@@ -137,6 +149,19 @@ class ImportWorkflowsCommand extends BaseCommand_1.BaseCommand {
137
149
  return workflowInstances;
138
150
  }
139
151
  }
152
+ async getProject(userId, projectId) {
153
+ if (projectId) {
154
+ return await typedi_1.Container.get(project_repository_1.ProjectRepository).findOneByOrFail({ id: projectId });
155
+ }
156
+ if (!userId) {
157
+ const owner = await typedi_1.Container.get(user_repository_1.UserRepository).findOneBy({ role: 'global:owner' });
158
+ if (!owner) {
159
+ throw new n8n_workflow_1.ApplicationError(`Failed to find owner. ${constants_1.UM_FIX_INSTRUCTION}`);
160
+ }
161
+ userId = owner.id;
162
+ }
163
+ return await typedi_1.Container.get(project_repository_1.ProjectRepository).getPersonalProjectForUserOrFail(userId);
164
+ }
140
165
  }
141
166
  exports.ImportWorkflowsCommand = ImportWorkflowsCommand;
142
167
  ImportWorkflowsCommand.description = 'Import workflows';
@@ -144,6 +169,7 @@ ImportWorkflowsCommand.examples = [
144
169
  '$ n8n import:workflow --input=file.json',
145
170
  '$ n8n import:workflow --separate --input=backups/latest/',
146
171
  '$ n8n import:workflow --input=file.json --userId=1d64c3d2-85fe-4a83-a649-e446b07b3aae',
172
+ '$ n8n import:workflow --input=file.json --projectId=Ox8O54VQrmBrb4qL',
147
173
  '$ n8n import:workflow --separate --input=backups/latest/ --userId=1d64c3d2-85fe-4a83-a649-e446b07b3aae',
148
174
  ];
149
175
  ImportWorkflowsCommand.flags = {
@@ -158,5 +184,8 @@ ImportWorkflowsCommand.flags = {
158
184
  userId: core_1.Flags.string({
159
185
  description: 'The ID of the user to assign the imported workflows to',
160
186
  }),
187
+ projectId: core_1.Flags.string({
188
+ description: 'The ID of the project to assign the imported workflows to',
189
+ }),
161
190
  };
162
191
  //# sourceMappingURL=workflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../src/commands/import/workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../src/commands/import/workflow.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,15 @@
1
1
  import { BaseCommand } from '../BaseCommand';
2
2
  export declare class Reset extends BaseCommand {
3
3
  static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
7
+ userId: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ projectId: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ deleteWorkflowsAndCredentials: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
10
+ };
4
11
  run(): Promise<void>;
12
+ getProject(userId?: string, projectId?: string): Promise<import("../../databases/entities/Project").Project>;
5
13
  catch(error: Error): Promise<void>;
14
+ private getOwner;
6
15
  }
@@ -11,15 +11,69 @@ const authProviderSyncHistory_repository_1 = require("../../databases/repositori
11
11
  const settings_repository_1 = require("../../databases/repositories/settings.repository");
12
12
  const user_repository_1 = require("../../databases/repositories/user.repository");
13
13
  const BaseCommand_1 = require("../BaseCommand");
14
+ const core_1 = require("@oclif/core");
15
+ const n8n_workflow_1 = require("n8n-workflow");
16
+ const project_repository_1 = require("../../databases/repositories/project.repository");
17
+ const workflow_service_1 = require("../../workflows/workflow.service");
18
+ const typeorm_1 = require("@n8n/typeorm");
19
+ const sharedWorkflow_repository_1 = require("../../databases/repositories/sharedWorkflow.repository");
20
+ const sharedCredentials_repository_1 = require("../../databases/repositories/sharedCredentials.repository");
21
+ const projectRelation_repository_1 = require("../../databases/repositories/projectRelation.repository");
22
+ const credentials_service_1 = require("../../credentials/credentials.service");
23
+ const constants_2 = require("../../constants");
24
+ const wrongFlagsError = 'You must use exactly one of `--userId`, `--projectId` or `--deleteWorkflowsAndCredentials`.';
14
25
  class Reset extends BaseCommand_1.BaseCommand {
15
26
  async run() {
27
+ var _a;
28
+ const { flags } = await this.parse(Reset);
29
+ const numberOfOptions = Number(!!flags.userId) +
30
+ Number(!!flags.projectId) +
31
+ Number(!!flags.deleteWorkflowsAndCredentials);
32
+ if (numberOfOptions !== 1) {
33
+ throw new n8n_workflow_1.ApplicationError(wrongFlagsError);
34
+ }
35
+ const owner = await this.getOwner();
16
36
  const ldapIdentities = await typedi_1.default.get(authIdentity_repository_1.AuthIdentityRepository).find({
17
37
  where: { providerType: 'ldap' },
18
38
  select: ['userId'],
19
39
  });
40
+ const personalProjectIds = await typedi_1.default.get(projectRelation_repository_1.ProjectRelationRepository).getPersonalProjectsForUsers(ldapIdentities.map((i) => i.userId));
41
+ if ((_a = flags.projectId) !== null && _a !== void 0 ? _a : flags.userId) {
42
+ if (flags.userId && ldapIdentities.some((i) => i.userId === flags.userId)) {
43
+ throw new n8n_workflow_1.ApplicationError(`Can't migrate workflows and credentials to the user with the ID ${flags.userId}. That user was created via LDAP and will be deleted as well.`);
44
+ }
45
+ if (flags.projectId && personalProjectIds.includes(flags.projectId)) {
46
+ throw new n8n_workflow_1.ApplicationError(`Can't migrate workflows and credentials to the project with the ID ${flags.projectId}. That project is a personal project belonging to a user that was created via LDAP and will be deleted as well.`);
47
+ }
48
+ const project = await this.getProject(flags.userId, flags.projectId);
49
+ await typedi_1.default.get(user_repository_1.UserRepository).manager.transaction(async (trx) => {
50
+ for (const projectId of personalProjectIds) {
51
+ await typedi_1.default.get(workflow_service_1.WorkflowService).transferAll(projectId, project.id, trx);
52
+ await typedi_1.default.get(credentials_service_1.CredentialsService).transferAll(projectId, project.id, trx);
53
+ }
54
+ });
55
+ }
56
+ const [ownedSharedWorkflows, ownedSharedCredentials] = await Promise.all([
57
+ typedi_1.default.get(sharedWorkflow_repository_1.SharedWorkflowRepository).find({
58
+ select: { workflowId: true },
59
+ where: { projectId: (0, typeorm_1.In)(personalProjectIds), role: 'workflow:owner' },
60
+ }),
61
+ typedi_1.default.get(sharedCredentials_repository_1.SharedCredentialsRepository).find({
62
+ relations: { credentials: true },
63
+ where: { projectId: (0, typeorm_1.In)(personalProjectIds), role: 'credential:owner' },
64
+ }),
65
+ ]);
66
+ const ownedCredentials = ownedSharedCredentials.map(({ credentials }) => credentials);
67
+ for (const { workflowId } of ownedSharedWorkflows) {
68
+ await typedi_1.default.get(workflow_service_1.WorkflowService).delete(owner, workflowId);
69
+ }
70
+ for (const credential of ownedCredentials) {
71
+ await typedi_1.default.get(credentials_service_1.CredentialsService).delete(credential);
72
+ }
20
73
  await typedi_1.default.get(authProviderSyncHistory_repository_1.AuthProviderSyncHistoryRepository).delete({ providerType: 'ldap' });
21
74
  await typedi_1.default.get(authIdentity_repository_1.AuthIdentityRepository).delete({ providerType: 'ldap' });
22
75
  await typedi_1.default.get(user_repository_1.UserRepository).deleteMany(ldapIdentities.map((i) => i.userId));
76
+ await typedi_1.default.get(project_repository_1.ProjectRepository).delete({ id: (0, typeorm_1.In)(personalProjectIds) });
23
77
  await typedi_1.default.get(settings_repository_1.SettingsRepository).delete({ key: constants_1.LDAP_FEATURE_NAME });
24
78
  await typedi_1.default.get(settings_repository_1.SettingsRepository).insert({
25
79
  key: constants_1.LDAP_FEATURE_NAME,
@@ -28,11 +82,52 @@ class Reset extends BaseCommand_1.BaseCommand {
28
82
  });
29
83
  this.logger.info('Successfully reset the database to default ldap state.');
30
84
  }
85
+ async getProject(userId, projectId) {
86
+ if (projectId) {
87
+ const project = await typedi_1.default.get(project_repository_1.ProjectRepository).findOneBy({ id: projectId });
88
+ if (project === null) {
89
+ throw new n8n_workflow_1.ApplicationError(`Could not find the project with the ID ${projectId}.`);
90
+ }
91
+ return project;
92
+ }
93
+ if (userId) {
94
+ const project = await typedi_1.default.get(project_repository_1.ProjectRepository).getPersonalProjectForUser(userId);
95
+ if (project === null) {
96
+ throw new n8n_workflow_1.ApplicationError(`Could not find the user with the ID ${userId} or their personalProject.`);
97
+ }
98
+ return project;
99
+ }
100
+ throw new n8n_workflow_1.ApplicationError(wrongFlagsError);
101
+ }
31
102
  async catch(error) {
32
103
  this.logger.error('Error resetting database. See log messages for details.');
33
104
  this.logger.error(error.message);
34
105
  }
106
+ async getOwner() {
107
+ const owner = await typedi_1.default.get(user_repository_1.UserRepository).findOneBy({ role: 'global:owner' });
108
+ if (!owner) {
109
+ throw new n8n_workflow_1.ApplicationError(`Failed to find owner. ${constants_2.UM_FIX_INSTRUCTION}`);
110
+ }
111
+ return owner;
112
+ }
35
113
  }
36
114
  exports.Reset = Reset;
37
- Reset.description = '\nResets the database to the default ldap state';
115
+ Reset.description = '\nResets the database to the default ldap state.\n\nTHIS DELETES ALL LDAP MANAGED USERS.';
116
+ Reset.examples = [
117
+ '$ n8n ldap:reset --userId=1d64c3d2-85fe-4a83-a649-e446b07b3aae',
118
+ '$ n8n ldap:reset --projectId=Ox8O54VQrmBrb4qL',
119
+ '$ n8n ldap:reset --deleteWorkflowsAndCredentials',
120
+ ];
121
+ Reset.flags = {
122
+ help: core_1.Flags.help({ char: 'h' }),
123
+ userId: core_1.Flags.string({
124
+ description: 'The ID of the user to assign the workflows and credentials owned by the deleted LDAP users to',
125
+ }),
126
+ projectId: core_1.Flags.string({
127
+ description: 'The ID of the project to assign the workflows and credentials owned by the deleted LDAP users to',
128
+ }),
129
+ deleteWorkflowsAndCredentials: core_1.Flags.boolean({
130
+ description: 'Delete all workflows and credentials owned by the users that were created by the users managed via LDAP.',
131
+ }),
132
+ };
38
133
  //# sourceMappingURL=reset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/commands/ldap/reset.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA+B;AAC/B,gDAAiF;AACjF,sFAAkF;AAClF,4GAAwG;AACxG,8EAA0E;AAC1E,sEAAkE;AAClE,gDAA6C;AAE7C,MAAa,KAAM,SAAQ,yBAAW;IAGrC,KAAK,CAAC,GAAG;QACR,MAAM,cAAc,GAAG,MAAM,gBAAS,CAAC,GAAG,CAAC,gDAAsB,CAAC,CAAC,IAAI,CAAC;YACvE,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;YAC/B,MAAM,EAAE,CAAC,QAAQ,CAAC;SAClB,CAAC,CAAC;QACH,MAAM,gBAAS,CAAC,GAAG,CAAC,sEAAiC,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QACxF,MAAM,gBAAS,CAAC,GAAG,CAAC,gDAAsB,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7E,MAAM,gBAAS,CAAC,GAAG,CAAC,gCAAc,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACpF,MAAM,gBAAS,CAAC,GAAG,CAAC,wCAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,6BAAiB,EAAE,CAAC,CAAC;QAC3E,MAAM,gBAAS,CAAC,GAAG,CAAC,wCAAkB,CAAC,CAAC,MAAM,CAAC;YAC9C,GAAG,EAAE,6BAAiB;YACtB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,sCAA0B,CAAC;YACjD,aAAa,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAY;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;;AAxBF,sBAyBC;AAxBO,iBAAW,GAAG,iDAAiD,CAAC"}
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/commands/ldap/reset.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA+B;AAC/B,gDAAiF;AACjF,sFAAkF;AAClF,4GAAwG;AACxG,8EAA0E;AAC1E,sEAAkE;AAClE,gDAA6C;AAC7C,sCAAoC;AACpC,+CAAgD;AAChD,oFAAgF;AAChF,mEAA+D;AAC/D,0CAAkC;AAClC,kGAA8F;AAC9F,wGAAoG;AACpG,oGAAgG;AAChG,2EAAuE;AACvE,2CAAiD;AAEjD,MAAM,eAAe,GACpB,6FAA6F,CAAC;AAE/F,MAAa,KAAM,SAAQ,yBAAW;IA0BrC,KAAK,CAAC,GAAG;;QACR,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,eAAe,GACpB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;YACtB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;YACzB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAE/C,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,+BAAgB,CAAC,eAAe,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,cAAc,GAAG,MAAM,gBAAS,CAAC,GAAG,CAAC,gDAAsB,CAAC,CAAC,IAAI,CAAC;YACvE,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;YAC/B,MAAM,EAAE,CAAC,QAAQ,CAAC;SAClB,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,MAAM,gBAAS,CAAC,GAAG,CAC7C,sDAAyB,CACzB,CAAC,2BAA2B,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAGnE,IAAI,MAAA,KAAK,CAAC,SAAS,mCAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3E,MAAM,IAAI,+BAAgB,CACzB,mEAAmE,KAAK,CAAC,MAAM,+DAA+D,CAC9I,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,+BAAgB,CACzB,sEAAsE,KAAK,CAAC,SAAS,iHAAiH,CACtM,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAErE,MAAM,gBAAS,CAAC,GAAG,CAAC,gCAAc,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrE,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;oBAC5C,MAAM,gBAAS,CAAC,GAAG,CAAC,kCAAe,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBAC7E,MAAM,gBAAS,CAAC,GAAG,CAAC,wCAAkB,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACjF,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACxE,gBAAS,CAAC,GAAG,CAAC,oDAAwB,CAAC,CAAC,IAAI,CAAC;gBAC5C,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC5B,KAAK,EAAE,EAAE,SAAS,EAAE,IAAA,YAAE,EAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE;aACpE,CAAC;YACF,gBAAS,CAAC,GAAG,CAAC,0DAA2B,CAAC,CAAC,IAAI,CAAC;gBAC/C,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;gBAChC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAA,YAAE,EAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE;aACtE,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;QAEtF,KAAK,MAAM,EAAE,UAAU,EAAE,IAAI,oBAAoB,EAAE,CAAC;YACnD,MAAM,gBAAS,CAAC,GAAG,CAAC,kCAAe,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAChE,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YAC3C,MAAM,gBAAS,CAAC,GAAG,CAAC,wCAAkB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,gBAAS,CAAC,GAAG,CAAC,sEAAiC,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QACxF,MAAM,gBAAS,CAAC,GAAG,CAAC,gDAAsB,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7E,MAAM,gBAAS,CAAC,GAAG,CAAC,gCAAc,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACpF,MAAM,gBAAS,CAAC,GAAG,CAAC,sCAAiB,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAC9E,MAAM,gBAAS,CAAC,GAAG,CAAC,wCAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,6BAAiB,EAAE,CAAC,CAAC;QAC3E,MAAM,gBAAS,CAAC,GAAG,CAAC,wCAAkB,CAAC,CAAC,MAAM,CAAC;YAC9C,GAAG,EAAE,6BAAiB;YACtB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,sCAA0B,CAAC;YACjD,aAAa,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAe,EAAE,SAAkB;QACnD,IAAI,SAAS,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,MAAM,gBAAS,CAAC,GAAG,CAAC,sCAAiB,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAEpF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACtB,MAAM,IAAI,+BAAgB,CAAC,0CAA0C,SAAS,GAAG,CAAC,CAAC;YACpF,CAAC;YAED,OAAO,OAAO,CAAC;QAChB,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,MAAM,gBAAS,CAAC,GAAG,CAAC,sCAAiB,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAEzF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACtB,MAAM,IAAI,+BAAgB,CACzB,uCAAuC,MAAM,4BAA4B,CACzE,CAAC;YACH,CAAC;YAED,OAAO,OAAO,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,+BAAgB,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAY;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,QAAQ;QACrB,MAAM,KAAK,GAAG,MAAM,gBAAS,CAAC,GAAG,CAAC,gCAAc,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,IAAI,+BAAgB,CAAC,yBAAyB,8BAAkB,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;;AA/IF,sBAgJC;AA/IO,iBAAW,GACjB,0FAA0F,CAAC;AAErF,cAAQ,GAAG;IACjB,gEAAgE;IAChE,+CAA+C;IAC/C,kDAAkD;CAClD,CAAC;AAEK,WAAK,GAAG;IACd,IAAI,EAAE,YAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC/B,MAAM,EAAE,YAAK,CAAC,MAAM,CAAC;QACpB,WAAW,EACV,+FAA+F;KAChG,CAAC;IACF,SAAS,EAAE,YAAK,CAAC,MAAM,CAAC;QACvB,WAAW,EACV,kGAAkG;KACnG,CAAC;IACF,6BAA6B,EAAE,YAAK,CAAC,OAAO,CAAC;QAC5C,WAAW,EACV,0GAA0G;KAC3G,CAAC;CACF,CAAC"}
@@ -18,11 +18,20 @@ class DisableMFACommand extends BaseCommand_1.BaseCommand {
18
18
  this.logger.info('An email with --email must be provided');
19
19
  return;
20
20
  }
21
- const updateOperationResult = await typedi_1.default.get(user_repository_1.UserRepository).update({ email: flags.email }, { mfaSecret: null, mfaRecoveryCodes: [], mfaEnabled: false });
22
- if (!updateOperationResult.affected) {
21
+ const user = await typedi_1.default.get(user_repository_1.UserRepository).findOneBy({ email: flags.email });
22
+ if (!user) {
23
23
  this.reportUserDoesNotExistError(flags.email);
24
24
  return;
25
25
  }
26
+ if (user.mfaSecret === null &&
27
+ Array.isArray(user.mfaRecoveryCodes) &&
28
+ user.mfaRecoveryCodes.length === 0 &&
29
+ !user.mfaEnabled) {
30
+ this.reportUserDoesNotExistError(flags.email);
31
+ return;
32
+ }
33
+ Object.assign(user, { mfaSecret: null, mfaRecoveryCodes: [], mfaEnabled: false });
34
+ await typedi_1.default.get(user_repository_1.UserRepository).save(user);
26
35
  this.reportSuccess(flags.email);
27
36
  }
28
37
  async catch(error) {
@@ -1 +1 @@
1
- {"version":3,"file":"disable.js","sourceRoot":"","sources":["../../../src/commands/mfa/disable.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA+B;AAC/B,sCAAoC;AACpC,sEAAkE;AAClE,gDAA6C;AAE7C,MAAa,iBAAkB,SAAQ,yBAAW;IAYjD,KAAK,CAAC,IAAI;QACT,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,GAAG;QACR,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAC3D,OAAO;QACR,CAAC;QAED,MAAM,qBAAqB,GAAG,MAAM,gBAAS,CAAC,GAAG,CAAC,gCAAc,CAAC,CAAC,MAAM,CACvE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EACtB,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAC5D,CAAC;QAEF,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO;QACR,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAY;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEO,aAAa,CAAC,KAAa;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC;IAEO,2BAA2B,CAAC,KAAa;QAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,KAAK,iBAAiB,CAAC,CAAC;IAC9D,CAAC;;AAhDF,8CAiDC;AAhDO,6BAAW,GAAG,uCAAuC,CAAC;AAEtD,0BAAQ,GAAG,CAAC,+CAA+C,CAAC,CAAC;AAE7D,uBAAK,GAAG;IACd,IAAI,EAAE,YAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC/B,KAAK,EAAE,YAAK,CAAC,MAAM,CAAC;QACnB,WAAW,EAAE,yDAAyD;KACtE,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"disable.js","sourceRoot":"","sources":["../../../src/commands/mfa/disable.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA+B;AAC/B,sCAAoC;AACpC,sEAAkE;AAClE,gDAA6C;AAE7C,MAAa,iBAAkB,SAAQ,yBAAW;IAYjD,KAAK,CAAC,IAAI;QACT,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,GAAG;QACR,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAC3D,OAAO;QACR,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,gBAAS,CAAC,GAAG,CAAC,gCAAc,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAEnF,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO;QACR,CAAC;QAED,IACC,IAAI,CAAC,SAAS,KAAK,IAAI;YACvB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAClC,CAAC,IAAI,CAAC,UAAU,EACf,CAAC;YACF,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO;QACR,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAElF,MAAM,gBAAS,CAAC,GAAG,CAAC,gCAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAY;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAEO,aAAa,CAAC,KAAa;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC;IAEO,2BAA2B,CAAC,KAAa;QAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,KAAK,iBAAiB,CAAC,CAAC;IAC9D,CAAC;;AA3DF,8CA4DC;AA3DO,6BAAW,GAAG,uCAAuC,CAAC;AAEtD,0BAAQ,GAAG,CAAC,+CAA+C,CAAC,CAAC;AAE7D,uBAAK,GAAG;IACd,IAAI,EAAE,YAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC/B,KAAK,EAAE,YAAK,CAAC,MAAM,CAAC;QACnB,WAAW,EAAE,yDAAyD;KACtE,CAAC;CACF,CAAC"}
@@ -9,6 +9,7 @@ const sharedCredentials_repository_1 = require("../../databases/repositories/sha
9
9
  const sharedWorkflow_repository_1 = require("../../databases/repositories/sharedWorkflow.repository");
10
10
  const user_repository_1 = require("../../databases/repositories/user.repository");
11
11
  const BaseCommand_1 = require("../BaseCommand");
12
+ const project_repository_1 = require("../../databases/repositories/project.repository");
12
13
  const defaultUserProps = {
13
14
  firstName: null,
14
15
  lastName: null,
@@ -19,8 +20,9 @@ const defaultUserProps = {
19
20
  class Reset extends BaseCommand_1.BaseCommand {
20
21
  async run() {
21
22
  const owner = await this.getInstanceOwner();
22
- await typedi_1.Container.get(sharedWorkflow_repository_1.SharedWorkflowRepository).makeOwnerOfAllWorkflows(owner);
23
- await typedi_1.Container.get(sharedCredentials_repository_1.SharedCredentialsRepository).makeOwnerOfAllCredentials(owner);
23
+ const personalProject = await typedi_1.Container.get(project_repository_1.ProjectRepository).getPersonalProjectForUserOrFail(owner.id);
24
+ await typedi_1.Container.get(sharedWorkflow_repository_1.SharedWorkflowRepository).makeOwnerOfAllWorkflows(personalProject);
25
+ await typedi_1.Container.get(sharedCredentials_repository_1.SharedCredentialsRepository).makeOwnerOfAllCredentials(personalProject);
24
26
  await typedi_1.Container.get(user_repository_1.UserRepository).deleteAllExcept(owner);
25
27
  await typedi_1.Container.get(user_repository_1.UserRepository).save(Object.assign(owner, defaultUserProps));
26
28
  const danglingCredentials = await typedi_1.Container.get(credentials_repository_1.CredentialsRepository)
@@ -30,7 +32,7 @@ class Reset extends BaseCommand_1.BaseCommand {
30
32
  .getMany();
31
33
  const newSharedCredentials = danglingCredentials.map((credentials) => typedi_1.Container.get(sharedCredentials_repository_1.SharedCredentialsRepository).create({
32
34
  credentials,
33
- user: owner,
35
+ projectId: personalProject.id,
34
36
  role: 'credential:owner',
35
37
  }));
36
38
  await typedi_1.Container.get(sharedCredentials_repository_1.SharedCredentialsRepository).save(newSharedCredentials);