UiPath Documentation
uipath-cli
latest
false
Guia do usuário da UiPath CLI
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.

Como fazer: gerenciar recursos do Orchestrator

Tarefas diárias para gerenciar recursos de runtime do Orchestrator com "uip ou", abrangendo ativos, buckets, bibliotecas, filas, gatilhos e webhooks.

uip or é a superfície CRUD de uso geral sobre os recursos de runtime do Orchestrator: ativos, buckets (e arquivos dentro deles), bibliotecas, filas (e itens), gatilhos e webhooks — junto com trabalhos, processos e comandos de pastas documentados em outro lugar do este guia. Esta página coleta as tarefas que aparecem diariamente — criação de ativos em massa, movimentação de arquivos para dentro e para fora de buckets, envio de trabalho de fila, inspeção de gatilhos — como fragmentos que podem ser copiados.

A lista completa de sinalizadores para cada subcomando está na página de referência uip or e em suas páginas por recurso. Esta página abrange os padrões de uso comuns.

Observação:

uip or (esta página) é diferente de uip solution resource. uip or sempre chama o Orchestrator em um tenant ativo. uip solution resource lê somente declarações de recurso locais dentro de uma solução .uipx no disco. Em caso de dúvida, consulte o prefixo.

Convenções que você precisa conhecer primeiro​

Antes que qualquer fragmento funcione:

  • Autenticação. Cada uip or verbo chama o Orchestrator. Execute uip login primeiro. Execute uip login tenant set <name> para alternar o tenant ativo antes de uma chamada que tem como alvo um tenant diferente.
  • Escopo de pastas. Ativos, buckets, filas, itens de fila e gatilhos de tempo/fila têm escopo de pasta — transmita --folder-path (por exemplo Shared) ou --folder-key (GUID), ou --all-folders onde esse sinalizador for compatível. Bibliotecas, gatilhos de API e webhooks têm o escopo de tenant e rejeitam os sinalizadores de pastas.
  • Chaves. Listar GUIDs de retorno de verbos (key, identifier, uniqueKey). Passe-os para get, update e delete. Os campos numéricos id são internos; não os passe para comandos.
  • As operações destrutivas exigem -y, --yes. Cada verbo delete nesses recursos se recusa a ser executado sem ele — a CLI nunca solicita interativamente.
  • JSON é a saída padrão. Cada fragmento abaixo depende disso; consulte Formatos de saída.

Ativos​

Implantar ativos em massa a partir de um CSV​

Essa é a tarefa mais comum "gerenciar meus segredos e configuração". Dado um CSV como:

name,value,type,folderPath
ApiEndpoint,https://api.example.com,Text,Shared
MaxRetries,3,Integer,Shared
Debug,false,Bool,Shared
name,value,type,folderPath
ApiEndpoint,https://api.example.com,Text,Shared
MaxRetries,3,Integer,Shared
Debug,false,Bool,Shared

Faça loop sobre ele com bash simples + uip or assets create:

#!/usr/bin/env bash
set -euo pipefail

# Skip the header row
tail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do
  uip or assets create "$name" "$value" \
    --folder-path "$folder" \
    --type "$type"
done
#!/usr/bin/env bash
set -euo pipefail

# Skip the header row
tail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do
  uip or assets create "$name" "$value" \
    --folder-path "$folder" \
    --type "$type"
done

Uma nova execução na mesma pasta falhará em duplicatas. Duas maneiras de lidar com isso:

  • Padrão de upsert. Listar primeiro, depois create ou update por linha:

    tail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do
      existing=$(uip or assets list --folder-path "$folder" --name "$name" \
        --output-filter "Data[?name=='$name'] | [0].key" --output plain)
    
      if [ -n "$existing" ] && [ "$existing" != "null" ]; then
        uip or assets update "$existing" "$value"
      else
        uip or assets create "$name" "$value" --folder-path "$folder" --type "$type"
      fi
    done
    tail -n +2 ./assets.csv | while IFS=, read -r name value type folder; do
      existing=$(uip or assets list --folder-path "$folder" --name "$name" \
        --output-filter "Data[?name=='$name'] | [0].key" --output plain)
    
      if [ -n "$existing" ] && [ "$existing" != "null" ]; then
        uip or assets update "$existing" "$value"
      else
        uip or assets create "$name" "$value" --folder-path "$folder" --type "$type"
      fi
    done
    
  • Padrão de implantação da solução. Para conjuntos de ativos que são enviados junto com um pacote, declare-os no manifesto da solução e use uip solution deploy run --config-file — esse caminho é idempotente por design. Consulte Como fazer: empacotar e publicar uma solução.

