Studio
2020.10
false
Banner background image
OUT OF SUPPORT
Studio User Guide
Last updated Dec 20, 2023

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.

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.

Important: 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 ""

  • visible in Backstage > Help, under Company Policy.

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: Development
For StudioX: Business
For Studio Pro: StudioPro
  • all three are accepted in the same file.

"Shell" > "IsFeedbackEnabled", "HideGettingStartedScreen"

Either true or false.

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 true or false.
 

"AllowEnableDisableFeeds"

 
Either true or false.
 

"AllowOrchestratorFeeds"

 
Either true or false.
 

"Feeds"

"Name"

Label written between quotation marks ""

  • visible in Manage Packages.
  

"Source"

Feed source written between quotation marks ""

  • visible in Manage Packages.
  

"IsEnabled"

Either true or false.
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 (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.
  • CSharp

    • If "AllowEdit" is false - Allow only C#.
    • If "AllowEdit" is true - Set the default language to C# and allow users to change the default language.
  • VisualBasic

    • If "AllowEdit" is false - Allow only VB.
    • If "AllowEdit" is true - Set the default language to VB and allow users to change the default language.

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"

  • null - Use the default location.
  • To change the location, enter the path to the folder where custom rules are stored between quotation marks.

Project Path

DefaultProjectFolderParam

  • null - Use the default location.
  • To change the location, enter the path to the folder where custom rules are stored between quotation marks.

Publish Process URL

"DefaultProcessPublishUrlParam"

  • null - Use the default location.
  • To change the location, enter the path between quotation marks.

Publish Library URL

"DefaultLibraryPublishUrlParam"

  • null - Use the default location.
  • To change the location, enter the path between quotation marks.

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

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:
  1. 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.
  2. 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 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"

  • Path to .json ruleset
  • Use null to enforce rules from "EmbeddedRulesConfig"

"EmbeddedRulesConfig"

Holds "Rules" and "Counters"

"Id"

Rule ID, ex. ST-NMG-001

"IsEnabled"

Either true or false

"Parameters"

  • Holds the rule parameter's Name and Value
  • Use [] if the rule doesn't have parameters.

"Name"

The parameter's name written between quotation marks.

"Value"

  • The parameter's value written between quotation marks
  • Can be null

"ErrorLevel"

Either Error, Warning, Info or Verbose.

"Counters"

Holds parameters for counters: "Id", "IsEnabled", "Parameters" 1.
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:

  1. Open Registry Editor on the machine where Studio is installed.
  2. Locate the following registry key: Computer\HKEY_CURRENT_USER\Software\UiPath and hit Enter.
  3. 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!
  4. Double-click the GovernanceSource string to edit. In the Value data field add the path to the uipath.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.

The registry key should look like this:



To define the file path using an Orchestrator asset:

Note: 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.
  1. In Orchestrator, select Tenant > Folders and add a new folder named uipath.settings.config.
  2. Assign the users for which to enforce the governance policy to the folder.
  3. 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.

Using an Orchestrator Asset

Note: 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.
  1. In Orchestrator, select Tenant > Folders and add a new folder named uipath.settings.config.
  2. Assign the users for which to enforce the governance policy to the folder.
  3. 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.

Was this page helpful?

Get The Help You Need
Learning RPA - Automation Courses
UiPath Community Forum
Uipath Logo White
Trust and Security
© 2005-2024 UiPath. All rights reserved.