Skip to content

Commit a8a468d

Browse files
bumped to 2024.11.0 to fix package import + tests
1 parent 1e27254 commit a8a468d

File tree

7 files changed

+264
-166
lines changed

7 files changed

+264
-166
lines changed

EndtoEndTests.sh

Lines changed: 143 additions & 126 deletions
Large diffs are not rendered by default.

idm.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,11 +188,15 @@ function allRoles()
188188
async function resetPassword(userId,newPassword)
189189
{
190190
url=getApiUrl()+"/users/" + userId + "/resetPassword";
191+
192+
debug("URL: " + url);
191193
const base64Pw = Buffer.from(`${newPassword}`).toString('base64');
192194
var data={};
193195
data.password = base64Pw;
196+
debug("Post body: " + JSON.stringify(data));
194197
headers = setHeaders();
195198
response = await sync_rest.custom(url, undefined, undefined, timeout,data,undefined,"PUT", headers,true,false,undefined,undefined);
199+
debug("Response\n" + JSON.stringify(response));
196200
console.log(JSON.stringify({"response":response}));
197201
}
198202

@@ -207,7 +211,6 @@ async function createUser(firstName,lastName,email,username)
207211
data.username = username;
208212
headers = setHeaders();
209213
response = await sync_rest.custom(url, undefined, undefined, timeout,data,undefined,"POST", headers,true,false,undefined,undefined);
210-
//console.log(response);
211214
console.log(JSON.stringify({"response":response}));
212215
}
213216

package-lock.json

