@contrail/cli 2.1.19 → 2.1.21
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 +311 -105
- package/dist/api/apps.js +15 -15
- package/dist/api/event-workflow-action-definition.d.ts +1 -1
- package/dist/api/event-workflow-action-definition.js +1 -1
- package/dist/api/event-workflow-template-definition.d.ts +4 -3
- package/dist/api/event-workflow-templates.d.ts +5 -4
- package/dist/api/event-workflow-templates.js +2 -2
- package/dist/api/types.d.ts +10 -10
- package/dist/api/users.js +4 -2
- package/dist/auth/login.js +12 -14
- package/dist/commands/app/create.d.ts +2 -2
- package/dist/commands/app/create.js +15 -10
- package/dist/commands/app/delete.d.ts +2 -2
- package/dist/commands/app/delete.js +4 -2
- package/dist/commands/app/getApiKey.d.ts +2 -2
- package/dist/commands/app/getApiKey.js +17 -11
- package/dist/commands/app/install.d.ts +2 -2
- package/dist/commands/app/install.js +42 -25
- package/dist/commands/app/publish.d.ts +2 -2
- package/dist/commands/app/publish.js +26 -11
- package/dist/commands/app/uninstall.d.ts +2 -2
- package/dist/commands/app/uninstall.js +20 -11
- package/dist/commands/app/upgrade.d.ts +2 -2
- package/dist/commands/app/upgrade.js +46 -23
- package/dist/commands/basecommand.d.ts +7 -0
- package/dist/commands/basecommand.js +29 -0
- package/dist/commands/colors/deleteAll.d.ts +2 -2
- package/dist/commands/colors/deleteAll.js +8 -5
- package/dist/commands/colors/load.d.ts +2 -2
- package/dist/commands/colors/load.js +10 -7
- package/dist/commands/config/list.d.ts +2 -2
- package/dist/commands/config/list.js +4 -2
- package/dist/commands/config/remove.d.ts +2 -2
- package/dist/commands/config/remove.js +4 -2
- package/dist/commands/config/set.d.ts +3 -2
- package/dist/commands/config/set.js +21 -7
- package/dist/commands/groups/export.d.ts +2 -2
- package/dist/commands/groups/export.js +20 -8
- package/dist/commands/groups/upload.d.ts +3 -3
- package/dist/commands/groups/upload.js +44 -32
- package/dist/commands/instance/export.d.ts +2 -2
- package/dist/commands/instance/export.js +15 -3
- package/dist/commands/instance/import.d.ts +2 -2
- package/dist/commands/instance/import.js +9 -2
- package/dist/commands/loader-process/load.d.ts +2 -2
- package/dist/commands/loader-process/load.js +13 -6
- package/dist/commands/loader-process/upload-and-load.d.ts +2 -2
- package/dist/commands/loader-process/upload-and-load.js +18 -7
- package/dist/commands/projects/export.d.ts +2 -2
- package/dist/commands/projects/export.js +4 -2
- package/dist/commands/projects/list.d.ts +2 -2
- package/dist/commands/projects/list.js +6 -4
- package/dist/commands/projects/load.d.ts +2 -2
- package/dist/commands/projects/load.js +16 -8
- package/dist/commands/types/exportOptionSetHierarchies.d.ts +2 -2
- package/dist/commands/types/exportOptionSetHierarchies.js +15 -12
- package/dist/commands/types/getAll.d.ts +2 -2
- package/dist/commands/types/getAll.js +107 -76
- package/dist/commands/types/loadAll.d.ts +2 -2
- package/dist/commands/types/loadAll.js +12 -4
- package/dist/commands/types/mergeOptionSets.d.ts +2 -2
- package/dist/commands/types/mergeOptionSets.js +13 -10
- package/dist/commands/types/mergeTypeProperties.d.ts +2 -2
- package/dist/commands/types/mergeTypeProperties.js +12 -9
- package/dist/commands/types/parseOptionSetsHierarchyLocalFile.d.ts +2 -2
- package/dist/commands/types/parseOptionSetsHierarchyLocalFile.js +19 -15
- package/dist/commands/types/parseOptionSetsHierarchyValuesToKeysLocalFile.d.ts +10 -0
- package/dist/commands/types/parseOptionSetsHierarchyValuesToKeysLocalFile.js +102 -0
- package/dist/commands/types/parseOptionSetsLocalFiles.d.ts +2 -2
- package/dist/commands/types/parseOptionSetsLocalFiles.js +21 -21
- package/dist/commands/types/parseOptionSetsToFolderStructure.d.ts +2 -2
- package/dist/commands/types/parseOptionSetsToFolderStructure.js +17 -18
- package/dist/commands/types/parseTypesFromFiles.d.ts +2 -2
- package/dist/commands/types/parseTypesFromFiles.js +14 -8
- package/dist/commands/types/parseTypesFromLocalFiles.d.ts +2 -2
- package/dist/commands/types/parseTypesFromLocalFiles.js +10 -7
- package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.d.ts +2 -2
- package/dist/commands/types/parseTypesFromTemplateAndDataFromLocalFiles.js +11 -8
- package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.d.ts +2 -2
- package/dist/commands/types/parseTypesFromTemplateFromLocalFiles.js +11 -8
- package/dist/commands/types/uploadOptionSetHierarchies.d.ts +2 -2
- package/dist/commands/types/uploadOptionSetHierarchies.js +44 -32
- package/dist/commands/types/uploadOptionSets.d.ts +2 -2
- package/dist/commands/types/uploadOptionSets.js +21 -13
- package/dist/commands/types/uploadOptionSetsHierarchyLocalFile.d.ts +2 -2
- package/dist/commands/types/uploadOptionSetsHierarchyLocalFile.js +26 -19
- package/dist/commands/types/uploadRuleSets.d.ts +2 -2
- package/dist/commands/types/uploadRuleSets.js +34 -26
- package/dist/commands/types/uploadTypePolicies.d.ts +2 -2
- package/dist/commands/types/uploadTypePolicies.js +37 -29
- package/dist/commands/types/uploadTypePropertyPolicies.d.ts +2 -2
- package/dist/commands/types/uploadTypePropertyPolicies.js +38 -30
- package/dist/commands/types/uploadTypes.d.ts +2 -2
- package/dist/commands/types/uploadTypes.js +10 -4
- package/dist/commands/types/uploadUsageInfo.d.ts +2 -2
- package/dist/commands/types/uploadUsageInfo.js +32 -24
- package/dist/commands/users/export.d.ts +2 -2
- package/dist/commands/users/export.js +15 -4
- package/dist/commands/users/upload.d.ts +2 -2
- package/dist/commands/users/upload.js +6 -4
- package/dist/commands/webhooks/create.d.ts +2 -2
- package/dist/commands/webhooks/create.js +8 -6
- package/dist/commands/webhooks/delete.d.ts +2 -2
- package/dist/commands/webhooks/delete.js +8 -5
- package/dist/commands/webhooks/getWebhookTrigger.d.ts +2 -2
- package/dist/commands/webhooks/getWebhookTrigger.js +10 -9
- package/dist/commands/webhooks/list.d.ts +2 -2
- package/dist/commands/webhooks/list.js +8 -6
- package/dist/commands/workflow-template-definitions/install.d.ts +2 -2
- package/dist/commands/workflow-template-definitions/install.js +4 -2
- package/dist/commands/workflow-template-definitions/list.d.ts +2 -2
- package/dist/commands/workflow-template-definitions/list.js +4 -2
- package/dist/commands/workflow-templates/delete.d.ts +2 -2
- package/dist/commands/workflow-templates/delete.js +4 -2
- package/dist/commands/workflow-templates/export.d.ts +2 -2
- package/dist/commands/workflow-templates/export.js +19 -17
- package/dist/commands/workflow-templates/list.d.ts +2 -2
- package/dist/commands/workflow-templates/list.js +4 -2
- package/dist/commands/workflow-templates/load.d.ts +2 -2
- package/dist/commands/workflow-templates/load.js +8 -3
- package/dist/common.d.ts +4 -1
- package/dist/common.js +10 -1
- package/dist/helpers/app/actions-deployer.d.ts +2 -2
- package/dist/helpers/app/actions-deployer.js +12 -7
- package/dist/helpers/app/app-deployer.d.ts +1 -1
- package/dist/helpers/app/app-deployer.js +77 -49
- package/dist/helpers/app/app-template-parsers.js +3 -1
- package/dist/helpers/app/load-app-config.d.ts +2 -1
- package/dist/helpers/app/load-app-config.js +2 -2
- package/dist/helpers/app/setup-template.js +4 -3
- package/dist/helpers/colors/helpers.d.ts +10 -2
- package/dist/helpers/colors/helpers.js +11 -10
- package/dist/helpers/config/config.js +15 -10
- package/dist/helpers/file-helpers.js +7 -4
- package/dist/helpers/loader-process/helpers.js +14 -13
- package/dist/helpers/projects/helpers.d.ts +2 -1
- package/dist/helpers/projects/helpers.js +16 -15
- package/dist/helpers/types/csv-parser.js +17 -14
- package/dist/helpers/types/type-extractor.d.ts +1 -1
- package/dist/helpers/types/type-extractor.js +3 -2
- package/dist/helpers/types/type-parser.js +22 -21
- package/dist/helpers/types/type-uploader.js +19 -15
- package/dist/helpers/workflow-template-definitions/workflow-template-definition-deployer.d.ts +1 -1
- package/dist/helpers/workflow-template-definitions/workflow-template-definition-deployer.js +46 -28
- package/dist/helpers/workflow-templates/helper.d.ts +3 -3
- package/dist/helpers/workflow-templates/helper.js +33 -23
- package/dist/interface-converters.spec.js +15 -15
- package/dist/interfaces.d.ts +6 -0
- package/dist/logger.d.ts +3 -0
- package/dist/logger.js +32 -0
- package/dist/templates/typescript/src/actions/logItem.ts +9 -4
- package/dist/templates/typescript/src/main.ts +13 -8
- package/oclif.manifest.json +861 -31
- package/package.json +10 -7
|
@@ -7,11 +7,12 @@ const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
|
7
7
|
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
8
8
|
const sdk_1 = require("@contrail/sdk");
|
|
9
9
|
const util_1 = require("@contrail/util");
|
|
10
|
+
const logger_1 = tslib_1.__importDefault(require("../../logger"));
|
|
10
11
|
function getProjectFile(fileName) {
|
|
11
12
|
const CURRENT_DIR = process.cwd();
|
|
12
13
|
try {
|
|
13
14
|
const fullPath = path.join(CURRENT_DIR, fileName);
|
|
14
|
-
|
|
15
|
+
logger_1.default.info('Getting file from path: ', fullPath);
|
|
15
16
|
const doc = js_yaml_1.default.load(fs_1.default.readFileSync(fullPath, 'utf8'));
|
|
16
17
|
return doc.projectConfiguration;
|
|
17
18
|
}
|
|
@@ -25,7 +26,7 @@ async function exportProject(name) {
|
|
|
25
26
|
entityName: 'workspace',
|
|
26
27
|
useSearch: false,
|
|
27
28
|
});
|
|
28
|
-
const workspace = allWorkspaces.find(w => w.name === name);
|
|
29
|
+
const workspace = allWorkspaces.find((w) => w.name === name);
|
|
29
30
|
if (!workspace) {
|
|
30
31
|
throw new Error('Project was not found.');
|
|
31
32
|
}
|
|
@@ -35,7 +36,7 @@ async function exportProject(name) {
|
|
|
35
36
|
principals: [],
|
|
36
37
|
commonConfig: {},
|
|
37
38
|
assortments: [],
|
|
38
|
-
subFolders: []
|
|
39
|
+
subFolders: [],
|
|
39
40
|
};
|
|
40
41
|
projectConfiguration.principals = await getFolderPrincipals(workspace);
|
|
41
42
|
const allAssortments = [];
|
|
@@ -49,7 +50,7 @@ async function getAssortmentsAndSubFolders(parentId, assortments, subFolders, al
|
|
|
49
50
|
entityName: 'assortment',
|
|
50
51
|
criteria: {
|
|
51
52
|
workspaceId: parentId,
|
|
52
|
-
}
|
|
53
|
+
},
|
|
53
54
|
});
|
|
54
55
|
const integrationAssortments = workspaceAssortments; //?.filter(a => a.assortmentType === 'INTEGRATION');
|
|
55
56
|
if ((integrationAssortments === null || integrationAssortments === void 0 ? void 0 : integrationAssortments.length) > 0) {
|
|
@@ -71,16 +72,16 @@ async function getAssortmentsAndSubFolders(parentId, assortments, subFolders, al
|
|
|
71
72
|
assortments.push(converted);
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
|
-
|
|
75
|
+
logger_1.default.info('workspaceFolderLinks call');
|
|
75
76
|
const workspaceFolderLinks = await new sdk_1.Entities().get({
|
|
76
77
|
entityName: 'workspace-entity',
|
|
77
78
|
criteria: {
|
|
78
79
|
workspaceId: parentId,
|
|
79
|
-
entityType: 'workspace'
|
|
80
|
+
entityType: 'workspace',
|
|
80
81
|
},
|
|
81
|
-
relations: ['entity']
|
|
82
|
+
relations: ['entity'],
|
|
82
83
|
});
|
|
83
|
-
const workspaceFolders = workspaceFolderLinks === null || workspaceFolderLinks === void 0 ? void 0 : workspaceFolderLinks.map(wfl => wfl.entity);
|
|
84
|
+
const workspaceFolders = workspaceFolderLinks === null || workspaceFolderLinks === void 0 ? void 0 : workspaceFolderLinks.map((wfl) => wfl.entity);
|
|
84
85
|
if ((workspaceFolders === null || workspaceFolders === void 0 ? void 0 : workspaceFolders.length) > 0) {
|
|
85
86
|
for (const folder of workspaceFolders) {
|
|
86
87
|
const converted = {
|
|
@@ -96,7 +97,7 @@ async function getAssortmentsAndSubFolders(parentId, assortments, subFolders, al
|
|
|
96
97
|
}
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
|
-
|
|
100
|
+
function convertRelationshipsInFolders(folder, allAssortments) {
|
|
100
101
|
if (!(allAssortments.length > 0)) {
|
|
101
102
|
return;
|
|
102
103
|
}
|
|
@@ -111,11 +112,11 @@ function convertRelationshipsToIdentifiers(assortments, allAssortments) {
|
|
|
111
112
|
}
|
|
112
113
|
for (const assortment of assortments) {
|
|
113
114
|
if (assortment.sourceAssortmentIds) {
|
|
114
|
-
assortment.sourceAssortmentIdentifier = assortment.sourceAssortmentIds.map(id => { var _a; return (_a = allAssortments.find(a => a.id === id)) === null || _a === void 0 ? void 0 : _a.identifier; });
|
|
115
|
+
assortment.sourceAssortmentIdentifier = assortment.sourceAssortmentIds.map((id) => { var _a; return (_a = allAssortments.find((a) => a.id === id)) === null || _a === void 0 ? void 0 : _a.identifier; });
|
|
115
116
|
}
|
|
116
117
|
delete assortment.sourceAssortmentIds;
|
|
117
118
|
if (assortment.composedFromAssortmentIds) {
|
|
118
|
-
assortment.composedFromAssortmentIdentifiers = assortment.composedFromAssortmentIds.map(id => { var _a; return (_a = allAssortments.find(a => a.id === id)) === null || _a === void 0 ? void 0 : _a.identifier; });
|
|
119
|
+
assortment.composedFromAssortmentIdentifiers = assortment.composedFromAssortmentIds.map((id) => { var _a; return (_a = allAssortments.find((a) => a.id === id)) === null || _a === void 0 ? void 0 : _a.identifier; });
|
|
119
120
|
}
|
|
120
121
|
delete assortment.composedFromAssortmentIds;
|
|
121
122
|
}
|
|
@@ -128,14 +129,14 @@ async function getFolderPrincipals(folder) {
|
|
|
128
129
|
const workspacePrincipals = await new sdk_1.Entities().get({
|
|
129
130
|
entityName: 'workspace-principal',
|
|
130
131
|
criteria: { workspaceId: folder.id },
|
|
131
|
-
relations: ['principal']
|
|
132
|
+
relations: ['principal'],
|
|
132
133
|
});
|
|
133
134
|
for (const workspacePrincipal of workspacePrincipals) {
|
|
134
135
|
if (workspacePrincipal.principal.email) {
|
|
135
|
-
principals.push(workspacePrincipal.principal.email
|
|
136
|
+
principals.push(`${workspacePrincipal.principal.email}|${workspacePrincipal.role}`);
|
|
136
137
|
}
|
|
137
138
|
else {
|
|
138
|
-
principals.push(workspacePrincipal.principal.name
|
|
139
|
+
principals.push(`${workspacePrincipal.principal.name}|${workspacePrincipal.role}`);
|
|
139
140
|
}
|
|
140
141
|
}
|
|
141
142
|
return principals;
|
|
@@ -162,5 +163,5 @@ function deleteNonUserKeys(assortment) {
|
|
|
162
163
|
function saveData(data, name) {
|
|
163
164
|
const yamlStr = js_yaml_1.default.dump(data);
|
|
164
165
|
const CURRENT_DIR = process.cwd();
|
|
165
|
-
fs_1.default.writeFileSync(path.join(CURRENT_DIR, name
|
|
166
|
+
fs_1.default.writeFileSync(path.join(CURRENT_DIR, `${name}-export.yml`), yamlStr, 'utf8');
|
|
166
167
|
}
|
|
@@ -5,52 +5,55 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const csvtojson_1 = tslib_1.__importDefault(require("csvtojson"));
|
|
6
6
|
const client = tslib_1.__importStar(require("https"));
|
|
7
7
|
const sdk_1 = require("@contrail/sdk");
|
|
8
|
+
const logger_1 = tslib_1.__importDefault(require("../../logger"));
|
|
8
9
|
async function getCSVFromFile(loadFileId) {
|
|
9
10
|
let file;
|
|
10
11
|
try {
|
|
11
12
|
file = await new sdk_1.Entities().get({ entityName: 'file', id: loadFileId });
|
|
12
|
-
|
|
13
|
+
logger_1.default.info('Got file: ', file);
|
|
13
14
|
}
|
|
14
15
|
catch (e) {
|
|
15
|
-
|
|
16
|
-
throw new Error(`Failed to get file: ${loadFileId} -
|
|
16
|
+
logger_1.default.info(`Failed to get file: ${loadFileId}`, JSON.stringify(e));
|
|
17
|
+
throw new Error(`Failed to get file: ${loadFileId} - ${JSON.stringify(e)}`);
|
|
17
18
|
}
|
|
18
19
|
if (!file || !file.downloadUrl) {
|
|
19
|
-
|
|
20
|
+
logger_1.default.info(`File: ${loadFileId} does not have a downloadUrl`);
|
|
20
21
|
throw new Error(`File: ${loadFileId} does not have a downloadUrl`);
|
|
21
22
|
}
|
|
22
23
|
// get csv
|
|
23
24
|
let response;
|
|
24
25
|
try {
|
|
25
26
|
response = await new Promise((resolve, reject) => {
|
|
26
|
-
client
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
client
|
|
28
|
+
.get(file.downloadUrl, function (res) {
|
|
29
|
+
logger_1.default.info('Status code:', res.statusCode);
|
|
30
|
+
logger_1.default.info('Status text:', res.statusMessage);
|
|
29
31
|
let body = '';
|
|
30
32
|
res.on('data', (data) => {
|
|
31
33
|
body += data.toString();
|
|
32
34
|
});
|
|
33
35
|
res.on('end', () => {
|
|
34
|
-
|
|
35
|
-
//
|
|
36
|
+
logger_1.default.info('Response body:');
|
|
37
|
+
//logger.info(body);
|
|
36
38
|
resolve(body);
|
|
37
39
|
});
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
+
})
|
|
41
|
+
.on('error', function (e) {
|
|
42
|
+
logger_1.default.error(e);
|
|
40
43
|
reject(e);
|
|
41
44
|
});
|
|
42
45
|
});
|
|
43
46
|
}
|
|
44
47
|
catch (e) {
|
|
45
|
-
|
|
48
|
+
logger_1.default.info(`Failed to get data from downloadUrl: ${file.downloadUrl}`, e);
|
|
46
49
|
throw e;
|
|
47
50
|
}
|
|
48
51
|
if (!response) {
|
|
49
|
-
|
|
52
|
+
logger_1.default.info('Response is empty');
|
|
50
53
|
throw new Error('Response is empty');
|
|
51
54
|
}
|
|
52
55
|
const csvJson = await (0, csvtojson_1.default)({ flatKeys: true }).fromString(response);
|
|
53
|
-
//
|
|
56
|
+
// logger.info('csvJson', csvJson);
|
|
54
57
|
return csvJson;
|
|
55
58
|
}
|
|
56
59
|
exports.getCSVFromFile = getCSVFromFile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function getTypes(withTypeProperties?: boolean): Promise<any>;
|
|
1
|
+
export declare function getTypes(withTypeProperties?: boolean): Promise<any[]>;
|
|
@@ -5,14 +5,15 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const sdk_1 = require("@contrail/sdk");
|
|
6
6
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
7
7
|
const p_limit_1 = tslib_1.__importDefault(require("p-limit"));
|
|
8
|
+
const logger_1 = tslib_1.__importDefault(require("../../logger"));
|
|
8
9
|
const limit = (0, p_limit_1.default)(30);
|
|
9
10
|
async function getTypes(withTypeProperties = true) {
|
|
10
|
-
|
|
11
|
+
logger_1.default.info('%s Retrieving', chalk_1.default.yellow.bold('TYPES'));
|
|
11
12
|
const entitiesClient = new sdk_1.Entities();
|
|
12
13
|
const types = await entitiesClient.get({
|
|
13
14
|
entityName: 'type',
|
|
14
15
|
});
|
|
15
|
-
|
|
16
|
+
logger_1.default.info(`${chalk_1.default.yellow.bold('TYPES')} Found ${types.length} types`);
|
|
16
17
|
if (!withTypeProperties) {
|
|
17
18
|
return types;
|
|
18
19
|
}
|
|
@@ -8,7 +8,8 @@ const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
|
8
8
|
const csvToJson = tslib_1.__importStar(require("csvtojson"));
|
|
9
9
|
const login_1 = require("../../auth/login");
|
|
10
10
|
const csv_parser_1 = require("../../helpers/types/csv-parser");
|
|
11
|
-
const
|
|
11
|
+
const logger_1 = tslib_1.__importDefault(require("../../logger"));
|
|
12
|
+
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
12
13
|
async function loadDataFromLocalCSV(fileName) {
|
|
13
14
|
const CURRENT_DIR = process.cwd();
|
|
14
15
|
try {
|
|
@@ -24,17 +25,17 @@ async function parseTypesFromLocalFiles(fileLocations) {
|
|
|
24
25
|
const csvJSONData = [];
|
|
25
26
|
for (const fileLocation of fileLocations) {
|
|
26
27
|
try {
|
|
27
|
-
|
|
28
|
+
logger_1.default.info('Getting data for fileLocation: ', fileLocation);
|
|
28
29
|
const csvData = await loadDataFromLocalCSV(fileLocation);
|
|
29
|
-
|
|
30
|
+
logger_1.default.info(`CSV import was successful. ${csvData === null || csvData === void 0 ? void 0 : csvData.length} rows found. Adding to total rows.`);
|
|
30
31
|
csvJSONData.push(...csvData);
|
|
31
32
|
}
|
|
32
33
|
catch (e) {
|
|
33
|
-
|
|
34
|
+
logger_1.default.info('Error importing csv data.', e);
|
|
34
35
|
throw e;
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
|
-
|
|
38
|
+
logger_1.default.info(`CSV imports were successful. ${csvJSONData === null || csvJSONData === void 0 ? void 0 : csvJSONData.length} total rows found.`);
|
|
38
39
|
const suggestions = (0, types_1.GetSuggestedTypes)(csvJSONData);
|
|
39
40
|
saveData(suggestions.OptionSets, 'parsed_optionSets.yml');
|
|
40
41
|
saveData({ typeProperties: suggestions.TypeProperties }, 'parsed_typeProperties.yml');
|
|
@@ -44,15 +45,15 @@ async function parseTypesFromTemplateFromLocalFiles(templateFileLocation, dataFi
|
|
|
44
45
|
let templateCSVData = [];
|
|
45
46
|
let dataCSVData = [];
|
|
46
47
|
try {
|
|
47
|
-
|
|
48
|
+
logger_1.default.info('Getting template from fileLocation: ', templateFileLocation);
|
|
48
49
|
templateCSVData = await loadDataFromLocalCSV(templateFileLocation);
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
logger_1.default.info(`CSV import was successful. ${templateCSVData === null || templateCSVData === void 0 ? void 0 : templateCSVData.length} rows found.`);
|
|
51
|
+
logger_1.default.info('Getting data from fileLocation: ', dataFileLocation);
|
|
51
52
|
dataCSVData = await loadDataFromLocalCSV(dataFileLocation);
|
|
52
|
-
|
|
53
|
+
logger_1.default.info(`CSV import was successful. ${dataCSVData === null || dataCSVData === void 0 ? void 0 : dataCSVData.length} rows found.`);
|
|
53
54
|
}
|
|
54
55
|
catch (e) {
|
|
55
|
-
|
|
56
|
+
logger_1.default.info('Error importing csv data.', e);
|
|
56
57
|
throw e;
|
|
57
58
|
}
|
|
58
59
|
const types = (0, types_1.GetTypesFromTemplate)(templateCSVData, dataCSVData);
|
|
@@ -63,24 +64,24 @@ exports.parseTypesFromTemplateFromLocalFiles = parseTypesFromTemplateFromLocalFi
|
|
|
63
64
|
async function parseTypesFromTemplateAndDataFromLocalFiles(templateFileLocation, dataFileLocations) {
|
|
64
65
|
let templateCSVData = [];
|
|
65
66
|
try {
|
|
66
|
-
|
|
67
|
+
logger_1.default.info('Getting template from fileLocation: ', templateFileLocation);
|
|
67
68
|
templateCSVData = await loadDataFromLocalCSV(templateFileLocation);
|
|
68
|
-
|
|
69
|
+
logger_1.default.info(`CSV import was successful. ${templateCSVData === null || templateCSVData === void 0 ? void 0 : templateCSVData.length} rows found.`);
|
|
69
70
|
}
|
|
70
71
|
catch (e) {
|
|
71
|
-
|
|
72
|
+
logger_1.default.info('Error importing csv data.', e);
|
|
72
73
|
throw e;
|
|
73
74
|
}
|
|
74
75
|
const dataCSVData = [];
|
|
75
76
|
for (const dataFileLocation of dataFileLocations) {
|
|
76
77
|
try {
|
|
77
|
-
|
|
78
|
+
logger_1.default.info('Getting data for dataFileLocation: ', dataFileLocation);
|
|
78
79
|
const csvData = await loadDataFromLocalCSV(dataFileLocation);
|
|
79
|
-
|
|
80
|
+
logger_1.default.info(`CSV import was successful. ${csvData === null || csvData === void 0 ? void 0 : csvData.length} rows found. Adding to total rows.`);
|
|
80
81
|
dataCSVData.push(...csvData);
|
|
81
82
|
}
|
|
82
83
|
catch (e) {
|
|
83
|
-
|
|
84
|
+
logger_1.default.info('Error importing csv data.', e);
|
|
84
85
|
throw e;
|
|
85
86
|
}
|
|
86
87
|
}
|
|
@@ -95,24 +96,24 @@ async function parseTypesFromFiles(fileIds) {
|
|
|
95
96
|
const csvJSONData = [];
|
|
96
97
|
for (const loadFileId of fileIds) {
|
|
97
98
|
try {
|
|
98
|
-
|
|
99
|
+
logger_1.default.info('Getting data for fileId: ', loadFileId);
|
|
99
100
|
const csvJSON = await (0, csv_parser_1.getCSVFromFile)(loadFileId);
|
|
100
|
-
|
|
101
|
+
logger_1.default.info(`CSV download was successful. ${csvJSON === null || csvJSON === void 0 ? void 0 : csvJSON.length} rows found. Adding to total rows`);
|
|
101
102
|
csvJSONData.push(...csvJSON);
|
|
102
103
|
}
|
|
103
104
|
catch (e) {
|
|
104
|
-
|
|
105
|
+
logger_1.default.info('Error retrieving csv data', e);
|
|
105
106
|
throw e;
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
|
-
|
|
109
|
+
logger_1.default.info(`CSV downloads were successful. ${csvJSONData === null || csvJSONData === void 0 ? void 0 : csvJSONData.length} total rows found.`);
|
|
109
110
|
const suggestions = (0, types_1.GetSuggestedTypes)(csvJSONData);
|
|
110
111
|
saveData(suggestions.OptionSets, 'parsed_optionSets.yml');
|
|
111
112
|
saveData({ typeProperties: suggestions.TypeProperties }, 'parsed_typeProperties.yml');
|
|
112
113
|
}
|
|
113
114
|
exports.parseTypesFromFiles = parseTypesFromFiles;
|
|
114
115
|
function saveData(data, name) {
|
|
115
|
-
const yamlStr =
|
|
116
|
+
const yamlStr = js_yaml_1.default.dump(data);
|
|
116
117
|
const CURRENT_DIR = process.cwd();
|
|
117
118
|
fs_1.default.writeFileSync(path.resolve(path.join(CURRENT_DIR, name, yamlStr)), 'utf8');
|
|
118
119
|
}
|
|
@@ -9,19 +9,20 @@ const path = tslib_1.__importStar(require("path"));
|
|
|
9
9
|
const _ = tslib_1.__importStar(require("lodash"));
|
|
10
10
|
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
11
11
|
const login_1 = require("../../auth/login");
|
|
12
|
+
const logger_1 = tslib_1.__importDefault(require("../../logger"));
|
|
12
13
|
async function uploadTypes(dir) {
|
|
13
14
|
try {
|
|
14
15
|
const userConfig = await (0, login_1.authUser)();
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
logger_1.default.info(`%s Getting all types for orgId: ${userConfig.orgId}`, chalk_1.default.blue.bold('START'));
|
|
17
|
+
logger_1.default.info('%s Uploading', chalk_1.default.yellow.bold('TYPES'));
|
|
17
18
|
await uploadReducedTypes(dir);
|
|
18
|
-
|
|
19
|
+
logger_1.default.info('%s Uploaded', chalk_1.default.yellow.bold('TYPES'));
|
|
19
20
|
}
|
|
20
21
|
catch (e) {
|
|
21
|
-
|
|
22
|
+
logger_1.default.info(`%s Types Upload Failed. ${e}`, chalk_1.default.red.bold('FAIL'));
|
|
22
23
|
return;
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
+
logger_1.default.info('%s Types Upload Complete.', chalk_1.default.green.bold('COMPLETE'));
|
|
25
26
|
}
|
|
26
27
|
exports.uploadTypes = uploadTypes;
|
|
27
28
|
function loadReducedTypes(fromDir) {
|
|
@@ -65,10 +66,10 @@ async function uploadReducedTypes(dir) {
|
|
|
65
66
|
const found = currentTypesBySlug[type.slug];
|
|
66
67
|
if (!found) {
|
|
67
68
|
if (!type.typePath.includes(':')) {
|
|
68
|
-
|
|
69
|
+
logger_1.default.info('Cannot create a base type. Skipping: ', type.slug);
|
|
69
70
|
continue;
|
|
70
71
|
}
|
|
71
|
-
|
|
72
|
+
logger_1.default.info('Creating Type: ', type.slug);
|
|
72
73
|
const createdType = await new sdk_1.Entities().create({
|
|
73
74
|
entityName: 'type',
|
|
74
75
|
object: {
|
|
@@ -78,11 +79,12 @@ async function uploadReducedTypes(dir) {
|
|
|
78
79
|
isArchived: type.isArchived,
|
|
79
80
|
},
|
|
80
81
|
});
|
|
81
|
-
const newTypeProperties = (await new sdk_1.Types().getType({ id: createdType.id }))
|
|
82
|
+
const newTypeProperties = (await new sdk_1.Types().getType({ id: createdType.id }))
|
|
83
|
+
.typeProperties;
|
|
82
84
|
await uploadReducedTypeProperties(createdType, newTypeProperties, type.typeProperties);
|
|
83
85
|
}
|
|
84
86
|
else {
|
|
85
|
-
|
|
87
|
+
logger_1.default.info('Updating Type: ', type.slug);
|
|
86
88
|
const updatedType = await new sdk_1.Entities().update({
|
|
87
89
|
entityName: 'type',
|
|
88
90
|
id: found.id,
|
|
@@ -97,7 +99,7 @@ async function uploadReducedTypes(dir) {
|
|
|
97
99
|
}
|
|
98
100
|
}
|
|
99
101
|
catch (err) {
|
|
100
|
-
|
|
102
|
+
logger_1.default.info('Error Uploading Types: ', err);
|
|
101
103
|
}
|
|
102
104
|
}
|
|
103
105
|
}
|
|
@@ -121,7 +123,7 @@ async function uploadReducedTypeProperties(type, currentPropertyTypes, newProper
|
|
|
121
123
|
try {
|
|
122
124
|
const found = currentPropertyTypeBySlug[newPropertyType.slug];
|
|
123
125
|
if (!found && !newPropertyType.inherited) {
|
|
124
|
-
|
|
126
|
+
logger_1.default.info('Creating Type-Property: ', newPropertyType.slug);
|
|
125
127
|
await sdk_1.Request.request(`/types/${type.id}/type-properties`, {
|
|
126
128
|
method: 'POST',
|
|
127
129
|
body: JSON.stringify({
|
|
@@ -149,8 +151,10 @@ async function uploadReducedTypeProperties(type, currentPropertyTypes, newProper
|
|
|
149
151
|
},
|
|
150
152
|
});
|
|
151
153
|
}
|
|
152
|
-
else if (found &&
|
|
153
|
-
|
|
154
|
+
else if (found &&
|
|
155
|
+
!newPropertyType.inherited &&
|
|
156
|
+
!typePropertiesEqual(found, newPropertyType, optionSetIdByName)) {
|
|
157
|
+
logger_1.default.info('Updating Type-Property: ', newPropertyType.slug);
|
|
154
158
|
await new sdk_1.Entities().update({
|
|
155
159
|
entityName: 'type-property',
|
|
156
160
|
id: found.id,
|
|
@@ -176,14 +180,14 @@ async function uploadReducedTypeProperties(type, currentPropertyTypes, newProper
|
|
|
176
180
|
}
|
|
177
181
|
}
|
|
178
182
|
catch (err) {
|
|
179
|
-
|
|
183
|
+
logger_1.default.info('Error Creating Properties: ', err);
|
|
180
184
|
}
|
|
181
185
|
}
|
|
182
186
|
for (const currentPropertyType of currentPropertyTypes) {
|
|
183
187
|
try {
|
|
184
188
|
const found = newPropertyTypesBySlug[currentPropertyType.slug];
|
|
185
189
|
if (!found && !currentPropertyType.inherited) {
|
|
186
|
-
|
|
190
|
+
logger_1.default.info('Deleting Type-Property: ', currentPropertyType.slug);
|
|
187
191
|
await sdk_1.Request.request(`/types/${type.id}/type-properties/${currentPropertyType.id}`, {
|
|
188
192
|
method: 'DELETE',
|
|
189
193
|
headers: {
|
package/dist/helpers/workflow-template-definitions/workflow-template-definition-deployer.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export declare class WorkflowTemplateDefinitionDeployer {
|
|
|
4
4
|
installWorkflowTemplateDefinitions(workflowTemplateDefinitions: WorkflowTemplate[]): Promise<void>;
|
|
5
5
|
listWorkflowTemplateDefinitions(): Promise<void>;
|
|
6
6
|
deployWorkflowTemplateDefinitions(appDeclaration: AppDeclaration, app: App): Promise<void>;
|
|
7
|
-
deployWorkflow(workflowKey: string, workflow: WorkflowDefinition, app: App, existingWorkflows: Array<any>): Promise<
|
|
7
|
+
deployWorkflow(workflowKey: string, workflow: WorkflowDefinition, app: App, existingWorkflows: Array<any>): Promise<WorkflowDefinition>;
|
|
8
8
|
private createNewWorkflowDefinition;
|
|
9
9
|
private populateActionIds;
|
|
10
10
|
private updateWorkflowTemplateDefinition;
|
|
@@ -9,40 +9,53 @@ const event_workflow_templates_1 = require("../../api/event-workflow-templates")
|
|
|
9
9
|
const event_workflow_template_definition_1 = require("../../api/event-workflow-template-definition");
|
|
10
10
|
const actions_deployer_1 = require("../app/actions-deployer");
|
|
11
11
|
const interface_converters_1 = require("../../interface-converters");
|
|
12
|
+
const logger_1 = tslib_1.__importDefault(require("../../logger"));
|
|
12
13
|
class WorkflowTemplateDefinitionDeployer {
|
|
13
14
|
async cliInstallWorkflowTemplateDefinitions() {
|
|
14
15
|
const installedAppOrgs = await (0, apps_1.getInstalledApps)();
|
|
15
16
|
if (!installedAppOrgs.length) {
|
|
16
|
-
|
|
17
|
+
logger_1.default.info('%s \nNo apps are currently installed. You must install an app before installing its associated workflow template definitions.', chalk_1.default.red.bold('WORKFLOW DEFINITION'));
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
19
|
-
const answers = await inquirer_1.default.prompt([
|
|
20
|
+
const answers = await inquirer_1.default.prompt([
|
|
21
|
+
{
|
|
20
22
|
type: 'list',
|
|
21
23
|
name: 'appIdentifier',
|
|
22
|
-
message: 'Which app
|
|
23
|
-
choices: installedAppOrgs.map(x => x.app.identifier)
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const
|
|
24
|
+
message: 'Which app workflow would you like to install?',
|
|
25
|
+
choices: installedAppOrgs.map((x) => x.app.identifier),
|
|
26
|
+
},
|
|
27
|
+
]);
|
|
28
|
+
const appOrg = installedAppOrgs.find((x) => x.app.identifier === answers.appIdentifier);
|
|
29
|
+
const workflowTemplateDefinitions = await (0, apps_1.getWorkflowTemplateDefinitionsForAppVersion)({
|
|
30
|
+
appVersionId: appOrg.appVersionId,
|
|
31
|
+
});
|
|
27
32
|
for (const definition of workflowTemplateDefinitions) {
|
|
28
|
-
|
|
33
|
+
logger_1.default.info(chalk_1.default.yellow.bold(`- ${definition.name}`));
|
|
29
34
|
}
|
|
30
35
|
await this.installWorkflowTemplateDefinitions(workflowTemplateDefinitions);
|
|
31
36
|
}
|
|
32
37
|
async installWorkflowTemplateDefinitions(workflowTemplateDefinitions) {
|
|
33
|
-
let answers = await inquirer_1.default.prompt([
|
|
38
|
+
let answers = await inquirer_1.default.prompt([
|
|
39
|
+
{
|
|
34
40
|
type: 'checkbox',
|
|
35
41
|
name: 'workflowTemplateDefinitionsToInstall',
|
|
36
42
|
message: 'Which workflow templates would you like to install?',
|
|
37
|
-
choices: workflowTemplateDefinitions
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
choices: workflowTemplateDefinitions
|
|
44
|
+
.filter((x) => !x.builtIn)
|
|
45
|
+
.map((x) => {
|
|
46
|
+
return { value: x.identifier, name: x.name };
|
|
47
|
+
}),
|
|
48
|
+
},
|
|
49
|
+
]);
|
|
50
|
+
const workflowTemplateDefinitionsToInstall = workflowTemplateDefinitions.filter((x) => answers.workflowTemplateDefinitionsToInstall.includes(x.identifier));
|
|
51
|
+
answers = await inquirer_1.default.prompt([
|
|
52
|
+
{
|
|
41
53
|
type: 'confirm',
|
|
42
54
|
name: 'makeActive',
|
|
43
55
|
message: 'Should the workflows be active ?(yes)',
|
|
44
56
|
default: true,
|
|
45
|
-
}
|
|
57
|
+
},
|
|
58
|
+
]);
|
|
46
59
|
const makeActive = answers.makeActive;
|
|
47
60
|
for (const definition of workflowTemplateDefinitionsToInstall) {
|
|
48
61
|
const newObject = {
|
|
@@ -55,28 +68,30 @@ class WorkflowTemplateDefinitionDeployer {
|
|
|
55
68
|
};
|
|
56
69
|
await (0, event_workflow_templates_1.createWorkflowTemplate)(newObject);
|
|
57
70
|
}
|
|
58
|
-
|
|
71
|
+
logger_1.default.info(`%s \n ${workflowTemplateDefinitionsToInstall.length} workflows installed`, chalk_1.default.green.bold('WORKFLOW DEFINITION'));
|
|
59
72
|
}
|
|
60
73
|
async listWorkflowTemplateDefinitions() {
|
|
61
74
|
const installedAppOrgs = await (0, apps_1.getInstalledApps)();
|
|
62
75
|
const workflowTemplateDefinitions = [];
|
|
63
76
|
for (const appOrg of installedAppOrgs) {
|
|
64
|
-
workflowTemplateDefinitions.push(...await (await (0, apps_1.getWorkflowTemplateDefinitionsForAppVersion)({ appVersionId: appOrg.appVersionId })).map(x => {
|
|
77
|
+
workflowTemplateDefinitions.push(...(await (await (0, apps_1.getWorkflowTemplateDefinitionsForAppVersion)({ appVersionId: appOrg.appVersionId })).map((x) => {
|
|
65
78
|
return {
|
|
66
79
|
appName: appOrg.app.name,
|
|
67
80
|
workflowName: x.name,
|
|
68
81
|
};
|
|
69
|
-
}));
|
|
82
|
+
})));
|
|
70
83
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
84
|
+
logger_1.default.info('(app name) workflow name');
|
|
85
|
+
logger_1.default.info('------------------------');
|
|
86
|
+
logger_1.default.info(chalk_1.default.green.bold(workflowTemplateDefinitions.map((x) => `(${x.appName}) ${x.workflowName} `).join('\n')));
|
|
74
87
|
}
|
|
75
88
|
async deployWorkflowTemplateDefinitions(appDeclaration, app) {
|
|
76
89
|
// FETCH ALL WORKFLOWS FROM THE API.
|
|
77
|
-
const existingWorkflows = await (0, apps_1.getWorkflowTemplateDefinitionsForAppVersion)({
|
|
90
|
+
const existingWorkflows = await (0, apps_1.getWorkflowTemplateDefinitionsForAppVersion)({
|
|
91
|
+
appVersionId: app.latestAppVersionId,
|
|
92
|
+
});
|
|
78
93
|
// UPSERT / DELETE BASED ON WORKFLOW IDENTIFIER
|
|
79
|
-
|
|
94
|
+
logger_1.default.info('%s \tDeploying workflow definitions.', chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
|
|
80
95
|
if (appDeclaration.workflows) {
|
|
81
96
|
const localWorkflows = Object.keys(appDeclaration.workflows);
|
|
82
97
|
if ((localWorkflows === null || localWorkflows === void 0 ? void 0 : localWorkflows.length) > 0) {
|
|
@@ -87,9 +102,9 @@ class WorkflowTemplateDefinitionDeployer {
|
|
|
87
102
|
}
|
|
88
103
|
}
|
|
89
104
|
async deployWorkflow(workflowKey, workflow, app, existingWorkflows) {
|
|
90
|
-
|
|
105
|
+
logger_1.default.info(`%s \tDeploying workflow definitions: ${workflowKey}`, chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
|
|
91
106
|
const identifier = this.getWorkflowDeclarationIdentifier(workflowKey, app);
|
|
92
|
-
const existingDefinition = existingWorkflows.find(ad => ad.identifier === identifier);
|
|
107
|
+
const existingDefinition = existingWorkflows.find((ad) => ad.identifier === identifier);
|
|
93
108
|
(0, interface_converters_1.convertWorkflow)(workflow);
|
|
94
109
|
if (existingDefinition) {
|
|
95
110
|
return await this.updateWorkflowTemplateDefinition(existingDefinition, workflow, app);
|
|
@@ -111,7 +126,7 @@ class WorkflowTemplateDefinitionDeployer {
|
|
|
111
126
|
parallelWorkerCount: workflowDeclaration.parallelWorkerCount,
|
|
112
127
|
};
|
|
113
128
|
const workflowTemplate = await (0, event_workflow_template_definition_1.createWorkflowTemplateDefinition)(newObject);
|
|
114
|
-
|
|
129
|
+
logger_1.default.info(`%s Created new workflow definition definitions: ${workflowKey}`, chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
|
|
115
130
|
return workflowTemplate;
|
|
116
131
|
}
|
|
117
132
|
async populateActionIds(workflowDefinition, app) {
|
|
@@ -126,7 +141,7 @@ class WorkflowTemplateDefinitionDeployer {
|
|
|
126
141
|
}
|
|
127
142
|
for (const actionConfiguration of path.actionDefinitionConfigs) {
|
|
128
143
|
const actionKey = actionConfiguration.action;
|
|
129
|
-
const action = availableAppActions.find(action => action.identifier === (0, actions_deployer_1.getActionDeclarationIdentifier)(actionKey, app));
|
|
144
|
+
const action = availableAppActions.find((action) => action.identifier === (0, actions_deployer_1.getActionDeclarationIdentifier)(actionKey, app));
|
|
130
145
|
if (!action) {
|
|
131
146
|
throw new Error(`Could not find action ${actionKey} declared in workflow definition ${workflowDefinition.name}`);
|
|
132
147
|
}
|
|
@@ -145,8 +160,11 @@ class WorkflowTemplateDefinitionDeployer {
|
|
|
145
160
|
messageGroupId: workflowDefinition.messageGroupId,
|
|
146
161
|
parallelWorkerCount: workflowDefinition.parallelWorkerCount,
|
|
147
162
|
});
|
|
148
|
-
const updatedWorkflowDefinition = await (0, event_workflow_template_definition_1.updateWorkflowTemplateDefinition)({
|
|
149
|
-
|
|
163
|
+
const updatedWorkflowDefinition = await (0, event_workflow_template_definition_1.updateWorkflowTemplateDefinition)({
|
|
164
|
+
id: existingWorkflowDefinition.id,
|
|
165
|
+
updates,
|
|
166
|
+
});
|
|
167
|
+
logger_1.default.info(`%s Updated existing workflow definition: ${updatedWorkflowDefinition.identifier}`, chalk_1.default.yellow.bold('WORKFLOW DEFINITION'));
|
|
150
168
|
return updatedWorkflowDefinition;
|
|
151
169
|
}
|
|
152
170
|
getWorkflowDeclarationIdentifier(actionKey, app) {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { WorkflowTemplate, WorkflowTemplateDeclaration } from '../../interfaces';
|
|
1
|
+
import { EventWorkflowActionDefinition, WorkflowTemplate, WorkflowTemplateDeclaration } from '../../interfaces';
|
|
2
2
|
export declare class LocalWorkflowTemplateDeployer {
|
|
3
3
|
deployWorkflows(wtDeclaration: WorkflowTemplateDeclaration): Promise<void>;
|
|
4
|
-
deployWorkflowTemplate(workflow: WorkflowTemplate, existingWorkflows: WorkflowTemplate[]): Promise<
|
|
4
|
+
deployWorkflowTemplate(workflow: WorkflowTemplate, existingWorkflows: WorkflowTemplate[]): Promise<WorkflowTemplate>;
|
|
5
5
|
private createNewWorkflowTemplate;
|
|
6
6
|
private populateActionIds;
|
|
7
7
|
private updateWorkflowTemplate;
|
|
8
8
|
deleteWorkflowTemplates(wtDeclaration: WorkflowTemplateDeclaration): Promise<void>;
|
|
9
9
|
}
|
|
10
10
|
export declare function getWorkflowTemplateIdentifier(workflowKey: string): string;
|
|
11
|
-
export declare function getActionByIdentifier(identifier: string): Promise<
|
|
11
|
+
export declare function getActionByIdentifier(identifier: string): Promise<EventWorkflowActionDefinition>;
|
|
12
12
|
export declare class WorkflowTemplateDeployer {
|
|
13
13
|
deleteWorkflowTemplates(): Promise<void>;
|
|
14
14
|
listExistingWorkflowTemplates(): Promise<void>;
|