Ativos do tipo Credential​

Os ativos Credential e Secret precisam de uma chave de armazenamento de credenciais:

# Find the credential store
STORE_KEY=$(uip or credential-stores list \
  --output-filter "Data[?name=='MyStore'] | [0].key" --output plain)

# Create the credential asset (value format: username:password)
uip or assets create ApiLogin "alice:s3cr3t" \
  --folder-path Shared \
  --type Credential \
  --credential-store-key "$STORE_KEY"
# Find the credential store
STORE_KEY=$(uip or credential-stores list \
  --output-filter "Data[?name=='MyStore'] | [0].key" --output plain)

# Create the credential asset (value format: username:password)
uip or assets create ApiLogin "alice:s3cr3t" \
  --folder-path Shared \
  --type Credential \
  --credential-store-key "$STORE_KEY"

Os valores de credencial e segredo nunca são retornados por list ou get; use assets get-asset-value (que ainda precisa de um escopo de pasta) para ler o valor dinâmico ou chame por meio do robô.

Compartilhamento de ativos entre pastas​

Crie uma vez em Shared e, em seguida, compartilhe para cada pasta que precisar dele:

ASSET_KEY=$(uip or assets list --folder-path Shared --name ApiEndpoint \
  --output-filter "Data[0].key" --output plain)

for folder in Production Staging Development; do
  uip or assets share "$ASSET_KEY" --folder-path "$folder"
done
ASSET_KEY=$(uip or assets list --folder-path Shared --name ApiEndpoint \
  --output-filter "Data[0].key" --output plain)

for folder in Production Staging Development; do
  uip or assets share "$ASSET_KEY" --folder-path "$folder"
done

Revogar com unshare. Consulte Ativos para obter a lista completa de verbos.

Buckets e arquivos de bucket​

Carregar um arquivo local​

BUCKET_KEY=$(uip or buckets list --folder-path Shared \
  --output-filter "Data[?name=='invoices'] | [0].key" --output plain)

uip or bucket-files upload "$BUCKET_KEY" "inbox/invoice-001.pdf" \
  --folder-path Shared \
  --file ./invoice-001.pdf
BUCKET_KEY=$(uip or buckets list --folder-path Shared \
  --output-filter "Data[?name=='invoices'] | [0].key" --output plain)

uip or bucket-files upload "$BUCKET_KEY" "inbox/invoice-001.pdf" \
  --folder-path Shared \
  --file ./invoice-001.pdf

O caminho dentro do bucket (inbox/invoice-001.pdf) é o segundo argumento para upload; --file é o caminho local a ser carregado. O tipo de conteúdo é detectado automaticamente; passe --content-type para substituir.

Baixar um arquivo​

uip or bucket-files download "$BUCKET_KEY" "reports/summary.csv" \
  --folder-path Shared \
  --destination ./summary.csv
uip or bucket-files download "$BUCKET_KEY" "reports/summary.csv" \
  --folder-path Shared \
  --destination ./summary.csv

--destination, o conteúdo é transmitido para stdout — útil para pipeline em um processador.

Listar e paginar​

# First page
uip or bucket-files list "$BUCKET_KEY" --folder-path Shared

# The response carries a continuationToken — pass it back to fetch the next page
uip or bucket-files list "$BUCKET_KEY" --folder-path Shared \
  --continuation-token "<token-from-previous-response>"
# First page
uip or bucket-files list "$BUCKET_KEY" --folder-path Shared

# The response carries a continuationToken — pass it back to fetch the next page
uip or bucket-files list "$BUCKET_KEY" --folder-path Shared \
  --continuation-token "<token-from-previous-response>"

As listagens de arquivos do bucket são o único recurso na CLI que usa um token de continuação em vez da paginação de deslocamento — os outros verbos da lista levam --limit / --offset.

