Difference between revisions of "Project:Tool Access Control/ACNet"

From London Hackspace Wiki
Jump to navigation Jump to search
(Re-factored the page a bit, added todo list)
Line 6: Line 6:
 
* [[#AC_Server|ACServer]] - The server stores the authentication information and pulls membership information from Turing over JSON and stores is at a SQLite DB
 
* [[#AC_Server|ACServer]] - The server stores the authentication information and pulls membership information from Turing over JSON and stores is at a SQLite DB
 
* [[#Membership_DB|Membership DB]] - Secured storage of membership data.
 
* [[#Membership_DB|Membership DB]] - Secured storage of membership data.
 +
 +
== TODO ==
 +
* Add a secondary acnode and test multiple acnode functionality (Sol)
 +
* Figure out a strategy of syncing the membership database to the local access database (currently manual)
 +
* Move the acserver to a separate VM running on the server downstairs (tgreer + mentar)
 +
* Code a basic web ui for adding tools/maintainers/nodes
 +
  
 
== System diagram ==
 
== System diagram ==
Line 42: Line 49:
 
</graphviz>
 
</graphviz>
  
== AC Node ==
+
=== AC Node ===
 
Currently proposed  (and built) by Solexious [[Project:Tool_Access_Control/Solexious_Proposal|Link]]
 
Currently proposed  (and built) by Solexious [[Project:Tool_Access_Control/Solexious_Proposal|Link]]
== AC Server ==
+
=== AC Server ===
 
2 versions
 
2 versions
 
Python Flask implementation started by [[User:ms7821|ms7821]] can be located [https://github.com/londonhackspace/ACNode here] further improved by [[User:asoko|asoko]]
 
Python Flask implementation started by [[User:ms7821|ms7821]] can be located [https://github.com/londonhackspace/ACNode here] further improved by [[User:asoko|asoko]]
Line 54: Line 61:
 
For testing it's installed on babbage port 1234
 
For testing it's installed on babbage port 1234
  
== Membership DB ==
+
=== Membership DB ===
 
Running on Turing VM slice (hosted outside the space as it has personal data). Accessed in JSON format.
 
Running on Turing VM slice (hosted outside the space as it has personal data). Accessed in JSON format.

Revision as of 01:09, 11 July 2013

Summary

This page aims to scope out the different projects that work together as part of the Access Control Network. The main components are:

  • ACNode - The clients that sit on the tool that is being controlled and manage physical access by reading the rfid card.
  • ACServer - The server stores the authentication information and pulls membership information from Turing over JSON and stores is at a SQLite DB
  • Membership DB - Secured storage of membership data.

TODO

  • Add a secondary acnode and test multiple acnode functionality (Sol)
  • Figure out a strategy of syncing the membership database to the local access database (currently manual)
  • Move the acserver to a separate VM running on the server downstairs (tgreer + mentar)
  • Code a basic web ui for adding tools/maintainers/nodes


System diagram

<graphviz border='frame' format='png' >

digraph rfboard{
  rankdir=TD;
  size="10,5!";
  
  subgraph cluster_0 {

node [shape=box,style=filled,color=lightgrey]; label = "ACServer";

       local_db [label="local db",shape=box];
       httpserver [label="HTTP server",shape=box];
       httpserver -> local_db;
       local_db -> httpserver; 
  }
  acnode1 [label="ACNode",shape=box];
  acnode2 [label="ACNode",shape=box];
  acnode3 [label="ACNode",shape=box];
 
  membershipdb [label="Membership DB",shape=box];


  acnode1 -> httpserver;
  acnode2 -> httpserver;
  acnode3 -> httpserver;
  httpserver -> acnode1;
  httpserver -> acnode2;
  httpserver -> acnode3;
  membershipdb-> httpserver;

} </graphviz>

AC Node

Currently proposed (and built) by Solexious Link

AC Server

2 versions Python Flask implementation started by ms7821 can be located here further improved by asoko

PHP Code Igniter implementation developed by mentar and Oskar located here

Usage: curl http://[server]:[port]/[node_id]/card/[card_id]

For testing it's installed on babbage port 1234

Membership DB

Running on Turing VM slice (hosted outside the space as it has personal data). Accessed in JSON format.