Quality Clouds 20.1.1.0 Release Notes

Release date: 14 January 2020


Quality Clouds for ServiceNow

Customizing rulesets

You can now ignore individual rules, or change their severity and time to fix to match your specific context.

Ignoring rules

You can remove specific rules from a ruleset that is applied to a scan.

→ To ignore an individual rule

  1. In the Quality Clouds portal, go to Rulesets section. 
  2. Search for the rule you want to exclude, and click on the  Ignore rule icon.

The rule will now be excluded from the ruleset applied to your scan. 


Customizing rules

You can customize individual rules by changing their severity and time to fix. This will change the overall calculation of your instance profile. 

→ To customize a rule

  1. In the Quality Clouds portal, go to Rulesets section. 
  2. Search for the rule you want to exclude, and click on the  Rewrite rule icon. 
  3. Choose the new desired severity, and/or modify the time to fix for the rule.
  4. Click Save.

The rule has now been changed, and will be taken into account in the next scan. 


Restoring rules


→ To restore a rule to default setting

  1. In the Quality Clouds portal, go to Rulesets section. 
  2. Search for the rule you want to restore. You can filter on the rule status by selecting rewritten  or ignored value.
  3. Once you located the rule you want to restore, click on the  Restore to default icon to restore a rewritten rule, or on the  Enable rule to enable an ignored rule. 

The rule has now been restored.

Baseline vs customized ruleset KPI calculation

We are now calculating the KPI values against the baseline (Quality Clouds default) ruleset and against the customized (defined by you) ruleset. You will now see both values in your high level KPIs, the customized one being the main one.

Baseline rulesets

Set of default best practices provided by Quality Clouds. The main quality metrics are always calculated against the default ruleset, so that they can serve us as a baseline.

This is especially useful when, for example, you run scans using different sets of customized best practices. In this case, comparing baseline values gives you a better view of the global quality trends.


Custom rulesets

Set of best practices defined by you, which ignores or overrides specific rules of the default set of best practices provided by Quality Clouds. The quality metrics obtained by applying this set of rules, are labeled as Custom Ruleset Metrics, and are displayed in a prominent place in the dashboards.


Changes to best practices

  • The issue type JavaScript - Optimize loops has now been downgraded in severity from LOW to WARNING. 

Impact on your KPIs: This means that you can see the overall Technical Debt and number of issues decrease. All issues of this type should be closed after your next scan and replaced by warnings.

  • General Data Protection Regulation (GDPR) issues are now split to explicitly indicate whether the Personally Identifiable Information (PII) matching keyword was found on a code block, on a table column name or in a label.

This allows for different severity values to be assigned to each issue type, if needed. 

  • UI Policy and Catalog UI Policy issues have now been split to indicate whether the issue is found on the "scriptTrue" or "scriptFalse" code blocks of the UI Policy. Previously, we have not been specifying in which code block the issue was found.

Impact on your KPIs: This means that the following new issue types listed below will be created after the first scan on your instance after this release. However, the total number of issues should remain unaffected, so this change will not have any impact on the main KPIs. 

The following are the new issues types added: 


Best practiceAffected elementLocation
JavaScript - Optimize LoopsUI PolicyscriptTrue
JavaScript - Optimize LoopsUI PolicyscriptFalse
JavaScript - Use === comparisonUI PolicyscriptTrue
JavaScript - Use === comparisonUI PolicyscriptFalse
JavaScript - Avoid unrestricted targetOrigin on cross-domain messagingUI PolicyscriptTrue
JavaScript - Avoid unrestricted targetOrigin on cross-domain messagingUI PolicyscriptFalse
JavaScript -  Avoid use of Function ConstructorsUI PolicyscriptTrue
JavaScript -  Avoid use of Function ConstructorsUI PolicyscriptFalse
JavaScript -  Avoid use of WebDBUI PolicyscriptTrue
JavaScript -  Avoid use of WebDBUI PolicyscriptFalse
JavaScript -  Avoid use of debugger statementsUI PolicyscriptTrue
JavaScript -  Avoid use of debugger statementsUI PolicyscriptFalse
Possible use of private dataUI PolicyscriptTrue
Possible use of private dataUI PolicyscriptFalse
JavaScript -  Avoid making connections on unsafe protocolsUI PolicyscriptTrue
JavaScript -  Avoid making connections on unsafe protocolsUI PolicyscriptFalse
JavaScript - Optimize LoopsCatalog UI PolicyscriptTrue
JavaScript - Use === comparisonCatalog UI PolicyscriptTrue
JavaScript - Avoid unrestricted targetOrigin on cross-domain messagingCatalog UI PolicyscriptTrue
JavaScript -  Avoid use of Function ConstructorsCatalog UI PolicyscriptTrue
JavaScript -  Avoid use of WebDB Catalog UI PolicyscriptTrue
JavaScript -  Avoid use of debugger statementsCatalog UI PolicyscriptTrue
Possible use of private dataCatalog UI PolicyscriptTrue
JavaScript -  Avoid making connections on unsafe protocolsCatalog UI PolicyscriptTrue
Document Object Model (DOM) manipulation in UI PoliciesCatalog UI PolicyscriptTrue
UI Policies using GlideRecordCatalog UI PolicyscriptTrue
JavaScript - Optimize LoopsCatalog UI PolicyscriptFalse
JavaScript - Use === comparisonCatalog UI PolicyscriptFalse
JavaScript - Avoid unrestricted targetOrigin on cross-domain messagingCatalog UI PolicyscriptFalse
JavaScript -  Avoid use of Function ConstructorsCatalog UI PolicyscriptFalse
JavaScript -  Avoid use of WebDBCatalog UI PolicyscriptFalse
JavaScript -  Avoid use of debugger statementsCatalog UI PolicyscriptFalse
Possible use of private dataCatalog UI PolicyscriptFalse
JavaScript -  Avoid making connections on unsafe protocolsCatalog UI PolicyscriptFalse
Document Object Model (DOM) manipulation in UI PoliciesUI PolicyscriptFalse
UI Policies using GlideRecordUI PolicyscriptFalse
Synchronous AJAX call in UI PoliciesUI PolicyscriptTrue
Synchronous AJAX call in UI PoliciesUI PolicyscriptFalse
UI Policies with hard-coded sys_idsUI PolicyscriptTrue
UI Policies with hard-coded sys_idsUI PolicyscriptFalse
Synchronous AJAX call in Catalog UI PoliciesUI PolicyscriptTrue
Synchronous AJAX call in Catalog UI PoliciesUI PolicyscriptFalse
Document Object Model (DOM) manipulation in Catalog UI PoliciesCatalog UI PolicyscriptTrue
Document Object Model (DOM) manipulation in Catalog UI PoliciesCatalog UI PolicyscriptFalse
Catalog UI Policies using GlideRecordCatalog UI PolicyscriptTrue
Catalog UI Policies using GlideRecordCatalog UI PolicyscriptFalse
Catalog UI Policies with hard-coded sys_idsCatalog UI PolicyscriptTrue
Catalog UI Policies with hard-coded sys_idsCatalog UI PolicyscriptFalse
  • New rule has been added - Synchronous AJAX calls in Catalog UI Policies are now being detected
DescriptionSeverityImpact areaAffected elementIncluded in Instance ScanIncluded in Live Check Scan

Included in Update Set Scan


Synchronous AJAX call (getReference, getXMLWait) in Catalog UI PoliciesHighPerformanceCatalog UI Policy

Bug fix

Lines of code on portal widget client side scripts are now being included in the total Lines of Code (LoC) count.

What's here


Related content

What's new




Last modified on Jan 23, 2020