Skip to content

Latest commit

 

History

History
71 lines (68 loc) · 13.5 KB

RULES.md

File metadata and controls

71 lines (68 loc) · 13.5 KB

Available Quality Rules

This version of the plugin provides 62 quality rules and 0 metrics. Note that not all of the rules will be available by default. Some rules are disabled - as they may not be applicable to all installations - and some are templates. These must be instantiated as required and configuration parameters provided.

Name Type Has Parameters Initial State Description
AtLeastOneStarter Project No Enabled Check that an application module should have one starter additional to the Activator process
BWVersionCheck Project No Enabled Check if this BusinessWorks™ Module matches recommended version which has better performance and less vulnerabilities
BindingShouldHavePolicyAssociated Project No Enabled To ensure that the communications are authentified all input connections should check that the binding has a policy associated
BindingShouldNotHaveHTTPBasicPolicyAssociated Project No Enabled To ensure that the communications are authentified all input connections should check that the binding has a policy associated that is secure
BwSharedResourceUsingModuleProperty Resource No Enabled Parameter Resource using Module Property
CheckpointProcessHTTP Process No Enabled This rule checks the placement of a Checkpoint activity within a process. When placing your checkpoint in a process, be careful with certain types of process starters or incoming events, so that a recovered process instance does not attempt to access resources that no longer exist. For example, consider a process with an HTTP process starter that takes a checkpoint after receiving a request but before sending a response. In this case, when the engine restarts after a crash, the recovered process instance cannot respond to the request since the HTTP socket is already closed. As a best practice, do not place Checkpoint activity right after or in parallel path to HTTP activities.
CheckpointProcessJDBC Process No Enabled This rule checks the placement of a Checkpoint activity within a process. Do not place checkpoint after or in a parallel flow of Query activities or idempotent activities. Database operations such as Update, Insert and Delete are considered non-idempotent operations. You should always place a checkpoint immediately after any database insert or update activity to persist the response. However, for queries, there is no need to place checkpoints.
CheckpointProcessREST Process No Enabled This rule checks the placement of a Checkpoint activity within a process. When placing your checkpoint in a process, be careful with certain types of process starters or incoming events, so that a recovered process instance does not attempt to access resources that no longer exist. For example, consider a process with an HTTP process starter that takes a checkpoint after receiving a request but before sending a response. In this case, when the engine restarts after a crash, the recovered process instance cannot respond to the request since the HTTP socket is already closed. As a best practice, do not place Checkpoint activity right after or in parallel path to HTTP activities.
CheckpointProcessTransaction Process No Enabled This rule checks the placement of a Checkpoint activity within a process. Do not place checkpoint within or in parallel to a Transaction Group or a Critical Section Group. Checkpoint activities should be placed at points that are guaranteed to be reached before or after the transaction group is reached.
ChoiceWithNoOtherwise Process No Enabled This rule checks all activities input mapping for choice statement. As a coding best practice, the choice statement should always include the option otherwise.
CriticalSection Process No Enabled Critical section groups cause multiple concurrently running process instances to wait for one process instance to execute the activities in the group. As a result, there may be performance implications when using these groups. This rules checks that the Critical Section group does not include any activities that wait for incoming events or have long durations, such as Request/Reply activities, Wait For (Signal-In) activities, Sleep activity, or other activities that require a long time to execute.
DeadlockDetection Process No Enabled There are many situations in which deadlocks can be created between communicating web services. This rule checks for deadlocks and infinite loops in BW6 process design.
DefaultTargetNamespace Process No Enabled This rule checks if process namespace is the default one generated by the tool.
EndpointURIFromHTTPBindingSetUsingProperty Project No Enabled Endpoint URI from SOAP/HTTP Binding should be set using a Module Property
ExceptionHandlingCheck Process No Enabled Check if exceptions are handled in component process.
ForEachMapping Process No Enabled This rule checks the Input mappings of activities. In activity Input mapping for performance reasons, it is recommended ato use Copy-Of instead of For-Each whenever possible.
GetFragmentBinary Process No Enabled GetFragment should use binary mode for performance assestment
HttpClientMustBeUsedinHTTPBinding Process No Enabled HTTP Binding should have an HTTP Client Resource
HttpClientSSLShouldHaveConfidentiality Resource No Enabled HTTP Client using 443 port should have set confidentiality settings
HttpConnectorShouldHaveConfidentiality Resource No Enabled HTTP Connector should have set confidentiality settings
IsMavenProject Project No Enabled Check is this BusinessWorks™ Module is a Maven Project
JDBCHardCoded Process No Enabled This rule checks JDBC activities for hardcoded values for fields Timeout and MaxRows. Use Process property or Module property.
JDBCTransactionParallelFlow Process No Enabled This rule checks if there is no parallel flows with JDBC activities inside a Transaction Group
JDBCWildcards Process No Enabled This rule checks whether JDBC activities are using wildcards in the query. As a good coding practice, never use wildcards in JDBC queries.
JKSValidation Project No Enabled Check the JKS inside the project to see if they've been expired or if they're autosigned
JMSAcknowledgementMode Process No Enabled This rule checks the acknowledgement mode used in JMS activities.
JMSConnectorShouldHaveConfidentiality Resource No Enabled JMS Connector should have set confidentiality settings
JMSHardCoded Process No Enabled This rule checks JMS activities for hardcoded values for fields Timeout, Destinaton, Reply to Destination, Message Selector, Polling Interval. Use Process property or Module property.
JMSReceiverPlusConfirm Process No Enabled Confirm activity should cover all OK flows with a JMS Receiver if CLIENT ACK Mode is Selected.
JMSRequestReplyNonPersistent Process No Enabled JMS Request/Reply shoud use NON-PERSISTENT messages
LastActivityAndEndActivity Process No Enabled This rule checks all flows are finished properly using an end activity
ListFileActivityToCheckFileExistence Process No Enabled Using List File activity to check if a single file exists is less performant than using ReadFile without fileContent check
LogSubprocess Process No Enabled This rule checks if the Log activity is not being used in component process and only used in subprocess
MultipleTransitions Process No Enabled This rule checks whether multiple transitions from an activity in a parallel flow merge into EMPTY activity
NoOtherwiseCheck Process No Enabled This rule checks multiple transition from an activity at least exists one path for no matching condition
NumberOfActivities Process No Enabled This rule checks the number of activities within a process
NumberOfExposedServices Process No Enabled This rule checks the number of activities within a process
NumberOfPropertiesSameGroup Project No Enabled Check the maximum of module properties that you should have together in the same group to ensure a proper and maintable property organization
OnlyOneKeystoreApplicationModule Project No Enabled This rule checks if there are a single KeyStore resource for application
OnlyOneOtherwiseCheck Process No Enabled This rule checks multiple transition from an activity only one for the paths are for no matching condition
ParseXMLBinary Process No Enabled ParseXML should use binary mode for performance assestment
ParseXMLFromRender Process No Enabled This rule checks for inefficiencies on using ParseXML activities using tib:render-xml
ParseXMLRenderXMLActivity Process No Enabled This rule checks for inefficiencies on using ParseXML activities using RenderXML activity output
PomXmlVersionsHarcoded Project No Enabled Check if the dependency version are being defined using a property or hardcoded
ProcessNamingConvention Process No Enabled This rule ensure the naming convention for process names
ProcessNoDescription Process No Enabled This rule checks if there is description specified for a process.
ProcessWithoutTest Process No Enabled This rule checks that all processes should have at least one test file
ProjectStructure Project No Enabled Check that an application module has the right structure
RenderXMLBinary Process No Enabled RenderXML should use binary mode for performance assestment
RenderXmlPrettyPrint Process No Enabled This rule checks for inefficiencies on using tib:render-xml function specifying the pretty-print option to true
SFTPPutBinary Process No Enabled SFTP Put should use binary mode for avoiding encoding issues when transferring
SSLClientConnectorShouldHaveTLSprotocol Resource No Enabled SSLClient Connector should use recommended TLS protocol to secure all communications between a client and a server
SSLServerConnectorShouldHaveTLSprotocol Resource No Enabled SSLServer Connector should use recommended TLS protocol to secure all communications between a client and a server
SharedResourcesNotUsed Resource No Enabled "Shared Resource not used
SubProcessInlineCheck Process No Enabled This rule checks if there is large set of data being passed everytime to Inline SubProcess.
SwaggerValidation Project No Enabled Check if the Swagger files inside the project are valid or have some errors
ThreadpoolUsageInJDBCActivities Process No Enabled This rule check if you are setting up a ThreadPool Resource to your JDBC Activities to handle the increasing number of threads because of JDBC Activities
TransitionLabels Process No Enabled This rule checks whether the transitions with the type 'Success With Condition' (XPath) have a proper label. This will improve code readability
UnneededEmptyActivity Process No Enabled This rule checks if there are empty activities that are not needed
UnneededGroup Process No Enabled This rule checks if there are groups that are not needed
XMLResourceSameTargetNamespace Project No Enabled Check if most that one XML Schema or WSDL file have same target namespace
XPathCheck Project No Disabled This is a template rule that allow to add custom XPath Checks if required

< Return to STANDALONE operation | << Return to main README file