- Visão geral
- Introdução
- Conceitos
- Usando o UiPath CLI
- UiPath para agentes de codificação
- Guias de instruções
- Receitas de CI/CD
- Referência de comando
- Visão geral
- Códigos de saída
- Opções globais
- Agente de código uip
- Documento da UIP
- adicionar-tipo-dados-de-teste
- adicionar-dados-de-teste-fila
- adicionar-teste-variação de dados
- Analisar
- Criar
- criar projeto
- Comparação
- encontrar atividades
- obter-analisador-regras
- obter-padrão-atividade-xaml
- obter-erros
- obter-casos-de-teste-manuais
- obter-etapas-de-teste-manual
- Obter versões
- obter-fluxo-de-trabalho-exemplo
- indicar aplicativo
- indicar elemento
- inspecionar pacote
- instalar-data-fabric-entities
- instalar-ou-atualizar pacotes
- listar-data-fabric-entities
- listar-exemplos-de-fluxo-de-trabalho
- Empacotar
- restore
- arquivo de execução
- modelos-pesquisar
- Iniciar Studio
- interromper a execução
- UIA
- Traces da UIP
- Migração
- Referência e suporte
Guia do usuário da UiPath CLI
A UiPath CLI é compatível com três fluxos de autenticação que mapeiam para os três casos de uso comuns: um desenvolvedor em um laptop, um pipeline de CI/CD chamando o Orchestrator com um aplicativo externo e um contêiner ou executor efêmero que já contém um token de acesso. Todos os três terminam no mesmo lugar — uma sessão autenticada que cada comando uip subsequente reutiliza — mas diferem na forma como obtém o token e como a CLI o atualiza.
Escolha um fluxo
| Você está… | Use isto | Como |
|---|---|---|
| Um desenvolvedor em um laptop ou estação de trabalho | OAuth2 interativo | uip login abre um navegador, você faz login uma vez, os tokens são armazenados e atualizados automaticamente. |
| Um pipeline ou servidor de CI/CD | Aplicativo externo (credenciais do cliente) | Crie um aplicativo externo no UiPath, passe seu ID e segredo para uip login --client-id … --client-secret …. Os tokens são armazenados e atualizados. |
| Um contêiner, executor efêmero ou qualquer processo que já tenha um token | Autenticação da variável de ambiente | Defina UIPATH_CLI_ENABLE_ENV_AUTH=true e forneça o token + organização/tenant por meio de env vars. Nenhum arquivo é escrito; sem atualização. |
uip logout todas as credenciais no disco dos dois primeiros fluxos. O fluxo env-var não tem nada para limpar — desmarque as variáveis env.
Fluxo 1 — OAuth2 interativo
Execute uip login sem argumentos:
uip login
uip login
uip seu navegador padrão na página de logon do UiPath. Depois de autenticar, a UiPath redireciona de volta para um retorno de chamada local que uip está ouvindo, e a CLI solicita que você escolha um tenant. Quando o tenant é selecionado, a sessão é salva, e pronto.
Sinalizadores úteis:
uip login --tenant DefaultTenant # skip the tenant picker
uip login --organization my-org # skip the org picker for users in multiple orgs
uip login --interactive # explicitly show the tenant picker even if --tenant was set
uip login --authority https://example.com # point at a non-default identity authority (Automation Suite, staging)
uip login --scope "OR.Folders OR.Jobs" # restrict the session to specific scopes
uip login --file /path/to/creds # store credentials in a non-default folder
uip login --tenant DefaultTenant # skip the tenant picker
uip login --organization my-org # skip the org picker for users in multiple orgs
uip login --interactive # explicitly show the tenant picker even if --tenant was set
uip login --authority https://example.com # point at a non-default identity authority (Automation Suite, staging)
uip login --scope "OR.Folders OR.Jobs" # restrict the session to specific scopes
uip login --file /path/to/creds # store credentials in a non-default folder
Onde as credenciais são armazenadas
Por padrão, a sessão é armazenada dentro de uma pasta .uipath/ . uip procura essa pasta em três lugares, em ordem:
- Pasta explícita — se você passou
--file <folder>, a CLI usa essa pasta. Passe a pasta, não um caminho de arquivo. - Caminho acima do diretório de trabalho atual procurando
.uipath/— para que uma pasta do projeto possa carregar sua própria sessão sem afetar a página inicial do usuário. ~/.uipath/o fallback padrão.
Quando não existir nenhum .uipath/ em qualquer lugar na cadeia principal, uip login criará um em ~/.uipath/. Trate o conteúdo da pasta como opaco — eles são gerenciados por uip login, uip login tenant set e uip logout.
Gerenciar tenants no meio da sessão
A sessão armazena um único tenant ativo de cada vez. Alterne sem executar novamente o fluxo de login completo:
uip login tenant list # show all tenants available to your account
uip login tenant set MyTenant # switch the active tenant
uip login tenant list # show all tenants available to your account
uip login tenant set MyTenant # switch the active tenant
uip login status a organização atual, o tenant e a expiração do token.
Cada comando uip or … também aceita --tenant <name> para substituir o tenant de sessão para uma única chamada — útil quando você precisa executar em dois tenants no mesmo script sem registrar em log novamente.
A atualização é automática
uip os tokens de acesso em segundo plano quando estão próximos da expiração. Você não precisa executar novamente uip login a menos que o próprio token de atualização expire ou seja revogado, ou você altere tenants/organizações.
Fluxo 2 — Aplicativo externo (credenciais do cliente)
Crie um aplicativo externo no UiPath (Automation Cloud: Admin → Aplicativos externos) com:
- Tipo de aplicativo: confidencial
- Tipo de concessão: credenciais do cliente
- Escopos: os escopos de que seu pipeline precisa (por exemplo,
OR.Folders,OR.Jobs,OR.Execution,OR.Assets,OR.Users)
Copie o ID do aplicativo e o Segredo do aplicativo gerados e armazene-os no armazenamento de segredo do pipeline (segredos do GitHub Actions, grupos de variáveis do Azure DevOps, credenciais do Jenkins, Vault etc.).
Faça login a partir do pipeline:
uip login \
--client-id env.UIPATH_CLIENT_ID \
--client-secret env.UIPATH_CLIENT_SECRET \
--tenant "$UIPATH_TENANT"
uip login \
--client-id env.UIPATH_CLIENT_ID \
--client-secret env.UIPATH_CLIENT_SECRET \
--tenant "$UIPATH_TENANT"
O prefixo env.var_NAME
--client-id e --client-secret aceitam um valor literal ou o prefixo especial env. que é resolvido em uma variável de ambiente no runtime. env.UIPATH_CLIENT_ID significa "leia o valor da variável de ambiente UIPATH_CLIENT_ID ". Isso mantém os valores secretos fora do histórico do shell e das listagens de processos — ao contrário de --client-secret "$UIPATH_CLIENT_SECRET", que se expande na linha de comando.
Os valores literais ainda funcionam:
uip login --client-id 3c7af0…-… --client-secret s3cr3t… # works, but the secret is visible in history
uip login --client-id 3c7af0…-… --client-secret s3cr3t… # works, but the secret is visible in history
Não defina UIPATH_CLIENT_ID / UIPATH_CLIENT_SECRET como variáveis de ambiente e espere que uip login os colete automaticamente. Antes do UiPath CLI 1.0, uip login --env e a leitura de env-var implícita eram compatíveis; eles foram removidos. Você deve passar o sinalizador explicitamente, com um valor literal ou com o prefixo env. .
Substituições de escopo
Se o Aplicativo externo tiver vários escopos e você quiser uma sessão mais restrita para um script específico, passe --scope:
uip login \
--client-id env.UIPATH_CLIENT_ID \
--client-secret env.UIPATH_CLIENT_SECRET \
--tenant "$UIPATH_TENANT" \
--scope "OR.Folders OR.Jobs"
uip login \
--client-id env.UIPATH_CLIENT_ID \
--client-secret env.UIPATH_CLIENT_SECRET \
--tenant "$UIPATH_TENANT" \
--scope "OR.Folders OR.Jobs"
Fluxo 3 — Autenticação de variável de ambiente (token de acesso já em mãos)
Alguns ambientes — contêineres criados por outro pipeline, trabalhos agendados, conjuntos de teste — já possuem um token de acesso da UiPath válido e não precisam de login interativo ou troca de credenciais do cliente. Habilite o fluxo de autenticação env-var definindo:
export UIPATH_CLI_ENABLE_ENV_AUTH=true
export UIPATH_CLI_AUTH_TOKEN="$UIPATH_TOKEN" # JWT access token
export UIPATH_CLI_ORGANIZATION_NAME=my-org
export UIPATH_CLI_ORGANIZATION_ID="$UIPATH_ORG_ID"
export UIPATH_CLI_TENANT_NAME=DefaultTenant
export UIPATH_CLI_TENANT_ID="$UIPATH_TENANT_ID"
export UIPATH_CLI_ENABLE_ENV_AUTH=true
export UIPATH_CLI_AUTH_TOKEN="$UIPATH_TOKEN" # JWT access token
export UIPATH_CLI_ORGANIZATION_NAME=my-org
export UIPATH_CLI_ORGANIZATION_ID="$UIPATH_ORG_ID"
export UIPATH_CLI_TENANT_NAME=DefaultTenant
export UIPATH_CLI_TENANT_ID="$UIPATH_TENANT_ID"
Com UIPATH_CLI_ENABLE_ENV_AUTH=true, cada invocação uip autentica-se a partir dessas variáveis e ignora totalmente a pasta .uipath/ . Não há etapa uip login e nada é gravado no disco.
Observações e limitações
- Token opaco. O chamador é responsável pela atualização do token. Não há fluxo de atualização. Quando o token expira,
uip login statusrelataExpirede os comandos falham até que a variável seja rotacionada. - A URL do servidor é derivada do token. A declaração
issno JWT é autorizada — você não defineUIPATH_URL. Isso evita erros de roteamento quando um pipeline defineUIPATH_URLde forma inconsistente com o token. - A porta é importante. Se
UIPATH_CLI_ENABLE_ENV_AUTHnão estiver definido ou for definido como qualquer coisa diferente da string literaltrue, o fluxo baseado em arquivo será usado. Um erro ortográfico o gateway retorna silenciosamente — verifique comuip login status. - Os valores ausentes falham explicitamente. Se qualquer variável obrigatória estiver vazia,
uipretorna um erro claro nomeando a variável ofensiva, não um genérico "não autenticado".
Exemplo da etapa GitHub Actions usando a autenticação env-var:
- name: Run uip against Orchestrator
env:
UIPATH_CLI_ENABLE_ENV_AUTH: "true"
UIPATH_CLI_AUTH_TOKEN: ${{ secrets.UIPATH_TOKEN }}
UIPATH_CLI_ORGANIZATION_NAME: contoso
UIPATH_CLI_ORGANIZATION_ID: ${{ secrets.UIPATH_ORG_ID }}
UIPATH_CLI_TENANT_NAME: Default
UIPATH_CLI_TENANT_ID: ${{ secrets.UIPATH_TENANT_ID }}
run: uip or folders list --output json
- name: Run uip against Orchestrator
env:
UIPATH_CLI_ENABLE_ENV_AUTH: "true"
UIPATH_CLI_AUTH_TOKEN: ${{ secrets.UIPATH_TOKEN }}
UIPATH_CLI_ORGANIZATION_NAME: contoso
UIPATH_CLI_ORGANIZATION_ID: ${{ secrets.UIPATH_ORG_ID }}
UIPATH_CLI_TENANT_NAME: Default
UIPATH_CLI_TENANT_ID: ${{ secrets.UIPATH_TENANT_ID }}
run: uip or folders list --output json
Fazer logout
uip logout # clear the default credentials folder
uip logout --file /path/to/creds # clear a non-default credentials folder
uip logout # clear the default credentials folder
uip logout --file /path/to/creds # clear a non-default credentials folder
logout limpa a sessão armazenada dentro de .uipath/. No fluxo env-var não há nada para remover — desmarque as variáveis.
Solução de problemas
❌ Não conectado
Nenhuma pasta .uipath/ foi encontrada na cadeia atual ou a sessão armazenada está ilegível. Execute uip login (ou defina o fluxo env-var) e tente novamente.
Token expirado
As sessões de Aplicativo interativo e Externo são atualizadas automaticamente quando estão próximas da expiração. Se você vir Expired, o próprio token de atualização expirou ou foi revogado — execute uip login novamente. Para autenticação do env-var, rotacione UIPATH_CLI_AUTH_TOKEN.
Vários membros da organização, organização errada escolhida
Passe --organization <logical-name> em uip login para ignorar o seletor de organizações ou uip login tenant list após o fato para ver ao que a sessão está realmente associada.
O proxy corporativo bloqueia o retorno de chamada do navegador
O fluxo interativo abre uma porta de retorno de chamada local 127.0.0.1. A maioria dos proxies deixa o loopback inalterado, mas algumas configurações robustas o bloqueiam. Contorne usando o Fluxo 2 (aplicativo externo) ou o Fluxo 3 (env-var auth) — ambos evitam totalmente o retorno de chamada do navegador.
Veja também
- Instalação do UiPath CLI — configuração única antes da autenticação.
- Configuração — variáveis de ambiente e precedência de sinalizador.
- Sessões e credenciais — layout em disco da pasta de credenciais.
- referência de login uip, referência de logout uip.
- Escolha um fluxo
- Fluxo 1 — OAuth2 interativo
- Onde as credenciais são armazenadas
- Gerenciar tenants no meio da sessão
- A atualização é automática
- Fluxo 2 — Aplicativo externo (credenciais do cliente)
- O prefixo env.var_NAME
- Substituições de escopo
- Fluxo 3 — Autenticação de variável de ambiente (token de acesso já em mãos)
- Observações e limitações
- Fazer logout
- Solução de problemas
- ❌ Não conectado
- Token expirado
- Vários membros da organização, organização errada escolhida
- O proxy corporativo bloqueia o retorno de chamada do navegador
- Veja também