- 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
- Control Flow
- Object Repository
- Logging
- The ScaleCoordinates Migration Tool
- The ScreenScrapeJavaSupport Tool
- StudioPro
- Extensions
- Troubleshooting
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.
Generate the Governance File
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.
The governance file must be of type .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.
Please bear in mind that if you have installed UiPathStudioSetup.exe, you need to change the path to the Local feed to C:\Users\CurrentUser\AppData\Local\UiPath\app-Studio_version.
Configure the Governance File
File Version and File Label
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 ""
|
Studio Profiles and Send Feedback
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: For StudioX: For Studio Pro:
|
|
"Shell" > "IsFeedbackEnabled", "HideGettingStartedScreen" |
Either |
Usage of Package Sources
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 | |
|
"AllowEnableDisableFeeds" |
Either | ||
|
"AllowOrchestratorFeeds" |
Either | ||
|
"Feeds" |
"Name" |
Label written between quotation marks ""
| |
|
"Source" |
Feed source written between quotation marks ""
| ||
|
"IsEnabled" |
Either |
If the "AllowAddRemoveFeeds" and "AllowEnableDisableFeeds" parameters are set to true, the user may modify feeds available in the Package Manager. If any changes are made, they are persisted when Studio is restarted.
If the "AllowOrchestratorFeeds" parameter is set to 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.
Studio Settings
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 (
trueto allow,falseto 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" |
|
|
Create docked annotations |
"DockedAnnotationsParam" |
Either |
|
Slim View for Collapsed Activities |
"IsCollapsedViewSlimParam" |
Either |
|
Enforce Analyzer before Publish |
"AnalyzeOnPublishParam" |
Either |
|
Enforce Analyzer before Run |
"AnalyzeOnRunParam" |
Either |
|
Analyze RPA XAML Files Only |
"AnalyzeRpaXamlsOnlyParam" |
Either |
|
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 |
|
Object Repository enforced |
"ObjectRepositoryEnforcedParam" |
Either |
Under "ObjectBrowser":
| Backstage Setting | Parameters | Value |
|---|---|---|
| Send anonymous UI Descriptors | "SendUiDescriptors" | Either true or false |
Workflow Analyzer Rules
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
There are two ways to manage the custom ruleset in the 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.
All custom rules must be referenced or added in the "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 If set to If the parameter is not added, by default, users are restricted from editing rules. |
|
"ReferencedRulesConfigFile" |
|
|
"EmbeddedRulesConfig" |
Holds |
|
"Id" |
Rule ID, ex. |
|
"IsEnabled" |
Either |
|
"Parameters" |
|
|
"Name" |
The parameter's name written between quotation marks. |
|
"Value" |
|
|
"ErrorLevel" |
Either |
|
"Counters" |
Holds parameters for counters: "Id", "IsEnabled", "Parameters" |
1 - Since counters don't have parameters, use [].
If the "AllowEdit" parameter is set to 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.
Enforce the Governance Policy
Using a Local File
If stored locally, the governance file must be located at the following path: %AppData%\UiPath.
Using an External File
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\UiPathand hit Enter. - In the Registry Editor, right-click and select New > String Value. Type in the
GovernanceSourcename for the new value. Do not use another name for the value! - Double-click the
GovernanceSourcestring to edit. In the Value data field add the path to theuipath.policies.configfile, 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:
Enforcing a governance policy using an Orchestrator asset that references the file path or holds the contents of the file is available starting with Studio v2020.10.4. This functionality requires Orchestrator v2020.10 or later.
- 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
- Users need to be signed in to their account in Studio to receive per-user policies.
Orchestrator.
-
Using an Orchestrator Asset
Enforcing a governance policy using an Orchestrator asset that references the file path or holds the contents of the file is available starting with Studio v2020.10.4. This functionality requires Orchestrator v2020.10 or later.
- 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.
-
Applying and Precedence
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.
- Generate the Governance File
- Configure the Governance File
- File Version and File Label
- Studio Profiles and Send Feedback
- Usage of Package Sources
- Studio Settings
- Workflow Analyzer Rules
- Enforce the Governance Policy
- Using a Local File
- Using an External File
- Using an Orchestrator Asset
- Applying and Precedence