Bot Commander talks to vendor APIs directly to provide an environment for business-stakeholders to work with automations.
Bot Commander is a nextjs web application that speaks directly to RPA vendor APIs for you. It offers an extensible starting point if you need to trigger bots running and report on their status.
Currently, UiPath and Robocorp bots are supported but more platforms can be implemented via a system of pluggable backends. Contribution guidelines are forthcoming but pull requests are welcome.
This is experimental software and will be undergoing rapid change
Before getting started, you will need API Access to your bot provider. This guide assumes that you have access to your vendor and have bots that you would like to run.
git clone git@github.com:FormulatedAutomation/BotCommander.git
npm install
To connect your UiPath bot, you need both the account API credentials as well as the bots basic information.
API credentials will be listed in under 'sources' in config/api.js
, while the bot will be under bots
An example of a UiPath source config would be:
{
uipath: {
platformHostname: 'platform.uipath.com',
path: 'organization/myServiceInstanceLogicalName',
refreshToken: process.env.UIPATH_REFRESH_TOKEN,
serviceInstanceLogicalName: 'myServiceInstanceLogicalName',
clientId: 'abc123456',
},
Once you've defined a source, you can then define the bots which will use those source credentials to interact with the API.
The definiation of a UiPath bot looks like this:
{
id: 'Turkish.Lira.to.USD',
name: 'Turkish Lira Conversion Bot',
description: 'Converts Turkish Lira to USD',
source: 'uipath',
type: 'uipath',
acl: {
groups: ['admins', 'users'],
},
},
For more details about where to find these keys, click here.
To connect your Robocloud bot, you need three pieces of information about your bot:
- Workspace ID
- Process ID
- Process Secret
This information can be found in the Robocloud
- Activate the Process API in Robocloud
- Add your Process Secret and bot values to
config/api.js
within thebots
list.
Here is an example entry:
{
id: 'Robocloud.Demo',
name: 'My Robot',
description: 'My Special Robot That Helps Me Out',
secret: '****PROCESS-SECRET****',
workspaceId: '****WORKSPACE-ID****',
processId: '****PROCESS-ID****',
type: 'robocloud',
acl: {
groups: ['admins', 'users'],
},
}
TBD high-level explanation of how ACL works.
Bot Commander uses next-auth and have included an Auth0 provider. An example of the auth config file found at config/auth.js
// config/auth.js
export default [
Providers.Auth0({
domain: '****AUTH0-DOMAIN****',
clientId: '****CLIENT-ID****',
clientSecret: '****CLIENT-SECRET****',
}),
// ...add more providers here
]
Create a file named .env
in the root directory of the project with environment variables you would like the application to use. You should also be able to use actual environment variables as well.
TBD - Required Variables to Add
Since the app is a nextjs application you can find plentiful resources on how to get setup. To test out your instance just run the following to launch the dev server.
# be sure to `npm install` before this
npm run dev
Bot Commander works well with Docker as a self-contained nodejs application.
Formulated Automation RPA Resources