An ECA engine which acts as a middleware between WebAPI's.
Find a file
2014-02-19 06:53:37 +01:00
coffee logging finished, together with testing. 2014-02-18 22:34:36 +01:00
config config and user dummies, plus removed require calls from modules since it is no longer supported 2013-11-19 08:05:52 +01:00
documentation logging finished, together with testing. 2014-02-18 22:34:36 +01:00
js Huge refactoring of architecture started 2014-02-17 23:27:26 +01:00
js-coffee logging finished, together with testing. 2014-02-18 22:34:36 +01:00
mod_actions reworking the code and adding tests 2014-02-04 08:35:07 +01:00
mod_events man changes and additions to webpages, module storing and rules forge. we're getting there... 2013-12-08 22:59:04 +01:00
rules very rude commit, basically porting everything from the original project to create a new clean approach with thorough documentation and testing. This commit relies on the huge TODO list to be solved in order to go into a release state. 2013-11-13 16:21:58 +01:00
testing removed unnecessary files from staging 2014-02-19 06:53:37 +01:00
webpages refactoring and techdoc started 2014-02-18 09:48:18 +01:00
.gitignore refactoring and techdoc started 2014-02-18 09:48:18 +01:00
compile_coffee.sh coffee-script preparations 2013-11-19 14:53:36 +01:00
LICENSE.md What a wonderful detour over docco, only to recognize that it was always possible to auto generate documentation. 2013-11-20 15:41:41 +01:00
package.json Huge refactoring of architecture started 2014-02-17 23:27:26 +01:00
README.md dependecy update and resultig bug fixes 2014-02-04 16:40:32 +01:00
run_doc.sh dependecy update and resultig bug fixes 2014-02-04 16:40:32 +01:00
run_engine.sh logging finished, together with testing. 2014-02-18 22:34:36 +01:00
run_tests.sh Huge refactoring of architecture started 2014-02-17 23:27:26 +01:00
sandbox.js reworking the code and adding tests 2014-02-04 08:35:07 +01:00

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