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.12.2'

# 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 = 'Open-source PSDrives and cmdlets for managing UiPath Orchestrator. Not an official abbreviation of, or part of, the Orchestrator product. 💡 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-OrchProductVersion',
'Resolve-OrchAuthError',

'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',
'Get-OrchProcessDetail',
'New-OrchProcess',
'Update-OrchProcess',
'Copy-OrchProcess',
'Compare-OrchProcess',
'Remove-OrchProcess',
'Edit-OrchProcess',
'Update-OrchProcessVersion',
'Reset-OrchProcessVersion',
'Get-OrchProcessRequirement',

'Get-OrchRobot',

'Get-OrchUser',
'Compare-OrchUser',
'Get-OrchUserDetail',
'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-PmGroupLicense',
'Add-PmGroupLicense',
'Remove-PmGroupLicense',
'Remove-PmGroupLicenseAllocation',
'Remove-PmLicensedGroup',

'Get-PmUserLicense',
'Add-PmUserLicense',
'Remove-PmUserLicense',
'Remove-PmLicensedUser',

'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',
'Compare-OrchRole',

'Get-OrchCalendar',
'Remove-OrchCalendar',
'Copy-OrchCalendar',
'Compare-OrchCalendar',

'Get-OrchCalendarDate',
'Add-OrchCalendarDate',
'Remove-OrchCalendarDate',

'Get-OrchPersonalWorkspace',
'Remove-OrchPersonalWorkspace',
'Get-OrchFolderUsage',

'Get-OrchFolderUser',
'Compare-OrchFolderUser',
'Add-OrchFolderUser',
'Copy-OrchFolderUser',
'Move-OrchFolderUser',
'Remove-OrchFolderUser',

'Add-OrchRoleToFolderUser',
'Remove-OrchRoleFromFolderUser',

'Get-OrchMachine',
'Update-OrchMachine',
'New-OrchMachine',
'Remove-OrchMachine',
'Copy-OrchMachine',
'Compare-OrchMachine',
'Get-OrchMachineClientSecretId',
'Add-OrchMachineClientSecret',
'Remove-OrchMachineClientSecret',

'Get-OrchFolderMachine',
'Compare-OrchFolderMachine',
'Add-OrchFolderMachine',
'Copy-OrchFolderMachine',
'Remove-OrchFolderMachine',
'Enable-OrchFolderMachineInherit',
'Disable-OrchFolderMachineInherit',

'Get-OrchFolderMachineAccountMapping',
'Enable-OrchFolderMachineAccountMapping',
'Disable-OrchFolderMachineAccountMapping',

'Get-OrchAsset',
'Set-OrchAsset',
'Copy-OrchAsset',
'Compare-OrchAsset',
'Move-OrchAsset',
'Remove-OrchAsset',

'Set-OrchCredentialAsset',
'Get-OrchCredentialAsset',

'Set-OrchSecretAsset',
'Get-OrchSecretAsset',

'Remove-OrchAssetUserValue',

'Get-OrchCredentialStore',
'Copy-OrchCredentialStore',
'Compare-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',
'Get-OrchTriggerDetail',
'New-OrchTrigger',
'Update-OrchTrigger',
'Remove-OrchTrigger',
'Copy-OrchTrigger',
'Compare-OrchTrigger',
'Enable-OrchTrigger',
'Disable-OrchTrigger',
'Test-OrchTrigger',

'Get-OrchApiTrigger',
'New-OrchApiTrigger',
'Update-OrchApiTrigger',
'Remove-OrchApiTrigger',
'Copy-OrchApiTrigger',
'Compare-OrchApiTrigger',
'Enable-OrchApiTrigger',
'Disable-OrchApiTrigger',

'Get-OrchEventTrigger',
'Compare-OrchEventTrigger',
'Remove-OrchEventTrigger',
'Enable-OrchEventTrigger',
'Disable-OrchEventTrigger',

'Get-OrchQueue',
'New-OrchQueue',
'Update-OrchQueue',
'Copy-OrchQueue',
'Compare-OrchQueue',
'Move-OrchQueue',
'Remove-OrchQueue',

'Get-OrchQueueItem',
'Import-OrchQueueItem',
'Redo-OrchQueueItem',
'Copy-OrchQueueItem',
'Remove-OrchQueueItem',

