UiPath Documentation
uipath-cli
latest
false
Guía del usuario de UiPath CLI
Importante :
Este contenido se ha traducido mediante traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Inicio de sesión de UIP

Sintaxis y opciones para `uip login`, que autentica UiPath CLI en UiPath Cloud y persiste la sesión localmente.

uip login autentica la CLI en UiPath Cloud y mantiene la sesión resultante dentro de una carpeta local .uipath/ . En caso de éxito, la CLI tiene un token de acceso y un tenant seleccionado; las herramientas ejecutadas por comandos posteriores los recogen automáticamente. Consulta Autenticación para el modelo de credenciales y Sesiones y credenciales para el lugar donde reside la carpeta.

Para comprobar el estado, consulta uip login status. Para eliminar una sesión, consulta uip logout.

Sinopsis​

uip login [--tenant <name>] [--organization <name>]
         [--authority <url>] [--client-id <id>] [--client-secret <secret>]
         [--client-assertion <jwt>] [--scope <scopes>] [--no-browser] [-f <folder>]
uip login status
uip login refresh [--login-validity <minutes>]
uip login which
uip login tenant list [-f <folder>]
uip login tenant set <name> [-f <folder>]
uip login profiles list [--all-fields]
uip login profiles delete [profile-name] [--all] -y
uip login [--tenant <name>] [--organization <name>]
         [--authority <url>] [--client-id <id>] [--client-secret <secret>]
         [--client-assertion <jwt>] [--scope <scopes>] [--no-browser] [-f <folder>]
uip login status
uip login refresh [--login-validity <minutes>]
uip login which
uip login tenant list [-f <folder>]
uip login tenant set <name> [-f <folder>]
uip login profiles list [--all-fields]
uip login profiles delete [profile-name] [--all] -y

Cada subcomando uip login respeta las opciones globales (--output, --output-filter, --log-level, --log-file, --profile, --interactive/--no-interactive). Los códigos de salida siguen el contrato estándar.

Inicio de sesión de UIP​

Se autentica de forma interactiva a través del navegador o de forma no interactiva utilizando credenciales de cliente de aplicación externa o un token OIDC federado (identidad de carga de trabajo).

Argumentos​

Nada.

Opciones​

  • -f, --file <folder> — Ruta a una carpeta de credenciales. La sesión persiste dentro de <folder>. Sin ella, la CLI utiliza la ubicación predeterminada (consulta Sesiones y credenciales). Mutuamente exclusivo con el marcador global --profile.
  • --authority <url> — URL de autoridad personalizada, por ejemplo https://cloud.uipath.com (predeterminada), https://govcloud.uipath.us (sector público) o un host de Automation Suite. El prefijo https:// se puede omitir (cloud.uipath.com funciona).
  • --client-id <id> : ID de cliente o ID de aplicación para una aplicación externa de UiPath. Acepta env.NAME para leer desde una variable de entorno.
  • --client-secret <secret> — Secreto de cliente para una aplicación externa confidencial. Acepta env.NAME para leer desde una variable de entorno. Mutuamente exclusivo con --client-assertion.
  • --client-assertion <jwt> — Token OIDC (JWT) para el inicio de sesión federado (identidad de carga de trabajo), utilizado en lugar de un secreto de cliente. Acepta env.NAME (recomendado) para leer desde una variable de entorno: pasar el token sin procesar como un valor literal imprime una advertencia, ya que de lo contrario aterrizaría en el historial del shell, los listados de procesos y los registros de CI. Requiere --client-id. Mutuamente exclusivo con --client-secret.
  • -s, --scope <scopes> — Ámbitos separados por comas o espacios (por ejemplo, "OR.Folders OR.Jobs"). Úselo con una aplicación externa o credenciales federadas.
  • -t, --tenant <name> — Nombre del tenant (modo no interactivo). Si se omite, empareja con el marcador global --interactive para que CLI pueda solicitar uno.
  • --organization <name> — Nombre lógico de la organización, preseleccionado durante el inicio de sesión del navegador. Omite el selector de la organización cuando tu usuario está en varias organizaciones. Se ignora (con una advertencia) al utilizar credenciales de cliente o inicio de sesión federado: la organización está fijada por --client-id en esos flujos.
  • --no-browser — No abrir un navegador; imprime la URL de autorización en stderr (con el prefijo UIPATH_AUTH_URL <url> para la automatización en grep) y bloquea hasta que llegue la devolución de llamada de inicio de sesión. Para inicio de sesión desatendido/controlado por automatización. También se puede configurar a través de UIPATH_CLI_NO_BROWSER=true. No tiene efecto (y se ignora, con una advertencia) cuando se utilizan credenciales de cliente o inicio de sesión federado: no se abre ningún navegador en esos flujos de ninguna manera. Cuando una persona vaya a iniciar sesión, haz que ejecute el comando en su propio terminal; ejecutarlo a través de la herramienta de shell de un agente oculta la URL impresa de ellos.

