- 概要
- はじめに
- 概念
- UiPath CLI を使用する
- UiPath for Coding Agents
- 使用ガイド
- CI/CD レシピ
- コマンド リファレンス
- 概要
- 終了コード
- グローバル オプション
- uip codedagent
- uip docsai
- add-test-data-entity
- テスト データのキューを追加
- 追加-テスト-データ-バリエーション
- 分析
- 開発
- プロジェクトを作成
- 差分
- アクティビティを検索
- GET-ANALYZER-RULES
- get-default-activity-xaml
- エラーを取得
- 手動テスト用のテスト ケースを取得
- 手動テストステップを取得
- get-versions
- Get-workflow-example
- indicate-application
- 要素を示す
- inspect-package
- install-data-fabric-entities
- パッケージのインストールまたは更新
- list-data-fabric-entities
- list-workflow-examples
- パッケージ化
- 元に戻す
- ファイル名を実行
- 検索テンプレート
- スタートスタジオ
- 実行を停止
- UIA
- UIP トレース
- 移行
- 参照とサポート
UiPath CLI ユーザー ガイド
UiPath CLI では、一般的な 3 つのユース ケースに対応する 3 つの認証フローがサポートされています。すなわち、ノート PC 上の開発者、外部アプリケーションを使用して Orchestrator を呼び出す CI/CD パイプライン、既にアクセス トークンを保持しているコンテナーまたはエフェメラル ランナーです。3 つはすべて同じ場所 (後続のすべての uip コマンドで再利用される認証済みセッション) で終了しますが、トークンの取得方法と CLI の更新方法が異なります。
フローを選択する
| あなたは。。。 | これを使用する | 方法 |
|---|---|---|
| ノート PC またはワークステーションを使用している開発者 | 対話型 OAuth2 | uip login ブラウザーを開き、一度サインインすると、トークンは自動的に保存および更新されます。 |
| CI/CD パイプラインまたはサーバー | 外部アプリケーション (クライアント資格情報) | UiPath で外部アプリを作成し、その ID とシークレットを uip login --client-id … --client-secret …に渡します。トークンは保存および更新されます。 |
| コンテナー、エフェメラル ランナー、または既にトークンを保持しているプロセス | 環境変数認証 | UIPATH_CLI_ENABLE_ENV_AUTH=trueを設定し、環境変数を使用してトークン + 組織/テナントを指定します。ファイルは書き込まれません。更新なし。 |
uip logout 最初の 2 つのフローからディスク上の資格情報をすべてクリアします。env-varフローにはクリアするものは何もありません—env変数の設定を解除します。
フロー 1 — 対話型 OAuth2
引数なしで uip login を実行します。
uip login
uip login
uip 、UiPath のサインイン ページで既定のブラウザーが開きます。認証後、UiPath はリッスンしているローカル コールバックにリダイレクト uip 、CLI によってテナントを選択するように求められます。テナントを選択するとセッションが保存され、完了です。
便利なフラグ:
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
資格情報の保存場所
既定では、セッションは .uipath/ フォルダー内に保存されます。uip このフォルダーを次の 3 か所で順番に検索します。
- 明示的なフォルダ —
--file <folder>を渡すと、CLI はそのフォルダを使用します。ファイル パスではなくフォルダーを渡します。 - 現在の作業ディレクトリから
.uipath/を探して移動し、プロジェクト フォルダーがユーザーのホームに触れることなく独自のセッションを実行できるようにします。 ~/.uipath/— 既定のフォールバックです。
ウォークアップ チェーンのどこにも .uipath/ が存在しない場合、 uip login は ~/.uipath/に 1 つを作成します。フォルダーの内容は不透明として扱います。 uip login、 uip login tenant set、および uip logoutで管理されます。
セッションの途中でテナントを管理する
このセッションには、一度に 1 つのアクティブなテナントが格納されます。完全なログイン フローを再実行せずに切り替えます。
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 には、現在の組織、テナント、およびトークンの有効期限が表示されます。
すべての uip or … コマンドは、1 回の呼び出しでセッション テナントをオーバーライドする --tenant <name> も受け付けます。これは、同じスクリプトで 2 つのテナントに対して、再度ログを記録せずに実行する必要がある場合に便利です。
更新は自動的に行われます
uip は、アクセス トークンの有効期限が近づくと、バックグラウンドで更新されます。更新トークン自体の有効期限が切れるか取り消された場合、またはテナント/組織を変更した場合を除き、 uip login を再実行する必要はありません。
フロー 2 — 外部アプリケーション (クライアント資格情報)
UiPath で外部アプリケーション (Automation Cloud: 管理→外部アプリケーション) を作成します。
- アプリケーションの種類: 機密
- 付与タイプ: クライアント資格情報
- スコープ: パイプラインに必要なスコープ (
OR.Folders、OR.Jobs、OR.Execution、OR.Assets、OR.Usersなど) です。
生成された アプリ ID と アプリ シークレットをコピーし、パイプラインのシークレット ストア (GitHub Actions シークレット、Azure DevOps 変数グループ、Jenkins 資格情報、コンテナーなど) に格納します。
パイプラインからサインインします。
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"
環境。VAR_NAMEプレフィックス
--client-id と --client-secret は、リテラル値、または実行時に環境変数に解決される特別なプレフィックス env. のいずれかを受け入れます。env.UIPATH_CLIENT_ID は、「 UIPATH_CLIENT_ID 環境変数から値を読み取る」という意味です。これにより、コマンド ラインで展開される --client-secret "$UIPATH_CLIENT_SECRET"とは異なり、シェルの履歴とプロセス リストからシークレット値が除外されます。
リテラル値は引き続き機能します。
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
UIPATH_CLIENT_ID/UIPATH_CLIENT_SECRET を環境変数として設定せずuip login自動的に取得されることを期待してください。UiPath CLI 1.0 より前のバージョンでは、 uip login --env および暗黙的な環境変数の読み取りがサポートされていました。それらは削除されました。フラグは、リテラル値または env. プレフィックスのいずれかを使用して明示的に渡す必要があります。
スコープの上書き
外部アプリに複数のスコープがあり、特定のスクリプトに対してより狭いセッションが必要な場合は、 --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"
フロー 3 — 環境変数認証 (アクセス トークンは既に手元にあります)
一部の環境 (別のパイプラインで構築されたコンテナー、スケジュールされたジョブ、テスト フィクスチャ) には既に有効な UiPath アクセス トークンが保持されており、対話型サインインやクライアントと資格情報の交換は必要ありません。環境変数認証フローを有効にするには、次のように設定します。
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"
UIPATH_CLI_ENABLE_ENV_AUTH=trueを使用すると、uip を呼び出すたびにこれらの変数から認証が行われ、.uipath/ フォルダーが完全にバイパスされます。uip loginステップはなく、ディスクには何も書き込まれません。
注意事項と制限事項
- 不透明なトークン。呼び出し元は、トークンの鮮度に対する責任を担います。更新フローはありません。トークンの有効期限が切れると、変数がローテーションされるまで、
uip login statusレポートExpiredとコマンドが失敗します。 - トークンから派生したサーバー URL です。JWTの
iss主張は権威があり、UIPATH_URLを設定しません。これにより、パイプラインが設定したUIPATH_URLトークンと一貫性がない場合のルーティングの誤りを防止します。 - ゲートは重要です。
UIPATH_CLI_ENABLE_ENV_AUTHが未設定の場合、またはリテラル文字列true以外に設定されている場合は、ファイルベースのフローが使用されます。ゲートのスペルミスは静かにフォールバックします—uip login statusに確認してください。 - 欠損値は明示的に失敗します。必要な変数が空の場合、
uipは、一般的な「未認証」ではなく、問題のある変数の名前付けに関する明確なエラーを返します。
env-var authを使用したGitHub Actionsステップの例:
- 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
サインアウトする
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 内部に保存されているセッションをクリア .uipath/。env-varフローには、変数の設定を解除して削除するものは何もありません。
トラブルシューティング
❌ ログインしていない
ウォークアップ チェーンに .uipath/ フォルダーが見つからなかったか、保存されたセッションが読み取れません。uip loginを実行 (または env-var フローを設定) して、再試行します。
トークンの有効期限が切れています
対話型アプリのセッションと外部アプリのセッションは、有効期限が近づくと自動的に更新されます。「 Expired」と表示される場合は、更新トークン自体の有効期限が切れているか、取り消されています。 uip loginを再実行してください。env-var 認証の場合は、 UIPATH_CLI_AUTH_TOKENをローテーションします。
複数の組織メンバー、間違った組織の選択
uip login に --organization <logical-name> を渡して組織の選択をバイパスするか、事後にuip login tenant listしてセッションが実際に何にバインドされているかを確認します。
企業プロキシがブラウザのコールバックをブロックする
対話型フローは、 127.0.0.1でローカル コールバック ポートを開きます。ほとんどのプロキシはループバックをそのままにしますが、一部の積極的なセットアップではループバックがブロックされます。フロー 2 (外部アプリケーション) またはフロー 3 (env-var 認証) を使用して回避します — どちらもブラウザのコールバックを完全に回避します。
参照
- UiPath CLI のインストール — 認証前の 1 回限りの設定。
- 構成 — 環境変数とフラグの優先順位。
- セッションと資格情報 — 資格情報フォルダーのディスク上のレイアウト。
- uip login reference、 uip logout reference。