An ECA engine which acts as a middleware between WebAPI's.
Find a file
2013-11-25 15:43:31 +01:00
coffee login working now, keeping js code up to date is getting annoying... we'll drop this support soon 2013-11-25 15:43:31 +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 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
js login working now, keeping js code up to date is getting annoying... we'll drop this support soon 2013-11-25 15:43:31 +01:00
js-coffee login working now, keeping js code up to date is getting annoying... we'll drop this support soon 2013-11-25 15:43:31 +01:00
mod_actions config and user dummies, plus removed require calls from modules since it is no longer supported 2013-11-19 08:05:52 +01:00
mod_events config and user dummies, plus removed require calls from modules since it is no longer supported 2013-11-19 08:05:52 +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 bad commit, new architecture 2013-11-14 15:06:10 +01:00
webpages user handling improved 2013-11-19 13:51:30 +01:00
.gitignore 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
compile_coffee.sh coffee-script preparations 2013-11-19 14:53:36 +01:00
create_doc.js started with db_interface in coffee script, changed comment style 2013-11-21 00:20:06 +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 login working now, keeping js code up to date is getting annoying... we'll drop this support soon 2013-11-25 15:43:31 +01:00
README.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
run_coffee_server.sh coffee-script preparations 2013-11-19 14:53:36 +01:00
run_server.sh coffee-script preparations 2013-11-19 14:53:36 +01:00
run_tests.js 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

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. Be sure the user which runs the server doesn't have ANY write rights on the server! Malicious modules could capture or destroy your server!

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

Getting started

Prerequisites:

  • node.js & npm (find it here)

  • (optional) coffee, if you want to 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:

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

Start the server:

node js/server

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

Optional command line tools:

Run test suite:

node run_tests

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

node create_doc

_

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