Skip to content

FormulatedAutomation/BotCommander

Repository files navigation

FA Github Header

Bot Commander

FormulatedAutomation

image

A human-friendly interface for running bots.

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.

https://formulated.s3.us-east-2.amazonaws.com/processes-3.gif

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

Get Started

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.

Download the Project

git clone git@github.com:FormulatedAutomation/BotCommander.git
npm install

Configuration

Connecting UiPath

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.

Connecting Robocloud

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

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'],
    },
  }

Access Control List

TBD high-level explanation of how ACL works.

Authorization

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
]

Environment Variables

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

Running

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

Docker Guide

Bot Commander works well with Docker as a self-contained nodejs application.

Formulated Automation RPA Resources

About

Let end users launch bot and receive results

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published