@sw-tsdk/plugin-connector 3.13.2-next.f72064b → 3.13.3
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.
- package/README.md +18 -18
- package/lib/commands/migrator/convert.d.ts +0 -1
- package/lib/commands/migrator/convert.js +15 -167
- package/lib/commands/migrator/convert.js.map +1 -1
- package/lib/templates/migrator-runners/plugin_override.txt +4 -69
- package/lib/templates/migrator-runners/runner_override.txt +0 -29
- package/lib/templates/migrator-runners/script_override.txt +5 -71
- package/lib/transformers/base-transformer.js +14 -61
- package/lib/transformers/base-transformer.js.map +1 -1
- package/lib/transformers/connector-generator.d.ts +2 -102
- package/lib/transformers/connector-generator.js +49 -1188
- package/lib/transformers/connector-generator.js.map +1 -1
- package/lib/types/migrator-types.d.ts +0 -22
- package/lib/types/migrator-types.js.map +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +6 -6
- package/lib/templates/swimlane/__init__.py +0 -18
- package/lib/templates/swimlane/core/__init__.py +0 -0
- package/lib/templates/swimlane/core/adapters/__init__.py +0 -10
- package/lib/templates/swimlane/core/adapters/app.py +0 -59
- package/lib/templates/swimlane/core/adapters/app_revision.py +0 -49
- package/lib/templates/swimlane/core/adapters/helper.py +0 -84
- package/lib/templates/swimlane/core/adapters/record.py +0 -468
- package/lib/templates/swimlane/core/adapters/record_revision.py +0 -43
- package/lib/templates/swimlane/core/adapters/report.py +0 -65
- package/lib/templates/swimlane/core/adapters/task.py +0 -54
- package/lib/templates/swimlane/core/adapters/usergroup.py +0 -183
- package/lib/templates/swimlane/core/bulk.py +0 -48
- package/lib/templates/swimlane/core/cache.py +0 -165
- package/lib/templates/swimlane/core/client.py +0 -466
- package/lib/templates/swimlane/core/cursor.py +0 -100
- package/lib/templates/swimlane/core/fields/__init__.py +0 -46
- package/lib/templates/swimlane/core/fields/attachment.py +0 -82
- package/lib/templates/swimlane/core/fields/base/__init__.py +0 -15
- package/lib/templates/swimlane/core/fields/base/cursor.py +0 -90
- package/lib/templates/swimlane/core/fields/base/field.py +0 -149
- package/lib/templates/swimlane/core/fields/base/multiselect.py +0 -116
- package/lib/templates/swimlane/core/fields/comment.py +0 -48
- package/lib/templates/swimlane/core/fields/datetime.py +0 -112
- package/lib/templates/swimlane/core/fields/history.py +0 -28
- package/lib/templates/swimlane/core/fields/list.py +0 -266
- package/lib/templates/swimlane/core/fields/number.py +0 -38
- package/lib/templates/swimlane/core/fields/reference.py +0 -169
- package/lib/templates/swimlane/core/fields/text.py +0 -30
- package/lib/templates/swimlane/core/fields/tracking.py +0 -10
- package/lib/templates/swimlane/core/fields/usergroup.py +0 -137
- package/lib/templates/swimlane/core/fields/valueslist.py +0 -70
- package/lib/templates/swimlane/core/resolver.py +0 -46
- package/lib/templates/swimlane/core/resources/__init__.py +0 -0
- package/lib/templates/swimlane/core/resources/app.py +0 -136
- package/lib/templates/swimlane/core/resources/app_revision.py +0 -43
- package/lib/templates/swimlane/core/resources/attachment.py +0 -64
- package/lib/templates/swimlane/core/resources/base.py +0 -55
- package/lib/templates/swimlane/core/resources/comment.py +0 -33
- package/lib/templates/swimlane/core/resources/record.py +0 -499
- package/lib/templates/swimlane/core/resources/record_revision.py +0 -44
- package/lib/templates/swimlane/core/resources/report.py +0 -259
- package/lib/templates/swimlane/core/resources/revision_base.py +0 -69
- package/lib/templates/swimlane/core/resources/task.py +0 -16
- package/lib/templates/swimlane/core/resources/usergroup.py +0 -166
- package/lib/templates/swimlane/core/search.py +0 -31
- package/lib/templates/swimlane/core/wrappedsession.py +0 -12
- package/lib/templates/swimlane/exceptions.py +0 -191
- package/lib/templates/swimlane/utils/__init__.py +0 -132
- package/lib/templates/swimlane/utils/date_validator.py +0 -4
- package/lib/templates/swimlane/utils/list_validator.py +0 -7
- package/lib/templates/swimlane/utils/str_validator.py +0 -10
- package/lib/templates/swimlane/utils/version.py +0 -101
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ $ npm install -g @sw-tsdk/plugin-connector
|
|
|
16
16
|
$ sw-tsdk-connector COMMAND
|
|
17
17
|
running command...
|
|
18
18
|
$ sw-tsdk-connector (--version)
|
|
19
|
-
@sw-tsdk/plugin-connector/3.13.
|
|
19
|
+
@sw-tsdk/plugin-connector/3.13.3 linux-x64 node-v20.19.0
|
|
20
20
|
$ sw-tsdk-connector --help [COMMAND]
|
|
21
21
|
USAGE
|
|
22
22
|
$ sw-tsdk-connector COMMAND
|
|
@@ -61,7 +61,7 @@ DESCRIPTION
|
|
|
61
61
|
Update a connector action.
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
_See code: [lib/commands/action/add.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
64
|
+
_See code: [lib/commands/action/add.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/action/add.js)_
|
|
65
65
|
|
|
66
66
|
## `sw-tsdk-connector action:generate:data`
|
|
67
67
|
|
|
@@ -86,7 +86,7 @@ DESCRIPTION
|
|
|
86
86
|
Use to test a task in an integration
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
_See code: [lib/commands/action/generate/data.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
89
|
+
_See code: [lib/commands/action/generate/data.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/action/generate/data.js)_
|
|
90
90
|
|
|
91
91
|
## `sw-tsdk-connector action:generate:input`
|
|
92
92
|
|
|
@@ -111,7 +111,7 @@ DESCRIPTION
|
|
|
111
111
|
Update action input schema.
|
|
112
112
|
```
|
|
113
113
|
|
|
114
|
-
_See code: [lib/commands/action/generate/input.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
114
|
+
_See code: [lib/commands/action/generate/input.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/action/generate/input.js)_
|
|
115
115
|
|
|
116
116
|
## `sw-tsdk-connector action:generate:output`
|
|
117
117
|
|
|
@@ -135,7 +135,7 @@ DESCRIPTION
|
|
|
135
135
|
Update a connector action.
|
|
136
136
|
```
|
|
137
137
|
|
|
138
|
-
_See code: [lib/commands/action/generate/output.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
138
|
+
_See code: [lib/commands/action/generate/output.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/action/generate/output.js)_
|
|
139
139
|
|
|
140
140
|
## `sw-tsdk-connector action:run:local`
|
|
141
141
|
|
|
@@ -164,7 +164,7 @@ DESCRIPTION
|
|
|
164
164
|
Runs a connector action. (Defaults to current image version in local repository).
|
|
165
165
|
```
|
|
166
166
|
|
|
167
|
-
_See code: [lib/commands/action/run/local.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
167
|
+
_See code: [lib/commands/action/run/local.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/action/run/local.js)_
|
|
168
168
|
|
|
169
169
|
## `sw-tsdk-connector asset:add`
|
|
170
170
|
|
|
@@ -185,7 +185,7 @@ DESCRIPTION
|
|
|
185
185
|
Update a connector action.
|
|
186
186
|
```
|
|
187
187
|
|
|
188
|
-
_See code: [lib/commands/asset/add.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
188
|
+
_See code: [lib/commands/asset/add.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/asset/add.js)_
|
|
189
189
|
|
|
190
190
|
## `sw-tsdk-connector connector:build`
|
|
191
191
|
|
|
@@ -215,7 +215,7 @@ DESCRIPTION
|
|
|
215
215
|
Builds a local docker image of the connector.
|
|
216
216
|
```
|
|
217
217
|
|
|
218
|
-
_See code: [lib/commands/connector/build.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
218
|
+
_See code: [lib/commands/connector/build.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/connector/build.js)_
|
|
219
219
|
|
|
220
220
|
## `sw-tsdk-connector connector:create`
|
|
221
221
|
|
|
@@ -249,7 +249,7 @@ DESCRIPTION
|
|
|
249
249
|
Scaffold a new connector
|
|
250
250
|
```
|
|
251
251
|
|
|
252
|
-
_See code: [lib/commands/connector/create.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
252
|
+
_See code: [lib/commands/connector/create.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/connector/create.js)_
|
|
253
253
|
|
|
254
254
|
## `sw-tsdk-connector connector:create:openapi`
|
|
255
255
|
|
|
@@ -278,7 +278,7 @@ DESCRIPTION
|
|
|
278
278
|
Scaffold a new connector
|
|
279
279
|
```
|
|
280
280
|
|
|
281
|
-
_See code: [lib/commands/connector/create/openapi.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
281
|
+
_See code: [lib/commands/connector/create/openapi.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/connector/create/openapi.js)_
|
|
282
282
|
|
|
283
283
|
## `sw-tsdk-connector connector:create:source`
|
|
284
284
|
|
|
@@ -296,7 +296,7 @@ DESCRIPTION
|
|
|
296
296
|
Generates 11x source from 10x
|
|
297
297
|
```
|
|
298
298
|
|
|
299
|
-
_See code: [lib/commands/connector/create/source.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
299
|
+
_See code: [lib/commands/connector/create/source.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/connector/create/source.js)_
|
|
300
300
|
|
|
301
301
|
## `sw-tsdk-connector connector:lint`
|
|
302
302
|
|
|
@@ -319,7 +319,7 @@ DESCRIPTION
|
|
|
319
319
|
Use to lint the connector
|
|
320
320
|
```
|
|
321
321
|
|
|
322
|
-
_See code: [lib/commands/connector/lint.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
322
|
+
_See code: [lib/commands/connector/lint.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/connector/lint.js)_
|
|
323
323
|
|
|
324
324
|
## `sw-tsdk-connector connector:logo`
|
|
325
325
|
|
|
@@ -338,7 +338,7 @@ DESCRIPTION
|
|
|
338
338
|
Update a connector.
|
|
339
339
|
```
|
|
340
340
|
|
|
341
|
-
_See code: [lib/commands/connector/logo.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
341
|
+
_See code: [lib/commands/connector/logo.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/connector/logo.js)_
|
|
342
342
|
|
|
343
343
|
## `sw-tsdk-connector connector:sign`
|
|
344
344
|
|
|
@@ -363,7 +363,7 @@ DESCRIPTION
|
|
|
363
363
|
Builds a local docker image of the connector.
|
|
364
364
|
```
|
|
365
365
|
|
|
366
|
-
_See code: [lib/commands/connector/sign.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
366
|
+
_See code: [lib/commands/connector/sign.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/connector/sign.js)_
|
|
367
367
|
|
|
368
368
|
## `sw-tsdk-connector connector:update`
|
|
369
369
|
|
|
@@ -383,7 +383,7 @@ DESCRIPTION
|
|
|
383
383
|
Update a connector.
|
|
384
384
|
```
|
|
385
385
|
|
|
386
|
-
_See code: [lib/commands/connector/update.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
386
|
+
_See code: [lib/commands/connector/update.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/connector/update.js)_
|
|
387
387
|
|
|
388
388
|
## `sw-tsdk-connector connector:validate`
|
|
389
389
|
|
|
@@ -406,7 +406,7 @@ DESCRIPTION
|
|
|
406
406
|
Use to validate an integration
|
|
407
407
|
```
|
|
408
408
|
|
|
409
|
-
_See code: [lib/commands/connector/validate.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
409
|
+
_See code: [lib/commands/connector/validate.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/connector/validate.js)_
|
|
410
410
|
|
|
411
411
|
## `sw-tsdk-connector migrator:convert`
|
|
412
412
|
|
|
@@ -432,7 +432,7 @@ DESCRIPTION
|
|
|
432
432
|
Convert scripts and forked plugins from Swimlane V10x to connectors.
|
|
433
433
|
```
|
|
434
434
|
|
|
435
|
-
_See code: [lib/commands/migrator/convert.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
435
|
+
_See code: [lib/commands/migrator/convert.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/migrator/convert.js)_
|
|
436
436
|
|
|
437
437
|
## `sw-tsdk-connector migrator:export`
|
|
438
438
|
|
|
@@ -453,5 +453,5 @@ DESCRIPTION
|
|
|
453
453
|
Use to export python scripts from a Swimlane instance
|
|
454
454
|
```
|
|
455
455
|
|
|
456
|
-
_See code: [lib/commands/migrator/export.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.
|
|
456
|
+
_See code: [lib/commands/migrator/export.js](https://github.com/swimlane/turbine-sdk/blob/v3.13.3/lib/commands/migrator/export.js)_
|
|
457
457
|
<!-- commandsstop -->
|
|
@@ -19,7 +19,6 @@ export declare class Migrate extends Base {
|
|
|
19
19
|
* Basically, each array item is a different connector
|
|
20
20
|
*/
|
|
21
21
|
private collectJobs;
|
|
22
|
-
private extractImportsFromScriptContent;
|
|
23
22
|
private extractImportsFromScript;
|
|
24
23
|
private decompressIfNeeded;
|
|
25
24
|
run(): Promise<void>;
|
|
@@ -15,17 +15,10 @@ class Migrate extends core_1.Base {
|
|
|
15
15
|
async processTaskFiles(taskFiles) {
|
|
16
16
|
const taskImports = new Set();
|
|
17
17
|
const importPromises = taskFiles.map(async (taskFile) => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const scriptImports = await this.extractImportsFromScriptContent(script);
|
|
23
|
-
for (const importName of scriptImports)
|
|
24
|
-
taskImports.add(importName);
|
|
25
|
-
}
|
|
26
|
-
catch {
|
|
27
|
-
this.warn(`Could not extract imports from task file: ${taskFile}`);
|
|
28
|
-
}
|
|
18
|
+
const pyFilePath = taskFile.replace('.json', '.py');
|
|
19
|
+
const scriptImports = await this.extractImportsFromScript(pyFilePath);
|
|
20
|
+
for (const importName of scriptImports)
|
|
21
|
+
taskImports.add(importName);
|
|
29
22
|
});
|
|
30
23
|
await Promise.all(importPromises);
|
|
31
24
|
return taskImports;
|
|
@@ -78,17 +71,9 @@ class Migrate extends core_1.Base {
|
|
|
78
71
|
.filter(file => file.endsWith('.json'))
|
|
79
72
|
.map(file => (0, node_path_1.join)(tasksFolder, file));
|
|
80
73
|
const scriptImportLists = await Promise.all(taskFiles.map(async (taskFile) => {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const script = taskJson?.Action?.Script || '';
|
|
85
|
-
const scriptImports = await this.extractImportsFromScriptContent(script);
|
|
86
|
-
return Array.isArray(scriptImports) ? scriptImports : [];
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
this.warn(`Could not extract imports from task file: ${taskFile}`);
|
|
90
|
-
return [];
|
|
91
|
-
}
|
|
74
|
+
const pyFilePath = taskFile.replace('.json', '.py');
|
|
75
|
+
const scriptImports = await this.extractImportsFromScript(pyFilePath);
|
|
76
|
+
return Array.isArray(scriptImports) ? scriptImports : [];
|
|
92
77
|
}));
|
|
93
78
|
for (const scriptImports of scriptImportLists) {
|
|
94
79
|
for (const importName of scriptImports) {
|
|
@@ -105,7 +90,6 @@ class Migrate extends core_1.Base {
|
|
|
105
90
|
appFolderPath,
|
|
106
91
|
connectorName,
|
|
107
92
|
taskFilePaths: taskFiles,
|
|
108
|
-
taskImports,
|
|
109
93
|
};
|
|
110
94
|
});
|
|
111
95
|
const appResults = await Promise.all(appFolderPromises);
|
|
@@ -114,31 +98,9 @@ class Migrate extends core_1.Base {
|
|
|
114
98
|
const nestedAppTasks = await Promise.all(pythonDirPromises);
|
|
115
99
|
return nestedAppTasks.flat();
|
|
116
100
|
}
|
|
117
|
-
async extractImportsFromScriptContent(scriptContent) {
|
|
118
|
-
const usedPackages = new Set();
|
|
119
|
-
if (!scriptContent || typeof scriptContent !== 'string') {
|
|
120
|
-
return usedPackages;
|
|
121
|
-
}
|
|
122
|
-
try {
|
|
123
|
-
// `import X` and `from X import Y`
|
|
124
|
-
const importMatches = scriptContent.matchAll(/(?:from|import) (\w+)/g);
|
|
125
|
-
for (const match of importMatches) {
|
|
126
|
-
usedPackages.add(match[1]);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
catch (error) {
|
|
130
|
-
this.warn(`Could not extract imports from script content: ${error?.message || 'Unknown error'}`);
|
|
131
|
-
}
|
|
132
|
-
return usedPackages;
|
|
133
|
-
}
|
|
134
101
|
async extractImportsFromScript(pyFilePath) {
|
|
135
102
|
const usedPackages = new Set();
|
|
136
103
|
try {
|
|
137
|
-
// Check if file exists first
|
|
138
|
-
if (!(await (0, core_1.fileExists)(pyFilePath))) {
|
|
139
|
-
this.warn(`Python file does not exist: ${pyFilePath}`);
|
|
140
|
-
return usedPackages;
|
|
141
|
-
}
|
|
142
104
|
const content = await node_fs_1.promises.readFile(pyFilePath, 'utf8');
|
|
143
105
|
// `import X` and `from X import Y`
|
|
144
106
|
const importMatches = content.matchAll(/(?:from|import) (\w+)/g);
|
|
@@ -146,14 +108,8 @@ class Migrate extends core_1.Base {
|
|
|
146
108
|
usedPackages.add(match[1]);
|
|
147
109
|
}
|
|
148
110
|
}
|
|
149
|
-
catch
|
|
150
|
-
|
|
151
|
-
const errorMessage = error?.code === 'EACCES' ?
|
|
152
|
-
`Permission denied reading file: ${pyFilePath}` :
|
|
153
|
-
(error?.code === 'ENOENT' ?
|
|
154
|
-
`File not found: ${pyFilePath}` :
|
|
155
|
-
`Could not extract imports from: ${pyFilePath} (${error?.message || 'Unknown error'})`);
|
|
156
|
-
this.warn(errorMessage);
|
|
111
|
+
catch {
|
|
112
|
+
this.warn(`Could not extract imports from: ${pyFilePath}`);
|
|
157
113
|
}
|
|
158
114
|
return usedPackages;
|
|
159
115
|
}
|
|
@@ -211,106 +167,13 @@ class Migrate extends core_1.Base {
|
|
|
211
167
|
const groupPromises = groupedAppTasks.map(async (group) => {
|
|
212
168
|
this.log(`\nProcessing [${group.pythonDirName}] / [${group.connectorName}]`);
|
|
213
169
|
this.log(`Found ${group.taskFilePaths.length} task file(s) in: ${group.appFolderPath}`);
|
|
214
|
-
|
|
215
|
-
const sanitizedFolderName = group.connectorName
|
|
216
|
-
.replaceAll(/[()/:]/g, '') // Remove parentheses, slashes, and colons
|
|
217
|
-
.replaceAll(' ', '_')
|
|
218
|
-
.toLowerCase();
|
|
219
|
-
const connectorToDir = (0, node_path_1.join)(toDirectory, sanitizedFolderName);
|
|
170
|
+
const connectorToDir = (0, node_path_1.join)(toDirectory, group.connectorName.replaceAll(' ', '_').toLowerCase());
|
|
220
171
|
await connector_generator_1.ConnectorGenerator.generateBaseStructure(connectorToDir);
|
|
221
172
|
await connector_generator_1.ConnectorGenerator.generateLogo(connectorToDir);
|
|
222
173
|
await connector_generator_1.ConnectorGenerator.generateConnectorManifest(answers, group, connectorToDir);
|
|
223
174
|
await connector_generator_1.ConnectorGenerator.generateRunnerOverride(connectorToDir);
|
|
224
|
-
await connector_generator_1.ConnectorGenerator.addExtractedImportsToRequirements(connectorToDir, group.taskImports);
|
|
225
|
-
// First, collect all forked plugin names to initialize them before processing tasks
|
|
226
|
-
const forkedPluginNames = new Set();
|
|
227
|
-
const taskContents = await Promise.all(group.taskFilePaths.map(async (taskFilePath) => {
|
|
228
|
-
try {
|
|
229
|
-
const content = await node_fs_1.promises.readFile(taskFilePath, 'utf8');
|
|
230
|
-
return { taskFilePath, content };
|
|
231
|
-
}
|
|
232
|
-
catch {
|
|
233
|
-
return null;
|
|
234
|
-
}
|
|
235
|
-
}));
|
|
236
|
-
for (const taskContent of taskContents) {
|
|
237
|
-
if (!taskContent)
|
|
238
|
-
continue;
|
|
239
|
-
try {
|
|
240
|
-
const fileJson = JSON.parse(taskContent.content);
|
|
241
|
-
const transformer = (0, transformers_1.getTransformer)(fileJson);
|
|
242
|
-
const transformationResult = transformer.transform(fileJson);
|
|
243
|
-
if (transformationResult.type === 'forked-plugin' && transformationResult.forkedName) {
|
|
244
|
-
forkedPluginNames.add(transformationResult.forkedName);
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
catch {
|
|
248
|
-
// Skip if we can't parse
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
// Initialize all forked plugins sequentially to avoid race conditions; collect packages excluded via EXCLUDED_PACKAGES that need runner.sh (e.g. ssdeep)
|
|
252
|
-
const excludedRunnerPackages = new Set();
|
|
253
|
-
for (const forkedName of forkedPluginNames) {
|
|
254
|
-
try {
|
|
255
|
-
// Create a dummy transformation result just for initialization
|
|
256
|
-
const dummyResult = {
|
|
257
|
-
type: 'forked-plugin',
|
|
258
|
-
forkedName,
|
|
259
|
-
connectorName: group.connectorName,
|
|
260
|
-
pythonDefinition: group.pythonDefinition,
|
|
261
|
-
};
|
|
262
|
-
// eslint-disable-next-line no-await-in-loop
|
|
263
|
-
const fromInit = await connector_generator_1.ConnectorGenerator.initializeForkedPlugin(dummyResult, fromDirectory, connectorToDir);
|
|
264
|
-
for (const p of fromInit)
|
|
265
|
-
excludedRunnerPackages.add(p);
|
|
266
|
-
}
|
|
267
|
-
catch (error) {
|
|
268
|
-
console.error(`Error initializing forked plugin ${forkedName}:`, error);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
// Collect all asset parameters from all tasks to avoid race conditions
|
|
272
|
-
const allAssetParameters = [];
|
|
273
|
-
let applicationInfo = null;
|
|
274
|
-
try {
|
|
275
|
-
const appInfoPath = (0, node_path_1.join)(group.appFolderPath, 'applicationInfo.json');
|
|
276
|
-
const rawInfo = await node_fs_1.promises.readFile(appInfoPath, 'utf8');
|
|
277
|
-
applicationInfo = JSON.parse(rawInfo);
|
|
278
|
-
}
|
|
279
|
-
catch {
|
|
280
|
-
// applicationInfo.json optional; record inputs will keep inferred types
|
|
281
|
-
}
|
|
282
|
-
const currentApplicationId = (0, node_path_1.basename)(group.appFolderPath);
|
|
283
|
-
const pythonDirPath = (0, node_path_1.dirname)(group.appFolderPath);
|
|
284
|
-
const applicationInfoMap = applicationInfo ? { [currentApplicationId]: applicationInfo } : {};
|
|
285
|
-
// Collect ApplicationIds from all tasks' Outputs (e.g. InsertUpdateRecordOutput.ApplicationId) and load their applicationInfo
|
|
286
|
-
const outputAppIdGroups = await Promise.all(group.taskFilePaths.map(async (taskFilePath) => {
|
|
287
|
-
try {
|
|
288
|
-
const content = await node_fs_1.promises.readFile(taskFilePath, 'utf8');
|
|
289
|
-
const taskJson = JSON.parse(content);
|
|
290
|
-
return (taskJson?.Outputs ?? []).map((output) => output?.ApplicationId ?? output?.applicationId)
|
|
291
|
-
.filter((appId) => typeof appId === 'string');
|
|
292
|
-
}
|
|
293
|
-
catch {
|
|
294
|
-
return [];
|
|
295
|
-
}
|
|
296
|
-
}));
|
|
297
|
-
const outputAppIds = new Set(outputAppIdGroups.flat());
|
|
298
|
-
const missingAppIds = [...outputAppIds].filter(appId => !applicationInfoMap[appId]);
|
|
299
|
-
const appInfoEntries = await Promise.all(missingAppIds.map(async (appId) => {
|
|
300
|
-
try {
|
|
301
|
-
const rawInfo = await node_fs_1.promises.readFile((0, node_path_1.join)(pythonDirPath, appId, 'applicationInfo.json'), 'utf8');
|
|
302
|
-
return { appId, appInfo: JSON.parse(rawInfo) };
|
|
303
|
-
}
|
|
304
|
-
catch {
|
|
305
|
-
return null;
|
|
306
|
-
}
|
|
307
|
-
}));
|
|
308
|
-
for (const appInfoEntry of appInfoEntries) {
|
|
309
|
-
if (appInfoEntry) {
|
|
310
|
-
applicationInfoMap[appInfoEntry.appId] = appInfoEntry.appInfo;
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
175
|
const taskPromises = group.taskFilePaths.map(async (taskFilePath) => {
|
|
176
|
+
const initializedConnectors = new Set();
|
|
314
177
|
const content = await node_fs_1.promises.readFile(taskFilePath, 'utf8');
|
|
315
178
|
let fileJson;
|
|
316
179
|
try {
|
|
@@ -321,34 +184,19 @@ class Migrate extends core_1.Base {
|
|
|
321
184
|
}
|
|
322
185
|
const transformer = (0, transformers_1.getTransformer)(fileJson);
|
|
323
186
|
const transformationResult = transformer.transform(fileJson);
|
|
324
|
-
connector_generator_1.ConnectorGenerator.patchRecordInputTypes(transformationResult, applicationInfo);
|
|
325
|
-
connector_generator_1.ConnectorGenerator.patchOutputDateConversions(transformationResult, applicationInfoMap, currentApplicationId);
|
|
326
187
|
if (!transformer.scriptIsValid(transformationResult.script)) {
|
|
327
188
|
this.warn(`Found code that is not supported in turbine: ${taskFilePath}`);
|
|
328
189
|
}
|
|
329
190
|
transformationResult.connectorName = group.connectorName;
|
|
330
191
|
transformationResult.pythonDefinition = group.pythonDefinition;
|
|
331
|
-
|
|
192
|
+
if (transformationResult.type === 'forked-plugin' && !initializedConnectors.has(transformationResult.forkedName)) {
|
|
193
|
+
initializedConnectors.add(transformationResult.forkedName);
|
|
194
|
+
await connector_generator_1.ConnectorGenerator.initializeForkedPlugin(transformationResult, fromDirectory, connectorToDir);
|
|
195
|
+
}
|
|
332
196
|
await connector_generator_1.ConnectorGenerator.generateAction(transformationResult, connectorToDir);
|
|
333
197
|
await connector_generator_1.ConnectorGenerator.generateActionConfig(transformationResult, connectorToDir);
|
|
334
|
-
// Collect asset parameters instead of writing immediately
|
|
335
|
-
if (transformationResult.assetParameters && transformationResult.assetParameters.length > 0) {
|
|
336
|
-
allAssetParameters.push(...transformationResult.assetParameters);
|
|
337
|
-
}
|
|
338
198
|
});
|
|
339
199
|
await Promise.all(taskPromises);
|
|
340
|
-
// Write all asset parameters once after all tasks are processed
|
|
341
|
-
if (allAssetParameters.length > 0) {
|
|
342
|
-
await connector_generator_1.ConnectorGenerator.addAssetParameters(connectorToDir, allAssetParameters, group.connectorName);
|
|
343
|
-
}
|
|
344
|
-
// Deduplicate requirements after all tasks are processed
|
|
345
|
-
await connector_generator_1.ConnectorGenerator.deduplicateRequirements(connectorToDir);
|
|
346
|
-
// Generate compile.sh if needed (for swimbundle_utils)
|
|
347
|
-
await connector_generator_1.ConnectorGenerator.generateCompileScript(connectorToDir);
|
|
348
|
-
// Generate runner.sh for system deps (wkhtmltopdf for sw_swimlane_email, ssdeep via apt+pip when excluded from requirements)
|
|
349
|
-
const needsSsdeep = [...group.taskImports].some(name => name.toLowerCase() === 'ssdeep') ||
|
|
350
|
-
excludedRunnerPackages.has('ssdeep');
|
|
351
|
-
await connector_generator_1.ConnectorGenerator.generateRunnerScript(connectorToDir, forkedPluginNames.has('sw_swimlane_email'), needsSsdeep);
|
|
352
200
|
});
|
|
353
201
|
await Promise.all(groupPromises);
|
|
354
202
|
this.log(`\nDone processing. Converted files at: ${toDirectory}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/commands/migrator/convert.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/commands/migrator/convert.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,87 +9,22 @@ class RunnerOverride(RO):
|
|
|
9
9
|
super().__init__(asset, asset_schema, http_proxy)
|
|
10
10
|
|
|
11
11
|
def run(self, inputs, action_schema):
|
|
12
|
-
# Rebuild inputs from YAML-defined keys (empty per type), then merge asset, then overlay incoming inputs
|
|
13
|
-
# INPUTS_MERGE_HERE
|
|
14
12
|
sw_context = SwimlaneContext(asset=self.asset, asset_schema=self.asset_schema,
|
|
15
13
|
http_proxy=self.http_proxy, inputs=inputs)
|
|
16
14
|
|
|
17
|
-
from swimlane import Swimlane
|
|
18
|
-
Swimlane.turbineAccountId = sw_context.inputs.pop('TurbineAccountId', '')
|
|
19
|
-
Swimlane.turbineTenantId = sw_context.inputs.pop('TurbineTenantId', '')
|
|
20
|
-
Swimlane._api_root = f'/api/account/{Swimlane.turbineAccountId}/tenant/{Swimlane.turbineTenantId}/'
|
|
21
|
-
Swimlane._execute_task_webhook_url = sw_context.inputs.pop('ExecuteTaskWebhookUrl', '')
|
|
22
15
|
plugin_instance = SwMain(sw_context)
|
|
23
16
|
plugin_response = plugin_instance.execute()
|
|
24
17
|
|
|
25
|
-
import os
|
|
26
|
-
import base64
|
|
27
|
-
import requests
|
|
28
|
-
IPC_API_URI = os.getenv('IPC_API_URI', '')
|
|
29
|
-
IPC_API_TOKEN = os.getenv('IPC_API_TOKEN', '')
|
|
30
|
-
|
|
31
|
-
OUTPUT_DATE_CONVERSIONS = __OUTPUT_DATE_CONVERSIONS__
|
|
32
|
-
|
|
33
|
-
def convert_timestamp(value, timetype):
|
|
34
|
-
import pendulum
|
|
35
|
-
if timetype == "milliseconds":
|
|
36
|
-
value = value / 1000
|
|
37
|
-
if timetype in ('milliseconds', 'seconds'):
|
|
38
|
-
return pendulum.from_timestamp(value).to_iso8601_string()
|
|
39
|
-
return pendulum.from_format(value, timetype).to_iso8601_string()
|
|
40
|
-
|
|
41
|
-
def handle_output_files(output):
|
|
42
|
-
post_url = f"{IPC_API_URI}/files"
|
|
43
|
-
params = {"token": IPC_API_TOKEN}
|
|
44
|
-
# There are potentially many dicts in output, but usually only one
|
|
45
|
-
for o in output:
|
|
46
|
-
for key in o:
|
|
47
|
-
file_output = o.get(key, None)
|
|
48
|
-
temp_files = []
|
|
49
|
-
if file_output and isinstance(file_output, list):
|
|
50
|
-
# value is a list, but we only want to proceed if it's a list of files
|
|
51
|
-
if all(isinstance(i, dict) and 'base64' in i and 'filename' in i for i in file_output):
|
|
52
|
-
# we need to convert the objects to turbine format, then upload
|
|
53
|
-
temp_files = [{'file_data': base64.b64decode(i['base64']), 'file_name': i['filename']} for i in file_output]
|
|
54
|
-
attachments = []
|
|
55
|
-
for file in temp_files:
|
|
56
|
-
attachments.append(
|
|
57
|
-
(
|
|
58
|
-
"files",
|
|
59
|
-
(
|
|
60
|
-
file["file_name"],
|
|
61
|
-
file["file_data"],
|
|
62
|
-
"multipart/form-data",
|
|
63
|
-
)
|
|
64
|
-
)
|
|
65
|
-
)
|
|
66
|
-
res = requests.post(post_url, files=attachments, params=params)
|
|
67
|
-
res.raise_for_status()
|
|
68
|
-
o[key] = res.json()
|
|
69
|
-
for key, timetype in OUTPUT_DATE_CONVERSIONS.items():
|
|
70
|
-
if key in o and o[key] is not None:
|
|
71
|
-
try:
|
|
72
|
-
o[key] = convert_timestamp(o[key], timetype)
|
|
73
|
-
except Exception:
|
|
74
|
-
pass
|
|
75
|
-
|
|
76
|
-
return output
|
|
77
18
|
if isinstance(plugin_response, dict):
|
|
78
|
-
plugin_response
|
|
79
|
-
return {"output": handle_output_files([plugin_response])} # Already a dictionary
|
|
19
|
+
return plugin_response # Already a dictionary
|
|
80
20
|
|
|
81
21
|
elif isinstance(plugin_response, list):
|
|
82
|
-
|
|
83
|
-
for item in plugin_response:
|
|
84
|
-
if isinstance(item, dict):
|
|
85
|
-
item["sw_task_status"] = "success"
|
|
86
|
-
return {"output": handle_output_files(plugin_response)} # Wrap in a dictionary
|
|
22
|
+
return {"plugin_output": plugin_response} # Wrap in a dictionary
|
|
87
23
|
|
|
88
24
|
elif plugin_response is None:
|
|
89
|
-
return {"
|
|
25
|
+
return {"plugin_output": None} # Handle None case explicitly
|
|
90
26
|
else:
|
|
91
|
-
#
|
|
92
|
-
return {"output": [{"result": plugin_response, "sw_task_status": "success"}]} # Wrap other types in a dictionary
|
|
27
|
+
return {"plugin_output": plugin_response} # Wrap other types in a dictionary
|
|
93
28
|
return plugin_response
|
|
94
29
|
|
|
95
30
|
# IMPORTED CODE BELOW
|
|
@@ -5,35 +5,6 @@ class SwimlaneContext:
|
|
|
5
5
|
self.asset = asset
|
|
6
6
|
self.asset_schema = asset_schema
|
|
7
7
|
self.http_proxy = http_proxy
|
|
8
|
-
url = inputs.pop("SwimlaneUrl", "")
|
|
9
|
-
self.config = {
|
|
10
|
-
"ApplicationId": inputs.pop("ApplicationId", ""),
|
|
11
|
-
"RecordId": inputs.pop("RecordId", ""),
|
|
12
|
-
"InternalSwimlaneUrl": url,
|
|
13
|
-
"SwimlaneUrl": url
|
|
14
|
-
}
|
|
15
|
-
self.user = {
|
|
16
|
-
"first_name": "Swimlane",
|
|
17
|
-
"last_name": "Admin",
|
|
18
|
-
"middle_initial": "",
|
|
19
|
-
"display_name": "Swimlane Admin",
|
|
20
|
-
"last_login": "2026-02-09T18:40:10.386Z",
|
|
21
|
-
"domain": "",
|
|
22
|
-
"active": True,
|
|
23
|
-
"name": "swimlanesystem",
|
|
24
|
-
"last_password_change_date": "2026-01-22T00:31:49.783Z",
|
|
25
|
-
"password_reset_required": False,
|
|
26
|
-
"default_workspace_id": "",
|
|
27
|
-
"default_dashboard_id": "",
|
|
28
|
-
"groups": [],
|
|
29
|
-
"roles": [],
|
|
30
|
-
"primary_group": "",
|
|
31
|
-
"email": "",
|
|
32
|
-
"user_name": "swimlaneadmin",
|
|
33
|
-
"phone_number": "",
|
|
34
|
-
"disabled":False,
|
|
35
|
-
"id": ""
|
|
36
|
-
}
|
|
37
8
|
self.inputs = inputs
|
|
38
9
|
# We purposefully do not include the sw_context.config object here as it is not supported
|
|
39
10
|
|