005_0001 - EmptyStringCheckNotComplete
Empty String check not complete
Always check a string for empty based on != empty and != "". The first one equals database NULL value, the latter one indicates a truncated string.
Metadata
authors:
- Xiwen Cheng <x@cinaq.com>
category: Error
input: '**/*$Microflow.yaml'
rulename: EmptyStringCheckNotComplete
rulenumber: '005_0001'
scope: package
severity: MEDIUM
Description
Technically, there is a difference between empty and "". Make sure to check them both.
Remediation
Always check a string for empty based on != empty and != "". The first one equals database NULL value, the latter one indicates a truncated string.
Test cases
package app.mendix.microflows.empty_string_check_not_complete
import rego.v1
# Test data
microflow_good = {
"$Type": "Microflow$Page",
"Name": "mf1",
"ObjectCollection": {
"$Type": "Microflows$MicroflowObjectCollection",
"Objects": [
{
"$Type": "Microflows$ExclusiveSplit",
"SplitCondition": {
"$Type": "Microflows$ExpressionSplitCondition",
"Expression": "$Variable != empty and $Variable != ''",
},
},
],
},
}
microflow_bad = {
"$Type": "Microflow$Page",
"Name": "mf1",
"ObjectCollection": {
"$Type": "Microflows$MicroflowObjectCollection",
"Objects": [
{
"$Type": "Microflows$ExclusiveSplit",
"SplitCondition": {
"$Type": "Microflows$ExpressionSplitCondition",
"Expression": "$Variable != ''",
},
},
],
},
}
# Test cases
test_simple if {
allow with input as microflow_good
}
test_simple_negative if {
not allow with input as microflow_bad
}