Quality Clouds ServiceNow Coding Best Practice Rules.

The below table shows the list of ServiceNow coding best practices that are not supported in all scan types.

The severity, area of impact and affected element for each best practice validation are also detailed.

The update set scan feature includes a sub-set of these checks.

Click the button below to open the table as a pop up.

Description Severity Area of impact Affected element Included in Instance Scan Included in Live Check Scan Included in Update Set Scan  Included in Application Scan Included in Update Set scan from XML 
Inactivity Monitors High Performance Inactivity Monitors
Too many fields in a Form Section Medium Performance Form Section
High Security Settings plugin disabled High Security Plugin
Modules pointing to big tables without filter Medium Performance Module
The default system User Preference “Rows per Page” set above 100 Medium Performance User Preference
JDBC Data Sources with “Use last run datetime” option unchecked Warning Performance Data Source
Contextual Security Plugin disabled High Security Security
Debugging properties enabled in production environments Low Performance System Property
Forms with too many sections Low Performance Forms
Workflows with Notification Activities Medium Manageability Workflow
The “Log/trace level of TaskSLAController” System Property not set to “notice” Low Performance System Property
SOAP Request Strict Security should be enabled High Security System Property
Java Package Collection mode and Collection mode override properties should be disabled High Security System Property
Client Generated Scripts Sandbox should be enabled High Security System Property
Cookies – HTTP Only should be enabled High Security System Property
Escape HTML should be enabled High Security System Property
CSV Request Authorization should be enabled High Security System Property
SSLv2/SSLv3 should be disabled High Security System Property
AJAXGlideRecord ACL Checking should be enabled High Security System Property
SLA logging level should be set to “notice” High Performance System Property
Basic Auth SOAP Requests setting should be enabled High Security System Property
Old UI enabled or being used High Security System Property
Script Request Authorization should be enabled High Security System Property
Escape Jelly should be enabled High Security System Property
Enable AJAXEvaluate should be disabled High Security System Property
Anti-CSRF Token setting should be enabled High Security System Property
Escape XML should be enabled High Security System Property
HTML Sanitizer property should be enabled High Security System Property
The glide.xmlutil.max_entity_expansion system property value is not set to 3000. Medium Performance System Property
Roles assigned to an invalid user low Security Role  
Empty roles assigned to groups low Security User Group
Empty role assigned to a user low Security User
The out of the box admin account should not be inactive or locked out High Manageability User
Flows should not use stages that are not defined in a Stage Set Medium Manageability Flow
The “glide.uxf.js_server.consolidate” System Property is set to “false”. Medium Performance System Property
The “glide.email.smtp.active” System Property is set to “false”. High Manageability System Property
The “glide.email.read.active” System Property is set to “false”. High Manageability System Property
The “glide.image_provider.security_enabled” System Property is set to “false”. High Security System Property
Integration accounts should not use the admin role High Security User
Child group does not contain all parent roles High Security User Group
Stage sets with duplicates entries Medium Manageability Stage Set
Workflows should not use stages that are not defined in a Stage Set Medium Manageability Workflow
Flows should not run using the admin role. Medium Security Flow
Groups should not have inactive members High Security User Group
HHRR system properties outside the “Human Resource Scoped” category High Manageability System Property
Flows should not be client callable High Security Flow  
Dictionary entries present for a table that does not exist High Manageability Dictionary
Groups should not have an inactive manager High Security User Group
Update Sets should not include Knowledge Base articles without review. High Security Update Sets  
Update Sets should not include images without review. High Security Update Sets  
Avoid Creating cross-table Business Rule recursive loops High Performance Business Rule
Transform maps with boolean fields in their import set table High Manageability Field Map
The assessment_take2 UI page should be public High Manageability UI Page
Too many delete actions on an Update Set. Medium Manageability Update Sets
Portal pages should not be made public High Security Service Portal Page
The Change Request table should not be extended. High Manageability Table
Forms with duplicate fields Medium Manageability Form Sections
Auditing for Update Sets should be enabled High Manageability System Property
Scheduled Jobs run by deleted users High Manageability Benchmark Scheduled Script
Scheduled Data Collection
Scheduled Data Import Set
Scheduled Email of Custom Chart
Scheduled Email of Query Builder
Scheduled Email of Report
Scheduled Entity Generation
Scheduled Report Summary Generation
Scheduled Script Execution
Script Includes with duplicate names High Manageability Script Include
Scheduled imports should not run at the same time High Performance Scheduled Data Import Set
Reports should not be made public High Security Report
Scheduled Jobs without a dedicated integration user High Security Benchmark Scheduled Script
Scheduled Data Collection
Scheduled Data Import Set
Scheduled Email of Custom Chart
Scheduled Email of Query Builder
Scheduled Email of Report
Scheduled Entity Generation
Scheduled Report Summary Generation
Scheduled Script Execution
Roles without any user Warning Security Role
Avoid creating unnecessary tables in scoped applications which can impact your licensing cost. Low Manageability Table
The “glide.login.autocomplete” System Property is set to “true”. Medium Security System Property
The “glide.db.clone.allow_clone_target” System Property is set to “true”. High Manageability System Property
The “sn_hr_core.impersonateCheck” System Property is “false”. High Security System Property
The “glide.businessrule.callstack” System Property is set to “true”. Medium Performance System Property
Fields used to coalesce records in a Table Transform Map should be indexed. Medium Performance Field Map
Multiple Choice Catalog Variables with too many options. Warning Manageability Variable
Catalog with low usage of META tags. Low Manageability Catalog
Catalog with very low usage of META tags. Medium Manageability Catalog
Catalog with no usage of META tags. High Manageability Catalog
“Check UI Action Conditions check before Execution” should be enabled High Security System Property
Possible extra-sensitive PII usage in table column – Religion High Security Dictionary
Possible extra-sensitive PII usage in table column – Gender High Security Dictionary
Possible PII usage in table column – Nationality Warning Security Dictionary
Possible PII usage in table column – Address Warning Security Dictionary
Possible PII usage in table column – Passport Warning Security Dictionary
“Check UI Action Conditions check before Execution” should be enabled High Security System Property
Possible PII usage in table column – Email Warning Security Dictionary
“Allow Javascript tags in Embedded HTML” property should be disabled High Security System Property
Avoid workflows with too many timer activities High Performance Workflow
The System Property “Update on Iterate” is enabled. Medium Performance System Property
The System Property “Auto Complete Search” is set to “Contains”. Low Manageability System Property
The “Security Manager” System Property is set to “Allow Access”. High Security System Property
The System Property “Items per page” includes options over 100. Medium Performance System Property
The System Property “Go To Search” is set to “Contains”. Low Performance System Property
The SOAP Timeout value is over 5 minutes. High Performance System Property
Debug System Properties Enabled. Low Performance System Property
The System Property “Auto Complete Wait Time” exceeds 750 ms. Medium Performance System Property
Scheduled Jobs should specified a value for “Run as” field. Medium Security