URLs pré-assinados​

Se um robô ou serviço externo precisar de acesso direto ao blob sem passar pela CLI:

uip or bucket-files get-upload-url "$BUCKET_KEY" "inbox/incoming.pdf" \
  --folder-path Shared --expiry-in-minutes 30

uip or bucket-files get-download-url "$BUCKET_KEY" "reports/summary.csv" \
  --folder-path Shared --expiry-in-minutes 30
uip or bucket-files get-upload-url "$BUCKET_KEY" "inbox/incoming.pdf" \
  --folder-path Shared --expiry-in-minutes 30

uip or bucket-files get-download-url "$BUCKET_KEY" "reports/summary.csv" \
  --folder-path Shared --expiry-in-minutes 30

Ambos retornam um URL com limite de tempo definido para o caminho do arquivo único.

Filas e itens de filas​

Crie uma fila​

uip or queues create InvoiceQueue \
  --folder-path Shared \
  --max-retries 3 \
  --retention-period 90
uip or queues create InvoiceQueue \
  --folder-path Shared \
  --max-retries 3 \
  --retention-period 90

Lista completa de sinalizadores — --auto-retry, --enforce-unique-reference, --encrypted, configurações de retenção — na referência de filas.

Adicionar um único item de trabalho​

uip or queue-items add InvoiceQueue \
  --folder-path Shared \
  --specific-content '{"InvoiceId":"INV-001","Amount":1500}' \
  --priority High
uip or queue-items add InvoiceQueue \
  --folder-path Shared \
  --specific-content '{"InvoiceId":"INV-001","Amount":1500}' \
  --priority High

--specific-content a carga do JSON que o robô lerá.

Adicionar de um arquivo em massa​

cat > ./items.json <<'EOF'
[
  {"specificContent": {"InvoiceId":"INV-001"}, "priority": "Normal"},
  {"specificContent": {"InvoiceId":"INV-002"}, "priority": "Normal"}
]
EOF

ITEMS=$(jq -c . ./items.json)
uip or queue-items bulk-add InvoiceQueue \
  --folder-path Shared \
  --queue-items "$ITEMS" \
  --commit-type StopOnFirstFailure
cat > ./items.json <<'EOF'
[
  {"specificContent": {"InvoiceId":"INV-001"}, "priority": "Normal"},
  {"specificContent": {"InvoiceId":"INV-002"}, "priority": "Normal"}
]
EOF

ITEMS=$(jq -c . ./items.json)
uip or queue-items bulk-add InvoiceQueue \
  --folder-path Shared \
  --queue-items "$ITEMS" \
  --commit-type StopOnFirstFailure

Cada item aceita specificContent, priority, reference, deferDate, dueDate — não há nome de fila por item; a fila é o argumento posicional único (InvoiceQueue acima) compartilhado por todo o lote.

--commit-type controla o que acontece quando uma linha falha na validação: ProcessAllIndependently (padrão), StopOnFirstFailure ou AllOrNothing.

Inspecionar itens com falha​

uip or queue-items list --folder-path Shared \
  --queue-name InvoiceQueue \
  --status Failed \
  --output-filter "Data[].{key:uniqueKey, ref:reference, reason:processingException}"
uip or queue-items list --folder-path Shared \
  --queue-name InvoiceQueue \
  --status Failed \
  --output-filter "Data[].{key:uniqueKey, ref:reference, reason:processingException}"

Use queue-items get-history em um único uniqueKey para ver seu histórico de transição de estado completo — útil para diagnosticar loops de nova tentativa.

Marcar itens com falha para nova tentativa​

uip or queue-items set-review-status Retried \
  "<queue-item-key-1>" "<queue-item-key-2>"
uip or queue-items set-review-status Retried \
  "<queue-item-key-1>" "<queue-item-key-2>"

set-review-status fica com um dos Retried, Abandoned, Deleted.

Gatilhos​

Listar gatilhos em uma pasta​

uip or triggers list --type time --folder-path Shared --enabled \
  --output-filter "Data[].{name:name, cron:startProcessCron, enabled:isEnabled}"
