nsconfig
Configuration options for netsuite-related packages.
Set up authentication and custom parameters environment-wise or project-wise.
Required
- node.js 0.10+ or io.js 1+ or node.js 4+
Install
npm install nsconfig
Usage
nsconfig( overrideParams : any , projectParams? : ParamsDef[] , noThrow? : boolean )
Reads configuration parameters from the following sources (overriding each parameter on the same order):
-
overrideParams
argument; -
Searches up to 5 levels above cwd for a
nsconfig.json
file -
Searches for a
~/.ns/nsconfig.json
(on windows~
isX:/Users/<user>
) -
Environment variables found with the syntax
NSCONF_<UPPERCASE_PARAMETER_NAME>
. E.g. theemail
param can be forced to something else by exporting[email protected]
.
The name nsconfig.json
mentioned above can be overridden by setting the environment variable NSCONF
with the config file you want to point to. E.g. NSCONF='nsconfig-myproject.json'
looks for nsconfig-myproject.json
instead of nsconfig.json
, using the same methods as mentioned above. This can be useful when working with multiple NetSuite accounts. Please note that this overrides the file name and not the file path.
projectParams
Set additional parameters that your module may want to look up.
The default parameters are:
[
{name: 'email', required: true},
{name: 'password', required: true},
{name: 'account', required: true},
{name: 'realm', def: 'system.netsuite.com'},
{name: 'role'}
]
Currently accepted options for each custom parameter are:
interface ParamsDef {
name : string;
required? : boolean; //throws an error if this parameter is not defined
def? : boolean; //defaults to this value if this parameter is not defined
}
passwords and passwordHash
Instead of setting the password
key, you may set passwordHash
with a base64 encoded password.
Or you may use one the following options in order to avoid storing the password directly into the
project's nsconfig.json
:
-
Set up the password as environment variable (
NSCONF_PASSWORD
) -
Set the the password at
~/.ns/nsconfig.json
Example
Both configuration files below yield the same output:
-
Raw password: nsconfig.json
-
Hash password: nsconfig.json
var params = nsconfig()
{
"email": "[email protected]",
"password": "*****",
"account": "DDAA12321",
"realm": "system.netsuite.com",
"role": 3
}