Benchmark Scheduled Scrip

Scheduled Data Collection

Scheduled Data Import Set

Scheduled Email of Custom Chart

Scheduled Email of Query Builder

Scheduled Email of Report

Scheduled Entity Generation

Scheduled Report Summary Generation

Scheduled Script Execution

Scheduled Jobs should not be run by inactive/locked out users. High Manageability

Benchmark Scheduled Scrip

Scheduled Data Collection

Scheduled Data Import Set

Scheduled Email of Custom Chart

Scheduled Email of Query Builder

Scheduled Email of Report

Scheduled Entity Generation

Scheduled Report Summary Generation

Scheduled Script Execution

ACLs should not be entirely empty or contain the “Public” role Warning

Security

Performance

Access Control

Inline Scripts should not contain many lines of code. Medium Manageability Inline Script
GlideRecord should not be used in Inline Scripts. Low Performance Inline Script
GlideRecordSecure should not be used in Inline Scripts. Low Performance Inline Script
Avoid adding new dictionary entries without documenting their purpose and rationale Low Manageability Dictionary
Avoid Virtual Agent Topic creation High Performance AI Virtual Agent
Avoid creating long module titles Medium Manageability Module
List Layout with more than one List Element on the same position High Manageability List

Was it helpful ?

THE AI CODE GOVERNANCE BRIEF

