Configuration options for netsuite-related packages.
Set up authentication and custom parameters environment-wise or project-wise.
- node.js 0.10+ or io.js 1+ or node.js 4+
npm install nsconfigReads configuration parameters from the following sources (overriding each parameter on the same order):
-
overrideParamsargument; -
Searches up to 5 levels above cwd for a
nsconfig.jsonfile -
Searches for a
~/.ns/nsconfig.json(on windows~isX:/Users/<user>) -
Environment variables found with the syntax
NSCONF_<UPPERCASE_PARAMETER_NAME>. E.g. theemailparam can be forced to something else by exporting[email protected].
When working with multiple netsuite environments you may override the file
name nsconfig.json with e.g. nsconfig-myproject.json by either:
-
setting the
conffileparameter; -
setting the environment variable
NSCONForNSCONF_CONFFILE.
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'},
{name: 'consumerKey'},
{name: 'consumerSecret'},
{name: 'token'},
{name: 'tokenSecret'}
]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
}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
When using token based authentication, the following 4 values are required:
consumerKeyconsumerSecrettokentokenSecret
Setup:
- Enable Token-based Authentication (Enable Features > SuiteCloud > Manage Authentication)
- Create an integration record to generate a consumer key and secret
- Generate a user token (must enable a role with User Access Tokens permission - Administrator role cannot be used)
The email and password are ignored when token based authentication is used. (They are still required but can just have placeholder values)
Both configuration files below yield the same output:
- Raw password: nsconfig.json
- Hash password: nsconfig.json
var params = nsconfig()
yields
{
"email": "[email protected]",
"password": "*****",
"account": "DDAA12321",
"realm": "netsuite.com",
"role": 3
}