@sw-tsdk/plugin-connector 3.9.1 → 3.11.1

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 (57) hide show
  1. package/README.md +124 -65
  2. package/lib/commands/action/run/local.js +1 -1
  3. package/lib/commands/action/run/local.js.map +1 -1
  4. package/lib/commands/component/create.d.ts +4 -0
  5. package/lib/commands/component/create.js +49 -1
  6. package/lib/commands/component/create.js.map +1 -1
  7. package/lib/commands/connector/create/openapi.js +48 -30
  8. package/lib/commands/connector/create/openapi.js.map +1 -1
  9. package/lib/commands/migrator/convert.d.ts +25 -0
  10. package/lib/commands/migrator/convert.js +224 -0
  11. package/lib/commands/migrator/convert.js.map +1 -0
  12. package/lib/commands/migrator/export.d.ts +13 -0
  13. package/lib/commands/migrator/export.js +121 -0
  14. package/lib/commands/migrator/export.js.map +1 -0
  15. package/lib/commands/playbook/create.d.ts +4 -0
  16. package/lib/commands/playbook/create.js +49 -1
  17. package/lib/commands/playbook/create.js.map +1 -1
  18. package/lib/common.js +1 -0
  19. package/lib/common.js.map +1 -1
  20. package/lib/templates/migrator-runners/image.png +0 -0
  21. package/lib/templates/migrator-runners/plugin_override.txt +34 -0
  22. package/lib/templates/migrator-runners/runner_override.txt +22 -0
  23. package/lib/templates/migrator-runners/script_override.txt +31 -0
  24. package/lib/templates/python_312_definition/template/connector/config/actions/example.yaml +40 -0
  25. package/lib/templates/python_312_definition/template/connector/config/assets/example.yaml +27 -0
  26. package/lib/templates/python_312_definition/template/data/asset.json +1 -0
  27. package/lib/templates/python_312_definition/template/docs/CHANGELOG.md.t +7 -0
  28. package/lib/templates/python_312_definition/template/docs/README.md +38 -0
  29. package/lib/templates/python_312_definition/template/requirements.txt +0 -0
  30. package/lib/templates/python_312_definition/template_src/connector/config/actions/example.yaml +40 -0
  31. package/lib/templates/python_312_definition/template_src/connector/config/assets/example.yaml +27 -0
  32. package/lib/templates/python_312_definition/template_src/connector/src/runner_override.py +11 -0
  33. package/lib/templates/python_312_definition/template_src/data/asset.json +1 -0
  34. package/lib/templates/python_312_definition/template_src/docs/CHANGELOG.md.t +7 -0
  35. package/lib/templates/python_312_definition/template_src/docs/README.md +38 -0
  36. package/lib/templates/python_312_definition/template_src/requirements.txt +0 -0
  37. package/lib/transformers/base-transformer.d.ts +6 -0
  38. package/lib/transformers/base-transformer.js +54 -0
  39. package/lib/transformers/base-transformer.js.map +1 -0
  40. package/lib/transformers/connector-generator.d.ts +18 -0
  41. package/lib/transformers/connector-generator.js +327 -0
  42. package/lib/transformers/connector-generator.js.map +1 -0
  43. package/lib/transformers/forked-plugin-transformer.d.ts +4 -0
  44. package/lib/transformers/forked-plugin-transformer.js +16 -0
  45. package/lib/transformers/forked-plugin-transformer.js.map +1 -0
  46. package/lib/transformers/index.d.ts +3 -0
  47. package/lib/transformers/index.js +17 -0
  48. package/lib/transformers/index.js.map +1 -0
  49. package/lib/transformers/script-transformer.d.ts +5 -0
  50. package/lib/transformers/script-transformer.js +16 -0
  51. package/lib/transformers/script-transformer.js.map +1 -0
  52. package/lib/types/connector-types.d.ts +8 -0
  53. package/lib/types/migrator-types.d.ts +59 -0
  54. package/lib/types/migrator-types.js +18 -0
  55. package/lib/types/migrator-types.js.map +1 -0
  56. package/oclif.manifest.json +183 -4
  57. package/package.json +13 -6
