Bot Agent communication with Control Room

Bot Agent uses various channels to communicate with the Control Room. Relevant data is transferred directly and indirectly using communication channels such as loop-back interface, browser plug-in, and WebSocket connection.

Diagram displaying Bot agent communication channels

Browser to loop-back interface

The browser-to-loop-back-interface channel is used during initial Bot Agent device registration and post-registration to check the current connection status to the Control Room. The loop-back interface uses HTTP unencrypted connection.

The following initial registration data is transferred over this channel:

  • Control Room user token. This is accessible through developer tools on the browser.
  • Control Room URL
  • Proxy metadata, such as device ID, whether the proxy is configured or not, and whether it uses authentication or not.

The following connection status data is transferred over this channel:

  • Device ID
  • Control Room URL
  • Installation type, such as system-level or user-level
  • Proxy metadata, such as device ID, whether the proxy is configured or not, and whether it uses authentication or not.

Browser to Control Room

The browser-to-Control Room channel is used by the browser to connect to the Control Room. The data transferred over this channel includes all Control Room web data. The browser uses HTTPS encrypted connection.

Plug-in to Bot Agent named pipe

The plug-in to the Bot Agent named pipe channel is used to fetch current logged-in username and credentials if an authenticated proxy is to be obtained for the browser. The plug-in channel is protected by user permissions.

Bot Agent to Control Room WebSocket

The Bot Agent-to-Control Room WebSocket channel is used for all command and data transfer between the Bot Agent and Control Room. Data transferred over this channel includes requests from the Bot Agent to the Control Room, bot code transfer, password data, Control Room-to-Bot Agent requests. Password data is payload-encrypted, with the device public key in addition to the TLS encryption of the channel.