Esta página también documenta dos marcadores que no son específicos del inicio de sesión: consulta Opciones globales para ver el comportamiento completo:

  • --interactive / --no-interactive — después de la autenticación, fuerza (o suprime) la solicitud interactiva para seleccionar un tenant de la lista devuelta por la nube. No hay una forma abreviada --it.
  • --profile <name>: utiliza un perfil de inicio de sesión guardado con nombre en lugar de la ubicación de credenciales predeterminada. Mutuamente exclusivo con -f, --file.

Modos de credenciales​

  • Credenciales interactivas/de usuario : ejecuta uip login (opcionalmente con --interactive, --tenant o --organization). El flujo del navegador se completa en la autoridad de UiPath Cloud; los tokens resultantes se conservan dentro de la carpeta de credenciales.
  • Aplicación externa (credenciales de cliente, no interactiva) : pasa --client-id, --client-secret y --scope, normalmente con --tenant. Adecuado para ejecutores CI. Lee el secreto de una variable de entorno con --client-secret env.UIPATH_CLIENT_SECRET para mantenerlo fuera de tu historial de shell.
  • Identidad federada/de carga de trabajo (no interactiva) : pasa --client-id y --client-assertion (un OIDC JWT obtenido de tu proveedor de CI o agente de identidad de carga de trabajo en un paso anterior) en lugar de un secreto de cliente. --client-secret y --client-assertion no se pueden combinar.

Ejemplos​

# Browser-based interactive login, picks tenant at the end
uip login --interactive

# Log directly into a known org + tenant (no browser picker)
uip login --organization my-org --tenant DefaultTenant

# Log in to a non-default authority, e.g. an Automation Suite host
uip login --authority automation.acme-corp.com --tenant DefaultTenant

# External Application with secret from environment variable
uip login \
  --client-id "00000000-0000-0000-0000-000000000001" \
  --client-secret env.UIPATH_CLIENT_SECRET \
  --scope "OR.Folders OR.Jobs" \
  --tenant DefaultTenant

# Federated login (workload identity) — the OIDC token comes from your CI provider
uip login \
  --client-id "00000000-0000-0000-0000-000000000001" \
  --client-assertion env.CI_OIDC_TOKEN \
  --tenant DefaultTenant

# Headless / automation-driven login: print the authorize URL instead of opening a browser
uip login --no-browser --tenant DefaultTenant

# Custom credentials folder (useful for scoping per-project sessions)
uip login --interactive -f ./.uipath
# Browser-based interactive login, picks tenant at the end
uip login --interactive

# Log directly into a known org + tenant (no browser picker)
uip login --organization my-org --tenant DefaultTenant

# Log in to a non-default authority, e.g. an Automation Suite host
uip login --authority automation.acme-corp.com --tenant DefaultTenant

# External Application with secret from environment variable
uip login \
  --client-id "00000000-0000-0000-0000-000000000001" \
  --client-secret env.UIPATH_CLIENT_SECRET \
  --scope "OR.Folders OR.Jobs" \
  --tenant DefaultTenant

# Federated login (workload identity) — the OIDC token comes from your CI provider
uip login \
  --client-id "00000000-0000-0000-0000-000000000001" \
  --client-assertion env.CI_OIDC_TOKEN \
  --tenant DefaultTenant

# Headless / automation-driven login: print the authorize URL instead of opening a browser
uip login --no-browser --tenant DefaultTenant

# Custom credentials folder (useful for scoping per-project sessions)
uip login --interactive -f ./.uipath

Forma de datos (--output json)​

