This README outlines the details of collaborating on this Ember application.
You will need the following things properly installed on your computer.
- Git
- Node.js (with npm)
- Ember CLI
- Google Chrome
To get up and running with this project:
git clonethis repository and cd into itcd ember-cli-blognpm installto install npm dependenciesember sto start the server!
Data will be stored in an in memory database and if configured, also replicated to a CouchDB instance.
To setup CouchDB data replication, configure ENV.remote_couch inside ./config/environment.js to point to your CouchDB location.
To setup a CouchDB instance on your own machine:
- install couchDB from http://couchdb.apache.org/
npm install -g add-cors-to-couchdbadd-cors-to-couchdb- update
config/environment.jslocal_couchandremote_couchto your CouchDB instance name. - update
config/environment.jsENV.rootURLin the production environment - To use deploy create a file
.env.deploy.productionin the root of this project containing something likedb=https://username:[email protected]/bloggr
ember s- Visit your app at http://localhost:4200.
ember testember test --server
ember build(development)ember build --environment production(production)
To deploy to your CouchDB cluster
ember deploy production(Set your credentials in the.env.deploy.productionfile)
ember-simple-auth-pouch authenticator with custom data adapter to setup push replication after login. See /src/simple-auth/authenticators/pouch.js and /src/data/models/application/adapter.js for further details.
Registration required example for write permission: Add users in the normal CouchDB way.
For example by adding the following document to the _users database:
{
"_id": "org.couchdb.user:test",
"name": "test",
"password": "test",
"roles": [
"user"
],
"type": "user"
}
After that you can protect your bloggr database from unauthorized writes by adding the following design document to the bloggr database.
{
"_id": "_design/only_users_write",
"validate_doc_update": "function (newDoc, oldDoc, userCtx) {\n\tif (userCtx.roles.indexOf(\"user\") == -1 && userCtx.roles.indexOf(\"_admin\") == -1) {\n\t\tthrow({unauthorized: \"Only registered users can save data!\"});\n\t}\n}"
}
For the free CloudStation you have to create an User and a Database and insert the userdocument from above. Make sure to update your config/environment.js remote_couch and rootURL to match your production settings. Typical rootURL values are / and /yourdb/_design/myapp/_rewrite/ If you run your own CouchDB you can use the Hoodie CouchDB User Management App to create users.
There is one secret route setup to demonstrate how to use ember-simple-auth to protect routes. More instructions can be read there.
-
Development Browser Extensions