This diagram illustrates the interaction between the different components of the ESCTL system during a typical door access event.

sequenceDiagram autonumber participant dr as Door hardware participant dc as Door controller participant ec as esctl controller participant log as Log database participant api as API / Filesystem participant ad as Active Directory rect rgb(240,230,230) note over dr,dc: Door Components note over ec,api: esctl Services dr->>dc: Wiegand data stream dc->>ec: Card serial number, Door ID note right of ec: Whose badge is this? ec->>ad: Who owns this card? ad->>ec: escuid=jsmith note right of ec: What groups are allowed? ec->>ad: What groups for this door? ad->>ec: List of groups note right of ec: Is user in a group? loop Each group ec->>ad: escuid, group ad->>ec: Membership Status end ec->>log: Log access attempt ec->>dc: Open door dc->>dr: Unlock end rect rgb(230,240,230) note over dr: Request to Exit dr->>dc: RQE pressed dc->>ec: RQE pressed ec->>log: Log RQE event ec->>dc: Open door dc->>dr: Unlock end rect rgb(220,220,230) alt Keepalive ec->>dc: Are you alive? dc->>ec: Yes end end rect rgb(220,240,220) opt API Unlock api->>ec: Open door ec->>log: Log API event ec->>dc: Open door dc->>dr: Unlock end opt API Config api->>ec: Configure ec->>api: Response end end

Component Breakdown

  1. Door Hardware: The physical lock (mag-lock, strike) and RFID reader.
  2. Door Controller: The Arduino-based node that interfaces between hardware and the network.
  3. esctl Controller: The Master Controller software managing the logic.
  4. Active Directory / LDAP: The source of truth for user identities and permissions.
  5. Log Database: MySQL database storing all access and system events.