# Restoring automation dependencies

> * Create an external application.
* Run the CLI `exe` (for Windows Legacy) or `dll` (for Windows/Linux/macOS) file.
* Add the required Orchestrator [API access application scopes](https://docs.uipath.com/cicd-integrations/standalone/2025.10/user-guide/executing-uipath-cli-tasks).

## Prerequisites

* Create an external application.
* Run the CLI `exe` (for Windows Legacy) or `dll` (for Windows/Linux/macOS) file.
* Add the required Orchestrator [API access application scopes](https://docs.uipath.com/cicd-integrations/standalone/2025.10/user-guide/executing-uipath-cli-tasks).

To restore the dependenccies, take the following steps:

1. Run the `package` task, using `uipcli package`. You can notice a list of the available sub-tasks.
2. Specify the required parameters and run the `restore` sub-task.

   The following table describes the required parameters:

   | Parameter | Description |
   | --- | --- |
   | `Project(s) Path (pos. 0)` | Required. The path to a `project.json` file, or to a folder that contains `project.json` files. |
   | `--restoreFolder` | Required. Restore destination folder path. |
   | `--nugetConfigFilePath` | Optional. Path to the NuGet.Config file containing feeds. The `<clear />` tag from the specified file will be ignored and only sources will be taken into consideration. |
   | `--disableBuiltInNugetFeeds` | Disable built in nuget feeds. |
   | `--excludeConfiguredSources` | Optional. Excludes the built-in feeds and the NuGet sources configured at the user and machine level on the host running the CLI. The CLI resolves packages only from the feeds defined in `--nugetConfigFilePath`. See [Managing NuGet feeds](https://docs.uipath.com/cicd-integrations/standalone/2025.10/user-guide/managing-nuget-feeds#restricting-to-custom-feeds-only-with---excludeconfiguredsources). |
   | `-u`, `--libraryOrchestratorUsername` | Optional, useful only when you have dependencies from a library in Orchestrator. The Orchestrator username used for authentication. Must be used together with the password. |
   | `-p`, `--libraryOrchestratorPassword` | Optional, useful only when you have dependencies from a library in Orchestrator. The Orchestrator password used for authentication. Must be used together with the username. |
   | `-t`, `--libraryOrchestratorAuthToken` | Optional, useful only when you have dependencies from a library in Orchestrator. The Orchestrator refresh token used for authentication. Must be used together with the organization name and client id. |
   | `-a`, `--libraryOrchestratorAccountName` | Optional, useful only when you have dependencies from a library in Orchestrator. The Orchestrator organization name. Must be used together with the refresh token and client id. |
   | `-A`, `--libraryOrchestratorAccountForApp` | Optional, useful only when you have dependencies from a library in Orchestrator. The Orchestrator organization name. Must be used together with id, secret and scope(s) for external application. |
   | `-I`, `--libraryOrchestratorApplicationId` | Optional, useful only when you have dependencies from a library in Orchestrator. The external application id. Must be used together with organization name, secret and scope(s) for external application. |
   | `-S`, `--libraryOrchestratorApplicationSecret` | Optional, useful only when you have dependencies from a library in Orchestrator. The external application secret. Must be used together with organization name, id and scope(s) for external application. |
   | `--libraryOrchestratorApplicationScope` | Optional, useful only when you have dependencies from a library in Orchestrator. The space-separated list of application scopes. Must be used together with organization name, id and secret for external application. |
   | `--libraryOrchestratorUrl` | Optional, useful only when you have dependencies from a library in Orchestrator. The Orchestrator URL. |
   | `--libraryOrchestratorTenant` | Optional, useful only when you have dependencies from a library in Orchestrator. The Orchestrator tenant. |
   | `--libraryIdentityUrl` | The URL of your identity server. Required when the library Orchestrator runs on **UiPath Automation Suite** or **standalone Orchestrator** (on-premises MSI). Not needed for **Automation Cloud** — the CLI resolves the identity server from the cloud URL. |
   | `--traceLevel` | Specifies what types of log messages to output one of the following values: None, Critical, Error, Warning, Information, Verbose. Default value: Information. |
   | `-l`, `--language` | Language for the translated logs. |
   | `--ca-cert` | One or more trusted root CA certificate files (PEM, DER, or PKCS#7) used when validating the Orchestrator and Identity Server TLS certificates. Repeat the flag or comma-separate multiple paths. See [Trusting custom certificates](https://docs.uipath.com/cicd-integrations/standalone/2025.10/user-guide/trusting-custom-certificates) for details. |
   | `--pinnedpubkey` | Pin the server leaf certificate's public key. Format: `sha256//<base64>`. Checked in addition to standard certificate validation. See [Trusting custom certificates](https://docs.uipath.com/cicd-integrations/standalone/2025.10/user-guide/trusting-custom-certificates) for details. |

:::note Default Application Scopes
When using external application authentication without specifying the `--libraryOrchestratorApplicationScope` parameter, the CLI automatically applies these default Orchestrator scopes:

`OR.Assets OR.BackgroundTasks OR.Execution OR.Folders OR.Robots.Read OR.Machines.Read OR.Jobs OR.TestSets OR.TestSetExecutions OR.Monitoring OR.Settings.Read`
:::

:::tip Trusting custom certificates
For Orchestrator instances signed by a private Certificate Authority (such as UiPath Automation Suite), this command also accepts `--ca-cert` and `--pinnedpubkey` parameters. See [Trusting custom certificates](https://docs.uipath.com/cicd-integrations/standalone/2025.10/user-guide/trusting-custom-certificates) for scenarios and examples.
:::

## Usage

```
uipcli package restore <project_path> --restoreFolder <restore_directory> --nugetConfigFilePath <nuget_config_path> [--libraryOrchestratorUrl <orchestrator_url> --libraryOrchestratorTenant <orchestrator_tenant>] [--u <orchestrator_user> --p <orchestrator_pass>] [--t <auth_token> --a <account_name>] [-A <organization_name> -I <application_id> -S <application_secret> --libraryOrchestratorApplicationScope <application_scope>] [--libraryIdentityUrl <identity_url>] [--libraryOrchestratorFolder <folder_name>] [-l <language>] [--disableBuiltInNugetFeeds] [--excludeConfiguredSources] [--traceLevel <None|Critical|Error|Warning|Information|Verbose>]
```

## Minimal command examples

* `uipcli package restore "C:\userprofile\AutomationProject" --traceLevel Information --restoreFolder ""C:\userprofile\DependencyPackages"
  --nugetConfigFilePath "C:\userprofile\Package\NuGet.Config"`
* `uipcli package restore "C:\userprofile\AutomationProject" --traceLevel Information --restoreFolder "C:\userprofile\DependencyPackages"
  --libraryOrchestratorUrl "https://orch-23-10-paas.cloudapp.azure.com/" --libraryOrchestratorTenant "TenantName" -u "orchestratorUsername"
  -p "********" --orchestratorFolder "FolderName"`
* `uipcli package restore "C:\userprofile\AutomationProject" --traceLevel Information --restoreFolder "C:\userprofile\DependencyPackages"
  --libraryOrchestratorUrl "https://orch-23-10-paas.cloudapp.azure.com/" --libraryOrchestratorTenant "TenantName" -A "organizationName"
  -I "76000552-3e4f-4590-9317-cdb420001f1d" -S '********' --libraryOrchestratorApplicationScope "OR.Folders OR.BackgroundTasks
  OR.TestSets OR.TestSetExecutions OR.TestSetSchedules OR.Settings.Read OR.Robots.Read OR.Machines.Read OR.Execution OR.Assets
  OR.Users.Read OR.Jobs OR.Monitoring" --libraryOrchestratorFolder "FolderName" --libraryIdentityUrl "https://orch-23-10-paas.cloudapp.azure.com/identity"`
* `uipcli package restore "C:\userprofile\AutomationProject" --traceLevel Information --restoreFolder "C:\userprofile\DependencyPackages"
  --libraryOrchestratorUrl "https://automation-suite.base.url.com/" --libraryOrchestratorTenant "TenantName" -A "organizationName"
  -I "3f6239b9-e0e8-465e-a429-d9ffd1d9e57a" -S '********' --libraryOrchestratorApplicationScope "OR.Folders OR.BackgroundTasks
  OR.TestSets OR.TestSetExecutions OR.TestSetSchedules OR.Settings.Read OR.Robots.Read OR.Machines.Read OR.Execution OR.Assets
  OR.Users.Read OR.Jobs OR.Monitoring" --libraryOrchestratorFolder "FolderName"`
* `uipcli package restore "C:\userprofile\AutomationProject" --traceLevel Information --restoreFolder "C:\userprofile\DependencyPackages"
  --libraryOrchestratorUrl "https://cloud.uipath.com/" --libraryOrchestratorTenant "TenantName" -A "organizationName" -I "becc663c-8f1e-409a-a75f-c00330d80bc8"
  -S '********' --libraryOrchestratorApplicationScope "OR.Folders OR.BackgroundTasks OR.TestSets OR.TestSetExecutions OR.TestSetSchedules
  OR.Settings.Read OR.Robots.Read OR.Machines.Read OR.Execution OR.Assets OR.Users.Read OR.Jobs OR.Monitoring" --libraryOrchestratorFolder
  "FolderName"`

## Hermetic restore — resolve dependencies only from the explicit nuget.config

* `uipcli package restore "C:\userprofile\AutomationProject" --traceLevel Information --restoreFolder "C:\userprofile\DependencyPackages" --nugetConfigFilePath "C:\ci\nuget.config" --excludeConfiguredSources`
