diff --git a/README.md b/README.md index 0360350..35b9411 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# [greenlock-store-sequelize][1] +# [greenlock-store-sequelize](https://git.rootprojects.org/root/greenlock-store-sequelize.js) | A [Root](https://rootprojects.org) project > A database-driven Greenlock storage plugin with wildcard support. @@ -8,82 +8,50 @@ To use, provide this Greenlock storage plugin as the `store` attribute when you invoke `create`. ```js -var store = require('le-store-sequelize'); - -var gl = greenlock.create({ - store, - approveDomains, - ... +greenlock.create({ + store: require('le-store-sequelize') }); ``` -## Wildcards & AltNames - -Working with wildcards and multiple altnames requires Greenlock `>= v2.7`. - -To do so you must set `opts.subject` and `opts.domains` within the -`approvedomains()` callback. - -`subject` refers to "the subject of the ssl certificate" as opposed to `domain` -which indicates "the domain servername used in the current request". For -single-domain certificates they're always the same, but for multiple-domain -certificates `subject` must be the name no matter what `domain` is receiving a -request. `subject` is used as part of the name of the file storage path where -the certificate will be saved (or retrieved). - -`domains` should be the list of "altnames" on the certificate, which should -include the `subject`. - -## Example - -```javascript -function approveDomains() { -} -``` ## Configuration ### Defaults No configuration is required. By default, you'll get a baked-in Sequelize -database running sqlite3. - -```javascript -greenlock.create({ - store: require('le-store-sequelize'), - ... -}); -``` +database running [sqlite3](https://www.npmjs.com/package/sqlite3). ### Database Connection Without `config.dbOptions`, the baked-in sequelize object uses sqlite3 with -default options. If `config.dbOptions` is provided, you can configure the -database connection per the Sequelize documentation. +defaults. If `config.dbOptions` is provided, you can configure the database +connection per the Sequelize documentation. + +If a dialect other than sqlite3 is used, dependencies will need to be +installed. ```javascript -var store = require('le-store-sequelize')({ - dbConfig: { - username: 'mysqluser', - password: 'mysqlpassword', - database: 'mysqldatabase, - host: '127.0.0.1', - dialect: 'mysql' - } -}); - greenlock.create({ - store, - ... + store: require('le-store-sequelize')({ + dbConfig: { + username: 'mysqluser', + password: 'mysqlpassword', + database: 'mysqldatabase, + host: '127.0.0.1', + dialect: 'mysql' + } + }) }); ``` The database can also be configured using an env variable. ```javascript -var store = require('le-store-sequelize')({ - dbConfig: { - use_env_variable: 'DB_URL' - } +greenlock.create({ + store: require('greenlock-store-sequelize')({ + dbConfig: { + use_env_variable: 'DB_URL' + } + }) }); ``` @@ -93,16 +61,11 @@ If you already have a Sequelize object, you can pass that in as `config.db`, circumventing the baked-in database entirely. ```javascript -var db = require('./db'); - -var store = require('le-store-sequelize')({ - db -}); +var db = require('./db'); // your db greenlock.create({ - store, - ... + store: require('le-store-sequelize')({ + db + }) }); ``` - -[1]: https://www.npmjs.com/package/greenlock-store-sequelize diff --git a/greenlock-store-sequelize.js b/greenlock-store-sequelize.js index 4edd351..1e80a68 100644 --- a/greenlock-store-sequelize.js +++ b/greenlock-store-sequelize.js @@ -133,7 +133,7 @@ module.exports.create = function (config={}) { // using xid because id is reserved by sequelize xid: opts.certificate.kid || opts.certificate.id || opts.subject } - }) + }); }).then(function ([record,created]) { // { privateKeyPem, privateKeyJWK } record.content = JSON.stringify(opts.keypair); diff --git a/sync.js b/sync.js index fdc5d44..7544b20 100644 --- a/sync.js +++ b/sync.js @@ -1,6 +1,6 @@ 'use strict'; -function syncSequelizeModels(db) { +function sync(db) { var keys = Object.keys(db); function next() { @@ -19,4 +19,4 @@ function isModel(key) { return !(['sequelize','Sequelize'].includes(key)); } -module.exports = syncSequelizeModels; +module.exports = sync;