{
  "Code": "Authenticated",
  "Data": {
    "Status": "Logged in",
    "Organization": "my-org",
    "Tenant": "DefaultTenant"
  }
}
{
  "Code": "Authenticated",
  "Data": {
    "Status": "Logged in",
    "Organization": "my-org",
    "Tenant": "DefaultTenant"
  }
}

Modos de fallo​

  • Falta un tenant después de un inicio de sesión no interactivo que genera un ConfigError con Message: "No tenant selected" y te indica que vuelvas a ejecutar con --tenant <name> o --interactive.
  • Transporte los errores y las respuestas que no sean 2xx de la superficie de autoridad como AuthenticationError, con el estado HTTP original en Context.httpStatus cuando esté disponible.
  • Una referencia env.NAME mal formada en --client-id / --client-secret produce un ConfigError antes de cualquier llamada de red.

actualización de inicio de sesión de uip​

Actualiza de forma proactiva el token de acceso y emite una carga útil de sesión legible por la máquina (token de acceso, identidad de la organización/tenant, vencimiento). Destinado a consumidores programáticos (por ejemplo, una extensión IDE) que necesitan un token válido garantizado durante los próximos minutos, a diferencia de uip login status, que es un informe de estado y solo rota el token de forma accesoria cuando ya ha caducado, refresh fuerza una rotación con antelación cuando sea necesario.

Argumentos​

Nada.

Opciones​

  • --login-validity <minutes>: se actualiza solo si el token de acceso actual caduca en este número de minutos. Predeterminado 5. Supere 0 para omitir la comprobación proactiva y solo rotar si el token ya ha caducado. Intervalo 0–525600 (un año).

Ejemplos​

# Refresh and print a token guaranteed valid for the next 5 minutes (the default)
uip login refresh --output json

# Require at least 10 minutes of validity, forcing a refresh if the token expires sooner
uip login refresh --login-validity 10 --output json
# Refresh and print a token guaranteed valid for the next 5 minutes (the default)
uip login refresh --output json

# Require at least 10 minutes of validity, forcing a refresh if the token expires sooner
uip login refresh --login-validity 10 --output json

Forma de datos (--output json)​

{
  "Code": "LoginRefresh",
  "Data": {
    "Status": "Logged in",
    "Organization": "my-org",
    "Tenant": "DefaultTenant",
    "Expiration Date": "2026-04-18T10:30:00Z",
    "BaseUrl": "https://cloud.uipath.com",
    "OrganizationId": "00000000-0000-0000-0000-000000000001",
    "OrganizationName": "my-org",
    "TenantId": "00000000-0000-0000-0000-000000000002",
    "TenantName": "DefaultTenant",
    "AccessToken": "<jwt>"
  }
}
{
  "Code": "LoginRefresh",
  "Data": {
    "Status": "Logged in",
    "Organization": "my-org",
    "Tenant": "DefaultTenant",
    "Expiration Date": "2026-04-18T10:30:00Z",
    "BaseUrl": "https://cloud.uipath.com",
    "OrganizationId": "00000000-0000-0000-0000-000000000001",
    "OrganizationName": "my-org",
    "TenantId": "00000000-0000-0000-0000-000000000002",
    "TenantName": "DefaultTenant",
    "AccessToken": "<jwt>"
  }
}
Importante:

AccessToken solo se incluye cuando --output json está en vigor y --output se pasó explícitamente o la salida estándar no es interactiva (canalizada/redireccionada). Un uip login refresh simple e interactivo en un terminal nunca imprime el token; esto es deliberado, por lo que el token no aterriza en el desplazamiento hacia atrás por accidente. Code es LoginRefreshPartial en lugar de LoginRefresh cuando el token actualizado no se pudo persistir en el disco (la persona que llama sigue recibiendo un token válido y utilizable para el proceso actual).

Modos de fallo​

  • No se ha iniciado sesión, la actualización ha fallado o el token ha caducado sin token de actualización disponible: AuthenticationError, código de salida 2, con Instructions nombrando la causa específica.

inicio de sesión de uip que​

Imprime de dónde uip leería la autenticación para el directorio de trabajo actual: el diagnóstico exacto de "por qué no se responde mi sesión"; No tiene opciones; siempre informa sobre la resolución de acceso directo + inicio alternativa descrita en Sesiones y credenciales.

Argumentos​

Nada.

Opciones​

Nada.

Ejemplos​

uip login which --output json
uip login which --output json

Forma de datos: sesión basada en archivo (--output json)​

