n8n 0.231.2 → 0.233.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 (274) hide show
  1. package/dist/ActiveExecutions.js +2 -3
  2. package/dist/ActiveExecutions.js.map +1 -1
  3. package/dist/ActiveWebhooks.js +2 -3
  4. package/dist/ActiveWebhooks.js.map +1 -1
  5. package/dist/ActiveWorkflowRunner.js +2 -3
  6. package/dist/ActiveWorkflowRunner.js.map +1 -1
  7. package/dist/CredentialTypes.js +2 -3
  8. package/dist/CredentialTypes.js.map +1 -1
  9. package/dist/ExternalHooks.js +2 -3
  10. package/dist/ExternalHooks.js.map +1 -1
  11. package/dist/InternalHooks.js +2 -3
  12. package/dist/InternalHooks.js.map +1 -1
  13. package/dist/License.js +2 -3
  14. package/dist/License.js.map +1 -1
  15. package/dist/LoadNodesAndCredentials.js +2 -3
  16. package/dist/LoadNodesAndCredentials.js.map +1 -1
  17. package/dist/NodeTypes.js +2 -3
  18. package/dist/NodeTypes.js.map +1 -1
  19. package/dist/PublicApi/v1/handlers/versionControl/versionControl.handler.d.ts +8 -0
  20. package/dist/PublicApi/v1/handlers/versionControl/versionControl.handler.js +46 -0
  21. package/dist/PublicApi/v1/handlers/versionControl/versionControl.handler.js.map +1 -0
  22. package/dist/PublicApi/v1/openapi.yml +97 -1
  23. package/dist/Queue.js +2 -3
  24. package/dist/Queue.js.map +1 -1
  25. package/dist/Server.js +5 -4
  26. package/dist/Server.js.map +1 -1
  27. package/dist/TestWebhooks.js +2 -3
  28. package/dist/TestWebhooks.js.map +1 -1
  29. package/dist/UserManagement/email/UserManagementMailer.js +2 -3
  30. package/dist/UserManagement/email/UserManagementMailer.js.map +1 -1
  31. package/dist/WaitTracker.js +2 -3
  32. package/dist/WaitTracker.js.map +1 -1
  33. package/dist/WaitingWebhooks.js +2 -3
  34. package/dist/WaitingWebhooks.js.map +1 -1
  35. package/dist/build.tsbuildinfo +1 -1
  36. package/dist/commands/BaseCommand.js +9 -0
  37. package/dist/commands/BaseCommand.js.map +1 -1
  38. package/dist/commands/audit.js +1 -1
  39. package/dist/commands/audit.js.map +1 -1
  40. package/dist/commands/db/revert.js +1 -1
  41. package/dist/commands/db/revert.js.map +1 -1
  42. package/dist/commands/execute.js +1 -1
  43. package/dist/commands/execute.js.map +1 -1
  44. package/dist/commands/executeBatch.d.ts +3 -0
  45. package/dist/commands/executeBatch.js +34 -2
  46. package/dist/commands/executeBatch.js.map +1 -1
  47. package/dist/commands/export/credentials.js +1 -1
  48. package/dist/commands/export/credentials.js.map +1 -1
  49. package/dist/commands/export/workflow.js +1 -1
  50. package/dist/commands/export/workflow.js.map +1 -1
  51. package/dist/commands/import/credentials.js +1 -1
  52. package/dist/commands/import/credentials.js.map +1 -1
  53. package/dist/commands/import/workflow.js +1 -1
  54. package/dist/commands/import/workflow.js.map +1 -1
  55. package/dist/commands/ldap/reset.js +1 -1
  56. package/dist/commands/ldap/reset.js.map +1 -1
  57. package/dist/commands/license/clear.js +1 -1
  58. package/dist/commands/license/clear.js.map +1 -1
  59. package/dist/commands/license/info.js +1 -1
  60. package/dist/commands/license/info.js.map +1 -1
  61. package/dist/commands/list/workflow.js +1 -1
  62. package/dist/commands/list/workflow.js.map +1 -1
  63. package/dist/commands/start.js +1 -1
  64. package/dist/commands/start.js.map +1 -1
  65. package/dist/commands/update/workflow.js +1 -1
  66. package/dist/commands/update/workflow.js.map +1 -1
  67. package/dist/commands/user-management/reset.js +1 -1
  68. package/dist/commands/user-management/reset.js.map +1 -1
  69. package/dist/commands/webhook.js +1 -1
  70. package/dist/commands/webhook.js.map +1 -1
  71. package/dist/commands/worker.js +1 -1
  72. package/dist/commands/worker.js.map +1 -1
  73. package/dist/config/index.d.ts +0 -3
  74. package/dist/config/schema.d.ts +0 -8
  75. package/dist/config/schema.js +13 -21
  76. package/dist/config/schema.js.map +1 -1
  77. package/dist/constants.d.ts +1 -0
  78. package/dist/constants.js +4 -3
  79. package/dist/constants.js.map +1 -1
  80. package/dist/controllers/auth.controller.js +2 -3
  81. package/dist/controllers/auth.controller.js.map +1 -1
  82. package/dist/controllers/ldap.controller.js +2 -3
  83. package/dist/controllers/ldap.controller.js.map +1 -1
  84. package/dist/controllers/me.controller.js +2 -3
  85. package/dist/controllers/me.controller.js.map +1 -1
  86. package/dist/controllers/nodeTypes.controller.js +2 -3
  87. package/dist/controllers/nodeTypes.controller.js.map +1 -1
  88. package/dist/controllers/nodes.controller.js +2 -3
  89. package/dist/controllers/nodes.controller.js.map +1 -1
  90. package/dist/controllers/owner.controller.js +2 -3
  91. package/dist/controllers/owner.controller.js.map +1 -1
  92. package/dist/controllers/passwordReset.controller.js +2 -3
  93. package/dist/controllers/passwordReset.controller.js.map +1 -1
  94. package/dist/controllers/tags.controller.js +2 -3
  95. package/dist/controllers/tags.controller.js.map +1 -1
  96. package/dist/controllers/translation.controller.js +2 -3
  97. package/dist/controllers/translation.controller.js.map +1 -1
  98. package/dist/controllers/users.controller.js +2 -3
  99. package/dist/controllers/users.controller.js.map +1 -1
  100. package/dist/databases/entities/AbstractEntity.js +1 -1
  101. package/dist/databases/entities/AbstractEntity.js.map +1 -1
  102. package/dist/databases/entities/AuthIdentity.js +2 -3
  103. package/dist/databases/entities/AuthIdentity.js.map +1 -1
  104. package/dist/databases/entities/AuthProviderSyncHistory.js +2 -3
  105. package/dist/databases/entities/AuthProviderSyncHistory.js.map +1 -1
  106. package/dist/databases/entities/CredentialsEntity.js +2 -3
  107. package/dist/databases/entities/CredentialsEntity.js.map +1 -1
  108. package/dist/databases/entities/EventDestinations.js +2 -3
  109. package/dist/databases/entities/EventDestinations.js.map +1 -1
  110. package/dist/databases/entities/ExecutionEntity.js +2 -3
  111. package/dist/databases/entities/ExecutionEntity.js.map +1 -1
  112. package/dist/databases/entities/ExecutionMetadata.js +2 -3
  113. package/dist/databases/entities/ExecutionMetadata.js.map +1 -1
  114. package/dist/databases/entities/InstalledNodes.js +2 -3
  115. package/dist/databases/entities/InstalledNodes.js.map +1 -1
  116. package/dist/databases/entities/InstalledPackages.js +2 -3
  117. package/dist/databases/entities/InstalledPackages.js.map +1 -1
  118. package/dist/databases/entities/Role.js +2 -3
  119. package/dist/databases/entities/Role.js.map +1 -1
  120. package/dist/databases/entities/Settings.js +2 -3
  121. package/dist/databases/entities/Settings.js.map +1 -1
  122. package/dist/databases/entities/SharedCredentials.js +2 -3
  123. package/dist/databases/entities/SharedCredentials.js.map +1 -1
  124. package/dist/databases/entities/SharedWorkflow.js +2 -3
  125. package/dist/databases/entities/SharedWorkflow.js.map +1 -1
  126. package/dist/databases/entities/TagEntity.js +2 -3
  127. package/dist/databases/entities/TagEntity.js.map +1 -1
  128. package/dist/databases/entities/User.js +2 -3
  129. package/dist/databases/entities/User.js.map +1 -1
  130. package/dist/databases/entities/Variables.js +2 -3
  131. package/dist/databases/entities/Variables.js.map +1 -1
  132. package/dist/databases/entities/WebhookEntity.js +2 -3
  133. package/dist/databases/entities/WebhookEntity.js.map +1 -1
  134. package/dist/databases/entities/WorkflowEntity.js +2 -3
  135. package/dist/databases/entities/WorkflowEntity.js.map +1 -1
  136. package/dist/databases/entities/WorkflowStatistics.js +3 -4
  137. package/dist/databases/entities/WorkflowStatistics.js.map +1 -1
  138. package/dist/databases/entities/WorkflowTagMapping.js +2 -3
  139. package/dist/databases/entities/WorkflowTagMapping.js.map +1 -1
  140. package/dist/databases/repositories/authIdentity.repository.js +2 -3
  141. package/dist/databases/repositories/authIdentity.repository.js.map +1 -1
  142. package/dist/databases/repositories/authProviderSyncHistory.repository.js +2 -3
  143. package/dist/databases/repositories/authProviderSyncHistory.repository.js.map +1 -1
  144. package/dist/databases/repositories/credentials.repository.js +2 -3
  145. package/dist/databases/repositories/credentials.repository.js.map +1 -1
  146. package/dist/databases/repositories/eventDestinations.repository.js +2 -3
  147. package/dist/databases/repositories/eventDestinations.repository.js.map +1 -1
  148. package/dist/databases/repositories/execution.repository.js +2 -3
  149. package/dist/databases/repositories/execution.repository.js.map +1 -1
  150. package/dist/databases/repositories/executionMetadata.repository.js +2 -3
  151. package/dist/databases/repositories/executionMetadata.repository.js.map +1 -1
  152. package/dist/databases/repositories/installedNodes.repository.js +2 -3
  153. package/dist/databases/repositories/installedNodes.repository.js.map +1 -1
  154. package/dist/databases/repositories/installedPackages.repository.js +2 -3
  155. package/dist/databases/repositories/installedPackages.repository.js.map +1 -1
  156. package/dist/databases/repositories/role.repository.js +2 -3
  157. package/dist/databases/repositories/role.repository.js.map +1 -1
  158. package/dist/databases/repositories/settings.repository.js +2 -3
  159. package/dist/databases/repositories/settings.repository.js.map +1 -1
  160. package/dist/databases/repositories/sharedCredentials.repository.js +2 -3
  161. package/dist/databases/repositories/sharedCredentials.repository.js.map +1 -1
  162. package/dist/databases/repositories/sharedWorkflow.repository.js +2 -3
  163. package/dist/databases/repositories/sharedWorkflow.repository.js.map +1 -1
  164. package/dist/databases/repositories/tag.repository.js +2 -3
  165. package/dist/databases/repositories/tag.repository.js.map +1 -1
  166. package/dist/databases/repositories/user.repository.js +2 -3
  167. package/dist/databases/repositories/user.repository.js.map +1 -1
  168. package/dist/databases/repositories/variables.repository.js +2 -3
  169. package/dist/databases/repositories/variables.repository.js.map +1 -1
  170. package/dist/databases/repositories/webhook.repository.js +2 -3
  171. package/dist/databases/repositories/webhook.repository.js.map +1 -1
  172. package/dist/databases/repositories/workflow.repository.js +2 -3
  173. package/dist/databases/repositories/workflow.repository.js.map +1 -1
  174. package/dist/databases/repositories/workflowStatistics.repository.js +2 -3
  175. package/dist/databases/repositories/workflowStatistics.repository.js.map +1 -1
  176. package/dist/databases/repositories/workflowTagMapping.repository.js +2 -3
  177. package/dist/databases/repositories/workflowTagMapping.repository.js.map +1 -1
  178. package/dist/decorators/registerController.d.ts +0 -3
  179. package/dist/environments/versionControl/constants.d.ts +12 -0
  180. package/dist/environments/versionControl/constants.js +15 -1
  181. package/dist/environments/versionControl/constants.js.map +1 -1
  182. package/dist/environments/versionControl/middleware/{versionControlEnabledMiddleware.js → versionControlEnabledMiddleware.ee.js} +10 -4
  183. package/dist/environments/versionControl/middleware/versionControlEnabledMiddleware.ee.js.map +1 -0
  184. package/dist/environments/versionControl/types/exportResult.d.ts +9 -0
  185. package/dist/environments/versionControl/types/exportResult.js +3 -0
  186. package/dist/environments/versionControl/types/exportResult.js.map +1 -0
  187. package/dist/environments/versionControl/types/exportableCredential.d.ts +7 -0
  188. package/dist/environments/versionControl/types/exportableCredential.js +3 -0
  189. package/dist/environments/versionControl/types/exportableCredential.js.map +1 -0
  190. package/dist/environments/versionControl/types/exportableWorkflow.d.ts +12 -0
  191. package/dist/environments/versionControl/types/exportableWorkflow.js +3 -0
  192. package/dist/environments/versionControl/types/exportableWorkflow.js.map +1 -0
  193. package/dist/environments/versionControl/types/importResult.d.ts +22 -0
  194. package/dist/environments/versionControl/types/importResult.js +3 -0
  195. package/dist/environments/versionControl/types/importResult.js.map +1 -0
  196. package/dist/environments/versionControl/types/requests.d.ts +16 -0
  197. package/dist/environments/versionControl/types/versionControlCommit.d.ts +3 -0
  198. package/dist/environments/versionControl/types/versionControlCommit.js +21 -0
  199. package/dist/environments/versionControl/types/versionControlCommit.js.map +1 -0
  200. package/dist/environments/versionControl/types/versionControlDisconnect.d.ts +3 -0
  201. package/dist/environments/versionControl/types/versionControlDisconnect.js +22 -0
  202. package/dist/environments/versionControl/types/versionControlDisconnect.js.map +1 -0
  203. package/dist/environments/versionControl/types/versionControlPreferences.d.ts +3 -1
  204. package/dist/environments/versionControl/types/versionControlPreferences.js +22 -6
  205. package/dist/environments/versionControl/types/versionControlPreferences.js.map +1 -1
  206. package/dist/environments/versionControl/types/versionControlPullWorkFolder.d.ts +16 -0
  207. package/dist/environments/versionControl/types/versionControlPullWorkFolder.js +46 -0
  208. package/dist/environments/versionControl/types/versionControlPullWorkFolder.js.map +1 -0
  209. package/dist/environments/versionControl/types/versionControlPush.d.ts +3 -0
  210. package/dist/environments/versionControl/types/versionControlPush.js +22 -0
  211. package/dist/environments/versionControl/types/versionControlPush.js.map +1 -0
  212. package/dist/environments/versionControl/types/versionControlPushWorkFolder.d.ts +8 -0
  213. package/dist/environments/versionControl/types/versionControlPushWorkFolder.js +47 -0
  214. package/dist/environments/versionControl/types/versionControlPushWorkFolder.js.map +1 -0
  215. package/dist/environments/versionControl/types/versionControlSetBranch.d.ts +3 -0
  216. package/dist/environments/versionControl/types/versionControlSetBranch.js +21 -0
  217. package/dist/environments/versionControl/types/versionControlSetBranch.js.map +1 -0
  218. package/dist/environments/versionControl/types/versionControlSetReadOnly.d.ts +3 -0
  219. package/dist/environments/versionControl/types/versionControlSetReadOnly.js +21 -0
  220. package/dist/environments/versionControl/types/versionControlSetReadOnly.js.map +1 -0
  221. package/dist/environments/versionControl/types/versionControlStage.d.ts +5 -0
  222. package/dist/environments/versionControl/types/versionControlStage.js +32 -0
  223. package/dist/environments/versionControl/types/versionControlStage.js.map +1 -0
  224. package/dist/environments/versionControl/types/versionControlledFile.d.ts +12 -0
  225. package/dist/environments/versionControl/types/versionControlledFile.js +3 -0
  226. package/dist/environments/versionControl/types/versionControlledFile.js.map +1 -0
  227. package/dist/environments/versionControl/versionControl.controller.ee.d.ts +35 -4
  228. package/dist/environments/versionControl/versionControl.controller.ee.js +377 -19
  229. package/dist/environments/versionControl/versionControl.controller.ee.js.map +1 -1
  230. package/dist/environments/versionControl/versionControl.service.ee.d.ts +54 -12
  231. package/dist/environments/versionControl/versionControl.service.ee.js +373 -73
  232. package/dist/environments/versionControl/versionControl.service.ee.js.map +1 -1
  233. package/dist/environments/versionControl/versionControlExport.service.ee.d.ts +36 -0
  234. package/dist/environments/versionControl/versionControlExport.service.ee.js +561 -0
  235. package/dist/environments/versionControl/versionControlExport.service.ee.js.map +1 -0
  236. package/dist/environments/versionControl/versionControlGit.service.ee.d.ts +51 -0
  237. package/dist/environments/versionControl/versionControlGit.service.ee.js +289 -0
  238. package/dist/environments/versionControl/versionControlGit.service.ee.js.map +1 -0
  239. package/dist/environments/versionControl/{versionControlHelper.d.ts → versionControlHelper.ee.d.ts} +1 -2
  240. package/dist/environments/versionControl/{versionControlHelper.js → versionControlHelper.ee.js} +23 -10
  241. package/dist/environments/versionControl/versionControlHelper.ee.js.map +1 -0
  242. package/dist/environments/versionControl/versionControlPreferences.service.ee.d.ts +23 -0
  243. package/dist/environments/versionControl/versionControlPreferences.service.ee.js +180 -0
  244. package/dist/environments/versionControl/versionControlPreferences.service.ee.js.map +1 -0
  245. package/dist/eventbus/eventBus.controller.js +2 -3
  246. package/dist/eventbus/eventBus.controller.js.map +1 -1
  247. package/dist/events/WorkflowStatistics.js +0 -1
  248. package/dist/events/WorkflowStatistics.js.map +1 -1
  249. package/dist/middlewares/basicAuth.d.ts +0 -3
  250. package/dist/middlewares/externalJWTAuth.d.ts +0 -3
  251. package/dist/posthog/index.js +2 -3
  252. package/dist/posthog/index.js.map +1 -1
  253. package/dist/push/index.js +2 -3
  254. package/dist/push/index.js.map +1 -1
  255. package/dist/requests.d.ts +0 -1
  256. package/dist/requests.js +2 -7
  257. package/dist/requests.js.map +1 -1
  258. package/dist/role/role.service.js +2 -3
  259. package/dist/role/role.service.js.map +1 -1
  260. package/dist/sso/saml/constants.js +1 -1
  261. package/dist/sso/saml/constants.js.map +1 -1
  262. package/dist/sso/saml/routes/saml.controller.ee.js +2 -3
  263. package/dist/sso/saml/routes/saml.controller.ee.js.map +1 -1
  264. package/dist/sso/saml/saml.service.ee.js +2 -3
  265. package/dist/sso/saml/saml.service.ee.js.map +1 -1
  266. package/dist/sso/saml/types/samlPreferences.js +1 -1
  267. package/dist/sso/saml/types/samlPreferences.js.map +1 -1
  268. package/dist/telemetry/index.js +2 -3
  269. package/dist/telemetry/index.js.map +1 -1
  270. package/oclif.manifest.json +1 -1
  271. package/package.json +10 -5
  272. package/dist/environments/versionControl/middleware/versionControlEnabledMiddleware.js.map +0 -1
  273. package/dist/environments/versionControl/versionControlHelper.js.map +0 -1
  274. /package/dist/environments/versionControl/middleware/{versionControlEnabledMiddleware.d.ts → versionControlEnabledMiddleware.ee.d.ts} +0 -0
