Setup
This section will guide you through the setup of the BotCity Maestro SDK and how to establish a connection with the Maestro platform.
Installation¶
BotCity Maestro SDK is available as a Python package on PyPI.
You can install it with:
pip install botcity-maestro-sdk
BotCity Maestro SDK is available as a Java dependency in the Nexus repository.
The dependency will be installed automatically after being added to your pom.xml
:
<repositories>
<repository>
<id>nexus-botcity-public</id>
<url>https://devtools.botcity.dev:8081/repository/botcity-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<!-- Your other dependencies -->
<dependency>
<groupId>dev.botcity</groupId>
<artifactId>maestro-sdk</artifactId>
<version>2.0.3</version>
</dependency>
</dependencies>
BotCity Maestro SDK is available as Javascript Package on NPM.
You can install it with:
npm i @botcity/botcity-maestro-sdk
BotCity Maestro SDK is available as Javascript Package on NPM.
You can install it with:
npm i @botcity/botcity-maestro-sdk
Importing the SDK¶
You can import the SDK into your code with:
# Import everything from the Maestro SDK
from botcity.maestro import *
You can import the SDK into your code with:
// Import the package
import dev.botcity.maestro_sdk.*;
You can import the SDK into your code with:
// Import class BotMaestroSdk
const maestro = require("@botcity/botcity-maestro-sdk")
You can import the SDK into your code with:
// Import class BotMaestroSdk
import { BotMaestroSdk } from '@botcity/botcity-maestro-sdk'
Creating a new Maestro Client¶
The BotMaestroSDK
is the main class to be used when interacting with BotMaestro.
You can create a new Maestro Client with:
# Create a new Maestro Client
maestro = BotMaestroSDK()
BotMaestroSDK maestro = new BotMaestroSDK();
const maestro = new BotMaestroSdk()
const maestro: BotMaestroSdk = new BotMaestroSdk()
Establishing a connection to Maestro¶
There are two ways to establish a connection with Maestro via code.
We can authenticate a new instance using the parameters passed by Runner or log in directly using the workspace information.
Using workspace information¶
The login information is available when you access BotCity Maestro and click on the Dev. Environment
menu.
We will need the Login
and Key
information from this page.
See the Dev. Environment section for more information.
maestro.login(
server="https://developers.botcity.dev",
login="<LOGIN>",
key="<KEY>"
)
maestro.login("https://developers.botcity.dev", "<LOGIN>", "<KEY>");
await maestro.login("https://developers.botcity.dev", "<LOGIN>", "<KEY>")
await maestro.login("https://developers.botcity.dev", "<LOGIN>", "<KEY>")
Using the arguments passed by Runner¶
Another way to authenticate an instance of the Maestro SDK is through the arguments passed by the Runner when executing a task.
This way, when we run our automation through Runner, we will already have an authenticated instance of the SDK in the code.
Tip
If you are using BotCity project templates to develop automation, you will probably already have this code snippet included in the project.
# Getting the arguments passed by Runner
maestro = BotMaestroSDK.from_sys_args()
Info
By default, the BotExecution
object is already configured in the BotCity Java project template.
public void action(BotExecution botExecution) {
try {
// Instantiating the Maestro SDK
// The BotExecution object contains the information that is passed by the Runner
BotMaestroSDK maestro = new BotMaestroSDK();
maestro.login(botExecution);
...
// Not yet implemented
// Not yet implemented
Getting the current execution reference¶
After instantiating the Maestro SDK, we can obtain the reference of the current task being executed by Runner.
This way, we can more easily access information about this execution during the code, such as the task ID and parameters.
# Instantiating the Maestro SDK
maestro = BotMaestroSDK.from_sys_args()
# Getting the details of the current task being executed
execution = maestro.get_execution()
# Information about the task being executed
print(f"Task ID is: {execution.task_id}")
print(f"Task Parameters are: {execution.parameters}")
Info
By default, the BotExecution
object is already configured in the BotCity Java project template.
public void action(BotExecution botExecution) {
try {
// Instantiating the Maestro SDK
// The BotExecution object contains the information that is passed by the Runner
BotMaestroSDK maestro = new BotMaestroSDK();
maestro.login(botExecution);
// Information about the task being executed
System.out.println(botExecution.getTaskId());
...
// Getting the arguments passed by Runner
const args = process.argv.slice(2)
const [server, taskid, token] = args
// Instantiating the Maestro SDK
const maestro = new BotMaestroSdk()
maestro.login("https://developers.botcity.dev", "<LOGIN>", "<KEY>")
// Getting the details of the current task being executed
const executionTask = await maestro.getTask(taskid)
// Getting the arguments passed by Runner
const args = process.argv.slice(2)
const [server, taskid, token] = args
// Instantiating the Maestro SDK
const maestro: BotMaestroSdk = new BotMaestroSdk()
maestro.login("https://developers.botcity.dev", "<LOGIN>", "<KEY>")
// Getting the details of the current task being executed
const executionTask: Task = await maestro.getTask(taskid)