Coder Social home page Coder Social logo

AssassinJS

AssassinJS - An Access Control Framework written in Node.js

Current Version: A2

##Description Welcome to AssassinJS - An Access Control Framework written in Node.js. AssassinJS works almost like a real world assassin, only it assassinates unwanted incoming requests to your server. So don't worry, this assassin has your back :)

AssassinJS can be used for more than just for assassinating requests. It can provide a security check on incoming requests based on filters that you specify. You can also format the data to be sent as responses with customised filters.

A generic framework that provides a safe and friendly server environment. It has the functionality to be able to expose an api for developers to develop apps that consume your api. It has the potential to act as a firewall, or even as a proxy. And it can provide analytics to who is accessing what from your server.

AssassinJS. The Secret Server Agent. At your service.

(psst... Nothing is true, Everything is Permitted)

##Prerequisites:

  • Latest version of NodeJS installed
  • Latest version of MongoDB installed

AssassinJS will run with out MongoDB installed, but No Filters can be applied. Without the DB, AssassinJS is reduced to just a fileserver and proxy, depending on what default controller is specified in config.json Routes can be added and target controllers still be configured, though.

##How To Use: After cloning the repo you will be on master, which contains the current stable build. Run

npm -d

to install all the dependancies, which will save to node_modules. Start the mongod server if on windows, or in linux it is started by default.

Run

node setFirstTime.js

which ensures that the config file is set to first time installation (The config file should have firsttime=true by default, but just to make sure)

Then run

node index.js

This will initialize the database collections first and then start the assassinjs server. (firsttime will be set to false in the config file, so if you run index.js again, it will not reintialize the db collections) (If you need to reinitialize the db collections, then run setFirstTime.js) (If you already have the db initialized, run setSecondTime.js to stop the initialization when you pull a new copy of assassinjs)

Thats it! Check your specified host and port number and goto the url http://(your url here):(port)/assassinPanel/index.jssp

This will open up the Assassin Panel where you can configure your Routes and Filters.

##Config Parameters The following can be changed from assassinPanel, and the effects are seen without restarting AssassinJS

  • defaultController: fileserver (or) proxy (or) error
  • proxyDomain: www.youtube.com (or) localhost
  • proxyDomainPort: 80 (or) (any port number)
  • proxyType: external (or) internal

The following can be changed from assassinPanel, and the effects are seen AFTER restarting AssassinJS

  • assassinjsPort: 8000
  • assassinjsAddress: 0.0.0.0
  • firsttime: true (or) false
  • useDB: true (or) false

AssassinJS's Projects

AssassinJS doesnโ€™t have any public repositories yet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.