@@ -28,103 +28,403 @@ var __importStar = (this && this.__importStar) || function (mod) {
28
28
  __setModuleDefault(result, mod);
29
29
  return result;
30
30
  };
31
+ var __metadata = (this && this.__metadata) || function (k, v) {
32
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
31
37
  Object.defineProperty(exports, "__esModule", { value: true });
32
38
  exports.VersionControlService = void 0;
33
39
  const typedi_1 = require("typedi");
34
- const versionControlHelper_1 = require("./versionControlHelper");
35
- const versionControlPreferences_1 = require("./types/versionControlPreferences");
36
- const constants_1 = require("./constants");
40
+ const path_1 = __importDefault(require("path"));
37
41
  const Db = __importStar(require("../../Db"));
42
+ const versionControlHelper_ee_1 = require("./versionControlHelper.ee");
43
+ const constants_1 = require("./constants");
38
44
  const n8n_workflow_1 = require("n8n-workflow");
39
- const class_validator_1 = require("class-validator");
40
- let VersionControlService = class VersionControlService {
41
- constructor() {
42
- this._versionControlPreferences = new versionControlPreferences_1.VersionControlPreferences();
45
+ const versionControlGit_service_ee_1 = require("./versionControlGit.service.ee");
46
+ const n8n_core_1 = require("n8n-core");
47
+ const versionControlExport_service_ee_1 = require("./versionControlExport.service.ee");
48
+ const ResponseHelper_1 = require("../../ResponseHelper");
49
+ const versionControlPreferences_service_ee_1 = require("./versionControlPreferences.service.ee");
50
+ const fs_1 = require("fs");
51
+ let VersionControlService = exports.VersionControlService = class VersionControlService {
52
+ constructor(gitService, versionControlPreferencesService, versionControlExportService) {
53
+ this.gitService = gitService;
54
+ this.versionControlPreferencesService = versionControlPreferencesService;
55
+ this.versionControlExportService = versionControlExportService;
56
+ const userFolder = n8n_core_1.UserSettings.getUserN8nFolderPath();
57
+ this.sshFolder = path_1.default.join(userFolder, constants_1.VERSION_CONTROL_SSH_FOLDER);
58
+ this.gitFolder = path_1.default.join(userFolder, constants_1.VERSION_CONTROL_GIT_FOLDER);
59
+ this.sshKeyName = path_1.default.join(this.sshFolder, constants_1.VERSION_CONTROL_SSH_KEY_NAME);
43
60
  }
44
61
  async init() {
45
- await this.loadFromDbAndApplyVersionControlPreferences();
62
+ this.gitService.resetService();
63
+ (0, versionControlHelper_ee_1.versionControlFoldersExistCheck)([this.gitFolder, this.sshFolder]);
64
+ await this.versionControlPreferencesService.loadFromDbAndApplyVersionControlPreferences();
65
+ await this.gitService.initService({
66
+ versionControlPreferences: this.versionControlPreferencesService.getPreferences(),
67
+ gitFolder: this.gitFolder,
68
+ sshKeyName: this.sshKeyName,
69
+ sshFolder: this.sshFolder,
70
+ });
46
71
  }
47
- get versionControlPreferences() {
48
- return {
49
- ...this._versionControlPreferences,
50
- privateKey: '(redacted)',
51
- };
72
+ async disconnect(options = {}) {
73
+ try {
74
+ await this.versionControlPreferencesService.setPreferences({
75
+ connected: false,
76
+ branchName: '',
77
+ });
78
+ await this.versionControlExportService.deleteRepositoryFolder();
79
+ if (!options.keepKeyPair) {
80
+ await this.versionControlPreferencesService.deleteKeyPairFiles();
81
+ }
82
+ this.gitService.resetService();
83
+ return this.versionControlPreferencesService.versionControlPreferences;
84
+ }
85
+ catch (error) {
86
+ throw Error(`Failed to disconnect from version control: ${error.message}`);
87
+ }
88
+ }
89
+ async initializeRepository(preferences) {
90
+ var _a;
91
+ if (!this.gitService.git) {
92
+ await this.init();
93
+ }
94
+ n8n_workflow_1.LoggerProxy.debug('Initializing repository...');
95
+ await this.gitService.initRepository(preferences);
96
+ let getBranchesResult;
97
+ try {
98
+ getBranchesResult = await this.getBranches();
99
+ }
100
+ catch (error) {
101
+ if (error.message.includes('Warning: Permanently added')) {
102
+ n8n_workflow_1.LoggerProxy.debug('Added repository host to the list of known hosts. Retrying...');
103
+ getBranchesResult = await this.getBranches();
104
+ }
105
+ else {
106
+ throw error;
107
+ }
108
+ }
109
+ if (getBranchesResult.branches.includes(preferences.branchName)) {
110
+ await this.gitService.setBranch(preferences.branchName);
111
+ }
112
+ else {
113
+ if (((_a = getBranchesResult.branches) === null || _a === void 0 ? void 0 : _a.length) === 0) {
114
+ try {
115
+ (0, fs_1.writeFileSync)(path_1.default.join(this.gitFolder, '/README.md'), constants_1.VERSION_CONTROL_README);
116
+ await this.gitService.stage(new Set(['README.md']));
117
+ await this.gitService.commit('Initial commit');
118
+ await this.gitService.push({
119
+ branch: preferences.branchName,
120
+ force: true,
121
+ });
122
+ getBranchesResult = await this.getBranches();
123
+ }
124
+ catch (fileError) {
125
+ n8n_workflow_1.LoggerProxy.error(`Failed to create initial commit: ${fileError.message}`);
126
+ }
127
+ }
128
+ else {
129
+ await this.versionControlPreferencesService.setPreferences({
130
+ branchName: '',
131
+ connected: true,
132
+ });
133
+ }
134
+ }
135
+ return getBranchesResult;
52
136
  }
53
- set versionControlPreferences(preferences) {
54
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
55
- this._versionControlPreferences = {
56
- connected: (_a = preferences.connected) !== null && _a !== void 0 ? _a : this._versionControlPreferences.connected,
57
- authorEmail: (_b = preferences.authorEmail) !== null && _b !== void 0 ? _b : this._versionControlPreferences.authorEmail,
58
- authorName: (_c = preferences.authorName) !== null && _c !== void 0 ? _c : this._versionControlPreferences.authorName,
59
- branchName: (_d = preferences.branchName) !== null && _d !== void 0 ? _d : this._versionControlPreferences.branchName,
60
- branchColor: (_e = preferences.branchColor) !== null && _e !== void 0 ? _e : this._versionControlPreferences.branchColor,
61
- branchReadOnly: (_f = preferences.branchReadOnly) !== null && _f !== void 0 ? _f : this._versionControlPreferences.branchReadOnly,
62
- privateKey: (_g = preferences.privateKey) !== null && _g !== void 0 ? _g : this._versionControlPreferences.privateKey,
63
- publicKey: (_h = preferences.publicKey) !== null && _h !== void 0 ? _h : this._versionControlPreferences.publicKey,
64
- repositoryUrl: (_j = preferences.repositoryUrl) !== null && _j !== void 0 ? _j : this._versionControlPreferences.repositoryUrl,
137
+ async export() {
138
+ const result = {
139
+ credentials: undefined,
140
+ tags: undefined,
141
+ variables: undefined,
142
+ workflows: undefined,
65
143
  };
144
+ try {
145
+ await this.versionControlExportService.cleanWorkFolder();
146
+ result.tags = await this.versionControlExportService.exportTagsToWorkFolder();
147
+ result.variables = await this.versionControlExportService.exportVariablesToWorkFolder();
148
+ result.workflows = await this.versionControlExportService.exportWorkflowsToWorkFolder();
149
+ result.credentials = await this.versionControlExportService.exportCredentialsToWorkFolder();
150
+ }
151
+ catch (error) {
152
+ throw new ResponseHelper_1.BadRequestError(error.message);
153
+ }
154
+ return result;
66
155
  }
67
- async generateAndSaveKeyPair() {
68
- const keyPair = (0, versionControlHelper_1.generateSshKeyPair)('ed25519');
69
- if (keyPair.publicKey && keyPair.privateKey) {
70
- await this.setPreferences({ ...keyPair });
156
+ async import(options) {
157
+ try {
158
+ return await this.versionControlExportService.importFromWorkFolder(options);
71
159
  }
72
- else {
73
- n8n_workflow_1.LoggerProxy.error('Failed to generate key pair');
160
+ catch (error) {
161
+ throw new ResponseHelper_1.BadRequestError(error.message);
74
162
  }
75
- return keyPair;
76
163
  }
77
- async validateVersionControlPreferences(preferences) {
78
- const preferencesObject = new versionControlPreferences_1.VersionControlPreferences(preferences);
79
- const validationResult = await (0, class_validator_1.validate)(preferencesObject, {
80
- forbidUnknownValues: false,
81
- skipMissingProperties: true,
82
- stopAtFirstError: false,
83
- validationError: { target: false },
164
+ async getBranches() {
165
+ await this.gitService.fetch();
166
+ return this.gitService.getBranches();
167
+ }
168
+ async setBranch(branch) {
169
+ await this.versionControlPreferencesService.setPreferences({
170
+ branchName: branch,
171
+ connected: (branch === null || branch === void 0 ? void 0 : branch.length) > 0,
84
172
  });
85
- if (validationResult.length > 0) {
86
- throw new Error(`Invalid version control preferences: ${JSON.stringify(validationResult)}`);
87
- }
88
- return validationResult;
89
- }
90
- async setPreferences(preferences, saveToDb = true) {
91
- this.versionControlPreferences = preferences;
92
- if (saveToDb) {
93
- const settingsValue = JSON.stringify(this._versionControlPreferences);
94
- try {
95
- await Db.collections.Settings.save({
96
- key: constants_1.VERSION_CONTROL_PREFERENCES_DB_KEY,
97
- value: settingsValue,
98
- loadOnStartup: true,
99
- });
100
- }
101
- catch (error) {
102
- throw new Error(`Failed to save version control preferences: ${error.message}`);
173
+ return this.gitService.setBranch(branch);
174
+ }
175
+ async resetWorkfolder(options) {
176
+ const currentBranch = await this.gitService.getCurrentBranch();
177
+ await this.versionControlExportService.cleanWorkFolder();
178
+ await this.gitService.resetBranch({
179
+ hard: true,
180
+ target: currentBranch.remote,
181
+ });
182
+ await this.gitService.pull();
183
+ if (options.importAfterPull) {
184
+ return this.import(options);
185
+ }
186
+ return;
187
+ }
188
+ async pushWorkfolder(options) {
189
+ var _a, _b;
190
+ if (this.versionControlPreferencesService.isBranchReadOnly()) {
191
+ throw new ResponseHelper_1.BadRequestError('Cannot push onto read-only branch.');
192
+ }
193
+ if (!options.skipDiff) {
194
+ const diffResult = await this.getStatus();
195
+ const possibleConflicts = diffResult === null || diffResult === void 0 ? void 0 : diffResult.filter((file) => file.conflict);
196
+ if ((possibleConflicts === null || possibleConflicts === void 0 ? void 0 : possibleConflicts.length) > 0 && options.force !== true) {
197
+ await this.unstage();
198
+ return diffResult;
103
199
  }
104
200
  }
105
- return this.versionControlPreferences;
201
+ await this.unstage();
202
+ await this.stage(options);
203
+ await this.gitService.commit((_a = options.message) !== null && _a !== void 0 ? _a : 'Updated Workfolder');
204
+ return this.gitService.push({
205
+ branch: this.versionControlPreferencesService.getBranchName(),
206
+ force: (_b = options.force) !== null && _b !== void 0 ? _b : false,
207
+ });
106
208
  }
107
- async loadFromDbAndApplyVersionControlPreferences() {
108
- const loadedPreferences = await Db.collections.Settings.findOne({
109
- where: { key: constants_1.VERSION_CONTROL_PREFERENCES_DB_KEY },
209
+ async pullWorkfolder(options) {
210
+ await this.resetWorkfolder({
211
+ importAfterPull: false,
212
+ userId: options.userId,
213
+ force: false,
110
214
  });
111
- if (loadedPreferences) {
112
- try {
113
- const preferences = (0, n8n_workflow_1.jsonParse)(loadedPreferences.value);
114
- if (preferences) {
115
- await this.setPreferences(preferences, false);
116
- return preferences;
215
+ await this.export();
216
+ const status = await this.gitService.status();
217
+ if (status.modified.length > 0 && options.force !== true) {
218
+ return status;
219
+ }
220
+ await this.resetWorkfolder({ ...options, importAfterPull: false });
221
+ if (options.importAfterPull) {
222
+ return this.import(options);
223
+ }
224
+ return;
225
+ }
226
+ async stage(options) {
227
+ const { fileNames, credentialIds, workflowIds } = options;
228
+ const status = await this.gitService.status();
229
+ let mergedFileNames = new Set();
230
+ fileNames === null || fileNames === void 0 ? void 0 : fileNames.forEach((e) => mergedFileNames.add(e));
231
+ credentialIds === null || credentialIds === void 0 ? void 0 : credentialIds.forEach((e) => mergedFileNames.add(this.versionControlExportService.getCredentialsPath(e)));
232
+ workflowIds === null || workflowIds === void 0 ? void 0 : workflowIds.forEach((e) => mergedFileNames.add(this.versionControlExportService.getWorkflowPath(e)));
233
+ if (mergedFileNames.size === 0) {
234
+ mergedFileNames = new Set([
235
+ ...status.not_added,
236
+ ...status.created,
237
+ ...status.modified,
238
+ ]);
239
+ }
240
+ const deletedFiles = new Set(status.deleted);
241
+ deletedFiles.forEach((e) => mergedFileNames.delete(e));
242
+ await this.unstage();
243
+ const stageResult = await this.gitService.stage(mergedFileNames, deletedFiles);
244
+ if (!stageResult) {
245
+ const statusResult = await this.gitService.status();
246
+ return { staged: statusResult.staged };
247
+ }
248
+ return stageResult;
249
+ }
250
+ async unstage() {
251
+ const stageResult = await this.gitService.resetBranch();
252
+ if (!stageResult) {
253
+ return this.gitService.status();
254
+ }
255
+ return stageResult;
256
+ }
257
+ async status() {
258
+ return this.gitService.status();
259
+ }
260
+ async fileNameToVersionControlledFile(fileName, location, statusResult) {
261
+ let id = undefined;
262
+ let name = '';
263
+ let conflict = false;
264
+ let status = 'unknown';
265
+ let type = 'file';
266
+ if (statusResult.not_added.find((e) => e === fileName))
267
+ status = 'new';
268
+ else if (statusResult.conflicted.find((e) => e === fileName)) {
269
+ status = 'conflicted';
270
+ conflict = true;
271
+ }
272
+ else if (statusResult.created.find((e) => e === fileName))
273
+ status = 'created';
274
+ else if (statusResult.deleted.find((e) => e === fileName))
275
+ status = 'deleted';
276
+ else if (statusResult.modified.find((e) => e === fileName))
277
+ status = 'modified';
278
+ if (fileName.startsWith(constants_1.VERSION_CONTROL_WORKFLOW_EXPORT_FOLDER)) {
279
+ type = 'workflow';
280
+ if (status === 'deleted') {
281
+ id = fileName
282
+ .replace(constants_1.VERSION_CONTROL_WORKFLOW_EXPORT_FOLDER, '')
283
+ .replace(/[\/,\\]/, '')
284
+ .replace('.json', '');
285
+ if (location === 'remote') {
286
+ const existingWorkflow = await Db.collections.Workflow.find({
287
+ where: { id },
288
+ });
289
+ if ((existingWorkflow === null || existingWorkflow === void 0 ? void 0 : existingWorkflow.length) > 0) {
290
+ name = existingWorkflow[0].name;
291
+ }
292
+ }
293
+ else {
294
+ name = '(deleted)';
117
295
  }
118
296
  }
119
- catch (error) {
120
- n8n_workflow_1.LoggerProxy.warn(`Could not parse Version Control settings from database: ${error.message}`);
297
+ else {
298
+ const workflow = await this.versionControlExportService.getWorkflowFromFile(fileName);
299
+ if (!(workflow === null || workflow === void 0 ? void 0 : workflow.id)) {
300
+ if (location === 'local') {
301
+ return;
302
+ }
303
+ id = fileName
304
+ .replace(constants_1.VERSION_CONTROL_WORKFLOW_EXPORT_FOLDER + '/', '')
305
+ .replace('.json', '');
306
+ status = 'created';
307
+ }
308
+ else {
309
+ id = workflow.id;
310
+ name = workflow.name;
311
+ }
121
312
  }
122
313
  }
123
- return;
314
+ if (fileName.startsWith(constants_1.VERSION_CONTROL_CREDENTIAL_EXPORT_FOLDER)) {
315
+ type = 'credential';
316
+ if (status === 'deleted') {
317
+ id = fileName
318
+ .replace(constants_1.VERSION_CONTROL_CREDENTIAL_EXPORT_FOLDER, '')
319
+ .replace(/[\/,\\]/, '')
320
+ .replace('.json', '');
321
+ if (location === 'remote') {
322
+ const existingCredential = await Db.collections.Credentials.find({
323
+ where: { id },
324
+ });
325
+ if ((existingCredential === null || existingCredential === void 0 ? void 0 : existingCredential.length) > 0) {
326
+ name = existingCredential[0].name;
327
+ }
328
+ }
329
+ else {
330
+ name = '(deleted)';
331
+ }
332
+ }
333
+ else {
334
+ const credential = await this.versionControlExportService.getCredentialFromFile(fileName);
335
+ if (!(credential === null || credential === void 0 ? void 0 : credential.id)) {
336
+ if (location === 'local') {
337
+ return;
338
+ }
339
+ id = fileName
340
+ .replace(constants_1.VERSION_CONTROL_CREDENTIAL_EXPORT_FOLDER + '/', '')
341
+ .replace('.json', '');
342
+ status = 'created';
343
+ }
344
+ else {
345
+ id = credential.id;
346
+ name = credential.name;
347
+ }
348
+ }
349
+ }
350
+ if (fileName.startsWith(constants_1.VERSION_CONTROL_VARIABLES_EXPORT_FILE)) {
351
+ id = 'variables';
352
+ name = 'variables';
353
+ type = 'variables';
354
+ }
355
+ if (fileName.startsWith(constants_1.VERSION_CONTROL_TAGS_EXPORT_FILE)) {
356
+ id = 'tags';
357
+ name = 'tags';
358
+ type = 'tags';
359
+ }
360
+ if (!id)
361
+ return;
362
+ return {
363
+ file: fileName,
364
+ id,
365
+ name,
366
+ type,
367
+ status,
368
+ location,
369
+ conflict,
370
+ };
371
+ }
372
+ async getStatus() {
373
+ var _a, _b;
374
+ await this.export();
375
+ await this.stage({});
376
+ await this.gitService.fetch();
377
+ const versionControlledFiles = [];
378
+ const diffRemote = await this.gitService.diffRemote();
379
+ const diffLocal = await this.gitService.diffLocal();
380
+ const status = await this.gitService.status();
381
+ await Promise.all([
382
+ ...((_a = diffRemote === null || diffRemote === void 0 ? void 0 : diffRemote.files.map(async (e) => {
383
+ const resolvedFile = await this.fileNameToVersionControlledFile(e.file, 'remote', status);
384
+ if (resolvedFile) {
385
+ versionControlledFiles.push(resolvedFile);
386
+ }
387
+ })) !== null && _a !== void 0 ? _a : []),
388
+ ...((_b = diffLocal === null || diffLocal === void 0 ? void 0 : diffLocal.files.map(async (e) => {
389
+ const resolvedFile = await this.fileNameToVersionControlledFile(e.file, 'local', status);
390
+ if (resolvedFile) {
391
+ versionControlledFiles.push(resolvedFile);
392
+ }
393
+ })) !== null && _b !== void 0 ? _b : []),
394
+ ]);
395
+ versionControlledFiles.forEach((e, index, array) => {
396
+ const similarItems = array.filter((f) => f.type === e.type && (f.file === e.file || f.id === e.id));
397
+ if (similarItems.length > 1) {
398
+ similarItems.forEach((item) => {
399
+ item.conflict = true;
400
+ });
401
+ }
402
+ });
403
+ return versionControlledFiles;
404
+ }
405
+ async commit(message) {
406
+ return this.gitService.commit(message !== null && message !== void 0 ? message : 'Updated Workfolder');
407
+ }
408
+ async fetch() {
409
+ return this.gitService.fetch();
410
+ }
411
+ async diff() {
412
+ return this.gitService.diff();
413
+ }
414
+ async pull() {
415
+ return this.gitService.pull();
416
+ }
417
+ async push(force = false) {
418
+ return this.gitService.push({
419
+ branch: this.versionControlPreferencesService.getBranchName(),
420
+ force,
421
+ });
124
422
  }
125
423
  };
126
- VersionControlService = __decorate([
127
- (0, typedi_1.Service)()
424
+ exports.VersionControlService = VersionControlService = __decorate([
425
+ (0, typedi_1.Service)(),
426
+ __metadata("design:paramtypes", [versionControlGit_service_ee_1.VersionControlGitService,
427
+ versionControlPreferences_service_ee_1.VersionControlPreferencesService,
428
+ versionControlExport_service_ee_1.VersionControlExportService])
128
429
  ], VersionControlService);
129
- exports.VersionControlService = VersionControlService;
130
430
  //# sourceMappingURL=versionControl.service.ee.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"versionControl.service.ee.js","sourceRoot":"","sources":["../../../src/environments/versionControl/versionControl.service.ee.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"versionControl.service.ee.js","sourceRoot":"","sources":["../../../src/environments/versionControl/versionControl.service.ee.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { VersionControlGitService } from './versionControlGit.service.ee';
2
+ import type { IWorkflowToImport } from '../../Interfaces';
3
+ import type { ExportableCredential } from './types/exportableCredential';
4
+ import type { ExportResult } from './types/exportResult';
5
+ import type { ImportResult } from './types/importResult';
6
+ import type { VersionControllPullOptions } from './types/versionControlPullWorkFolder';
7
+ export declare class VersionControlExportService {
8
+ private gitService;
9
+ private gitFolder;
10
+ private workflowExportFolder;
11
+ private credentialExportFolder;
12
+ constructor(gitService: VersionControlGitService);
13
+ getWorkflowPath(workflowId: string): string;
14
+ getCredentialsPath(credentialsId: string): string;
15
+ getTagsPath(): string;
16
+ getVariablesPath(): string;
17
+ getWorkflowFromFile(filePath: string, root?: string): Promise<IWorkflowToImport | undefined>;
18
+ getCredentialFromFile(filePath: string, root?: string): Promise<ExportableCredential | undefined>;
19
+ private getOwnerGlobalRole;
20
+ private getOwnerCredentialRole;
21
+ private getOwnerWorkflowRole;
22
+ cleanWorkFolder(): Promise<void>;
23
+ deleteRepositoryFolder(): Promise<void>;
24
+ private rmDeletedWorkflowsFromExportFolder;
25
+ private writeExportableWorkflowsToExportFolder;
26
+ exportWorkflowsToWorkFolder(): Promise<ExportResult>;
27
+ exportVariablesToWorkFolder(): Promise<ExportResult>;
28
+ exportTagsToWorkFolder(): Promise<ExportResult>;
29
+ private replaceCredentialData;
30
+ exportCredentialsToWorkFolder(): Promise<ExportResult>;
31
+ private importCredentialsFromFiles;
32
+ private importVariablesFromFile;
33
+ private importTagsFromFile;
34
+ private importWorkflowsFromFiles;
35
+ importFromWorkFolder(options: VersionControllPullOptions): Promise<ImportResult>;
36
+ }