An ECA engine which acts as a middleware between WebAPI's.
Find a file
Dominic Bosch 32f5553471 Login functionality successfully implemented,
switched crypto to crypto-js from google. login.html form loads crypto-js directly from google codebase in order to hash passwords before sending them to the server
2013-11-28 16:05:47 +01:00
coffee Login functionality successfully implemented, 2013-11-28 16:05:47 +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 Documentation and private vars update 2013-11-26 23:24:15 +01:00
js-coffee Login functionality successfully implemented, 2013-11-28 16:05:47 +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 Login functionality successfully implemented, 2013-11-28 16:05:47 +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 Login functionality successfully implemented, 2013-11-28 16:05:47 +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 functionality successfully implemented, 2013-11-28 16:05:47 +01:00
README.md Login functionality successfully implemented, 2013-11-28 16:05:47 +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

TODO Remake

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) CoffeeScript, 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:

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

node create_doc

Run test suite:

node run_tests

_

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