Lines changed: 25 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@
2424
},
2525
"homepage": "https://github.com/dpembo/wmiocli#readme",
2626
"devDependencies": {
27-
"commander": "^8.3.0"
27+
"commander": "^12.1.0"
2828
},
2929
"dependencies": {
3030
"formdata-node": "^6.0.3",
31-
"https-proxy-agent": "^7.0.4",
31+
"https-proxy-agent": "^7.0.5",
3232
"log4js": "^6.9.1",
3333
"node-fetch": "^3.3.2",
3434
"readline-sync": "^1.4.10",

projects.js

Lines changed: 61 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,20 @@ $ node wmiocli.js
6464
-p password
6565
project-delete fl65d3aa87fc1783ea5cf8c8
6666
67+
\x1b[32mExport Project:\x1b[0m
68+
$ node wmiocli.js
69+
-d tenant.int-aws-us.webmethods.io
70+
-u user
71+
-p password
72+
project-export fl65d3aa87fc1783ea5cf8c8 myproject.zip
73+
74+
\x1b[32mImport Project:\x1b[0m
75+
$ node wmiocli.js
76+
-d tenant.int-aws-us.webmethods.io
77+
-u user
78+
-p password
79+
project-export myproject.zip MyNewProjectName
80+
6781
\x1b[32mGet Project Assets:\x1b[0m
6882
$ node wmiocli.js
6983
-d tenant.int-aws-us.webmethods.io
@@ -233,6 +247,32 @@ function processResponse(restEndPointUrl, err, data, response) {
233247
}
234248
}
235249

250+
function downloadCompleted(data,status,filename){
251+
debug("Download Completed");
252+
if(status!=0){
253+
console.log('{');
254+
console.log(' project-export":"error", "filename":"'+ filename +',');
255+
console.log(JSON.stringifydata);
256+
console.log('}');
257+
process.exit(status);
258+
}
259+
else{
260+
console.log('{"project-export":"success", "filename":"'+ filename + '"}');
261+
}
262+
}
263+
264+
function downloadExport(restEndPointUrl, err, data, response,filename){
265+
let status = response.status
266+
debug("Downloading Export");
267+
if(status!=200){
268+
console.log(JSON.stringify(data));
269+
process.exit(status);
270+
}
271+
else{
272+
request.downloadFile(data, filename, downloadCompleted);
273+
}
274+
}
275+
236276
/* reference data */
237277
function listRefData(projectId){
238278
debug("List Reference Data - Project [" + projectId + "]");
@@ -392,11 +432,29 @@ function setWebhookAuth(projectId, workflowUid, authType) {
392432
request.post(url, username, password, timeout, data, processResponse);
393433
}
394434

395-
function exportProj(projectId){
435+
436+
function exportProj(projectId, filename){
396437
debug("Exporting Project [" + projectId + "]");
397438
url += "/" + projectId + "/export";
398439
data = undefined;
399-
request.post(url, username, password, timeout, data, processResponse);
440+
441+
if(filename){
442+
request.postDownloadFile(url,username,password,timeout,data,filename,downloadExport);
443+
} else {
444+
request.post(url, username, password, timeout, data, processResponse);
445+
}
446+
}
447+
448+
function importProj(filename,newProjectName) {
449+
debug("Importing Project");
450+
url="https://" + domainName + "/apis/v1/rest/project-import";
451+
452+
var data=undefined;
453+
if(newProjectName){
454+
data={};
455+
data.new_project_name = newProjectName;
456+
}
457+
request.postUploadFile(url, username, password, timeout,data, filename,"project", processResponse);
400458
}
401459

402460

@@ -465,5 +523,5 @@ module.exports = {
465523
listWebhooks, regenWebhook, setWebhookAuth,
466524
listTriggers, deleteTrigger,
467525
listRefData, getRefData, addRefData, updateRefData, deleteRefData,
468-
exportProj
526+
exportProj,importProj
469527
};

rest-fetch.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,4 +426,4 @@ function isJSONObject(obj) {
426426

427427

428428
module.exports = { custom, addCookieToJar, displayCookies, addAllCookies, get, getPlain, post, put, del, httpDelete, postDownloadFile,downloadFile,postUploadFile };
429-
//get, getPlain, post, put, del, postDownloadFile, postUploadFile,uploadFileFormData, downloadFile, httpDelete,
429+

wmiocli.js

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* Apache-2.0
55
*/
66

7-
const versionNo = "2023.3.0"
7+
const versionNo = "2024.11.0"
88
const { Command, Option } = require('commander');
99
const { exit } = require('process');
1010
const readline = require('readline-sync');
@@ -423,14 +423,20 @@ program.command('project-triggers-delete <project-id> <trigger-id>')
423423
project.deleteRefData(projectId,refDataName);
424424
});
425425

426+
program.command('project-export <project-id> [filename]')
427+
.description('Exports a project')
428+
.action((projectId,filename) => {
429+
checkOptions();
430+
project.init(tenantDomain, tenantUser, tenantPw, program.opts().timeout, program.opts().prettyprint)
431+
project.exportProj(projectId,filename);
432+
});
426433

427-
428-
program.command('project-export <project-id>')
434+
program.command('project-import <filename> [new-project-name]')
429435
.description('Exports a project')
430-
.action((projectId) => {
436+
.action((filename,newProjectName) => {
431437
checkOptions();
432438
project.init(tenantDomain, tenantUser, tenantPw, program.opts().timeout, program.opts().prettyprint)
433-
project.exportProj(projectId);
439+
project.importProj(filename,newProjectName);
434440
});
435441

436442
/**
@@ -753,13 +759,13 @@ program.command('idm-roles')
753759
idm.allRoles();
754760
});
755761

756-
program.command('idm-user-create <first-name> <last-name> <email> <username>')
762+
program.command('idm-user-create <first-name> <last-name> <email> <username> [password]')
757763
.description('Creates a new user in the IDM')
758-
.action(async (firstName,lastName,email,username) => {
764+
.action(async (firstName,lastName,email,username,password) => {
759765
checkOptions();
760766
try {
761767
await idm.init(tenantDomain, tenantUser, tenantPw, program.opts().timeout, program.opts().prettyprint);
762-
idm.createUser(firstName, lastName, email, username);
768+
idm.createUser(firstName, lastName, email, username,password);
763769
}
764770
catch (error) {
765771
console.error("Error:", error);
@@ -805,6 +811,20 @@ program.command('idm-user-unlock <user-id>')
805811
}
806812
});
807813

814+
program.command('idm-user-reset-password <user-id> <new-password>')
815+
.description('Unlocks a user')
816+
.action(async (userId,newPassword) => {
817+
checkOptions();
818+
try {
819+
await idm.init(tenantDomain, tenantUser, tenantPw, program.opts().timeout, program.opts().prettyprint);
820+
idm.resetPassword(userId,newPassword);
821+
}
822+
catch (error) {
823+
console.error("Error:", error);
824+
}
825+
});
826+
827+
808828

809829
/**
810830
* ------------------------------------------------------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)