CouchDB Bootstrap
Bootstrap CouchDB server from CLI or API.
- Configure CouchDB
- Create users
- Create databases (unless they exist)
- Setup database _security object
- Deploy design documents
- Initiate replications
- Seed documents
CouchDB Bootstrap combines different small tools, which can also be used
independently. Each of those tools come has a similar API and is shipped with a
CLI:
Directory
Think about CouchDB Bootstrap as a toplevel manager, which reads a directory of
databases and optional _config
and hands each file over to the appropriate tool:
project/couchdb
├── _config.json
├── _replicator
│ ├── setup-alice.json
│ └── setup-bob.json
├── _users
│ ├── alice.json
│ └── bob.json
├── myapp
│ ├── _design
│ │ └── myapp.js
│ ├── _security.json
│ └── adoc.json
├── myapp-alice
│ └── _security.json
└── myapp-bob
└── _security.json
In the directory tree above project/couchdb/_config.json
is handed to
couchdb-configure,
project/couchdb/_replicator/setup-alice.json
,
project/couchdb/myapp/_design/myapp.js
project/couchdb/myapp/adoc.json
are handed (beside others) to
couchdb-push
and project/couchdb/myapp-alice/_security.json
to
couchdb-secure.
See couchdb-compile for more details
about the CouchDB Filesystem Mapping on a document / security object / config
level.
API
bootstrap(url, source[, options], callback)
url
- CouchDB server URLsource
- directory holding the bootstrap treeoptions.concurrency
- Limit number of concurrent requests. Defaults to 100
.options.multipart
- When set to true
, attachments are saved via multipart api.callback
- called when done with a response
object describing the status of all operations.
Example
var bootstrap = require('couchdb-bootstrap')
bootstrap('http://localhost:5984', 'project/couchdb', function(error, response) {
})
CLI
couchdb-bootstrap URL [SOURCE]
When SOURCE
is omitted, the current directory will be used.
Example
couchdb-bootstrap http://localhost:5984 project/couchdb
Tests
npm test