sample.issue.json Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ta-sdk-sample Show documentation
Show all versions of ta-sdk-sample Show documentation
a tool to help a developer to create and build a middleware data collection plug-in, \
which can be used to gather the information of an application deployed on a middleware server,\
and provide modernization help and recommendations
[
{
"id": "MQCL03",
"title": "Contains a Full Repository. Assess impact to other cluster members.",
"category": "cluster",
"issueOverhead": 0.5,
"occurrencesCost": 0.5,
"solutionText": [
"Update other Cluster members using IPAddresses to use the new IPAddress after migrating"
],
"severity": "YELLOW",
"matchCriteria": {
"ruleType": "json",
"jsonQueryPath": {
"fullRepository": "$.clusters[?(@.fullRepository == true)]"
},
"occurrenceAttr": {
"cluster": {
"title": "Cluster",
"path": "name"
}
}
}
},
{
"id": "MQEXIT01",
"title": "Channel Exits defined. Review whether usage affects your MQ deployment architecture when migrating.",
"category": "exits",
"issueOverhead": 1.0,
"occurrencesCost": 1.0,
"solutionText": [
"Scenarios:",
"(1) Custom Exit binary is redundant.",
"Check if Exit has been replaced with Product Capability in MQ 9 and adopt that instead.",
"(2) Exit is connecting to an external system.",
"Examine configuration for your Queue Manager looking for connection parameters (environment variables and/or config files). If found, consider how you will manage this dependency in your DevOps pipeline. Also ensure that connectivity can be established from new target k8 cluster",
"(3) Exit will be carried forward as-is in your migrated Queue Manager.",
"Embed the binaries into the new Docker container. Check to see if binaries need to be ported to run in your desired Container Base OS and target cluster architecture."
],
"severity": "YELLOW",
"matchCriteria": {
"ruleType": "json",
"jsonQueryPath": {
"msgexit": "$.channels[?(@.msgexit empty false && @.type nin [7,8,9])]",
"msgretryexit": "$.channels[?(@.msgretryexit empty false && @.type nin [7,8,9])]",
"rcvexit": "$.channels[?(@.rcvexit empty false && @.type nin [7,8,9])]",
"scyexit": "$.channels[?(@.scyexit empty false && @.type nin [7,8,9])]",
"sendexit": "$.channels[?(@.sendexit empty false && @.type nin [7,8,9])]"
},
"occurrenceAttr": {
"channel": {
"title": "Channel",
"path": "name"
},
"exitType": {
"title": "Exit Type",
"path": "@filterPathKey"
},
"exitName": {
"title": "Exit Name",
"path": "@filterPathKeyValue",
"countUnique": true
}
}
}
},
{
"id": "MQEXIT02",
"title": "Cluster Channel Exits defined. Review whether usage affects your MQ deployment architecture when migrating.",
"category": "exits",
"issueOverhead": 1.0,
"occurrencesCost": 1.0,
"solutionText": [
"Scenarios:",
"(1) Custom Exit binary is redundant.",
"Check if Exit has been replaced with Product Capability in MQ 9 and adopt that instead.",
"(2) Exit is connecting to an external system.",
"Examine configuration for your Queue Manager looking for connection parameters (environment variables and/or config files). If found, consider how you will manage this dependency in your DevOps pipeline. Also ensure that connectivity can be established from new target k8 cluster",
"(3) Exit will be carried forward as-is in your migrated Queue Manager.",
"Embed the binaries into the new Docker container. Check to see if binaries need to be ported to run in your desired Container Base OS and target cluster architecture."
],
"severity": "YELLOW",
"matchCriteria": {
"ruleType": "json",
"jsonQueryPath": {
"msgexit": "$.channels[?(@.msgexit empty false && @.type in [7,8,9])]",
"msgretryexit": "$.channels[?(@.msgretryexit empty false && @.type in [7,8,9])]",
"rcvexit": "$.channels[?(@.rcvexit empty false && @.type in [7,8,9])]",
"scyexit": "$.channels[?(@.scyexit empty false && @.type in [7,8,9])]",
"sendexit": "$.channels[?(@.sendexit empty false && @.type in [7,8,9])]"
},
"occurrenceAttr": {
"cluster": {
"title": "Cluster",
"path": "clusterNames"
},
"channel": {
"title": "Channel",
"path": "name"
},
"exitType": {
"title":"Exit Type",
"path": "@filterPathKey"
},
"exitName": {
"title":"Exit Name",
"path": "@filterPathKeyValue",
"countUnique": true
}
}
}
},
{
"id": "MQEXIT03",
"title": "API Exits defined. Review whether usage affects your MQ deployment architecture when migrating.",
"category": "exits",
"issueOverhead": 1.0,
"occurrencesCost": 1.0,
"solutionText": [
"Scenarios:",
"(1) Custom Exit binary is redundant.",
"Check if Exit has been replaced with Product Capability in MQ 9 and adopt that instead.",
"(2) Exit is connecting to an external system.",
"Examine configuration for your Queue Manager looking for connection parameters (environment variables and/or config files). If found, consider how you will manage this dependency in your DevOps pipeline. Also ensure that connectivity can be established from new target k8 cluster",
"(3) Exit will be carried forward as-is in your migrated Queue Manager.",
"Embed the binaries into the new Docker container. Check to see if binaries need to be ported to run in your desired Container Base OS and target cluster architecture."
],
"severity": "YELLOW",
"matchCriteria": {
"ruleType": "json",
"jsonQueryPath": {
"apiexitlocal": "$.qmini.capabilties.ApiExitLocal[*].properties[?(@.Name empty false)]",
"apiexittemplate": "$.mqsini.capabilties.ApiExitTemplate[*].properties[?(@.Name empty false)]",
"apiexitcommon": "$.mqsini.capabilties.ApiExitCommon[*].properties[?(@.Name empty false)]"
},
"occurrenceAttr": {
"name": {
"title":"Exit name",
"path": "Name",
"countUnique": true
},
"type": {
"title":"Exit Type",
"path": "@parent.name"
},
"module": {
"title":"Module",
"path": "Module"
},
"function": {
"title":"Function",
"path": "Function"
}
}
}
},
{
"id": "MQEXIT04",
"title": "QueueMgr Exits defined. Review whether usage affects your MQ deployment architecture when migrating.",
"category": "exits",
"issueOverhead": 1.0,
"occurrencesCost": 1.0,
"solutionText": [
"Scenarios:",
"(1) Custom Exit binary is redundant.",
"Check if Exit has been replaced with Product Capability in MQ 9 and adopt that instead.",
"(2) Exit is connecting to an external system.",
"Examine configuration for your Queue Manager looking for connection parameters (environment variables and/or config files). If found, consider how you will manage this dependency in your DevOps pipeline. Also ensure that connectivity can be established from new target k8 cluster",
"(3) Exit will be carried forward as-is in your migrated Queue Manager.",
"Embed the binaries into the new Docker container. Check to see if binaries need to be ported to run in your desired Container Base OS and target cluster architecture."
],
"severity": "RED",
"matchCriteria": {
"ruleType": "json",
"jsonQueryPath": {
"chadexit": "$[?(@.chadexit empty false)]",
"clwlexit": "$[?(@.clwlexit empty false)]"
},
"occurrenceAttr": {
"queueManager": {
"title":"Queue Manager",
"path": "name"
},
"exitType": {
"title":"Exit Type",
"path": "@filterPathKey"
},
"exitName": {
"title":"Exit Name",
"path": "@filterPathKeyValue",
"countUnique": true
}
}
}
},
{
"id": "MQEXIT05",
"title": "Processes defined. Analysis of the Process needs to be completed to see if there are custom binaries used",
"category": "exits",
"issueOverhead": 1.0,
"occurrencesCost": 1.0,
"solutionText": [
"Scenarios:",
"(1) Custom binary is redundant.",
"Check if binary has been replaced with Product Capability in MQ 9 and adopt that instead.",
"(2) Binary is connecting to an external system.",
"Examine configuration for your Queue Manager looking for connection parameters (environment variables and/or config files). If found, consider how you will manage this dependency in your DevOps pipeline. Also ensure that connectivity can be established from new target k8 cluster",
"(3) Binary will be carried forward as-is in your migrated Queue Manager.",
"Embed the binaries into the new Docker container. Check to see if binaries need to be ported to run in your desired Container Base OS and target cluster architecture."
],
"severity": "RED",
"matchCriteria": {
"ruleType": "json",
"jsonQueryPath": {
"nonDefaultProcesses": "$.processes[?(@.name =~ /^(?:(?!SYSTEM).)*$/i)]"
},
"occurrenceAttr": {
"process": {
"title":"Process",
"path": "name"
}
}
}
},
{
"id": "MQEXIT06",
"title": "Service defined. Analysis of the Service needs to be completed to see if there are custom binaries used",
"category": "exits",
"issueOverhead": 1.0,
"occurrencesCost": 1.0,
"solutionText": [
"Scenarios:",
"(1) Custom binary is redundant.",
"Check if binary has been replaced with Product Capability in MQ 9 and adopt that instead.",
"(2) Binary is connecting to an external system.",
"Examine configuration for your Queue Manager looking for connection parameters (environment variables and/or config files). If found, consider how you will manage this dependency in your DevOps pipeline. Also ensure that connectivity can be established from new target k8 cluster",
"(3) Binary will be carried forward as-is in your migrated Queue Manager.",
"Embed the binaries into the new Docker container. Check to see if binaries need to be ported to run in your desired Container Base OS and target cluster architecture."
],
"severity": "RED",
"matchCriteria": {
"ruleType": "json",
"queryInputFile": {
"SampleConfigFile": "(.*).json"
},
"jsonQueryPath": {
"nonDefaultServices": "$.services[?(@.name =~ /^(?:(?!SYSTEM).)*$/i)]"
},
"occurrenceAttr": {
"service": {
"title": "Service",
"path": "name"
}
}
}
},
{
"id": "MQEXIT07",
"title": "Service defined. Analysis of the Service needs to be completed to see if there are custom binaries used",
"category": "exits",
"issueOverhead": 1.0,
"occurrencesCost": 1.0,
"solutionText": [
"Scenarios:",
"(1) Custom binary is redundant.",
"Check if binary has been replaced with Product Capability in MQ 9 and adopt that instead.",
"(2) Binary is connecting to an external system.",
"Examine configuration for your Queue Manager looking for connection parameters (environment variables and/or config files). If found, consider how you will manage this dependency in your DevOps pipeline. Also ensure that connectivity can be established from new target k8 cluster",
"(3) Binary will be carried forward as-is in your migrated Queue Manager.",
"Embed the binaries into the new Docker container. Check to see if binaries need to be ported to run in your desired Container Base OS and target cluster architecture."
],
"severity": "RED",
"matchCriteria": {
"ruleType": "xml",
"criteria": {
"detectDTD": {
"dtdName": [
"http://sun.java.com/j2ee/dtds/ejb-jar_1_1.dtd",
"http://java.sun.com/dtd/ejb-jar_2_0.dtd"
],
"xmlFile": ["sampleData.xml"]
},
"detectAttribute": {
"tags":["ejb-jar"],
"attributeName":"version",
"attributeValue":"2.0",
"xmlFile": ["sampleData.xml"]
}
},
"occurrenceAttr": {
"ejbClass": {
"title": "Class name of old EJB",
"criteria":{
"detectElement": {
"tags":["ejb-class"],
"xmlFile": ["(.*/)?sampleData\\.xml"]
}
}
}
}
}
},
{
"id": "usingDataSource",
"title": "Application use datasoure defined in the server configuration",
"category": "security",
"issueOverhead": 1.0,
"occurrencesCost": 1.0,
"solutionText": [
"Scenarios:",
"Check the server.xml file in the migration bundle to make sure the datasource configuration is correct"
],
"severity": "YELLOW",
"matchCriteria": {
"ruleType": "xml",
"criteria": {
"detectElement": {
"tags":["dataSource"],
"xmlFile": ["(.*/)?(.*)?server\\.xml"]
}
},
"occurrenceAttr": {
"jndiName": {
"title": "Datasource Jndi name",
"criteria":{
"detectAttribute": {
"tags":["dataSource"],
"attributeName":"jndiName",
"xmlFile": ["(.*/)?(.*)?server\\.xml"]
}
}
}
}
}
},
{
"id": "MQSEC01",
"title": "Authentication configured for OS groups. Determine target authentication mechanism.",
"category": "security",
"issueOverhead": 2.0,
"occurrencesCost": 0.2,
"solutionText": [
"Consider impact to clients",
"Alternatives:",
"(1) Port OS config: Migrate Users, Passwords and Groups to the container environment.",
"(2) Adopt LDAP: Configure migrated Queue Manager to use LDAP instead of Operating System based authentication"
],
"severity": "YELLOW",
"javaClass": "com.ibm.ta.sdk.sample.assessment.CustomRule",
"matchCriteria": {
"ruleType": "json",
"jsonQueryPath": {
"osUser": "$.security[?(@.authentication == 'IDPWOS')].authRecord[?(@.osUser empty false)]",
"osGroup": "$.security[?(@.authentication == 'IDPWOS')].authRecord[?(@.osGroup empty false)]"
},
"occurrenceAttr": {
"type": {
"title":"Destination Type",
"path": "type"
},
"object": {
"title":"Object",
"path": "object"
},
"osObjectType": {
"title":"OS Object Type",
"path": "@filterPathKey"
},
"osObjectName": {
"title":"OS Object Name",
"path": "@filterPathKeyValue",
"countUnique": true
}
}
}
}
]