'Get-OrchTestSet',
'Compare-OrchTestSet',
'Get-OrchTestSetDetail',
'New-OrchTestSet',
'Copy-OrchTestSet',
'Remove-OrchTestSet',
'Start-OrchTestSet',

'Get-OrchTestCase',
'Get-OrchTestCaseExecution',
'Get-OrchTestCaseAssertion',
'Remove-OrchTestCase',

'Get-OrchTestSetExecution',
'Stop-OrchTestSetExecution',

'Get-OrchTestSetSchedule',
'Compare-OrchTestSetSchedule',
'New-OrchTestSetSchedule',
'Update-OrchTestSetSchedule',
'Copy-OrchTestSetSchedule',
'Remove-OrchTestSetSchedule',
'Enable-OrchTestSetSchedule',
'Disable-OrchTestSetSchedule',

'Get-OrchTestDataQueue',
'Compare-OrchTestDataQueue',
'New-OrchTestDataQueue',
'Copy-OrchTestDataQueue',
'Remove-OrchTestDataQueue',

'Get-OrchTestDataQueueItem',
'Import-OrchTestDataQueueItem',
'Reset-OrchTestDataQueueItem',

'Get-OrchAlert',

'Get-OrchBucket',
'New-OrchBucket',
'Copy-OrchBucket',
'Compare-OrchBucket',
'Move-OrchBucket',
'Update-OrchBucket',
'Remove-OrchBucket',

'Get-OrchBucketItem',
'Copy-OrchBucketItem',
'Export-OrchBucketItem',
'Import-OrchBucketItem',
'Remove-OrchBucketItem',

'Get-OrchWebhook',
'New-OrchWebhook',
'Copy-OrchWebhook',
'Compare-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',
'Compare-OrchActionCatalog',
'New-OrchActionCatalog',
'Copy-OrchActionCatalog',
'Remove-OrchActionCatalog',

'Search-OrchDirectory',
'Search-PmDirectory',
'Resolve-PmDirectoryNameBulk',

'Get-PmUser',
'Update-PmUser',
'Remove-PmUser',
'New-PmUser',
'Copy-PmUser',

'Get-PmRobotAccount',
'New-PmRobotAccount',
'Set-PmRobotAccount',
'Copy-PmRobotAccount',
'Remove-PmRobotAccount',

'Get-PmUserPreference',
'Set-PmUserPreference',
'Copy-PmUserPreference',
'Get-PmNotificationSubscription',
'Set-PmNotificationSubscription',
'Copy-PmNotificationSubscription',

'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 = @'
1.12.2
 
Fixed four independent defects in the drive's HTTP diagnostic log.
 
Fixed: the on-premises username/password sign-in (POST /api/Account/Authenticate) wrote the bearer
token to the log in plaintext at Trace/Verbose. That flow returns the token under ABP's `result`
key, outside the OAuth2/OIDC vocabulary the redaction set was built from, so it was never masked.
Only that one auth endpoint was affected -- Automation Cloud, Automation Suite, PKCE,
confidential-app and PAT drives never had the token in the log. If you have shared or archived logs
from an on-premises username/password drive at Trace/Verbose, treat those tokens as exposed.
 
Fixed: a transient I/O error silently destroyed log entries. The writer swallowed the exception,
reported success, and the entries were discarded -- while the statistics still reported
DroppedEntries = 0. A failed write is now retried on the next write, and anything genuinely
abandoned (an unwritable path, or a retention cap reached during a long outage) is counted.
 
Fixed: log blocks could be written out of order, because each was handed to the thread pool and
forgotten, shuffling the sequence numbers. Blocks are now written inline, in the order produced.
 
Fixed: log directories and files created on Linux/macOS were world-readable -- they inherited the
process umask (commonly 0755/0644) while the config file had always been 0600, though the logs
hold the same class of secret (request and response bodies at Trace/Verbose and on every error).
New log directories are now created 0700 and new log files 0600; paths created by earlier versions
keep their existing permissions.
 
Fixed: Set-OrchBucketItem reported an unsupported storage provider as "The method or operation is
not implemented." The error now names the verb the provider actually returned and states which
uploads are supported; a provider that omitted the verb no longer throws NullReferenceException.
 
Fixed: throttled requests (429/503/504) retried in lockstep on a fixed 500ms/1s/2s backoff,
re-creating the burst that tripped the throttle -- the shape produced by the -Recurse fan-outs. The
delay is now spread by +/-25%. A server-supplied Retry-After is still honoured exactly as sent.
 
