Improving integration with bots - Goals


#1

The goal of this topic is to define the objectives of my GSoC accepted proposal: Improve the integration of bots on Rocket.Chat. The final version of the proposal can be read on this gist, but this topic will have the defined goals, with specific deliverables.

The proposal can be split into two main parts.

Basic UI to monitor and manage existing bot users


This part will be finished first, it is about listing the existing bot users (online or not) in the Admin Panel, with the possibility to monitor their data (e.g. number of messages sent) and manage them by performing actions.

Monitoring data


Static data

Information that will not change while the bot is connected

  • Bot framework (e.g. BotKit, Hubot)
  • Adapter version (e.g. hubot-rocketchat@3.0.0)
  • IP Address or Hostname
Dynamic data

Information that can change while the bot is connected

  • Ping (how long does the bot take to respond)
  • Uptime (for how long is the bot online uninterrupted)
  • Logs printed by the bot
  • Number of messages sent by the bot

Managing bots


Change details of the account the bot uses, such as username, password, picture, etc.

Ability to send commands to the bot, if its adapter supports it

  • Pause and Resume a bot
  • Completely stop a bot (e.g. by refusing connection)

Foundations to create and deploy a new bot


In this part we will make the process of creating and deploying a new bot easier.

Improve the creation of bot users


Creating a new bot user is exactly the same as creating a bot user, we want to make this process easier by having a different interface asking details specific to bots. For example, without asking for an e-mail to create the account (#7125 https:/ /github.com/RocketChat/Rocket.Chat/issues/7125).

Build the foundations of bot deployment