Deadlock server: centralized “manager” of the system¶
The server performs the following functions:
- holds the authoritative version of the access rules - also generates the offline database for controllers
- collects access logs
- provides software updates and time synchronization for the other devices
- monitors system state (and reports it to the management UIs)
- provides an API for the outside world (and all our tools).
Except for the contents of the database, it is entirely stateless. This simplifies the code and makes replication and failover trivial.
The server is separated into 3 independent modules: deadserver
(communicates with controllers), deadapi
(API for the outside world), and deadaux
(auxiliary jobs).
Contents:
Concepts and common abstractions:¶
Communication with controllers:¶
HTTP API for the outside world:¶
Auxiliary jobs supporting the other components:¶
API documentation¶
- common package
- common.cfiles package
- common.types package
- common.utils package
- config package
- controller module
- deadapi package
- deadapi.resources package
- deadaux package
- deadcli module
- deadserver package
- deadserver.handlers package
- integration_test module
- server
- runapi module
- runaux module
- runsrv module