Quality Clouds 20.1.1.0 Release Notes

4 min read

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.

 See how to manage rulesets …

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.

 More about the ruleset types …

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 WebDBCatalog 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 ScanIncluded 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.

Updated on March 21, 2025