webapi-eca/README.md
2014-02-04 16:40:32 +01:00

2.3 KiB

README: webapi-eca

A Modular ECA Engine Server which acts as a middleware between WebAPI's. This folder continues examples of an ECA engine and how certain use cases could be implemented together with a rules language.

The server is started through the server.js module by calling node rule_server.js.

Getting started

Prerequisites:

  • node.js (find it here)
  • (optional) Pygments if you want to generate the doc: sudo apt-get install python-setuptools and then sudo easy_install Pygments
  • (optional) CoffeeScript, if you want to develop and compile from coffee sources: sudo npm -g install coffee-script

Clone project:

git clone https://github.com/dominicbosch/webapi-eca.git

Download and install dependencies:

cd webapi-eca
npm install

Get your redis instance up and running (and find the port for the config file below) or create your own js/db_interface.js.

Edit the configuration file:

vi config/config.json

Apply your settings, for example:

TODO Remake

{
    "http_port": 8125,
    "db_port": 6379,
    "crypto_key": "[your key]",
    "session_secret": "[your secret]"
}

Start the server:

run_server.sh

Congratulations, your own WebAPI based ECA engine server is now up and running!

Optional command line tools:

Create the doc (to be accessed via the webserver, e.g.: localhost:8125/doc/):

WARNING:

manual adjustment of ./node_modules/groc/lib/styles/default/docPage.jade required until groc is fixed:

!!! 5 needs to be relaced with doctype html

run_doc.sh

Run test suite:

run_tests.sh

_

TODO

  • Redis queue
  • user handling (personal credentials)
  • security in terms of users (private key, login)
  • vm for modules, only give few libraries (no fs!)
  • rules generator (provide webpage that is used to create rules dependent on the existing modues)
  • geo location module, test on smartphone.

_

TODO per module

Testing | clean documentation | Clean error handling (Especially in loading of modules and their credentials):

  • DB Interface
  • Engine
  • Event Poller
  • HTTP Listener
  • Logging
  • Module Loader
  • Module Manager
  • Server