An ECA engine which acts as a middleware between WebAPI's.
Find a file
2013-11-19 18:13:38 +01:00
coffee server in coffeescript 2013-11-19 18:13:38 +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 server in coffeescript 2013-11-19 18:13:38 +01:00
js-coffee server in coffeescript 2013-11-19 18:13:38 +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 coffee-script preparations 2013-11-19 14:53:36 +01:00
LICENSE.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
package.json bad commit, new architecture 2013-11-14 15:06:10 +01:00
README.md coffee-script preparations 2013-11-19 14:53:36 +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 db_interface.js.

Create the configuration file:

mkdir config
vi config/config.json

Insert 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