Sign up for new updates!
Description Severity Area of impact Affected element Included in Instance Scan Included in Live Check Scan Included in Update Set Scan  Included in Application Scan Included in Update Set scan from XML 
Inactivity Monitors High Performance Inactivity Monitors
Too many fields in a Form Section Medium Performance Form Section
High Security Settings plugin disabled High Security Plugin
Modules pointing to big tables without filter Medium Performance Module
The default system User Preference “Rows per Page” set above 100 Medium Performance User Preference
JDBC Data Sources with “Use last run datetime” option unchecked Warning Performance Data Source
Contextual Security Plugin disabled High Security Security
Debugging properties enabled in production environments Low Performance System Property
Forms with too many sections Low Performance Forms
Workflows with Notification Activities Medium Manageability Workflow
The “Log/trace level of TaskSLAController” System Property not set to “notice” Low Performance System Property
SOAP Request Strict Security should be enabled High Security System Property
Java Package Collection mode and Collection mode override properties should be disabled High Security System Property
Client Generated Scripts Sandbox should be enabled High Security System Property
Cookies – HTTP Only should be enabled High Security System Property
Escape HTML should be enabled High Security System Property
CSV Request Authorization should be enabled High Security System Property
SSLv2/SSLv3 should be disabled High Security System Property
AJAXGlideRecord ACL Checking should be enabled High Security System Property
SLA logging level should be set to “notice” High Performance System Property
Basic Auth SOAP Requests setting should be enabled High Security System Property
Old UI enabled or being used High Security System Property
Script Request Authorization should be enabled High Security System Property
Escape Jelly should be enabled High Security System Property
Enable AJAXEvaluate should be disabled High Security System Property
Anti-CSRF Token setting should be enabled High Security System Property
Escape XML should be enabled High Security System Property
HTML Sanitizer property should be enabled High Security System Property
The glide.xmlutil.max_entity_expansion system property value is not set to 3000. Medium Performance System Property
Roles assigned to an invalid user low Security Role  
Empty roles assigned to groups low Security User Group
Empty role assigned to a user low Security User
The out of the box admin account should not be inactive or locked out High Manageability User
Flows should not use stages that are not defined in a Stage Set Medium Manageability Flow
The “glide.uxf.js_server.consolidate” System Property is set to “false”. Medium Performance System Property
The “glide.email.smtp.active” System Property is set to “false”. High Manageability System Property
The “glide.email.read.active” System Property is set to “false”. High Manageability System Property
The “glide.image_provider.security_enabled” System Property is set to “false”. High Security System Property
Integration accounts should not use the admin role High Security User
Child group does not contain all parent roles High Security User Group
Stage sets with duplicates entries Medium Manageability Stage Set
Workflows should not use stages that are not defined in a Stage Set Medium Manageability Workflow
Flows should not run using the admin role. Medium Security Flow
Groups should not have inactive members High Security User Group
HHRR system properties outside the “Human Resource Scoped” category High Manageability System Property
Flows should not be client callable High Security Flow  
Dictionary entries present for a table that does not exist High Manageability Dictionary
Groups should not have an inactive manager High Security User Group
Update Sets should not include Knowledge Base articles without review. High Security Update Sets  
Update Sets should not include images without review. High Security Update Sets  
Avoid Creating cross-table Business Rule recursive loops High Performance Business Rule
Transform maps with boolean fields in their import set table High Manageability Field Map
The assessment_take2 UI page should be public High Manageability UI Page
Too many delete actions on an Update Set. Medium Manageability Update Sets
Portal pages should not be made public High Security Service Portal Page
The Change Request table should not be extended. High Manageability Table
Forms with duplicate fields Medium Manageability Form Sections
Auditing for Update Sets should be enabled High Manageability System Property
Scheduled Jobs run by deleted users High Manageability Benchmark Scheduled Script
Scheduled Data Collection
Scheduled Data Import Set
Scheduled Email of Custom Chart
Scheduled Email of Query Builder
Scheduled Email of Report
Scheduled Entity Generation
Scheduled Report Summary Generation
Scheduled Script Execution
Script Includes with duplicate names High Manageability Script Include
Scheduled imports should not run at the same time High Performance Scheduled Data Import Set
Reports should not be made public High Security Report
Scheduled Jobs without a dedicated integration user High Security Benchmark Scheduled Script
Scheduled Data Collection
Scheduled Data Import Set
Scheduled Email of Custom Chart
Scheduled Email of Query Builder
Scheduled Email of Report
Scheduled Entity Generation
Scheduled Report Summary Generation
Scheduled Script Execution
Roles without any user Warning Security Role
Avoid creating unnecessary tables in scoped applications which can impact your licensing cost. Low Manageability Table
The “glide.login.autocomplete” System Property is set to “true”. Medium Security System Property
The “glide.db.clone.allow_clone_target” System Property is set to “true”. High Manageability System Property
The “sn_hr_core.impersonateCheck” System Property is “false”. High Security System Property
The “glide.businessrule.callstack” System Property is set to “true”. Medium Performance System Property
Fields used to coalesce records in a Table Transform Map should be indexed. Medium Performance Field Map
Multiple Choice Catalog Variables with too many options. Warning Manageability Variable
Catalog with low usage of META tags. Low Manageability Catalog
Catalog with very low usage of META tags. Medium Manageability Catalog
Catalog with no usage of META tags. High Manageability Catalog
“Check UI Action Conditions check before Execution” should be enabled High Security System Property
Possible extra-sensitive PII usage in table column – Religion High Security Dictionary
Possible extra-sensitive PII usage in table column – Gender High Security Dictionary
Possible PII usage in table column – Nationality Warning Security Dictionary
Possible PII usage in table column – Address Warning Security Dictionary
Possible PII usage in table column – Passport Warning Security Dictionary
“Check UI Action Conditions check before Execution” should be enabled High Security System Property
Possible PII usage in table column – Email Warning Security Dictionary
“Allow Javascript tags in Embedded HTML” property should be disabled High Security System Property
Avoid workflows with too many timer activities High Performance Workflow
The System Property “Update on Iterate” is enabled. Medium Performance System Property
The System Property “Auto Complete Search” is set to “Contains”. Low Manageability System Property
The “Security Manager” System Property is set to “Allow Access”. High Security System Property
The System Property “Items per page” includes options over 100. Medium Performance System Property
The System Property “Go To Search” is set to “Contains”. Low Performance System Property
The SOAP Timeout value is over 5 minutes. High Performance System Property
Debug System Properties Enabled. Low Performance System Property
The System Property “Auto Complete Wait Time” exceeds 750 ms. Medium Performance System Property
Scheduled Jobs should specified a value for "Run as" field. Medium Security

Benchmark Scheduled Scrip

Scheduled Data Collection

Scheduled Data Import Set

Scheduled Email of Custom Chart

Scheduled Email of Query Builder

Scheduled Email of Report

Scheduled Entity Generation

Scheduled Report Summary Generation

Scheduled Script Execution

Scheduled Jobs should not be run by inactive/locked out users. High Manageability

Benchmark Scheduled Scrip

Scheduled Data Collection

Scheduled Data Import Set

Scheduled Email of Custom Chart

Scheduled Email of Query Builder

Scheduled Email of Report

Scheduled Entity Generation

Scheduled Report Summary Generation

Scheduled Script Execution

ACLs should not be entirely empty or contain the “Public” role Warning

Security

Performance

Access Control


Inline Scripts should not contain many lines of code. Medium Manageability Inline Script
GlideRecord should not be used in Inline Scripts. Low Performance Inline Script
GlideRecordSecure should not be used in Inline Scripts. Low Performance Inline Script
Avoid adding new dictionary entries without documenting their purpose and rationale Low Manageability Dictionary
Avoid Virtual Agent Topic creation High Performance AI Virtual Agent
Avoid creating long module titles Medium Manageability Module
List Layout with more than one List Element on the same position High Manageability List