node-sp-auth-config-nocolors
v3.0.6
Published
Config options builder for node-sp-auth (SharePoint Authentication in Node.js)
Downloads
679
Maintainers
Readme
node-sp-auth-config-nocolors - Config options builder for node-sp-auth (SharePoint Authentication in Node.js)
IMPORTANT: This package is a clone from node-sp-auth-config, without colors dependency and other changes, all info below is from original creator.
node-sp-auth-config
provides wizard-like approach for building and managing config files for node-sp-auth (Node.js to SharePoint unattended http authentication). Includes CLI for generating config files from a command prompt.
Versions supported:
- SharePoint Online
- SharePoint 2019
- SharePoint 2016
- SharePoint 2013
- SharePoint 2010
Authentication options:
- SharePoint Online:
- User credentials (SAML/ADFS)
- Add-In Only permissions
- On-Demand authentication (using Electron popup)
- SharePoint 2019, 2016, 2013:
- User credentials (NTLM, NTLM v2)
- ADFS user credentials
- Form-based authentication (FBA)
- Form-based authentication (Forefront TMG)
- Add-In Only permissions
- On-Demand authentication (using Electron popup)
- SharePoint 2010:
- User credentials (NTLM, NTMLv2)
- Form-based authentication (FBA)
- Form-based authentication (Forefront TMG)
Config layer and auth support Office 365 Dedicated (SPO on a custom domain) as well.
How to use
Install
npm install node-sp-auth-config --save
or install globally to use as CLI:
npm install node-sp-auth-config -g
Usage as CLI
sp-auth init --path ./config/private.config.json
sp-auth --help # for help about parameters
Usage in TypeScript
import { AuthConfig } from 'node-sp-auth-config';
const authConfig = new AuthConfig({
configPath: './config/private.json',
encryptPassword: true,
saveConfigOnDisk: true
});
authConfig.getContext()
.then((context) => {
console.log(JSON.stringify(context, null, 2));
// context.authOptions - node-sp-auth authentication options
})
.catch(console.warn);
Usage in JavaScript
const AuthConfig = require('node-sp-auth-config').AuthConfig;
const authConfig = new AuthConfig({
configPath: './config/private.json',
encryptPassword: true,
saveConfigOnDisk: true
});
authConfig.getContext()
.then((context) => {
console.log(JSON.stringify(context, null, 2));
// context.authOptions - node-sp-auth authentication options
})
.catch(console.warn);
Initiation parameters
| Parameter | Default value | Description |
| --- | --- | --- |
| configPath | './config/private.json
' | Path to auth config .json
|
| encryptPassword | true
| Encrypt password to a machine-bind hash |
| saveConfigOnDisk | true
| Save config .json
to disk |
| forcePrompts | false
| Force parameters prompts |
| headlessMode | false
| Prevents interactive prompts - for headless, CI/CD processes |
| defaultConfigPath | empty | Path to .json
config, parameters from which are placed as defaults |
| authOptions | empty | Any valid node-sp-auth
options |
Production runtime
Headless mode
When using in a headless mode, in case of missing parameters, one can expect non-interactive behavior with no prompts but graceful exit with corresponding error output.
This can be achieved by providing headlessMode
settings property is equal to true
.
The headless mode also automatically configured when NODE_ENV
(or SPAUTH_ENV
) environment variable is equal to production
.
Environment variables
All the parameters which are usually stored in private.json
can be defined also using environment variables. Environment variables started with SPAUTH_
prefix are recognized with the library. The second part of the name is an actual name of the node-sp-auth
credentials property yet in uppercase (e.g. SPAUTH_SITEURL
, SPAUTH_USERNAME
, SPAUTH_PASSWORD
).
Along with credentials props these service variables are used:
| Variable | Description |
| --- | --- |
| NODE_ENV
| When equal to production
forces headlessMode
. |
| SPAUTH_ENV
| When equal to production
forces headlessMode
. Overwrites NODE_ENV
. |
| SPAUTH_FORCE
| Makes SPAUTH_{CREDENTIALS}
variables take precedence over those possibly stored in private.json
. |
Configuring CI/CD
Checkout this end-to-end sample.