UiPathOrch.psd1
|
# # Module manifest for module 'UiPathOrch' # # Generated by: Yoshifumi Tsuda # # Generated on: 2023/08/28 # @{ # Script module or binary module file associated with this manifest. RootModule = 'UiPathOrch.dll' # Version number of this module. ModuleVersion = '1.2.1' # Supported PSEditions CompatiblePSEditions = @('Core') # ID used to uniquely identify this module GUID = '7098583d-d092-4fe9-bf36-a652e7a51efb' # Author of this module Author = 'Yoshifumi Tsuda' # Company or vendor of this module CompanyName = 'UiPath' # Copyright statement for this module Copyright = 'Copyright 2023-2026 UiPath' # Description of the functionality provided by this module Description = 'PSDrives and cmdlets for UiPath Orchestrator. 💡 First time? Run: Get-OrchHelp' # Minimum version of the PowerShell engine required by this module PowerShellVersion = '7.4.2' # Name of the PowerShell host required by this module # PowerShellHostName = '' # Minimum version of the PowerShell host required by this module # PowerShellHostVersion = '' # Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. # DotNetFrameworkVersion = '' # Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. # ClrVersion = '' # Processor architecture (None, X86, Amd64) required by this module # ProcessorArchitecture = '' # Modules that must be imported into the global environment prior to importing this module # RequiredModules = @() # Assemblies that must be loaded prior to importing this module # RequiredAssemblies = @() # Script files (.ps1) that are run in the caller's environment prior to importing this module. # ScriptsToProcess = @() # Type files (.ps1xml) to be loaded when importing this module # TypesToProcess = @() # Format files (.ps1xml) to be loaded when importing this module FormatsToProcess = @('UiPathOrch.Format.ps1xml') # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess NestedModules = @('UiPathOrch.psm1') # Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. FunctionsToExport = @( 'Enable-OrchUserAttended', 'Disable-OrchUserAttended', 'Enable-OrchPersonalWorkspace', 'Disable-OrchPersonalWorkspace', 'Find-OrchFolderNoUserAssigned', 'Get-OrchJobVideo', 'Format-OrchQueueItem', 'Format-OrchTestDataQueueItem' ) # Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. CmdletsToExport = @( 'Import-OrchConfig', 'New-OrchPSDrive', 'Invoke-OrchApi', 'Switch-OrchCurrentUser', 'Get-OrchPSDrive', 'Get-OrchLibrary', 'Get-OrchLibraryVersion', 'Remove-OrchLibrary', 'Import-OrchLibrary', 'Export-OrchLibrary', 'Copy-OrchLibrary', 'Get-OrchPackage', 'Copy-OrchPackage', 'Get-OrchPackageVersion', 'Remove-OrchPackage', 'Import-OrchPackage', 'Export-OrchPackage', 'Get-OrchJob', 'Start-OrchJob', 'Stop-OrchJob', 'Restart-OrchJob', 'Resume-OrchJob', 'Open-OrchJob', 'Get-OrchLog', 'Get-OrchAuditLog', 'Get-OrchJobMedia', 'Export-OrchJobMedia', 'Remove-OrchJobMedia', 'Get-OrchProcess', 'New-OrchProcess', 'Update-OrchProcess', 'Copy-OrchProcess', 'Remove-OrchProcess', 'Edit-OrchProcess', 'Update-OrchProcessVersion', 'Reset-OrchProcessVersion', 'Get-OrchProcessRequirement', 'Get-OrchRobot', 'Get-OrchUser', 'Get-OrchUserPrivilege', 'Add-OrchUser', 'Update-OrchUser', 'Copy-OrchUser', 'Remove-OrchUser', 'Remove-OrchRoleFromUser', 'Get-OrchCurrentUser', 'Update-OrchCurrentUserURPassword', 'Get-OrchLicenseNamedUser', 'Get-OrchLicenseRuntime', 'Enable-OrchLicenseRuntime', 'Disable-OrchLicenseRuntime', 'Get-PmAuditLog', 'Get-PmAuthenticationSetting', 'Get-PmLicense', 'Get-PmLicenseAllocation', 'Get-PmLicenseInventory', 'Get-PmLicenseContract', 'Get-PmLicensedUser', 'Get-PmLicensedGroup', 'Remove-PmLicensedGroup', 'Add-PmLicenseToPmLicensedGroup', 'Remove-PmAllocationFromPmLicensedGroup', 'Remove-PmLicenseFromPmLicensedGroup', 'Get-OrchClassicRobot', 'Get-OrchClassicEnvironment', 'Get-OrchUserSession', 'Get-OrchMachineSession', 'Get-OrchUnattendedSession', 'Clear-OrchInactiveSession', 'Get-OrchTask', 'Get-OrchTaskAcrossFolder', 'Set-OrchTask', 'Remove-OrchTask', 'Enable-OrchMaintenanceMode', 'Disable-OrchMaintenanceMode', 'Get-OrchJobStats', 'Get-OrchLicenseStats', 'Get-OrchRole', 'Set-OrchRole', 'Remove-OrchRole', 'Copy-OrchRole', 'Get-OrchCalendar', 'Remove-OrchCalendar', 'Copy-OrchCalendar', 'Add-OrchCalendarDate', 'Remove-OrchCalendarDate', 'Get-OrchPersonalWorkspace', 'Remove-OrchPersonalWorkspace', 'Get-OrchFolderUsage', 'Get-OrchFolderUser', 'Add-OrchFolderUser', 'Copy-OrchFolderUser', 'Move-OrchFolderUser', 'Remove-OrchFolderUser', 'Add-OrchRoleToFolderUser', 'Remove-OrchRoleFromFolderUser', 'Get-OrchMachine', 'Update-OrchMachine', 'New-OrchMachine', 'Remove-OrchMachine', 'Copy-OrchMachine', 'Get-OrchMachineClientSecretId', 'Add-OrchMachineClientSecret', 'Remove-OrchMachineClientSecret', 'Get-OrchFolderMachine', 'Add-OrchFolderMachine', 'Copy-OrchFolderMachine', 'Remove-OrchFolderMachine', 'Enable-OrchFolderMachineInherit', 'Disable-OrchFolderMachineInherit', 'Get-OrchFolderMachineAccountMapping', 'Enable-OrchFolderMachineAccountMapping', 'Disable-OrchFolderMachineAccountMapping', 'Get-OrchAsset', 'Set-OrchAsset', 'Copy-OrchAsset', 'Remove-OrchAsset', 'Set-OrchCredentialAsset', 'Get-OrchCredentialAsset', 'Set-OrchSecretAsset', 'Get-OrchSecretAsset', 'Remove-OrchAssetUserValue', 'Get-OrchCredentialStore', 'Copy-OrchCredentialStore', 'Update-OrchCredentialStore', 'Remove-OrchCredentialStore', 'Get-OrchAssetLink', 'Add-OrchAssetLink', 'Remove-OrchAssetLink', 'Get-OrchBucketLink', 'Add-OrchBucketLink', 'Remove-OrchBucketLink', 'Get-OrchQueueLink', 'Add-OrchQueueLink', 'Remove-OrchQueueLink', 'Get-OrchTrigger', 'New-OrchTrigger', 'Update-OrchTrigger', 'Remove-OrchTrigger', 'Copy-OrchTrigger', 'Enable-OrchTrigger', 'Disable-OrchTrigger', 'Test-OrchTrigger', 'Get-OrchApiTrigger', 'Remove-OrchApiTrigger', 'Copy-OrchApiTrigger', 'Enable-OrchApiTrigger', 'Disable-OrchApiTrigger', 'Get-OrchEventTrigger', 'Remove-OrchEventTrigger', 'Enable-OrchEventTrigger', 'Disable-OrchEventTrigger', 'Get-OrchQueue', 'New-OrchQueue', 'Update-OrchQueue', 'Copy-OrchQueue', 'Remove-OrchQueue', 'Get-OrchQueueItem', 'Import-OrchQueueItem', 'Redo-OrchQueueItem', 'Copy-OrchQueueItem', 'Remove-OrchQueueItem', 'Get-OrchTestSet', 'Copy-OrchTestSet', 'Remove-OrchTestSet', 'Start-OrchTestSet', 'Get-OrchTestCase', 'Get-OrchTestCaseExecution', 'Get-OrchTestCaseAssertion', 'Remove-OrchTestCase', 'Get-OrchTestSetExecution', 'Stop-OrchTestSetExecution', 'Get-OrchTestSetSchedule', 'Copy-OrchTestSetSchedule', 'Remove-OrchTestSetSchedule', 'Enable-OrchTestSetSchedule', 'Disable-OrchTestSetSchedule', 'Get-OrchTestDataQueue', 'Copy-OrchTestDataQueue', 'Remove-OrchTestDataQueue', 'Get-OrchTestDataQueueItem', 'Reset-OrchTestDataQueueItem', 'Get-OrchAlert', 'Get-OrchBucket', 'New-OrchBucket', 'Copy-OrchBucket', 'Update-OrchBucket', 'Remove-OrchBucket', 'Get-OrchBucketItem', 'Export-OrchBucketItem', 'Import-OrchBucketItem', 'Remove-OrchBucketItem', 'Get-OrchWebhook', 'Copy-OrchWebhook', 'Update-OrchWebhook', 'Remove-OrchWebhook', 'Enable-OrchWebhook', 'Disable-OrchWebhook', 'Get-OrchWebhookEventType', 'Test-OrchWebhook', 'Get-OrchSetting', 'Set-OrchSetting', 'Get-OrchExecutionSetting', 'Get-OrchWebSetting', 'Get-OrchAuthenticationSetting', 'Get-OrchActivitySetting', 'Get-OrchConnectionString', 'Get-OrchLicense', 'Get-OrchUpdateSetting', 'Get-OrchActionCatalog', 'Copy-OrchActionCatalog', 'Remove-OrchActionCatalog', 'Search-OrchDirectory', 'Search-PmDirectory', 'Resolve-PmDirectoryNameBulk', 'Get-PmUser', 'Update-PmUser', 'Remove-PmUser', 'New-PmUser', 'Copy-PmUser', 'Get-PmRobotAccount', 'Set-PmRobotAccount', 'Copy-PmRobotAccount', 'Remove-PmRobotAccount', 'Get-PmGroup', 'New-PmGroup', 'Copy-PmGroup', 'Remove-PmGroup', 'Get-PmGroupMember', 'Add-PmGroupMember', 'Move-PmGroupMember', 'Remove-PmGroupMember', 'Get-PmExternalApiResource', 'Get-PmExternalApplication', 'Copy-PmExternalApplication', 'Remove-PmExternalApplication', 'Get-PmAccessAllowedMember', 'Get-DuRole', 'Get-DuDocumentType', 'Get-DuClassifier', 'Get-DuExtractor', 'Get-DuUser', 'Add-DuUser', 'Remove-DuRoleFromDuUser', 'Get-TmConfiguration', 'Get-TmProjectSetting', 'Get-TmProjectPermission', 'Get-TmServerInfo', 'Get-TmRequirement', 'Remove-TmRequirement', 'Get-TmTestCase', 'Remove-TmTestCase', 'Get-TmTestSet', 'Remove-TmTestSet', 'Get-TmTestExecution', 'Get-OrchHelp', 'Clear-OrchCache', 'Get-OrchConfigPath', 'Edit-OrchConfig', 'Set-OrchLocation', 'Get-OrchLogLocation', 'Open-OrchLogLocation', 'New-OrchUserMappingCsv', 'Test-OrchUserMappingCsv' ) # Variables to export from this module VariablesToExport = @() # Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. AliasesToExport = @('!Show-OrchGuide') # DSC resources to export from this module # DscResourcesToExport = @() # List of all modules packaged with this module # ModuleList = @() # List of all files packaged with this module # FileList = @() # Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. PrivateData = @{ PSData = @{ # Tags applied to this module. These help with module discovery in online galleries. Tags = @('UiPath', 'Orchestrator', 'RPA', 'Automation', 'PSDrive', 'PSProvider', 'Cloud', 'OnPremises') # A URL to the license for this module. LicenseUri = 'https://github.com/UiPath-Services/UiPathOrch/blob/master/LICENSE' # A URL to the main website for this project. ProjectUri = 'https://github.com/UiPath-Services/UiPathOrch' # A URL to an icon representing this module. # IconUri = '' # ReleaseNotes of this module. # Single-quoted here-string (@'...'@) so apostrophes (e.g. "task's") inside the # body don't have to be doubled. The closing '@ MUST be at column 0 (no leading # whitespace) — that's the only termination rule. ReleaseNotes = @' Patch release: a `Copy-Item` bug that silently shared the source entity into destination folders on same-drive copies, plus a follow-up cache-invalidation bug in the link cmdlets that left the target folder's view stale until the next `Clear-OrchCache`. `Export-OrchBucketItem -Recurse` also stops duplicating downloads of linked buckets, and tab completion on the link cmdlets has been tightened. Most of these surfaced once users started exercising the asset / queue / bucket link feature shipped in 1.2.0. ## Bug Fixes - **`Copy-Item` no longer shares the SOURCE entity into destination folders on same-drive copies.** When you copied a folder containing linked assets / queues / buckets to another folder on the same drive, the dst didn't actually get its own copy of those entities — it got a pointer to the src. `Get-OrchAsset` against the dst returned the same Id as the src, and `Set-OrchAsset` against what looked like the dst's asset silently mutated the src's value. Only entities that already had at least one link in src were affected; unlinked entities were copied cleanly. Cross-drive copies were unaffected. (Root cause: `Copy-Item`'s source-to-destination folder mapping matched source folders against themselves on same-drive runs; now uses a relative-path rebase based on the source folder being copied and its destination counterpart.) - **Stale target-folder cache after `Add-Orch{Asset|Bucket|Queue}Link` and `Remove-Orch{Asset|Bucket|Queue}Link`.** After linking an entity from `Orch1:\Foo` to `Orch1:\Bar`, queries against `Bar` (e.g. `Get-OrchAsset`, `Get-OrchAssetLink`) returned the cached pre-link snapshot — the freshly-shared entity was missing from `Bar`'s view until the next `Clear-OrchCache`. The cmdlets now precisely invalidate the affected entity's link-visibility cache and the link target folders' per-folder entity list. ## Changed - **`Export-OrchBucketItem -Recurse` deduplicates linked buckets across the walk.** A bucket linked to N folders appears in every folder's enumeration with the same Id, so the previous code wrote the same items into one folder path per folder it was accessible from (e.g. 3 items × 3 folders = 9 file writes for 3 unique files). That was a faithful mirror of the source folder layout but wasted disk and bandwidth. The cmdlet now writes the items under the first folder it sees the bucket from and emits a `WriteWarning` for each subsequent encounter, so the link is surfaced rather than silently dropped. If you want the per-folder mirror, scope the next call (e.g. `-Path SomeSpecificFolder`) to a single accessible folder at a time. - **Tab completion tightened on the link cmdlets.** `Get-Orch{Asset|Bucket|Queue}Link` and `Remove-Orch{Asset|Bucket|Queue}Link` `-Name` now only suggests entity names that actually have a link beyond their home folder. `Remove-Orch{...}Link -Link` now also has a completer that suggests the folders the entity is currently linked to. Both filter against `-Name` / `-Link` values already supplied in the same call. ## Internal - `Copy-Item`'s link-re-establishing step switched from "return after the first matching destination folder" to iterating all matches with Id-based dedup. Defensive — same end state as before in normal incremental copies, but more robust if a single share-API call fails partway or if the destination happens to contain non-linked duplicates of the same name. - `release.yml` now runs `dotnet format --verify-no-changes` and `dotnet test` before `Publish-Module`, mirroring CI. The 1.2.0 release exposed that the Release workflow could publish to PSGallery before CI reported failure — the two ran in parallel and Release usually finished first. - 3-link test data entities (`asset-shared3` / `bucket-shared3` / `queue-shared3`) added to `TestData/Fixture`, plus a new Pester `Copy-Item link reproduction` Describe verifying the Copy-Item / Export bugs above end-to-end against a real tenant. - Per-entity precision in the link cache invalidation that runs after Add/Remove-Link API calls — replaces the previous drive-wide flush of every entity's link-visibility cache. Unrelated entities' cached data is no longer collateral damage of an unrelated link change. - Tightened completers share scaffolding through a small generic base hierarchy, so the asset / bucket / queue variants are each defined in a few lines that just supply the entity-specific API hooks. '@ # Prerelease string of this module # Prerelease = '' # Flag to indicate whether the module requires explicit user acceptance for install/update/save # RequireLicenseAcceptance = $false # External dependent modules of this module # ExternalModuleDependencies = @() } # End of PSData hashtable } # End of PrivateData hashtable # HelpInfo URI of this module # HelpInfoURI = '' # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. # DefaultCommandPrefix = '' } |