uip or triggers list --type time --folder-path Shared --enabled \
  --output-filter "Data[].{name:name, cron:startProcessCron, enabled:isEnabled}"

Três tipos de gatilho: time, queue e api. Passe --type em cada verbo (ele volta para time). Os gatilhos de API têm o escopo de tenant — omita --folder-path.

Criar um gatilho de tempo​

RELEASE_KEY=$(uip or processes list --folder-path Shared --name InvoiceProcessing \
  --output-filter "Data[0].Key" --output plain)

uip or triggers create --type time \
  --name NightlyInvoices \
  --release-key "$RELEASE_KEY" \
  --runtime-type Unattended \
  --job-priority Normal \
  --folder-path Shared \
  --cron "0 0 2 * * ?" \
  --time-zone UTC
RELEASE_KEY=$(uip or processes list --folder-path Shared --name InvoiceProcessing \
  --output-filter "Data[0].Key" --output plain)

uip or triggers create --type time \
  --name NightlyInvoices \
  --release-key "$RELEASE_KEY" \
  --runtime-type Unattended \
  --job-priority Normal \
  --folder-path Shared \
  --cron "0 0 2 * * ?" \
  --time-zone UTC

O valor --cron usa o formato de 6 campos do Quartz (sec min hour dayOfMonth month dayOfWeek), não o cron padrão. "0 0 2 * * ?" é "todos os dias às 02:00".

Habilitar ou desabilitar um gatilho​

Não há um comando enable/disable dedicado — alterne um gatilho por meio de update:

uip or triggers update <trigger-key> --type time --folder-path Shared --disabled
uip or triggers update <trigger-key> --type time --folder-path Shared --enabled
uip or triggers update <trigger-key> --type time --folder-path Shared --disabled
uip or triggers update <trigger-key> --type time --folder-path Shared --enabled

Use triggers history para diagnosticar um gatilho que não está disparando — o log de disparo revela licenças ausentes, máquinas indisponíveis e outros blocos upstream.

Webhooks​

Os webhooks têm o escopo de tenant. Crie uma vez e o webhook é acionado em cada evento correspondente no tenant:

uip or webhooks create JobAlerts \
  --url https://hooks.example.com/uipath \
  --events "job.completed,job.faulted" \
  --secret "$WEBHOOK_SECRET"
uip or webhooks create JobAlerts \
  --url https://hooks.example.com/uipath \
  --events "job.completed,job.faulted" \
  --secret "$WEBHOOK_SECRET"

Liste os tipos de eventos disponíveis para um tenant:

uip or webhooks event-types
uip or webhooks event-types

Teste a entrega sem esperar um evento real:

uip or webhooks ping <webhook-key>
uip or webhooks ping <webhook-key>

Bibliotecas​

As bibliotecas têm o escopo de tenant (não de pasta) — elas residem no feed do tenant e são referenciadas por IDs de pacote como MyLib:1.0.0:

# Upload a new version
uip or libraries upload --file ./MyLib.1.0.0.nupkg

# See all versions of a package
uip or libraries versions MyLib

# Download a specific version
uip or libraries download MyLib:1.0.0 --destination ./MyLib.1.0.0.nupkg
# Upload a new version
uip or libraries upload --file ./MyLib.1.0.0.nupkg

# See all versions of a package
uip or libraries versions MyLib

# Download a specific version
uip or libraries download MyLib:1.0.0 --destination ./MyLib.1.0.0.nupkg

As chaves assumem a forma PackageId:Version — não um GUID.

Dicas de script​

  • Sempre passe --output-filter ao fornecer um único valor a uma variável. Evita invocações frágeis jq e valida no tempo de análise CLI — consulte Padrões de script.
  • Os verbos de lista retornam resultados paginados — --limit / --offset no máximo, --continuation-token em arquivos do bucket. Resultados vazios (zeras linhas em Data) ainda saem de 0 — a consulta da lista foi bem-sucedida; não há correspondências.
  • A maioria dos verbos de atualização/exclusão é entre pastas — a tabela de sinalizadores na seção de cada verbo de uip or diz isso explicitamente ("Pasta cruzada"). Apenas create e lista precisam do escopo da pasta nesses recursos.

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