@@ -93,6 +93,9 @@ class OpenAPI extends core_2.Base {
93
93
  directory = (0, node_path_1.resolve)(directory || process.cwd());
94
94
  const connectorDirectory = (0, node_path_1.basename)(directory) === `t_${name}` ? directory : (0, node_path_1.join)(directory, `t_${name}`);
95
95
  await (0, fs_extra_1.ensureDir)(connectorDirectory);
96
+ const title = vendor.toLowerCase() === product.toLowerCase() ?
97
+ await (0, connector_1.titleCaseString)(`${answers.vendor}`) :
98
+ await (0, connector_1.titleCaseString)(`${answers.vendor} ${answers.product}`);
96
99
  const connector = {
97
100
  vendor: answers.vendor,
98
101
  product: answers.product,
@@ -112,11 +115,15 @@ class OpenAPI extends core_2.Base {
112
115
  access: 'public',
113
116
  },
114
117
  buildConfig: {
115
- template: this.defaultTemplate,
118
+ template: answers.template || this.defaultTemplate,
116
119
  },
120
+ block_short_desc_update: false,
121
+ block_readme_update: false,
122
+ block_external_md_update: false,
123
+ block_external_yml_update: false,
117
124
  },
118
125
  repository: `https://github.com/swimlane/t_${name}`,
119
- title: '',
126
+ title,
120
127
  version: '1.0.0',
121
128
  runConfig: {
122
129
  inputs: {
@@ -135,7 +142,7 @@ class OpenAPI extends core_2.Base {
135
142
  await (0, fs_extra_1.ensureDir)(assetsFolder);
136
143
  const actionsFolder = (0, node_path_1.join)(configFolder, 'actions');
137
144
  await (0, fs_extra_1.ensureDir)(actionsFolder);
138
- const codeFolder = (0, node_path_1.join)(connectorFolder, 'code');
145
+ const codeFolder = (0, node_path_1.join)(connectorFolder, 'src');
139
146
  await (0, fs_extra_1.ensureDir)(codeFolder);
140
147
  await (0, fs_extra_1.copy)((0, node_path_1.join)(__dirname, '..', '..', '..', 'templates', 'python_311_definition', 'template', 'docs'), docsFolder);
141
148
  let spec = js_yaml_1.default.load(await fs.promises.readFile(specs, 'utf8'));
@@ -185,9 +192,11 @@ class OpenAPI extends core_2.Base {
185
192
  }
186
193
  }
187
194
  async createActionData(action, endpoint, method) {
195
+ // Ensure double curly braces before processing
196
+ endpoint = endpoint.replaceAll(/{([^}]*)}/g, '{{$1}}');
188
197
  const actionWords = action.operationId?.split(/(?=[A-Z])/) ??
189
198
  endpoint.split('/')
190
- .map(x => x.replace(/{([^}]*)}/, 'by_$1'))
199
+ .map(x => x) // No need to replace again, already done above
191
200
  .filter(Boolean);
192
201
  let name = actionWords
193
202
  .map((item) => item.toLowerCase())
@@ -198,7 +207,7 @@ class OpenAPI extends core_2.Base {
198
207
  }
199
208
  let title = actionWords.join(' ');
200
209
  if (title.length > 50) {
201
- core_1.ux.warn(`Truncated name: ${name}`);
210
+ core_1.ux.warn(`Truncated title: ${title}`);
202
211
  title = title.slice(0, 50);
203
212
  }
204
213
  const builtAction = {
@@ -219,44 +228,53 @@ class OpenAPI extends core_2.Base {
219
228
  let input = {
220
229
  type: 'object',
221
230
  properties: {},
231
+ required: [], // Ensure we explicitly track required properties
222
232
  };
223
233
  if (action.parameters) {
224
234
  const headers = await this.getInnerData(action.parameters, 'header', 'in');
225
- headers ? input.properties.headers = {
226
- title: 'Headers',
227
- type: 'object',
228
- properties: await this.buildInnerObject(headers, {}),
229
- required: headers?.required,
230
- } : null;
231
- this.buildRequired(input.properties.headers);
235
+ if (headers) {
236
+ input.properties.headers = {
237
+ title: 'Headers',
238
+ type: 'object',
239
+ properties: await this.buildInnerObject(headers, {}),
240
+ };
241
+ this.buildRequired(input.properties.headers);
242
+ }
232
243
  const parameters = await this.getInnerData(action.parameters, 'query', 'in');
233
- parameters ? (input.properties.parameters = {
234
- title: 'Parameters',
235
- type: 'object',
236
- properties: await this.buildInnerObject(parameters, {}),
237
- required: parameters?.required,
238
- }) : null;
239
- this.buildRequired(input.properties.parameters);
244
+ if (parameters) {
245
+ input.properties.parameters = {
246
+ title: 'Parameters',
247
+ type: 'object',
248
+ properties: await this.buildInnerObject(parameters, {}),
249
+ };
250
+ this.buildRequired(input.properties.parameters);
251
+ }
240
252
  const pathParameters = await this.getInnerData(action.parameters, 'path', 'in');
241
- pathParameters ? (input.properties.path_parameters = {
242
- title: 'Path Parameters',
243
- type: 'object',
244
- properties: await this.buildInnerObject(pathParameters, {}),
245
- required: pathParameters?.required,
246
- }) : null;
253
+ if (pathParameters) {
254
+ input.properties.path_parameters = {
255
+ title: 'Path Parameters',
256
+ type: 'object',
257
+ properties: await this.buildInnerObject(pathParameters, {}),
258
+ };
259
+ input.required.push('path_parameters'); // Ensure path_parameters itself is required
260
+ this.buildRequired(input.properties.path_parameters);
261
+ }
247
262
  }
248
- this.buildRequired(input.properties.path_parameters);
249
263
  if (action?.requestBody?.content) {
250
264
  const dataBody = await this.getDataBody(action.requestBody.content);
251
- dataBody ?
252
- (input.properties.data_body = {
265
+ if (dataBody) {
266
+ input.properties.data_body = {
253
267
  title: 'Data Body',
254
268
  type: 'object',
255
269
  properties: await this.buildInnerObject(dataBody, {}),
256
- required: dataBody?.required,
257
- }) : null;
270
+ };
271
+ input.required.push('data_body');
272
+ }
258
273
  input = await this.generateAttachmentSchema(action.requestBody.content, input);
259
274
  input = await this.generateJsonSchema(action.requestBody.content, input);
275
+ if ('json_body' in input.properties) {
276
+ input.required.push('json_body'); // Ensure json_body is required
277
+ }
260
278
  }
261
279
  return input;
262
280
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../../../src/commands/connector/create/openapi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../../../src/commands/connector/create/openapi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { Base } from '@sw-tsdk/core';
2
+ export declare class Migrate extends Base {
3
+ static description: string;
4
+ static flags: {
5
+ fromDirectory: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
6
+ toDirectory: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
7
+ vendor: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ product: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
+ description: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ author: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ authorEmail: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
12
+ homepage: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
13
+ help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
14
+ };
15
+ private processTaskFiles;
16
+ /**
17
+ * Returns an array of AppTasks where each item is (pythonFolder + application),
18
+ * containing an array of .json files in that application's tasks folder.
19
+ * Basically, each array item is a different connector
20
+ */
21
+ private collectJobs;
22
+ private extractImportsFromScript;
23
+ private decompressIfNeeded;
24
+ run(): Promise<void>;
25
+ }
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migrate = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@sw-tsdk/core");
6
+ const node_fs_1 = require("node:fs");
7
+ const node_path_1 = require("node:path");
8
+ const core_2 = require("@oclif/core");
9
+ const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
10
+ const connector_generator_1 = require("../../transformers/connector-generator");
11
+ const migrator_types_1 = require("../../types/migrator-types");
12
+ const transformers_1 = require("../../transformers");
13
+ const adm_zip_1 = tslib_1.__importDefault(require("adm-zip"));
14
+ class Migrate extends core_1.Base {
15
+ async processTaskFiles(taskFiles) {
16
+ const taskImports = new Set();
17
+ const importPromises = taskFiles.map(async (taskFile) => {
18
+ const pyFilePath = taskFile.replace('.json', '.py');
19
+ const scriptImports = await this.extractImportsFromScript(pyFilePath);
20
+ for (const importName of scriptImports)
21
+ taskImports.add(importName);
22
+ });
23
+ await Promise.all(importPromises);
24
+ return taskImports;
25
+ }
26
+ /**
27
+ * Returns an array of AppTasks where each item is (pythonFolder + application),
28
+ * containing an array of .json files in that application's tasks folder.
29
+ * Basically, each array item is a different connector
30
+ */
31
+ async collectJobs(fromDirectory) {
32
+ const dirEntries = await node_fs_1.promises.readdir(fromDirectory, { withFileTypes: true });
33
+ if (dirEntries.some(d => d.isDirectory() && d.name === 'python3')) {
34
+ this.warn('Found python3 directory. This is not supported in turbine. Python 3.9 will be used instead.');
35
+ }
36
+ // Find python directories that match our pythonVersionMap
37
+ const validPythonDirs = dirEntries
38
+ .filter(d => d.isDirectory() && d.name in migrator_types_1.pythonVersionMap)
39
+ .map(d => d.name);
40
+ // each promise handles one python directory
41
+ const pythonDirPromises = validPythonDirs.map(async (pythonDirName) => {
42
+ const pythonDirPath = (0, node_path_1.join)(fromDirectory, pythonDirName);
43
+ const pythonDefinition = migrator_types_1.pythonVersionMap[pythonDirName];
44
+ // For each python dir, find subfolders applications
45
+ const appDirEntries = await node_fs_1.promises.readdir(pythonDirPath, { withFileTypes: true });
46
+ const appFolders = appDirEntries
47
+ .filter(f => f.isDirectory())
48
+ .map(f => f.name);
49
+ // Build a promise for each app folder
50
+ const appFolderPromises = appFolders.map(async (appFolderName) => {
51
+ const appFolderPath = (0, node_path_1.join)(pythonDirPath, appFolderName);
52
+ // read the plugin name
53
+ const appInfoPath = (0, node_path_1.join)(appFolderPath, 'applicationInfo.json');
54
+ let connectorName = 'Unnamed Connector';
55
+ try {
56
+ const rawInfo = await node_fs_1.promises.readFile(appInfoPath, 'utf8');
57
+ const info = JSON.parse(rawInfo);
58
+ if (info?.name) {
59
+ connectorName = info.name;
60
+ }
61
+ }
62
+ catch {
63
+ this.warn(`Could not read application info: ${appInfoPath}`);
64
+ }
65
+ const tasksFolder = (0, node_path_1.join)(appFolderPath, 'tasks');
66
+ let taskFiles = [];
67
+ const taskImports = new Set();
68
+ try {
69
+ const allTaskFiles = await node_fs_1.promises.readdir(tasksFolder);
70
+ taskFiles = allTaskFiles
71
+ .filter(file => file.endsWith('.json'))
72
+ .map(file => (0, node_path_1.join)(tasksFolder, file));
73
+ const scriptImportLists = await Promise.all(taskFiles.map(async (taskFile) => {
74
+ const pyFilePath = taskFile.replace('.json', '.py');
75
+ const scriptImports = await this.extractImportsFromScript(pyFilePath);
76
+ return Array.isArray(scriptImports) ? scriptImports : [];
77
+ }));
78
+ for (const scriptImports of scriptImportLists) {
79
+ for (const importName of scriptImports) {
80
+ taskImports.add(importName);
81
+ }
82
+ }
83
+ }
84
+ catch {
85
+ this.warn(`Could not read tasks folder: ${tasksFolder}`);
86
+ }
87
+ return {
88
+ pythonDirName,
89
+ pythonDefinition,
90
+ appFolderPath,
91
+ connectorName,
92
+ taskFilePaths: taskFiles,
93
+ };
94
+ });
95
+ const appResults = await Promise.all(appFolderPromises);
96
+ return appResults;
97
+ });
98
+ const nestedAppTasks = await Promise.all(pythonDirPromises);
99
+ return nestedAppTasks.flat();
100
+ }
101
+ async extractImportsFromScript(pyFilePath) {
102
+ const usedPackages = new Set();
103
+ try {
104
+ const content = await node_fs_1.promises.readFile(pyFilePath, 'utf8');
105
+ // `import X` and `from X import Y`
106
+ const importMatches = content.matchAll(/(?:from|import) (\w+)/g);
107
+ for (const match of importMatches) {
108
+ usedPackages.add(match[1]);
109
+ }
110
+ }
111
+ catch {
112
+ this.warn(`Could not extract imports from: ${pyFilePath}`);
113
+ }
114
+ return usedPackages;
115
+ }
116
+ async decompressIfNeeded(fromDirectory) {
117
+ if (fromDirectory.endsWith('.zip')) {
118
+ const extractPath = fromDirectory.replace(/\.zip$/, '');
119
+ this.log(`Extracting zip file to: ${extractPath}`);
120
+ const zip = new adm_zip_1.default(fromDirectory);
121
+ zip.extractAllTo(extractPath, true);
122
+ return extractPath;
123
+ }
124
+ return fromDirectory;
125
+ }
126
+ async run() {
127
+ const { flags } = await this.parse(Migrate);
128
+ const masterQuestions = [
129
+ {
130
+ type: 'input',
131
+ name: 'vendor',
132
+ message: 'Vendor (e.g. Swimlane)',
133
+ },
134
+ {
135
+ type: 'input',
136
+ name: 'product',
137
+ message: 'Product (e.g. Turbine)',
138
+ },
139
+ {
140
+ type: 'input',
141
+ name: 'description',
142
+ message: 'Description (e.g. Turbine exporter)',
143
+ },
144
+ ];
145
+ const filteredQuestions = masterQuestions.filter(q => !flags[q.name]);
146
+ const answers = Object.assign(await inquirer_1.default.prompt(filteredQuestions), flags);
147
+ let { fromDirectory, toDirectory } = flags;
148
+ fromDirectory = (0, node_path_1.resolve)(fromDirectory || process.cwd());
149
+ toDirectory = (0, node_path_1.resolve)(toDirectory || process.cwd());
150
+ fromDirectory = await this.decompressIfNeeded(fromDirectory);
151
+ try {
152
+ await node_fs_1.promises.access(fromDirectory);
153
+ }
154
+ catch {
155
+ this.error(`Could not access: ${fromDirectory}`);
156
+ }
157
+ try {
158
+ await node_fs_1.promises.mkdir(toDirectory, { recursive: true });
159
+ }
160
+ catch {
161
+ this.error(`Could not access or create: ${toDirectory}`);
162
+ }
163
+ const groupedAppTasks = await this.collectJobs(fromDirectory);
164
+ const groupPromises = groupedAppTasks.map(async (group) => {
165
+ this.log(`\nProcessing [${group.pythonDirName}] / [${group.connectorName}]`);
166
+ this.log(`Found ${group.taskFilePaths.length} task file(s) in: ${group.appFolderPath}`);
167
+ const connectorToDir = (0, node_path_1.join)(toDirectory, group.connectorName.replaceAll(' ', '_').toLowerCase());
168
+ await connector_generator_1.ConnectorGenerator.generateBaseStructure(connectorToDir);
169
+ await connector_generator_1.ConnectorGenerator.generateLogo(connectorToDir);
170
+ await connector_generator_1.ConnectorGenerator.generateConnectorManifest(answers, group, connectorToDir);
171
+ await connector_generator_1.ConnectorGenerator.generateRunnerOverride(connectorToDir);
172
+ const taskPromises = group.taskFilePaths.map(async (taskFilePath) => {
173
+ const initializedConnectors = new Set();
174
+ const content = await node_fs_1.promises.readFile(taskFilePath, 'utf8');
175
+ let fileJson;
176
+ try {
177
+ fileJson = JSON.parse(content);
178
+ }
179
+ catch {
180
+ this.log(`Could not parse JSON: ${taskFilePath}`);
181
+ }
182
+ const transformer = (0, transformers_1.getTransformer)(fileJson);
183
+ const transformationResult = transformer.transform(fileJson);
184
+ if (!transformer.scriptIsValid(transformationResult.script)) {
185
+ this.warn(`Found code that is not supported in turbine: ${taskFilePath}`);
186
+ }
187
+ transformationResult.connectorName = group.connectorName;
188
+ transformationResult.pythonDefinition = group.pythonDefinition;
189
+ if (transformationResult.type === 'forked-plugin' && !initializedConnectors.has(transformationResult.forkedName)) {
190
+ initializedConnectors.add(transformationResult.forkedName);
191
+ await connector_generator_1.ConnectorGenerator.initializeForkedPlugin(transformationResult, fromDirectory, connectorToDir);
192
+ }
193
+ await connector_generator_1.ConnectorGenerator.generateAction(transformationResult, connectorToDir);
194
+ await connector_generator_1.ConnectorGenerator.generateActionConfig(transformationResult, connectorToDir);
195
+ });
196
+ await Promise.all(taskPromises);
197
+ });
198
+ await Promise.all(groupPromises);
199
+ this.log(`\nDone processing. Converted files at: ${toDirectory}`);
200
+ }
201
+ }
202
+ exports.Migrate = Migrate;
203
+ Migrate.description = 'Convert scripts and forked plugins from Swimlane V10x to connectors.';
204
+ Migrate.flags = {
205
+ ...core_1.Base.flags,
206
+ fromDirectory: core_2.Flags.string({
207
+ char: 'f',
208
+ description: 'Root directory of the 10X export.',
209
+ default: './',
210
+ }),
211
+ toDirectory: core_2.Flags.string({
212
+ char: 't',
213
+ description: 'Root directory of the destination repository.',
214
+ default: './connectors',
215
+ }),
216
+ vendor: core_2.Flags.string({ description: 'Vendor (e.g. CrowdStrike)' }),
217
+ product: core_2.Flags.string({ description: 'Product (e.g. Falcon)' }),
218
+ description: core_2.Flags.string({ description: 'Description (e.g. CrowdStrike Host Query API)' }),
219
+ author: core_2.Flags.string({ description: 'Connector Author' }),
220
+ authorEmail: core_2.Flags.string({ description: 'Connector Author Email' }),
221
+ homepage: core_2.Flags.string({ description: 'Connector Author Support URL' }),
222
+ help: core_2.Flags.help({ char: 'h' }),
223
+ };
224
+ //# sourceMappingURL=convert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/commands/migrator/convert.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Base } from '@sw-tsdk/core';
2
+ export declare class Export extends Base {
3
+ static description: string;
4
+ static flags: {
5
+ mongoConnectionString: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
6
+ databaseName: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
7
+ outputFile: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
+ tlsAllowInvalidCertificates: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
10
+ 'log-level': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Export = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@oclif/core");
6
+ const core_2 = require("@sw-tsdk/core");
7
+ const inquirer_1 = require("inquirer");
8
+ const archiver_1 = tslib_1.__importDefault(require("archiver"));
9
+ const fs = tslib_1.__importStar(require("node:fs"));
10
+ const mongodb_1 = require("mongodb");
11
+ // noinspection JSUnusedGlobalSymbols
12
+ class Export extends core_2.Base {
13
+ async run() {
14
+ const { flags } = await this.parse(Export);
15
+ const { mongoConnectionString,
16
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
+ databaseName, outputFile, } = flags;
18
+ const answers = await (0, inquirer_1.prompt)([{
19
+ type: 'password',
20
+ name: 'mongoConnectionString',
21
+ message: 'Enter the connection string for the swimlane mongo instance',
22
+ when: () => !mongoConnectionString || mongoConnectionString.length === 0,
23
+ }, {
24
+ type: 'input',
25
+ name: 'outputFile',
26
+ message: 'enter output file name',
27
+ when: () => !outputFile || outputFile.length === 0,
28
+ }]);
29
+ const newConfig = Object.assign(flags, answers);
30
+ try {
31
+ const apps = {};
32
+ const archive = (0, archiver_1.default)('zip', {
33
+ zlib: { level: 9 }, // Sets the compression level.
34
+ });
35
+ const output = fs.createWriteStream(newConfig.outputFile);
36
+ archive.pipe(output);
37
+ const mongo = new mongodb_1.MongoClient(newConfig.mongoConnectionString, {
38
+ tlsAllowInvalidCertificates: newConfig.tlsAllowInvalidCertificates,
39
+ directConnection: true,
40
+ });
41
+ try {
42
+ core_1.ux.action.start('pulling tasks');
43
+ const db = mongo.db(newConfig.databaseName);
44
+ const appCollection = db.collection('Applications');
45
+ const appCursor = await appCollection.find();
46
+ for await (const doc of appCursor) {
47
+ const app = doc;
48
+ apps[app._id] = { name: app.Name };
49
+ }
50
+ const tasksColleciton = db.collection('Tasks');
51
+ const cursor = await tasksColleciton.find();
52
+ for await (const doc of cursor) {
53
+ // console.info(doc)
54
+ const task = doc;
55
+ if (task.Action.Descriptor.ActionType === 'python3' || task.Action.Descriptor.ActionType === 'python312') {
56
+ await archive.append(task?.ApplicationId ? JSON.stringify(apps[task.ApplicationId]) : '{"name": "common"}', { name: `${task.Action.Descriptor.ActionType}/${task?.ApplicationId || 'common'}/applicationInfo.json` });
57
+ await archive.append(JSON.stringify(task), { name: `${task.Action.Descriptor.ActionType}/${task?.ApplicationId || 'common'}/tasks/${task.Action.Descriptor._id}.json` });
58
+ }
59
+ }
60
+ core_1.ux.action.stop();
61
+ core_1.ux.action.start('pulling plugins');
62
+ const bucket = new mongodb_1.GridFSBucket(db);
63
+ const packages = await bucket.find({ 'metadata.FileType': 'SwimBundle' });
64
+ const packageFiles = await packages.toArray();
65
+ for (const doc of packageFiles) {
66
+ const filestream = bucket.openDownloadStream(doc._id);
67
+ archive.append(filestream, { name: `packages/${doc.filename}.zip` });
68
+ }
69
+ core_1.ux.action.stop();
70
+ core_1.ux.action.start('pulling pip packages');
71
+ const pipPackages = db.collection('PipPackages');
72
+ const pipCursor = await pipPackages.find();
73
+ let requirements37 = '';
74
+ let requirements312 = '';
75
+ for await (const doc of pipCursor) {
76
+ const pipPackage = doc;
77
+ if (pipPackage.Name === 'swimlane') {
78
+ continue;
79
+ }
80
+ if (pipPackage.PythonVersionLabel === '3.7') {
81
+ requirements37 += `${pipPackage.Name}==${pipPackage.Version}\n`;
82
+ }
83
+ else {
84
+ requirements312 += `${pipPackage.Name}==${pipPackage.Version}\n`;
85
+ }
86
+ }
87
+ if (requirements37) {
88
+ await archive.append(requirements37, { name: 'python3/requirements.txt' });
89
+ }
90
+ if (requirements312) {
91
+ await archive.append(requirements312, { name: 'python312/requirements.txt' });
92
+ }
93
+ core_1.ux.action.stop();
94
+ }
95
+ finally {
96
+ core_1.ux.action.start('creating archive');
97
+ await archive.finalize();
98
+ core_1.ux.action.stop();
99
+ await mongo.close();
100
+ }
101
+ }
102
+ catch (error) {
103
+ console.error(error);
104
+ }
105
+ }
106
+ }
107
+ exports.Export = Export;
108
+ Export.description = 'Use to export python scripts from a Swimlane instance';
109
+ Export.flags = {
110
+ ...core_2.Base.BaseFlags,
111
+ mongoConnectionString: core_1.Flags.string({ char: 'c', description: 'Mongo Connection String', default: '' }),
112
+ databaseName: core_1.Flags.string({ char: 'd', description: 'Database Name', default: 'Swimlane' }),
113
+ outputFile: core_1.Flags.string({ char: 'o', description: 'Output file', default: 'scripts.zip' }),
114
+ tlsAllowInvalidCertificates: core_1.Flags.boolean({
115
+ char: 'i',
116
+ description: 'Allow invalid certificates',
117
+ default: false,
118
+ }),
119
+ help: core_1.Flags.help({ char: 'h' }),
120
+ };
121
+ //# sourceMappingURL=export.js.map