node-sp-auth-config
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.1 • Public • Published

    node-sp-auth-config - Config options builder for node-sp-auth (SharePoint Authentication in Node.js)

    NPM

    npm version Downloads Actions Status FOSSA Status Gitter chat

    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.

    License

    FOSSA Status

    Install

    npm i node-sp-auth-config

    DownloadsWeekly Downloads

    4,986

    Version

    3.0.1

    License

    MIT

    Unpacked Size

    143 kB

    Total Files

    74

    Last publish

    Collaborators

    • avatar
    • avatar