{
  "Code": "AuthFile",
  "Data": {
    "Path": "/Users/me/projects/foo/.uipath/.auth",
    "Exists": true,
    "Source": "ancestor"
  }
}
{
  "Code": "AuthFile",
  "Data": {
    "Path": "/Users/me/projects/foo/.uipath/.auth",
    "Exists": true,
    "Source": "ancestor"
  }
}

Source informa en qué parte de la cadena de acceso directo se encontró el archivo (por ejemplo, ancestor frente a la alternativa del directorio de inicio). Cuando el marcador global --profile nombra un perfil activo, la respuesta también incluye un campo Profile.

Forma de datos: sesión de variable de entorno (--output json)​

Cuando UIPATH_CLI_ENABLE_ENV_AUTH=true, which informa del modo env-var en lugar de un archivo:

{
  "Code": "AuthEnv",
  "Data": {
    "EnableVar": "UIPATH_CLI_ENABLE_ENV_AUTH",
    "AllVarsPresent": true,
    "MissingVars": [],
    "Vars": [
      "UIPATH_CLI_AUTH_TOKEN",
      "UIPATH_CLI_ORGANIZATION_NAME",
      "UIPATH_CLI_ORGANIZATION_ID",
      "UIPATH_CLI_TENANT_NAME",
      "UIPATH_CLI_TENANT_ID"
    ]
  }
}
{
  "Code": "AuthEnv",
  "Data": {
    "EnableVar": "UIPATH_CLI_ENABLE_ENV_AUTH",
    "AllVarsPresent": true,
    "MissingVars": [],
    "Vars": [
      "UIPATH_CLI_AUTH_TOKEN",
      "UIPATH_CLI_ORGANIZATION_NAME",
      "UIPATH_CLI_ORGANIZATION_ID",
      "UIPATH_CLI_TENANT_NAME",
      "UIPATH_CLI_TENANT_ID"
    ]
  }
}

MissingVars nunca incluye valores, solo los nombres de las variables que no están establecidas o están vacías, por lo que la respuesta siempre es segura para pegar en un ticket o chat.

Modos de fallo​

  • No se ha encontrado ningún archivo de credenciales en ningún lugar de la cadena de acceso: AuthenticationError, código de salida 2, con instrucciones para ejecutar uip login.
  • La ruta del archivo de credenciales resuelta existe, pero no se puede utilizar (por ejemplo, un directorio se encuentra en esa ruta o los permisos de archivo bloquean su lectura): Failure, código de salida 1: un problema de host/sistema de archivos, no un "registro de nuevo" problema.

lista de tenants de inicio de sesión de uip​

Enumera todos los tenants visibles para el usuario autenticado en la organización actual. Requiere un inicio de sesión activo.

Argumentos​

Nada.

Opciones​

  • -f, --file <folder> — Ruta a la carpeta de credenciales. El valor predeterminado es la sesión utilizada por el último uip login. Mutuamente exclusivo con el marcador global --profile.

Ejemplo​

uip login tenant list
uip login tenant list

Forma de datos (--output json)​

{
  "Code": "TenantList",
  "Data": [
    {
      "TenantName": "DefaultTenant",
      "TenantId": "a1b2c3d4-0000-0000-0000-000000000001"
    },
    {
      "TenantName": "ProductionTenant",
      "TenantId": "a1b2c3d4-0000-0000-0000-000000000002"
    }
  ]
}
{
  "Code": "TenantList",
  "Data": [
    {
      "TenantName": "DefaultTenant",
      "TenantId": "a1b2c3d4-0000-0000-0000-000000000001"
    },
    {
      "TenantName": "ProductionTenant",
      "TenantId": "a1b2c3d4-0000-0000-0000-000000000002"
    }
  ]
}

Si la sesión no ha iniciado sesión, el comando emite AuthenticationError con instrucciones para ejecutar uip login primero.

conjunto de tenant de inicio de sesión de UIP​

Selecciona el tenant activo por nombre. El tenant debe existir en la lista devuelta por login tenant list; la CLI actualiza la sesión almacenada con la nueva selección.

Argumentos​

  • <name> (obligatorio) : nombre del tenant tal como lo devuelve uip login tenant list.

Opciones​

  • -f, --file <folder> — Ruta a la carpeta de credenciales. El valor predeterminado es la sesión utilizada por el último uip login. Mutuamente exclusivo con el marcador global --profile.

