# Restoring automation dependencies

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

## Prerequisites

* Create an external application.
* Run the CLI `exe` (for Windows) or `dll` (for Linux) file.
* Add the required Orchestrator [API access application scopes](https://docs.uipath.com/cicd-integrations/standalone/2024.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 |
   | --- | --- |
   | `--restoreFolder` | Required. Restore destination folder path. |
   | `--nugetConfigFilePath` | Optional. Path to the NuGet.Config file containing feeds. |
   | `-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`(**Required** for **PaaS** or **MSI** deployments) | URL of your identity server. |
   | `--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. |
   | `--disableBuiltInNugetFeeds` | Disable built in nuget feeds. |
   | `Project(s) Path (pos. 0)` | Required. The path to a `project.json` file, or to a folder that contains `project.json` files. |

## 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] [--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"`
