Reusable service for interacting with UiPath Orchestrator APIs (folders, assets, buckets, and more).
$ dotnet add package Yash.OrchestratorA utility library for interacting with UiPath Cloud Orchestrator APIs. Provides a reusable OrchestratorService class that simplifies access to folders, assets, storage buckets, and files — with support for both direct credential and Studio-integrated token authentication.
Yash.Orchestrator NuGet package as a dependency in your UiPath plugin or library project.OrchestratorService using either client credentials or an IAccessProvider.InitializeAsync() to populate folders, assets, buckets, and bucket files.The OrchestratorService class is the main entry point. It provides high-level, folder-aware access to UiPath Cloud resources with built-in refresh and download methods.
var service = new OrchestratorService("https://cloud.uipath.com/org/account", "clientId", "secret", log);
await service.InitializeAsync();
foreach (var (folder, assets) in service.Assets)
{
Console.WriteLine($"{folder.DisplayName} has {assets.Count} assets");
}
🔐 Token authentication via:
IAccessProvider (from Studio integration context)🗂️ Folder-aware access to:
🔁 Refresh methods to update all collections dynamically
🪝 Logs events using TraceEventType and customizable log actions
📦 File downloads via signed URI
| Property | Type | Description |
|---|---|---|
BaseURL | string? | Base URL for Orchestrator API |
Token | string | OAuth2 access token |
Folders | ObservableCollection<Folder> | List of accessible folders |
Assets | ObservableCollection<KeyValuePair<Folder, ObservableCollection<Asset>>> | Map of folder → assets |
Buckets | ObservableCollection<KeyValuePair<Folder, ObservableCollection<Bucket>>> | Map of folder → buckets |
BucketFiles | ObservableCollection<KeyValuePair<Bucket, ObservableCollection<BucketFile>>> | Map of bucket → files |
| Method | Description |
|---|---|
InitializeAsync() | Initializes and refreshes all data |
UpdateTokenAsync(force) | Updates the token using either credentials or provider |
RefreshFoldersAsync() | Fetches all available folders |
RefreshAssetsAsync() | Fetches assets scoped to each folder |
RefreshBucketsAsync() | Fetches storage buckets per folder |
RefreshBucketFilesAsync() | Fetches files in each bucket |
DownloadBucketFile() | Downloads a file from storage buckets using a signed URI |
await service.DownloadBucketFile(bucket, bucketFile, "C:\\Downloads\\MyFile.csv");
This method:
GET requestSupports two authentication modes:
| Mode | Details |
|---|---|
| Client Credentials | Provide BaseURL, ClientId, and ClientSecret |
| IAccessProvider | Provide an implementation via UiPath Studio plugin context |
RestSharp: HTTP communicationNewtonsoft.Json: JSON deserializationUiPath.Activities.Api: Optional for Studio plugin integrationThis project is licensed under the MIT License.
Built and maintained by Yash Brahmbhatt.