Changed: the log file is held open while a drive is actively logging and released after 5 seconds
without a write (writing through an open handle is far cheaper than reopening per entry). While the
handle is held, Windows refuses any open declaring FileShare.Read -- Compress-Archive, Get-FileHash,
Remove-Item, [IO.File]::ReadAllText. PowerShell's own provider shares read/write, so Get-Content,
Get-Content -Wait, Select-String and Copy-Item are unaffected. To zip, hash or delete an active
drive's log, pause a few seconds or unmount the drive first; writes made while the file is busy are
retained and written once it is free.
 
1.12.1
 
Update-Orch* cmdlets now skip the API call when nothing actually changed. The field-level change
detection introduced in v0.9.16.1 missed a family of fields (execution settings, roles,
unattended-robot, tags, machine robots, retention, entry point, ...) that flipped the dirty flag
whenever the parameter was merely present, re-writing the record -- and churning the audit log --
even when the value was unchanged. Each cmdlet's change decision is
now a pure, per-field unit-tested core, so a no-op request issues no PUT/PATCH. Reported for
Update-OrchUser * -ES_StudioNotifyServer false.
 
Fixed: every partition-scoped Pm* operation failed with InvalidPartition on a newer Automation
Cloud org (Get-PmGroup, New-PmUser, Copy-PmUser, ...). The Cloud identity API needs the org-scoped
route, but the config's auto-generated host-level IdentityUrl (required for the PKCE authorize
endpoint) was clobbering the identity API base. The API base now stays org-scoped on Cloud, while
the authorize endpoint and Automation Suite / on-premises are unchanged.
 
Fixed: New-PmUser -UserName with a bare non-address name now creates a userName-only local user
(the name was being copied into the email field, which the server rejected). Remove-PmUser
-UserName now matches by userName or email, so an email-less user can be removed. Update-OrchWebhook
no longer overwrites -Secret with a blank value when an empty string is passed.
 
1.12.0
 
Local users whose userName differs from -- or exists without -- an email now migrate and manage
correctly across editions.
 
Added: Copy-PmUser preserves a local user's source userName on Automation Suite / on-premises
(which identify a user by userName) instead of overwriting it with the email, and keeps the
historical email-as-userName on Automation Cloud, where sign-in is by email. A -UserMappingCsv
entry overrides either default and is now keyed by the source userName like the sibling copy
cmdlets (older email-keyed sheets still work; userName is tried first, then email). Copy-PmUser
also migrates email-less users to Automation Suite / on-premises instead of skipping them; an
email-less user bound for Automation Cloud is still skipped -- it could not sign in there -- now
with a warning that says how to give it an email.
 
Added: New-PmUser -UserName can differ from -Email, so a local user keeps a userName distinct
from its email on Automation Suite / on-premises. Either parameter alone still yields
userName == email, backward compatible with the former single-parameter behaviour.
 
Added: Update-PmUser -NewEmail changes or adds a user's email; an email can be added to a
userName-only account (verified on Automation Suite / on-premises v13-v17). The selection must
resolve to exactly one user.
 
Added: Get-PmUser -ExportCsv now writes a UserName column so a userName that differs from the
email survives an export/import round trip, and -UserName (alias of -Email) matches on either
the userName or the email across Get-PmUser, Update-PmUser and Copy-PmUser.
 
Added: Invoke-OrchApi refuses a -Uri that still carries a placeholder it cannot fill. The drive
supplies {partitionGlobalId} and {projectId} from its context; any other -- {token}, {id},
{objectType}, ... -- is a value only you have, and sent literally would only come back a 404, so
the request is refused with the list to fill. The -Uri completion tooltip flags the same manual
ids.
 
Fixed: Copy-PmUser -UserMappingCsv reported a generic "Error reading the CSV file" that hid the
real cause (most often the wrong header -- the CSV needs a SourceUserName column). The underlying
reason is now surfaced.
 
Changed: the migration guide (docs/50-MigrationGuide.md) was restructured around a choose-your-path
selector and an identity-scenario matrix (source x destination directory integration), and
documents the local-user handling above, including the AD-integrated-source to AD-less-destination
(directory to local) recreation procedure.
 
Full release notes: https://github.com/UiPath-Services/UiPathOrch/blob/master/CHANGELOG.md
'@


        # 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 = ''

}