UiPath Documentation
uipath-cli
latest
false
Importante :
Este conteúdo foi traduzido com auxílio de tradução automática. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Guia do usuário da UiPath CLI

Autenticação

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 istoComo
Um desenvolvedor em um laptop ou estação de trabalhoOAuth2 interativouip login abre um navegador, você faz login uma vez, os tokens são armazenados e atualizados automaticamente.
Um pipeline ou servidor de CI/CDAplicativo 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 tokenAutenticação da variável de ambienteDefina 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:

  1. Pasta explícita — se você passou --file <folder>, a CLI usa essa pasta. Passe a pasta, não um caminho de arquivo.
  2. 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.
  3. ~/.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.

Dica:

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
AVISO:

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 status relata Expired e os comandos falham até que a variável seja rotacionada.
  • A URL do servidor é derivada do token. A declaração iss no JWT é autorizada — você não define UIPATH_URL. Isso evita erros de roteamento quando um pipeline define UIPATH_URL de forma inconsistente com o token.
  • A porta é importante. Se UIPATH_CLI_ENABLE_ENV_AUTH não estiver definido ou for definido como qualquer coisa diferente da string literal true, o fluxo baseado em arquivo será usado. Um erro ortográfico o gateway retorna silenciosamente — verifique com uip login status.
  • Os valores ausentes falham explicitamente. Se qualquer variável obrigatória estiver vazia, uip retorna 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

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades