- Release Notes
- Getting Started
- Setup and Configuration
- Automation Projects
- Dependencies
- Types of Workflows
- File Comparison
- Automation Best Practices
- Source Control Integration
- Debugging
- The Diagnostic Tool
- Workflow Analyzer
- About Workflow Analyzer
- ST-NMG-001 - Variables Naming Convention
- ST-NMG-002 - Arguments Naming Convention
- ST-NMG-004 - Display Name Duplication
- ST-NMG-005 - Variable Overrides Variable
- ST-NMG-006 - Variable Overrides Argument
- ST-NMG-008 - Variable Length Exceeded
- ST-NMG-009 - Prefix Datatable Variables
- ST-NMG-011 - Prefix Datatable Arguments
- ST-NMG-012 - Argument Default Values
- ST-NMG-016 - Argument Length Exceeded
- ST-DBP-002 - High Arguments Count
- ST-DBP-003 - Empty Catch Block
- ST-DBP-007 - Multiple Flowchart Layers
- ST-DBP-020 - Undefined Output Properties
- ST-DBP-023 - Empty Workflow
- ST-DBP-024 - Persistence Activity Check
- ST-DBP-025 - Variables Serialization Prerequisite
- ST-DBP-026 - Delay Activity Usage
- ST-DBP-027 - Persistence Best Practice
- ST-DBP-028 - Arguments Serialization Prerequisite
- Variables
- Arguments
- Imported Namespaces
- Recording
- UI Elements
- Control Flow
- Selectors
- Object Repository
- Data Scraping
- Image and Text Automation
- Automating Citrix Technologies
- RDP Automation
- SAP Automation
- VMware Horizon Automation
- Logging
- The ScaleCoordinates Migration Tool
- The ScreenScrapeJavaSupport Tool
- The WebDriver Protocol
- StudioPro
- Extensions
- Troubleshooting
Governance
Studio comes with a file-based governance model that can be enforced at an organization level to exert a level of control over certain functionalities.
The current capabilities are:
- enforce per Studio, Studio Pro, or StudioX, and any combination thereof.
- restrict usage of package feeds from the Manage Packages window and Backstage View>Settings > Manage Sources.
- enforce organizational development standards using Workflow Analyzer rules.
- enforce several design and location settings.
- disable Send Feedback functionality.
Watch the following video for an overview of the governance capabilities available in Studio and a demo of how to use them in StudioX.
To enforce a governance policy, start by generating a governance file from Studio, then configure the file using the parameters it contains, and apply the policy in one of the following ways:
- Using a local file (for testing purposes) - Place the governance file in the Roaming folder on the machine where Studio is installed.
- Using an external file (for large deployments) - Place the governance file at a path (for example, an HTTP/HTTPS server) referenced by either a registry key or an asset in Orchestrator.
- Using an asset in Orchestrator- Copy the contents of the governance file to an asset in Orchestrator.
The first step in enforcing development standards in your organization is to generate a governance file from Studio or manually create a similar file that would incorporate all or part of the capabilities we listed above.
.config
with the following name uipath.policies.config
.
To generate a governance file with your current configuration from Studio, go to the Backstage view > Help tab, and select Generate Governance File. The exported file can be shared across your team.
Use the button below to download the sample that includes all Workflow Analyzer rules. Modify the sample to fit your organization's needs.
UiPathStudioSetup.exe
, you need to change the path to the Local feed to C:\Users\CurrentUser\AppData\Local\UiPath\app-Studio_version
.
Governance files may have different versions and a custom name.
{
"Metadata": {
"Version": "1.0"
},
"Info": {
"Name": "Sample Policy Registry Key"
}
}
{
"Metadata": {
"Version": "1.0"
},
"Info": {
"Name": "Sample Policy Registry Key"
}
}
Parameters |
Values |
---|---|
"Metadata" > "Version" |
major.minor between quotation marks "" |
"Info" > "Name" |
Label written between quotation marks ""
|
The governance file may contain policies for Studio, Studio Pro, and StudioX users, however, these must be structured per profile. Policies for Studio must be separated from those for StudioX, and from those for Studio Pro, as in the example below:
{
"Profiles": {
"Development": {
"Shell": {
"IsFeedbackEnabled": true,
"HideGettingStartedScreen": false
},
"PackageManager": {},
"Analyzer": {}
},
"Business": {
"Shell": {
"IsFeedbackEnabled": true,
"HideGettingStartedScreen": false
},
"PackageManager": {},
"Analyzer": {}
},
"StudioPro": {
"Shell": {
"IsFeedbackEnabled": true,
"HideGettingStartedScreen": false
},
"PackageManager": {},
"Analyzer": {}
}
}
}
{
"Profiles": {
"Development": {
"Shell": {
"IsFeedbackEnabled": true,
"HideGettingStartedScreen": false
},
"PackageManager": {},
"Analyzer": {}
},
"Business": {
"Shell": {
"IsFeedbackEnabled": true,
"HideGettingStartedScreen": false
},
"PackageManager": {},
"Analyzer": {}
},
"StudioPro": {
"Shell": {
"IsFeedbackEnabled": true,
"HideGettingStartedScreen": false
},
"PackageManager": {},
"Analyzer": {}
}
}
}
Parameters |
Values |
---|---|
"Profiles" |
For Studio:
Development For StudioX:
Business For Studio Pro:
StudioPro
|
"Shell" > "IsFeedbackEnabled", "HideGettingStartedScreen" |
Either
true or false .
|
Accessing, adding or removing package sources may be restricted per Studio, StudioX, Studio Pro or any combination of the three, using the governance file.
{
"PackageManager": {
"AllowAddRemoveFeeds": false,
"AllowEnableDisableFeeds": false,
"AllowOrchestratorFeeds": true,
"Feeds": [{
"Name": "Organization Internal Feed",
"Source": "https://[company].pkgs.visualstudio.com/_packaging/nuget-packages/nuget/v3/index.json",
"IsEnabled": true
},
{
"Name": "Official",
"Source": "https://www.myget.org/F/workflow/",
"IsEnabled": true
}
]
}
}
{
"PackageManager": {
"AllowAddRemoveFeeds": false,
"AllowEnableDisableFeeds": false,
"AllowOrchestratorFeeds": true,
"Feeds": [{
"Name": "Organization Internal Feed",
"Source": "https://[company].pkgs.visualstudio.com/_packaging/nuget-packages/nuget/v3/index.json",
"IsEnabled": true
},
{
"Name": "Official",
"Source": "https://www.myget.org/F/workflow/",
"IsEnabled": true
}
]
}
}
Parameters |
Values | ||
---|---|---|---|
"Package Manager" |
"AllowAddRemoveFeeds" |
Either
true or false .
| |
"AllowEnableDisableFeeds" |
Either
true or false .
| ||
"AllowOrchestratorFeeds" |
Either
true or false .
| ||
"Feeds" |
"Name" |
Label written between quotation marks ""
| |
"Source" |
Feed source written between quotation marks ""
| ||
"IsEnabled" |
Either
true or false .
|
true
, the user may modify feeds available in the Package Manager. If any changes are made, they are persisted when Studio is restarted.
true
and the Robot is Connected to Orchestrator, users cannot disable the default Orchestrator feeds.
Feeds that are defined in the governance file are added to the Default package sources section in the Manage Packages window and the user can add the custom feeds (if provided with the required rights in the governance file) to the User defined package sources section.
Configure settings found in Home (Studio Backstage View) > Settings. For more information, see Configuring Studio Settings.
{
"SourceControl": {
"CheckInBeforePublishParam": {
"AllowEdit": false,
"Value": false
}
},
"Workflow": {
"DefaultProjectLanguageParam": {
"Value": VisualBasic,
"AllowEdit": false
},
"DockedAnnotationsParam": {
"AllowEdit": false,
"Value": true
},
"IsCollapsedViewSlimParam": {
"AllowEdit": false,
"Value": false
},
"AnalyzeOnPublishParam": {
"AllowEdit": false,
"Value": false
},
"AnalyzeOnRunParam": {
"AllowEdit": false,
"Value": false
},
"AnalyzeRpaXamlsOnlyParam": {
"AllowEdit": false,
"Value": false
},
"AdditionalAnalyzerRulePathParam": {
"AllowEdit": false,
"Value": null
},
"DefaultProjectFolderParam": {
"AllowEdit": false,
"Value": null
},
"DefaultProcessPublishUrlParam": {
"AllowEdit": false,
"Value": null
},
"DefaultLibraryPublishUrlParam": {
"AllowEdit": false,
"Value": null
},
"DefaultTemplatePublishUrlParam": {
"AllowEdit": false,
"Value": "C:\\Users\\username\\Documents\\UiPath\\.templates"
},
"ModernBehaviorParam": {
"AllowEdit": false,
"Value": false
},
"ObjectRepositoryEnforcedParam": {
"AllowEdit": false,
"Value": false
}
},
}
{
"SourceControl": {
"CheckInBeforePublishParam": {
"AllowEdit": false,
"Value": false
}
},
"Workflow": {
"DefaultProjectLanguageParam": {
"Value": VisualBasic,
"AllowEdit": false
},
"DockedAnnotationsParam": {
"AllowEdit": false,
"Value": true
},
"IsCollapsedViewSlimParam": {
"AllowEdit": false,
"Value": false
},
"AnalyzeOnPublishParam": {
"AllowEdit": false,
"Value": false
},
"AnalyzeOnRunParam": {
"AllowEdit": false,
"Value": false
},
"AnalyzeRpaXamlsOnlyParam": {
"AllowEdit": false,
"Value": false
},
"AdditionalAnalyzerRulePathParam": {
"AllowEdit": false,
"Value": null
},
"DefaultProjectFolderParam": {
"AllowEdit": false,
"Value": null
},
"DefaultProcessPublishUrlParam": {
"AllowEdit": false,
"Value": null
},
"DefaultLibraryPublishUrlParam": {
"AllowEdit": false,
"Value": null
},
"DefaultTemplatePublishUrlParam": {
"AllowEdit": false,
"Value": "C:\\Users\\username\\Documents\\UiPath\\.templates"
},
"ModernBehaviorParam": {
"AllowEdit": false,
"Value": false
},
"ObjectRepositoryEnforcedParam": {
"AllowEdit": false,
"Value": false
}
},
}
Two parameters are available for each option:
- "AllowEdit" - Indicate whether or not users are allowed to change the default setting configured by the governance file (
true
to allow,false
to deny). - "Value" - Indicate the default setting, as described in the following tables.
Under "SourceControl":
Backstage Setting |
Parameters |
Value |
---|---|---|
Enforce Check-In before Publish |
"CheckInBeforePublishParam" |
Either
true or false .
|
Under "Workflow":
Backstage Setting |
Parameters |
Value |
---|---|---|
Use C# Language |
"DefaultProjectLanguageParam" Note: Changes to this parameter take effect only in the Studio Pro profile.
|
|
Create docked annotations |
"DockedAnnotationsParam" |
Either
true or false .
|
Slim View for Collapsed Activities |
"IsCollapsedViewSlimParam" |
Either
true or false .
|
Enforce Analyzer before Publish |
"AnalyzeOnPublishParam" |
Either
true or false .
|
Enforce Analyzer before Run |
"AnalyzeOnRunParam" |
Either
true or false .
|
Analyze RPA XAML Files Only |
"AnalyzeRpaXamlsOnlyParam" |
Either
true or false .
|
Workflow Analyzer Rules Location |
"AdditionalAnalyzerRulePathParam" |
|
Project Path |
DefaultProjectFolderParam |
|
Publish Process URL |
"DefaultProcessPublishUrlParam" |
|
Publish Library URL |
"DefaultLibraryPublishUrlParam" |
|
Publish Project Templates URL |
"DefaultTemplatePublishUrlParam" |
To change the location, enter the path between quotation marks. |
Use Modern for new projects |
"ModernBehaviorParam" |
Either
true or false .
|
Object Repository enforced |
"ObjectRepositoryEnforcedParam" |
Either
true or false .
|
Under "ObjectBrowser":
Backstage Setting |
Parameters |
Value |
---|---|---|
Send anonymous UI Descriptors |
"SendUiDescriptors" |
Either
true or false |
The Workflow Analyzer is the tool for verifying if projects meet development standards. Using the governance file, organizations can enforce custom rules pertaining to their needs across all projects, in a centralized manner.
Remarks
- The custom ruleset can be defined beforehand in a
separate file of type
.json
, and delivered through a dll external assembly or custom activity pack. Read more about Building Custom Rules for Workflow Analyzer. - The governance file can't deliver credentials, which means secure feeds aren't supported.
- If a custom ruleset is enforced, then users cannot make any changes to Workflow Analyzer rules.
- If a custom ruleset was not referenced or embedded in the governance file, the Workflow Analyzer default rules are used. If the "Analyzer" section is not mentioned, governance for Workflow Analyzer is not enforced. If the section is mentioned, even if it's empty, then the management of rules is disabled in Studio.
- When enforcing governance, rules built-in Studio or UiPath activity packages are disabled by default unless otherwise mentioned in the governance file or custom ruleset.
Enforcing Rules
uipath.policies.config
governance file:
-
Point to the ruleset located at one of the following paths:
- on the local machine;
- shared on a network server or machine, identifiable by the UNC path;
- in shared blob storage, identifiable via the http(s) path.
- Embed the custom ruleset by enabling or disabling rules, mentioning their IDs, parameters, error levels.
"Analyzer"
section. Rules and counters must be split into their own sections, as illustrated below:
{
"Analyzer": {
"AllowEdit": false,
"ReferencedRulesConfigFile": null,
"EmbeddedRulesConfig": {
"Rules": [
{
"Id": "ST-NMG-001",
"IsEnabled": false,
"Parameters": [{
"Name": "Regex",
"Value": null
}],
"ErrorLevel": "Error"
}
],
"Counters": [{
"Id": "ST-ANA-009",
"IsEnabled": true,
"Parameters": []
}]
}
}
}
{
"Analyzer": {
"AllowEdit": false,
"ReferencedRulesConfigFile": null,
"EmbeddedRulesConfig": {
"Rules": [
{
"Id": "ST-NMG-001",
"IsEnabled": false,
"Parameters": [{
"Name": "Regex",
"Value": null
}],
"ErrorLevel": "Error"
}
],
"Counters": [{
"Id": "ST-ANA-009",
"IsEnabled": true,
"Parameters": []
}]
}
}
}
Parameters/Sections |
Values |
---|---|
"AllowEdit" |
If set to
true , governance settings are passed as defaults allowing the user to make changes to rules.
If set to
false , no changes can be made to any rules.
If the parameter is not added, by default, users are restricted from editing rules. |
"ReferencedRulesConfigFile" |
|
"EmbeddedRulesConfig" |
Holds
"Rules" and "Counters" |
"Id" |
Rule ID, ex.
ST-NMG-001 |
"IsEnabled" |
Either
true or false |
"Parameters" |
|
"Name" |
The parameter's name written between quotation marks. |
"Value" |
|
"ErrorLevel" |
Either
Error , Warning , Info or Verbose .
|
"Counters" |
Holds parameters for counters: "Id", "IsEnabled", "Parameters"
1 .
|
1
- Since counters don't have parameters, use []
.
true
, the user may modify rules available in the Workflow Analyzer settings window. If any changes are made, they are persisted
when Studio is restarted.
%AppData%\UiPath
.
If stored externally, the path to the policy file must be defined using the Windows Registry or an Orchestrator asset:
To define the file path using the Windows Registry:
- Open Registry Editor on the machine where Studio is installed.
- Locate the following registry key:
Computer\HKEY_CURRENT_USER\Software\UiPath
and hit Enter. - In the Registry Editor, right-click and select New > String Value. Type in the
GovernanceSource
name for the new value. Do not use another name for the value! - Double-click the
GovernanceSource
string to edit. In the Value data field add the path to theuipath.policies.config
file, and click OK.- If the policy file is stored locally, an example for this field would be
C:\policies\uipath.policies.config
. - If the policy file is stored on a server, an example for this field
would be
192.168.1.1\policies\uipath.policies.config
.
- If the policy file is stored locally, an example for this field would be
The registry key should look like this:
To define the file path using an Orchestrator asset:
- In Orchestrator, select Tenant > Folders and add a new folder named uipath.settings.config.
- Assign the users for which to enforce the governance policy to the folder.
-
In the uipath.settings.config folder, create a new asset and configure it as follows:
- Asset name - uipath.studio.governancesource.
- Type - Text.
-
Global Value - Select this option and enter the full path to the uipath.policies.config file in the text box.
Optionally, you can apply different policies to different users by adding per-user values with paths to different files.
Note: Enforcing policies per user works in Studio v2020.10.8 and later for Automation Cloud Orchestrator, and Studio v2020.10.9 and later for On-Premises Orchestrator.
- In Orchestrator, select Tenant > Folders and add a new folder named uipath.settings.config.
- Assign the users for which to enforce the governance policy to the folder.
-
In the uipath.settings.config folder, create a new asset and configure it as follows:
- Asset name - uipath.studio.governancepolicy.
- Type - Text.
-
Global Value - Select this option and paste the entire contents of the uipath.policies.config file in the text box.
Optionally, you can apply different policies for different users by adding per-user values and pasting different parameters.
Note: Enforcing policies per user works in Studio v2020.10.8 and later for Automation Cloud Orchestrator, and Studio v2020.10.9 and later for On-Premises Orchestrator.
When a policy is defined, it is applied after Studio is restarted.
A message appears in the Workflow Analyzer settings window, Send Feedback window, in the Settings tab in Backstage View,, and in the Manage Packages window.
Studio applies the governance policy using the following order of precedence: uipath.studio.governancepolicy > uipath.studio.governancesource > Registry key > local file.
If the governance policy is removed for the user, settings that were enforced through the governance file are persisted as defaults. However, now the user has the option to modify settings that were restricted when the governance policy was in place.