@engagementlab/el-bootstrapper
The Engagement Lab's library for web server/keystonejs CMS instance initialization.
Last updated 8 months ago by johnnycrich .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @engagementlab/el-bootstrapper 
SYNC missed versions from official npm registry.

EL-Bootstrapper

The Engagement Lab's library for web server API/KeystoneJS CMS instance initialization.

EL-Bootstrapper logo

  • BYO expressjs instance!
  • Uses Auth0 for login to KeystoneJS via Google connection. You will need to create an Auth0 app.
  • Unlike the default KeystoneJS 'User' model, ours has no password field. Just add users' gmail address, and they can login via Auth0.
  • Keystone admin panel is still entered via /keystone, but you're directed to /cms by default after login.
  • Replaces our deprecated el-web-sdk.

Known issue

When logged into KeystoneJS admin panel, user logged in will show as:

{
    _id: user's id,
    __v: 0,
    email: 'user@domain.com',
    password: hash from auth0,
    isAdmin: true, 
    name: { last: 'Last', first: 'First' } 
}

This is merely a visual bug for now.

Install

npm i --save @engagement-lab/el-bootstrapper

Environment

Node 10.14.0+ supported. Should work as low as 8.11.4.

You must specify the following in your .env (reminder to never commit this):

DEV_EMAIL=[email to use for automatic keystone login on NODE_ENV=development]
COOKIE_SECRET=[random hash for keystone cookie]

(obtain following at https://manage.auth0.com/)
AUTH0_CLIENT_ID=[your id]
AUTH0_DOMAIN=[your domain].auth0.com
AUTH0_CLIENT_SECRET=[your secret]
AUTH0_CALLBACK_URL=[usually http://localhost:3000/callback]

And optionally:

PORT=[a port to run on, defaults to 3000]

You will also need a config.json in your app root dir:

{
	"name": "Name of website",
	"database": "mongo-database-name",
	"adminPath": "cms"
}

Usage

In your Node app main file (e.g. app.js, using dotenv in this example):

// Load .env vars
if(process.env.NODE_ENV !== 'test')
	require('dotenv').load();

const bootstrap = require('@engagementlab/el-bootstrapper'), 
      express = require('express');

let app = express();
bootstrap.start(
    // Path to config
    './config.json', 
    // Express
    app,
    // The root of this app on disk, needed for keystonejs
    __dirname + '/', 
    // Any additional config vars you want for keystonejs instance
    // See: https://keystonejs.com/documentation/configuration/
	{
		'name': 'Name of website CMS'
	},
	() => {
        // any logic to run after app is mounted
        // you need at least:
		app.listen(process.env.PORT);
	}
);

Current Tags

  • 0.0.6                                ...           latest (8 months ago)

3 Versions

  • 0.0.6                                ...           8 months ago
  • 0.0.5                                ...           9 months ago
  • 0.0.4                                ...           9 months ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 4
Last Day 0
Last Week 4
Last Month 3
Dependencies (9)
Dev Dependencies (0)
None
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |