Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Node with Zuora. Provides an API for working with and querying Zuora's SOAP API
Node based Zuora API
npm install nuora
You may want to install Nuora globally for accessing the CLI
sudo npm install -g nuora
$ ./node_modules/nuora -h
Usage: nuora OPTION...
--------------
-- EXAMPLES --
--------------
Start the Zuora query prompt:
$ nuora -q
Options:
-h, --help output usage information
-V, --version output the version number
-p, --production Launch instance in production environment
-q, --query [value] Start a Zuora query prompt (ZOQL REPL)
-v, --verbose Display logging in the terminal
-i, --interactive Start an interactive Zuora query prompt (ZOQL REPL) to use with node-inspector
Download a copy of your Zuora WSDL and set it's path in your Nuora configuration
var Nuora = require('nuora');
var config = Nuora.config;
//set your credentials and wsdl file location
config.zuora.username = 'john';
config.zuora.password = 'secret';
config.zuora.wsdl = '/path-to-downloaded-zuora.wsdl'
var nuora = Nuora.build();
var zuora = nuora.zuora;
var sql = "select id, name from account limit 1";
zuora.once('loggedin', function () {
console.log('Nuora is ready!');
zuora.query(sql, function (err, data) {
console.log(err, data);
});
});
###Create an account in Zuora
//following from above
var nuora = Nuora.build();
var zuora = nuora.zuora;
var soap = zuora.soap;
zuora.once('loggedin', function () {
var accountParams = zuora.createObject('Account', {
currency: 'USD',
paymentTerm: 'Due Upon Receipt',
status: 'Draft',
batch: 'Batch1',
//start the bill cycle today
billCycleDay: new Date().getDate(),
name: 'Nuora'
});
var body = soap.action('create', [accountParams]);
soap.addBody(body);
zuora.send(soap, function (err, data) {
console.log(err, data);
});
});
In your dependencies
"nuora": "1.0.x"
Nuora is under active development, because of the nature that this service provides, all minor patch updates will be graceful improvements on existing features to maintain backwards compatibility.
This is to make life easy when developing directly on and extending Nuora functionality
To load custom configurations, you can copy and rename files in nuora/config/
to <filename>.local.js
. Then in your nuora/config/nuora.local.js
you can specify the *.local.js
file you want to load:
cp config/nuora.js config/nuora.local.js
You now have a local configuration you can edit without affecting the repo, but you will still be loading the remote configs unless you edit config/nuora.local.js
. Let's say for example we wanted to load the config/orm.local.js
file, we would make the following changes:
/** @file config/nuora.local.js */
module.exports = {
- zuora: require('./zuora'),
+ zuora: require('./zuora.local'),
...
cd nuora && ./build
node-debug nuora
#Start the query prompt
node nuora query
#If you want to interact with the data (requires node-inspector)
node-debug nuora iquery
Nuora loads modules found in the config/nuora.js
file. It looks for the autoload
array property and uses modules defined in there to extend the Nuora Handler instance.
/** @module config/nuora */
module.exports = {
autoload: [
//my lib module
'fooLib'
]
};
This software is free to use under the MIT license. See the LICENSE file for license text and copyright information.
FAQs
Node with Zuora. Provides an API for working with and querying Zuora's SOAP API
We found that nuora demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.