Credenciais
Ir para CredenciaisSabemos que não é uma boa prática expor dados confidenciais em código. Aqui em credenciais, você pode adicionar esses dados restritos usados em sua automação, como senhas, logins e e-mail ou quaisquer dados restritos como abaixo:
Criar armazenamento de credenciais¶
Para adicionar uma nova credencial, você deve definir um label para esse armazenamento e adicionar cada credencial informando uma chave e um valor.
Dica
Explore o  para obter exemplos de código que facilitam as manipulações de credenciais, acesse e aprenda como criar credencial simples e obter credenciais via código.
 para obter exemplos de código que facilitam as manipulações de credenciais, acesse e aprenda como criar credencial simples e obter credenciais via código.
Os snippets gerados estão disponíveis nas linguagens Python, Java, JavaScript e TypeScript.
Como usar credenciais com o Maestro SDK¶
Você pode facilmente manipular credenciais usando o Maestro SDK no código da sua automação.
Instalação do SDK¶
Caso você ainda não tenha a dependência instalada, basta seguir essas instruções:
Importante
Além de instalar, lembre-se de incluir a dependência no arquivo requirements.txt do bot.
<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>
Importando o SDK¶
Após a instalação, basta importar a dependência e instanciar o Maestro SDK:
# Importando a dependência do Maestro SDK
from botcity.maestro import *
# Desabilitando erros caso não exista conexão com o Orquestrador
BotMaestroSDK.RAISE_NOT_CONNECTED = False
# Instanciando o Maestro SDK
maestro = BotMaestroSDK.from_sys_args()
# Buscando os detalhes da tarefa atual sendo executada
execution = maestro.get_execution()
// Importando a dependência do Maestro SDK
const { BotMaestroSdk } = require('@botcity/botcity-maestro-sdk')
// Obtendo parâmetros passados pelo Runner
const args = process.argv.slice(2)
const [server, taskid, token] = args
// Login com as informações da página Amb. Desenvolvedor
const maestro = new BotMaestroSdk()
maestro.login("YOUR_SERVER_HERE", "YOUR_USER_HERE", "YOUR_KEY_HERE")
// Buscando os detalhes da tarefa atual sendo executada
const executionTask = await maestro.getTask(taskid)
// Importando a dependência do Maestro SDK
import { BotMaestroSdk } from '@botcity/botcity-maestro-sdk'
// Obtendo parâmetros passados pelo Runner
const args = process.argv.slice(2)
const [server, taskid, token] = args
// Login com as informações da página Amb. Desenvolvedor
const maestro: BotMaestroSdk = new BotMaestroSdk()
maestro.login("YOUR_SERVER_HERE", "YOUR_USER_HERE", "YOUR_KEY_HERE")
// Buscando os detalhes da tarefa atual sendo executada
const executionTask: Task = await maestro.getTask(taskid)
// Importando a dependência do Maestro SDK
using Dev.BotCity;
using Dev.BotCity.MaestroSdk.Model.Execution;
// Instanciando o Maestro SDK
BotMaestroSDK maestro = BotMaestroSDK.FromSysArgs();
// Buscando os detalhes da tarefa atual sendo executada
Execution execution = await maestro.GetExecutionAsync(maestro.GetTaskId());
Acessando credenciais¶
Código completo¶
from botcity.core import DesktopBot
from botcity.maestro import *
# Desabilitando erros caso não exista conexão com o Orquestrador
BotMaestroSDK.RAISE_NOT_CONNECTED = False
def main():
    maestro = BotMaestroSDK.from_sys_args()
    execution = maestro.get_execution()
    # Acessando credencial no Orquestrador
    credencial = maestro.get_credential(label="Credential Test", key="password")
    bot = DesktopBot()
    # Implemente aqui a sua lógica...
    ...
def not_found(label):
    print(f"Element not found: {label}")
if __name__ == '__main__':
    main()
import dev.botcity.framework.bot.DesktopBot;
import dev.botcity.maestro_sdk.BotExecutor;
import dev.botcity.maestro_sdk.BotMaestroSDK;
import dev.botcity.maestro_sdk.model.AlertType;
import dev.botcity.maestro_sdk.runner.BotExecution;
import dev.botcity.maestro_sdk.runner.RunnableAgent;
public class FirstBot extends DesktopBot implements RunnableAgent
{
    public FirstBot() {
        try {
            setResourceClassLoader(this.getClass().getClassLoader());
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    @Override
    public void action(BotExecution botExecution) {
        try {
            BotMaestroSDK maestro = new BotMaestroSDK();
            maestro.login(botExecution);
            // Acessando credencial no Orquestrador
            String credential = maestro.getCredential("Credential Test", "password");
            // Implemente aqui a sua lógica...
            ...
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    private void notFound(String label) {
        System.out.println("Element not found: "+label);
    }
    public static void main(String[] args) {
        BotExecutor.run(new FirstBot(), args);
    }
}
const main = async () => {
    const { BotMaestroSdk } = require('@botcity/botcity-maestro-sdk')
    const args = process.argv.slice(2)
    const [server, taskid, token] = args
    const maestro = new BotMaestroSdk()
    maestro.login("YOUR_SERVER_HERE", "YOUR_USER_HERE", "YOUR_KEY_HERE")
    const executionTask = await maestro.getTask(taskid)
    // Acessando credencial no Orquestrador
    const credential = await maestro.getCredential("Credential Test", "password")
}
main()
const main = async () => {
    import { BotMaestroSdk } from '@botcity/botcity-maestro-sdk'
    const args = process.argv.slice(2)
    const [server, taskid, token] = args
    const maestro: BotMaestroSdk = new BotMaestroSdk()
    maestro.login("YOUR_SERVER_HERE", "YOUR_USER_HERE", "YOUR_KEY_HERE")
    const executionTask: Task = await maestro.getTask(taskid)
    // Acessando credencial no Orquestrador
    const credential: string = await maestro.getCredential("Credential Test", "password")
}
main()
using Dev.BotCity.MaestroSdk.Model.AutomationTask;
using Dev.BotCity.MaestroSdk.Model.Execution;
using System;
using System.Threading.Tasks;
namespace FirstBot
{
    class Program
    {
        static async Task Main(string[] args)
        {
            BotMaestroSDK maestro = BotMaestroSDK.FromSysArgs();
            Execution execution = await maestro.GetExecutionAsync(maestro.GetTaskId());
            Console.WriteLine("Task ID is: " + execution.TaskId);
            Console.WriteLine("Task Parameters are: " + string.Join(", ", execution.Parameters));
            // Acessando credencial no Orquestrador
            string credential = await maestro.GetCredentialAsync("Credential Test", "password");
            // Implemente aqui a sua lógica...
        }
    }
}
Dica
Consulte as outras operações que podemos fazer com credencias utilizando o BotCity Maestro SDK.