Ejemplo​

uip login tenant set DefaultTenant
uip login tenant set DefaultTenant

Forma de datos (--output json)​

{
  "Code": "TenantSet",
  "Data": {
    "Name": "DefaultTenant",
    "Id": "a1b2c3d4-0000-0000-0000-000000000001"
  }
}
{
  "Code": "TenantSet",
  "Data": {
    "Name": "DefaultTenant",
    "Id": "a1b2c3d4-0000-0000-0000-000000000001"
  }
}

Modos de fallo​

  • Nombre de tenant desconocido produce ValidationError con Instructions enumerando los tenants disponibles, por ejemplo argument should be one of DefaultTenant, ProductionTenant.
  • Si CLI no puede actualizar la sesión almacenada, el error aparece como Failure con una sugerencia relacionada con los permisos.

lista de perfiles de inicio de sesión de uip​

Enumera cada perfil de inicio de sesión designado almacenado en ~/.uipath/profiles (consulta el marcador global --profile ), más la ubicación de las credenciales default .

Opciones​

  • --all-fields — Incluye también la URL de autoridad de cada perfil, la caducidad del token y la ruta del archivo de credenciales.

Ejemplos​

uip login profiles list
uip login profiles list
{
  "Code": "ProfileList",
  "Data": [
    { "Name": "default", "Active": true, "OrganizationName": "acme", "TenantName": "DefaultTenant", "Status": "Logged in" },
    { "Name": "staging", "Active": false, "OrganizationName": "acme-staging", "TenantName": "QA", "Status": "Expired" }
  ]
}
{
  "Code": "ProfileList",
  "Data": [
    { "Name": "default", "Active": true, "OrganizationName": "acme", "TenantName": "DefaultTenant", "Status": "Logged in" },
    { "Name": "staging", "Active": false, "OrganizationName": "acme-staging", "TenantName": "QA", "Status": "Expired" }
  ]
}
uip login profiles list --all-fields
uip login profiles list --all-fields

Url, ExpiresAt y Path solo se incluyen con --all-fields. En una tabla interactiva, se resalta cualquier perfil cuyo Status no sea Logged in.

eliminar perfiles de inicio de sesión de uip​

Eliminar un perfil de inicio de sesión designado y sus credenciales almacenadas. Esta es una eliminación real de archivos en el disco: no se puede deshacer.

Argumentos​

  • [profile-name] — Nombre del perfil a eliminar. Omitir al utilizar --all.

Opciones​

  • --all — Eliminar todos los perfiles nombrados en lugar de uno.
  • -y, --yes — Confirma la eliminación. Obligatorio : este comando nunca se solicita de forma interactiva.

Ejemplos​

uip login profiles delete staging --yes
uip login profiles delete staging --yes
{ "Code": "Message", "Data": { "Message": "Deleted profile 'staging'. Removed /home/alice/.uipath/profiles/staging" } }
{ "Code": "Message", "Data": { "Message": "Deleted profile 'staging'. Removed /home/alice/.uipath/profiles/staging" } }
uip login profiles delete --all --yes
uip login profiles delete --all --yes
{
  "Code": "DeleteResult",
  "Data": [
    { "Name": "staging", "Status": "deleted" },
    { "Name": "prod", "Status": "deleted" }
  ]
}
{
  "Code": "DeleteResult",
  "Data": [
    { "Name": "staging", "Status": "deleted" },
    { "Name": "prod", "Status": "deleted" }
  ]
}

Modos de fallo​

  • Al pasar un nombre de perfil y --all, o ninguno, se produce un error con ValidationError antes de tocar el disco.
  • default no se puede eliminar de esta manera: falla con ValidationError apuntándote a uip logout en su lugar, ya que default no está almacenado en ~/.uipath/profiles.
  • Eliminar el perfil actualmente seleccionado por --profile <name> en esta misma invocación falla con ValidationError (volver a ejecutar sin ese marcador).
  • Con --all, el perfil activo (si lo hay) se omite automáticamente en lugar de eliminarse, y se informa en la respuesta con Status: "skipped". Si omitirlo no deja nada más que eliminar, el comando falla con ValidationError en lugar de tener éxito silenciosamente.
  • Un nombre de perfil desconocido falla con Code: "not_found", apuntando a login profiles list.

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado