Socket
Socket
Sign inDemoInstall

apigeetool

Package Overview
Dependencies
Maintainers
0
Versions
44
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

apigeetool - npm Package Compare versions

Comparing version 0.16.4 to 0.16.5

lib/commands/createApp.js

1

lib/commands/addEntryToKVM.js

@@ -41,2 +41,3 @@ /* jshint node: true */

module.exports.run = function(opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {

@@ -43,0 +44,0 @@ console.log('addEntryToKVM: %j', opts);

42

lib/commands/assignUserRole.js
/* jshint node: true */
'use strict';
"use strict";
const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var descriptor = defaults.defaultDescriptor({
roleName: {
name: 'Role Name',
name: "Role Name",
required: true,

@@ -16,3 +16,3 @@ prompt: true

email: {
name: 'Developer email',
name: "Developer email",
required: true,

@@ -25,17 +25,23 @@ prompt: true

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('assignUserRole: %j', opts);
console.log("assignUserRole: %j", opts);
}
let body = util.format('id=%s', encodeURIComponent(opts.email));
let uri = util.format('%s/v1/o/%s/userroles/%s/users', opts.baseuri, opts.organization, opts.roleName);
let body = util.format("id=%s", encodeURIComponent(opts.email));
let uri = util.format(
"%s/v1/o/%s/userroles/%s/users",
opts.baseuri,
opts.organization,
opts.roleName
);
let requestOptions = {
uri,
method:'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body,
json:true
};
command_utils.run('assignUserRole', opts,requestOptions, cb);
uri,
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body,
json: true
};
command_utils.run("assignUserRole", opts, requestOptions, cb);
};

@@ -31,2 +31,3 @@ /* jshint node: true */

module.exports.run = function(opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {

@@ -33,0 +34,0 @@ console.log('attachFlowHook: %j', opts);

const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
command_utils = require('./command-utils');

@@ -22,2 +23,3 @@

module.exports.run = function(opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {

@@ -24,0 +26,0 @@ console.log('clearCache: %j', opts);

@@ -1,222 +0,223 @@

const Table = require('cli-table');
const options = require('../options');
const Table = require("cli-table");
const options = require("../options");
const Commands = {
attachFlowHook: {
description: 'Attach a Shared Flow to a Flow Hook',
load: () => require('./attachFlowHook')
description: "Attach a Shared Flow to a Flow Hook",
load: () => require("./attachFlowHook")
},
detachFlowHook: {
description: 'Detach a Shared Flow from a Flow Hook',
load: () => require('./detachFlowHook')
description: "Detach a Shared Flow from a Flow Hook",
load: () => require("./detachFlowHook")
},
getFlowHook: {
description: 'Get the Shared Flow attached to a Flow Hook',
load: () => require('./getFlowHook')
description: "Get the Shared Flow attached to a Flow Hook",
load: () => require("./getFlowHook")
},
createTargetServer: {
description: 'Create a Target Server',
load: () => require('./createTargetServer')
description: "Create a Target Server",
load: () => require("./createTargetServer")
},
deleteTargetServer: {
description: 'Delete a Target Server',
load: () => require('./deleteTargetServer')
description: "Delete a Target Server",
load: () => require("./deleteTargetServer")
},
getTargetServer: {
description: 'Get a Target Server',
load: () => require('./getTargetServer')
description: "Get a Target Server",
load: () => require("./getTargetServer")
},
listTargetServers: {
description: 'List Target Servers',
load: () => require('./listTargetServers')
description: "List Target Servers",
load: () => require("./listTargetServers")
},
updateTargetServer: {
description: 'Update a Target Server',
load: () => require('./updateTargetServer')
description: "Update a Target Server",
load: () => require("./updateTargetServer")
},
listProxies: {
description: 'List Proxies',
load: () => require('./listProxies')
description: "List Proxies",
load: () => require("./listProxies")
},
listSharedflows: {
description: 'List Shared Flows',
load: () => require('./listSharedflows')
description: "List Shared Flows",
load: () => require("./listSharedflows")
},
createkvmmap: {
description: 'Create a KVM map',
load: () => require('./createKVM')
createKVMmap: {
description: "Create a KVM map",
load: () => require("./createKVMmap")
},
addEntryToKVM: {
description: 'Add an entry to a KVM map',
load: () => require('./addEntryToKVM')
description: "Add an entry to a KVM map",
load: () => require("./addEntryToKVM")
},
getKVMentry: {
description: 'Get an unencrypted KVM entry',
load: () => require('./getKVMentry')
description: "Get an unencrypted KVM entry",
load: () => require("./getKVMentry")
},
updateKVMEntry: {
description: "Updates an entry in a KVM map",
load: () => require('./updateKVMentry')
load: () => require("./updateKVMentry")
},
getkvmmap: {
description: 'Get a KVM map',
load: () => require('./getKVMmap')
getKVMmap: {
description: "Get a KVM map",
load: () => require("./getKVMmap")
},
deleteKVMentry: {
description: 'Delete a single KVM entry',
load: () => require('./deleteKVMentry')
description: "Delete a single KVM entry",
load: () => require("./deleteKVMentry")
},
deletekvmmap: {
description: 'Delete an entire KVM map',
load: () => require('./deleteKVM')
deleteKVMmap: {
description: "Delete an entire KVM map",
load: () => require("./deleteKVMmap")
},
deployproxy: {
description: 'Deploy API Proxy',
load: () => require('./deployProxy')
deployProxy: {
description: "Deploy API Proxy",
load: () => require("./deployProxy")
},
deploynodeapp: {
description: 'Deploy Node.js Application',
load: () => require('./deployNodeApp')
deployNodeApp: {
description: "Deploy Node.js Application",
load: () => require("./deployNodeApp")
},
deployhostedtarget: {
description: 'Deploy application as a Hosted Target proxy',
load: () => require('./deployHostedTarget')
deployHostedTarget: {
description: "Deploy application as a Hosted Target proxy",
load: () => require("./deployHostedTarget")
},
listdeployments: {
description: 'List Deployments',
load: () => require('./listDeployments')
listDeployments: {
description: "List Deployments",
load: () => require("./listDeployments")
},
undeploy: {
description: 'Undeploy Proxy or Node.js Application',
load: () => require('./undeploy')
description: "Undeploy Proxy or Node.js Application",
load: () => require("./undeploy")
},
fetchproxy: {
description: 'Download Proxy bundle',
load: () => require('./fetchProxy')
fetchProxy: {
description: "Download Proxy bundle",
load: () => require("./fetchProxy")
},
getlogs: {
description: 'Get Application logs',
load: () => require('./getlogs')
description: "Get Application logs",
load: () => require("./getlogs")
},
delete: {
description: 'Delete undeployed Proxy or Node.js Application',
load: () => require('./delete')
description: "Delete undeployed Proxy or Node.js Application",
load: () => require("./delete")
},
createCache: {
description: 'Create a new Cache Resource in the environment',
load: () => require('./createCache')
description: "Create a new Cache Resource in the environment",
load: () => require("./createCache")
},
getCache: {
description: 'Get a KVM map',
load: () => require('./getCache')
description: "Get a KVM map",
load: () => require("./getCache")
},
deleteCache: {
description: 'Deletes a Cache Resource in the environment',
load: () => require('./deleteCache')
description: "Deletes a Cache Resource in the environment",
load: () => require("./deleteCache")
},
listCaches: {
description: 'Lists Cache Resources in the environment',
load: () => require('./listCaches')
description: "Lists Cache Resources in the environment",
load: () => require("./listCaches")
},
clearCache: {
description: 'Clears the entries in a named Cache Resource in the environment',
load: () => require('./clearCache')
description:
"Clears the entries in a named Cache Resource in the environment",
load: () => require("./clearCache")
},
createProduct: {
description: 'Create a new API Product',
load: () => require('./createProduct')
description: "Create a new API Product",
load: () => require("./createProduct")
},
deleteProduct: {
description: 'Delete a API Product',
load: () => require('./deleteProduct')
description: "Delete a API Product",
load: () => require("./deleteProduct")
},
createDeveloper: {
description: 'Create a new Developer',
load: () => require('./createDeveloper')
description: "Create a new Developer",
load: () => require("./createDeveloper")
},
deleteDeveloper: {
description: 'Delete a Developer',
load: () => require('./deleteDeveloper')
description: "Delete a Developer",
load: () => require("./deleteDeveloper")
},
createApp: {
description: 'Create a new App',
load: () => require('./createApp')
description: "Create a new App",
load: () => require("./createApp")
},
createAppKey: {
description: 'Create a new App',
load: () => require('./createAppKey')
description: "Create a new App",
load: () => require("./createAppKey")
},
deleteApp: {
description: 'Delete a App',
load: () => require('./deleteApp')
description: "Delete a App",
load: () => require("./deleteApp")
},
deploySharedflow: {
description: 'Deploy SharedFlow',
load: () => require('./deploySharedflow')
description: "Deploy SharedFlow",
load: () => require("./deploySharedflow")
},
undeploySharedflow: {
description: "Undeploy SharedFlow",
load: () => require('./undeploySharedflow')
load: () => require("./undeploySharedflow")
},
fetchSharedflow: {
description: "Download SharedFlow bundle",
load: () => require('./fetchSharedflow')
load: () => require("./fetchSharedflow")
},
listSharedflowDeployments: {
description: "List SharedFlow deployments",
load: () => require('./listSharedflowDeployments')
load: () => require("./listSharedflowDeployments")
},
deleteSharedflow: {
description: "Delete undeployed SharedFlow",
load: () => require('./deleteSharedflow')
load: () => require("./deleteSharedflow")
},
deployExistingRevision: {
description: "Deploy an existing revision to an environment",
load: () => require('./deployExistingRevision')
load: () => require("./deployExistingRevision")
},
listRoles: {
description: "List roles in an organziation",
load: () => require('./listRoles')
load: () => require("./listRoles")
},
createRole: {
description: "Create a userrole in an organziation",
load: () => require('./createRole')
load: () => require("./createRole")
},
getRole: {
description: "Get a userrole in an organziation",
load: () => require('./getRole')
load: () => require("./getRole")
},
deleteRole: {
description: "Delete a userrole in an organziation",
load: () => require('./deleteRole')
load: () => require("./deleteRole")
},
getRolePermissions: {
description: "Get resource permissions for a role",
load: () => require('./getRolePermissions')
load: () => require("./getRolePermissions")
},
setRolePermissions: {
description: "Set resource permissions for a role",
load: () => require('./setRolePermissions')
load: () => require("./setRolePermissions")
},
assignUserRole: {
description: "Assign user to a role",
load: () => require('./assignUserRole')
load: () => require("./assignUserRole")
},
removeUserRole: {
description: "Remove user from a role",
load: () => require('./removeUserRole')
load: () => require("./removeUserRole")
},
verifyUserRole: {
description: "Verify a user is in a role",
load: () => require('./verifyUserRole')
load: () => require("./verifyUserRole")
},
listRoleUsers: {
description: "List users in role",
load: () => require('./listRoleUsers')
load: () => require("./listRoleUsers")
}
};
module.exports.printCommandHelp = function() {
module.exports.printCommandHelp = function () {
console.error();
console.error('Valid commands:');
console.error("Valid commands:");

@@ -227,3 +228,3 @@ let tab = new Table(options.TableFormat);

.sort()
.forEach(key => {
.forEach((key) => {
tab.push([key, Commands[key].description]);

@@ -235,7 +236,8 @@ });

module.exports.getCommand = function(n) {
let commandKey = Object.keys(Commands)
.find(key => key.toLowerCase() === n.toLowerCase());
module.exports.getCommand = function (n) {
let commandKey = Object.keys(Commands).find(
(key) => key.toLowerCase() === n.toLowerCase()
);
return Commands[commandKey];
};
/* jshint node: true */
'use strict';
"use strict";
const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var descriptor = defaults.defaultDescriptor({
roleName: {
name: 'Role Name',
name: "Role Name",
required: true,

@@ -19,20 +19,23 @@ prompt: true

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('createRole: %j', opts);
console.log("createRole: %j", opts);
}
var payload = {
"role" : [
{"name" : opts.roleName}
]
var payload = {
role: [{ name: opts.roleName }]
};
let uri = util.format('%s/v1/o/%s/userroles', opts.baseuri, opts.organization);
let uri = util.format(
"%s/v1/o/%s/userroles",
opts.baseuri,
opts.organization
);
let requestOptions = {
uri,
method:'POST',
method: "POST",
body: payload,
json:true
};
command_utils.run('createRole', opts, requestOptions, cb);
json: true
};
command_utils.run("createRole", opts, requestOptions, cb);
};

@@ -42,2 +42,3 @@ /* jshint node: true */

module.exports.run = function(opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {

@@ -44,0 +45,0 @@ console.log('createTargetServer: %j', opts);

/* jshint node: true */
'use strict';
"use strict";
// this only works if the proxy/app has already been undeployed
const util = require('util'),
path = require('path'),
async = require('async'),
fs = require('fs'),
defaults = require('../defaults'),
options = require('../options'),
parseDeployments = require('./parsedeployments');
const util = require("util"),
path = require("path"),
async = require("async"),
fs = require("fs"),
defaults = require("../defaults"),
options = require("../options"),
parseDeployments = require("./parseDeployments");

@@ -29,4 +29,4 @@ /*

api: {
name: 'API Name',
shortOption: 'n',
name: "API Name",
shortOption: "n",
required: true

@@ -37,14 +37,14 @@ }

module.exports.format = function(r) {
module.exports.format = function (r) {
if (r.name) {
return parseDeployments.formatDeployment(r);
} else {
return '';
return "";
}
};
module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('undeploy: %j', opts);
console.log("undeploy: %j", opts);
}

@@ -55,13 +55,13 @@

// Run each function in series, and collect an array of results.
doDelete(opts, request, function(err, results) {
if (err) {
cb(err);
} else {
if (opts.debug) {
console.log('results: %j', results);
}
doDelete(opts, request, function (err, results) {
if (err) {
cb(err);
} else {
if (opts.debug) {
console.log("results: %j", results);
}
cb(undefined, {});
}
});
cb(undefined, {});
}
});
};

@@ -71,42 +71,55 @@

if (opts.verbose) {
console.log('Deleting %s', opts.api);
console.log("Deleting %s", opts.api);
}
var uri = util.format('%s/v1/o/%s/apis/%s', opts.baseuri, opts.organization, opts.api);
var uri = util.format(
"%s/v1/o/%s/apis/%s",
opts.baseuri,
opts.organization,
opts.api
);
if (opts.debug) {
console.log('Going to send DELETE to %s', uri);
console.log("Going to send DELETE to %s", uri);
}
request({
uri: uri,
method: 'DELETE',
json: false,
headers: { 'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json' }
}, function(err, req, body) {
var jsonBody = (body ? JSON.parse(body) : null);
if (err) {
done(err);
} else if (req.statusCode === 200) {
if (opts.verbose) {
console.log('Delete successful');
request(
{
uri: uri,
method: "DELETE",
json: false,
headers: {
"Content-Type": "application/x-www-form-urlencoded",
Accept: "application/json"
}
if (opts.debug) {
console.log('%s', body);
}
done(undefined, jsonBody);
} else {
if (opts.verbose) {
console.error('Delete result: %j', body);
}
},
function (err, req, body) {
var jsonBody = body ? JSON.parse(body) : null;
if (err) {
done(err);
} else if (req.statusCode === 200) {
if (opts.verbose) {
console.log("Delete successful");
}
if (opts.debug) {
console.log("%s", body);
}
done(undefined, jsonBody);
} else {
if (opts.verbose) {
console.error("Delete result: %j", body);
}
var errMsg;
if (jsonBody && (jsonBody.message)) {
errMsg = jsonBody.message;
} else {
errMsg = util.format('Delete failed with status code %d', req.statusCode);
var errMsg;
if (jsonBody && jsonBody.message) {
errMsg = jsonBody.message;
} else {
errMsg = util.format(
"Delete failed with status code %d",
req.statusCode
);
}
done(new Error(errMsg));
}
done(new Error(errMsg));
}
});
);
}

@@ -26,3 +26,3 @@ /* jshint node: true */

if (opts.debug) {
console.log('deletecache: %j', opts);
console.log('deleteCache: %j', opts);
}

@@ -29,0 +29,0 @@ var request = defaults.defaultRequest(opts);

/* jshint node: true */
'use strict';
"use strict";
var util = require('util');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var defaults = require('../defaults');
var command_utils = require('./command-utils')
var descriptor = defaults.defaultDescriptor({
environment: {
name: 'Environment',
shortOption: 'e',
name: "Environment",
shortOption: "e",
required: false
},
api: {
name: 'API',
shortOption: 'n',
name: "API",
shortOption: "n",
required: false
},
mapName:{
name:'Map Name',
mapName: {
name: "Map Name",
required: true,

@@ -26,3 +26,3 @@ prompt: true

entryName: {
name:'Entry Name',
name: "Entry Name",
required: true,

@@ -35,22 +35,43 @@ prompt: true

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('deleteKVMentry: %j', opts);
}
var uri = util.format('%s/v1/o/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.mapName, opts.entryName);
console.log("deleteKVMentry: %j", opts);
}
var uri = util.format(
"%s/v1/o/%s/keyvaluemaps/%s/entries/%s",
opts.baseuri,
opts.organization,
opts.mapName,
opts.entryName
);
if (opts.api) {
uri = util.format('%s/v1/o/%s/apis/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.api, opts.mapName, opts.entryName);
uri = util.format(
"%s/v1/o/%s/apis/%s/keyvaluemaps/%s/entries/%s",
opts.baseuri,
opts.organization,
opts.api,
opts.mapName,
opts.entryName
);
}
if (opts.environment) {
uri = util.format('%s/v1/o/%s/e/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.environment, opts.mapName, opts.entryName);
uri = util.format(
"%s/v1/o/%s/e/%s/keyvaluemaps/%s/entries/%s",
opts.baseuri,
opts.organization,
opts.environment,
opts.mapName,
opts.entryName
);
}
var requestOpts = {
uri: uri,
method:'DELETE'
}
command_utils.run('deleteKVMentry',opts, requestOpts, cb)
var requestOpts = {
uri: uri,
method: "DELETE"
};
command_utils.run("deleteKVMentry", opts, requestOpts, cb);
};
/* jshint node: true */
'use strict';
"use strict";
const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var descriptor = defaults.defaultDescriptor({
roleName: {
name: 'Role Name',
name: "Role Name",
required: true,

@@ -19,14 +19,19 @@ prompt: true

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('deleteRole: %j', opts);
console.log("deleteRole: %j", opts);
}
let uri = util.format('%s/v1/o/%s/userroles/%s',
opts.baseuri, opts.organization, opts.roleName);
let uri = util.format(
"%s/v1/o/%s/userroles/%s",
opts.baseuri,
opts.organization,
opts.roleName
);
let requestOptions = {
uri,
method:'DELETE',
json:true
};
command_utils.run('deleteRole', opts, requestOptions, cb);
uri,
method: "DELETE",
json: true
};
command_utils.run("deleteRole", opts, requestOptions, cb);
};

@@ -1,9 +0,10 @@

const util = require('util'),
defaults = require('../defaults'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var descriptor = defaults.defaultDescriptor({
environment: {
name: 'Environment',
shortOption: 'e',
name: "Environment",
shortOption: "e",
required: true,

@@ -13,3 +14,3 @@ prompt: true

targetServerName: {
name: 'Target Server Name',
name: "Target Server Name",
required: true,

@@ -22,14 +23,20 @@ prompt: true

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('deleteTargetServer: %j', opts);
console.log("deleteTargetServer: %j", opts);
}
let uri = util.format('%s/v1/o/%s/e/%s/targetservers/%s',
opts.baseuri, opts.organization, opts.environment,opts.targetServerName);
let uri = util.format(
"%s/v1/o/%s/e/%s/targetservers/%s",
opts.baseuri,
opts.organization,
opts.environment,
opts.targetServerName
);
let requestOptions = {
uri,
method:'DELETE',
json:true
};
command_utils.run('deleteTargetServer', opts, requestOptions, cb);
uri,
method: "DELETE",
json: true
};
command_utils.run("deleteTargetServer", opts, requestOptions, cb);
};

@@ -8,3 +8,3 @@ /* jshint node: true */

options = require('../options'),
parseDeployments = require('./parsedeployments');
parseDeployments = require('./parseDeployments');

@@ -11,0 +11,0 @@ const DeploymentDelay = 60;

@@ -1,68 +0,68 @@

const util = require('util'),
path = require('path'),
async = require('async'),
fs = require('fs-extra'),
mustache = require('mustache'),
tmp = require('tmp');
const util = require("util"),
path = require("path"),
async = require("async"),
fs = require("fs-extra"),
mustache = require("mustache"),
tmp = require("tmp");
tmp.setGracefulCleanup();
const defaults = require('../defaults'),
options = require('../options'),
ziputils = require('../ziputils'),
parseDeployments = require('./parsedeployments'),
fetchProxy = require('./fetchProxy'),
deployProxy1 = require('./deployProxy'),
createApiProxy = require('../deploycommon').createApiProxy,
createProxy = require('../deploycommon').createProxy,
deployProxy2 = require('../deploycommon').deployProxy,
unzipProxy = require('../deploycommon').unzipProxy,
copyFile = require('../deploycommon').copyFile,
handleUploadResult = require('../deploycommon').handleUploadResult,
usePackedSource = require('../deploycommon').usePackedSource,
uploadSource = require('../deploycommon').uploadSource;
const defaults = require("../defaults"),
options = require("../options"),
ziputils = require("../ziputils"),
parseDeployments = require("./parseDeployments"),
fetchProxy = require("./fetchProxy"),
deployProxy1 = require("./deployProxy"),
createApiProxy = require("../deploycommon").createApiProxy,
createProxy = require("../deploycommon").createProxy,
deployProxy2 = require("../deploycommon").deployProxy,
unzipProxy = require("../deploycommon").unzipProxy,
copyFile = require("../deploycommon").copyFile,
handleUploadResult = require("../deploycommon").handleUploadResult,
usePackedSource = require("../deploycommon").usePackedSource,
uploadSource = require("../deploycommon").uploadSource;
const APP_YAML = 'app.yaml';
const APP_YAML = "app.yaml";
var descriptor = defaults.defaultDescriptor({
api: {
name: 'API Name',
shortOption: 'n',
name: "API Name",
shortOption: "n",
required: true
},
environments: {
name: 'Environments',
shortOption: 'e',
name: "Environments",
shortOption: "e",
required: true
},
directory: {
name: 'Directory',
shortOption: 'd',
name: "Directory",
shortOption: "d",
required: false
},
virtualhosts: {
name: 'Virtual Hosts',
shortOption: 'v'
name: "Virtual Hosts",
shortOption: "v"
},
'base-path': {
name: 'Base Path',
shortOption: 'b'
"base-path": {
name: "Base Path",
shortOption: "b"
},
'import-only': {
name: 'Import Only',
shortOption: 'i',
"import-only": {
name: "Import Only",
shortOption: "i",
toggle: true
},
'preserve-policies': {
name: 'Preserve policies from previous revision',
shortOption: 'P',
"preserve-policies": {
name: "Preserve policies from previous revision",
shortOption: "P",
toggle: true
},
'bundled-dependencies' : {
name: 'Upload dependencies from bundledDependencies',
"bundled-dependencies": {
name: "Upload dependencies from bundledDependencies",
toggle: true
},
'upload-modules': {
name: 'Upload Modules',
shortOption: 'U',
"upload-modules": {
name: "Upload Modules",
shortOption: "U",
toggle: true

@@ -73,5 +73,5 @@ }

module.exports.format = function(r) {
var result = '';
r.forEach(function(e) {
module.exports.format = function (r) {
var result = "";
r.forEach(function (e) {
result = result + parseDeployments.formatDeployment(e);

@@ -82,3 +82,3 @@ });

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
if (!opts.directory) {

@@ -91,8 +91,8 @@ opts.directory = process.cwd();

if (opts.debug) {
console.log('deployhostedtarget: %j', opts);
console.log("deployhostedtarget: %j", opts);
}
try {
fs.statSync(path.join(opts.directory, APP_YAML))
} catch(err) {
fs.statSync(path.join(opts.directory, APP_YAML));
} catch (err) {
return cb(new Error("missing required 'app.yaml'"));

@@ -103,7 +103,9 @@ }

getDeploymentInfo(opts, request, function(err) {
if (err) { return cb(err); }
getDeploymentInfo(opts, request, function (err) {
if (err) {
return cb(err);
}
// if preserve-policies, we do something entirely different...
if (opts['preserve-policies'] && opts.deploymentVersion > 1) {
if (opts["preserve-policies"] && opts.deploymentVersion > 1) {
return preservePoliciesRun(opts, cb);

@@ -113,3 +115,3 @@ }

opts.remoteNpm = true;
if (opts['upload-modules'] && (opts['upload-modules'] === true)) {
if (opts["upload-modules"] && opts["upload-modules"] === true) {
opts.remoteNpm = false;

@@ -119,60 +121,68 @@ }

var steps = [
function(done) {
function (done) {
createApiProxy(opts, request, done);
}
]
];
if (opts['bundled-dependencies']) {
if (opts["bundled-dependencies"]) {
opts.remoteNpm = false;
steps.push(function(done) {
usePackedSource(opts.directory, opts, function(err, packedDirectory) {
steps.push(function (done) {
usePackedSource(opts.directory, opts, function (err, packedDirectory) {
// set the target directory to upload to the packed directory
opts.directory = packedDirectory
opts.directory = packedDirectory;
return done(err);
});
})
});
}
steps = steps.concat([
function(done) {
uploadSource(opts.directory, 'hosted', opts, request, done);
function (done) {
uploadSource(opts.directory, "hosted", opts, request, done);
},
function(done) {
function (done) {
createTarget(opts, request, done);
},
function(done) {
function (done) {
createProxy(opts, request, done);
},
function(done) {
function (done) {
deployProxy2(opts, request, done);
}
])
]);
// Run each function in series, and collect an array of results.
async.series(steps,
function(err, results) {
if (err) { return cb(err); }
if (opts.debug) { console.log('results: %j', results); }
async.series(steps, function (err, results) {
if (err) {
return cb(err);
}
if (opts.debug) {
console.log("results: %j", results);
}
async.map(Object.values(results[results.length - 1]),
function(result, cb) {
async.map(
Object.values(results[results.length - 1]),
function (result, cb) {
if (opts.debug) {
console.log("result: %j", result);
}
if (opts.debug) { console.log('result: %j', result); }
var deployment = parseDeployments.parseDeploymentResult(result);
if (deployment) {
// Look up the deployed URI for user-friendliness
parseDeployments.getPathInfo([ deployment ], opts, function(err) {
// Ignore this error because deployment worked
if (err && opts.verbose) { console.log('Error looking up deployed path: %s', err); }
cb(undefined, deployment);
});
} else {
// Probably import-only -- do nothing
cb(undefined, {});
}
},
cb);
});
var deployment = parseDeployments.parseDeploymentResult(result);
if (deployment) {
// Look up the deployed URI for user-friendliness
parseDeployments.getPathInfo([deployment], opts, function (err) {
// Ignore this error because deployment worked
if (err && opts.verbose) {
console.log("Error looking up deployed path: %s", err);
}
cb(undefined, deployment);
});
} else {
// Probably import-only -- do nothing
cb(undefined, {});
}
},
cb
);
});
});

@@ -182,6 +192,7 @@ };

function preservePoliciesRun(opts, cb) {
// download the proxy to a temporary zip file
tmp.file(function(err, fetchedProxyZip) {
if (err) { return cb(err); }
tmp.file(function (err, fetchedProxyZip) {
if (err) {
return cb(err);
}

@@ -191,17 +202,27 @@ opts.revision = opts.deploymentVersion - 1;

if (opts.verbose) { console.log('Downloading proxy %s revision %d', opts.name, opts.revision); }
fetchProxy.run(opts, function(err) {
if (err) { return cb(err); }
if (opts.verbose) {
console.log("Downloading proxy %s revision %d", opts.name, opts.revision);
}
fetchProxy.run(opts, function (err) {
if (err) {
return cb(err);
}
// set up temporary project dir
tmp.dir({ unsafeCleanup: false }, function(err, tmpDir) {
if (err) { return cb(err); }
tmp.dir({ unsafeCleanup: false }, function (err, tmpDir) {
if (err) {
return cb(err);
}
unzipProxy(opts, tmpDir, 'apiproxy/resources/hosted', function(err) {
if (err) { return cb(err); }
unzipProxy(opts, tmpDir, "apiproxy/resources/hosted", function (err) {
if (err) {
return cb(err);
}
// copy hosted files to tmpDir hosted directory
var sourcesDir = path.resolve(tmpDir, 'apiproxy/resources/hosted');
copySources(opts, sourcesDir, function(err) {
if (err) { return cb(err); }
var sourcesDir = path.resolve(tmpDir, "apiproxy/resources/hosted");
copySources(opts, sourcesDir, function (err) {
if (err) {
return cb(err);
}

@@ -219,35 +240,56 @@ // deploy proxy at tmpDir

function copySources(opts, targetDir, cb) {
if (opts.verbose) {
console.log("Copying sources into proxy");
}
if (opts.verbose) { console.log('Copying sources into proxy'); }
// Get a list of entries, broken down by which are directories
ziputils.enumerateDirectory(opts.directory, 'hosted', opts.remoteNpm, function(err, entries) {
if (err) { return cb(err); }
ziputils.enumerateDirectory(
opts.directory,
"hosted",
opts.remoteNpm,
function (err, entries) {
if (err) {
return cb(err);
}
if (opts.debug) { console.log('Directories to copy: %j', entries); }
if (opts.debug) {
console.log("Directories to copy: %j", entries);
}
function copyResource(entry, done) {
function copyResource(entry, done) {
if (entry.directory) {
// ZIP up all directories, possibly with additional file prefixes
if (opts.verbose) {
console.log("Zipping: %s", entry.fileName);
}
ziputils.zipDirectory(
entry.fileName,
entry.zipEntryName,
function (err, zipBuf) {
if (err) {
return done(err);
}
if (entry.directory) {
// ZIP up all directories, possibly with additional file prefixes
if (opts.verbose) { console.log('Zipping: %s', entry.fileName); }
ziputils.zipDirectory(entry.fileName, entry.zipEntryName, function(err, zipBuf) {
if (err) { return done(err); }
// write zipBuf -> file
var zipFileName = path.resolve(targetDir, entry.resourceName);
// write zipBuf -> file
var zipFileName = path.resolve(targetDir, entry.resourceName);
if (opts.verbose) {
console.log("Writing zip file: %s", zipFileName);
}
fs.writeFile(zipFileName, zipBuf, done);
}
);
} else {
// entry.file
var targetFileName = path.resolve(targetDir, entry.resourceName);
if (opts.verbose) {
console.log("copy %s %s", entry.fileName, targetDir);
}
copyFile(entry.fileName, targetFileName, done);
}
}
if (opts.verbose) { console.log('Writing zip file: %s', zipFileName); }
fs.writeFile(zipFileName, zipBuf, done);
});
} else { // entry.file
var targetFileName = path.resolve(targetDir, entry.resourceName);
if (opts.verbose) { console.log('copy %s %s', entry.fileName, targetDir); }
copyFile(entry.fileName, targetFileName, done);
}
async.each(entries, copyResource, cb);
}
async.each(entries, copyResource, cb);
});
);
}

@@ -261,9 +303,18 @@

} catch (e) {
done(new Error(util.format('Proxy base directory %s does not exist',
opts.directory)));
done(
new Error(
util.format("Proxy base directory %s does not exist", opts.directory)
)
);
return;
}
if (!ds.isDirectory()) {
done(new Error(util.format('Proxy base directory %s is not a directory',
opts.directory)));
done(
new Error(
util.format(
"Proxy base directory %s is not a directory",
opts.directory
)
)
);
return;

@@ -273,5 +324,10 @@ }

// Find out which revision we should be creating
request.get(util.format('%s/v1/o/%s/apis/%s',
opts.baseuri, opts.organization, opts.api),
function(err, req, body) {
request.get(
util.format(
"%s/v1/o/%s/apis/%s",
opts.baseuri,
opts.organization,
opts.api
),
function (err, req, body) {
if (err) {

@@ -283,4 +339,6 @@ done(err);

if (opts.verbose) {
console.log('API %s does not exist. Going to create revision 1',
opts.api);
console.log(
"API %s does not exist. Going to create revision 1",
opts.api
);
}

@@ -292,14 +350,22 @@ done();

body.revision
.map(v => parseInt(v))
.reduce((a, b) => ((a>b)?a:b), 0) + 1;
.map((v) => parseInt(v))
.reduce((a, b) => (a > b ? a : b), 0) + 1;
if (opts.verbose) {
console.log('Going to create revision %d of API %s',
opts.deploymentVersion, opts.api);
console.log(
"Going to create revision %d of API %s",
opts.deploymentVersion,
opts.api
);
}
done();
} else {
done(new Error(util.format('Get API info returned status %d', req.statusCode)));
done(
new Error(
util.format("Get API info returned status %d", req.statusCode)
)
);
}
});
}
);
}

@@ -311,23 +377,32 @@

'<TargetEndpoint name="default">' +
'<PreFlow name="PreFlow"/>' +
'<PostFlow name="PostFlow"/>' +
'<HostedTarget/>' +
'</TargetEndpoint>', opts);
'<PreFlow name="PreFlow"/>' +
'<PostFlow name="PostFlow"/>' +
"<HostedTarget/>" +
"</TargetEndpoint>",
opts
);
var uri = util.format('%s/v1/o/%s/apis/%s/revisions/%d/targets?name=default',
opts.baseuri, opts.organization, opts.api,
opts.deploymentVersion);
var uri = util.format(
"%s/v1/o/%s/apis/%s/revisions/%d/targets?name=default",
opts.baseuri,
opts.organization,
opts.api,
opts.deploymentVersion
);
if (opts.verbose) {
console.log('Creating the target endpoint');
console.log("Creating the target endpoint");
}
request({
uri: uri,
method: 'POST',
json: false,
headers: { 'Content-Type': 'application/xml' },
body: targetDoc
}, function(err, req, body) {
handleUploadResult(err, req, 'targets/default.xml', done);
});
request(
{
uri: uri,
method: "POST",
json: false,
headers: { "Content-Type": "application/xml" },
body: targetDoc
},
function (err, req, body) {
handleUploadResult(err, req, "targets/default.xml", done);
}
);
}

@@ -1,29 +0,29 @@

const util = require('util'),
path = require('path'),
async = require('async'),
fs = require('fs'),
mustache = require('mustache'),
tmp = require('tmp');
const util = require("util"),
path = require("path"),
async = require("async"),
fs = require("fs"),
mustache = require("mustache"),
tmp = require("tmp");
tmp.setGracefulCleanup();
const defaults = require('../defaults'),
options = require('../options'),
ziputils = require('../ziputils'),
parseDeployments = require('./parsedeployments'),
fetchProxy = require('./fetchProxy'),
deployProxy1 = require('./deployProxy'),
createApiProxy = require('../deploycommon').createApiProxy,
createProxy = require('../deploycommon').createProxy,
deployProxy2 = require('../deploycommon').deployProxy,
unzipProxy = require('../deploycommon').unzipProxy,
copyFile = require('../deploycommon').copyFile,
handleUploadResult = require('../deploycommon').handleUploadResult,
usePackedSource = require('../deploycommon').usePackedSource,
uploadSource = require('../deploycommon').uploadSource;
const defaults = require("../defaults"),
options = require("../options"),
ziputils = require("../ziputils"),
parseDeployments = require("./parseDeployments"),
fetchProxy = require("./fetchProxy"),
deployProxy1 = require("./deployProxy"),
createApiProxy = require("../deploycommon").createApiProxy,
createProxy = require("../deploycommon").createProxy,
deployProxy2 = require("../deploycommon").deployProxy,
unzipProxy = require("../deploycommon").unzipProxy,
copyFile = require("../deploycommon").copyFile,
handleUploadResult = require("../deploycommon").handleUploadResult,
usePackedSource = require("../deploycommon").usePackedSource,
uploadSource = require("../deploycommon").uploadSource;
var cleanResults = require('../utils').cleanResults;
var cleanResults = require("../utils").cleanResults;
var DeploymentDelay = 60;
var ProxyBase = 'apiproxy';
var ProxyBase = "apiproxy";

@@ -35,60 +35,60 @@ // By default, do not run NPM remotely

api: {
name: 'API Name',
shortOption: 'n',
name: "API Name",
shortOption: "n",
required: false
},
environments: {
name: 'Environments',
shortOption: 'e',
name: "Environments",
shortOption: "e",
required: true
},
directory: {
name: 'Directory',
shortOption: 'd',
name: "Directory",
shortOption: "d",
required: false
},
main: {
name: 'Main Script',
shortOption: 'm',
name: "Main Script",
shortOption: "m",
required: false
},
virtualhosts: {
name: 'Virtual Hosts',
shortOption: 'v'
name: "Virtual Hosts",
shortOption: "v"
},
'base-path': {
name: 'Base Path',
shortOption: 'b'
"base-path": {
name: "Base Path",
shortOption: "b"
},
'import-only': {
name: 'Import Only',
shortOption: 'i',
"import-only": {
name: "Import Only",
shortOption: "i",
toggle: true
},
'resolve-modules': {
name: 'Resolve Modules',
shortOption: 'R',
"resolve-modules": {
name: "Resolve Modules",
shortOption: "R",
toggle: true
},
'bundled-dependencies' : {
name: 'Upload dependencies from bundledDependencies',
"bundled-dependencies": {
name: "Upload dependencies from bundledDependencies",
toggle: true
},
'upload-modules': {
name: 'Upload Modules',
shortOption: 'U',
"upload-modules": {
name: "Upload Modules",
shortOption: "U",
toggle: true
},
'preserve-policies': {
name: 'Preserve policies from previous revision',
shortOption: 'P',
"preserve-policies": {
name: "Preserve policies from previous revision",
shortOption: "P",
toggle: true
},
'wait-after-import': {
name: 'Wait N seconds after importing proxy before deploying',
shortOption: 'W',
"wait-after-import": {
name: "Wait N seconds after importing proxy before deploying",
shortOption: "W",
required: false
},
'production': {
name: 'Run resolve modules with npm install --production, default true',
production: {
name: "Run resolve modules with npm install --production, default true",
required: false

@@ -99,5 +99,5 @@ }

module.exports.format = function(r) {
var result = '';
r.forEach(function(e) {
module.exports.format = function (r) {
var result = "";
r.forEach(function (e) {
result = result + parseDeployments.formatDeployment(e);

@@ -108,10 +108,9 @@ });

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
// Setup Delay for after import if set
opts.waitAfterImportDelay = 0;
if (opts['wait-after-import'] !== undefined) {
opts.waitAfterImportDelay = parseInt(opts['wait-after-import']);
if (opts["wait-after-import"] !== undefined) {
opts.waitAfterImportDelay = parseInt(opts["wait-after-import"]);
if (isNaN(opts.waitAfterImportDelay)) {
console.error('invalid int for wait-after-import');
console.error("invalid int for wait-after-import");
process.exit(1);

@@ -126,4 +125,4 @@ }

try {
var packageFile = path.resolve(opts.directory, 'package.json');
var packageObj = JSON.parse(fs.readFileSync(packageFile, 'utf8'));
var packageFile = path.resolve(opts.directory, "package.json");
var packageObj = JSON.parse(fs.readFileSync(packageFile, "utf8"));
if (!opts.main) {

@@ -137,3 +136,3 @@ opts.main = packageObj.main;

if (opts.debug) {
console.error('unable to read package.json', err);
console.error("unable to read package.json", err);
}

@@ -146,3 +145,3 @@ }

if (opts.debug) {
console.log('deploynodeapp: %j', opts);
console.log("deploynodeapp: %j", opts);
}

@@ -152,7 +151,9 @@

getDeploymentInfo(opts, request, function(err) {
if (err) { return cb(err); }
getDeploymentInfo(opts, request, function (err) {
if (err) {
return cb(err);
}
// if preserve-policies, we do something entirely different...
if (opts['preserve-policies'] && opts.deploymentVersion > 1) {
if (opts["preserve-policies"] && opts.deploymentVersion > 1) {
return preservePoliciesRun(opts, cb);

@@ -162,70 +163,78 @@ }

var steps = [
function(done) {
function (done) {
createApiProxy(opts, request, done);
}
]
];
if (opts['bundled-dependencies']) {
if (opts["bundled-dependencies"]) {
opts.remoteNpm = false;
steps.push(function(done) {
usePackedSource(opts.directory, opts, function(err, packedDirectory) {
steps.push(function (done) {
usePackedSource(opts.directory, opts, function (err, packedDirectory) {
// set the target directory to upload to the packed directory
opts.directory = packedDirectory
opts.directory = packedDirectory;
return done(err);
});
})
});
}
steps = steps.concat([
function(done) {
uploadSource(opts.directory, 'node', opts, request, done);
function (done) {
uploadSource(opts.directory, "node", opts, request, done);
},
function(done) {
function (done) {
createTarget(opts, request, done);
},
function(done) {
function (done) {
createProxy(opts, request, done);
},
function(done) {
function (done) {
runNpm(opts, request, done);
},
function(done) {
function (done) {
deployProxy2(opts, request, done);
}
])
]);
// Run each function in series, and collect an array of results.
async.series(steps,
function(err, results) {
if (err) { return cb(err); }
async.series(steps, function (err, results) {
if (err) {
return cb(err);
}
results = cleanResults(results);
results = cleanResults(results);
if (opts.debug) { console.log('results: %j', results); }
if (opts.debug) {
console.log("results: %j", results);
}
if (opts['import-only']) {
return cb(undefined, results)
}
if (opts["import-only"]) {
return cb(undefined, results);
}
async.map(Object.values(results[results.length - 1]),
function(result, cb) {
async.map(
Object.values(results[results.length - 1]),
function (result, cb) {
if (opts.debug) {
console.log("result: %j", result);
}
if (opts.debug) { console.log('result: %j', result); }
var deployment = parseDeployments.parseDeploymentResult(result);
if (deployment) {
// Look up the deployed URI for user-friendliness
parseDeployments.getPathInfo([ deployment ], opts, function(err) {
// Ignore this error because deployment worked
if (err && opts.verbose) { console.log('Error looking up deployed path: %s', err); }
cb(undefined, deployment);
});
} else {
// Probably import-only -- do nothing
cb(undefined, {});
}
},
cb);
});
var deployment = parseDeployments.parseDeploymentResult(result);
if (deployment) {
// Look up the deployed URI for user-friendliness
parseDeployments.getPathInfo([deployment], opts, function (err) {
// Ignore this error because deployment worked
if (err && opts.verbose) {
console.log("Error looking up deployed path: %s", err);
}
cb(undefined, deployment);
});
} else {
// Probably import-only -- do nothing
cb(undefined, {});
}
},
cb
);
});
});

@@ -235,6 +244,7 @@ };

function preservePoliciesRun(opts, cb) {
// download the proxy to a temporary zip file
tmp.file(function(err, fetchedProxyZip) {
if (err) { return cb(err); }
tmp.file(function (err, fetchedProxyZip) {
if (err) {
return cb(err);
}

@@ -244,17 +254,27 @@ opts.revision = opts.deploymentVersion - 1;

if (opts.verbose) { console.log('Downloading proxy %s revision %d', opts.name, opts.revision); }
fetchProxy.run(opts, function(err) {
if (err) { return cb(err); }
if (opts.verbose) {
console.log("Downloading proxy %s revision %d", opts.name, opts.revision);
}
fetchProxy.run(opts, function (err) {
if (err) {
return cb(err);
}
// set up temporary project dir
tmp.dir({ unsafeCleanup: false }, function(err, tmpDir) {
if (err) { return cb(err); }
tmp.dir({ unsafeCleanup: false }, function (err, tmpDir) {
if (err) {
return cb(err);
}
unzipProxy(opts, tmpDir, 'apiproxy/resources/node', function(err) {
if (err) { return cb(err); }
unzipProxy(opts, tmpDir, "apiproxy/resources/node", function (err) {
if (err) {
return cb(err);
}
// copy node files to tmpDir node directory
var nodeResourceDir = path.resolve(tmpDir, 'apiproxy/resources/node');
copyNodeSource(opts, nodeResourceDir, function(err) {
if (err) { return cb(err); }
var nodeResourceDir = path.resolve(tmpDir, "apiproxy/resources/node");
copyNodeSource(opts, nodeResourceDir, function (err) {
if (err) {
return cb(err);
}

@@ -272,36 +292,57 @@ // deploy proxy at tmpDir

function copyNodeSource(opts, targetDir, cb) {
if (opts.verbose) {
console.log("Copying node source into proxy");
}
if (opts.verbose) { console.log('Copying node source into proxy'); }
// Get a list of entries, broken down by which are directories,
// and with special handling for the node_modules directory.
ziputils.enumerateDirectory(opts.directory, 'node', opts.remoteNpm, function(err, entries) {
if (err) { return cb(err); }
ziputils.enumerateDirectory(
opts.directory,
"node",
opts.remoteNpm,
function (err, entries) {
if (err) {
return cb(err);
}
if (opts.debug) { console.log('Directories to copy: %j', entries); }
if (opts.debug) {
console.log("Directories to copy: %j", entries);
}
function copyResource(entry, done) {
function copyResource(entry, done) {
if (entry.directory) {
// ZIP up all directories, possibly with additional file prefixes
if (opts.verbose) {
console.log("Zipping: %s", entry.fileName);
}
ziputils.zipDirectory(
entry.fileName,
entry.zipEntryName,
function (err, zipBuf) {
if (err) {
return done(err);
}
if (entry.directory) {
// ZIP up all directories, possibly with additional file prefixes
if (opts.verbose) { console.log('Zipping: %s', entry.fileName); }
ziputils.zipDirectory(entry.fileName, entry.zipEntryName, function(err, zipBuf) {
if (err) { return done(err); }
// write zipBuf -> file
var zipFileName = path.resolve(targetDir, entry.resourceName);
// write zipBuf -> file
var zipFileName = path.resolve(targetDir, entry.resourceName);
if (opts.verbose) {
console.log("Writing zip file: %s", zipFileName);
}
fs.writeFile(zipFileName, zipBuf, done);
}
);
} else {
// entry.file
var targetFileName = path.resolve(targetDir, entry.resourceName);
if (opts.verbose) {
console.log("copy %s %s", entry.fileName, targetDir);
}
copyFile(entry.fileName, targetFileName, done);
}
}
if (opts.verbose) { console.log('Writing zip file: %s', zipFileName); }
fs.writeFile(zipFileName, zipBuf, done);
});
} else { // entry.file
var targetFileName = path.resolve(targetDir, entry.resourceName);
if (opts.verbose) { console.log('copy %s %s', entry.fileName, targetDir); }
copyFile(entry.fileName, targetFileName, done);
}
async.each(entries, copyResource, cb);
}
async.each(entries, copyResource, cb);
});
);
}

@@ -315,9 +356,18 @@

} catch (e) {
done(new Error(util.format('Proxy base directory %s does not exist',
opts.directory)));
done(
new Error(
util.format("Proxy base directory %s does not exist", opts.directory)
)
);
return;
}
if (!ds.isDirectory()) {
done(new Error(util.format('Proxy base directory %s is not a directory',
opts.directory)));
done(
new Error(
util.format(
"Proxy base directory %s is not a directory",
opts.directory
)
)
);
return;

@@ -331,9 +381,19 @@ }

if (!fs.existsSync(path.join(opts.directory, opts.main))) {
done(new Error(util.format('Main script file %s does not seem to exist', opts.main)));
done(
new Error(
util.format("Main script file %s does not seem to exist", opts.main)
)
);
return;
}
if (path.dirname(opts.main) !== '.') {
done(new Error(util.format('Main script file %s must be in the top level directory',
opts.main)));
return;
if (path.dirname(opts.main) !== ".") {
done(
new Error(
util.format(
"Main script file %s must be in the top level directory",
opts.main
)
)
);
return;
}

@@ -343,16 +403,21 @@

opts.remoteNpm = DefaultResolveModules;
if (opts['upload-modules'] && (opts['upload-modules'] === true)) {
if (opts["upload-modules"] && opts["upload-modules"] === true) {
opts.remoteNpm = false;
}
if (opts['resolve-modules'] && (opts['resolve-modules'] === true)) {
if (opts["resolve-modules"] && opts["resolve-modules"] === true) {
opts.remoteNpm = true;
}
if (opts.debug) {
console.log('Resolve NPM modules = %s', opts.remoteNpm);
console.log("Resolve NPM modules = %s", opts.remoteNpm);
}
// Find out which revision we should be creating
request.get(util.format('%s/v1/o/%s/apis/%s',
opts.baseuri, opts.organization, opts.api),
function(err, req, body) {
request.get(
util.format(
"%s/v1/o/%s/apis/%s",
opts.baseuri,
opts.organization,
opts.api
),
function (err, req, body) {
if (err) {

@@ -364,4 +429,6 @@ done(err);

if (opts.verbose) {
console.log('API %s does not exist. Going to create revision 1',
opts.api);
console.log(
"API %s does not exist. Going to create revision 1",
opts.api
);
}

@@ -373,14 +440,22 @@ done();

body.revision
.map(v => parseInt(v))
.reduce((a, b) => ((a>b)?a:b), 0) + 1;
.map((v) => parseInt(v))
.reduce((a, b) => (a > b ? a : b), 0) + 1;
if (opts.verbose) {
console.log('Going to create revision %d of API %s',
opts.deploymentVersion, opts.api);
console.log(
"Going to create revision %d of API %s",
opts.deploymentVersion,
opts.api
);
}
done();
} else {
done(new Error(util.format('Get API info returned status %d', req.statusCode)));
done(
new Error(
util.format("Get API info returned status %d", req.statusCode)
)
);
}
});
}
);
}

@@ -392,71 +467,97 @@

'<TargetEndpoint name="default">' +
'<PreFlow name="PreFlow"/>' +
'<PostFlow name="PostFlow"/>' +
'<ScriptTarget>' +
'<ResourceURL>node://{{main}}</ResourceURL>' +
'</ScriptTarget>' +
'</TargetEndpoint>', opts);
'<PreFlow name="PreFlow"/>' +
'<PostFlow name="PostFlow"/>' +
"<ScriptTarget>" +
"<ResourceURL>node://{{main}}</ResourceURL>" +
"</ScriptTarget>" +
"</TargetEndpoint>",
opts
);
var uri = util.format('%s/v1/o/%s/apis/%s/revisions/%d/targets?name=default',
opts.baseuri, opts.organization, opts.api,
opts.deploymentVersion);
var uri = util.format(
"%s/v1/o/%s/apis/%s/revisions/%d/targets?name=default",
opts.baseuri,
opts.organization,
opts.api,
opts.deploymentVersion
);
if (opts.verbose) {
console.log('Creating the target endpoint');
console.log("Creating the target endpoint");
}
request({
uri: uri,
method: 'POST',
json: false,
headers: { 'Content-Type': 'application/xml' },
body: targetDoc
}, function(err, req, body) {
handleUploadResult(err, req, 'targets/default.xml', done);
});
request(
{
uri: uri,
method: "POST",
json: false,
headers: { "Content-Type": "application/xml" },
body: targetDoc
},
function (err, req, body) {
handleUploadResult(err, req, "targets/default.xml", done);
}
);
}
function runNpm(opts, request, done) {
if (!opts.remoteNpm && !opts['bundled-dependencies']) {
if (!opts.remoteNpm && !opts["bundled-dependencies"]) {
done();
} else {
if (opts.verbose) {
console.log('Running "npm install" at Apigee. This may take several minutes.');
console.log(
'Running "npm install" at Apigee. This may take several minutes.'
);
}
var installURI = util.format('%s/v1/o/%s/apis/%s/revisions/%d/npm?command=install',
opts.baseuri, opts.organization, opts.api, opts.deploymentVersion)
var installURI = util.format(
"%s/v1/o/%s/apis/%s/revisions/%d/npm?command=install",
opts.baseuri,
opts.organization,
opts.api,
opts.deploymentVersion
);
if (opts.production === 'false') {
installURI = util.format("%s&production=false", installURI)
if (opts.production === "false") {
installURI = util.format("%s&production=false", installURI);
}
if (opts.debug) {
installURI = util.format("%s&verbose=true", installURI)
installURI = util.format("%s&verbose=true", installURI);
}
request({
uri: installURI,
method: 'POST',
headers: {
'Accept': 'text/plain'
request(
{
uri: installURI,
method: "POST",
headers: {
Accept: "text/plain"
},
json: false
},
json: false
}, function(err, req, body) {
if (err) {
done(err);
} else if (req.statusCode === 200) {
if (opts.verbose) {
console.log('NPM complete.');
console.log(body);
function (err, req, body) {
if (err) {
done(err);
} else if (req.statusCode === 200) {
if (opts.verbose) {
console.log("NPM complete.");
console.log(body);
}
done();
} else {
if (opts.verbose) {
console.log("NPM failed with %d", req.statusCode);
console.log(body);
}
done(
new Error(
util.format(
"NPM install failed with status code %d",
req.statusCode
)
)
);
}
done();
} else {
if (opts.verbose) {
console.log('NPM failed with %d', req.statusCode);
console.log(body);
}
done(new Error(util.format('NPM install failed with status code %d', req.statusCode)));
}
});
);
}
}
/* jshint node: true */
'use strict';
"use strict";
const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var descriptor = defaults.defaultDescriptor({
environment: {
name: 'Environment',
shortOption: 'e',
name: "Environment",
shortOption: "e",
required: true,

@@ -17,3 +17,3 @@ prompt: true

flowHookName: {
name: 'One of: PreProxyFlowHook\n PreTargetFlowHook\n PostTargetFlowHook\n PostProxyFlowHook',
name: "One of: PreProxyFlowHook\n PreTargetFlowHook\n PostTargetFlowHook\n PostProxyFlowHook",
required: true,

@@ -26,15 +26,21 @@ prompt: true

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('detachFlowHook: %j', opts);
console.log("detachFlowHook: %j", opts);
}
let uri = util.format('%s/v1/o/%s/e/%s/flowhooks/%s',
opts.baseuri, opts.organization, opts.environment, opts.flowHookName);
let uri = util.format(
"%s/v1/o/%s/e/%s/flowhooks/%s",
opts.baseuri,
opts.organization,
opts.environment,
opts.flowHookName
);
let requestOpts = {
uri,
method:'DELETE',
json:true
};
command_utils.run('detachFlowHook',opts, requestOpts, cb);
uri,
method: "DELETE",
json: true
};
command_utils.run("detachFlowHook", opts, requestOpts, cb);
};
const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
command_utils = require('./command-utils');

@@ -22,2 +23,3 @@

module.exports.run = function(opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {

@@ -24,0 +26,0 @@ console.log('getCache: %j', opts);

/* jshint node: true */
'use strict';
"use strict";
const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var descriptor = defaults.defaultDescriptor({
environment: {
name: 'Environment',
shortOption: 'e',
name: "Environment",
shortOption: "e",
required: true,

@@ -17,3 +17,3 @@ prompt: true

flowHookName: {
name: 'One of: PreProxyFlowHook\n PreTargetFlowHook\n PostTargetFlowHook\n PostProxyFlowHook',
name: "One of: PreProxyFlowHook\n PreTargetFlowHook\n PostTargetFlowHook\n PostProxyFlowHook",
required: true,

@@ -26,5 +26,6 @@ prompt: true

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('getFlowHook: %j', opts);
console.log("getFlowHook: %j", opts);
}

@@ -35,9 +36,15 @@ // if(opts.targetSSL){

let uri = util.format('%s/v1/o/%s/e/%s/flowhooks/%s', opts.baseuri, opts.organization, opts.environment, opts.flowHookName);
let uri = util.format(
"%s/v1/o/%s/e/%s/flowhooks/%s",
opts.baseuri,
opts.organization,
opts.environment,
opts.flowHookName
);
let requestOpts = {
uri,
method:'GET',
json:true
};
command_utils.run('getFlowHook', opts, requestOpts, cb);
method: "GET",
json: true
};
command_utils.run("getFlowHook", opts, requestOpts, cb);
};
/* jshint node: true */
'use strict';
"use strict";
var util = require('util');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var defaults = require('../defaults');
var command_utils = require('./command-utils')
var descriptor = defaults.defaultDescriptor({
environment: {
name: 'Environment',
shortOption: 'e',
name: "Environment",
shortOption: "e",
required: false
},
api: {
name: 'API',
shortOption: 'n',
name: "API",
shortOption: "n",
required: false
},
mapName:{
name:'Map Name',
mapName: {
name: "Map Name",
required: true,

@@ -26,7 +26,6 @@ prompt: true

entryName: {
name:'Entry Name',
name: "Entry Name",
required: true,
prompt: true
}
});

@@ -36,22 +35,43 @@

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('getKVMentry: %j', opts);
console.log("getKVMentry: %j", opts);
}
var uri = util.format('%s/v1/o/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.mapName, opts.entryName);
var uri = util.format(
"%s/v1/o/%s/keyvaluemaps/%s/entries/%s",
opts.baseuri,
opts.organization,
opts.mapName,
opts.entryName
);
if (opts.api) {
uri = util.format('%s/v1/o/%s/apis/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.api, opts.mapName, opts.entryName);
uri = util.format(
"%s/v1/o/%s/apis/%s/keyvaluemaps/%s/entries/%s",
opts.baseuri,
opts.organization,
opts.api,
opts.mapName,
opts.entryName
);
}
if (opts.environment) {
uri = util.format('%s/v1/o/%s/e/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.environment, opts.mapName, opts.entryName);
uri = util.format(
"%s/v1/o/%s/e/%s/keyvaluemaps/%s/entries/%s",
opts.baseuri,
opts.organization,
opts.environment,
opts.mapName,
opts.entryName
);
}
var requestOpts = {
uri: uri,
method:'GET'
}
command_utils.run('getKVMentry',opts, requestOpts, cb)
var requestOpts = {
uri: uri,
method: "GET"
};
command_utils.run("getKVMentry", opts, requestOpts, cb);
};
/* jshint node: true */
'use strict';
"use strict";
const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var descriptor = defaults.defaultDescriptor({
roleName: {
name: 'Role Name',
name: "Role Name",
required: true,

@@ -19,14 +19,19 @@ prompt: true

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('getRole: %j', opts);
console.log("getRole: %j", opts);
}
let uri = util.format('%s/v1/o/%s/userroles/%s',
opts.baseuri, opts.organization, opts.roleName);
let uri = util.format(
"%s/v1/o/%s/userroles/%s",
opts.baseuri,
opts.organization,
opts.roleName
);
let requestOptions = {
uri,
method:'GET',
json:true
};
command_utils.run('getRole', opts, requestOptions, cb);
uri,
method: "GET",
json: true
};
command_utils.run("getRole", opts, requestOptions, cb);
};
/* jshint node: true */
'use strict';
"use strict";
const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var descriptor = defaults.defaultDescriptor({
roleName: {
name: 'Role Name',
name: "Role Name",
required: true,

@@ -19,14 +19,19 @@ prompt: true

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('getRolePermissions: %j', opts);
console.log("getRolePermissions: %j", opts);
}
let uri = util.format('%s/v1/o/%s/userroles/%s/permissions',
opts.baseuri, opts.organization, opts.roleName);
let uri = util.format(
"%s/v1/o/%s/userroles/%s/permissions",
opts.baseuri,
opts.organization,
opts.roleName
);
let requestOptions = {
uri,
method:'GET',
json:true
};
command_utils.run('getRolePermissions', opts, requestOptions, cb);
uri,
method: "GET",
json: true
};
command_utils.run("getRolePermissions", opts, requestOptions, cb);
};
const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
command_utils = require('./command-utils');

@@ -23,2 +24,3 @@

module.exports.run = function(opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {

@@ -25,0 +27,0 @@ console.log('getTargetServer: %j', opts);

@@ -1,9 +0,10 @@

const util = require('util'),
defaults = require('../defaults'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var descriptor = defaults.defaultDescriptor({
environment: {
name: 'Environment',
shortOption: 'e',
name: "Environment",
shortOption: "e",
required: true,

@@ -16,14 +17,19 @@ prompt: true

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('listCaches: %j', opts);
console.log("listCaches: %j", opts);
}
var uri = util.format('%s/v1/o/%s/e/%s/caches',
opts.baseuri, opts.organization, opts.environment);
var uri = util.format(
"%s/v1/o/%s/e/%s/caches",
opts.baseuri,
opts.organization,
opts.environment
);
let requestOptions = {
uri,
method: 'GET',
json: true
};
command_utils.run('listCaches', opts, requestOptions, cb);
uri,
method: "GET",
json: true
};
command_utils.run("listCaches", opts, requestOptions, cb);
};

@@ -1,22 +0,22 @@

const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
parseDeployments = require('./parsedeployments');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
parseDeployments = require("./parseDeployments");
var descriptor = defaults.defaultDescriptor({
api: {
name: 'API Name',
shortOption: 'n'
name: "API Name",
shortOption: "n"
},
environment: {
name: 'Environment',
shortOption: 'e'
name: "Environment",
shortOption: "e"
},
revision: {
name: 'Revision',
shortOption: 'r'
name: "Revision",
shortOption: "r"
},
long: {
name: 'Long',
shortOption: 'l',
name: "Long",
shortOption: "l",
toggle: true

@@ -27,8 +27,9 @@ }

module.exports.format = function(r) {
return r.deployments.map( d => parseDeployments.formatDeployment(d))
.join('\n');
module.exports.format = function (r) {
return r.deployments
.map((d) => parseDeployments.formatDeployment(d))
.join("\n");
};
module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
var uri;

@@ -39,17 +40,23 @@ var parser;

if (opts.debug) {
console.log('listdeployments: %j', opts);
console.log("listdeployments: %j", opts);
}
if (opts.api && !opts.environment) {
uri = util.format('%s/v1/o/%s/apis/%s/deployments',
opts.baseuri, opts.organization, opts.api);
uri = util.format(
"%s/v1/o/%s/apis/%s/deployments",
opts.baseuri,
opts.organization,
opts.api
);
parser = parseAPIBody;
} else if (opts.environment && !opts.api) {
uri = util.format('%s/v1/o/%s/e/%s/deployments',
opts.baseuri, opts.organization, opts.environment);
uri = util.format(
"%s/v1/o/%s/e/%s/deployments",
opts.baseuri,
opts.organization,
opts.environment
);
parser = parseEnvironmentBody;
} else if (opts.environment && opts.api) {
cb(new Error('Can\'t specify both API and environment options'));
cb(new Error("Can't specify both API and environment options"));
return;

@@ -66,3 +73,3 @@ } else {

}
request.get(uri, function(err, req, body) {
request.get(uri, function (err, req, body) {
if (err) {

@@ -73,12 +80,16 @@ cb(err);

if (opts.debug) {
console.log('List of deployed APIs: %j', body);
console.log("List of deployed APIs: %j", body);
}
var result = parser(body);
if (opts.long) {
parseDeployments.getPathInfo(result.deployments, opts, function(err) {
cb(err, result);
});
parseDeployments.getPathInfo(
result.deployments,
opts,
function (err) {
cb(err, result);
}
);
} else {
if (opts.debug) {
console.log('All done');
console.log("All done");
}

@@ -88,3 +99,3 @@ cb(undefined, result);

} else {
cb(new Error(util.format('HTTP error %d', req.statusCode)));
cb(new Error(util.format("HTTP error %d", req.statusCode)));
}

@@ -91,0 +102,0 @@ }

@@ -1,21 +0,20 @@

const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
parseDeployments = require('./parsedeployments');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options");
const descriptor = defaults.defaultDescriptor({ });
const descriptor = defaults.defaultDescriptor({});
module.exports.descriptor = descriptor;
module.exports.format = function(r) {
return r.join('\n');
module.exports.format = function (r) {
return r.join("\n");
};
module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('listproxies: %j', opts);
console.log("listproxies: %j", opts);
}
let uri = util.format('%s/v1/o/%s/apis', opts.baseuri, opts.organization);
let uri = util.format("%s/v1/o/%s/apis", opts.baseuri, opts.organization);
let request = defaults.defaultRequest(opts);

@@ -25,3 +24,3 @@ if (opts.debug) {

}
request.get(uri, function(err, req, body) {
request.get(uri, function (err, req, body) {
if (err) {

@@ -32,10 +31,10 @@ cb(err);

if (opts.debug) {
console.log('List of APIs: %j', body);
console.log("List of APIs: %j", body);
}
if (opts.debug) {
console.log('All done');
console.log("All done");
}
cb(undefined, body);
} else {
cb(new Error(util.format('HTTP error %d', req.statusCode)));
cb(new Error(util.format("HTTP error %d", req.statusCode)));
}

@@ -42,0 +41,0 @@ }

/* jshint node: true */
'use strict';
"use strict";
const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
command_utils = require("./command-utils");

@@ -13,13 +12,17 @@ var descriptor = defaults.defaultDescriptor({});

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
if (opts.debug) {
console.log('listRoles: %j', opts);
console.log("listRoles: %j", opts);
}
let uri = util.format('%s/v1/o/%s/userroles', opts.baseuri, opts.organization);
let uri = util.format(
"%s/v1/o/%s/userroles",
opts.baseuri,
opts.organization
);
let requestOptions = {
uri,
method:'GET',
json:true
};
command_utils.run('listRoles', opts,requestOptions, cb);
uri,
method: "GET",
json: true
};
command_utils.run("listRoles", opts, requestOptions, cb);
};
/* jshint node: true */
'use strict';
"use strict";
const util = require('util'),
defaults = require('../defaults'),
//options = require('../options'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
let descriptor = defaults.defaultDescriptor({
roleName: {
name: 'Role Name',
name: "Role Name",
required: true,

@@ -19,14 +19,20 @@ prompt: true

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('getRoleUsers: %j', opts);
console.log("getRoleUsers: %j", opts);
}
let uri = util.format('%s/v1/o/%s/userroles/%s/users', opts.baseuri, opts.organization, opts.roleName);
let uri = util.format(
"%s/v1/o/%s/userroles/%s/users",
opts.baseuri,
opts.organization,
opts.roleName
);
let requestOptions = {
uri,
method:'GET',
json:true
};
command_utils.run('getRoleUsers', opts, requestOptions, cb);
uri,
method: "GET",
json: true
};
command_utils.run("getRoleUsers", opts, requestOptions, cb);
};
/* jshint node: true */
'use strict';
"use strict";
const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
parseDeployments = require('./parsedeployments');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
parseDeployments = require("./parseDeployments");
const descriptor = defaults.defaultDescriptor({ });
const descriptor = defaults.defaultDescriptor({});
module.exports.descriptor = descriptor;
module.exports.format = function(r) {
return r.join('\n');
module.exports.format = function (r) {
return r.join("\n");
};
module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('listsharedflows: %j', opts);
console.log("listsharedflows: %j", opts);
}
let uri = util.format('%s/v1/o/%s/sharedflows', opts.baseuri, opts.organization);
let uri = util.format(
"%s/v1/o/%s/sharedflows",
opts.baseuri,
opts.organization
);
let request = defaults.defaultRequest(opts);

@@ -28,3 +32,3 @@ if (opts.debug) {

}
request.get(uri, function(err, req, body) {
request.get(uri, function (err, req, body) {
if (err) {

@@ -35,10 +39,10 @@ cb(err);

if (opts.debug) {
console.log('List of sharedflows: %j', body);
console.log("List of sharedflows: %j", body);
}
if (opts.debug) {
console.log('All done');
console.log("All done");
}
cb(undefined, body);
} else {
cb(new Error(util.format('HTTP error %d', req.statusCode)));
cb(new Error(util.format("HTTP error %d", req.statusCode)));
}

@@ -45,0 +49,0 @@ }

@@ -1,9 +0,10 @@

const util = require('util'),
defaults = require('../defaults'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var descriptor = defaults.defaultDescriptor({
environment: {
name: 'Environment',
shortOption: 'e',
name: "Environment",
shortOption: "e",
required: true,

@@ -16,13 +17,19 @@ prompt: true

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('listTargetServers: %j', opts);
console.log("listTargetServers: %j", opts);
}
let uri = util.format('%s/v1/o/%s/e/%s/targetservers', opts.baseuri, opts.organization, opts.environment);
let uri = util.format(
"%s/v1/o/%s/e/%s/targetservers",
opts.baseuri,
opts.organization,
opts.environment
);
let requestOptions = {
uri,
method:'GET',
json:true
};
command_utils.run('listTargetServers', opts, requestOptions, cb);
uri,
method: "GET",
json: true
};
command_utils.run("listTargetServers", opts, requestOptions, cb);
};
/* jshint node: true */
'use strict';
"use strict";
const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var descriptor = defaults.defaultDescriptor({
roleName: {
name: 'Role Name',
name: "Role Name",
required: true,

@@ -16,3 +16,3 @@ prompt: true

email: {
name: 'Developer email',
name: "Developer email",
required: true,

@@ -25,15 +25,21 @@ prompt: true

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('removeUserRole: %j', opts);
console.log("removeUserRole: %j", opts);
}
let uri = util.format('%s/v1/o/%s/userroles/%s/users/%s',
opts.baseuri, opts.organization, opts.roleName, opts.email );
let uri = util.format(
"%s/v1/o/%s/userroles/%s/users/%s",
opts.baseuri,
opts.organization,
opts.roleName,
opts.email
);
let requestOptions = {
uri,
method:'DELETE',
json:true
};
command_utils.run('removeUserRole', opts, requestOptions, cb);
uri,
method: "DELETE",
json: true
};
command_utils.run("removeUserRole", opts, requestOptions, cb);
};

@@ -25,2 +25,3 @@ /* jshint node: true */

module.exports.run = function(opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {

@@ -27,0 +28,0 @@ console.log('setRolePermissions: %j', opts);

/* jshint node: true */
'use strict';
"use strict";
const util = require('util'),
path = require('path'),
async = require('async'),
fs = require('fs'),
defaults = require('../defaults'),
options = require('../options'),
parseDeployments = require('./parsedeployments');
const util = require("util"),
async = require("async"),
defaults = require("../defaults"),
options = require("../options"),
parseDeployments = require("./parseDeployments");

@@ -36,14 +34,14 @@ /* From python apigeetool:

api: {
name: 'API Name',
shortOption: 'n',
name: "API Name",
shortOption: "n",
required: true
},
environment: {
name: 'Environment',
shortOption: 'e',
name: "Environment",
shortOption: "e",
required: true
},
revision: {
name: 'Revision',
shortOption: 'r',
name: "Revision",
shortOption: "r",
required: false

@@ -54,14 +52,14 @@ }

module.exports.format = function(r) {
module.exports.format = function (r) {
if (r.name) {
return parseDeployments.formatDeployment(r);
} else {
return '';
return "";
}
};
module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('undeploy: %j', opts);
console.log("undeploy: %j", opts);
}

@@ -72,11 +70,12 @@

// Run each function in series, and collect an array of results.
async.series([
function(done) {
getDeploymentInfo(opts, request, done);
},
function(done) {
undeploy(opts, request, done);
}
async.series(
[
function (done) {
getDeploymentInfo(opts, request, done);
},
function (done) {
undeploy(opts, request, done);
}
],
function(err, results) {
function (err, results) {
if (err) {

@@ -86,3 +85,3 @@ cb(err);

if (opts.debug) {
console.log('results: %j', results);
console.log("results: %j", results);
}

@@ -99,7 +98,7 @@

}
});
}
);
};
function getDeploymentInfo(opts, request, done) {
// Just undeploy what we said

@@ -113,5 +112,11 @@ if (opts.revision) {

// Find out which revision we should be undeploying
request.get(util.format('%s/v1/o/%s/environments/%s/apis/%s/deployments',
opts.baseuri, opts.organization, opts.environment, opts.api),
function(err, req, body) {
request.get(
util.format(
"%s/v1/o/%s/environments/%s/apis/%s/deployments",
opts.baseuri,
opts.organization,
opts.environment,
opts.api
),
function (err, req, body) {
if (err) {

@@ -121,18 +126,26 @@ done(err);

if (opts.verbose) {
console.log('API %s does not exist.', opts.api);
console.log("API %s does not exist.", opts.api);
}
done();
} else if (req.statusCode === 400) {
done(new Error(console.log(body.message)));
done(new Error(console.log(body.message)));
} else if (req.statusCode === 200) {
opts.deploymentVersion = parseInt(body.revision[0].name);
if (opts.verbose) {
console.log('Going to undeploy revision %d of API %s',
opts.deploymentVersion, opts.api);
console.log(
"Going to undeploy revision %d of API %s",
opts.deploymentVersion,
opts.api
);
}
done();
} else {
done(new Error(util.format('Get API info returned status %d', req.statusCode)));
done(
new Error(
util.format("Get API info returned status %d", req.statusCode)
)
);
}
});
}
);
}

@@ -142,55 +155,73 @@

if (opts.verbose) {
console.log('Undeploying revision %d of %s to %s', opts.deploymentVersion,
opts.api, opts.environment);
console.log(
"Undeploying revision %d of %s to %s",
opts.deploymentVersion,
opts.api,
opts.environment
);
}
var uri = util.format('%s/v1/o/%s/apis/%s/deployments',
opts.baseuri, opts.organization, opts.api);
var uri = util.format(
"%s/v1/o/%s/apis/%s/deployments",
opts.baseuri,
opts.organization,
opts.api
);
if (opts.debug) {
console.log('Going to POST to %s', uri);
console.log("Going to POST to %s", uri);
}
var deployCmd = util.format('action=undeploy&revision=%d&env=%s',
opts.deploymentVersion, opts.environment);
if (opts['base-path']) {
deployCmd = util.format('%s&basepath=%s', deployCmd, opts['base-path']);
var deployCmd = util.format(
"action=undeploy&revision=%d&env=%s",
opts.deploymentVersion,
opts.environment
);
if (opts["base-path"]) {
deployCmd = util.format("%s&basepath=%s", deployCmd, opts["base-path"]);
}
if (opts.debug) {
console.log('Going go send command %s', deployCmd);
console.log("Going go send command %s", deployCmd);
}
request({
uri: uri,
method: 'POST',
json: false,
body: deployCmd,
headers: { 'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json' }
}, function(err, req, body) {
var jsonBody = (body ? JSON.parse(body) : null);
if (err) {
done(err);
} else if (req.statusCode === 200) {
if (opts.verbose) {
console.log('Undeployment successful');
request(
{
uri: uri,
method: "POST",
json: false,
body: deployCmd,
headers: {
"Content-Type": "application/x-www-form-urlencoded",
Accept: "application/json"
}
if (opts.debug) {
console.log('%s', body);
}
done(undefined, jsonBody);
} else {
if (opts.verbose) {
console.error('Undeployment result: %j', body);
}
},
function (err, req, body) {
var jsonBody = body ? JSON.parse(body) : null;
if (err) {
done(err);
} else if (req.statusCode === 200) {
if (opts.verbose) {
console.log("Undeployment successful");
}
if (opts.debug) {
console.log("%s", body);
}
done(undefined, jsonBody);
} else {
if (opts.verbose) {
console.error("Undeployment result: %j", body);
}
var errMsg;
if (jsonBody && (jsonBody.message)) {
errMsg = jsonBody.message;
} else {
errMsg = util.format('Undeployment failed with status code %d',
req.statusCode);
var errMsg;
if (jsonBody && jsonBody.message) {
errMsg = jsonBody.message;
} else {
errMsg = util.format(
"Undeployment failed with status code %d",
req.statusCode
);
}
done(new Error(errMsg));
}
done(new Error(errMsg));
}
});
);
}

@@ -1,18 +0,19 @@

const util = require('util'),
defaults = require('../defaults'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var descriptor = defaults.defaultDescriptor({
environment: {
name: 'Environment',
shortOption: 'e',
name: "Environment",
shortOption: "e",
required: false
},
api: {
name: 'API',
shortOption: 'n',
name: "API",
shortOption: "n",
required: false
},
mapName: {
name: 'Map Name',
name: "Map Name",
required: true,

@@ -22,7 +23,6 @@ prompt: true

entryName: {
name: 'Entry Name',
name: "Entry Name",
required: true,
prompt: true
}
});

@@ -33,26 +33,47 @@

module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('updateKVMentry: %j', opts);
console.log("updateKVMentry: %j", opts);
}
var uri = util.format('%s/v1/o/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.mapName, opts.entryName);
var uri = util.format(
"%s/v1/o/%s/keyvaluemaps/%s/entries/%s",
opts.baseuri,
opts.organization,
opts.mapName,
opts.entryName
);
var payload = {
name: opts.entryName,
value: opts.entryValue
};
name: opts.entryName,
value: opts.entryValue
};
if (opts.api) {
uri = util.format('%s/v1/o/%s/apis/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.api, opts.mapName, opts.entryName);
uri = util.format(
"%s/v1/o/%s/apis/%s/keyvaluemaps/%s/entries/%s",
opts.baseuri,
opts.organization,
opts.api,
opts.mapName,
opts.entryName
);
}
if (opts.environment) {
uri = util.format('%s/v1/o/%s/e/%s/keyvaluemaps/%s/entries/%s', opts.baseuri, opts.organization, opts.environment, opts.mapName, opts.entryName);
uri = util.format(
"%s/v1/o/%s/e/%s/keyvaluemaps/%s/entries/%s",
opts.baseuri,
opts.organization,
opts.environment,
opts.mapName,
opts.entryName
);
}
let requestOpts = {
uri,
method: 'POST',
body: payload,
};
command_utils.run('updateKVMentry', opts, requestOpts, cb);
uri,
method: "POST",
body: payload
};
command_utils.run("updateKVMentry", opts, requestOpts, cb);
};

@@ -1,35 +0,36 @@

const util = require('util'),
defaults = require('../defaults'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var descriptor = defaults.defaultDescriptor({
environments: {
name: 'Environments',
shortOption: 'e',
required: true,
prompt: true
},
targetServerName: {
name: 'Target Server Name',
shortOption: 'n',
required: true,
prompt: true
},
targetHost: {
name: 'Target Host',
/* required: true, */
prompt: true
},
targetEnabled: {
name: 'Target Enabled'
},
targetPort: {
name: 'Target Port',
/* required: true, */
prompt: true
},
targetSSL: {
name: 'SSL Info'
}
});
environments: {
name: "Environments",
shortOption: "e",
required: true,
prompt: true
},
targetServerName: {
name: "Target Server Name",
shortOption: "n",
required: true,
prompt: true
},
targetHost: {
name: "Target Host",
/* required: true, */
prompt: true
},
targetEnabled: {
name: "Target Enabled"
},
targetPort: {
name: "Target Port",
/* required: true, */
prompt: true
},
targetSSL: {
name: "SSL Info"
}
});

@@ -39,26 +40,36 @@ module.exports.descriptor = descriptor;

module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('updateTargetServer: %j', opts);
console.log("updateTargetServer: %j", opts);
}
let uri = util.format('%s/v1/organizations/%s/environments/%s/targetservers/%s',
opts.baseuri, opts.organization, opts.environments, opts.targetServerName);
let uri = util.format(
"%s/v1/organizations/%s/environments/%s/targetservers/%s",
opts.baseuri,
opts.organization,
opts.environments,
opts.targetServerName
);
let {targetHost, targetPort, targetEnabled} = opts;
let { targetHost, targetPort, targetEnabled } = opts;
let readTargetConfig =
function(cb) {
let requestOpts = {
uri,
method: 'GET',
json: true
};
command_utils.run('readTargetServerConfig', opts, requestOpts, (e, json) => {
let readTargetConfig = function (cb) {
let requestOpts = {
uri,
method: "GET",
json: true
};
command_utils.run(
"readTargetServerConfig",
opts,
requestOpts,
(e, json) => {
if (e) return cb(e);
// fill in any options not specified
if ( ! targetHost) targetHost = json.host;
if ( ! targetPort) targetPort = json.port;
if ( ! ('targetEnabled' in opts)) targetEnabled = json.isEnabled;
if (!targetHost) targetHost = json.host;
if (!targetPort) targetPort = json.port;
if (!("targetEnabled" in opts)) targetEnabled = json.isEnabled;
cb();
});
};
}
);
};

@@ -68,12 +79,15 @@ let noop = (cb) => cb();

// might need to retrieve the existing configuration
let prepFn = (!targetHost || !targetPort || !('targetEnabled' in opts)) ? readTargetConfig : noop;
let prepFn =
!targetHost || !targetPort || !("targetEnabled" in opts)
? readTargetConfig
: noop;
prepFn( e => {
prepFn((e) => {
if (e) return cb(e);
let payload = {
name: opts.targetServerName,
host: targetHost,
isEnabled: targetEnabled,
port: targetPort
};
name: opts.targetServerName,
host: targetHost,
isEnabled: targetEnabled,
port: targetPort
};

@@ -86,9 +100,9 @@ if (opts.targetSSL) {

let requestOpts = {
uri,
method: 'PUT',
body: payload,
json: true
};
command_utils.run('updateTargetServer', opts, requestOpts, cb);
uri,
method: "PUT",
body: payload,
json: true
};
command_utils.run("updateTargetServer", opts, requestOpts, cb);
});
};
/* jshint node: true */
'use strict';
"use strict";
const util = require('util'),
defaults = require('../defaults'),
options = require('../options'),
command_utils = require('./command-utils');
const util = require("util"),
defaults = require("../defaults"),
options = require("../options"),
command_utils = require("./command-utils");
var descriptor = defaults.defaultDescriptor({
roleName: {
name: 'Role Name',
name: "Role Name",
required: true,

@@ -16,3 +16,3 @@ prompt: true

email: {
name: 'EMail for the user',
name: "EMail for the user",
required: true,

@@ -25,15 +25,21 @@ prompt: true

module.exports.run = function(opts, cb) {
module.exports.run = function (opts, cb) {
options.validateSync(opts, descriptor);
if (opts.debug) {
console.log('verifyUserRole: %j', opts);
console.log("verifyUserRole: %j", opts);
}
let uri = util.format('%s/v1/o/%s/userroles/%s/users/%s',
opts.baseuri, opts.organization, opts.roleName, opts.email );
let uri = util.format(
"%s/v1/o/%s/userroles/%s/users/%s",
opts.baseuri,
opts.organization,
opts.roleName,
opts.email
);
let requestOptions = {
uri,
method:'GET',
json:true
};
command_utils.run('verifyUserRole', opts,requestOptions, cb);
uri,
method: "GET",
json: true
};
command_utils.run("verifyUserRole", opts, requestOptions, cb);
};
const fns = [
'listProxies', 'listSharedflows', 'listDeployments',
'undeploy', 'fetchProxy', 'deployProxy', 'delete',
'deployNodeApp', 'deployHostedTarget', 'getLogs',
'createCache', 'deleteCache', 'getCache', 'listCaches', 'clearCache',
'createProduct', 'deleteProduct',
'createDeveloper', 'deleteDeveloper',
'createApp', 'createAppKey', 'deleteApp',
'createTargetServer', 'getTargetServer', 'deleteTargetServer',
'listTargetServers', 'updateTargetServer',
'createKVM', 'deleteKVM', 'getKVMentry', 'getKVMmap',
'addEntryToKVM', 'deleteKVMentry', 'updateKVMentry',
'deploySharedflow', 'undeploySharedflow', 'fetchSharedflow',
'listSharedflowDeployments', 'deleteSharedflow',
'attachFlowHook', 'detachFlowHook', 'getFlowHook',
'listRoles', 'getRole', 'createRole', 'deleteRole',
'getRolePermissions', 'setRolePermissions',
'assignUserRole', 'removeUserRole', 'verifyUserRole', 'listRoleUsers'
];
"listProxies",
"listSharedflows",
"listDeployments",
"undeploy",
"fetchProxy",
"deployProxy",
"delete",
"deployNodeApp",
"deployHostedTarget",
"getLogs",
"createCache",
"deleteCache",
"getCache",
"listCaches",
"clearCache",
"createProduct",
"deleteProduct",
"createDeveloper",
"deleteDeveloper",
"createApp",
"createAppKey",
"deleteApp",
"createTargetServer",
"getTargetServer",
"deleteTargetServer",
"listTargetServers",
"updateTargetServer",
"createKVMmap",
"deleteKVMmap",
"getKVMentry",
"getKVMmap",
"addEntryToKVM",
"deleteKVMentry",
"updateKVMentry",
"deploySharedflow",
"undeploySharedflow",
"fetchSharedflow",
"listSharedflowDeployments",
"deleteSharedflow",
"attachFlowHook",
"detachFlowHook",
"getFlowHook",
"listRoles",
"getRole",
"createRole",
"deleteRole",
"getRolePermissions",
"setRolePermissions",
"assignUserRole",
"removeUserRole",
"verifyUserRole",
"listRoleUsers"
];
module.exports = fns;

@@ -1,3 +0,3 @@

const options = require('./options');
const fns = require('./fns');
const options = require("./options");
const fns = require("./fns");

@@ -7,3 +7,3 @@ var DefaultDefaults = {};

function runCommand(cmd, opts, cb) {
options.validate(opts, cmd.descriptor, e => {
options.validate(opts, cmd.descriptor, (e) => {
if (e) {

@@ -18,12 +18,13 @@ cb(e);

function ApigeeTool(defaults) {
this.defaults = (defaults ? defaults : DefaultDefaults);
this.defaults = defaults ? defaults : DefaultDefaults;
}
ApigeeTool.getPromiseSDK = () => require('./promisesdk');
ApigeeTool.getPromiseSDK = () => require("./promisesdk");
ApigeeTool.defaults = (newDefaults) => new ApigeeTool(newDefaults);
fns.forEach(fnName => {
ApigeeTool[fnName] = (opts, cb) => runCommand(require(`./commands/${fnName}`), opts, cb);
fns.forEach((fnName) => {
ApigeeTool[fnName] = (opts, cb) =>
runCommand(require(`./commands/${fnName}`), opts, cb);
});
module.exports = ApigeeTool;

@@ -1,3 +0,3 @@

const options = require('./options');
const fns = require('./fns');
const options = require("./options");
const fns = require("./fns");

@@ -7,4 +7,4 @@ var DefaultDefaults = {};

function runCommand(cmd, opts) {
return new Promise( (resolve, reject) => {
options.validate(opts, cmd.descriptor, e => {
return new Promise((resolve, reject) => {
options.validate(opts, cmd.descriptor, (e) => {
if (e) {

@@ -15,4 +15,7 @@ reject(e);

cmd.run(opts, (run_e, response) => {
if (run_e) { reject(run_e); }
else { resolve(response); }
if (run_e) {
reject(run_e);
} else {
resolve(response);
}
});

@@ -24,3 +27,3 @@ });

function ApigeeTool(defaults) {
this.defaults = (defaults ? defaults : DefaultDefaults);
this.defaults = defaults ? defaults : DefaultDefaults;
}

@@ -30,6 +33,7 @@

fns.forEach(fnName => {
ApigeeTool[fnName] = (opts) => runCommand(require(`./commands/${fnName}`), opts);
fns.forEach((fnName) => {
ApigeeTool[fnName] = (opts) =>
runCommand(require(`./commands/${fnName}`), opts);
});
module.exports = ApigeeTool;
{
"name": "apigeetool",
"version": "0.16.4",
"version": "0.16.5",
"description": "A CLI for Apigee Edge",

@@ -10,3 +10,5 @@ "main": "lib/main.js",

"scripts": {
"testcli": "jasmine --config=./test/config/test-cli",
"test": "jasmine --config=./test/config/test-all",
"test-verbose": "jasmine --config=./test/config/test-all --reporter=jasmine-console-reporter",
"remotetest": "mocha -R spec remotetests"

@@ -34,4 +36,4 @@ },

"node-unzip-2": "^0.2.7",
"postman-request": "^2.88.1-postman.33",
"read": "^1.0.7",
"postman-request": "^2.88.1-postman.33",
"tar-fs": "^2.1.1",

@@ -42,5 +44,6 @@ "tmp": "^0.0.27"

"connect": "^3.4.0",
"express": "^4.13.3",
"express": "^4.21.0",
"faker": "^5.5.3",
"jasmine": "^3.5.0",
"jasmine-console-reporter": "^3.1.0",
"lodash.find": "^4.6.0",

@@ -50,5 +53,9 @@ "mocha": "^10.0.0"

"engines": {
"node": ">= 12.22.0",
"node": ">= 16.13.1",
"npm": ">= 8.3.0"
},
"overrides": {
"braces": "3.0.3",
"path-to-regexp": "0.1.10"
},
"repository": {

@@ -55,0 +62,0 @@ "type": "git",

@@ -97,3 +97,3 @@ # apigeetool

(optional) Limit for the maximum number of operations performed concurrently.
Currently this only affects file uploads in the `deploynodeapp` command. Defaults to 4.
Currently this only affects file uploads in the `deployNodeApp` command. Defaults to 4.

@@ -126,16 +126,16 @@ `--json -j`

* [attachFlowHook](#attachFlowHook)
* [createappkey](#createappkey)
* [createapp](#createapp)
* [createcache](#createcache)
* [createdeveloper](#createdeveloper)
* [createKVMmap](#createKVMmap)
* [createAppKey](#createAppKey)
* [createApp](#createApp)
* [createCache](#createCache)
* [createDeveloper](#createDeveloper)
* [createKVM](#createKVM)
* [createProduct](#createproduct)
* [createRole](#createRole)
* [createTargetServer](#createTargetServer)
* [deleteapp](#deleteapp)
* [deletecache](#deletecache)
* [deletedeveloper](#deletedeveloper)
* [deleteApp](#deleteApp)
* [deleteCache](#deleteCache)
* [deleteDeveloper](#deleteDeveloper)
* [deleteKVMentry](#deleteKVMentry)
* [deleteKVMmap](#deleteKVMmap)
* [deleteproduct](#deleteproduct)
* [deleteProduct](#deleteProduct)
* [deleteRole](#deleteRole)

@@ -145,8 +145,8 @@ * [deleteSharedflow](#deleteSharedflow)

* [delete](#delete)
* [deployhostedtarget](#deployhostedtarget)
* [deploynodeapp](#deploynodeapp)
* [deployproxy](#deployproxy)
* [deployHostedTarget](#deployHostedTarget)
* [deployNodeApp](#deployNodeApp)
* [deployProxy](#deployProxy)
* [deploySharedflow](#deploySharedflow)
* [detachFlowHook](#detachFlowHook)
* [fetchproxy](#fetchproxy)
* [detachFlowHook](#detachFlowHook)
* [fetchProxy](#fetchProxy)
* [fetchSharedflow](#fetchSharedflow)

@@ -175,3 +175,3 @@ * [getFlowHook](#getFlowHook)

## <a name="deploynodeapp"></a>deploynodeapp
## <a name="deployNodeApp"></a>deployNodeApp

@@ -184,7 +184,7 @@ Deploys a Node.js app to Apigee Edge as an API proxy. With your Node.js app deployed to Edge, you can take advantage of Edge features like security, quotas, caching, analytics, trace tool, and more.

apigeetool deploynodeapp -u sdoe@apigee.com -o sdoe -e test -n 'Test Node App 2' -d . -m app.js -b /node2
apigeetool deployNodeApp -u sdoe@apigee.com -o sdoe -e test -n 'Test Node App 2' -d . -m app.js -b /node2
Deploys a Node.js app to both the default (HTTP) and secure (HTTPS) virtual hosts.
apigeetool deploynodeapp -u sdoe@apigee.com -o sdoe -e test -n 'Test Node App 2' -d . -m app.js -b /node2 -v default,secure
apigeetool deployNodeApp -u sdoe@apigee.com -o sdoe -e test -n 'Test Node App 2' -d . -m app.js -b /node2 -v default,secure

@@ -237,3 +237,3 @@ #### Required parameters

`--virtualhosts -v`
(optional) A comma-separated list of virtual hosts that the deployed app will use. The two most common options are `default` and `secure`. The `default` option is always HTTP and `secure` is always HTTPS. By default, `apigeetool deploynodeapp` uses `default,secure`.
(optional) A comma-separated list of virtual hosts that the deployed app will use. The two most common options are `default` and `secure`. The `default` option is always HTTP and `secure` is always HTTPS. By default, `apigeetool deployNodeApp` uses `default,secure`.

@@ -299,3 +299,3 @@ `--bundled-dependencies`

## <a name="deployproxy"></a>deployproxy
## <a name="deployProxy"></a>deployProxy

@@ -308,3 +308,3 @@ Deploys an API proxy to Apigee Edge. If the proxy is currently deployed, it will be undeployed first, and the newly deployed proxy's revision number is incremented.

apigeetool deployproxy -u sdoe@example.com -o sdoe -e test -n example-proxy -d .
apigeetool deployProxy -u sdoe@example.com -o sdoe -e test -n example-proxy -d .

@@ -453,6 +453,6 @@ #### Required parameters

Regardless of whether "deployproxy" or "deploynodeapp" is used to deploy the
proxy or app, the result of "fetchproxy" will always be a ZIP file that
Regardless of whether "deployProxy" or "deployNodeApp" is used to deploy the
proxy or app, the result of "fetchProxy" will always be a ZIP file that
represents an API proxy. The resulting proxy may be "unzipped" and
re-deployed using "deployproxy."
re-deployed using "deployProxy."

@@ -463,3 +463,3 @@ #### Example

apigeetool fetchproxy -u sdoe@example.com -o sdoe -n example-proxy -r 1
apigeetool fetchProxy -u sdoe@example.com -o sdoe -n example-proxy -r 1

@@ -1001,3 +1001,3 @@ #### Required parameters

### <a name="createcache"></a>createcache
### <a name="createCache"></a>createCache

@@ -1009,7 +1009,7 @@ Creates a Cache with the given name.

apigeetool createcache -u sdoe@example.com -o sdoe -e test -z test-cache
apigeetool createCache -u sdoe@example.com -o sdoe -e test -z test-cache
Create Cache map named "test-cache" (with description and expiry)
apigeetool createcache -u sdoe@example.com -o sdoe -e test -z test-cache --description "sample key" --cacheExpiryInSecs 40000
apigeetool createCache -u sdoe@example.com -o sdoe -e test -z test-cache --description "sample key" --cacheExpiryInSecs 40000

@@ -1496,12 +1496,10 @@ #### Required parameters

## <a name="createdeveloper"></a>Create Developer
## <a name="createDeveloper"></a>Create Developer
Creates a new Developer in Edge
#### Example
#### Code Example
Create a developer.
//see above for other required options
opts.email = DEVELOPER_EMAIL
//see above for other required options
opts.email = DEVELOPER_EMAIL
opts.firstName = 'Test'

@@ -1525,10 +1523,10 @@ opts.lastName = 'Test1'

## <a name="deletedeveloper"></a>Delete Developer
## <a name="deleteDeveloper"></a>Delete Developer
Delete a Developer in Edge
#### Example
#### Code Example
//see above for other required options
opts.email = DEVELOPER_EMAIL
//see above for other required options
opts.email = DEVELOPER_EMAIL

@@ -1546,3 +1544,3 @@ sdk.deleteDeveloper(opts)

#### Example
#### Code Example

@@ -1564,7 +1562,7 @@ opts.productName = APIGEE_PRODUCT_NAME

## <a name="deleteproduct"></a>Delete Product
## <a name="deleteProduct"></a>Delete Product
Delete API Product in Edge
#### Example
#### Code Example
opts.productName = APIGEE_PRODUCT_NAME

@@ -1579,7 +1577,7 @@

## <a name="createapp"></a>Create App
## <a name="createApp"></a>Create App
Create App in Edge
#### Example
#### Code Example

@@ -1597,7 +1595,7 @@ opts.name = APP_NAME

## <a name="deleteapp"></a>Delete App
## <a name="deleteApp"></a>Delete App
Delete App in Edge
#### Example
#### Code Example

@@ -1614,7 +1612,7 @@ opts.email = DEVELOPER_EMAIL

## <a name="createappkey"></a>Create App Key
## <a name="createAppKey"></a>Create App Key
Create App Key in Edge
#### Example
#### Code Example

@@ -1628,32 +1626,34 @@ opts.key = APP_KEY;

sdk.createAppKey(opts)
.then(function(result){
//create key/secret success
},function(err){
//create key/secret failed
}) ;
.then(function(result){
//create key/secret success
},function(err){
//create key/secret failed
}) ;
## <a name="createcache"></a>Create Cache
## <a name="createCache"></a>Create Cache
Create Cache in Edge
#### Example
#### Code Example
opts.cache = CACHE_RESOURCE_NAME;
sdk.createcache(opts)
.then(function(result){
//cache create success
sdk.createCache(opts)
.then(function(result){
//create cache success
},function(err){
//cache create failed
//create cache failed
}) ;
## <a name="deletecache"></a>Delete Cache
## <a name="deleteCache"></a>Delete Cache
Delete Cache in Edge
#### Example
#### Code Example
opts.cache = CACHE_RESOURCE_NAME;
sdk.deletecache(opts)
.then(function(result){
//delete create success
sdk.deleteCache(opts)
.then(function(result){
//delete cache success
},function(err){
//delete create failed
//delete failed
}) ;

@@ -1660,0 +1660,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc