Giter Site home page Giter Site logo

ember-cli-blog's Introduction

Myapp

Greenkeeper badge

This README outlines the details of collaborating on this Ember application.

Working example

https://bloggr.exmer.com/

Prerequisites

You will need the following things properly installed on your computer.

Installation

To get up and running with this project:

  • git clone this repository and cd into it cd ember-cli-blog
  • npm install to install npm dependencies
  • ember s to start the server!

Data will be stored in an in memory database and if configured, also replicated to a CouchDB instance.

Optional Installation

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-couchdb
  • add-cors-to-couchdb
  • update config/environment.js local_couch and remote_couch to your CouchDB instance name.
  • update config/environment.js ENV.rootURL in the production environment
  • To use deploy create a file .env.deploy.production in the root of this project containing something like db=https://username:[email protected]/bloggr

Running

Running Tests

  • ember test
  • ember test --server

Building

  • ember build (development)
  • ember build --environment production (production)

Deploy

To deploy to your CouchDB cluster

  • ember deploy production (Set your credentials in the .env.deploy.production file)

Authentication

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.

Authorization

CouchDB write protected database:

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.

Secret route

There is one secret route setup to demonstrate how to use ember-simple-auth to protect routes. More instructions can be read there.

Further Reading / Useful Links

ember-cli-blog's People

Contributors

broerse avatar greenkeeperio-bot avatar greenkeeper[bot] avatar balupton avatar jlami avatar mharris717 avatar devinrhode2 avatar charlesfries avatar nolanlawson avatar voorthuijsen avatar sehnpaa avatar rsutphin avatar rwjblue avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.