UiPath CLI 用户指南
uip会话是将命令绑定到特定 UiPath 组织和租户的状态,并且可以让 CLI 出示有效的访问令牌,而无需在每次调用时提示用户。交互式流程和外部应用程序流程的会话将保留在磁盘上,并根据环境变量重建 env-var 流程的会话。本页说明该状态的存在位置、 uip如何找到它,以及在租户或计算机之间移动时会出现什么情况。
凭据文件夹
uip login将会话保留在名为.uipath/的文件夹中。视为不透明其内容 — 由uip login 、 uip login tenant set和uip logout管理,磁盘布局是一个实现细节,可能会在不同版本之间发生变化。该文件夹包含访问令牌、刷新令牌以及活动组织和租户。
保护文件夹。它包含可以模拟您会话的令牌,直到它们被撤销。在多用户或共享环境中,将其保存在主目录中,对其内容具有通常的0600权限。在开发者计算机上,通常将其保留在uip login放置的位置即可。如果项目本地会话是基于开发者的,则将.uipath/添加到.gitignore 。
位置解析 (临时)
运行任何uip命令时,CLI 会按以下顺序查找凭据文件夹:
- 显式路径— 如果调用命令时使用了
-f /path/to/folder,则使用该文件夹。路径可以是绝对路径,也可以是相对路径。 - 从当前目录向上遍历— 从
cwd开始,CLI 检查./.uipath/,然后在父链中向上遍历,查找相同的文件夹。以找到的第一个路径为准。 - 用户主目录— 如果在临时窗口中未找到项目本地文件夹,则 CLI 会回退到
~/.uipath/。
uip login写入将由下一个命令读取的路径:
- 如果您在临时链上已有
.uipath/的目录中运行uip login,则登录将刷新该会话。 - 否则,系统将在您的主目录中创建
~/.uipath/。
为何无需预约?
从cwd开始,项目文件夹可以进行自己的会话,而无需修改您的主目录。将.uipath/文件夹放置在存储库根目录中,则从存储库中运行uip每个人都将选取该项目的登录名,这对于每个项目的客户端凭据、暂存租户或演示环境非常有用。
正在覆盖位置
覆盖查找的三种方法:
-f, --file <folder>和uip login— 仅uip logout指定文件夹用于此命令。- 单独的主目录 — 在共享构建服务器上,运行
HOME=/srv/build-home uip login以写入/srv/build-home/.uipath/。 uip completion和其他命令不采用-f标志,并始终使用“无预约 + 主页”回退。
检查:
# print the current session status (reads via walk-up)
uip login status
# print the current session status (reads via walk-up)
uip login status
uip login status始终通过无预约 + 主页回退读取;它不接受-f 。要检查非默认文件夹中的会话,请在运行uip login status之前切换到该目录(或其子目录),或使用uip login tenant list -f /path/to/creds列出可用租户。
活动组织和租户
一个会话一次存储一个组织和一个租户。租户是 UiPath 的概念,用于限定文件夹、作业、队列和资源的作用域,实际上是每当您运行uip or …时 CLI 都会到达的“帐户”。
更改活动租户,而无需重新进行身份验证:
uip login tenant list # show all tenants this session can access
uip login tenant set MyTenant # switch the active tenant
uip login tenant list # show all tenants this session can access
uip login tenant set MyTenant # switch the active tenant
uip login tenant set在后台为新租户创建新的访问令牌/刷新令牌,并就地更新存储的会话。
在任何uip or …调用上传递--tenant <name> ,即可在不更改磁盘会话的情况下覆盖会话的活动租户:
uip or folders list --tenant Staging
uip or jobs start "$PROCESS_KEY" --tenant Production
uip or folders list --tenant Staging
uip or jobs start "$PROCESS_KEY" --tenant Production
刷新令牌
访问令牌是短暂的。当 CLI 检测到存储的访问令牌即将过期时,它会使用刷新令牌请求新的令牌,并静默更新存储的会话。除非发生以下情况之一,否则不需要重新运行uip login :
- 刷新令牌本身已过期或被撤销(通常在数周不活动后,或在管理员强制注销时)。
- 您更改了组织。
- 您需要一个与对会话进行身份验证时不同的作用域集。
刷新失败时, uip login status报告Expired ;这是再次运行uip login信号。
env-var 流程 (无文件)
由UIPATH_CLI_ENABLE_ENV_AUTH=true启用的第三个身份验证流程完全绕过凭据文件夹。每个uip命令都从环境变量中读取令牌和租户,按原样使用,而不将任何内容写入磁盘。
对于以下情况,这是正确的选择:
- 从父管道接收令牌的容器。
- 其中将凭据保留到磁盘非常浪费,或者是被禁止的临时 CI 运行程序。
- CLI 在调用之间必须为无状态的任何环境。
与基于文件的流程的差异:
- 无刷新。令牌对
uip不透明 — 如果令牌已过期,调用者将负责轮换令牌。 uip logout不执行任何操作。没有要删除的文件。将环境变量取消设置为“退出登录”。- 基本 URL 派生自令牌。JWT 带有的任何
iss声明都被视为授权声明 — 不要将UIPATH_URL与UIPATH_CLI_AUTH_TOKEN一起设置,否则您将取消同步。
有关完整的变量集和 GitHub Actions/容器示例,请参阅身份验证 — 流 3 。
注销
基于文件的流:
uip logout # clear ~/.uipath/ or the walk-up match
uip logout -f /path/to/creds # clear a specific credentials folder
uip logout # clear ~/.uipath/ or the walk-up match
uip logout -f /path/to/creds # clear a specific credentials folder
logout会清除存储的会话。在再次运行uip login之前,后续的uip or …调用将失败,返回代码为AuthenticationError (退出代码2 )。要也使服务器端的会话失效,请在 Automation Cloud 中撤销外部应用程序的密码,或退出您的用户帐户。
Env-var 流程:取消设置UIPATH_CLI_ENABLE_ENV_AUTH (为了安全起见,取消设置令牌变量)。
另请参阅
- 身份验证— 写入或绕过凭据文件夹的三个流程。
- 配置— 环境变量优先级,位于“凭据”文件夹旁边,但与“凭据”文件夹分开。
- uip 登录参考、 uip 登录状态参考、 uip 注销参考— 每个命令的标志列表和示例。
- 安装 UiPath CLI — 删除凭据和数据— 卸载后清理。