initial release candidate
This commit is contained in:
commit
57ffcf01db
93
README.md
93
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
|
||||
|
|
|
@ -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);
|
||||
|
|
4
sync.js
4
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;
|
||||
|
|
Loading…
Reference in New Issue