diff --git a/public/.angular-cli.json b/public/.angular-cli.json
index fa9ff9f..2c38370 100644
--- a/public/.angular-cli.json
+++ b/public/.angular-cli.json
@@ -54,6 +54,9 @@
     }
   ],
   "test": {
+    "codeCoverage": {
+      "exclude": ["src/app/store/store.ts"]
+    },
     "karma": {
       "config": "./karma.conf.js"
     }
diff --git a/public/.nyc_output/out.json b/public/.nyc_output/out.json
new file mode 100644
index 0000000..0967ef4
--- /dev/null
+++ b/public/.nyc_output/out.json
@@ -0,0 +1 @@
+{}
diff --git a/public/cypress.json b/public/cypress.json
index 5a2036d..51c046b 100644
--- a/public/cypress.json
+++ b/public/cypress.json
@@ -2,6 +2,7 @@
   "chromeWebSecurity": false,
   "requestTimeout": 60000,
   "responseTimeout": 100000,
+  "videoRecording": false,
   "baseUrl": "http://localhost:4300/#/",
   "env": {
     "backendUrl": "http://localhost:8446"
diff --git a/public/cypress/fixtures/createMcRes.json b/public/cypress/fixtures/createMcRes.json
index ada82bc..e764c18 100644
--- a/public/cypress/fixtures/createMcRes.json
+++ b/public/cypress/fixtures/createMcRes.json
@@ -1,5 +1,5 @@
 {
-  "vfcmt":{
+  "vfcmt": {
     "uuid": "6d436c07-8006-4335-8c84-d65b4740f8d6"
   },
   "cdump": {
@@ -965,7 +965,72 @@
         "type": { "name": "tosca.dcae.nodes.cdapApp.Enrich" }
       }
     ],
-    "relations": [],
+    "relations": [
+      {
+        "n1": "n.1520766712715.7",
+        "name1": "foi",
+        "n2": "n.1520766711386.5",
+        "name2": "topic1",
+        "meta": {
+          "n1": "n.1520766712715.7",
+          "p1": "stream_publish_0",
+          "relationship": ["foi", null, "stream_publish_0"],
+          "n2": "n.1520766711386.5",
+          "p2": "topic"
+        }
+      },
+      {
+        "n1": "n.1520766712715.7",
+        "name1": "foi",
+        "n2": "n.1520766712709.6",
+        "name2": "feed0",
+        "meta": {
+          "n1": "n.1520766712715.7",
+          "p1": "stream_publish_0",
+          "n2": "n.1520766712709.6",
+          "p2": "feed",
+          "relationship": [
+            "foi",
+            "dcae.relationships.publish_files",
+            "stream_publish_0"
+          ]
+        }
+      },
+      {
+        "n1": "n.1520766711370.3",
+        "name1": "componentSpec_docker_map",
+        "n2": "n.1520766711379.4",
+        "name2": "feed0",
+        "meta": {
+          "n1": "n.1520766711370.3",
+          "p1": "stream_subscribe_0",
+          "n2": "n.1520766711379.4",
+          "p2": "feed",
+          "relationship": [
+            "componentSpec_docker_map",
+            "dcae.relationships.subscribe_to_files",
+            "stream_subscribe_0"
+          ]
+        }
+      },
+      {
+        "n1": "n.1520766711370.3",
+        "name1": "componentSpec_docker_map",
+        "n2": "n.1520766711386.5",
+        "name2": "topic1",
+        "meta": {
+          "n1": "n.1520766711370.3",
+          "p1": "stream_publish_0",
+          "n2": "n.1520766711386.5",
+          "p2": "topic",
+          "relationship": [
+            "componentSpec_docker_map",
+            "dcae.relationships.publish_events",
+            "stream_publish_0"
+          ]
+        }
+      }
+    ],
     "inputs": [],
     "outputs": []
   }
diff --git a/public/cypress/fixtures/createMcResWithBooleanDDL.json b/public/cypress/fixtures/createMcResWithBooleanDDL.json
new file mode 100644
index 0000000..3fcd512
--- /dev/null
+++ b/public/cypress/fixtures/createMcResWithBooleanDDL.json
@@ -0,0 +1,1060 @@
+{
+  "vfcmt": {
+    "uuid": "6d436c07-8006-4335-8c84-d65b4740f8d6"
+  },
+  "cdump": {
+    "cid": "47908e78-9893-4f18-b767-ea7131dd8de7",
+    "version": 0,
+    "nodes": [
+      {
+        "name": "map",
+        "description":
+          "/sdc/v1/catalog/resources/e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/artifacts/6134d7c8-f9af-4562-bf8d-e60039ec58bb",
+        "id": "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b",
+        "nid": "n.1517823219961.0",
+        "capabilities": [
+          {
+            "name": "stream_subscribe_0",
+            "type": {
+              "name": "dcae.capabilities.stream.subscribe",
+              "id": "template.yaml/dcae.capabilities.stream.subscribe"
+            },
+            "properties": [
+              {
+                "assignment": { "value": "Map_input" },
+                "name": "format",
+                "type": "string"
+              },
+              {
+                "assignment": { "value": "IGNORE" },
+                "name": "route",
+                "type": "string"
+              },
+              {
+                "assignment": { "value": "1.0.0" },
+                "name": "version",
+                "type": "string"
+              }
+            ]
+          },
+          {
+            "name": "feature",
+            "type": {
+              "name": "tosca.capabilities.Node",
+              "id": "template.yaml/tosca.capabilities.Node"
+            }
+          }
+        ],
+        "requirements": [
+          {
+            "capability": {
+              "name": "dcae.capabilities.stream.subscribe",
+              "id": "template.yaml/dcae.capabilities.stream.subscribe"
+            },
+            "node_filter": {
+              "capabilities": [
+                {
+                  "dcae.capabilities.stream.subscribe": {
+                    "properties": [
+                      { "format": [{ "equal": "VES_specification" }] },
+                      { "version": [{ "equal": "5.28.4" }] }
+                    ]
+                  }
+                }
+              ]
+            },
+            "name": "stream_publish_0",
+            "relationship": { "type": "dcae.relationships.rework_connected_to" }
+          },
+          {
+            "capability": {
+              "name": "dcae.capabilities.cdapHost",
+              "id": "template.yaml/dcae.capabilities.cdapHost"
+            },
+            "name": "host",
+            "relationship": {
+              "type": "dcae.relationships.component_contained_in"
+            }
+          },
+          {
+            "capability": {
+              "name": "dcae.capabilities.composition.host",
+              "id": "template.yaml/dcae.capabilities.composition.host"
+            },
+            "name": "composition"
+          },
+          {
+            "occurrences": [0, "UNBOUNDED"],
+            "node": "tosca.nodes.Root",
+            "capability": {
+              "name": "tosca.capabilities.Node",
+              "id": "template.yaml/tosca.capabilities.Node"
+            },
+            "name": "dependency",
+            "relationship": { "type": "tosca.relationships.DependsOn" }
+          }
+        ],
+        "properties": [
+          {
+            "assignment": {
+              "value": ""
+            },
+            "name": "valueUndefined",
+            "description": "valueUndefined",
+            "type": "boolean",
+            "constraints": [
+              {
+                "valid_values": ["single", "multiple"]
+              }
+            ]
+          },
+          {
+            "assignment": {
+              "value": "false"
+            },
+            "name": "valueFalse",
+            "description": "DDL value false",
+            "type": "boolean",
+            "constraints": [
+              {
+                "valid_values": ["single", "multiple"]
+              }
+            ]
+          },
+          {
+            "assignment": {
+              "value": "true"
+            },
+            "name": "valueTrue",
+            "description": "DDL value true",
+            "type": "boolean",
+            "constraints": [
+              {
+                "valid_values": ["single", "multiple"]
+              }
+            ]
+          },
+          {
+            "assignment": {
+              "value": "multiple"
+            },
+            "name": "mappingType",
+            "description":
+              "CSV to VES mapping, from the file to generate multiple events or single event",
+            "type": "string",
+            "constraints": [
+              {
+                "valid_values": ["single", "multiple"]
+              }
+            ]
+          },
+          {
+            "assignment": {
+              "value":
+                "com.att.gfp.dcae.eventProcessor.Catalog,com.att.ecomp.dcae.eventproc.cdap.common.processors.Catalog"
+            },
+            "name": "defaultCatalogs",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": { "get_input": "defaultObjects" } },
+            "name": "defaultObjects",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "Map Microservice" },
+            "name": "description",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": { "get_input": "dmaapConsumerGrp" } },
+            "name": "dmaapConsumerGrp",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "" },
+            "name": "eventFactory",
+            "type": "string"
+          },
+          {
+            "assignment": {
+              "value":
+                "{\"processing\":[{\"phase\":\"snmp_map\",\"filter\":{\"class\":\"StartsWith\",\"string\":\"${notify OID}\",\"value\":\".1.3.6.1.4.1.26878.200.2\"},\"processors\":[{\"class\":\"SnmpConvertor\",\"array\":\"varbinds\",\"keycolumn\":\"varbind_oid\",\"datacolumn\":\"varbind_value\"},{\"class\":\"RunPhase\",\"phase\":\"vPCRF_MOGParsingPhase\"}]},{\"phase\":\"vPCRF_MOGParsingPhase\",\"processors\":[{\"class\":\"MapAlarmValues\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"toField\":\"eventGroup\",\"map\":{\"LinkDown\":\"LinkUp_Down\",\"LinkUp\":\"LinkUp_Down\",\"HIGH CPU USAGE Alert\":\"HighCpuUsageAlert-Clear\",\"HIGH CPU USAGE Clear\":\"HighCpuUsageAlert-Clear\",\"ProcessDown\":\"ProcessUp-Down\",\"ProcessUp\":\"ProcessUp-Down\",\"HighLoadAlert\":\"HighLoadAlert-Clear\",\"HighLoadClear\":\"HighLoadAlert-Clear\",\"DiskFullAlert\":\"DiskFullAlert-Clear\",\"DiskFullClear\":\"DiskFullAlert-Clear\",\"LowSwapAlert\":\"LowMemoryAlert-Clear\",\"LowSwapClear\":\"LowMemoryAlert-Clear\",\"LowMemoryAlert\":\"LowMemoryAlert-Clear\",\"LowMemoryClear\":\"LowMemoryAlert-Clear\",\"ApplicationStartError\":\"ApplicationStartError\",\"LicenseUsageThresholdExceeded \":\"LicenseUsageThresholdExceeded \",\"LicensedSessionCreation\":\"LicensedSessionCreation\",\"InvalidLicense\":\"InvalidLicense\",\"PoliciesNotConfigured\":\"PoliciesNotConfigured\",\"DiameterAllPeersDown\":\"DiameterAllPeersUp-Down\",\"DiameterAllPeersUp\":\"DiameterAllPeersUp-Down\",\"HA Failover\":\"HAFailover\",\"GR Failover\":\"GRFailover\",\"All DB Member of replica set Down\":\"AllDBMemberReplicaSetUp-Down\",\"All DB Member of replica set Up\":\"AllDBMemberReplicaSetUp-Down\",\"No Primary DB Member Found\":\"PrimaryDBMemberFound-NotFound\",\"Primary DB Member Found\":\"PrimaryDBMemberFound-NotFound\",\"Secondary DB Member Down\":\"SecondaryDBMemberUp-Down\",\"Secondary DB Member Up\":\"SecondaryDBMemberUp-Down\",\"Arbiter Down\":\"ArbiterUp-Down\",\"Arbiter Up\":\"ArbiterUp-Down\",\"DB resync is needed\":\"DBResyncNeeded-NotNeeded\",\"DB resync is not needed\":\"DBResyncNeeded-NotNeeded\",\"Config Server Down\":\"ConfigServerUp-Down\",\"Config Server Up\":\"ConfigServerUp-Down\",\"VM Down\":\"VMUp-Down\",\"VM Up\":\"VMUp-Down\",\"QNS Process Down\":\"QNSProcessUp-Down\",\"QNS Process Up\":\"QNSProcessUp-Down\",\"VirtualInterface Down\":\"VirtualInterfaceUp-Down\",\"VirtualInterface Up\":\"VirtualInterfaceUp-Down\",\"MemcachedConnectError\":\"MemcachedConnectError\",\"PolicyConfiguration\":\"PolicyConfiguration\",\"DiameterPeerDown\":\"DiameterPeerDown\",\"DeveloperMode\":\"DeveloperMode\",\"ZeroMQConnectionError\":\"ZeroMQConnectionError\",\"Admin User Logged In\":\"AdminUserLoggedIn\"}},{\"class\":\"Set\",\"updates\":{\"event.commonEventHeader.domain\":\"fault\",\"event.commonEventHeader.version\":3,\"event.faultFields.faultFieldsVersion\":2.0,\"event.faultFields.vfStatus\":\"Active\",\"event.commonEventHeader.priority\":\"Normal\",\"event.commonEventHeader.sequence\":0,\"event.faultFields.alarmCondition\":\"${_1_3_6_1_4_1_26878_100_1_1_9}\",\"event.faultFields.alarmAdditionalInformation[0].name\":\"EventGroup\",\"event.faultFields.alarmAdditionalInformation[0].value\":\"${eventGroup}\",\"event.faultFields.alarmAdditionalInformation[1].name\":\"OID1\",\"event.faultFields.alarmAdditionalInformation[1].value\":\"${varbinds[0].varbind_value}\"}},{\"class\":\"Set\",\"updates\":{\"event.commonEventHeader.startEpochMicrosec\":\"%{now.ms}\"}},{\"class\":\"MapAlarmValues\",\"field\":\"_1_3_6_1_4_1_26878_100_1_4\",\"default\":\"WARNING\",\"toField\":\"event.faultFields.eventSeverity\",\"map\":{\"0\":\"CRITICAL\",\"1\":\"CRITICAL\",\"2\":\"MAJOR\",\"3\":\"MAJOR\",\"4\":\"MINOR\",\"5\":\"WARNING\",\"6\":\"WARNING\",\"7\":\"WARNING\",\"8\":\"WARNING\",\"9\":\"NORMAL\"}},{\"class\":\"MapAlarmValues\",\"field\":\"_1_3_6_1_4_1_26878_100_1_3\",\"default\":\"\",\"toField\":\"event.faultFields.specificProblem\",\"map\":{\"0\":\"Hardware\",\"1\":\"Networking\",\"2\":\"Virtualization\",\"3\":\"Operating System\",\"4\":\"Application\",\"5\":\"Process\"}},{\"class\":\"Set\",\"updates\":{\"event.commonEventHeader.lastEpochMicrosec\":\"${event.commonEventHeader.startEpochMicrosec}\"}},{\"class\":\"ConvertFieldTypes\",\"updates\":{\"event.commonEventHeader.startEpochMicrosec\":\"long\",\"event.commonEventHeader.lastEpochMicrosec\":\"long\"}}]},{\"phase\":\"vPCRF_MOGParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"DiskFullAlert\",\"LowSwapAlert\",\"LowMemoryAlert\"]},\"processors\":[{\"class\":\"Set\",\"updates\":{\"event.faultFields.eventSeverity\":\"MAJOR\"}}]},{\"phase\":\"vPCRF_MOGParsingPhase\",\"filter\":{\"class\":\"Contains\",\"string\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"value\":\"mog\"},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"event.commonEventHeader.sourceName\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\"([^:]*):.*\"},{\"class\":\"Set\",\"updates\":{\"event.faultFields.eventSourceType\":\"vMOG\",\"event.commonEventHeader.functionalRole\":\"vMoG\",\"event.commonEventHeader.eventType\":\"vMoG_Alarms\",\"event.commonEventHeader.eventId\":\"${event.commonEventHeader.sourceName}_${eventGroup}\",\"event.commonEventHeader.eventName\":\"NA\"}}]},{\"phase\":\"vPCRF_MOGParsingPhase\",\"filter\":{\"class\":\"Not\",\"filter\":{\"class\":\"Contains\",\"string\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"value\":\"mog\"}},\"processors\":[{\"class\":\"Set\",\"updates\":{\"event.commonEventHeader.sourceName\":\"${agent address}\",\"event.faultFields.eventSourceType\":\"vPCRF\",\"event.commonEventHeader.functionalRole\":\"vPCRF\",\"event.commonEventHeader.eventType\":\"PCRF_Alarms\",\"event.commonEventHeader.eventId\":\"${agent address}_${eventGroup}\",\"event.commonEventHeader.reportingEntityName\":\"${event.commonEventHeader.sourceName}\"}}]},{\"phase\":\"vPCRF_MOGParsingPhase\",\"filter\":{\"class\":\"Contains\",\"string\":\"${_1_3_6_1_4_1_26878_100_1_1_7}\",\"value\":\"mogx\"},\"processors\":[{\"class\":\"Set\",\"updates\":{\"event.faultFields.alarmCondition\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"event.faultFields.specificProblem\":\"${_1_3_6_1_4_1_26878_100_1_1_9}\",\"event.commonEventHeader.reportingEntityName\":\"${event.commonEventHeader.sourceName}\"}},{\"class\":\"RunPhase\",\"phase\":\"vPCRF_MOGX_ParsingPhase\"},{\"class\":\"Set\",\"updates\":{\"event.commonEventHeader.eventId\":\"${event.commonEventHeader.sourceName}_${eventGroup}_${eventKey}\"}}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"LinkDown\",\"LinkUp\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".* (.*)\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"ProcessDown\",\"ProcessUp\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".*:(.*) process.*\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"DiskFullAlert\",\"DiskFullClear\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".*:(.*):.*\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"QNS Process Down\",\"QNS Process Up\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".*:(.*) server on .*\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"DiameterPeerDown\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".* (.*) [R/r]ealm.*\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"DiameterAllPeersDown\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".*Realm: (.*):[^:]*peers.*\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"VirtualInterface Down\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".*onnect (.*). Not reachable\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"VirtualInterface Up\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".*: (.*) is up\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"GR Failover\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".*: (Geo Failover done from .*) of .*\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"Arbiter Down\",\"Arbiter Up\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".* Arbiter (.*) is .*\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"All DB Member of replica set Down\",\"All DB Member of replica set Up\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".* All DB members of replica set (.*) are .*\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"No Primary DB Member Found\",\"Primary DB Member Found\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".* Replica-set (.*)\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"DB Member Down\",\"DB Member Up\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".* (DB.Member .*) of SET .*\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"Secondary DB Member Down\",\"Secondary DB Member Up\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".*Secondary (DB.*) is.*\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"DB Resync is needed\",\"DB Resync is not needed\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".* member (.*:[0-9]+).*$\"}]},{\"phase\":\"vPCRF_MOGX_ParsingPhase\",\"filter\":{\"class\":\"OneOf\",\"field\":\"_1_3_6_1_4_1_26878_100_1_1_9\",\"values\":[\"ZeroMQConnectionError\"]},\"processors\":[{\"class\":\"ExtractText\",\"field\":\"eventKey\",\"value\":\"${_1_3_6_1_4_1_26878_100_1_1_10}\",\"regex\":\".* for (tcp.*)\"}]},{\"phase\":\"vPCRF_MOGParsingPhase\",\"processors\":[{\"class\":\"Clear\",\"fields\":[\"community len\",\"cambria.partition\",\"notify OID\",\"notify OID len\",\"epoch_serno\",\"protocol version\",\"agent name\",\"trap category\",\"community\",\"time received\",\"agent address\",\"varbinds\"]},{\"class\":\"ClearNoneStandardFields\",\"reservedFields\":[\"event\",\"parserType\"]},{\"class\":\"LogEvent\",\"title\":\"UCSNMPEvent-vPCRF_MOG_Parser_Output\",\"logName\":\"com.att.gfp.dcae.eventProcessor.output\",\"logLevel\":\"DEBUG\"},{\"class\":\"LogText\",\"logLevel\":\"INFO\",\"logText\":\"Finished_vPCRF_MOGParsingPhase Mapping Phase\"},{\"class\":\"RunPhase\",\"phase\":\"map_publish\"}]}]}"
+            },
+            "name": "json",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": { "get_input": "monitorThreads" } },
+            "name": "monitorThreads",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "mapMS" },
+            "name": "name",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "snmp_map" },
+            "name": "phases.snmp_map.phaseName",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": ".*snmp.*" },
+            "name": "phases.snmp_map.streamPattern",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "syslog_map" },
+            "name": "phases.syslog_map.phaseName",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": ".*syslog.*" },
+            "name": "phases.syslog_map.streamPattern",
+            "type": "string"
+          },
+          {
+            "assignment": {
+              "value":
+                "{\"phase\":\"map_publish\",\"processors\":[{\"class\":\"EventProcessorMetric\",\"metric\":\"out.events\"},{\"class\":\"SendEvent\",\"channel\":\"DCAE-MAP-EVENT-OUT\"}]}"
+            },
+            "name": "postConfig",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "vnfTypes.*" },
+            "name": "ruleKeyPattern",
+            "type": "string"
+          },
+          {
+            "assignment": {
+              "value":
+                "[{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"MOD\",\"INT\":\"INT\",\"HSEV\":\"header-SEV \",\"SEVDES\":\"Syslog-Severity\"},\"filter\":{\"${Priority}\":\"$Priority\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"0\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"1\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"0\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"2\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"0\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"3\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"0\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"4\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"0\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"5\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"0\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"6\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"0\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"7\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"1\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"8\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"1\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"9\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"1\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"10\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"1\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"11\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"1\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"12\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"1\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"13\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"1\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"14\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"1\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"15\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"2\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"16\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"2\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"17\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"2\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"18\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"2\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"19\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"2\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"20\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"2\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"21\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"2\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"22\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"2\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"23\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"3\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"24\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"3\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"25\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"3\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"26\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"3\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"27\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"3\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"28\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"3\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"29\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"3\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"30\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"3\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"31\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"4\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"32\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"4\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"33\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"4\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"34\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"4\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"35\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"4\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"36\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"4\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"37\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"4\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"38\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"4\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"39\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"5\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"40\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"5\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"41\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"5\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"42\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"5\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"43\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"5\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"44\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"5\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"45\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"5\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"46\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"5\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"47\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"6\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"48\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"6\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"49\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"6\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"50\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"6\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"51\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"6\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"52\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"6\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"53\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"6\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"54\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"6\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"55\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"7\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"56\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"7\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"57\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"7\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"58\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"7\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"59\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"7\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"60\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"7\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"61\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"7\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"62\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"7\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"63\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"8\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"64\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"8\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"65\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"8\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"66\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"8\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"67\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"8\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"68\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"8\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"69\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"8\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"70\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"8\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"71\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"9\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"72\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"9\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"73\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"9\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"74\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"9\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"75\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"9\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"76\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"9\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"77\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"9\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"78\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"9\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"79\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"10\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"80\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"10\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"81\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"10\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"82\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"10\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"83\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"10\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"84\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"10\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"85\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"10\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"86\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"10\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"87\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"11\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"88\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"11\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"89\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"11\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"90\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"11\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"91\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"11\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"92\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"11\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"93\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"11\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"94\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"11\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"95\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"12\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"96\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"12\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"97\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"12\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"98\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"12\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"99\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"12\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"100\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"12\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"101\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"12\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"102\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"12\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"103\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"13\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"104\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"13\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"105\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"13\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"106\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"13\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"107\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"13\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"108\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"13\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"109\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"13\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"110\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"13\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"111\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"14\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"112\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"14\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"113\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"14\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"114\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"14\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"115\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"14\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"116\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"14\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"117\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"14\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"118\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"14\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"119\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"15\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"120\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"15\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"121\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"15\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"122\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"15\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"123\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"15\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"124\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"15\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"125\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"15\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"126\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"15\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"127\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"16\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"128\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"16\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"129\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"16\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"130\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"16\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"131\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"16\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"132\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"16\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"133\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"16\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"134\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"16\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"135\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"17\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"136\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"17\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"137\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"17\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"138\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"17\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"139\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"17\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"140\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"17\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"141\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"17\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"142\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"17\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"143\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"18\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"144\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"18\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"145\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"18\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"146\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"18\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"147\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"18\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"148\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"18\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"149\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"18\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"150\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"18\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"151\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"19\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"152\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"19\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"153\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"19\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"154\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"19\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"155\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"19\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"156\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"19\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"157\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"19\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"158\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"19\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"159\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"20\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"160\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"20\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"161\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"20\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"162\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"20\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"163\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"20\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"164\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"20\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"165\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"20\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"166\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"20\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"167\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"21\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"168\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"21\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"169\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"21\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"170\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"21\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"171\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"21\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"172\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"21\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"173\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"21\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"174\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"21\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"175\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"22\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"176\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"22\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"177\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"22\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"178\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"22\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"179\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"22\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"180\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"22\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"181\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"22\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"182\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"22\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"183\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"23\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"184\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"23\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"185\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"23\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"186\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"23\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"187\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"23\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"188\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"23\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"189\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"23\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"190\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"23\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"191\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"0\",\"INT\":\"24\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Emergency: system is unusable\"},\"filter\":{\"${Priority}\":\"192\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"1\",\"INT\":\"24\",\"HSEV\":\"CRITICAL\",\"SEVDES\":\"Alert: action must be taken immediately\"},\"filter\":{\"${Priority}\":\"193\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"2\",\"INT\":\"24\",\"HSEV\":\"MAJOR\",\"SEVDES\":\"Critical: critical conditions\"},\"filter\":{\"${Priority}\":\"194\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"3\",\"INT\":\"24\",\"HSEV\":\"MINOR\",\"SEVDES\":\"Error: error conditions\"},\"filter\":{\"${Priority}\":\"195\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"4\",\"INT\":\"24\",\"HSEV\":\"WARNING\",\"SEVDES\":\"Warning: warning conditions\"},\"filter\":{\"${Priority}\":\"196\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"5\",\"INT\":\"24\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Notice: normal but significant condition\"},\"filter\":{\"${Priority}\":\"197\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"6\",\"INT\":\"24\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Informational: informational messages\"},\"filter\":{\"${Priority}\":\"198\"}},{\"key\":\"syslogLookup\",\"value\":{\"MOD\":\"7\",\"INT\":\"23\",\"HSEV\":\"NORMAL\",\"SEVDES\":\"Debug: debug-level messages\"},\"filter\":{\"${Priority}\":\"199\"}}]"
+            },
+            "name": "settings",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "False" },
+            "name": "startNoChannels",
+            "type": "string"
+          },
+          {
+            "default": "cdap_broker",
+            "assignment": {
+              "value": { "get_input": "connected_broker_dns_name" }
+            },
+            "name": "connected_broker_dns_name",
+            "type": "string",
+            "required": true
+          },
+          { "name": "jar_url", "type": "string", "required": true },
+          {
+            "assignment": {
+              "value": {
+                "get_property": ["SELF", "composition", "location_id"]
+              }
+            },
+            "name": "location_id",
+            "type": "string",
+            "required": true
+          },
+          {
+            "name": "service_component_type",
+            "type": "string",
+            "required": true
+          }
+        ],
+        "typeinfo": {
+          "itemId":
+            "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/tosca.dcae.nodes.cdapApp.Map",
+          "requirements": [
+            {
+              "node": {
+                "name": "dcae.capabilities.stream.subscribe",
+                "id":
+                  "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/dcae.capabilities.stream.subscribe"
+              },
+              "capability": {
+                "name": "dcae.capabilities.stream.subscribe",
+                "id":
+                  "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/dcae.capabilities.stream.subscribe"
+              },
+              "name": "stream_publish_0",
+              "id": "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/stream_publish_0",
+              "relationship": {
+                "type": "dcae.relationships.rework_connected_to"
+              }
+            },
+            {
+              "node": {
+                "name": "dcae.capabilities.cdapHost",
+                "id":
+                  "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/dcae.capabilities.cdapHost"
+              },
+              "capability": {
+                "name": "dcae.capabilities.cdapHost",
+                "id":
+                  "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/dcae.capabilities.cdapHost"
+              },
+              "name": "host",
+              "id": "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/host",
+              "relationship": {
+                "type": "dcae.relationships.component_contained_in"
+              }
+            },
+            {
+              "node": {
+                "name": "dcae.capabilities.composition.host",
+                "id":
+                  "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/dcae.capabilities.composition.host"
+              },
+              "capability": {
+                "name": "dcae.capabilities.composition.host",
+                "id":
+                  "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/dcae.capabilities.composition.host"
+              },
+              "name": "composition",
+              "id": "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/composition"
+            },
+            {
+              "occurrences": [0, "UNBOUNDED"],
+              "node": {
+                "name": "tosca.capabilities.Node",
+                "id":
+                  "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/tosca.capabilities.Node"
+              },
+              "capability": {
+                "name": "tosca.capabilities.Node",
+                "id":
+                  "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/tosca.capabilities.Node"
+              },
+              "name": "dependency",
+              "id": "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/dependency",
+              "relationship": { "type": "tosca.relationships.DependsOn" }
+            }
+          ],
+          "capabilities": [
+            {
+              "name": "stream_subscribe_0",
+              "type": {
+                "name": "dcae.capabilities.stream.subscribe",
+                "id":
+                  "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/dcae.capabilities.stream.subscribe"
+              }
+            },
+            {
+              "name": "feature",
+              "type": {
+                "name": "tosca.capabilities.Node",
+                "id":
+                  "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/tosca.capabilities.Node"
+              }
+            }
+          ],
+          "catalogId": 0,
+          "catalog": "http://135.91.225.81:8080",
+          "hierarchy": [
+            {
+              "name": "tosca.dcae.nodes.cdapApp",
+              "id":
+                "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/tosca.dcae.nodes.cdapApp"
+            },
+            {
+              "name": "tosca.dcae.nodes.Root",
+              "id": "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/tosca.dcae.nodes.Root"
+            },
+            {
+              "name": "tosca.nodes.Root",
+              "description":
+                "The TOSCA Node Type all other TOSCA base Node Types derive from",
+              "id": "e45ec9d7-01df-4cb1-896f-aff2a6ca5a8b/tosca.nodes.Root"
+            }
+          ],
+          "name": "tosca.dcae.nodes.cdapApp.Map",
+          "id": 0
+        },
+        "type": { "name": "tosca.dcae.nodes.cdapApp.Map" }
+      },
+      {
+        "name": "supplement",
+        "description":
+          "/sdc/v1/catalog/resources/30d0b4f4-efc5-424a-9d26-6d7843a0971d/artifacts/2d68c4e3-a4ab-46b3-ae3b-2a593fa97ded",
+        "id": "30d0b4f4-efc5-424a-9d26-6d7843a0971d",
+        "nid": "n.1517823224030.1",
+        "capabilities": [
+          {
+            "name": "stream_subscribe_0",
+            "type": {
+              "name": "dcae.capabilities.stream.subscribe",
+              "id": "template.yaml/dcae.capabilities.stream.subscribe"
+            },
+            "properties": [
+              {
+                "assignment": { "value": "VES_specification" },
+                "name": "format",
+                "type": "string"
+              },
+              {
+                "assignment": { "value": "IGNORE" },
+                "name": "route",
+                "type": "string"
+              },
+              {
+                "assignment": { "value": "5.28.4" },
+                "name": "version",
+                "type": "string"
+              }
+            ]
+          },
+          {
+            "name": "feature",
+            "type": {
+              "name": "tosca.capabilities.Node",
+              "id": "template.yaml/tosca.capabilities.Node"
+            }
+          }
+        ],
+        "requirements": [
+          {
+            "capability": {
+              "name": "dcae.capabilities.stream.subscribe",
+              "id": "template.yaml/dcae.capabilities.stream.subscribe"
+            },
+            "node_filter": {
+              "capabilities": [
+                {
+                  "dcae.capabilities.stream.subscribe": {
+                    "properties": [
+                      { "format": [{ "equal": "VES_specification" }] },
+                      { "version": [{ "equal": "5.28.4" }] }
+                    ]
+                  }
+                }
+              ]
+            },
+            "name": "stream_publish_0",
+            "relationship": { "type": "dcae.relationships.rework_connected_to" }
+          },
+          {
+            "capability": {
+              "name": "dcae.capabilities.cdapHost",
+              "id": "template.yaml/dcae.capabilities.cdapHost"
+            },
+            "name": "host",
+            "relationship": {
+              "type": "dcae.relationships.component_contained_in"
+            }
+          },
+          {
+            "capability": {
+              "name": "dcae.capabilities.composition.host",
+              "id": "template.yaml/dcae.capabilities.composition.host"
+            },
+            "name": "composition"
+          },
+          {
+            "occurrences": [0, "UNBOUNDED"],
+            "node": "tosca.nodes.Root",
+            "capability": {
+              "name": "tosca.capabilities.Node",
+              "id": "template.yaml/tosca.capabilities.Node"
+            },
+            "name": "dependency",
+            "relationship": { "type": "tosca.relationships.DependsOn" }
+          }
+        ],
+        "properties": [
+          {
+            "assignment": {
+              "value":
+                "com.att.gfp.dcae.eventProcessor.Catalog,com.att.ecomp.dcae.eventproc.cdap.common.processors.Catalog"
+            },
+            "name": "defaultCatalogs",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": { "get_input": "defaultObjects" } },
+            "name": "defaultObjects",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "Supplement Microservice" },
+            "name": "description",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": { "get_input": "dmaapConsumerGrp" } },
+            "name": "dmaapConsumerGrp",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "" },
+            "name": "eventFactory",
+            "type": "string"
+          },
+          {
+            "assignment": {
+              "value":
+                "{\"processing\":[{\"phase\":\"supplement\",\"filter\":{\"class\":\"OneOf\",\"field\":\"event.commonEventHeader.eventType\",\"values\":[\"vPCRF_Alarms\",\"vMoG_Alarms\",\"applicationVnf\",\"GuestOS_Alarms\",\"Control\"]},\"processors\":[{\"class\":\"DateFormatter\",\"value\":\"${event.commonEventHeader.startEpochMicrosec}\",\"fromFormat\":\"#ms\",\"fromTz\":\"GMT\",\"toField\":\"event.commonEventHeader.internalHeaderFields.firstDatetime\",\"toFormat\":\"EEE,ddMMMyyyyHH:mm:ssZ\",\"toTz\":\"GMT\"},{\"class\":\"DateFormatter\",\"value\":\"${event.commonEventHeader.lastEpochMicrosec}\",\"fromFormat\":\"#ms\",\"fromTz\":\"GMT\",\"toField\":\"event.commonEventHeader.internalHeaderFields.lastDatetime\",\"toFormat\":\"EEE,ddMMMyyyyHH:mm:ssZ\",\"toTz\":\"GMT\"},{\"class\":\"DateFormatter\",\"value\":\"%{now.ms}\",\"fromFormat\":\"#ms\",\"fromTz\":\"GMT\",\"toField\":\"event.commonEventHeader.internalHeaderFields.collectorTimeStamp\",\"toFormat\":\"EEE,ddMMMyyyyHH:mm:ssZ\",\"toTz\":\"GMT\"},{\"class\":\"Set\",\"updates\":{\"event.commonEventHeader.internalHeaderFields.internalHeaderFieldsVersion\":\"9.9\",\"event.commonEventHeader.internalHeaderFields.eventTag\":\"${hp.tag}\"}}]},{\"phase\":\"supplement\",\"processors\":[{\"class\":\"RunPhase\",\"phase\":\"supplement_publish\"}]},{\"phase\":\"ves_supplement\",\"filter\":{\"class\":\"OneOf\",\"field\":\"event.commonEventHeader.eventType\",\"values\":[\"vIRC_Alarms\"]},\"processors\":[{\"class\":\"RunPhase\",\"phase\":\"supplement_publish\"}]}]}"
+            },
+            "name": "json",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": { "get_input": "monitorThreads" } },
+            "name": "monitorThreads",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "supplementMS" },
+            "name": "name",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "supplement" },
+            "name": "phases.supplement.phaseName",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": ".*supplement-in.*" },
+            "name": "phases.supplement.streamPattern",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "ves_supplement" },
+            "name": "phases.ves_supplement.phaseName",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": ".*sec-fault.*" },
+            "name": "phases.ves_supplement.streamPattern",
+            "type": "string"
+          },
+          {
+            "assignment": {
+              "value":
+                "{\"phase\":\"supplement_publish\",\"processors\":[{\"class\":\"EventProcessorMetric\",\"metric\":\"out.events\"},{\"class\":\"SendEvent\",\"channel\":\"DCAE-SUPPLEMENT-EVENT-OUT\"}]}"
+            },
+            "name": "postConfig",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "vnfTypes.*" },
+            "name": "ruleKeyPattern",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "False" },
+            "name": "startNoChannels",
+            "type": "string"
+          },
+          {
+            "default": "cdap_broker",
+            "assignment": {
+              "value": { "get_input": "connected_broker_dns_name" }
+            },
+            "name": "connected_broker_dns_name",
+            "type": "string",
+            "required": true
+          },
+          { "name": "jar_url", "type": "string", "required": true },
+          {
+            "assignment": {
+              "value": {
+                "get_property": ["SELF", "composition", "location_id"]
+              }
+            },
+            "name": "location_id",
+            "type": "string",
+            "required": true
+          },
+          {
+            "name": "service_component_type",
+            "type": "string",
+            "required": true
+          }
+        ],
+        "typeinfo": {
+          "itemId":
+            "30d0b4f4-efc5-424a-9d26-6d7843a0971d/tosca.dcae.nodes.cdapApp.Supplement",
+          "requirements": [
+            {
+              "node": {
+                "name": "dcae.capabilities.stream.subscribe",
+                "id":
+                  "30d0b4f4-efc5-424a-9d26-6d7843a0971d/dcae.capabilities.stream.subscribe"
+              },
+              "capability": {
+                "name": "dcae.capabilities.stream.subscribe",
+                "id":
+                  "30d0b4f4-efc5-424a-9d26-6d7843a0971d/dcae.capabilities.stream.subscribe"
+              },
+              "name": "stream_publish_0",
+              "id": "30d0b4f4-efc5-424a-9d26-6d7843a0971d/stream_publish_0",
+              "relationship": {
+                "type": "dcae.relationships.rework_connected_to"
+              }
+            },
+            {
+              "node": {
+                "name": "dcae.capabilities.cdapHost",
+                "id":
+                  "30d0b4f4-efc5-424a-9d26-6d7843a0971d/dcae.capabilities.cdapHost"
+              },
+              "capability": {
+                "name": "dcae.capabilities.cdapHost",
+                "id":
+                  "30d0b4f4-efc5-424a-9d26-6d7843a0971d/dcae.capabilities.cdapHost"
+              },
+              "name": "host",
+              "id": "30d0b4f4-efc5-424a-9d26-6d7843a0971d/host",
+              "relationship": {
+                "type": "dcae.relationships.component_contained_in"
+              }
+            },
+            {
+              "node": {
+                "name": "dcae.capabilities.composition.host",
+                "id":
+                  "30d0b4f4-efc5-424a-9d26-6d7843a0971d/dcae.capabilities.composition.host"
+              },
+              "capability": {
+                "name": "dcae.capabilities.composition.host",
+                "id":
+                  "30d0b4f4-efc5-424a-9d26-6d7843a0971d/dcae.capabilities.composition.host"
+              },
+              "name": "composition",
+              "id": "30d0b4f4-efc5-424a-9d26-6d7843a0971d/composition"
+            },
+            {
+              "occurrences": [0, "UNBOUNDED"],
+              "node": {
+                "name": "tosca.capabilities.Node",
+                "id":
+                  "30d0b4f4-efc5-424a-9d26-6d7843a0971d/tosca.capabilities.Node"
+              },
+              "capability": {
+                "name": "tosca.capabilities.Node",
+                "id":
+                  "30d0b4f4-efc5-424a-9d26-6d7843a0971d/tosca.capabilities.Node"
+              },
+              "name": "dependency",
+              "id": "30d0b4f4-efc5-424a-9d26-6d7843a0971d/dependency",
+              "relationship": { "type": "tosca.relationships.DependsOn" }
+            }
+          ],
+          "capabilities": [
+            {
+              "name": "stream_subscribe_0",
+              "type": {
+                "name": "dcae.capabilities.stream.subscribe",
+                "id":
+                  "30d0b4f4-efc5-424a-9d26-6d7843a0971d/dcae.capabilities.stream.subscribe"
+              }
+            },
+            {
+              "name": "feature",
+              "type": {
+                "name": "tosca.capabilities.Node",
+                "id":
+                  "30d0b4f4-efc5-424a-9d26-6d7843a0971d/tosca.capabilities.Node"
+              }
+            }
+          ],
+          "catalogId": 0,
+          "catalog": "http://135.91.225.81:8080",
+          "hierarchy": [
+            {
+              "name": "tosca.dcae.nodes.cdapApp",
+              "id":
+                "30d0b4f4-efc5-424a-9d26-6d7843a0971d/tosca.dcae.nodes.cdapApp"
+            },
+            {
+              "name": "tosca.dcae.nodes.Root",
+              "id": "30d0b4f4-efc5-424a-9d26-6d7843a0971d/tosca.dcae.nodes.Root"
+            },
+            {
+              "name": "tosca.nodes.Root",
+              "description":
+                "The TOSCA Node Type all other TOSCA base Node Types derive from",
+              "id": "30d0b4f4-efc5-424a-9d26-6d7843a0971d/tosca.nodes.Root"
+            }
+          ],
+          "name": "tosca.dcae.nodes.cdapApp.Supplement",
+          "id": 0
+        },
+        "type": { "name": "tosca.dcae.nodes.cdapApp.Supplement" }
+      },
+      {
+        "name": "enrich",
+        "description":
+          "/sdc/v1/catalog/resources/8743b27b-f01e-4b17-a306-37efd42983d0/artifacts/c96f3ffd-516c-470b-ab7c-ced64fb244f0",
+        "id": "8743b27b-f01e-4b17-a306-37efd42983d0",
+        "nid": "n.1517823228454.2",
+        "capabilities": [
+          {
+            "name": "stream_subscribe_0",
+            "type": {
+              "name": "dcae.capabilities.stream.subscribe",
+              "id": "template.yaml/dcae.capabilities.stream.subscribe"
+            },
+            "properties": [
+              {
+                "assignment": { "value": "VES_specification" },
+                "name": "format",
+                "type": "string"
+              },
+              {
+                "assignment": { "value": "IGNORE" },
+                "name": "route",
+                "type": "string"
+              },
+              {
+                "assignment": { "value": "5.28.4" },
+                "name": "version",
+                "type": "string"
+              }
+            ]
+          },
+          {
+            "name": "feature",
+            "type": {
+              "name": "tosca.capabilities.Node",
+              "id": "template.yaml/tosca.capabilities.Node"
+            }
+          }
+        ],
+        "requirements": [
+          {
+            "capability": {
+              "name": "dcae.capabilities.stream.subscribe",
+              "id": "template.yaml/dcae.capabilities.stream.subscribe"
+            },
+            "node_filter": {
+              "capabilities": [
+                {
+                  "dcae.capabilities.stream.subscribe": {
+                    "properties": [
+                      { "format": [{ "equal": "VES_specification" }] },
+                      { "version": [{ "equal": "5.28.4" }] }
+                    ]
+                  }
+                }
+              ]
+            },
+            "name": "stream_publish_0",
+            "relationship": { "type": "dcae.relationships.rework_connected_to" }
+          },
+          {
+            "capability": {
+              "name": "dcae.capabilities.cdapHost",
+              "id": "template.yaml/dcae.capabilities.cdapHost"
+            },
+            "name": "host",
+            "relationship": {
+              "type": "dcae.relationships.component_contained_in"
+            }
+          },
+          {
+            "capability": {
+              "name": "dcae.capabilities.composition.host",
+              "id": "template.yaml/dcae.capabilities.composition.host"
+            },
+            "name": "composition"
+          },
+          {
+            "occurrences": [0, "UNBOUNDED"],
+            "node": "tosca.nodes.Root",
+            "capability": {
+              "name": "tosca.capabilities.Node",
+              "id": "template.yaml/tosca.capabilities.Node"
+            },
+            "name": "dependency",
+            "relationship": { "type": "tosca.relationships.DependsOn" }
+          }
+        ],
+        "properties": [
+          {
+            "assignment": {
+              "value":
+                "com.att.ecomp.dcae.eventproc.cdap.common.processors.Catalog,com.att.sa.highlandPark.topoTools.HpTopoDbObjectCatalog,com.att.sa.highlandPark.topoTools.HpTopoDbProcessors,com.att.gfp.dcae.eventProcessor.Catalog"
+            },
+            "name": "defaultCatalogs",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": { "get_input": "defaultObjects" } },
+            "name": "defaultObjects",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "Enrich Microservice" },
+            "name": "description",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": { "get_input": "dmaapConsumerGrp" } },
+            "name": "dmaapConsumerGrp",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "" },
+            "name": "eventFactory",
+            "type": "string"
+          },
+          {
+            "assignment": {
+              "value":
+                "{\"processing\":[{\"phase\":\"enrich\",\"filter\":{\"class\":\"Assigned\",\"field\":\"event.commonEventHeader.sourceName\",\"emtpyIsAssigned\":false},\"processors\":[{\"class\":\"StringTransform\",\"value\":\"${event.commonEventHeader.sourceName}\",\"toField\":\"searchString\",\"targetCase\":\"lower\"},{\"class\":\"EventProcessorMetric\",\"metric\":\"in.events\"},{\"class\":\"LogText\",\"logLevel\":\"WARN\",\"logText\":\"Alarm_EnrichmentStartingfor${hp.tag}\"},{\"class\":\"TopoSearch\",\"searchField\":\"oid\",\"searchValue\":\"${searchString}\",\"updates\":{\"event.commonEventHeader.sourceName\":\"${ptnii_name}\",\"event.commonEventHeader.sourceId\":\"${vserver_id}\",\"event.commonEventHeader.reportingEntityName\":\"${vnf_name}\",\"event.commonEventHeader.reportingEntityId\":\"${vnf_id}\",\"event.commonEventHeader.internalHeaderFields.equipmentType\":\"${equip_type}\",\"event.commonEventHeader.internalHeaderFields.provStatus\":\"${prov_status}\",\"event.commonEventHeader.internalHeaderFields.inMaint\":\"${in_maint}\",\"event.commonEventHeader.internalHeaderFields.tenantName\":\"${tenant_name}\",\"event.commonEventHeader.internalHeaderFields.eventSourceHostname\":\"${hostname}\",\"isEnriched\":true}},{\"class\":\"Set\",\"updates\":{\"event.preCorrelationAging\":\"${preCorrelationAging}\",\"event.prepublishAging\":\"${prepublishAging}\"}},{\"class\":\"Clear\",\"fields\":[\"searchString\"]},{\"class\":\"RunPhase\",\"phase\":\"enrich_publish\"}]}]}"
+            },
+            "name": "json",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": { "get_input": "monitorThreads" } },
+            "name": "monitorThreads",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "enrichMS" },
+            "name": "name",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "enrich" },
+            "name": "phases.enrich.phaseName",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": ".*" },
+            "name": "phases.enrich.streamPattern",
+            "type": "string"
+          },
+          {
+            "assignment": {
+              "value":
+                "{\"phase\":\"enrich_publish\",\"processors\":[{\"class\":\"EventProcessorMetric\",\"metric\":\"out.events\"},{\"class\":\"SendEvent\",\"channel\":\"DCAE-ENRICH-EVENT-OUT\"}]}"
+            },
+            "name": "postConfig",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "vnfTypes.*" },
+            "name": "ruleKeyPattern",
+            "type": "string"
+          },
+          {
+            "assignment": { "value": "False" },
+            "name": "startNoChannels",
+            "type": "string"
+          },
+          {
+            "default": "cdap_broker",
+            "assignment": {
+              "value": { "get_input": "connected_broker_dns_name" }
+            },
+            "name": "connected_broker_dns_name",
+            "type": "string",
+            "required": true
+          },
+          { "name": "jar_url", "type": "string", "required": true },
+          {
+            "assignment": {
+              "value": {
+                "get_property": ["SELF", "composition", "location_id"]
+              }
+            },
+            "name": "location_id",
+            "type": "string",
+            "required": true
+          },
+          {
+            "name": "service_component_type",
+            "type": "string",
+            "required": true
+          }
+        ],
+        "typeinfo": {
+          "itemId":
+            "8743b27b-f01e-4b17-a306-37efd42983d0/tosca.dcae.nodes.cdapApp.Enrich",
+          "requirements": [
+            {
+              "node": {
+                "name": "dcae.capabilities.stream.subscribe",
+                "id":
+                  "8743b27b-f01e-4b17-a306-37efd42983d0/dcae.capabilities.stream.subscribe"
+              },
+              "capability": {
+                "name": "dcae.capabilities.stream.subscribe",
+                "id":
+                  "8743b27b-f01e-4b17-a306-37efd42983d0/dcae.capabilities.stream.subscribe"
+              },
+              "name": "stream_publish_0",
+              "id": "8743b27b-f01e-4b17-a306-37efd42983d0/stream_publish_0",
+              "relationship": {
+                "type": "dcae.relationships.rework_connected_to"
+              }
+            },
+            {
+              "node": {
+                "name": "dcae.capabilities.cdapHost",
+                "id":
+                  "8743b27b-f01e-4b17-a306-37efd42983d0/dcae.capabilities.cdapHost"
+              },
+              "capability": {
+                "name": "dcae.capabilities.cdapHost",
+                "id":
+                  "8743b27b-f01e-4b17-a306-37efd42983d0/dcae.capabilities.cdapHost"
+              },
+              "name": "host",
+              "id": "8743b27b-f01e-4b17-a306-37efd42983d0/host",
+              "relationship": {
+                "type": "dcae.relationships.component_contained_in"
+              }
+            },
+            {
+              "node": {
+                "name": "dcae.capabilities.composition.host",
+                "id":
+                  "8743b27b-f01e-4b17-a306-37efd42983d0/dcae.capabilities.composition.host"
+              },
+              "capability": {
+                "name": "dcae.capabilities.composition.host",
+                "id":
+                  "8743b27b-f01e-4b17-a306-37efd42983d0/dcae.capabilities.composition.host"
+              },
+              "name": "composition",
+              "id": "8743b27b-f01e-4b17-a306-37efd42983d0/composition"
+            },
+            {
+              "occurrences": [0, "UNBOUNDED"],
+              "node": {
+                "name": "tosca.capabilities.Node",
+                "id":
+                  "8743b27b-f01e-4b17-a306-37efd42983d0/tosca.capabilities.Node"
+              },
+              "capability": {
+                "name": "tosca.capabilities.Node",
+                "id":
+                  "8743b27b-f01e-4b17-a306-37efd42983d0/tosca.capabilities.Node"
+              },
+              "name": "dependency",
+              "id": "8743b27b-f01e-4b17-a306-37efd42983d0/dependency",
+              "relationship": { "type": "tosca.relationships.DependsOn" }
+            }
+          ],
+          "capabilities": [
+            {
+              "name": "stream_subscribe_0",
+              "type": {
+                "name": "dcae.capabilities.stream.subscribe",
+                "id":
+                  "8743b27b-f01e-4b17-a306-37efd42983d0/dcae.capabilities.stream.subscribe"
+              }
+            },
+            {
+              "name": "feature",
+              "type": {
+                "name": "tosca.capabilities.Node",
+                "id":
+                  "8743b27b-f01e-4b17-a306-37efd42983d0/tosca.capabilities.Node"
+              }
+            }
+          ],
+          "catalogId": 0,
+          "catalog": "http://135.91.225.81:8080",
+          "hierarchy": [
+            {
+              "name": "tosca.dcae.nodes.cdapApp",
+              "id":
+                "8743b27b-f01e-4b17-a306-37efd42983d0/tosca.dcae.nodes.cdapApp"
+            },
+            {
+              "name": "tosca.dcae.nodes.Root",
+              "id": "8743b27b-f01e-4b17-a306-37efd42983d0/tosca.dcae.nodes.Root"
+            },
+            {
+              "name": "tosca.nodes.Root",
+              "description":
+                "The TOSCA Node Type all other TOSCA base Node Types derive from",
+              "id": "8743b27b-f01e-4b17-a306-37efd42983d0/tosca.nodes.Root"
+            }
+          ],
+          "name": "tosca.dcae.nodes.cdapApp.Enrich",
+          "id": 0
+        },
+        "type": { "name": "tosca.dcae.nodes.cdapApp.Enrich" }
+      }
+    ],
+    "relations": [
+      {
+        "n1": "n.1520766712715.7",
+        "name1": "foi",
+        "n2": "n.1520766711386.5",
+        "name2": "topic1",
+        "meta": {
+          "n1": "n.1520766712715.7",
+          "p1": "stream_publish_0",
+          "relationship": ["foi", null, "stream_publish_0"],
+          "n2": "n.1520766711386.5",
+          "p2": "topic"
+        }
+      },
+      {
+        "n1": "n.1520766712715.7",
+        "name1": "foi",
+        "n2": "n.1520766712709.6",
+        "name2": "feed0",
+        "meta": {
+          "n1": "n.1520766712715.7",
+          "p1": "stream_publish_0",
+          "n2": "n.1520766712709.6",
+          "p2": "feed",
+          "relationship": [
+            "foi",
+            "dcae.relationships.publish_files",
+            "stream_publish_0"
+          ]
+        }
+      },
+      {
+        "n1": "n.1520766711370.3",
+        "name1": "componentSpec_docker_map",
+        "n2": "n.1520766711379.4",
+        "name2": "feed0",
+        "meta": {
+          "n1": "n.1520766711370.3",
+          "p1": "stream_subscribe_0",
+          "n2": "n.1520766711379.4",
+          "p2": "feed",
+          "relationship": [
+            "componentSpec_docker_map",
+            "dcae.relationships.subscribe_to_files",
+            "stream_subscribe_0"
+          ]
+        }
+      },
+      {
+        "n1": "n.1520766711370.3",
+        "name1": "componentSpec_docker_map",
+        "n2": "n.1520766711386.5",
+        "name2": "topic1",
+        "meta": {
+          "n1": "n.1520766711370.3",
+          "p1": "stream_publish_0",
+          "n2": "n.1520766711386.5",
+          "p2": "topic",
+          "relationship": [
+            "componentSpec_docker_map",
+            "dcae.relationships.publish_events",
+            "stream_publish_0"
+          ]
+        }
+      }
+    ],
+    "inputs": [],
+    "outputs": []
+  }
+}
diff --git a/public/cypress/fixtures/doneSaveEditSimpleCopy.json b/public/cypress/fixtures/doneSaveEditSimpleCopy.json
new file mode 100644
index 0000000..cf6344c
--- /dev/null
+++ b/public/cypress/fixtures/doneSaveEditSimpleCopy.json
@@ -0,0 +1,21 @@
+{
+  "version": "4.1",
+  "eventType": "syslogFields",
+  "description": "newRule",
+  "uid": "f620724b-7170-43e1-8a8b-55e98cabe658",
+  "phase": "sto2",
+  "condition": null,
+  "actions": [
+    {
+      "actionType": "copy",
+      "from": {
+        "regex": "",
+        "state": "closed",
+        "values": [{ "value": "" }, { "value": "" }],
+        "value": "aB"
+      },
+      "target": "event.commonEventHeader.domain",
+      "id": "296bcdd0-1d20-11e8-a96d-298fbe0cb0fd"
+    }
+  ]
+}
diff --git a/public/cypress/fixtures/doneSaveSimpleLogText.json b/public/cypress/fixtures/doneSaveSimpleLogText.json
new file mode 100644
index 0000000..be83753
--- /dev/null
+++ b/public/cypress/fixtures/doneSaveSimpleLogText.json
@@ -0,0 +1,26 @@
+{
+  "version": "4.1",
+  "eventType": "syslogFields",
+  "description": "newRule2",
+  "uid": "57612d40-c66d-4a5a-95c3-0165564f837d",
+  "phase": "phase_1",
+  "condition": null,
+  "actions": [
+    {
+      "logText": {
+        "name": "AAA",
+        "level": "BBB",
+        "text": "ABC"
+      },
+      "actionType": "log text",
+      "from": {
+        "regex": "",
+        "state": "closed",
+        "values": [{ "value": "" }, { "value": "" }],
+        "value": ""
+      },
+      "target": "",
+      "id": "e340ab50-423b-11e8-94f2-3dd2f158c314"
+    }
+  ]
+}
diff --git a/public/cypress/fixtures/doneSaveSimpleMap.json b/public/cypress/fixtures/doneSaveSimpleMap.json
new file mode 100644
index 0000000..eb637be
--- /dev/null
+++ b/public/cypress/fixtures/doneSaveSimpleMap.json
@@ -0,0 +1,29 @@
+{
+  "version": "4.1",
+  "eventType": "syslogFields",
+  "description": "newRule2",
+  "uid": "57612d40-c66d-4a5a-95c3-0165564f837d",
+  "phase": "phase_1",
+  "condition": null,
+  "actions": [
+    {
+      "map": {
+        "default": "",
+        "haveDefault": false,
+        "values": [
+          { "key": "Key1", "value": "Key1" },
+          { "key": "Key2", "value": "Key2" }
+        ]
+      },
+      "actionType": "map",
+      "from": {
+        "regex": "",
+        "state": "closed",
+        "values": [{ "value": "" }, { "value": "" }],
+        "value": "test"
+      },
+      "target": "event.commonEventHeader.eventId",
+      "id": "e340ab50-423b-11e8-94f2-3dd2f158c314"
+    }
+  ]
+}
diff --git a/public/cypress/integration/e2e/e2eWithIntegration-spec.ts b/public/cypress/integration/e2e/e2eWithIntegration-spec.ts
index 459a7de..949e966 100644
--- a/public/cypress/integration/e2e/e2eWithIntegration-spec.ts
+++ b/public/cypress/integration/e2e/e2eWithIntegration-spec.ts
@@ -3,7 +3,6 @@
     .toString(36)
     .substr(2, 7);
 const NODE_NAME = randomNodeName();
-
 const serverGetDDLData = () => {
   return cy
     .server()
@@ -12,14 +11,9 @@
       Cypress.env('backendUrl') + '/getResourcesByMonitoringTemplateCategory'
     )
     .as('templateAPi')
-    .route(
-      'GET',
-      Cypress.env('backendUrl') +
-        '/service/06c7d927-4e2f-47e1-a29d-b6ed229ebc0a'
-    )
+    .route('GET', Cypress.env('backendUrl') + '/service/**')
     .as('vfniListAPi');
 };
-
 const saveAndDoneHttp = () => {
   cy.server();
   cy
@@ -29,7 +23,6 @@
     })
     .as('doneSaveCopyRule');
 };
-
 const createNewMC = () => {
   cy
     .get('input[data-tests-id="nameMc"]')
@@ -64,18 +57,33 @@
     .click()
     .wait('@newMC');
 };
-
 import { buttonCreateMC } from '../mocks/homePage-spec';
 import {
   selectVersionAndTypeAndAddFirstRule,
-  fillRuleDecription,
+  fillRuleDescription,
   addCopyAction,
   editFirstRule
 } from '../mocks/ruleEngine-spec';
+describe('DCAED - forntend e2e and inagration test ', () => {
+  // context(('home page'), () => {   it.only('should open env', () => {     cy
+  // .visit('https://www.e-access.att.com/DevOps02/sdc1/portal#!/dashboard')
+  // .get(':nth-child(2) > :nth-child(1) > [border="0"][width="100%"] >
+  // :nth-child(1) > :nt' +           'h-child(1) > td > input') .type('ym903w')
+  //     .get(':nth-child(3) > td > input') .type('Apple1qazxsw2')
+  // .get('[border="0"][width="100%"] > :nth-child(1) > :nth-child(5) > td >
+  // input')       .click()       .get('#srv_successok > input')       .click()
+  //    .get(':nth-child(1) > .w-sdc-dashboard-card-new-content')
+  // .trigger('mouseover') .get('button[data-tests-id="createServiceButton"]')
+  //   .click() .get('input[data-tests-id="name"]')
+  // .type(`DCAE_SRV_${NODE_NAME}`)
+  // .get('select[data-tests-id="selectGeneralCategory"]') .select('Mobility')
+  //   .get('textarea[data-tests-id="description"]') .type('bla')
+  // .get('input[data-tests-id="projectCode"]') .type('att01')
+  // .get('button[data-tests-id="create/save"]') .click()
+  // .get('div[data-tests-id="CompositionLeftSideMenu"]') .click()   }); });
 
-describe('DCAED - forntend e2e and inagration test', () => {
-  context('Empty Monitoring Configuration list for service', () => {
-    it('Loads', () => {
+  context('Empty Monitoring Configuration list for service ', () => {
+    it(' Loads ', () => {
       cy.homePage();
     });
   });
@@ -96,50 +104,24 @@
         .and('be.disabled');
     });
 
-    it('click on create mc - more then one tab should be visible', () => {
-      createNewMC();
-      cy
-        .get('ul[p-tabviewnav]')
-        .children()
-        .should($el => {
-          expect($el.length).to.be.greaterThan(1);
-        });
-    });
-
-    it('should enter rule engine in map tab and create new rule', () => {
-      createNewMC();
-      cy
-        .get('#ui-tabpanel-1-label')
-        .should('contain', 'map')
-        .click();
-      selectVersionAndTypeAndAddFirstRule();
-      fillRuleDecription('newRule');
-      addCopyAction();
-      saveAndDoneHttp();
-      cy.get('button[data-tests-id="btnDone"]').click();
-      cy
-        .wait('@doneSaveCopyRule')
-        .get('div[data-tests-id="ruleElement"]')
-        .should('be.visible')
-        .then(function($lis) {
-          expect($lis).to.have.length(1);
-          expect($lis.eq(0)).to.contain('newRule');
-        });
-      editFirstRule();
-      fillRuleDecription('LiavRule');
-      saveAndDoneHttp();
-      cy
-        .get('button[data-tests-id="btnSave"]')
-        .click()
-        .wait('@doneSaveCopyRule')
-        .get('a[data-tests-id="btnBackRule"]')
-        .click()
-        .get('div[data-tests-id="ruleElement"]')
-        .should('be.visible')
-        .then(function($lis) {
-          expect($lis).to.have.length(1);
-          expect($lis.eq(0)).to.contain('LiavRule');
-        });
-    });
+    // it('click on create mc - more then one tab should be visible', () => {
+    // createNewMC();   cy     .get('ul[p-tabviewnav]')     .children()
+    // .should($el => {       expect($el.length).to.be.greaterThan(1);     }); });
+    // it('should enter rule engine in map tab and create new rule', () => {
+    // createNewMC();   cy     .get('#ui-tabpanel-1-label')     .should('contain',
+    // 'map')     .click();   selectVersionAndTypeAndAddFirstRule();
+    // fillRuleDescription('newRule');   addCopyAction();   saveAndDoneHttp();
+    // cy.get('button[data-tests-id="btnDone"]').click();   cy
+    // .wait('@doneSaveCopyRule')     .get('div[data-tests-id="ruleElement"]')
+    // .should('be.visible')     .then(function($lis) {
+    // expect($lis).to.have.length(1);
+    // expect($lis.eq(0)).to.contain('newRule');     });   editFirstRule();
+    // fillRuleDescription('LiavRule');   saveAndDoneHttp();   cy
+    // .get('button[data-tests-id="btnSave"]')     .click()
+    // .wait('@doneSaveCopyRule')     .get('a[data-tests-id="btnBackRule"]')
+    // .click()     .get('div[data-tests-id="ruleElement"]')
+    // .should('be.visible')     .then(function($lis) {
+    // expect($lis).to.have.length(1);
+    // expect($lis.eq(0)).to.contain('LiavRule');     }); });
   });
 });
diff --git a/public/cypress/integration/mocks/errorDialog-spec.ts b/public/cypress/integration/mocks/errorDialog-spec.ts
index 9141ab2..e879a9f 100644
--- a/public/cypress/integration/mocks/errorDialog-spec.ts
+++ b/public/cypress/integration/mocks/errorDialog-spec.ts
@@ -10,12 +10,18 @@
     });
 
     it('Simulate error dialog is close by cancel button', () => {
-      cy.get('button[data-tests-id="error-cancel"]').click();
+      cy
+        .get('button[data-tests-id="error-cancel"]')
+        .first()
+        .click({ force: true });
       cy.get('.ui-dialog').should('not.be.visible');
     });
 
     it('Simulate error dialog is close by X button', () => {
-      cy.get('.ui-dialog-titlebar-icon').click();
+      cy
+        .get('span[data-tests-id="error-cancel-icon"]')
+        .first()
+        .click({ force: true });
       cy.get('.ui-dialog').should('not.be.visible');
     });
   });
diff --git a/public/cypress/integration/mocks/generalPage-spec.ts b/public/cypress/integration/mocks/generalPage-spec.ts
index 1297de8..58a4bc8 100644
--- a/public/cypress/integration/mocks/generalPage-spec.ts
+++ b/public/cypress/integration/mocks/generalPage-spec.ts
@@ -1,4 +1,55 @@
 describe('General Page - E2E test flow with mock', () => {
+  describe('Check Boolean DDL', () => {
+    beforeEach(() => {
+      cy.httpGenerateMappingRulesFileName();
+      cy.httpGetDDLData();
+      cy.httpCreateNewMcWithBooleanDDL();
+      cy.getMCListEmpty();
+      cy.homePage();
+      cy.get('button[data-tests-id="btn-create-mc"]').click();
+    });
+
+    it(
+      'Check boolean DDL with value undefined - using true, true - using true and false' +
+        ' - using false.',
+      () => {
+        cy.fillNewMcForm();
+        cy
+          .get('button[data-tests-id="createMonitoring"]')
+          .as('createButton')
+          .not('[disabled]')
+          .should('not.contain', 'Disabled');
+
+        cy.httpCreateNewMcWithBooleanDDL();
+        cy.emptyRuleEngine('Type1');
+
+        cy.get('@createButton').click();
+        cy
+          .get('#ui-tabpanel-1-label')
+          .should('contain', 'map')
+          .click();
+        cy
+          .get('button[data-tests-id="setting-gear"]')
+          .should('be.visible')
+          .first()
+          .click({ multiple: true });
+
+        cy
+          .get('.map-setting-list #mappingType > .field-text')
+          .should('have.value', 'multiple');
+        cy
+          .get('.map-setting-list > form > #valueUndefined > select')
+          .should('have.value', 'true');
+        cy
+          .get('.map-setting-list > form > #valueTrue > select')
+          .should('have.value', 'true');
+        cy
+          .get('.map-setting-list > form > #valueFalse > select')
+          .should('have.value', 'false');
+      }
+    );
+  });
+
   describe('Create new MC', () => {
     beforeEach(() => {
       cy.httpGetDDLData();
@@ -14,6 +65,39 @@
         .and('be.disabled');
     });
 
+    it('After submit advenced setting description exist in first input', () => {
+      cy.fillNewMcForm();
+      cy
+        .get('button[data-tests-id="createMonitoring"]')
+        .as('createButton')
+        .not('[disabled]')
+        .should('not.contain', 'Disabled');
+
+      cy.httpCreateNewMc();
+      cy.emptyRuleEngine('Type1');
+
+      cy.get('@createButton').click();
+      cy
+        .get('#ui-tabpanel-1-label')
+        .should('contain', 'map')
+        .click();
+      cy
+        .get('button[data-tests-id="setting-gear"]')
+        .should('be.visible')
+        .first()
+        .click({ multiple: true });
+
+      cy
+        .get('.map-setting-list #Type1 .help-description')
+        .trigger('mouseenter')
+        .get('.ui-tooltip')
+        .should('be.visible')
+        .should(
+          'contain',
+          'CSV to VES mapping, from the file to generate multiple events or single event'
+        );
+    });
+
     it('Fill form then click to submit verify setting button and constrain ddl', () => {
       cy.fillNewMcForm();
       cy
@@ -42,6 +126,29 @@
     });
   });
 
+  describe('Flow diagram', () => {
+    beforeEach(() => {
+      cy.httpGetDDLData();
+      cy.getMCListEmpty();
+      cy.homePage();
+      cy.get('button[data-tests-id="btn-create-mc"]').click();
+      cy.fillNewMcForm();
+      cy.httpCreateNewMc();
+      cy.get('button[data-tests-id="createMonitoring"]').click();
+    });
+
+    it.only('should flow diagram need to exist', () => {
+      cy.get('#diagram').should('be.visible');
+    });
+
+    it('should flow diagram need to contain 4 connections', () => {
+      cy
+        .get('#diagram line')
+        .its('length')
+        .should('be.equal', 4);
+    });
+  });
+
   describe('Tabs after MC created', () => {
     beforeEach(() => {
       cy.httpGetDDLData();
@@ -50,7 +157,6 @@
       cy.get('button[data-tests-id="btn-create-mc"]').click();
       cy.fillNewMcForm();
       cy.httpCreateNewMc();
-      cy.emptyRuleEngine('Type1');
       cy.get('button[data-tests-id="createMonitoring"]').click();
     });
 
diff --git a/public/cypress/integration/mocks/homePage-spec.ts b/public/cypress/integration/mocks/homePage-spec.ts
index 2889390..5f96c98 100644
--- a/public/cypress/integration/mocks/homePage-spec.ts
+++ b/public/cypress/integration/mocks/homePage-spec.ts
@@ -6,11 +6,11 @@
 };
 
 export const tableItems = () => {
-  return cy.get('tr[data-tests-id="monitoringComponentTableItems"]');
+  return cy.get('datatable-row-wrapper');
 };
 
-export const tableHeaders = () => {
-  return cy.get('tr[data-tests-id="monitoringComponentTableHeaders"]');
+export const monitoringComponentTable = () => {
+  return cy.get('ngx-datatable[data-tests-id="monitoringComponentTable"]');
 };
 export const tableItemsDeleteButton = () => {
   return cy.get('button[data-tests-id="tableItemsButtonDelete"]');
@@ -64,9 +64,9 @@
     });
 
     it("Shouldn't have create table with headers", () => {
-      tableHeaders().should('not.be.visible');
+      monitoringComponentTable().should('not.be.visible');
     });
-    it("Shouldn't have create table without items", () => {
+    it("Shouldn't have create table with items", () => {
       buttonCreateMC()
         .get('div[data-tests-id="new-monitoring-title"]')
         .should('contain', 'Monitoring');
@@ -100,20 +100,13 @@
     });
 
     it('Should have create table with headers', () => {
-      tableHeaders().should('be.visible');
+      monitoringComponentTable().should('be.visible');
     });
     it('Should have create table with items', () => {
       tableItems().should('have.length', NUMBER_OF_ITEMS);
     });
   });
 
-  describe('MC List Edit Tests', () => {
-    beforeEach(() => {
-      cy.getMCList();
-      cy.homePage();
-    });
-  });
-
   describe('MC List Delete Tests', () => {
     beforeEach(() => {
       cy.getMCList();
@@ -126,26 +119,34 @@
       tableItemsDeleteButton().should('be.visible');
       tableItemsInfoButton().should('not.be.visible');
     });
-    it('Mouse hover over item, call delete and remove not submitted (call delete without blueprint api)', () => {
-      tableItems().should('have.length', NUMBER_OF_ITEMS);
-      doHoverOverFirstLine();
-      tableItemsDeleteButton()
-        .should('be.visible')
-        .click({ force: true });
-      popupGetDeleteBtn().click({ force: true });
-      tableItems().should('have.length', NUMBER_OF_ITEMS - 1);
-    });
-    it('Mouse hover over item, call delete and remove submitted (call delete with blueprint api)', () => {
-      tableItems()
-        .should('have.length', NUMBER_OF_ITEMS)
-        .last()
-        .trigger('mouseover');
-      tableItemsDeleteButton()
-        .should('be.visible')
-        .click({ force: true });
-      popupGetDeleteBtn().click({ force: true });
-      tableItems().should('have.length', NUMBER_OF_ITEMS - 1);
-    });
+    it(
+      'Mouse hover over item, call delete and remove not submitted (call delete without' +
+        ' blueprint api)',
+      () => {
+        tableItems().should('have.length', NUMBER_OF_ITEMS);
+        doHoverOverFirstLine();
+        tableItemsDeleteButton()
+          .should('be.visible')
+          .click({ force: true });
+        popupGetDeleteBtn().click({ force: true });
+        tableItems().should('have.length', NUMBER_OF_ITEMS - 1);
+      }
+    );
+    it(
+      'Mouse hover over item, call delete and remove submitted (call delete with bluepr' +
+        'int api)',
+      () => {
+        tableItems()
+          .should('have.length', NUMBER_OF_ITEMS)
+          .last()
+          .trigger('mouseover');
+        tableItemsDeleteButton()
+          .should('be.visible')
+          .click({ force: true });
+        popupGetDeleteBtn().click({ force: true });
+        tableItems().should('have.length', NUMBER_OF_ITEMS - 1);
+      }
+    );
     it('Mouse hover over item, call delete and cancelOperation', () => {
       tableItems().should('have.length', NUMBER_OF_ITEMS);
       doHoverOverFirstLine();
@@ -171,6 +172,7 @@
 
   describe('Successfully Entry Home Page Monitoring Configuration', () => {
     beforeEach(() => {
+      cy.httpGetDDLData();
       cy.getMCListEmpty();
       cy.homePage();
     });
@@ -190,12 +192,17 @@
     it('Buttons Functionality Assertion', () => {
       buttonCreateMC()
         .click()
-        .get('div[data-tests-id="new-monitoring-title"]')
+        .get('div[data-tests-id="new-monitorying-titie"]')
         .should('contain', 'Monitoring');
     });
   });
 
   describe('Not Auth Entry Home Page Monitoring Configuration', () => {
+    beforeEach(() => {
+      cy.httpGetDDLData();
+      cy.getMCListEmpty();
+    });
+
     it('Buttons disabled when user not owner', () => {
       cy.sdcIsOwnerFalse();
       navigateButtonDisabled();
diff --git a/public/cypress/integration/mocks/importPage-spec.ts b/public/cypress/integration/mocks/importPage-spec.ts
index 7af904e..446409c 100644
--- a/public/cypress/integration/mocks/importPage-spec.ts
+++ b/public/cypress/integration/mocks/importPage-spec.ts
@@ -5,13 +5,10 @@
       method: 'GET',
       url:
         Cypress.env('backendUrl') +
-        '/SERVICE/06c7d927-4e2f-47e1-a29d-b6ed229ebc0a/0.1/getVfcmtsForMigration',
+        '/SERVICES/06c7d927-4e2f-47e1-a29d-b6ed229ebc0a/0.1/getVfcmtsForMigration',
       response: 'fixture:importVfcmt'
     })
-    .as('importVfcmtList')
-    .visit(
-      'http://localhost:4300/#/main/SERVICE/06c7d927-4e2f-47e1-a29d-b6ed229ebc0a/0.1/import'
-    );
+    .as('importVfcmtList');
 };
 
 const getVfcmtRefData = data => {
@@ -93,7 +90,11 @@
 describe('Import Page', () => {
   context('First step - get vfcmts list and pick one', () => {
     beforeEach(() => {
+      cy.httpGetDDLData();
+      cy.getMCListEmpty();
+      cy.homePage();
       loadVfcmtList();
+      cy.get('button[data-tests-id="btn-import-mc"]').click();
     });
 
     it('should have values in ddl', () => {
@@ -129,7 +130,11 @@
 
   context('second step - fill fileds according to server response', () => {
     beforeEach(() => {
+      cy.httpGetDDLData();
+      cy.getMCListEmpty();
+      cy.homePage();
       loadVfcmtList();
+      cy.get('button[data-tests-id="btn-import-mc"]').click();
     });
 
     it('get flow type true and service is match to context service', () => {
@@ -208,7 +213,11 @@
 
   context('final step - import vfcmt and getting cdump for tabs', () => {
     beforeEach(() => {
+      cy.httpGetDDLData();
+      cy.getMCListEmpty();
+      cy.homePage();
       loadVfcmtList();
+      cy.get('button[data-tests-id="btn-import-mc"]').click();
       getVfcmtRefData({
         serviceUuid: '06c7d927-4e2f-47e1-a29d-b6ed229ebc0a',
         name: 'test',
diff --git a/public/cypress/integration/mocks/ruleEngine-spec.ts b/public/cypress/integration/mocks/ruleEngine-spec.ts
index 9a75b87..d2c0b69 100644
--- a/public/cypress/integration/mocks/ruleEngine-spec.ts
+++ b/public/cypress/integration/mocks/ruleEngine-spec.ts
@@ -2,6 +2,14 @@
   return cy.get('select[data-tests-id="mappingDdl"]');
 };
 
+export const getExistRulesList = () => {
+  return cy.get('option[data-tests-id="templateOptionsExist"]');
+};
+
+export const getNotExistRulesList = () => {
+  return cy.get('option[data-tests-id="templateOptionsNotExist"]');
+};
+
 export const selectVersionAndTypeAndAddFirstRule = () => {
   return cy
     .get('select[data-tests-id="selectVersion"]')
@@ -12,13 +20,55 @@
     .click();
 };
 
-export const fillRuleDecription = text => {
+export const fillRuleDescription = text => {
   return cy
     .get('input[data-tests-id="inputDescription"]')
     .clear()
     .type(text);
 };
 
+export const addMapAndDeleteRowAction = () => {
+  cy.get('select[data-tests-id="selectAction"]').select('map');
+  cy.get('button[data-tests-id="btnAddAction"]').click();
+  // fill map action
+  cy
+    .get('input[data-tests-id="valueInput"]')
+    .first()
+    .type('B')
+    .should('have.value', 'B');
+
+  return cy
+    .get('input[data-tests-id="key"]')
+    .type('Key1')
+    .should('have.value', 'Key1')
+    .get('input[data-tests-id="value"]')
+    .type('Key1')
+    .should('have.value', 'Key1')
+    .get('button[data-tests-id="btn-add-row"]')
+    .click()
+    .get('input[data-tests-id="key"]')
+    .last()
+    .type('Key2')
+    .should('have.value', 'Key2')
+    .get('input[data-tests-id="value"]')
+    .last()
+    .type('Key2')
+    .should('have.value', 'Key2')
+    .get('button[data-tests-id="btn-add-row"]')
+    .click()
+    .get('input[data-tests-id="key"]')
+    .last()
+    .type('Key3')
+    .should('have.value', 'Key3')
+    .get('input[data-tests-id="value"]')
+    .last()
+    .type('Key3')
+    .should('have.value', 'Key3')
+    .get('button[data-tests-id="btn-remove-row"]')
+    .last()
+    .click();
+};
+
 export const addCopyAction = () => {
   return cy
     .get('select[data-tests-id="selectAction"]')
@@ -27,6 +77,7 @@
     .click()
     .get('input[data-tests-id="valueInput"]')
     .type('A')
+    .should('have.value', 'A')
     .get('span[data-tests-id="openTargetTree"]')
     .click()
     .get('.bottom-select')
@@ -56,11 +107,71 @@
     .click();
 };
 
-export const translateValue = () => {
-  return '{"processing":[{"phase":"snmp_map","processors":[{"array":"varbinds","datacolumn":"varbind_value","keycolumn":"varbind_oid","class":"SnmpConvertor"},{"phase":"sto2","class":"RunPhase"}]},{"phase":"sto2","processors":[{"updates":{"event.commonEventHeader.domain":"a"},"class":"Set"}]},{"phase":"sto2","processors":[{"phase":"map_publish","class":"RunPhase"}]}]}';
+export const editLastRule = () => {
+  return cy
+    .get('div[data-tests-id="ruleElement"]')
+    .last()
+    .trigger('mouseover')
+    .get('button[data-tests-id="editRule"]')
+    .should('be.visible')
+    .click();
 };
 
+export const deleteFirstRule = () => {
+  cy
+    .get('div[data-tests-id="ruleElement"]')
+    .first()
+    .trigger('mouseover')
+    .get('button[data-tests-id="deleteRule"]')
+    .should('be.visible')
+    .click()
+    .get('div[data-tests-id="delete-popup"]');
+
+  cy.deleteRule();
+  return cy.get('button[data-tests-id="btnDelete"]').click();
+};
+
+export const translateValue = () => {
+  return (
+    '{"processing":[{"phase":"snmp_map","processors":[{"array":"varbinds","datacolumn' +
+    '":"varbind_value","keycolumn":"varbind_oid","class":"SnmpConvertor"},{"phase":"s' +
+    'to2","class":"RunPhase"}]},{"phase":"sto2","processors":[{"updates":{"event.comm' +
+    'onEventHeader.domain":"a"},"class":"Set"}]},{"phase":"sto2","processors":[{"phas' +
+    'e":"map_publish","class":"RunPhase"}]}]}'
+  );
+};
+const NUMBER_OF_EXIST_ITEMS = 3;
+const NUMBER_OF_NOT_EXIST_ITEMS = 16;
 describe('Rule engine - E2E test flow with mock', () => {
+  describe('Checking rules exist and not exist separation', () => {
+    beforeEach(() => {
+      cy.httpGenerateMappingRulesFileName();
+      cy.httpGetDDLData();
+      cy.getMCListEmpty();
+      cy.homePage();
+      cy.get('button[data-tests-id="btn-create-mc"]').click();
+      cy.fillNewMcForm();
+      cy.httpCreateNewMc();
+      cy.emptyRuleEngine('Type1');
+      cy.get('button[data-tests-id="createMonitoring"]').click();
+      cy
+        .get('#ui-tabpanel-1-label')
+        .should('contain', 'map')
+        .click();
+    });
+    it('In exist group contain 3 visible options and not exist 16 visible', () => {
+      mappingTragetDDL()
+        .should('be.visible')
+        .contains('json');
+      getExistRulesList()
+        .not('[hidden]')
+        .should('have.length', NUMBER_OF_EXIST_ITEMS);
+      getNotExistRulesList()
+        .not('[hidden]')
+        .should('have.length', NUMBER_OF_NOT_EXIST_ITEMS);
+    });
+  });
+
   describe('Mapping target select', () => {
     beforeEach(() => {
       cy.httpGetDDLData();
@@ -82,25 +193,9 @@
         .should('be.visible')
         .contains('json');
     });
-
-    it('should page refrash after change select value in mapping target ddl', () => {
-      cy.httpTargetTree();
-      cy
-        .get('select[data-tests-id="selectVersion"]')
-        .select('4.1')
-        .get('select[data-tests-id="selectEventType"]')
-        .select('syslog')
-        .get('button[data-tests-id="btnAddFirstRule"]')
-        .should('be.visible');
-      cy.emptyRuleEngine('json');
-      mappingTragetDDL()
-        .select('json')
-        .get('select[data-tests-id="selectVersion"]')
-        .should('have.value', null);
-    });
   });
 
-  describe('Translate And Save Rule List', () => {
+  describe('Fill all available Actions', () => {
     beforeEach(() => {
       cy.httpGetDDLData();
       cy.getMCListEmpty();
@@ -117,7 +212,519 @@
         .click();
       cy.httpTargetTree();
       selectVersionAndTypeAndAddFirstRule();
-      fillRuleDecription('newRule');
+      fillRuleDescription('newRule');
+    });
+
+    it('add copy action', () => {
+      addCopyAction();
+    });
+
+    it('add concat action', () => {
+      cy.get('select[data-tests-id="selectAction"]').select('concat');
+      cy.get('button[data-tests-id="btnAddAction"]').click();
+      // fill concat action
+      cy
+        .get('input[data-tests-id="valueInput"]')
+        .first()
+        .type('A')
+        .should('have.value', 'A');
+      cy
+        .get('input[data-tests-id="valueInput"]')
+        .last()
+        .type('B')
+        .should('have.value', 'B');
+      cy
+        .get('span[data-tests-id="openTargetTree"]')
+        .click()
+        .get('.bottom-select')
+        .should('be.visible')
+        .find('.toggle-children')
+        .first()
+        .click();
+
+      cy
+        .get('span[data-tests-id="targetNode"]')
+        .should(node => {
+          expect(node.eq(0)).to.contain('commonEventHeader');
+          expect(node.eq(1)).to.contain('domain');
+        })
+        .each(($el, index) => {
+          if (index === 1) {
+            cy.wrap($el).click();
+          }
+        });
+
+      cy
+        .get('input[data-tests-id="inputTarget"]')
+        .should('have.value', 'event.commonEventHeader.domain');
+    });
+
+    it('add map action', () => {
+      addMapAndDeleteRowAction();
+
+      cy
+        .get('span[data-tests-id="openTargetTree"]')
+        .click()
+        .get('.bottom-select')
+        .should('be.visible')
+        .find('.toggle-children')
+        .first()
+        .click();
+
+      cy
+        .get('span[data-tests-id="targetNode"]')
+        .should(node => {
+          expect(node.eq(0)).to.contain('commonEventHeader');
+          expect(node.eq(1)).to.contain('domain');
+        })
+        .each(($el, index) => {
+          if (index === 1) {
+            cy.wrap($el).click();
+          }
+        });
+
+      cy.get('input[data-tests-id="defaultCheckbox"]').click();
+      cy.get('input[data-tests-id="defaultInput"]').type('default value');
+
+      cy
+        .get('input[data-tests-id="inputTarget"]')
+        .should('have.value', 'event.commonEventHeader.domain');
+    });
+
+    it('add date-formatter action', () => {
+      cy.get('select[data-tests-id="selectAction"]').select('date formatter');
+      cy.get('button[data-tests-id="btnAddAction"]').click();
+
+      // fill date-formatter action Section 1
+      cy
+        .get('input[data-tests-id="valueInput"]')
+        .first()
+        .type('A')
+        .should('have.value', 'A')
+        .get('span[data-tests-id="openTargetTree"]')
+        .click()
+        .get('.bottom-select')
+        .should('be.visible')
+        .find('.toggle-children')
+        .first()
+        .click()
+        .get('span[data-tests-id="targetNode"]')
+        .should(node => {
+          expect(node.eq(0)).to.contain('commonEventHeader');
+          expect(node.eq(1)).to.contain('domain');
+        })
+        .each(($el, index) => {
+          if (index === 1) {
+            cy.wrap($el).click();
+          }
+        });
+      cy
+        .get('input[data-tests-id="inputTarget"]')
+        .should('have.value', 'event.commonEventHeader.domain');
+
+      // Section 2
+      cy
+        .get('input[data-tests-id="InputFromFormat"]')
+        .type('04/03/2018')
+        .should('have.value', '04/03/2018')
+        .get('input[data-tests-id="InputFromTimezone"]')
+        .type('11:50:00')
+        .should('have.value', '11:50:00')
+        .get('input[data-tests-id="InputToFormat"]')
+        .type('04/08/2018')
+        .should('have.value', '04/08/2018')
+        .get('input[data-tests-id="InputToTimezone"]')
+        .type('11:50:00')
+        .should('have.value', '11:50:00');
+    });
+
+    it('add conditional action', () => {
+      cy
+        .get('input[data-tests-id="isCondition"]')
+        .click()
+        .get('input[data-tests-id="left"]')
+        .type('ABC')
+        .should('have.value', 'ABC');
+
+      cy
+        .get('select[data-tests-id="selectOperator"]')
+        .select('startsWith')
+        .get('input[data-tests-id="right"]')
+        .type('A')
+        .should('have.value', 'A');
+
+      cy
+        .get('button[data-tests-id="addCondition"]')
+        .click()
+        .get('input[data-tests-id="left"]')
+        .last()
+        .type('DEF')
+        .should('have.value', 'DEF');
+
+      cy
+        .get('select[data-tests-id="selectOperator"]')
+        .last()
+        .select('endsWith')
+        .get('input[data-tests-id="right"]')
+        .last()
+        .type('F')
+        .should('have.value', 'F');
+
+      cy
+        .get('button[data-tests-id="addCondition"]')
+        .click()
+        .get('input[data-tests-id="left"]')
+        .last()
+        .type('HIJ')
+        .should('have.value', 'HIJ');
+
+      cy
+        .get('select[data-tests-id="selectOperator"]')
+        .last()
+        .select('equals')
+        .get('input[data-tests-id="right"]')
+        .last()
+        .type('HHH')
+        .should('have.value', 'HHH');
+
+      cy
+        .get('button[data-tests-id="RemoveCondition"]')
+        .last()
+        .click()
+        .get('button[data-tests-id="addConditionGroup"]')
+        .click();
+
+      // try to delete element (1 of 2 items in group)
+      cy
+        .get('button[data-tests-id="RemoveCondition"]')
+        .last()
+        .click()
+        .get('input[data-tests-id="left"]')
+        .eq(2)
+        .type('KLM')
+        .should('have.value', 'KLM');
+
+      cy
+        .get('select[data-tests-id="selectOperator"]')
+        .eq(2)
+        .select('notEqual')
+        .get('input[data-tests-id="right"]')
+        .eq(2)
+        .type('MMM')
+        .should('have.value', 'MMM')
+        .get('input[data-tests-id="left"]')
+        .last()
+        .type('NOP')
+        .should('have.value', 'NOP');
+
+      cy
+        .get('select[data-tests-id="selectOperator"]')
+        .last()
+        .select('contains')
+        .get('input[data-tests-id="right"]')
+        .last()
+        .type('PPP')
+        .should('have.value', 'PPP');
+
+      cy
+        .get('button[data-tests-id="addCondition"]')
+        .last()
+        .click()
+        .get('input[data-tests-id="left"]')
+        .last()
+        .type('QQQ')
+        .should('have.value', 'QQQ');
+
+      cy
+        .get('select[data-tests-id="selectOperator"]')
+        .last()
+        .select('endsWith')
+        .get('input[data-tests-id="right"]')
+        .last()
+        .type('Q')
+        .should('have.value', 'Q')
+        .get('button[data-tests-id="RemoveCondition"]')
+        .last()
+        .click();
+
+      cy
+        .get('button[data-tests-id="removeConditionNode"]')
+        .last()
+        .click();
+    });
+
+    it('add clear action', () => {
+      cy
+        .get('select[data-tests-id="selectAction"]')
+        .select('clear')
+        .get('button[data-tests-id="btnAddAction"]')
+        .click()
+        .get('input[data-tests-id="valueInput"]')
+        .type('ABC')
+        .should('have.value', 'ABC');
+
+      cy
+        .get('button[data-tests-id="btnAddInput"]')
+        .click()
+        .get('input[data-tests-id="valueInput"]')
+        .last()
+        .type('DEA')
+        .should('have.value', 'DEA');
+
+      cy
+        .get('button[data-tests-id="btnDelete"]')
+        .first()
+        .click();
+    });
+
+    it('add replace text action', () => {
+      cy
+        .get('select[data-tests-id="selectAction"]')
+        .select('replace text')
+        .get('button[data-tests-id="btnAddAction"]')
+        .click();
+
+      cy
+        .get('input[data-tests-id="valueInput"]')
+        .type('ABC')
+        .should('have.value', 'ABC');
+
+      cy
+        .get('input[data-tests-id="InputFindWhat"]')
+        .type('AAA')
+        .should('have.value', 'AAA');
+
+      cy
+        .get('input[data-tests-id="InputReplaceWith"]')
+        .type('BBB')
+        .should('have.value', 'BBB');
+    });
+
+    it('add log text action', () => {
+      cy
+        .get('select[data-tests-id="selectAction"]')
+        .select('log text')
+        .get('button[data-tests-id="btnAddAction"]')
+        .click();
+
+      cy
+        .get('input[data-tests-id="InputLogText"]')
+        .type('ABC')
+        .should('have.value', 'ABC');
+
+      cy
+        .get('input[data-tests-id="InputLogName"]')
+        .type('AAA')
+        .should('have.value', 'AAA');
+
+      cy
+        .get('input[data-tests-id="InputLogLevel"]')
+        .type('BBB')
+        .should('have.value', 'BBB');
+    });
+
+    it('add log event action', () => {
+      cy
+        .get('select[data-tests-id="selectAction"]')
+        .select('log event')
+        .get('button[data-tests-id="btnAddAction"]')
+        .click();
+
+      cy
+        .get('input[data-tests-id="InputLogTitle"]')
+        .type('Title test')
+        .should('have.value', 'Title test');
+    });
+  });
+
+  describe('rule and Actions CRUD Procedure', () => {
+    beforeEach(() => {
+      cy.httpGetDDLData();
+      cy.getMCListEmpty();
+      cy.homePage();
+      cy.get('button[data-tests-id="btn-create-mc"]').click();
+      cy.fillNewMcForm();
+      cy.httpCreateNewMc();
+      cy.emptyRuleEngine('Type1');
+      cy
+        .get('button[data-tests-id="createMonitoring"]')
+        .click()
+        .get('#ui-tabpanel-1-label')
+        .should('contain', 'map')
+        .click();
+      cy.httpTargetTree();
+      selectVersionAndTypeAndAddFirstRule();
+      fillRuleDescription('newRule');
+    });
+
+    it('add clear action', () => {
+      cy
+        .get('select[data-tests-id="selectAction"]')
+        .select('copy')
+        .get('button[data-tests-id="btnAddAction"]')
+        .click()
+        .get('select[data-tests-id="selectAction"]')
+        .select('concat')
+        .get('button[data-tests-id="btnAddAction"]')
+        .click()
+        .get('select[data-tests-id="selectAction"]')
+        .select('map')
+        .get('button[data-tests-id="btnAddAction"]')
+        .click()
+        .get('select[data-tests-id="selectAction"]')
+        .select('date formatter')
+        .get('button[data-tests-id="btnAddAction"]')
+        .click()
+        .get('select[data-tests-id="selectAction"]')
+        .select('log text')
+        .get('button[data-tests-id="btnAddAction"]')
+        .click()
+        .get('select[data-tests-id="selectAction"]')
+        .select('log event')
+        .get('button[data-tests-id="btnAddAction"]')
+        .click()
+        .get('select[data-tests-id="selectAction"]')
+        .select('replace text')
+        .get('button[data-tests-id="btnAddAction"]')
+        .click()
+        .get('select[data-tests-id="selectAction"]')
+        .select('clear')
+        .get('button[data-tests-id="btnAddAction"]')
+        .click();
+    });
+
+    it('add rule with copy action CRUD procedure', () => {
+      // Create action
+      addCopyAction();
+
+      cy.doneSaveRule();
+      cy.get('button[data-tests-id="btnDone"]').click();
+
+      // value approve
+      editFirstRule();
+
+      cy
+        .get('input[data-tests-id="valueInput"]')
+        .should('have.value', 'a')
+        .get('input[data-tests-id="inputTarget"]')
+        .should('have.value', 'event.commonEventHeader.domain')
+
+        // change value
+        .get('input[data-tests-id="valueInput"]')
+        .type('B')
+        .get('button[data-tests-id="btnSave"]')
+        .click();
+      cy.doneSaveAndEditRule();
+      cy.get('button[data-tests-id="btnDone"]').click();
+
+      // Delete copy action
+      deleteFirstRule();
+    });
+
+    it('add multiple rules CRUD procedure', () => {
+      // Create actions
+      addCopyAction();
+      cy.doneSaveRule();
+      cy.get('button[data-tests-id="btnDone"]').click();
+
+      // Edit copy action - verify values
+      editFirstRule();
+
+      cy
+        .get('input[data-tests-id="valueInput"]')
+        .should('have.value', 'a')
+        .get('input[data-tests-id="inputTarget"]')
+        .should('have.value', 'event.commonEventHeader.domain')
+        .get('button[data-tests-id="btnDone"]')
+        .click();
+
+      // Add new rule with map action
+      cy.get('button[data-tests-id="addMoreRule"]').click();
+      fillRuleDescription('newRule2');
+      addMapAndDeleteRowAction();
+      cy.doneSaveMapRule();
+      cy.get('button[data-tests-id="btnDone"]').click();
+
+      // Verify map values
+      editLastRule();
+
+      cy
+        .get('input[data-tests-id="key"]')
+        .first()
+        .should('have.value', 'Key1')
+        .get('input[data-tests-id="value"]')
+        .first()
+        .should('have.value', 'Key1')
+        .get('input[data-tests-id="key"]')
+        .last()
+        .should('have.value', 'Key2')
+        .get('input[data-tests-id="value"]')
+        .last()
+        .should('have.value', 'Key2');
+      cy.get('button[data-tests-id="btnDone"]').click();
+
+      // Delete copy Action
+      deleteFirstRule();
+    });
+
+    it('add rule with log text action CRUD procedure', () => {
+      cy
+        .get('select[data-tests-id="selectAction"]')
+        .select('log text')
+        .get('button[data-tests-id="btnAddAction"]')
+        .click();
+
+      cy
+        .get('input[data-tests-id="InputLogText"]')
+        .type('ABC')
+        .should('have.value', 'ABC');
+
+      cy
+        .get('input[data-tests-id="InputLogName"]')
+        .type('AAA')
+        .should('have.value', 'AAA');
+
+      cy
+        .get('input[data-tests-id="InputLogLevel"]')
+        .type('BBB')
+        .should('have.value', 'BBB');
+
+      cy.doneSaveLogTextRule();
+      cy.get('button[data-tests-id="btnDone"]').click();
+
+      // value assertion
+      editFirstRule();
+
+      cy
+        .get('input[data-tests-id="InputLogText"]')
+        .should('have.value', 'ABC')
+        .get('input[data-tests-id="InputLogName"]')
+        .should('have.value', 'AAA')
+        .get('input[data-tests-id="InputLogLevel"]')
+        .should('have.value', 'BBB');
+
+      cy.get('button[data-tests-id="btnDone"]').click();
+    });
+  });
+
+  describe('Translate and save Rule List', () => {
+    beforeEach(() => {
+      cy.httpGetDDLData();
+      cy.getMCListEmpty();
+      cy.homePage();
+      cy.get('button[data-tests-id="btn-create-mc"]').click();
+      cy.fillNewMcForm();
+      cy.httpCreateNewMc();
+      cy.emptyRuleEngine('Type1');
+      cy
+        .get('button[data-tests-id="createMonitoring"]')
+        .click()
+        .get('#ui-tabpanel-1-label')
+        .should('contain', 'map')
+        .click();
+      cy.httpTargetTree();
+      selectVersionAndTypeAndAddFirstRule();
+      fillRuleDescription('newRule');
       addCopyAction();
       cy.doneSaveRule();
     });
@@ -159,7 +766,7 @@
           .click()
           .get('.toast-container')
           .should('be.visible')
-          .get('.map-setting-list > #Type1 > input')
+          .get('.map-setting-list > form > #Type1 > input')
           .should('be.visible')
           .and('have.value', translateValue());
       });
diff --git a/public/cypress/support/generalCommands.ts b/public/cypress/support/generalCommands.ts
index fc87acc..35d2fa7 100644
--- a/public/cypress/support/generalCommands.ts
+++ b/public/cypress/support/generalCommands.ts
@@ -3,6 +3,7 @@
     httpGetDDLData: typeof httpGetDDLData;
     fillNewMcForm: typeof fillNewMcForm;
     httpCreateNewMc: typeof httpCreateNewMc;
+    httpCreateNewMcWithBooleanDDL: typeof httpCreateNewMcWithBooleanDDL;
   }
 }
 
@@ -44,7 +45,22 @@
     .as('newMC');
 }
 
+function httpCreateNewMcWithBooleanDDL() {
+  cy.server();
+  cy
+    .route({
+      method: 'POST',
+      url: Cypress.env('backendUrl') + '/createMC',
+      response: 'fixture:createMcResWithBooleanDDL'
+    })
+    .as('newMCWithBooleanDDL');
+}
+
 // Add cypress commands
 Cypress.Commands.add('httpGetDDLData', httpGetDDLData);
 Cypress.Commands.add('fillNewMcForm', fillNewMcForm);
 Cypress.Commands.add('httpCreateNewMc', httpCreateNewMc);
+Cypress.Commands.add(
+  'httpCreateNewMcWithBooleanDDL',
+  httpCreateNewMcWithBooleanDDL
+);
diff --git a/public/cypress/support/homeCommands.ts b/public/cypress/support/homeCommands.ts
index 6f3349c..d54f30e 100644
--- a/public/cypress/support/homeCommands.ts
+++ b/public/cypress/support/homeCommands.ts
@@ -17,25 +17,33 @@
 // functionality
 function sdcIsOwnerFalse(): void {
   cy.visit(
-    'home?userId=cs0008&userRole=DESIGNER&displayType=context&contextType=SERVICE&uuid=b1645734-b812-4cd7-a0cc-5b5843940ad6&lifecycleState=NOT_CERTIFIED_CHECKOUT&isOwner=false'
+    'home?userId=cs0008&userRole=DESIGNER&displayType=context&contextType=SERVICES&uu' +
+      'id=06c7d927-4e2f-47e1-a29d-b6ed229ebc0a&lifecycleState=NOT_CERTIFIED_CHECKOUT&is' +
+      'Owner=false&version=0.1'
   );
 }
 
 function sdcUserNotCheckout(): void {
   cy.visit(
-    'home?userId=cs0008&userRole=DESIGNER&displayType=context&contextType=SERVICE&uuid=b1645734-b812-4cd7-a0cc-5b5843940ad6&lifecycleState=READY_FOR_CERTIFICATION&isOwner=true'
+    'home?userId=cs0008&userRole=DESIGNER&displayType=context&contextType=SERVICES&uu' +
+      'id=06c7d927-4e2f-47e1-a29d-b6ed229ebc0a&lifecycleState=READY_FOR_CERTIFICATION&i' +
+      'sOwner=true&version=0.1'
   );
 }
 
 function homePage(): void {
   cy.visit(
-    'home?userId=cs0008&userRole=DESIGNER&displayType=context&contextType=SERVICES&uuid=06c7d927-4e2f-47e1-a29d-b6ed229ebc0a&lifecycleState=NOT_CERTIFIED_CHECKOUT&isOwner=true&version=0.1'
+    'home?userId=cs0008&userRole=DESIGNER&displayType=context&contextType=SERVICES&uu' +
+      'id=06c7d927-4e2f-47e1-a29d-b6ed229ebc0a&lifecycleState=NOT_CERTIFIED_CHECKOUT&is' +
+      'Owner=true&version=0.1'
   );
 }
 
 function homePageCertified(): void {
   cy.visit(
-    'home?userId=cs0008&userRole=DESIGNER&displayType=context&contextType=SERVICES&uuid=06c7d927-4e2f-47e1-a29d-b6ed229ebc0a&lifecycleState=CERTIFIED_CHECKOUT&isOwner=true&version=0.1'
+    'home?userId=cs0008&userRole=DESIGNER&displayType=context&contextType=SERVICES&uu' +
+      'id=06c7d927-4e2f-47e1-a29d-b6ed229ebc0a&lifecycleState=CERTIFIED_CHECKOUT&isOwne' +
+      'r=true&version=0.1'
   );
 }
 
@@ -46,7 +54,8 @@
       method: 'DELETE',
       url:
         Cypress.env('backendUrl') +
-        '/SERVICES/06c7d927-4e2f-47e1-a29d-b6ed229ebc0a/vfb53dd48360ff4fa2b66e6ceb1961bd9b0/cba37ed8-94e1-406f-b4f5-b5edbc31ac85/deleteVfcmtReference',
+        '/SERVICES/06c7d927-4e2f-47e1-a29d-b6ed229ebc0a/vfb53dd48360ff4fa2b66e6ceb1961bd9' +
+        'b0/cba37ed8-94e1-406f-b4f5-b5edbc31ac85/deleteVfcmtReference',
       response: '{}'
     })
     .as('deleteMonitoringComponent');
@@ -59,7 +68,8 @@
       method: 'POST',
       url:
         Cypress.env('backendUrl') +
-        '/SERVICES/06c7d927-4e2f-47e1-a29d-b6ed229ebc0a/vfb53dd48360ff4fa2b66e6ceb1961bd9b0/saveComposition/cba37ed8-94e1-406f-b4f5-b5edbc31ac85',
+        '/SERVICES/06c7d927-4e2f-47e1-a29d-b6ed229ebc0a/vfb53dd48360ff4fa2b66e6ceb1961bd9' +
+        'b0/saveComposition/cba37ed8-94e1-406f-b4f5-b5edbc31ac85',
       response: '{}'
     })
     .as('saveMonitoringComponent');
@@ -72,7 +82,8 @@
       method: 'POST',
       url:
         Cypress.env('backendUrl') +
-        '/SERVICES/createBluePrint/cba37ed8-94e1-406f-b4f5-b5edbc31ac85/06c7d927-4e2f-47e1-a29d-b6ed229ebc0a/vfb53dd48360ff4fa2b66e6ceb1961bd9b0/',
+        '/SERVICES/createBluePrint/cba37ed8-94e1-406f-b4f5-b5edbc31ac85/06c7d927-4e2f-47e' +
+        '1-a29d-b6ed229ebc0a/vfb53dd48360ff4fa2b66e6ceb1961bd9b0/',
       response: '{}'
     })
     .as('submitMonitoringComponent');
@@ -85,7 +96,8 @@
       method: 'DELETE',
       url:
         Cypress.env('backendUrl') +
-        '/SERVICES/teSt.__.monitoring---TempLATE.6hnc/06c7d927-4e2f-47e1-a29d-b6ed229ebc0a/dump0/64471437-8feb-40d9-a8b0-9407a81dd5c0/deleteVfcmtReference',
+        '/SERVICES/06c7d927-4e2f-47e1-a29d-b6ed229ebc0a/dump0/64471437-8feb-40d9-a8b0-940' +
+        '7a81dd5c0/deleteVfcmtReference',
       response: '{}'
     })
     .as('deleteMonitoringComponentWithBlueprint');
diff --git a/public/cypress/support/index.js b/public/cypress/support/index.js
index 2f70722..7cac3de 100644
--- a/public/cypress/support/index.js
+++ b/public/cypress/support/index.js
@@ -15,9 +15,31 @@
 
 // Import commands.js using ES2015 syntax:
 import './commands';
-import './homeCommands';
 import './generalCommands';
+import './homeCommands';
 import './ruleEngineCommands';
 
-// Alternatively you can use CommonJS syntax:
-// require('./commands')
+// const istanbul = require('istanbul-lib-coverage');
+
+// const map = istanbul.createCoverageMap({});
+
+// Cypress.on('window:before:unload', e => {
+//   const coverage = e.currentTarget.__coverage__;
+
+//   if (coverage) {
+//     map.merge(coverage);
+//   }
+// });
+
+// after(() => {
+//   cy.window().then(win => {
+//     const coverage = win.__coverage__;
+
+//     if (coverage) {
+//       map.merge(coverage);
+//     }
+
+//     cy.writeFile('.nyc_output/out.json', JSON.stringify(map));
+//     cy.exec('nyc report --reporter=html');
+//   });
+// })
diff --git a/public/cypress/support/ruleEngineCommands.ts b/public/cypress/support/ruleEngineCommands.ts
index 2142e7f..51ddc2d 100644
--- a/public/cypress/support/ruleEngineCommands.ts
+++ b/public/cypress/support/ruleEngineCommands.ts
@@ -3,7 +3,12 @@
     emptyRuleEngine: typeof emptyRuleEngine;
     httpTargetTree: typeof httpTargetTree;
     doneSaveRule: typeof doneSaveRule;
+    doneSaveAndEditRule: typeof doneSaveAndEditRule;
+    deleteRule: typeof deleteRule;
+    doneSaveMapRule: typeof doneSaveMapRule;
+    doneSaveLogTextRule: typeof doneSaveLogTextRule;
     httpTransalte: typeof httpTransalte;
+    httpGenerateMappingRulesFileName: typeof httpGenerateMappingRulesFileName;
   }
 }
 
@@ -45,12 +50,65 @@
       method: 'POST',
       url:
         Cypress.env('backendUrl') +
-        '/rule-editor/rule/6d436c07-8006-4335-8c84-d65b4740f8d6/map/n.1517823219961.0/Type1',
+        '/rule-editor/rule/6d436c07-8006-4335-8c84-d65b4740f8d6/map/n.1517823219961.0/Typ' +
+        'e1',
       response: 'fixture:doneSaveSimpleCopy'
     })
     .as('doneSaveCopyRule');
 }
 
+function deleteRule() {
+  cy.server();
+  cy
+    .route({
+      method: 'DELETE',
+      url:
+        Cypress.env('backendUrl') +
+        '/rule-editor/rule/6d436c07-8006-4335-8c84-d65b4740f8d6/map/n.1517823219961.0/Type1/f620724b-7170-43e1-8a8b-55e98cabe658',
+      response: '{}'
+    })
+    .as('deleteCopyRule');
+}
+
+function doneSaveAndEditRule() {
+  cy.server();
+  cy
+    .route({
+      method: 'POST',
+      url:
+        Cypress.env('backendUrl') +
+        '/rule-editor/rule/6d436c07-8006-4335-8c84-d65b4740f8d6/map/n.1517823219961.0/Type1',
+      response: 'fixture:doneSaveEditSimpleCopy'
+    })
+    .as('doneSaveAndEditRule');
+}
+
+function doneSaveMapRule() {
+  cy.server();
+  cy
+    .route({
+      method: 'POST',
+      url:
+        Cypress.env('backendUrl') +
+        '/rule-editor/rule/6d436c07-8006-4335-8c84-d65b4740f8d6/map/n.1517823219961.0/Type1',
+      response: 'fixture:doneSaveSimpleMap'
+    })
+    .as('doneSaveMapRule');
+}
+
+function doneSaveLogTextRule() {
+  cy.server();
+  cy
+    .route({
+      method: 'POST',
+      url:
+        Cypress.env('backendUrl') +
+        '/rule-editor/rule/6d436c07-8006-4335-8c84-d65b4740f8d6/map/n.1517823219961.0/Type1',
+      response: 'fixture:doneSaveSimpleLogText'
+    })
+    .as('doneSaveLogTextRule');
+}
+
 function httpTransalte() {
   cy.server();
   cy
@@ -58,14 +116,37 @@
       method: 'GET',
       url:
         Cypress.env('backendUrl') +
-        '/rule-editor/rule/translate/6d436c07-8006-4335-8c84-d65b4740f8d6/map/n.1517823219961.0/Type1',
+        '/rule-editor/rule/translate/6d436c07-8006-4335-8c84-d65b4740f8d6/map/n.151782321' +
+        '9961.0/Type1',
       response: 'fixture:TranslateSimpleCopy'
     })
     .as('TranslateSimpleCopy');
 }
 
+function httpGenerateMappingRulesFileName() {
+  cy.server();
+  cy
+    .route({
+      method: 'GET',
+      url:
+        Cypress.env('backendUrl') +
+        '/rule-editor/getExistingRuleTargets/6d436c07-8006-4335-8c84-d65b4740f8d6/map/n.1' +
+        '517823219961.0',
+      response: ['Type1', 'json', 'name']
+    })
+    .as('TranslateSimpleCopy');
+}
+
 // Add cypress commands
 Cypress.Commands.add('emptyRuleEngine', emptyRuleEngine);
 Cypress.Commands.add('httpTargetTree', httpTargetTree);
 Cypress.Commands.add('doneSaveRule', doneSaveRule);
+Cypress.Commands.add('doneSaveAndEditRule', doneSaveAndEditRule);
+Cypress.Commands.add('doneSaveMapRule', doneSaveMapRule);
+Cypress.Commands.add('doneSaveLogTextRule', doneSaveLogTextRule);
+Cypress.Commands.add('deleteRule', deleteRule);
 Cypress.Commands.add('httpTransalte', httpTransalte);
+Cypress.Commands.add(
+  'httpGenerateMappingRulesFileName',
+  httpGenerateMappingRulesFileName
+);
diff --git a/public/karma.conf.js b/public/karma.conf.js
index af139fa..9aa7899 100644
--- a/public/karma.conf.js
+++ b/public/karma.conf.js
@@ -1,22 +1,23 @@
 // Karma configuration file, see link for more information
 // https://karma-runner.github.io/1.0/config/configuration-file.html
 
-module.exports = function (config) {
+module.exports = function(config) {
   config.set({
     basePath: '',
     frameworks: ['jasmine', '@angular/cli'],
     plugins: [
       require('karma-jasmine'),
       require('karma-chrome-launcher'),
+      require('karma-phantomjs-launcher'),
       require('karma-jasmine-html-reporter'),
       require('karma-coverage-istanbul-reporter'),
       require('@angular/cli/plugins/karma')
     ],
-    client:{
+    client: {
       clearContext: false // leave Jasmine Spec Runner output visible in browser
     },
     coverageIstanbulReporter: {
-      reports: [ 'html', 'lcovonly' ],
+      reports: ['html', 'lcovonly'],
       fixWebpackSourcePaths: true
     },
     angularCli: {
@@ -27,7 +28,7 @@
     colors: true,
     logLevel: config.LOG_INFO,
     autoWatch: true,
-    browsers: ['Chrome'],
-    singleRun: false
+    browsers: ['PhantomJS'],
+    singleRun: true
   });
 };
diff --git a/public/package.json b/public/package.json
index 2c4b85e..35c0892 100644
--- a/public/package.json
+++ b/public/package.json
@@ -5,7 +5,7 @@
   "scripts": {
     "ng": "ng",
     "start": "ng serve",
-    "build": "ng build --prod --deploy-url=/dcaed",
+    "build": "ng build --prod --deploy-url=/dcaed -sm",
     "test": "ng test",
     "test:jest": "jest --watch",
     "test:ci": "jest --runInBand",
@@ -50,14 +50,17 @@
     "@angular/router": "^5.1.0",
     "@bahmutov/add-typescript-to-cypress": "^2.0.0",
     "@ng-select/ng-select": "^0.26.2",
-    "angular-tree-component": "^7.0.1",
+    "@swimlane/ngx-datatable": "^13.0.1",
+    "angular-tree-component": "^7.1.0",
     "core-js": "^2.4.1",
     "feather-icons": "^4.5.0",
     "font-awesome": "^4.7.0",
+    "intl": "^1.2.5",
     "lodash": "^4.17.5",
     "material-design-icons": "^3.0.1",
-    "mobx": "^4.1.0",
+    "mobx": "^4.2.0",
     "mobx-angular": "^3.0.1",
+    "ngx-datatable": "^1.0.3",
     "ngx-toastr": "^8.2.1",
     "papaparse": "^4.3.6",
     "pretty-checkbox": "3.0.3",
@@ -68,7 +71,7 @@
     "zone.js": "^0.8.19"
   },
   "devDependencies": {
-    "@angular/cli": "^1.7.3",
+    "@angular/cli": "^1.7.4",
     "@angular/compiler-cli": "^5.1.0",
     "@angular/language-service": "^5.1.0",
     "@storybook/addon-actions": "3.4.0-alpha.9",
@@ -85,9 +88,10 @@
     "angular2-template-loader": "^0.6.2",
     "babel-core": "^6.26.0",
     "codelyzer": "^4.0.1",
-    "cypress": "1.4.2",
+    "cypress": "^2.1.0",
     "electron": "^1.8.3",
     "husky": "^0.14.3",
+    "istanbul-instrumenter-loader": "^3.0.1",
     "jasmine-core": "~2.8.0",
     "jasmine-spec-reporter": "~4.2.1",
     "jest": "^22.4.2",
@@ -99,12 +103,14 @@
     "karma-coverage-istanbul-reporter": "^1.2.1",
     "karma-jasmine": "~1.1.0",
     "karma-jasmine-html-reporter": "^0.2.2",
+    "karma-phantomjs-launcher": "^1.0.4",
     "lint-staged": "^7.0.0",
     "mobx-devtools-mst": "^0.9.14",
     "mobx-remotedev": "^0.2.8",
     "mocha": "^5.0.0",
     "mocha-rp-reporter": "^1.0.12",
     "mochawesome": "^3.0.2",
+    "nyc": "^11.7.1",
     "prettier": "^1.11.1",
     "pretty-quick": "^1.4.1",
     "protractor": "~5.1.2",
diff --git a/public/src/app/api/rest-api.service.spec.ts b/public/src/app/api/rest-api.service.spec.ts
index ce921cb..c0fea4b 100644
--- a/public/src/app/api/rest-api.service.spec.ts
+++ b/public/src/app/api/rest-api.service.spec.ts
@@ -1,23 +1,479 @@
-import { TestBed, inject } from '@angular/core/testing';
-import { HttpModule } from '@angular/http';
-import { RestApiService } from './rest-api.service';
+import { HttpClientTestingModule } from '@angular/common/http/testing';
+import { TestBed, async, inject } from '@angular/core/testing';
+import {
+  BaseRequestOptions,
+  Http,
+  HttpModule,
+  Response,
+  ResponseOptions,
+  XHRBackend
+} from '@angular/http';
+import { MockBackend } from '@angular/http/testing';
 import { v4 as genrateUuid } from 'uuid';
+import { Store } from '../store/store';
+import { RestApiService } from './rest-api.service';
 
 describe('RestApiService', () => {
-  beforeEach(() => {
-    TestBed.configureTestingModule({
-      imports: [HttpModule],
-      providers: [RestApiService]
-    });
-  });
+  let service: RestApiService;
+  let backend: MockBackend;
+
+  beforeEach(
+    async(() => {
+      TestBed.configureTestingModule({
+        imports: [HttpModule, HttpClientTestingModule],
+        providers: [
+          RestApiService,
+          Store,
+          MockBackend,
+          BaseRequestOptions,
+          {
+            provide: Http,
+            deps: [MockBackend, BaseRequestOptions],
+            useFactory: (
+              backend: XHRBackend,
+              defaultOptions: BaseRequestOptions
+            ) => {
+              return new Http(backend, defaultOptions);
+            }
+          }
+        ]
+      });
+      // Get the MockBackend
+      backend = TestBed.get(MockBackend);
+      service = TestBed.get(RestApiService);
+    })
+  );
 
   it(
     'should be created',
-    inject([RestApiService], (service: RestApiService) => {
+    inject([RestApiService], () => {
       expect(service).toBeTruthy();
     })
   );
 
+  it('should baseUrl match localhost', () => {
+    expect(service.baseUrl).toBe('http://localhost:8446');
+  });
+
+  it('should headers user id get default', () => {
+    service.addHeaders();
+    expect(service.headers.get('USER_ID')).toBe('ym903w');
+  });
+
+  it('should headers Content-Type json', () => {
+    service.addHeaders();
+    expect(service.headers.get('Content-Type')).toBe('application/json');
+  });
+
+  it(
+    'should get service instance from API',
+    async(() => {
+      const serviceInstances = [
+        {
+          name: 'ciService669277f472b0',
+          category: 'Mobility'
+        }
+      ];
+
+      backend.connections.subscribe(connection => {
+        connection.mockRespond(
+          new Response(
+            new ResponseOptions({
+              body: JSON.stringify(serviceInstances)
+            })
+          )
+        );
+      });
+
+      service.getServiceInstances('123456').subscribe(_res => {
+        expect(_res.length).toBe(1);
+        expect(_res).toEqual(serviceInstances);
+      });
+    })
+  );
+
+  it(
+    'should get template resources from API',
+    async(() => {
+      const template = [
+        {
+          name: 'AviStone1234',
+          version: '0.1'
+        }
+      ];
+
+      backend.connections.subscribe(connection => {
+        connection.mockRespond(
+          new Response(
+            new ResponseOptions({
+              body: JSON.stringify(template)
+            })
+          )
+        );
+      });
+
+      service.getTemplateResources().subscribe(_res => {
+        expect(_res.length).toBe(1);
+        expect(_res).toEqual(template);
+      });
+    })
+  );
+
+  it(
+    'should getCompositionMonitoringComponent from API',
+    async(() => {
+      const template = [
+        {
+          name: 'AviStone1234',
+          version: '0.1'
+        }
+      ];
+
+      backend.connections.subscribe(connection => {
+        connection.mockRespond(
+          new Response(
+            new ResponseOptions({
+              body: JSON.stringify(template)
+            })
+          )
+        );
+      });
+
+      service.getCompositionMonitoringComponent('123456').subscribe(_res => {
+        expect(_res.length).toBe(1);
+        expect(_res).toEqual(template);
+      });
+    })
+  );
+
+  it(
+    'importVFCMT from API',
+    async(() => {
+      const template = [
+        {
+          name: 'AviStone1234',
+          version: '0.1'
+        }
+      ];
+
+      backend.connections.subscribe(connection => {
+        connection.mockRespond(
+          new Response(
+            new ResponseOptions({
+              body: JSON.stringify(template)
+            })
+          )
+        );
+      });
+
+      service.importVFCMT({}).subscribe(_res => {
+        expect(_res.length).toBe(1);
+        expect(_res).toEqual(template);
+      });
+    })
+  );
+
+  it(
+    'deleteMonitoringComponent from API',
+    async(() => {
+      const template = [
+        {
+          name: 'AviStone1234',
+          version: '0.1'
+        }
+      ];
+
+      backend.connections.subscribe(connection => {
+        connection.mockRespond(
+          new Response(
+            new ResponseOptions({
+              body: JSON.stringify(template)
+            })
+          )
+        );
+      });
+
+      service
+        .deleteMonitoringComponent(
+          {
+            contextType: 'service',
+            uuid: '123456'
+          },
+          '45678',
+          'liav'
+        )
+        .subscribe(_res => {
+          console.log('delete', _res);
+        });
+    })
+  );
+
+  it(
+    'deleteMonitoringComponentWithBlueprint from API',
+    async(() => {
+      const template = [
+        {
+          name: 'AviStone1234',
+          version: '0.1'
+        }
+      ];
+
+      backend.connections.subscribe(connection => {
+        connection.mockRespond(
+          new Response(
+            new ResponseOptions({
+              body: JSON.stringify(template)
+            })
+          )
+        );
+      });
+
+      service
+        .deleteMonitoringComponentWithBlueprint(
+          {
+            contextType: 'service',
+            uuid: '123456'
+          },
+          'voskComp',
+          '45678',
+          'liav'
+        )
+        .subscribe(_res => {
+          console.log('delete', _res);
+        });
+    })
+  );
+
+  it(
+    'createNewVFCMT from API',
+    async(() => {
+      const template = [
+        {
+          name: 'AviStone1234',
+          version: '0.1'
+        }
+      ];
+
+      backend.connections.subscribe(connection => {
+        connection.mockRespond(
+          new Response(
+            new ResponseOptions({
+              body: JSON.stringify(template)
+            })
+          )
+        );
+      });
+
+      service.createNewVFCMT({}).subscribe(_res => {
+        expect(_res.length).toBe(1);
+        expect(_res).toEqual(template);
+      });
+    })
+  );
+
+  it(
+    'saveMonitoringComponent from API',
+    async(() => {
+      const template = [
+        {
+          name: 'AviStone1234',
+          version: '0.1'
+        }
+      ];
+
+      backend.connections.subscribe(connection => {
+        connection.mockRespond(
+          new Response(
+            new ResponseOptions({
+              body: JSON.stringify(template)
+            })
+          )
+        );
+      });
+
+      service
+        .saveMonitoringComponent({
+          contextType: 'service',
+          serviceUuid: '123456',
+          vfiName: 'liavVfi',
+          vfcmtUuid: '987456',
+          cdump: {}
+        })
+        .subscribe(_res => {
+          expect(_res.length).toBe(1);
+          expect(_res).toEqual(template);
+        });
+    })
+  );
+
+  it(
+    'submitMonitoringComponent from API',
+    async(() => {
+      const template = [
+        {
+          name: 'AviStone1234',
+          version: '0.1'
+        }
+      ];
+
+      backend.connections.subscribe(connection => {
+        connection.mockRespond(
+          new Response(
+            new ResponseOptions({
+              body: JSON.stringify(template)
+            })
+          )
+        );
+      });
+
+      service
+        .submitMonitoringComponent({
+          contextType: 'service',
+          serviceUuid: '123456',
+          vfiName: 'liavVfi',
+          vfcmtUuid: '987456',
+          cdump: {},
+          flowType: 'SNMP'
+        })
+        .subscribe(_res => {
+          expect(_res.length).toBe(1);
+          expect(_res).toEqual(template);
+        });
+    })
+  );
+
+  it(
+    'should get Vfcmt Reference Data from API',
+    async(() => {
+      const template = [
+        {
+          name: 'AviStone1234',
+          version: '0.1'
+        }
+      ];
+
+      backend.connections.subscribe(connection => {
+        connection.mockRespond(
+          new Response(
+            new ResponseOptions({
+              body: JSON.stringify(template)
+            })
+          )
+        );
+      });
+
+      service.getVfcmtReferenceData('123456').subscribe(_res => {
+        expect(_res.length).toBe(1);
+        expect(_res).toEqual(template);
+      });
+    })
+  );
+
+  it(
+    'should get vfcmt list from API',
+    async(() => {
+      const dummyVfcmts = [
+        {
+          uuid: 'cba37ed8-94e1-406f-b4f5-b5edbc31ac85',
+          name: 'CIe4d5a9b271d6'
+        },
+        {
+          uuid: '64471437-8feb-40d9-a8b0-9407a81dd5c0',
+          name: 'teSt.__.monitoring---TempLATE.6hnc'
+        }
+      ];
+
+      backend.connections.subscribe(connection => {
+        expect(connection.request.url).toMatch(
+          'http://localhost:8446/service/123456/0.1/monitoringComponents'
+        );
+        connection.mockRespond(
+          new Response(
+            new ResponseOptions({
+              body: JSON.stringify(dummyVfcmts)
+            })
+          )
+        );
+      });
+
+      service
+        .getMonitoringComponents({
+          contextType: 'service',
+          uuid: '123456',
+          version: '0.1'
+        })
+        .subscribe(_res => {
+          expect(_res.length).toBe(2);
+          expect(_res).toEqual(dummyVfcmts);
+        });
+    })
+  );
+
+  it(
+    'should get migration vfcmt list from API',
+    async(() => {
+      const dummyVfcmts = [
+        {
+          uuid: 'cba37ed8-94e1-406f-b4f5-b5edbc31ac85',
+          name: 'CIe4d5a9b271d6'
+        },
+        {
+          uuid: '64471437-8feb-40d9-a8b0-9407a81dd5c0',
+          name: 'teSt.__.monitoring---TempLATE.6hnc'
+        }
+      ];
+
+      backend.connections.subscribe(connection => {
+        expect(connection.request.url).toMatch(
+          'http://localhost:8446/service/123456/0.1/getVfcmtsForMigration'
+        );
+        connection.mockRespond(
+          new Response(
+            new ResponseOptions({
+              body: JSON.stringify(dummyVfcmts)
+            })
+          )
+        );
+      });
+
+      service
+        .getVfcmtsForMigration({
+          contextType: 'service',
+          uuid: '123456',
+          version: '0.1'
+        })
+        .subscribe(_res => {
+          expect(_res.length).toBe(2);
+          expect(_res).toEqual(dummyVfcmts);
+        });
+    })
+  );
+
+  it(
+    'should get flow type from API',
+    async(() => {
+      const flowType = ['syslog', 'SNMP'];
+
+      backend.connections.subscribe(connection => {
+        expect(connection.request.url).toMatch(
+          'http://localhost:8446/conf/composition'
+        );
+        connection.mockRespond(
+          new Response(
+            new ResponseOptions({
+              body: JSON.stringify(flowType)
+            })
+          )
+        );
+      });
+
+      service.getFlowType().subscribe(_res => {
+        expect(_res.length).toBe(2);
+        expect(_res).toEqual(flowType);
+      });
+    })
+  );
+
   it('should genrate deffrent uuid each time for request id', () => {
     const firstUuid = genrateUuid();
     const secondUuid = genrateUuid();
diff --git a/public/src/app/api/rest-api.service.ts b/public/src/app/api/rest-api.service.ts
index ba5cc54..cd55a6d 100644
--- a/public/src/app/api/rest-api.service.ts
+++ b/public/src/app/api/rest-api.service.ts
@@ -1,18 +1,13 @@
 import { Injectable } from '@angular/core';
-import {
-  Http,
-  Response,
-  Headers,
-  RequestOptions,
-  URLSearchParams
-} from '@angular/http';
+import { Headers, Http, RequestOptions, Response } from '@angular/http';
 import { Observable } from 'rxjs/Observable';
+import 'rxjs/add/observable/throw';
+import 'rxjs/add/operator/catch';
 // Import RxJs required methods
 import 'rxjs/add/operator/map';
-import 'rxjs/add/operator/catch';
-import 'rxjs/add/observable/throw';
-import { environment } from '../../environments/environment';
 import { v4 as uuidGenarator } from 'uuid';
+import { environment } from '../../environments/environment';
+import { Store } from '../store/store';
 
 @Injectable()
 export class RestApiService {
@@ -20,16 +15,24 @@
   headers: Headers;
   baseUrl: string;
 
-  constructor(private http: Http) {
+  constructor(private http: Http, public store: Store) {
     this.baseUrl = `${environment.apiBaseUrl}`;
+  }
+
+  addHeaders() {
+    const userID =
+      this.store.sdcParmas === undefined
+        ? 'ym903w'
+        : this.store.sdcParmas.userId;
     this.headers = new Headers({
       'Content-Type': 'application/json',
-      USER_ID: 'ym903w'
+      USER_ID: userID
     });
     this.options = new RequestOptions({ headers: this.headers });
   }
 
   getVfcmtsForMigration(params) {
+    this.addHeaders();
     const { contextType, uuid, version } = params;
     const url = `${
       this.baseUrl
@@ -44,6 +47,7 @@
   }
 
   getVfcmtReferenceData(vfcmtUUID) {
+    this.addHeaders();
     const url = `${this.baseUrl}/getVfcmtReferenceData/${vfcmtUUID}`;
     this.options.headers.set('X-ECOMP-RequestID', uuidGenarator());
     return this.http
@@ -53,6 +57,7 @@
   }
 
   getFlowType() {
+    this.addHeaders();
     const url = `${this.baseUrl}/conf/composition`;
     this.options.headers.set('X-ECOMP-RequestID', uuidGenarator());
     return this.http
@@ -62,6 +67,7 @@
   }
 
   createNewVFCMT(params) {
+    this.addHeaders();
     const url = `${this.baseUrl}/createMC`;
     this.options.headers.set('X-ECOMP-RequestID', uuidGenarator());
     return this.http
@@ -73,6 +79,7 @@
   }
 
   importVFCMT(params) {
+    this.addHeaders();
     const url = `${this.baseUrl}/importMC`;
     this.options.headers.set('X-ECOMP-RequestID', uuidGenarator());
     return this.http
@@ -84,6 +91,7 @@
   }
 
   getServiceInstances(serviceID) {
+    this.addHeaders();
     const url = `${this.baseUrl}/service/${serviceID}`;
     this.options.headers.set('X-ECOMP-RequestID', uuidGenarator());
     return this.http
@@ -95,6 +103,7 @@
   }
 
   getTemplateResources() {
+    this.addHeaders();
     const url = `${this.baseUrl}/getResourcesByMonitoringTemplateCategory`;
     this.options.headers.set('X-ECOMP-RequestID', uuidGenarator());
     return this.http
@@ -104,6 +113,7 @@
   }
 
   getMonitoringComponents(params) {
+    this.addHeaders();
     const { contextType, uuid, version } = params;
     const url = `${
       this.baseUrl
@@ -116,6 +126,7 @@
   }
 
   deleteMonitoringComponent(params, vfcmtUuid, vfiName) {
+    this.addHeaders();
     const { contextType, uuid } = params;
     const url = `${
       this.baseUrl
@@ -123,7 +134,7 @@
     this.options.headers.set('X-ECOMP-RequestID', uuidGenarator());
     return this.http
       .delete(url, this.options)
-      .map((res: Response) => res.json())
+      .map((res: Response) => res)
       .catch((error: any) => Observable.throw(error.json() || 'Server error'));
   }
 
@@ -133,6 +144,7 @@
     vfcmtUuid,
     vfiName
   ) {
+    this.addHeaders();
     const { contextType, uuid } = params;
     const url = `${
       this.baseUrl
@@ -140,11 +152,12 @@
     this.options.headers.set('X-ECOMP-RequestID', uuidGenarator());
     return this.http
       .delete(url, this.options)
-      .map((res: Response) => res.json())
+      .map((res: Response) => res)
       .catch((error: any) => Observable.throw(error.json() || 'Server error'));
   }
 
   getCompositionMonitoringComponent(vfcmtUuid) {
+    this.addHeaders();
     const url = `${this.baseUrl}/getMC/${vfcmtUuid}`;
     this.options.headers.set('X-ECOMP-RequestID', uuidGenarator());
     return this.http
@@ -154,18 +167,20 @@
   }
 
   saveMonitoringComponent(params) {
+    this.addHeaders();
     const { contextType, serviceUuid, vfiName, vfcmtUuid, cdump } = params;
     const url = `${
       this.baseUrl
     }/${contextType}/${serviceUuid}/${vfiName}/saveComposition/${vfcmtUuid}`;
     this.options.headers.set('X-ECOMP-RequestID', uuidGenarator());
     return this.http
-      .post(url, cdump, this.options)
+      .post(url, JSON.stringify(cdump), this.options)
       .map((res: Response) => res.json())
       .catch((error: any) => Observable.throw(error.json() || 'Server error'));
   }
 
   submitMonitoringComponent(params) {
+    this.addHeaders();
     const { contextType, serviceUuid, vfiName, vfcmtUuid, flowType } = params;
     const url = `${
       this.baseUrl
diff --git a/public/src/app/app.component.html b/public/src/app/app.component.html
index adb06f1..29762b6 100644
--- a/public/src/app/app.component.html
+++ b/public/src/app/app.component.html
@@ -1,6 +1,7 @@
 <!-- <div class="container"> -->
 <main [@slideAnimation]="getRouterOutletState(o)">
   <app-error-dialog></app-error-dialog>
+  <app-sdc-notify-dialog></app-sdc-notify-dialog>
   <app-loader [hidden]="!this.store.loader"></app-loader>
   <router-outlet #o="outlet"></router-outlet>
 </main>
diff --git a/public/src/app/app.module.ts b/public/src/app/app.module.ts
index 8ed8c87..ba5d035 100644
--- a/public/src/app/app.module.ts
+++ b/public/src/app/app.module.ts
@@ -13,8 +13,9 @@
 import { MatDialogModule } from '@angular/material/dialog';
 import { ToastrModule } from 'ngx-toastr';
 import { NgSelectModule } from '@ng-select/ng-select';
+import { NgxDatatableModule } from '@swimlane/ngx-datatable';
 
-// import { SdcUiComponentsModule } from 'sdc-ui/lib/angular';
+// import {SdcUiComponentsModule} from 'sdc-ui/lib/angular';
 
 import { AppComponent } from './app.component';
 import { AppRoutingModule } from './app-routing.module';
@@ -44,6 +45,7 @@
 import { RuleListComponent } from './rule-engine/rule-list/rule-list.component';
 import { BarIconsComponent } from './bar-icons/bar-icons.component';
 import { DiagramComponent } from './diagram/diagram.component';
+import { SdcNotifyDialogComponent } from './sdc-notify-dialog/sdc-notify-dialog.component';
 
 const appInitializerFn = () => {
   return () => {
@@ -71,7 +73,8 @@
     SlidePanelComponent,
     RuleListComponent,
     BarIconsComponent,
-    DiagramComponent
+    DiagramComponent,
+    SdcNotifyDialogComponent
   ],
   imports: [
     BrowserModule,
@@ -89,7 +92,8 @@
     TreeModule,
     NgSelectModule,
     TooltipModule,
-    ToastrModule.forRoot({ enableHtml: true })
+    ToastrModule.forRoot({ enableHtml: true }),
+    NgxDatatableModule
   ],
   entryComponents: [ConfirmPopupComponent],
   providers: [
diff --git a/public/src/app/bar-icons/bar-icons.component.html b/public/src/app/bar-icons/bar-icons.component.html
index 03129bf..2b5269d 100644
--- a/public/src/app/bar-icons/bar-icons.component.html
+++ b/public/src/app/bar-icons/bar-icons.component.html
@@ -1,40 +1,44 @@
-<div style="display: flex; position: relative; justify-content: flex-end;">
-  <div style="display: flex; justify-content: flex-end;" [class]="genrateBarTestId()">
+<div style="display: flex; position: relative; justify-content: flex-end;" class="bars">
+  <div style="display: flex; justify-content: flex-end; align-items:center;" [class]="genrateBarTestId()">
     <button mat-icon-button>
       <span style="width: 100%;
+          color:#5a5a5a;
           height: 100%;
           display: flex;
           justify-content: center;
-          align-items: center;" [innerHTML]="'help-circle' | feather:18"></span>
+          align-items: center;" [innerHTML]="'help-circle' | feather:20"></span>
     </button>
     <hr>
 
-    <div *ngIf="tabName.includes('map')" style="display: flex;">
+    <div *ngIf="tabName.includes('map')" style="display: flex; align-items: center;">
       <button mat-icon-button>
         <span style="width: 100%;
+            color:#5a5a5a;
                 height: 100%;
                 display: flex;
                 justify-content: center;
-                align-items: center;" [innerHTML]="'upload' | feather:18"></span>
+                align-items: center;" [innerHTML]="'upload' | feather:20"></span>
       </button>
       <hr>
 
       <button mat-icon-button>
         <span style="width: 100%;
+            color:#5a5a5a;
                 height: 100%;
                 display: flex;
                 justify-content: center;
-                align-items: center;" [innerHTML]="'download' | feather:18"></span>
+                align-items: center;" [innerHTML]="'download' | feather:20"></span>
       </button>
       <hr>
     </div>
 
     <button mat-icon-button (click)="enableSetting()" data-tests-id="setting-gear" [style.color]="this.store.expandAdvancedSetting[store.tabIndex] ? '#009FDB' : 'black'">
       <span style="width: 100%;
+          color:#5a5a5a;
           height: 100%;
           display: flex;
           justify-content: center;
-          align-items: center;" [innerHTML]="'settings' | feather:18"></span>
+          align-items: center;" [innerHTML]="'settings' | feather:20"></span>
     </button>
   </div>
 
@@ -44,14 +48,32 @@
       <div style="font-size: 1.5em; padding: 0 12px;">{{tabName}} Advanced Setting</div>
       <form #cdumpConfForm="ngForm">
         <div *ngFor="let prop of store.configurationForm" class="field" [id]="prop.name">
-          <p class="field-label">{{prop.name}}</p>
-          <input *ngIf="!isPropertyDdl(prop)" type="text" name="{{prop.name}}" class="field-text" [(ngModel)]="prop.assignment.value"
+          <div style="display: flex;">
+            <p class="field-label">
+              {{prop.name}}
+            </p>
+            <span *ngIf="prop.description" class="help-description" style="padding-left: 5px;" [innerHTML]="'help-circle' | feather:14"
+              pTooltip="{{prop.description}}" tooltipPosition="top"></span>
+          </div>
+
+          <input *ngIf="isPropertyDdl(prop) === dropDownTypes.none" type="text" name="{{prop.name}}" class="field-text" [(ngModel)]="prop.value"
             (ngModelChange)="onChange($event)">
-          <select *ngIf="isPropertyDdl(prop)" class="field-text" name="{{prop.name}}" [(ngModel)]="prop.assignment.value" (ngModelChange)="onChange($event)">
-          <option *ngFor="let value of prop.constraints[0].valid_values" [value]="value">
-            {{value}}
-          </option>
-        </select>
+
+          <select *ngIf="isPropertyDdl(prop) === dropDownTypes.regularDDL" class="field-text" name="{{prop.name}}" [(ngModel)]="prop.value"
+            (ngModelChange)="onChange($event)">
+            <option *ngFor="let value of prop.constraints[0].valid_values" [value]="value">
+              {{value}}
+            </option>
+          </select>
+          <select *ngIf="isPropertyDdl(prop) === dropDownTypes.booleanDDL" class="field-text" name="{{prop.name}}" [(ngModel)]="prop.value"
+            (ngModelChange)="onChange($event)" data-tests-id="booleanDDL">
+            <option value="false">
+              false
+            </option>
+            <option value="true">
+              true
+            </option>
+          </select>
         </div>
       </form>
     </div>
diff --git a/public/src/app/bar-icons/bar-icons.component.scss b/public/src/app/bar-icons/bar-icons.component.scss
index 893f757..006e650 100644
--- a/public/src/app/bar-icons/bar-icons.component.scss
+++ b/public/src/app/bar-icons/bar-icons.component.scss
@@ -1,3 +1,9 @@
+.bars {
+  hr {
+    height: 22px;
+    color: #d2d2d2;
+  }
+}
 .setting {
   position: absolute;
   top: 47px;
diff --git a/public/src/app/bar-icons/bar-icons.component.ts b/public/src/app/bar-icons/bar-icons.component.ts
index adf4b88..bf930f3 100644
--- a/public/src/app/bar-icons/bar-icons.component.ts
+++ b/public/src/app/bar-icons/bar-icons.component.ts
@@ -1,7 +1,7 @@
 import { Component, Input, ViewChild } from '@angular/core';
-import { Store } from '../store/store';
-import { includes } from 'lodash';
 import { NgForm } from '@angular/forms';
+import { includes } from 'lodash';
+import { Store } from '../store/store';
 
 @Component({
   selector: 'app-bar-icons',
@@ -12,6 +12,11 @@
   configuration;
   @Input() tabName: string;
   @ViewChild('cdumpConfForm') cdumpConfForm: NgForm;
+  dropDownTypes = {
+    none: 1,
+    regularDDL: 2,
+    booleanDDL: 3
+  };
 
   constructor(public store: Store) {}
 
@@ -21,19 +26,19 @@
 
   isPropertyDdl(property) {
     if (property.hasOwnProperty('constraints')) {
-      if (
-        includes(
-          property.constraints[0].valid_values,
-          property.assignment.value
-        )
+      if (includes(property.constraints[0].valid_values, property.value)) {
+        return this.dropDownTypes.regularDDL;
+      } else if (
+        property.hasOwnProperty('type') &&
+        property.type === 'boolean'
       ) {
-        return true;
-      } else {
-        return false;
+        if (!(property.value === 'false')) {
+          property.value = true;
+        }
+        return this.dropDownTypes.booleanDDL;
       }
-    } else {
-      return false;
     }
+    return this.dropDownTypes.none;
   }
 
   genrateBarTestId() {
diff --git a/public/src/app/diagram/diagram.component.html b/public/src/app/diagram/diagram.component.html
index b3cb28a..c12860b 100644
--- a/public/src/app/diagram/diagram.component.html
+++ b/public/src/app/diagram/diagram.component.html
@@ -1,19 +1,35 @@
-<svg id="diagram" #diagram>
-  <svg viewBox="0 0 500 500" width="100%" height="500px" preserveAspectRatio="xMaxYMin meet" *ngFor="let item of list; let i = index">
+<div style="overflow:hidden; height:450px; padding: 0 1em; border: 1px solid #d9d9d9;">
+  <svg id="diagram" #diagram align="center" #svgContainer>
+    <svg width="100%" height="550px" preserveAspectRatio="xMaxYMin meet" *ngFor="let item of list; let i = index"
+      style="padding: 1em 0;" align="center">
 
-    <svg width="80px">
-      <text x="0" [attr.y]="45 * (i+1)">
-        {{item.source}}
+      <svg [attr.width]="maxLengthLeft * 10">
+        <text text-anchor="start" x="0" [attr.y]="40 * (i+1)" font-size="12" dy="0">
+          <tspan x="0" dy=".6em" font-weight="bold">
+            {{item.name1}}
+          </tspan>
+          <tspan x="0" dy="1.2em">
+            {{item.p1}}
+          </tspan>
+        </text>
+      </svg>
+
+      <circle stroke="#8BC34A" fill="#8BC34A" [attr.cx]="maxLengthLeft * 8" [attr.cy]="44 * (i+1)" r="5" />
+
+      <line [attr.x1]="maxLengthLeft * 8" [attr.y1]="44 * (i+1)" [attr.x2]="maxWidth - maxLengthRight * 8 - 30" [attr.y2]="44 * (i+1)"
+        stroke-width="2" stroke="black" stroke-dasharray="5, 5" stroke="#8BC34A" fill="#8BC34A" class="line" />
+
+      <circle [attr.cx]="maxWidth - maxLengthRight * 8 - 30" [attr.cy]="44 * (i+1)" r="5" stroke="#8BC34A" fill="#8BC34A" />
+
+      <text text-anchor="start" [attr.x]="maxWidth - maxLengthRight * 8" [attr.y]="40 * (i+1)" font-size="12" dy="0">
+        <tspan [attr.x]="maxWidth - maxLengthRight * 8" dy=".6em" font-weight="bold">
+          {{item.name2}}
+        </tspan>
+        <tspan [attr.x]="maxWidth - maxLengthRight * 8" dy="1.2em">
+          {{item.p2}}
+        </tspan>
       </text>
+
     </svg>
-
-    <circle cx="100" [attr.cy]="44 * (i+1)" r="5" />
-    <line x1="100" [attr.y1]="44 * (i+1)" [attr.x2]="maxWidth - 150" [attr.y2]="44 * (i+1)" stroke-width="2" stroke="black" stroke-dasharray="5, 5"
-      class="line" />
-    <circle [attr.cx]="maxWidth - 150" [attr.cy]="44 * (i+1)" r="5" />
-
-    <text [attr.x]="maxWidth - 130" [attr.y]="45 * (i+1)">
-      {{item.target}}
-    </text>
   </svg>
-</svg>
+</div>
diff --git a/public/src/app/diagram/diagram.component.scss b/public/src/app/diagram/diagram.component.scss
index 57437d8..1753ea2 100644
--- a/public/src/app/diagram/diagram.component.scss
+++ b/public/src/app/diagram/diagram.component.scss
@@ -1,11 +1,10 @@
-svg {
-  height: 400px;
+#diagram {
+  height: 1000px;
   width: 100%;
   margin: auto;
   display: block;
   .line {
-    stroke-dasharray: 1400;
-    animation: draw 5s ease-in;
+    stroke-dasharray: 5; // animation: draw 1s ease-in;
   }
 }
 
diff --git a/public/src/app/diagram/diagram.component.spec.ts b/public/src/app/diagram/diagram.component.spec.ts
index 535f280..e3177cc 100644
--- a/public/src/app/diagram/diagram.component.spec.ts
+++ b/public/src/app/diagram/diagram.component.spec.ts
@@ -1,5 +1,4 @@
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
+import { ComponentFixture, TestBed, async } from '@angular/core/testing';
 import { DiagramComponent } from './diagram.component';
 
 describe('DiagramComponent', () => {
@@ -23,4 +22,77 @@
   it('should create', () => {
     expect(component).toBeTruthy();
   });
+
+  it('should check on change check maxLengthLeft', () => {
+    component.list = [
+      {
+        name1: 'node1dsvsdsvd',
+        name2: 'node2',
+        p1: 'Stream_publish_0',
+        p2: 'capability'
+      },
+      {
+        name1: 'node33',
+        name2: 'node2555',
+        p1: 'requirement2',
+        p2: 'capability11'
+      },
+      {
+        name1: 'namber4',
+        name2: 'namber3',
+        p1: 'requirement3',
+        p2: 'capability4'
+      }
+    ];
+    component.ngOnChanges();
+    expect(component.maxLengthLeft).toBe(16);
+  });
+  it('should check on change check maxLengthRight', () => {
+    component.list = [
+      {
+        name1: 'node1dsvsdsvd',
+        name2: 'node2',
+        p1: 'Stream_publish_0',
+        p2: 'capability'
+      },
+      {
+        name1: 'node33',
+        name2: 'node2555',
+        p1: 'requirement2',
+        p2: 'capability11'
+      },
+      {
+        name1: 'namber4',
+        name2: 'namber3',
+        p1: 'requirement3',
+        p2: 'capability4'
+      }
+    ];
+    component.ngOnChanges();
+    expect(component.maxLengthRight).toBe(12);
+  });
+  it('should check on change check maxWidth', () => {
+    component.list = [
+      {
+        name1: 'node1dsvsdsvd',
+        name2: 'node2',
+        p1: 'Stream_publish_0',
+        p2: 'capability'
+      },
+      {
+        name1: 'node33',
+        name2: 'node2555',
+        p1: 'requirement2',
+        p2: 'capability11'
+      },
+      {
+        name1: 'namber4',
+        name2: 'namber3',
+        p1: 'requirement3',
+        p2: 'capability4'
+      }
+    ];
+    component.ngOnChanges();
+    expect(component.maxWidth).toBe(550);
+  });
 });
diff --git a/public/src/app/diagram/diagram.component.ts b/public/src/app/diagram/diagram.component.ts
index a0ae3a1..394b0ee 100644
--- a/public/src/app/diagram/diagram.component.ts
+++ b/public/src/app/diagram/diagram.component.ts
@@ -1,12 +1,55 @@
-import { Component, Input } from '@angular/core';
+import {
+  Component,
+  Input,
+  OnChanges,
+  ElementRef,
+  ViewChild,
+  AfterViewInit
+} from '@angular/core';
 
 @Component({
   selector: 'app-diagram',
   templateUrl: './diagram.component.html',
   styleUrls: ['./diagram.component.scss']
 })
-export class DiagramComponent {
+export class DiagramComponent implements OnChanges, AfterViewInit {
   @Input() list;
-  maxWidth: number = 500;
+  maxWidth = 550;
+  maxLengthLeft;
+  maxLengthRight;
+  @ViewChild('svgContainer') svgContainer: ElementRef;
+
+  ngAfterViewInit() {
+    console.log(
+      'svg width:',
+      this.svgContainer.nativeElement.getBoundingClientRect().width
+    );
+    this.maxWidth = this.svgContainer.nativeElement.getBoundingClientRect().width;
+  }
+
   constructor() {}
+
+  ngOnChanges() {
+    if (this.list) {
+      const name1MaxLength = this.list.reduce(
+        (r, s) => (r > s.name1.length ? r : s.name1.length),
+        0
+      );
+      const p1MaxLength = this.list.reduce(
+        (r, s) => (r > s.p1.length ? r : s.p1.length),
+        0
+      );
+      this.maxLengthLeft = Math.max(name1MaxLength, p1MaxLength);
+
+      const name2MaxLength = this.list.reduce(
+        (r, s) => (r > s.name2.length ? r : s.name2.length),
+        0
+      );
+      const p2MaxLength = this.list.reduce(
+        (r, s) => (r > s.p2.length ? r : s.p2.length),
+        0
+      );
+      this.maxLengthRight = Math.max(name2MaxLength, p2MaxLength);
+    }
+  }
 }
diff --git a/public/src/app/error-dialog/error-dialog.component.html b/public/src/app/error-dialog/error-dialog.component.html
index 7b72d06..ca9dd32 100644
--- a/public/src/app/error-dialog/error-dialog.component.html
+++ b/public/src/app/error-dialog/error-dialog.component.html
@@ -1,17 +1,35 @@
-<p-dialog [(visible)]="store.displayErrorDialog" modal="modal" width="500" [responsive]="true" data-tests-id="error-dialog">
+<p-dialog [(visible)]="store.displayErrorDialog" [closable]="false" modal="modal" width="500" [responsive]="true" data-tests-id="error-dialog"
+  styleClass="dcae-error">
   <p-header>
-    <span style="font-size: 1.3em;">
-      Error
-    </span>
+    <div style="display: flex;">
+      <span style="color: #CF2A2A;
+        padding-right: 15px;
+        height: 100%;
+        display: flex;
+        justify-content: center;
+        align-items: center;" [innerHTML]="'x-circle' | feather:28"></span>
+      <span style="font-family: 'Open Sans', sans-serif;
+      font-size: 24px; width: 100%;">
+        Error
+      </span>
+      <span style="
+        height: 100%;
+        display: flex;
+        color:rgb(90, 90, 90);
+        justify-content: center;
+        align-items: center;" [innerHTML]="'x' | feather:20" (click)="closeDialog()" data-tests-id="error-cancel-icon"></span>
+    </div>
   </p-header>
 
-  <div *ngFor="let error of store.ErrorContent">
+  <div *ngFor="let error of store.ErrorContent" style="padding: 0 0 20px 43px; font-family: 'Open Sans', sans-serif;
+  font-size: 14px;">
     {{ error.formattedErrorMessage }}
   </div>
 
   <p-footer>
-    <button mat-raised-button color="primary" (click)="closeDialog()" data-tests-id="error-cancel">
-      Cancel
+    <button mat-raised-button color="primary" style="background-color: #CF2A2A; font-size: 14px; font-family: 'Open Sans', sans-serif;"
+      (click)="closeDialog()" data-tests-id="error-cancel">
+      OK
     </button>
   </p-footer>
 </p-dialog>
diff --git a/public/src/app/error-dialog/error-dialog.component.scss b/public/src/app/error-dialog/error-dialog.component.scss
index e69de29..d0c0ae1 100644
--- a/public/src/app/error-dialog/error-dialog.component.scss
+++ b/public/src/app/error-dialog/error-dialog.component.scss
@@ -0,0 +1,18 @@
+:host /deep/ .dcae-error {
+  border-top: solid 6px #cf2a2a;
+}
+
+:host /deep/ .ui-dialog .ui-dialog-titlebar {
+  padding-top: 15px;
+  padding-left: 20px;
+  padding-right: 12px;
+  padding-bottom: 0;
+}
+
+:host /deep/ .ui-dialog-footer {
+  padding: 10px;
+}
+
+:host /deep/ .ui-dialog.ui-widget .ui-dialog-content {
+  padding-top: 10px;
+}
diff --git a/public/src/app/error-dialog/error-dialog.component.ts b/public/src/app/error-dialog/error-dialog.component.ts
index 3e7bfe0..aa4b693 100644
--- a/public/src/app/error-dialog/error-dialog.component.ts
+++ b/public/src/app/error-dialog/error-dialog.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit } from '@angular/core';
+import { Component } from '@angular/core';
 import { Store } from '../store/store';
 
 @Component({
@@ -6,11 +6,9 @@
   templateUrl: './error-dialog.component.html',
   styleUrls: ['./error-dialog.component.scss']
 })
-export class ErrorDialogComponent implements OnInit {
+export class ErrorDialogComponent {
   constructor(public store: Store) {}
 
-  ngOnInit() {}
-
   closeDialog() {
     this.store.displayErrorDialog = false;
   }
diff --git a/public/src/app/general/general.component.html b/public/src/app/general/general.component.html
index dcea57a..2d6f232 100644
--- a/public/src/app/general/general.component.html
+++ b/public/src/app/general/general.component.html
@@ -66,18 +66,18 @@
       </div>
       <select name="serviceAttached" [disabled]="this.store.isEditMode || disableVnfiList" required [(ngModel)]="newVfcmt.vfni"
         data-tests-id="vfniDdl" (ngModelChange)="onChangeVfni($event)" class="field-text" [style.background]="this.store.isEditMode || disableVnfiList ? '#ebebe4' : 'white'">
-        <option [ngValue]="null" disabled>Select VFNI</option>
+        <option [ngValue]="null" disabled>Select VNFi</option>
         <option *ngFor="let vfi of vfniList" [value]="vfi.resourceInstanceName">{{vfi.resourceInstanceName}}</option>
       </select>
     </div>
   </div>
 
   <div class="right">
-    <div style="padding: 0.7em 0.5em; padding-top: 1em; font-weight: 600;">Flow diagram</div>
+    <div style="padding: 0.5em 0; padding-top: 1em; color: #5a5a5a;">
+      Flow diagram
+    </div>
     <div>
       <app-diagram [list]="list"></app-diagram>
-      <!-- <img style="width:100%; height:100%;" src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/Flag_of_Romania.svg/1200px-Flag_of_Romania.svg.png"
-        alt="flow"> -->
     </div>
   </div>
 </form>
diff --git a/public/src/app/general/general.component.scss b/public/src/app/general/general.component.scss
index d76e1ae..0420a57 100644
--- a/public/src/app/general/general.component.scss
+++ b/public/src/app/general/general.component.scss
@@ -14,19 +14,23 @@
   box-shadow: none;
   border-radius: 0;
 }
+
 .toast-container .toast:hover {
   box-shadow: none;
 }
 
 .field {
   margin: 1em;
+  margin-left: 0;
   .field-label {
     padding-bottom: 0.5em;
+    color: #5a5a5a;
+    font-weight: normal;
+    font-size: 12px;
   }
   .required::before {
     content: '*';
     color: red;
-    padding-right: 5px;
   }
   .field-text {
     flex: 1;
@@ -34,5 +38,12 @@
     min-width: 250px;
     padding: 5px 0 5px 5px;
     margin: 0;
+    border-radius: 2px;
+    border: 1px solid #d2d2d2;
+    color: #5a5a5a;
+    input,
+    select {
+      height: 35px;
+    }
   }
 }
diff --git a/public/src/app/general/general.component.spec.ts b/public/src/app/general/general.component.spec.ts
index fb761db..7091d0f 100644
--- a/public/src/app/general/general.component.spec.ts
+++ b/public/src/app/general/general.component.spec.ts
@@ -1,55 +1,43 @@
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-import { GeneralComponent, groupingData } from './general.component';
-import { sortBy } from 'lodash';
-
-const data = [
-  {
-    name: 'avi',
-    version: '2.0'
-  },
-  {
-    name: 'stone',
-    version: '0.9'
-  },
-  {
-    name: 'avi',
-    version: '2.1'
-  },
-  {
-    name: 'vosk',
-    version: '0.1'
-  },
-  {
-    name: 'liav',
-    version: '0.5'
-  }
-];
-const sortedMatchVfcmtList = ['avi', 'liav', 'stone', 'vosk'];
-const sortedVersionInGroup = [
-  {
-    name: 'avi',
-    version: '2.1'
-  },
-  {
-    name: 'avi',
-    version: '2.0'
-  }
-];
-
-describe('GeneralComponent', () => {
-  it('should sort vfcmt by A to Z', () => {
-    const sorted = groupingData(data);
-    const vfcmtList = sortBy(Object.keys(sorted), name => name);
-    expect(vfcmtList).toEqual(sortedMatchVfcmtList);
-  });
-
-  it('should group vfcmt by name', () => {
-    const sorted = groupingData(data);
-    expect(Object.keys(sorted)).toEqual(['avi', 'stone', 'vosk', 'liav']);
-  });
-
-  it('should version array be sorted in group', () => {
-    const sorted = groupingData(data);
-    expect(Object.values(sorted)[0]).toEqual(sortedVersionInGroup);
-  });
-});
+// import {APP_BASE_HREF} from '@angular/common'; import {ComponentFixture,
+// TestBed, async} from '@angular/core/testing'; import {FormsModule} from
+// '@angular/forms'; import {BaseRequestOptions, Http, HttpModule, XHRBackend}
+// from '@angular/http'; import {MockBackend} from '@angular/http/testing';
+// import {ActivatedRoute} from '@angular/router'; import {NgSelectModule} from
+// '@ng-select/ng-select'; import {sortBy} from 'lodash'; import {ToastrModule,
+// ToastrService} from 'ngx-toastr'; import {FeatherIconsPipe} from
+// '../api/feather-pipe'; import {RestApiService} from
+// '../api/rest-api.service'; import {DiagramComponent} from
+// '../diagram/diagram.component'; import {Store} from '../store/store'; import
+// {GeneralComponent, groupingData} from './general.component'; const data = [
+// {     name: 'avi',     version: '2.0'   }, {     name: 'stone',     version:
+// '0.9'   }, {     name: 'avi',     version: '2.1'   }, {     name: 'vosk',
+// version: '0.1'   }, {     name: 'liav',     version: '0.5'   } ]; const
+// sortedMatchVfcmtList = ['avi', 'liav', 'stone', 'vosk']; const
+// sortedVersionInGroup = [   {     name: 'avi',     version: '2.1'   }, {
+// name: 'avi',     version: '2.0'   } ]; class MockActivatedRoute {   snapshot
+// = {     params: {       contextType: 'SERVICES ',       uuid:
+// 'b6f8fec0-6bf9-4c32-a3c3-1d440411862e',       version: '0.1',       mcid:
+// 'new'     },     routeConfig: {       children: {         filter: () => {}
+//    }     }   }; } describe('GeneralComponent', () => {   let component :
+// GeneralComponent;   let fixture : ComponentFixture < GeneralComponent >;
+// let backend : MockBackend;   beforeEach(async(() => {
+// TestBed.configureTestingModule({       imports: [         FormsModule,
+// NgSelectModule, HttpModule, ToastrModule.forRoot()       ],
+// declarations: [         GeneralComponent, FeatherIconsPipe, DiagramComponent
+//      ],       providers: [         RestApiService,         Store,
+// ToastrService, {           provide: ActivatedRoute,           useClass:
+// MockActivatedRoute         }, {           provide: APP_BASE_HREF,
+// useValue: '/'         },         MockBackend,         BaseRequestOptions, {
+//         provide: Http,           deps: [             MockBackend,
+// BaseRequestOptions           ],           useFactory: (backend : XHRBackend,
+// defaultOptions : BaseRequestOptions) => {             return             new
+// Http(backend, defaultOptions);           }         }       ]
+// }).compileComponents();     backend = TestBed.get(MockBackend);   }));
+// it('should sort vfcmt by A to Z', () => {     const sorted =
+// groupingData(data);     const vfcmtList = sortBy(Object.keys(sorted), name =>
+// name);     expect(vfcmtList).toEqual(sortedMatchVfcmtList);   });
+// it('should group vfcmt by name', () => {     const sorted =
+// groupingData(data);     expect(Object.keys(sorted)).toEqual(['avi', 'stone',
+// 'vosk', 'liav']);   });   it('should version array be sorted in group', () =>
+// {     const sorted = groupingData(data);
+// expect(Object.values(sorted)[0]).toEqual(sortedVersionInGroup);   }); });
diff --git a/public/src/app/general/general.component.ts b/public/src/app/general/general.component.ts
index 422d834..1b1f708 100644
--- a/public/src/app/general/general.component.ts
+++ b/public/src/app/general/general.component.ts
@@ -1,30 +1,28 @@
 import {
   Component,
+  EventEmitter,
   OnInit,
-  ViewChild,
-  ViewEncapsulation,
   Output,
-  EventEmitter
+  ViewChild,
+  ViewEncapsulation
 } from '@angular/core';
-import { RestApiService } from '../api/rest-api.service';
 import { ActivatedRoute } from '@angular/router';
-import { Store } from '../store/store';
-import { NgForm } from '@angular/forms';
-import { forkJoin } from 'rxjs/observable/forkJoin';
+import { forEach, sortBy } from 'lodash';
+import { ToastrService } from 'ngx-toastr';
 import {
-  pipe,
+  descend,
+  find,
+  findIndex,
   groupBy,
   map,
-  sort,
-  descend,
-  ascend,
+  pipe,
   prop,
-  find,
   propEq,
-  findIndex
+  sort
 } from 'ramda';
-import { sortBy, forEach } from 'lodash';
-import { ToastrService } from 'ngx-toastr';
+import { forkJoin } from 'rxjs/observable/forkJoin';
+import { RestApiService } from '../api/rest-api.service';
+import { Store } from '../store/store';
 
 export const groupingData = pipe(
   groupBy(prop('name')),
@@ -64,12 +62,6 @@
   disableVnfiList = false;
   @Output() updateCdumpEv = new EventEmitter<string>();
   @ViewChild('generalForm') generalForm;
-  // list = [
-  //   { source: 'node1dsvsdsvd', target: 'node2' },
-  //   { source: 'node3', target: 'node4' },
-  //   { source: 'node5', target: 'nodedsvsds6' },
-  //   { source: 'node7', target: 'node8' }
-  // ];
   list = [];
 
   constructor(
@@ -142,13 +134,23 @@
         .subscribe(
           response => {
             this.newVfcmt = response.vfcmt;
-            this.flowTypes.push(this.newVfcmt.flowType);
+            this.flowTypes.push(response.cdump.flowType);
+            this.newVfcmt.flowType = response.cdump.flowType;
+            this.store.flowType = response.cdump.flowType;
             this.newVfcmt.vfni = this.store.vfiName;
             this.vfniList.push({ resourceInstanceName: this.newVfcmt.vfni });
-            // this.store.cdump = response.cdump;
             this.updateCdumpEv.next(response.cdump);
             this.store.isEditMode = true;
             this.store.loader = false;
+
+            this.list = response.cdump.relations.map(item => {
+              return {
+                name1: item.name1,
+                name2: item.name2,
+                p1: item.meta.p1,
+                p2: item.meta.p2
+              };
+            });
           },
           error => {
             this.notifyError(error);
diff --git a/public/src/app/home/home.component.html b/public/src/app/home/home.component.html
index 90e82d3..8cea741 100644
--- a/public/src/app/home/home.component.html
+++ b/public/src/app/home/home.component.html
@@ -1,18 +1,19 @@
-<div class="container">
+<div class="home-container">
   <div style="display: flex;
+    padding-bottom:7px;
     justify-content: space-between;">
-    <div style="font-size: 1.7em; display: flex; align-items: center;">Monitoring</div>
+    <div style="font-size: 22px; display: flex; align-items: center;">Monitoring</div>
 
     <div style="display: flex;">
-      <button mat-icon-button [disabled]="checkCanCreate()" (click)="importScreen()">
+      <button mat-icon-button [disabled]="checkCanCreate()" style="margin-right: 10px;" data-tests-id="btn-import-mc" (click)="importScreen()">
         <span style="width: 100%;
                   height: 100%;
                   display: flex;
                   justify-content: center;
-                  align-items: center;" [innerHTML]="'download' | feather:22"></span>
+                  align-items: center;" [innerHTML]="'download' | feather:20"></span>
       </button>
 
-      <button mat-raised-button color="primary" (click)="createScreen()" data-tests-id="btn-create-mc" [disabled]="checkCanCreate()">
+      <button mat-raised-button color="primary" (click)="createScreen()" data-tests-id="btn-create-mc" class="btn-create" [disabled]="checkCanCreate()">
         Create New MC
       </button>
     </div>
@@ -21,62 +22,66 @@
   <div *ngIf="showTable===true; then thenBlock else elseBlock"></div>
 
   <ng-template #thenBlock>
-    <!-- Table -->
-    <div class="table-wrapper">
-      <div *ngIf="unavailableMonitoringComponents.length > 0" data-tests-id="unavailableArea" style="color: white; background: red; padding: 1rem; border-radius: 5px; font-weight: bold; margin: 1em 0;">
-        <div *ngFor="let item of unavailableMonitoringComponents">
-          {{item.uuid}}
-        </div>
+
+    <div *ngIf="unavailableMonitoringComponents.length > 0" data-tests-id="unavailableArea" style="color: white; background: red; padding: 1rem; border-radius: 5px; font-weight: bold; margin: 1em 0;">
+      <div *ngFor="let item of unavailableMonitoringComponents">
+        {{item.uuid}}
       </div>
-      <table class="mcTable">
-        <thead>
-          <tr data-tests-id="monitoringComponentTableHeaders">
-            <th>Monitoring Configuration</th>
-            <th>VNFI Name</th>
-            <th style="width:90px;">Version</th>
-            <th style="width:140px;">Status</th>
-            <th style="width:140px;">Last Updated by</th>
-            <th style="width:96px;">Action</th>
-          </tr>
-        </thead>
-        <tbody>
-          <tr *ngFor="let item of monitoringComponents; let i = index" on-mouseleave="hoveredIndex=null" (click)="onSelect(i)" [class.active]="i == selectedLine"
-            data-tests-id="monitoringComponentTableItems" on-mouseover="hoveredIndex=i">
-            <td color="blue">
-              <div [hidden]="checkHoverCondition(item)" data-tests-id="tableItemsMonitoringConfiguration" class="table-Monitoring-Component" (click)="editItem(item)">
-                {{item.name}}
-              </div>
-            </td>
-            <td>
-              <span pTooltip="{{item.vfiName}}" tooltipPosition="bottom" style="padding:5px;">{{item.vfiName}}</span>
-            </td>
-            <td style="width:90px;">{{item.version}}</td>
-            <td style="width:140px;">{{item.status}}</td>
-            <td style="width:140px;">{{item.lastUpdaterUserId}}</td>
-            <td style="width:80px;">
-              <div *ngIf="i==hoveredIndex" [hidden]="checkHoverCondition(item)">
-                <button mat-icon-button data-tests-id="tableItemsButtonDelete" (click)="deleteItem(item)" style="width:30px; height: 30px;">
-                  <span style="width: 100%;
-                              height: 100%;
-                              display: flex;
-                              justify-content: center;
-                              align-items: center;" [innerHTML]="'trash-2' | feather:18"></span>
-                </button>
-              </div>
-              <div *ngIf="i==hoveredIndex" [hidden]="!checkHoverCondition(item)">
-                <button mat-icon-button data-tests-id="tableItemsButtonInfo" style="width:30px; height: 30px;">
-                  <span style="width: 100%;
-                              height: 100%;
-                              display: flex;
-                              justify-content: center;
-                              align-items: center;" [innerHTML]="'info' | feather:18"></span>
-                </button>
-              </div>
-            </td>
-          </tr>
-        </tbody>
-      </table>
     </div>
+
+    <ngx-datatable data-tests-id="monitoringComponentTable" class="material" [rows]="monitoringComponents" [loadingIndicator]="loadingIndicator" [columnMode]="'flex'"
+      [headerHeight]="40" [footerHeight]="40" [limit]="10" [rowHeight]="40"(selected)="onTableSelectItem($event)"
+      [selectionType]="'single'" [selected]="selectedLine" (activate)="onTableActivate($event)">
+
+      <ngx-datatable-column name="Monitoring Configuration" prop="name" [flexGrow]="3">
+        <ng-template let-row="row" let-value="value" ngx-datatable-cell-template>
+
+          <div data-tests-id="tableItemsMonitoringConfiguration" [hidden]="checkTableItemHoverCondition(row)" (click)="editTableItem(row)"
+            class="ngx-datatable-monitoring-name">
+            <span> {{value}} </span>
+          </div>
+          <div data-tests-id="tableItemsMonitoringConfigurationNotOwner" [hidden]="!checkTableItemHoverCondition(row)">
+            <span>{{value}} </span>
+          </div>
+        </ng-template>
+
+      </ngx-datatable-column>
+      <ngx-datatable-column name="VNFI Name" prop="vfiName" [flexGrow]="3">
+        <ng-template let-value="value" ngx-datatable-cell-template>
+
+          <div pTooltip="{{value}}" tooltipPosition="bottom">{{value}}</div>
+
+        </ng-template>
+
+
+      </ngx-datatable-column>
+      <ngx-datatable-column name="Version" prop="version" [flexGrow]="1"></ngx-datatable-column>
+      <ngx-datatable-column name="Status" prop="status" [flexGrow]="2"></ngx-datatable-column>
+      <ngx-datatable-column name="Last Updated by"  prop="lastUpdaterUserId" [flexGrow]="2"></ngx-datatable-column>
+      <ngx-datatable-column name="Actions" sortable="false" prop="id"  [flexGrow]="1">
+        <ng-template let-row="row" let-rowIndex="rowIndex" ngx-datatable-cell-template >
+
+          <div *ngIf="hoveredIndex == rowIndex" style="margin-top:-5px;" >
+            <button data-tests-id="tableItemsButtonDelete" *ngIf="!checkTableItemHoverCondition(row); else elseBtnBlock" mat-icon-button
+              data-tests-id="tableItemsButtonDelete" (click)="deleteTableItem(row, rowIndex)" style="width:30px; height: 30px;">
+              <span style="width: 100%; height: 100%; display: flex; justify-content: center; align-items: center;" [innerHTML]="'trash-2' | feather:18"></span>
+            </button>
+             
+            <ng-template #elseBtnBlock>
+
+                <button data-tests-id="tableItemsButtonInfo" mat-icon-button data-tests-id="tableItemsButtonInfo" style="width:30px; height: 30px;">
+                  <span style="width: 100%; height: 100%; display: flex; justify-content: center; align-items: center;" [innerHTML]="'info' | feather:18"></span>
+                </button>
+              </ng-template>
+
+          </div>
+
+        </ng-template>
+      </ngx-datatable-column>
+
+    </ngx-datatable>
+
+
   </ng-template>
 
   <ng-template #elseBlock>
@@ -85,22 +90,21 @@
   justify-content: center;
   align-items: center;
   flex:1;">
-      <div style="font-size: 1.5em;">
+      <div style="font-size: 18px;">
         Monitoring Configuration does not Exist
       </div>
-      <div style="padding: 0.5em; padding-top: 1em;" data-tests-id="new-monitoring-title">
+      <div style="padding: 0.5em; padding-top: 1em; font-size: 13px;" data-tests-id="new-monitoring-title">
         A Monitoring Configuration (MC) was not yet created
       </div>
-      <div>
+      <div style="font-size: 13px;">
         Please create a new MC to monitor the service
       </div>
       <div class="wrapper-btn-add-mc">
         <button mat-mini-fab color="primary" (click)="createScreen()" data-tests-id="btn-fab-create-mc" [disabled]="checkCanCreate()">
           <span [innerHTML]="'plus' | feather:24"></span>
         </button>
-        <span data-tests-id="btn-span-create-mc" style="margin-top: 1rem; font-size: 1.2em; font-weight: 400;" [style.color]="checkCanCreate() ? '#ebebe4' : '#009FDB'">Add First MC</span>
+        <span data-tests-id="btn-span-create-mc" style="margin-top: 10px; font-size: 14px; " [style.color]="checkCanCreate() ? '#ebebe4' : '#009FDB'">Add First MC</span>
       </div>
     </div>
   </ng-template>
 </div>
-
diff --git a/public/src/app/home/home.component.scss b/public/src/app/home/home.component.scss
index 583705f..2217b7d 100644
--- a/public/src/app/home/home.component.scss
+++ b/public/src/app/home/home.component.scss
@@ -1,103 +1,28 @@
-.container {
+@import '~@swimlane/ngx-datatable/release/themes/material.css';
+.home-container {
   display: flex;
   flex-direction: column;
   height: 100%;
-  padding: 0.5em;
+  margin: 15px 20px;
   margin-left: 15px;
   margin-right: 15px;
   .wrapper-btn-add-mc {
-    margin-top: 3em;
+    margin-top: 46px;
     display: flex;
     flex-direction: column;
     align-items: center;
   }
-}
-
-.table-Monitoring-Component {
-  &:hover {
-    color: #009fdb;
-    text-decoration: underline;
-    cursor: pointer;
+  .btn-create {
+    width: 150px;
+    height: 36px;
   }
 }
 
-.table-wrapper {
-  display: flex;
-  justify-content: center;
-  flex: 1;
-  margin-bottom: 2em;
-  flex-direction: column;
-  display: block;
-}
-
-table.mcTable {
-  display: flex;
-  flex-flow: column;
-  height: calc(100vh - 150px);
-  width: 100%;
-  background-color: #ffffff;
-  color: #5a5a5a;
-}
-table.mcTable thead {
-  /* head takes the height it requires,
-  and it's not scaled when table.mcTable is resized */
-  flex: 0 0 auto;
-  // width: calc(100% - 17px);
-  width: 100%;
-}
-table.mcTable tbody {
-  /* body takes all the remaining available space */
-  flex: 1 1 auto;
-  display: block;
-  overflow-y: scroll;
-}
-table.mcTable tbody tr {
-  width: 100%;
-}
-
-table.mcTable thead,
-table.mcTable tbody tr {
-  display: table;
-  table-layout: fixed;
-}
-
-table.mcTable {
-  border-collapse: collapse;
-  border-spacing: 0px;
-}
-
-table.mcTable tr.active td {
-  background-color: #e6f6fb !important;
-  color: #5a5a5a;
-}
-
-table.mcTable th {
-  background: #f4f4f4;
-  color: #191919;
-  text-align: left;
-}
-
-table.mcTable tr {
-  &:hover {
-    background-color: #f8f8f8;
-    color: #5a5a5a;
-  }
-}
-
-table.mcTable table,
-table.mcTable th,
-table.mcTable td {
-  padding: 5px 10px;
-  border: 0.5px solid #d2d2d2;
-  border-bottom: none;
-  height: 40px;
-  text-overflow: ellipsis;
-  overflow: hidden;
-  white-space: nowrap;
-}
-
-table.mcTable tr:last-child {
-  border-bottom: 0.5px solid #d2d2d2;
+.my-confrim-dialog .mat-dialog-container {
+  max-width: 600px;
+  width: 500px;
+  height: 200px;
+  padding: 0;
 }
 
 /deep/ .ui-tooltip .ui-tooltip-text {
@@ -108,3 +33,46 @@
 /deep/ .ui-tooltip {
   max-width: 400px;
 }
+
+.ngx-datatable-monitoring-name {
+  &:hover {
+    color: #009fdb;
+    text-decoration: underline;
+    cursor: pointer;
+  }
+}
+
+.ngx-datatable.material .datatable-header .datatable-header-cell {
+  background: #f4f4f4;
+
+  span {
+    font-weight: bold;
+    font-size: 13px;
+    font-family: 'Open Sans', sans-serif !important;
+  }
+}
+
+.ngx-datatable .datatable-body-cell,
+.ngx-datatable .datatable-header-cell {
+  border: 0.1px solid #d2d2d2;
+}
+
+.ngx-datatable.material.single-selection .datatable-body-row.active,
+.ngx-datatable.material.single-selection
+  .datatable-body-row.active
+  .datatable-row-group,
+.ngx-datatable.material.multi-selection .datatable-body-row.active,
+.ngx-datatable.material.multi-selection
+  .datatable-body-row.active
+  .datatable-row-group,
+.ngx-datatable.material.multi-click-selection .datatable-body-row.active,
+.ngx-datatable.material.multi-click-selection
+  .datatable-body-row.active
+  .datatable-row-group {
+  background-color: #e6f6fb !important;
+  color: #5a5a5a;
+}
+
+.ngx-datatable.material {
+  box-shadow: none;
+}
diff --git a/public/src/app/home/home.component.ts b/public/src/app/home/home.component.ts
index 1c538c0..349a031 100644
--- a/public/src/app/home/home.component.ts
+++ b/public/src/app/home/home.component.ts
@@ -1,28 +1,31 @@
-import { Component } from '@angular/core';
-import { Store } from '../store/store';
-import { HostService } from '../host/host.service';
-import { ActivatedRoute, Router } from '@angular/router';
-import { RestApiService } from '../api/rest-api.service';
-import { NgIf } from '@angular/common';
-import { ConfirmPopupComponent } from '../rule-engine/confirm-popup/confirm-popup.component';
+import { ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';
 import { MatDialog } from '@angular/material';
+import { ActivatedRoute, Router } from '@angular/router';
 import { ToastrService } from 'ngx-toastr';
-import { ChangeDetectorRef } from '@angular/core';
+import { RestApiService } from '../api/rest-api.service';
+import { HostService } from '../host/host.service';
+import { ConfirmPopupComponent } from '../rule-engine/confirm-popup/confirm-popup.component';
+import { PluginPubSub } from '../sdc/plugin-pubsub';
+import { Store } from '../store/store';
+import { NgxDatatableModule } from '@swimlane/ngx-datatable';
 
 @Component({
   selector: 'app-home',
   templateUrl: './home.component.html',
-  styleUrls: ['./home.component.scss']
+  styleUrls: ['./home.component.scss'],
+  encapsulation: ViewEncapsulation.None
 })
 export class HomeComponent {
   linkToMain: string;
-  currentUserId: string;
   showTable = true;
-  selectedLine;
+  selectedLine = [];
   monitoringComponents = new Array();
   unavailableMonitoringComponents = new Array();
-  hoveredIndex = null;
+  hoveredIndex = 1;
   dialogRef;
+  deleteRow: number;
+
+  loadingIndicator = true;
 
   constructor(
     private activeRoute: ActivatedRoute,
@@ -37,14 +40,58 @@
     this.activeRoute.queryParams.subscribe(params => {
       console.log('params: %o', params);
       this.store.sdcParmas = params;
+
+      console.log('init comunication with sdc');
+      const eventsToWaitFor = [
+        'WINDOW_OUT',
+        'VERSION_CHANGE',
+        'CHECK_IN',
+        'CHECK_OUT',
+        'SUBMIT_FOR_TESTING',
+        'UNDO_CHECK_OUT'
+      ];
+      this.store.ifrmaeMessenger = new PluginPubSub(
+        this.store.sdcParmas.eventsClientId,
+        this.store.sdcParmas.parentUrl,
+        eventsToWaitFor
+      );
+      console.log('send ready to sdc');
+      this.store.ifrmaeMessenger.notify('READY');
+
+      this.store.ifrmaeMessenger.on((eventData, event) => {
+        console.log('eventData', eventData);
+        console.log('event', event);
+        if (
+          eventData.type === 'WINDOW_OUT' ||
+          eventData.type === 'CHECK_IN' ||
+          eventData.type === 'SUBMIT_FOR_TESTING'
+        ) {
+          const currentUrl = this.route.url;
+          if (currentUrl.includes('main')) {
+            if (this.store.cdumpIsDirty) {
+              this.store.displaySDCDialog = true;
+            } else {
+              this.store.ifrmaeMessenger.notify('ACTION_COMPLETED');
+            }
+          } else {
+            this.store.ifrmaeMessenger.notify('ACTION_COMPLETED');
+          }
+        } else {
+          this.store.ifrmaeMessenger.notify('ACTION_COMPLETED');
+        }
+      });
+
       this.linkToMain = `/main/${params.contextType}/${params.uuid}/${
         params.version
       }/`;
+      this.loadingIndicator = true;
+
       this._restApi.getMonitoringComponents(params).subscribe(
         response => {
           console.log('response:  ', response);
           if (response.hasOwnProperty('monitoringComponents')) {
             this.monitoringComponents = response.monitoringComponents;
+            this.loadingIndicator = false;
           }
           if (response.hasOwnProperty('unavailable')) {
             this.unavailableMonitoringComponents = response.unavailable;
@@ -83,8 +130,11 @@
     }
   }
 
-  checkHoverCondition(item: any): boolean {
+  // Monitoring Table logic
+
+  checkTableItemHoverCondition(item: any): boolean {
     if (
+      this.store.sdcParmas !== undefined &&
       this.store.sdcParmas.userId === item.lastUpdaterUserId &&
       this.store.sdcParmas.lifecycleState === 'NOT_CERTIFIED_CHECKOUT'
     ) {
@@ -94,12 +144,19 @@
     }
   }
 
-  editItem(item: any): void {
+  onTableActivate(event: any): void {
+    this.hoveredIndex = this.monitoringComponents.findIndex(
+      s => s == event.row
+    );
+    console.log('selected : ');
+  }
+
+  editTableItem(item: any): void {
     this.store.vfiName = item.vfiName;
     this.route.navigate([this.linkToMain + '/' + item.uuid]);
   }
 
-  onSelect(item: any): void {
+  onTableSelectItem(item: any): void {
     this.selectedLine = item;
     console.log('selected : ', item);
   }
@@ -107,17 +164,17 @@
   deleteEnable(item: any): boolean {
     console.log(
       'delete enable: ',
-      item.isOwner && item.Lifecycle == 'NOT_CERTIFIED_CHECKOUT'
+      item.isOwner && item.Lifecycle === 'NOT_CERTIFIED_CHECKOUT'
     );
     const { userId, lifecycleState } = this.store.sdcParmas;
     return (
-      item.lastUpdaterUserId == userId &&
-      lifecycleState == 'NOT_CERTIFIED_CHECKOUT'
+      item.lastUpdaterUserId === userId &&
+      lifecycleState === 'NOT_CERTIFIED_CHECKOUT'
     );
   }
 
-  deleteItem(item: any): void {
-    let deleteRow = this.hoveredIndex;
+  deleteTableItem(item: any, index: any): void {
+    this.deleteRow = index;
     this.dialogRef = this.dialog.open(ConfirmPopupComponent, {
       panelClass: 'my-confrim-dialog',
       disableClose: true
@@ -125,7 +182,7 @@
     this.dialogRef.afterClosed().subscribe(result => {
       // if the user want to delete
       if (result) {
-        if (item.status == 'submitted') {
+        if (item.status === 'Submitted') {
           this._restApi
             .deleteMonitoringComponentWithBlueprint(
               this.store.sdcParmas,
@@ -135,15 +192,15 @@
             )
             .subscribe(
               response => {
-                this.itemDeletedRemoveAndNotify(deleteRow);
+                this.itemDeletedRemoveAndNotify(this.deleteRow);
               },
               error => {
                 if (error.messageId === 'SVC6118') {
-                  this.monitoringComponents.splice(deleteRow, 1);
+                  this.monitoringComponents.splice(this.deleteRow, 1);
                   this.changeDetectorRef.detectChanges();
                 }
                 const errorMsg = Object.values(error.requestError) as any;
-                this.toastr.error('', errorMsg[0]);
+                this.toastr.error('', errorMsg[0].formattedErrorMessage);
               }
             );
         } else {
@@ -155,7 +212,7 @@
             )
             .subscribe(
               response => {
-                this.itemDeletedRemoveAndNotify(deleteRow);
+                this.itemDeletedRemoveAndNotify(this.deleteRow);
               },
               error => {
                 const errorMsg = Object.values(error.requestError) as any;
@@ -175,14 +232,4 @@
       'Monitoring Configuration was successfully deleted'
     );
   }
-
-  // convertFile(fileInput: any) {
-  //   // read file from input
-  //   const fileReaded = fileInput.target.files[0];
-  //   Papa.parse(fileReaded, {
-  //     complete: function(results) {
-  //       console.log('Finished:', results.data);
-  //     }
-  //   });
-  // }
 }
diff --git a/public/src/app/loader/loader.component.spec.ts b/public/src/app/loader/loader.component.spec.ts
index 7c82913..2159e0d 100644
--- a/public/src/app/loader/loader.component.spec.ts
+++ b/public/src/app/loader/loader.component.spec.ts
@@ -1,8 +1,7 @@
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
+import { ComponentFixture, TestBed, async } from '@angular/core/testing';
 import { LoaderComponent } from './loader.component';
 
-describe('LoaderComponent', () => {
+describe('DiagramComponent', () => {
   let component: LoaderComponent;
   let fixture: ComponentFixture<LoaderComponent>;
 
diff --git a/public/src/app/main/main.component.html b/public/src/app/main/main.component.html
index d54b27b..4c71a37 100644
--- a/public/src/app/main/main.component.html
+++ b/public/src/app/main/main.component.html
@@ -1,4 +1,4 @@
-<div class="container">
+<div class="main-container">
 
   <div style="padding: .25em; display: flex;
   justify-content: space-between;
@@ -6,16 +6,18 @@
     <div>
       <a (click)="goBack()" data-tests-id="btn-back-home" style="display: flex; cursor: pointer;text-decoration: none; color: #009fdb;">
         <mat-icon fontSet="fontawesome" fontIcon="fa-angle-left" style="height: 17px; width: 12px; font-size: 17px;"></mat-icon>
-        <span style="display: flex; align-items: center;">Back to Monitoring</span>
+        <span style="display: flex; align-items: center; font-size: 12px;">
+          Back to Monitoring
+        </span>
       </a>
       <div style="margin:10px 0;" data-tests-id="new-monitorying-titie">
-        <span style="font-size: 2em;" *ngIf='store.generalflow === "new"'>
+        <span style="font-size: 22px;" *ngIf='store.generalflow === "new"'>
           New
         </span>
-        <span style="font-size: 2em;" *ngIf='store.generalflow === "import"'>
+        <span style="font-size: 22px;" *ngIf='store.generalflow === "import"'>
           Import
         </span>
-        <span style="font-size: 2em;">
+        <span style="font-size: 22px;">
           Monitoring Configuration
         </span>
       </div>
@@ -24,7 +26,9 @@
     <div>
       <div *ngIf='store.generalflow === "new" || store.generalflow === "edit"'>
         <button *ngIf="!this.store.isEditMode" mat-raised-button color="primary" [disabled]="this.generalComponent.generalForm.invalid"
-          data-tests-id="createMonitoring" (click)="createMC(this.generalComponent.generalForm.value)">Create</button>
+          style="width: 95px;height: 36px;" data-tests-id="createMonitoring" (click)="createMC(this.generalComponent.generalForm.value)">
+          Create
+        </button>
 
         <div *ngIf="this.store.isEditMode" style="display: flex;">
           <button mat-icon-button (click)="saveCDUMP()" [disabled]="!store.cdumpIsDirty">
@@ -35,12 +39,12 @@
             justify-content: center;
             align-items: center;" [innerHTML]="'save' | feather:22"></span>
           </button>
-          <button mat-raised-button color="primary" (click)="saveAndCreateBlueprint()">Submit</button>
+          <button mat-raised-button color="primary" style="width: 95px; height: 36px; border-radius: 2px;" (click)="saveAndCreateBlueprint()">Submit</button>
         </div>
       </div>
       <div *ngIf='store.generalflow === "import"'>
         <button mat-raised-button color="primary" (click)="importMC(this.generalComponent.newVfcmt)" [disabled]="this.generalComponent.generalForm.invalid"
-          data-tests-id="importMonitoring">Import</button>
+          data-tests-id="importMonitoring" style="width: 95px;height: 36px;">Import</button>
       </div>
     </div>
   </div>
@@ -53,7 +57,7 @@
           <app-general (updateCdumpEv)="updateCdump($event)"></app-general>
         </div>
       </p-tabPanel>
-      <p-tabPanel *ngFor="let item of nodes" [header]="item.name">
+      <p-tabPanel *ngFor="let item of nodes;" [header]="item.name">
         <app-rule-frame [tabName]="item.name"></app-rule-frame>
       </p-tabPanel>
     </p-tabView>
diff --git a/public/src/app/main/main.component.scss b/public/src/app/main/main.component.scss
index 402a56a..47f1bd9 100644
--- a/public/src/app/main/main.component.scss
+++ b/public/src/app/main/main.component.scss
@@ -1,7 +1,6 @@
-.container {
+.main-container {
   display: flex;
-  flex-direction: column;
-  // height: 100%;
+  flex-direction: column; // height: 100%;
   margin: 1em;
 }
 
@@ -16,11 +15,12 @@
 
 .ui-tabview .ui-tabview-nav li {
   margin: 0;
+  border-radius: 0;
 }
 
 .ui-tabview .ui-tabview-nav li.ui-tabview-selected {
   color: #009fdb;
-  border-top: 4px solid #009fdb;
+  border-top: 2px solid #009fdb;
   border-bottom: none;
 }
 
diff --git a/public/src/app/main/main.component.ts b/public/src/app/main/main.component.ts
index fdbb077..a3f2271 100644
--- a/public/src/app/main/main.component.ts
+++ b/public/src/app/main/main.component.ts
@@ -1,12 +1,11 @@
-import { Component, ViewEncapsulation, ViewChild } from '@angular/core';
-import { ActivatedRoute } from '@angular/router';
 import { Location } from '@angular/common';
-import { RestApiService } from '../api/rest-api.service';
-import { Store } from '../store/store';
-import { RuleFrameComponent } from '../rule-frame/rule-frame.component';
-import { GeneralComponent } from '../general/general.component';
+import { Component, ViewChild, ViewEncapsulation } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
 import { ToastrService } from 'ngx-toastr';
-import { forkJoin } from 'rxjs/observable/forkJoin';
+import { RestApiService } from '../api/rest-api.service';
+import { GeneralComponent } from '../general/general.component';
+import { RuleEngineApiService } from '../rule-engine/api/rule-engine-api.service';
+import { Store } from '../store/store';
 
 @Component({
   selector: 'app-main',
@@ -18,11 +17,13 @@
   cdump;
   nodes = [];
   @ViewChild(GeneralComponent) generalComponent: GeneralComponent;
-  // @ViewChildren(RuleFrameComponent) ruleFrameRef: QueryList<RuleFrameComponent>;
+  // @ViewChildren(RuleFrameComponent) ruleFrameRef:
+  // QueryList<RuleFrameComponent>;
 
   constructor(
     private route: ActivatedRoute,
     private restApi: RestApiService,
+    private _ruleApi: RuleEngineApiService,
     private toastr: ToastrService,
     public store: Store,
     private location: Location
@@ -39,6 +40,8 @@
   createMC(params) {
     console.log('newVfcmt: %o', params);
     this.store.loader = true;
+    this.store.vfiName = params.serviceAttached;
+    this.store.flowType = 'default';
     this.restApi
       .createNewVFCMT({
         name: params.name,
@@ -55,6 +58,7 @@
           this.store.mcUuid = success.vfcmt.uuid;
           console.log(this.cleanProperty(success));
           this.store.cdump = success.cdump;
+          this.diagramRelationsFromCdump(success);
           this.nodes = this.store.cdump.nodes;
           this.store.setTabsProperties(this.nodes);
           this.setDataFromMapToRuleEngine(success.cdump);
@@ -70,6 +74,17 @@
       );
   }
 
+  private diagramRelationsFromCdump(success: any) {
+    this.generalComponent.list = success.cdump.relations.map(item => {
+      return {
+        name1: item.name1,
+        name2: item.name2,
+        p1: item.meta.p1,
+        p2: item.meta.p2
+      };
+    });
+  }
+
   updateCdump(cdump) {
     this.store.cdump = cdump;
     this.nodes = this.store.cdump.nodes;
@@ -81,6 +96,8 @@
     console.log('importVfcmt: %o', params);
     this.generalComponent.importCompleted = true;
     this.store.loader = true;
+    this.store.vfiName = params.serviceAttached;
+    this.store.flowType = params.flowType;
     this.restApi
       .importVFCMT({
         name: params.name,
@@ -96,11 +113,13 @@
       .subscribe(
         success => {
           console.log(success);
+
           this.location.path();
           // this.location.go();
           this.store.mcUuid = success.vfcmt.uuid;
           console.log(this.cleanProperty(success));
           this.store.cdump = success.cdump;
+          this.diagramRelationsFromCdump(success);
           this.nodes = this.store.cdump.nodes;
           this.store.setTabsProperties(this.nodes);
           this.setDataFromMapToRuleEngine(success.cdump);
@@ -119,12 +138,9 @@
 
   setDataFromMapToRuleEngine(cdump) {
     this.store.tabParmasForRule = cdump.nodes
-      .filter(x => x.name.includes('map'))
+      .filter(x => x.name.toLowerCase().includes('map'))
       .map(y => {
-        return {
-          name: y.name,
-          nid: y.nid
-        };
+        return { name: y.name, nid: y.nid };
       });
   }
 
@@ -139,7 +155,6 @@
   }
 
   saveCDUMP() {
-    debugger;
     this.store.loader = true;
     this.restApi
       .saveMonitoringComponent({
@@ -167,7 +182,6 @@
   }
 
   saveAndCreateBlueprint() {
-    debugger;
     this.store.loader = true;
     if (this.store.cdumpIsDirty) {
       this.restApi
@@ -210,6 +224,7 @@
       .subscribe(
         success => {
           this.store.loader = false;
+
           this.toastr.success('', 'Save succeeded');
         },
         error => {
@@ -223,6 +238,7 @@
   }
 
   handleChange(e) {
+    this._ruleApi.callUpdateTabIndex(e.index - 1);
     this.store.setTabIndex(e.index - 1);
   }
 }
diff --git a/public/src/app/rule-engine/action-list/action-list.component.html b/public/src/app/rule-engine/action-list/action-list.component.html
index e7879b7..1ee74df 100644
--- a/public/src/app/rule-engine/action-list/action-list.component.html
+++ b/public/src/app/rule-engine/action-list/action-list.component.html
@@ -1,10 +1,10 @@
 <form #actionListFrm="ngForm" class="wrapper" data-tests-id="popupRuleEditor">
   <div class="header">
-    <div style="display: flex; justify-content: flex-end; align-items: center;">
+    <div style="display: flex; justify-content: flex-end; align-items: center;     margin-left: 20px;">
       <a (click)="closeDialog()" data-tests-id="btnBackRule" style="cursor: pointer;text-decoration: none; color: #009fdb;">
         <mat-icon fontSet="fontawesome" fontIcon="fa-angle-left" style="height: 22px; width: 22px; font-size: 22px; padding-right: 20px;"></mat-icon>
       </a>
-      <span style="font-size: 18px;">New Rule Editor</span>
+      <span style="font-size: 18px;">{{title}}</span>
     </div>
 
     <div style="display: flex; justify-content: flex-end; align-items: center; padding: 10px;">
@@ -17,7 +17,7 @@
           align-items: center;" [innerHTML]="'save' | feather:22"></span>
       </button>
 
-      <button mat-raised-button [disabled]="actions.length === 0" style="height: 35px;     margin-left: 20px;" color="primary" data-tests-id="btnDone"
+      <button mat-raised-button [disabled]="actions.length === 0" style="height: 35px;     margin-left: 10px;" color="primary" data-tests-id="btnDone"
         (click)="saveAndDone()">
         Done
       </button>
@@ -62,18 +62,24 @@
       <div style="display: flex;">
         <select [(ngModel)]="selectedAction" name="selectedAction" style="height: 2rem; width: 150px; margin-right: 1rem;" data-tests-id="selectAction">
           <option [ngValue]="null" disabled>Select Action</option>
+          
           <option value="copy">Copy</option>
           <option value="concat">Concat</option>
           <option value="map">Map</option>
           <option value="date formatter">Date Formatter</option>
+          <option value="log text">Log Text</option>
+          <option value="log event">Log Event</option>
+          <option value="replace text">Replace Text</option>
+          <option value="clear">Clear</option>
+
         </select>
 
         <div style="display: flex; align-items: center;">
-          <button mat-mini-fab color="primary" style="height: 24px; width: 24px; display:flex; justify-content: center;" (click)="addAction2list(selectedAction)"
+          <button mat-mini-fab color="primary" style="height: 16px; width: 16px; display:flex; justify-content: center;" (click)="addAction2list(selectedAction)"
             data-tests-id="btnAddAction">
-            <span style="display: flex; justify-content: center; align-items: center" [innerHTML]="'plus' | feather:16"></span>
+            <span style="display: flex; justify-content: center; align-items: center" [innerHTML]="'plus' | feather:12"></span>
           </button>
-          <span style="color: #009FDB; display: flex; justify-content: center; padding-left: 10px">Add Action</span>
+          <span style="color: #009FDB; display: flex; justify-content: center; padding-left: 6px">Add Action</span>
         </div>
 
       </div>
diff --git a/public/src/app/rule-engine/action-list/action-list.component.scss b/public/src/app/rule-engine/action-list/action-list.component.scss
index 39b9dce..67fa048 100644
--- a/public/src/app/rule-engine/action-list/action-list.component.scss
+++ b/public/src/app/rule-engine/action-list/action-list.component.scss
@@ -9,7 +9,9 @@
     justify-content: space-between;
     align-items: center;
     color: #191919;
-    border-bottom: 2px solid #d2d2d2;
+    border-bottom: 1px solid #d2d2d2;
+    padding-bottom: 0px;
+    margin: 0;
     // padding: 0.4rem 1rem;
   }
 
diff --git a/public/src/app/rule-engine/action-list/action-list.component.ts b/public/src/app/rule-engine/action-list/action-list.component.ts
index 40ff46d..27a74d4 100644
--- a/public/src/app/rule-engine/action-list/action-list.component.ts
+++ b/public/src/app/rule-engine/action-list/action-list.component.ts
@@ -1,20 +1,16 @@
 import {
-  Component,
-  Inject,
-  ViewChildren,
-  QueryList,
   AfterViewInit,
+  Component,
+  QueryList,
   ViewChild,
-  Input
+  ViewChildren
 } from '@angular/core';
-import { RuleEngineApiService } from '../api/rule-engine-api.service';
-import { Subject } from 'rxjs/Subject';
-import { v1 as uuid } from 'uuid';
-import { environment } from '../../../environments/environment';
-import { ActionComponent } from '../action/action.component';
-import { cloneDeep } from 'lodash';
-import { Store } from '../../store/store';
 import { NgForm } from '@angular/forms';
+import { cloneDeep } from 'lodash';
+import { v1 as uuid } from 'uuid';
+import { Store } from '../../store/store';
+import { ActionComponent } from '../action/action.component';
+import { RuleEngineApiService } from '../api/rule-engine-api.service';
 
 @Component({
   selector: 'app-action-list',
@@ -22,6 +18,7 @@
   styleUrls: ['./action-list.component.scss']
 })
 export class ActionListComponent implements AfterViewInit {
+  title = '';
   error: Array<string>;
   condition: any;
   eventType: string;
@@ -53,8 +50,10 @@
         this.condition = data.item.condition;
         this.uid = data.item.uid;
         this.description = data.item.description;
+        this.title = this.description + ' - Rule Editor';
         this.ifStatement = this.condition == null ? false : true;
       } else {
+        this.title = 'New Rule Editor';
         this.actions = new Array();
         this.backupActionForCancel = new Array();
         this.condition = null;
@@ -97,12 +96,24 @@
           value: '',
           regex: '',
           state: 'closed',
-          values: [{ value: '' }, { value: '' }]
+          values: [
+            {
+              value: ''
+            },
+            {
+              value: ''
+            }
+          ]
         },
         actionType: this.selectedAction,
         target: '',
         map: {
-          values: [{ key: '', value: '' }],
+          values: [
+            {
+              key: '',
+              value: ''
+            }
+          ],
           haveDefault: false,
           default: ''
         },
@@ -111,6 +122,18 @@
           toFormat: '',
           fromTimezone: '',
           toTimezone: ''
+        },
+        replaceText: {
+          find: '',
+          replace: ''
+        },
+        logText: {
+          name: '',
+          level: '',
+          text: ''
+        },
+        logEvent: {
+          title: ''
         }
       });
     }
@@ -162,7 +185,10 @@
               ? item.target
               : item.selectedNode.id,
         map: item.map,
-        dateFormatter: item.dateFormatter
+        dateFormatter: item.dateFormatter,
+        replaceText: item.replaceText,
+        logText: item.logText,
+        logEvent: item.logEvent
       };
     });
     let conditionData2server = null;
@@ -178,6 +204,7 @@
     return {
       version: this.version,
       eventType: this.eventType,
+      notifyId: this.store.notifyIdValue,
       uid: this.uid,
       description: this.description,
       actions: actionSetData,
@@ -225,12 +252,12 @@
     const actionComp = this.actionsRef.toArray();
     const filterInvalidActions = actionComp.filter(comp => {
       return (
-        comp.fromInstance.fromFrm.invalid ||
-        comp.targetInstance.targetFrm.invalid ||
-        comp.actionFrm.invalid
+        // (comp.fromInstance && comp.fromInstance.fromFrm.invalid) ||
+        // (comp.targetInstance && comp.targetInstance.targetFrm.invalid) ||
+        comp.actionFrm && comp.actionFrm.invalid
       );
     });
-    if (this.actionListFrm.valid && filterInvalidActions.length === 0) {
+    if (this.actionListFrm.valid && filterInvalidActions.length == 0) {
       const data = this.prepareDataToSaveRule();
       this.store.loader = true;
       this._ruleApi.modifyRule(data).subscribe(
@@ -249,11 +276,10 @@
         }
       );
     } else {
-      // scroll to first invalid element
-      const elId = filterInvalidActions[0].action.id;
-      const el = document.getElementById(elId as string);
-      const label = el.children.item(0) as HTMLElement;
-      el.scrollIntoView();
+      // scroll to first invalid element const elId =
+      // filterInvalidActions[0].action.id; const el = document.getElementById(elId as
+      // string); const label = el.children.item(0) as HTMLElement;
+      // el.scrollIntoView();
     }
   }
 
diff --git a/public/src/app/rule-engine/action/action.component.html b/public/src/app/rule-engine/action/action.component.html
index b41ab82..250af34 100644
--- a/public/src/app/rule-engine/action/action.component.html
+++ b/public/src/app/rule-engine/action/action.component.html
@@ -1,56 +1,151 @@
 <form #actionFrm="ngForm" class="conatiner" id="{{action.id}}" (mouseover)="changeStyle($event)" (mouseout)="changeStyle($event)">
   <div>
+
     <div class="center-content">
       <!-- type info -->
       <div class="action-info" [ngClass]="highlight">
         {{action.actionType | uppercase}}
       </div>
+
       <!-- from component -->
-      <app-from #from style="width: 100%" [actionType]="action.actionType" (onFromChange)="updateFrom($event)"></app-from>
+      <app-from [hidden]="action.actionType === 'log event' || action.actionType === 'log text'" class="center-content-item" #from
+        [actionType]="action.actionType" (onFromChange)="updateFrom($event)"></app-from>
+
       <!-- target component -->
-      <app-target #target style="width: 100%" (onTargetChange)="updateTarget($event)" [nodes]="action.nodes">
+      <app-target [hidden]="action.actionType === 'clear' || action.actionType === 'replace text' || action.actionType === 'log text' || action.actionType === 'log event'"
+        #target style="width: 100%" (onTargetChange)="updateTarget($event)" [nodes]="action.nodes">
       </app-target>
+
+      <!-- log Event -->
+      <div *ngIf="action.actionType === 'log event'" class="center-content-item">
+        <div class="from">
+          <div class="from-container">
+            <div style="display: flex; align-items: center; width: 100%;" class="label">
+              <span class="label" style="padding: 0 5px; width: 100px;">Title</span>
+              <input required class="input-text" data-tests-id="InputLogTitle" ngModel name="title" [(ngModel)]="action.logEvent.title"
+                type="text" placeholder="The title for the log entry">
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <!-- log Text -->
+      <div *ngIf="action.actionType === 'log text'" class="center-content-item">
+        <div class="from">
+          <div class="from-container">
+            <div style="display: flex; align-items: center; width: 100%;" class="label">
+              <span class="label" style="padding: 0 5px; width: 100px;">Log Text</span>
+              <input required class="input-text" data-tests-id="InputLogText" ngModel name="logText" [(ngModel)]="action.logText.text"
+                type="text" placeholder="The title for the log entry">
+            </div>
+          </div>
+        </div>
+      </div>
+
     </div>
 
-    <!-- dateFormatter -->
-    <div *ngIf="action.actionType === 'date formatter'" style="display: flex; flex-direction: column; margin: 1em; align-items: flex-end;">
-      <div style="display: flex; margin: 0.5em 0;">
-        <div class="from">
-          <div class="from-conatiner">
-            <div style="display: flex; align-items: center;" class="label">
-              <span class="label" style="padding: 0 5px; width: 100px;">From Format</span>
-              <input class="input-text" ngModel required name="fromFormat" [(ngModel)]="action.dateFormatter.fromFormat" type="text">
+      <!-- dateFormatter -->
+      <div *ngIf="action.actionType === 'date formatter'" style="flex-direction: column; margin-left: 156px; align-items: flex-end;">
+          <div style="display: flex; margin: 0.5em 0; padding-left: 6px;">
+            <div class="from" style="width:50%;">
+              <div class="from-container">
+                <div style="display: flex; align-items: center; width: 100%;" class="label">
+                  <span class="label" style="padding: 0 5px; width: 100px;">From Format</span>
+                  <input data-tests-id="InputFromFormat" class="input-text" ngModel required name="fromFormat" [(ngModel)]="action.dateFormatter.fromFormat" type="text">
+                </div>
+              </div>
+            </div>
+            <div class="from"  style="width:50%; padding: 0;">
+              <div class="from-container">
+                <div style="display: flex; align-items: center; width: 100%;" class="label">
+                  <span class="label" style="padding: 0 5px; width: 100px;">To Format</span>
+                  <input data-tests-id="InputToFormat" class="input-text" ngModel required name="toFormat" [(ngModel)]="action.dateFormatter.toFormat" type="text">
+                </div>
+              </div>
+            </div>
+          </div>
+    
+          <div style="display: flex; margin: 0.5em 0; padding-left: 6px;">
+            <div class="from" style="width:50%;">
+              <div class="from-container">
+                <div style="display: flex; align-items: center; width: 100%;" class="label">
+                  <span class="label" style="padding: 0 5px; width: 132px;">From Time-zone</span>
+                  <input class="input-text" data-tests-id="InputFromTimezone" ngModel required name="fromTimezone" [(ngModel)]="action.dateFormatter.fromTimezone" type="text">
+                </div>
+              </div>
+            </div>
+            <div class="from" style="width:50%; padding: 0;">
+              <div class="from-container">
+                <div style="display: flex; align-items: center; width: 100%;" class="label">
+                  <span class="label" style="padding: 0 5px; width: 100px;">To Time-zone</span>
+                  <input class="input-text" data-tests-id="InputToTimezone" ngModel required name="toTimezone" [(ngModel)]="action.dateFormatter.toTimezone" type="text">
+                </div>
+              </div>
             </div>
           </div>
         </div>
-        <div class="from">
-          <div class="from-conatiner">
-            <div style="display: flex; align-items: center;" class="label">
-              <span class="label" style="padding: 0 5px; width: 100px;">To Format</span>
-              <input class="input-text" ngModel required name="toFormat" [(ngModel)]="action.dateFormatter.toFormat" type="text">
+
+    <!-- replace text -->
+    <div *ngIf="action.actionType === 'replace text'" class="action-container" style="flex-direction: row; margin-left: 152px; padding: 0 0.8em;">
+
+      <div class="action-item">
+        <div class="from" style="width:100%;">
+          <div class="from-container" display="padding:0;">
+
+            <div class="label" style="width: 100%;">
+              <span class="label" style="padding: 0 5px; width: 100px;">Find what</span>
+              <input data-tests-id="InputFindWhat" class="input-text" ngModel required name="findWhat" [(ngModel)]="action.replaceText.find"
+                type="text" placeholder="Find text">
+            </div>
+
+          </div>
+        </div>
+
+      </div>
+
+      <div class="action-item">
+        <div class="from" style="width: 100%; padding: 0;">
+          <div class="from-container">
+
+            <div class="label" style="width: 100%;">
+              <span class="label" style="padding: 0 5px; width: 100px;">Replace with</span>
+              <input data-tests-id="InputReplaceWith" class="input-text" ngModel required name="replaceWith" [(ngModel)]="action.replaceText.replace"
+                type="text" placeholder="Replace with text">
+            </div>
+
+          </div>
+        </div>
+
+      </div>
+    </div>
+
+    <!-- log text -->
+    <div *ngIf="action.actionType === 'log text'" class="action-container" style="flex-direction: row; margin-left: 152px; padding: 0 0.8em;">
+
+      <div class="action-item">
+        <div class="from" style="width: 100%;">
+          <div class="from-container" display="padding:0;">
+            <div class="label" style="width: 100%;">
+              <span class="label" style="padding: 0 5px; width: 100px;">Log Name</span>
+              <input class="input-text" data-tests-id="InputLogName" ngModel name="logName" [(ngModel)]="action.logText.name"
+                type="text" placeholder="Enter log name">
             </div>
           </div>
         </div>
       </div>
 
-      <div style="display: flex; margin: 0.5em 0;">
-        <div class="from">
-          <div class="from-conatiner">
-            <div style="display: flex; align-items: center;" class="label">
-              <span class="label" style="padding: 0 5px; width: 100px;">From Time-zone</span>
-              <input class="input-text" ngModel required name="fromTimezone" [(ngModel)]="action.dateFormatter.fromTimezone" type="text">
-            </div>
-          </div>
-        </div>
-        <div class="from">
-          <div class="from-conatiner">
-            <div style="display: flex; align-items: center;" class="label">
-              <span class="label" style="padding: 0 5px; width: 100px;">To Time-zone</span>
-              <input class="input-text" ngModel required name="toTimezone" [(ngModel)]="action.dateFormatter.toTimezone" type="text">
+      <div class="action-item">
+        <div class="from" style="width: 100%; padding: 0;">
+          <div class="from-container">
+            <div class="label" style="width: 100%;">
+              <span class="label" style="padding: 0 5px; width: 100px;">Log Level</span>
+              <input class="input-text" data-tests-id="InputLogLevel" ngModel required name="logLevel" [(ngModel)]="action.logText.level"
+                type="text" placeholder="Text to log">
             </div>
           </div>
         </div>
       </div>
+
     </div>
 
     <!-- Map -->
@@ -90,8 +185,8 @@
               <input [(ngModel)]="item.value" ngModel required name="mapValue[{{index}}]" data-tests-id="value" type="text" style="width:97%; height: 100%;border: none; padding:0 5px;">
             </th>
             <th style="height: 30px; display: flex; align-items: baseline;">
-              <button mat-icon-button [ngStyle]="hoveredIndex === index ? {'opacity':'1'} : {'opacity':'0'}" class="button-remove" (click)="removeMapRow(index)"
-                *ngIf="action.map.values.length > 1" style="height: 24px; width: 24px; display:flex; box-shadow: none;">
+              <button mat-icon-button data-tests-id="btn-remove-row" [ngStyle]="hoveredIndex === index ? {'opacity':'1'} : {'opacity':'0'}"
+                class="button-remove" (click)="removeMapRow(index)" *ngIf="action.map.values.length > 1" style="height: 24px; width: 24px; display:flex; box-shadow: none;">
                 <mat-icon class="md-24">delete</mat-icon>
               </button>
             </th>
@@ -102,8 +197,9 @@
 
       <div style="display:flex; justify-content: space-between;">
         <div style="display: flex; align-items: center;">
-          <button mat-mini-fab color="primary" (click)="addMapRow()" style="height: 24px; width: 24px; display:flex; box-shadow: none;">
-            <mat-icon>add</mat-icon>
+          <button mat-mini-fab color="primary" (click)="addMapRow()" data-tests-id="btn-add-row" style="height: 16px; width: 16px; display:flex; box-shadow: none;">
+            <span style="padding-left: 2px; display: flex; justify-content: center; align-items: center" [innerHTML]="'plus' | feather:12"></span>
+            <!-- <mat-icon>add</mat-icon> -->
           </button>
           <span style="color: #009FDB; display: flex; justify-content: center; padding-left: 6px">Add Row</span>
         </div>
diff --git a/public/src/app/rule-engine/action/action.component.scss b/public/src/app/rule-engine/action/action.component.scss
index f903db4..fc36380 100644
--- a/public/src/app/rule-engine/action/action.component.scss
+++ b/public/src/app/rule-engine/action/action.component.scss
@@ -4,7 +4,7 @@
   width: 100%;
   height: 100%;
   justify-content: space-between;
-  margin: 10px 0;
+  margin-top: 10px;
   .black {
     color: black;
   }
@@ -25,9 +25,12 @@
       justify-content: center;
       min-width: 142px;
     }
+    .center-content-item {
+      width: 100%;
+    }
   }
   .map-container {
-    padding-left: 115px;
+    padding-left: 172px;
     .default {
       display: flex;
       width: 100%;
@@ -82,7 +85,7 @@
   display: flex;
   flex-direction: column;
   padding: 0 10px;
-  .from-conatiner {
+  .from-container {
     display: flex;
     flex-direction: column;
     align-items: flex-start;
@@ -114,3 +117,17 @@
     color: #009fdb;
   }
 }
+
+.action-container {
+  display: flex;
+  flex-direction: column;
+  align-items: flex-end;
+}
+.action-item {
+  width: 100%;
+  margin-top: 0.5em;
+}
+.label .action-item-label {
+  padding: 0 5px;
+  width: 110px;
+}
diff --git a/public/src/app/rule-engine/action/action.component.ts b/public/src/app/rule-engine/action/action.component.ts
index 9c7023f..1a62e1a 100644
--- a/public/src/app/rule-engine/action/action.component.ts
+++ b/public/src/app/rule-engine/action/action.component.ts
@@ -27,9 +27,12 @@
     if (this.action.from !== '') {
       console.log('Action %o', this.action);
       this.fromInstance.updateMode(this.action.from);
+    }
+    if (this.action.target !== '') {
       this.targetInstance.updateMode(this.action);
     }
   }
+
   updateFrom(data) {
     this.action.from = data;
   }
diff --git a/public/src/app/rule-engine/api/rule-engine-api.service.spec.ts b/public/src/app/rule-engine/api/rule-engine-api.service.spec.ts
deleted file mode 100644
index e15535b..0000000
--- a/public/src/app/rule-engine/api/rule-engine-api.service.spec.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { TestBed, inject } from '@angular/core/testing';
-import { HttpModule } from '@angular/http';
-import { RuleEngineApiService } from './rule-engine-api.service';
-
-describe('RuleEngineApiService', () => {
-  beforeEach(() => {
-    TestBed.configureTestingModule({
-      imports: [HttpModule],
-      providers: [RuleEngineApiService]
-    });
-  });
-
-  it(
-    'should be created',
-    inject([RuleEngineApiService], (service: RuleEngineApiService) => {
-      expect(service).toBeTruthy();
-    })
-  );
-});
diff --git a/public/src/app/rule-engine/api/rule-engine-api.service.ts b/public/src/app/rule-engine/api/rule-engine-api.service.ts
index 0d7ab5e..7bf5e18 100644
--- a/public/src/app/rule-engine/api/rule-engine-api.service.ts
+++ b/public/src/app/rule-engine/api/rule-engine-api.service.ts
@@ -1,17 +1,17 @@
-import { Injectable, EventEmitter } from '@angular/core';
+import { Injectable } from '@angular/core';
 import {
-  Http,
-  Response,
   Headers,
+  Http,
   RequestOptions,
+  Response,
   URLSearchParams
 } from '@angular/http';
-import { Observable, Subject } from 'rxjs/Rx';
+import 'rxjs/add/operator/catch';
 // Import RxJs required methods
 import 'rxjs/add/operator/map';
-import 'rxjs/add/operator/catch';
-import { environment } from '../../../environments/environment';
+import { Observable, Subject } from 'rxjs/Rx';
 import { v4 as uuid } from 'uuid';
+import { environment } from '../../../environments/environment';
 
 @Injectable()
 export class RuleEngineApiService {
@@ -25,6 +25,7 @@
   flowType: string;
   editorData: Subject<any> = new Subject();
   updateVersionLock: Subject<any> = new Subject();
+  tabIndex: Subject<any> = new Subject();
 
   constructor(private http: Http) {
     this.baseUrl = `${environment.apiBaseUrl}/rule-editor`;
@@ -108,16 +109,35 @@
       });
   }
 
-  translate() {
-    const url = `${this.baseUrl}/rule/translate/${this.vfcmtUuid}/${
-      this.dcaeCompName
-    }/${this.nid}/${this.configParam}`;
+  translate(nofityId) {
+    const url = `${this.baseUrl}/rule/translate`;
+    const params = {
+      vfcmtUuid: this.vfcmtUuid,
+      dcaeCompLabel: this.dcaeCompName,
+      nid: this.nid,
+      configParam: this.configParam,
+      flowType: this.flowType,
+      notifyId: nofityId
+    };
+    this.options.headers.set('X-ECOMP-RequestID', uuid());
+    // const params = new URLSearchParams(); params.append('flowType',
+    // this.flowType); const options = {   ...this.options,   params: params };
+    return this.http
+      .post(url, params, this.options)
+      .map(response => response.json())
+      .catch((error: any) => {
+        return Observable.throw(error.json().requestError || 'Server error');
+      });
+  }
+
+  generateMappingRulesFileName(dcaeCompLabel, nid, vfcmtUuid) {
+    const url = `${
+      this.baseUrl
+    }/getExistingRuleTargets/${vfcmtUuid}/${dcaeCompLabel}/${nid}`;
     this.options.headers.set('X-ECOMP-RequestID', uuid());
     const params = new URLSearchParams();
-    params.append('flowType', this.flowType);
-    const options = { ...this.options, params: params };
     return this.http
-      .get(url, options)
+      .get(url, this.options)
       .map(response => response.json())
       .catch((error: any) => {
         return Observable.throw(error.json().requestError || 'Server error');
@@ -131,4 +151,8 @@
   callUpdateVersionLock() {
     this.updateVersionLock.next();
   }
+
+  callUpdateTabIndex(index) {
+    this.tabIndex.next(index);
+  }
 }
diff --git a/public/src/app/rule-engine/condition/condition.component.html b/public/src/app/rule-engine/condition/condition.component.html
index a441f55..0ff244b 100644
--- a/public/src/app/rule-engine/condition/condition.component.html
+++ b/public/src/app/rule-engine/condition/condition.component.html
@@ -18,7 +18,7 @@
           <div style="display: flex; margin-left: auto;">
 
             <div style="display: flex; align-items: center; padding: 0 25px;">
-              <button mat-mini-fab color="primary" (click)="addConditional(tree, node)" style="height: 24px; width: 24px; display:flex; box-shadow: none;">
+              <button mat-mini-fab color="primary" data-tests-id="addCondition" (click)="addConditional(tree, node)" style="height: 24px; width: 24px; display:flex; box-shadow: none;">
                 <mat-icon class="material-icons md-18">add</mat-icon>
               </button>
               <span class="btn-label">Add Condition
@@ -36,7 +36,7 @@
             </div>
 
             <div style="display: flex; align-items: center; padding: 0 5px; background: #FFFFFF;">
-              <button mat-icon-button (click)="removeConditional(tree, node)" class="button-remove">
+              <button data-tests-id="removeConditionNode" mat-icon-button (click)="removeConditional(tree, node)" class="button-remove">
                 <mat-icon class="md-24">delete</mat-icon>
               </button>
             </div>
@@ -77,7 +77,7 @@
           </div>
           <!-- remove button -->
           <div class="show-delete">
-            <button mat-icon-button (click)="removeConditional(tree, node)" class="button-remove">
+            <button mat-icon-button data-tests-id="RemoveCondition" (click)="removeConditional(tree, node)" class="button-remove">
               <mat-icon class="md-24">delete</mat-icon>
             </button>
           </div>
diff --git a/public/src/app/rule-engine/condition/condition.component.spec.ts b/public/src/app/rule-engine/condition/condition.component.spec.ts
deleted file mode 100644
index bb0d38a..0000000
--- a/public/src/app/rule-engine/condition/condition.component.spec.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-import { By } from '@angular/platform-browser';
-import { DebugElement } from '@angular/core';
-import { FormsModule } from '@angular/forms';
-import { HttpModule } from '@angular/http';
-import {
-  MatDialogModule,
-  MatButtonModule,
-  MatIconModule,
-  MatDialogRef,
-  MAT_DIALOG_DATA
-} from '@angular/material';
-
-import { ConditionComponent } from './condition.component';
-
-describe('Condition Component', () => {
-  let component: ConditionComponent;
-  let fixture: ComponentFixture<ConditionComponent>;
-  let de: DebugElement;
-  let el: HTMLElement;
-
-  beforeEach(
-    async(() => {
-      TestBed.configureTestingModule({
-        imports: [
-          FormsModule,
-          HttpModule,
-          MatDialogModule,
-          MatButtonModule,
-          MatIconModule
-        ],
-        providers: [],
-        schemas: [CUSTOM_ELEMENTS_SCHEMA],
-        declarations: [ConditionComponent]
-      }).compileComponents();
-    })
-  );
-
-  beforeEach(() => {
-    // create component and test fixture
-    fixture = TestBed.createComponent(ConditionComponent);
-    // get test component from the fixture
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should be created', () => {
-    expect(component).toBeTruthy();
-  });
-});
diff --git a/public/src/app/rule-engine/confirm-popup/confirm-popup.component.html b/public/src/app/rule-engine/confirm-popup/confirm-popup.component.html
index 49c800a..837e0f8 100644
--- a/public/src/app/rule-engine/confirm-popup/confirm-popup.component.html
+++ b/public/src/app/rule-engine/confirm-popup/confirm-popup.component.html
@@ -1,12 +1,36 @@
-<div class="container" data-tests-id="delete-popup">
+<div class="container-popup" data-tests-id="delete-popup">
   <div class="header">
-    Delete
+    <div style="display: flex; width:100%;">
+      <span style="color: #CF2A2A;
+        padding-right: 15px;
+        height: 100%;
+        display: flex;
+        justify-content: center;
+        align-items: center;" [innerHTML]="'x-circle' | feather:28"></span>
+      <span style="font-family: 'Open Sans', sans-serif;
+      font-size: 24px; width: 100%;">
+        Delete
+      </span>
+      <span style="
+        height: 100%;
+        display: flex;
+        color:rgb(90, 90, 90);
+        justify-content: center;
+        align-items: center;" [innerHTML]="'x' | feather:20" (click)="close(false)"></span>
+    </div>
   </div>
-  <div class="content">
+  <div class="content" style="padding: 0 0 20px 50px; font-family: 'Open Sans', sans-serif; font-size: 14px;">
     Are you sure you want to delete?
   </div>
   <div class="buttons">
-    <button mat-raised-button (click)="close(true)" data-tests-id="btnDelete" style="margin-right: 1rem;" color="primary">Delete</button>
-    <button mat-raised-button (click)="close(false)" data-tests-id="btnCancel" style="border: 1px solid #009FDB; color: #009FDB; background: #ffffff;">Cancel</button>
+
+    <button mat-raised-button color="primary" style="background-color: #CF2A2A; margin-right: 10px; font-size: 14px; font-family: 'Open Sans', sans-serif; height: 36px; color:white;"
+      (click)="close(true)" data-tests-id="btnDelete">
+      DELETE
+    </button>
+    <button mat-raised-button class="btn-secondry" style="border-color: #CF2A2A !important; color:#CF2A2A !important; font-size: 14px; font-family: 'Open Sans', sans-serif;text-align: center; height: 36px;"
+      (click)="close(false)" data-tests-id="btnCancel">
+      CANCEL
+    </button>
   </div>
 </div>
diff --git a/public/src/app/rule-engine/confirm-popup/confirm-popup.component.scss b/public/src/app/rule-engine/confirm-popup/confirm-popup.component.scss
index 2a826ff..4e3539d 100644
--- a/public/src/app/rule-engine/confirm-popup/confirm-popup.component.scss
+++ b/public/src/app/rule-engine/confirm-popup/confirm-popup.component.scss
@@ -1,10 +1,19 @@
-.container {
+.my-confrim-dialog .mat-dialog-container {
+  height: 180px;
+}
+
+.container-popup {
   display: flex;
   justify-content: space-between;
+  flex-direction: column;
   margin: 0 !important;
-  border-top: solid 6px #ffb81c;
+  border-top: solid 6px #cf2a2a;
   .header {
     border-bottom: none;
+    padding-top: 15px;
+    padding-left: 20px;
+    padding-right: 12px;
+    padding-bottom: 0;
   }
   .content {
     margin: 1rem;
diff --git a/public/src/app/rule-engine/confirm-popup/confirm-popup.component.ts b/public/src/app/rule-engine/confirm-popup/confirm-popup.component.ts
index 23b6cee..d65cc5b 100644
--- a/public/src/app/rule-engine/confirm-popup/confirm-popup.component.ts
+++ b/public/src/app/rule-engine/confirm-popup/confirm-popup.component.ts
@@ -1,10 +1,11 @@
-import { Component, Inject } from '@angular/core';
+import { Component, Inject, ViewEncapsulation } from '@angular/core';
 import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
 
 @Component({
   selector: 'app-confirm-popup',
   templateUrl: './confirm-popup.component.html',
-  styleUrls: ['./confirm-popup.component.scss']
+  styleUrls: ['./confirm-popup.component.scss'],
+  encapsulation: ViewEncapsulation.None
 })
 export class ConfirmPopupComponent {
   constructor(
diff --git a/public/src/app/rule-engine/from/from.component.html b/public/src/app/rule-engine/from/from.component.html
index 7af653d..df2c110 100644
--- a/public/src/app/rule-engine/from/from.component.html
+++ b/public/src/app/rule-engine/from/from.component.html
@@ -1,6 +1,6 @@
 <form #fromFrm="ngForm" novalidate>
   <!-- Copy template -->
-  <div class="from" *ngIf="actionType === 'copy'" data-tests-id="fromComponent">
+  <div class="from" *ngIf="actionType === 'copy' || actionType === 'replace text' || actionType === 'log text'" data-tests-id="fromComponent">
     <div class="from-conatiner">
       <div style="display: flex; align-items: center; width: 100%;" class="label">
         <span class="label" style="padding: 0 5px; width: 50px;">From</span>
@@ -38,6 +38,39 @@
     </div>
   </div>
 
+  <!-- clear template -->
+  <div class="from" *ngIf="actionType === 'clear'" ngModelGroup="clear" #clearFrom="ngModelGroup">
+    <div *ngFor="let input of from.values; let index = index;" data-tests-id="clearInputArrayFrom" (mouseleave)="hoveredIndex=-1"
+      (mouseover)="hoveredIndex=index" class="from-conatiner" style="margin-bottom:1rem; display: flex; flex-direction: column; align-items: flex-start;"
+      data-tests-id="fromComponent">
+      <div style="display: flex; align-items: center; width: 100%;">
+        <div style="display: flex; align-items: center; width: 100%;" class="label">
+          <span class="label" style="padding: 0 5px; width: 50px;">From</span>
+          <input class="input-text" (ngModelChange)="modelChange(from)" [(ngModel)]="input.value" type="text" data-tests-id="valueInput"
+            ngModel required name="clear[{{index}}]">
+        </div>
+
+        <button mat-icon-button class="button-remove" [ngStyle]="hoveredIndex === index ? {'opacity':'1'} : {'opacity':'0'}" (click)="removeFromInput(index)"
+          *ngIf="from.values.length > 1" style="box-shadow: none; height: 24px; width: 24px; display:flex" data-tests-id="btnDelete">
+          <mat-icon class="md-24">delete</mat-icon>
+        </button>
+      </div>
+
+    </div>
+    <div style="display:flex; justify-content: space-between;">
+      <div style="display: flex; align-items: center;">
+        <button mat-mini-fab color="primary" (click)="addFromInput()" style="box-shadow: none; height: 16px; width: 16px; display:flex"
+          data-tests-id="btnAddInput">
+          <span style="padding-left: 2px; display: flex; justify-content: center; align-items: center" [innerHTML]="'plus' | feather:12"></span>
+<!-- 
+          <mat-icon>add</mat-icon> -->
+        </button>
+        <span style="color: #009FDB; display: flex; justify-content: center; padding-left: 6px">Add input</span>
+      </div>
+    </div>
+  </div>
+
+
   <!-- Concat template -->
   <div class="from" *ngIf="actionType === 'concat'" ngModelGroup="concat" #concatFrom="ngModelGroup">
     <div *ngFor="let input of from.values; let index = index;" data-tests-id="concatInputArrayFrom" (mouseleave)="hoveredIndex=-1"
@@ -59,11 +92,12 @@
     </div>
     <div style="display:flex; justify-content: space-between;">
       <div style="display: flex; align-items: center;">
-        <button mat-mini-fab color="primary" (click)="addFromInput()" style="box-shadow: none; height: 24px; width: 24px; display:flex"
+        <button mat-mini-fab color="primary" (click)="addFromInput()" style="box-shadow: none; height: 16px; width: 16px; display:flex"
           data-tests-id="btnAddInput">
-          <mat-icon>add</mat-icon>
+          <span style="padding-left: 2px; display: flex; justify-content: center; align-items: center" [innerHTML]="'plus' | feather:12"></span>
+          <!-- <mat-icon>add</mat-icon> -->
         </button>
-        <span style="color: #009FDB; display: flex; justify-content: center; padding-left: 6px">Add input</span>
+        <span style="color: #009FDB; display: flex; justify-content: center; padding-top: 1px; padding-left: 6px;">Add input</span>
       </div>
     </div>
   </div>
diff --git a/public/src/app/rule-engine/from/from.component.ts b/public/src/app/rule-engine/from/from.component.ts
index e7c276b..bc1dedb 100644
--- a/public/src/app/rule-engine/from/from.component.ts
+++ b/public/src/app/rule-engine/from/from.component.ts
@@ -64,6 +64,12 @@
   hoveredIndex;
   // public keyUp = new BehaviorSubject<string>(null);
 
+  ngOnInit(): void {
+    if (this.actionType === 'clear') {
+      this.from.values = [{ value: '' }];
+    }
+  }
+
   showRegex(item) {
     item.state = item.state === 'closed' ? 'open' : 'closed';
     if (item.state === 'closed') {
diff --git a/public/src/app/rule-engine/host/exit-mode.enum.ts b/public/src/app/rule-engine/host/exit-mode.enum.ts
deleted file mode 100644
index 784ba3b..0000000
--- a/public/src/app/rule-engine/host/exit-mode.enum.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export enum ExitMode {
-  Done,
-  Cancel
-}
diff --git a/public/src/app/rule-engine/host/host-params.ts b/public/src/app/rule-engine/host/host-params.ts
deleted file mode 100644
index f204101..0000000
--- a/public/src/app/rule-engine/host/host-params.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-export interface HostParams {
-  readonly vfcmtUuid: string;
-  readonly nodeName: string;
-  readonly nodeId: string;
-  readonly fieldName: string;
-  readonly userId: string;
-  readonly flowType: string;
-}
diff --git a/public/src/app/rule-engine/host/host.service.spec.ts b/public/src/app/rule-engine/host/host.service.spec.ts
deleted file mode 100644
index 048be80..0000000
--- a/public/src/app/rule-engine/host/host.service.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { TestBed, inject } from '@angular/core/testing';
-
-import { HostService } from './host.service';
-
-describe('HostService', () => {
-  beforeEach(() => {
-    TestBed.configureTestingModule({
-      providers: [HostService]
-    });
-  });
-
-  it(
-    'should be created',
-    inject([HostService], (service: HostService) => {
-      expect(service).toBeTruthy();
-    })
-  );
-});
diff --git a/public/src/app/rule-engine/host/host.service.ts b/public/src/app/rule-engine/host/host.service.ts
deleted file mode 100644
index 7918d30..0000000
--- a/public/src/app/rule-engine/host/host.service.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-import { Injectable } from '@angular/core';
-import { HostParams } from './host-params';
-import { ExitMode } from './exit-mode.enum';
-
-@Injectable()
-export class HostService {
-  /* Public Members */
-
-  public static getParams(): HostParams {
-    return this.getQueryParamsObj(window.location.search) as HostParams;
-  }
-
-  public static enterModifyRule(): void {
-    this.postMessage('modifyRule', null);
-  }
-
-  public static exitModifyRule(): void {
-    this.postMessage('ruleList', null);
-  }
-
-  public static disableLoader(): void {
-    this.postMessage('disable-loader', null);
-  }
-
-  public static exit(mode: ExitMode, data: string): void {
-    if (mode === ExitMode.Cancel) {
-      this.postMessage('exit', null);
-    } else if (mode === ExitMode.Done) {
-      this.postMessage('exit', data);
-    }
-  }
-
-  /* Private Methods */
-
-  private static postMessage(eventName: string, data: string): void {
-    window.parent.postMessage(
-      {
-        type: eventName,
-        data: data
-      },
-      '*'
-    );
-  }
-
-  private static getQueryParamsObj(query: string): object {
-    return query
-      .substring(1) // removes '?' that always appears as prefix to the query-string
-      .split('&') // splits query-string to "key=value" strings
-      .map(p => p.split('=')) // splits each "key=value" string to [key,value] array
-      .reduce((res, p) => {
-        // converts to a dictionary (object) of params
-        res[p[0]] = p[1];
-        return res;
-      }, {});
-  }
-}
diff --git a/public/src/app/rule-engine/rule-list/rule-list.component.html b/public/src/app/rule-engine/rule-list/rule-list.component.html
index c68c706..4ce6efb 100644
--- a/public/src/app/rule-engine/rule-list/rule-list.component.html
+++ b/public/src/app/rule-engine/rule-list/rule-list.component.html
@@ -1,8 +1,8 @@
 <div class="container">
   <div class="header">
-    <span style="font-size: 18px;">Rule Engine</span>
+    <span style="font-size: 18px; margin-left:20px;">Rule Engine</span>
     <div style="display:flex">
-      <button mat-raised-button (click)="translateRules()" color="primary" [disabled]="store.ruleList.length === 0" style="margin-left: 20px;"
+      <button mat-raised-button (click)="translateRules()" color="primary" [disabled]="store.ruleList.length === 0" style="margin-right: 10px; width: 113px;height: 36px;"
         data-tests-id="btnTranslate">
         Translate
       </button>
@@ -20,6 +20,35 @@
     <app-version-type-select #versionEventType [versions]="versions" [metaData]="metaData" (nodesUpdated)="handleUpdateNode($event)"
       (refrashRuleList)="handlePropertyChange()"></app-version-type-select>
 
+    <!-- <div class="container-phase-notify">
+      <div>
+        <span class="field-label required" style="margin-right: 10px;">
+          phase
+        </span>
+        <select name="phase" [(ngModel)]="phase" data-tests-id="phase" style="height: 27px; padding: 0.3rem; margin-right: 18px;"
+          class="field-select">
+          <option [ngValue]="null" disabled>Select phase</option>
+        </select>
+      </div>
+
+      <div class="default" style="display: flex; align-items: center">
+        <div class="pretty p-svg">
+          <input type="checkbox" name="notifyCheckbox" data-tests-id="notifyCheckbox" />
+          <div class="state">
+            <svg class="svg svg-icon" viewBox="0 0 20 20">
+              <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z"
+                style="stroke: #009fdb; fill:#009fdb;"></path>
+            </svg>
+            <label>notify OID</label>
+          </div>
+        </div>
+        <div class="input-wrapper">
+          <input type="text" ngModel required name="notify-oid" data-tests-id="notify-oid" class="input">
+        </div>
+      </div>
+
+    </div> -->
+
     <div *ngIf="targetSource && store.ruleList.length === 0" style="margin: 30px 0; display: flex; align-items: center; justify-content: center; flex-direction: column;">
 
       <div style="margin: 3em 0 2em 0;">
@@ -40,9 +69,6 @@
     </div>
 
     <div *ngIf="store.ruleList.length > 0">
-      <div style="padding: 10px 0;">
-        Rules
-      </div>
       <div style="display: flex; align-items: center;">
         <button mat-mini-fab color="primary" id="addMoreRule" data-tests-id="addMoreRule" style="height: 24px; width: 24px; display:flex"
           (click)="openAction()">
diff --git a/public/src/app/rule-engine/rule-list/rule-list.component.scss b/public/src/app/rule-engine/rule-list/rule-list.component.scss
index c4aee05..6446fbd 100644
--- a/public/src/app/rule-engine/rule-list/rule-list.component.scss
+++ b/public/src/app/rule-engine/rule-list/rule-list.component.scss
@@ -4,30 +4,30 @@
   height: 100%;
   display: flex;
   flex-direction: column;
-
+  margin: 0;
+  padding: 0;
   .header {
     position: relative;
     display: flex;
     justify-content: space-between;
     align-items: center;
     color: #191919;
-    border-bottom: 2px solid #d2d2d2;
-    padding-bottom: 0.5rem;
-    margin: 1rem;
+    border-bottom: 1px solid #d2d2d2;
+    padding-bottom: 5px;
+    margin: 8px 0;
   }
-
   .item {
     border: 1px solid #d2d2d2;
     padding: 0 10px;
     height: 40px;
   }
-
   .mat-fab,
   .mat-mini-fab,
   .mat-raised-button {
     box-shadow: none;
   }
 }
+
 .my-full-screen-dialog .mat-dialog-container {
   max-width: none;
   width: 100vw;
@@ -46,7 +46,6 @@
   display: flex !important;
   justify-content: center !important;
   color: #d2d2d2 !important;
-
   &:hover {
     color: #009fdb !important;
   }
@@ -68,6 +67,7 @@
 .mat-mini-fab .mat-button-wrapper {
   padding: 0 !important;
 }
+
 .mat-icon {
   // width: 18px;
   // height: 18px;
@@ -75,35 +75,45 @@
   justify-content: center !important;
   align-items: center !important;
 }
+
 /* Rules for sizing the icon. */
+
 .material-icons.md-18 {
   font-size: 18px;
 }
+
 .material-icons.md-24 {
   font-size: 24px;
 }
+
 .material-icons.md-30 {
   font-size: 30px;
 }
+
 .material-icons.md-36 {
   font-size: 36px;
 }
+
 .material-icons.md-48 {
   font-size: 48px;
 }
 
 /* Rules for using icons as black on a light background. */
+
 .material-icons.md-dark {
   color: rgba(0, 0, 0, 0.54);
 }
+
 .material-icons.md-dark.md-inactive {
   color: rgba(0, 0, 0, 0.26);
 }
 
 /* Rules for using icons as white on a dark background. */
+
 .material-icons.md-light {
   color: rgba(255, 255, 255, 1);
 }
+
 .material-icons.md-light.md-inactive {
   color: rgba(255, 255, 255, 0.3);
 }
diff --git a/public/src/app/rule-engine/rule-list/rule-list.component.ts b/public/src/app/rule-engine/rule-list/rule-list.component.ts
index 45cfbd0..2857ea2 100644
--- a/public/src/app/rule-engine/rule-list/rule-list.component.ts
+++ b/public/src/app/rule-engine/rule-list/rule-list.component.ts
@@ -1,12 +1,11 @@
-import { Component, ViewEncapsulation, ViewChild } from '@angular/core';
+import { Component, ViewChild, ViewEncapsulation } from '@angular/core';
 import { MatDialog } from '@angular/material';
-import { ActionListComponent } from '../action-list/action-list.component';
-import { RuleEngineApiService } from '../api/rule-engine-api.service';
-import { ConfirmPopupComponent } from '../confirm-popup/confirm-popup.component';
-import { Store } from '../../store/store';
 import { isEmpty } from 'lodash';
 import { ToastrService } from 'ngx-toastr';
 import { timer } from 'rxjs/observable/timer';
+import { Store } from '../../store/store';
+import { RuleEngineApiService } from '../api/rule-engine-api.service';
+import { ConfirmPopupComponent } from '../confirm-popup/confirm-popup.component';
 
 const primaryColor = '#009fdb';
 
@@ -58,7 +57,11 @@
           );
           this.store.updateRuleList(Object.values(response.rules));
           this.targetSource = response.schema;
+          this.store.notifyIdValue = response.notifyId;
+          this.versionType.notifyIdCheckbox =
+            response.notifyId !== '' ? true : false;
         } else {
+          this.versionType.notifyIdCheckbox = false;
           this.store.resetRuleList();
           this.versionType.updateVersionTypeFlag(false);
           this.targetSource = null;
@@ -83,20 +86,29 @@
     private toastr: ToastrService,
     public store: Store
   ) {
-    this.store.loader = true;
-    this.params = {
-      vfcmtUuid: this.store.mcUuid,
-      nodeName: this.store.tabParmasForRule[0].name,
-      nodeId: this.store.tabParmasForRule[0].nid,
-      fieldName: this.store.configurationForm[0].name,
-      userId: 'ym903w', // this.store.sdcParmas.userId
-      flowType: this.store.cdump.flowType
-    };
-    console.log('params: %o', this.params);
-    this.store.loader = true;
-    // set api params by iframe url query
-    this._ruleApi.setParams(this.params);
-    this.getListOfRules();
+    this.store.loader = false;
+    this._ruleApi.tabIndex.subscribe(index => {
+      console.log('rule index in rule-list component:', index);
+      const tabName = this.store.cdump.nodes[index].name;
+      console.log('tab name:', tabName);
+
+      if (tabName.toLowerCase().includes('map')) {
+        this.params = {
+          vfcmtUuid: this.store.mcUuid,
+          nodeName: this.store.tabParmasForRule[0].name,
+          nodeId: this.store.tabParmasForRule[0].nid,
+          fieldName: this.store.tabsProperties[index][0].name,
+          userId: this.store.sdcParmas.userId,
+          flowType: this.store.cdump.flowType
+        };
+        console.log('params: %o', this.params);
+        this.store.loader = true;
+        // set api params by iframe url query
+        this._ruleApi.setParams(this.params);
+        store.ruleListExistParams = this.params;
+        this.getListOfRules();
+      }
+    });
   }
 
   handlePropertyChange() {
@@ -108,7 +120,8 @@
   translateRules() {
     this.store.loader = true;
     // send translate JSON
-    this._ruleApi.translate().subscribe(
+    const nofityId = this.store.notifyIdValue;
+    this._ruleApi.translate(nofityId).subscribe(
       data => {
         this.store.loader = false;
         console.log(JSON.stringify(data));
@@ -116,7 +129,7 @@
         this.store.configurationForm.forEach(property => {
           console.log('mappingTarget ', this.versionType.mappingTarget);
           if (property.name === this.versionType.mappingTarget) {
-            property.assignment.value = JSON.stringify(data);
+            property.value = JSON.stringify(data);
             domElementName = property.name;
             console.log(property.name);
           }
diff --git a/public/src/app/rule-engine/target/target.component.html b/public/src/app/rule-engine/target/target.component.html
index 7a321ef..d643ad8 100644
--- a/public/src/app/rule-engine/target/target.component.html
+++ b/public/src/app/rule-engine/target/target.component.html
@@ -7,7 +7,7 @@
       <img src="{{imgBase}}/target.svg" alt="target">
     </span>
   </div>
-  <div class="bottom-select" *ngIf="showOption" [@toggleDropdown]>
+  <div class="bottom-select" *ngIf="showOption">
     <div class="filter-container" style="display: flex; border-bottom: 1px solid #F2F2F2;margin-bottom: 1rem; width:100%;">
       <input id="filter" #filter class="filter" (keyup)="tree.treeModel.filterNodes(filter.value)" placeholder="Search..." />
       <button mat-raised-button style="min-width: 18px; box-shadow: none; display: flex; justify-content: center;" (click)="tree.treeModel.clearFilter(); filter.value = ''">
diff --git a/public/src/app/rule-engine/target/target.component.spec.ts b/public/src/app/rule-engine/target/target.component.spec.ts
index 6ddd8cd..e9a69c8 100644
--- a/public/src/app/rule-engine/target/target.component.spec.ts
+++ b/public/src/app/rule-engine/target/target.component.spec.ts
@@ -1,10 +1,9 @@
-import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-import { By } from '@angular/platform-browser';
-import { DebugElement } from '@angular/core';
+import { CUSTOM_ELEMENTS_SCHEMA, DebugElement } from '@angular/core';
+import { ComponentFixture, TestBed, async } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
-import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { MatButtonModule, MatIconModule } from '@angular/material';
+import { By } from '@angular/platform-browser';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 // component
 import { TargetComponent } from './target.component';
 
@@ -46,12 +45,28 @@
     const openTargetElement = fixture.debugElement
       .query(By.css('span[data-tests-id=openTargetTree]'))
       .nativeElement.click();
-
     fixture.detectChanges();
-
     const treeContainer = fixture.debugElement.query(
       By.css('.filter-container')
     );
     expect(treeContainer).not.toBeNull();
   });
+
+  it('should toggle target tree when clicking 2 times on button', () => {
+    fixture.debugElement
+      .query(By.css('span[data-tests-id=openTargetTree]'))
+      .nativeElement.click();
+    fixture.detectChanges();
+    fixture.debugElement
+      .query(By.css('span[data-tests-id=openTargetTree]'))
+      .nativeElement.click();
+    fixture.detectChanges();
+    const treeContainer = fixture.debugElement.query(
+      By.css('.filter-container')
+    );
+    expect(treeContainer).toBeNull();
+  });
+
+  // it('check when input change', () => {   tree.setData({nodes: _nodes, options:
+  // null, events: null});   component.filterFn('liav', tree); });
 });
diff --git a/public/src/app/rule-engine/target/target.component.ts b/public/src/app/rule-engine/target/target.component.ts
index f17cdef..c9aa75c 100644
--- a/public/src/app/rule-engine/target/target.component.ts
+++ b/public/src/app/rule-engine/target/target.component.ts
@@ -7,13 +7,8 @@
   EventEmitter
 } from '@angular/core';
 import { TreeModel, TreeComponent, ITreeOptions } from 'angular-tree-component';
-import {
-  trigger,
-  state,
-  animate,
-  transition,
-  style
-} from '@angular/animations';
+// import {trigger, state, animate, transition, style} from
+// '@angular/animations';
 import { fuzzysearch, getBranchRequierds, validation } from './target.util';
 import { environment } from '../../../environments/environment';
 import { NgForm } from '@angular/forms';
@@ -22,24 +17,15 @@
   selector: 'app-target',
   templateUrl: './target.component.html',
   styleUrls: ['./target.component.scss'],
-  encapsulation: ViewEncapsulation.None,
-  animations: [
-    trigger('toggleDropdown', [
-      transition('void => *', [
-        style({ opacity: 0, offset: 0, height: 0 }),
-        animate('300ms cubic-bezier(0.17, 0.04, 0.03, 0.94)')
-      ]),
-      transition('* => void', [
-        style({ opacity: 1, offset: 1, height: 'auto' }),
-        animate('100ms cubic-bezier(0.17, 0.04, 0.03, 0.94)')
-      ])
-    ])
-  ]
+  encapsulation: ViewEncapsulation.None
 })
 export class TargetComponent {
   imgBase = environment.imagePath;
   showOption = false;
-  selectedNode = { name: '', id: '' };
+  selectedNode = {
+    name: '',
+    id: ''
+  };
   @Input() nodes;
   @Output() onTargetChange = new EventEmitter();
   @ViewChild(TreeComponent) private tree: TreeComponent;
diff --git a/public/src/app/rule-engine/target/target.validation.spec.ts b/public/src/app/rule-engine/target/target.validation.spec.ts
index 71dc083..e66235f 100644
--- a/public/src/app/rule-engine/target/target.validation.spec.ts
+++ b/public/src/app/rule-engine/target/target.validation.spec.ts
@@ -1,8 +1,7 @@
-import { TestBed, async } from '@angular/core/testing';
-import { TreeModel, TreeComponent, ITreeOptions } from 'angular-tree-component';
-import { validation, getBranchRequierds } from './target.util';
+import { TreeModel } from 'angular-tree-component';
+import { fuzzysearch, getBranchRequierds, validation } from './target.util';
 
-const _nodes = [
+export const _nodes = [
   {
     id: 1,
     name: 'North America',
@@ -13,46 +12,68 @@
         name: 'United States',
         requiredChildren: ['New York', 'Florida'],
         children: [
-          { id: 111, name: 'New York' },
-          { id: 112, name: 'California' },
-          { id: 113, name: 'Florida' }
+          {
+            id: 111,
+            name: 'New York'
+          },
+          {
+            id: 112,
+            name: 'California'
+          },
+          {
+            id: 113,
+            name: 'Florida'
+          }
         ]
       },
-      { id: 12, name: 'Canada' }
+      {
+        id: 12,
+        name: 'Canada'
+      }
     ]
   },
   {
     name: 'South America',
-    children: [{ name: 'Argentina', children: [] }, { name: 'Brazil' }]
+    children: [
+      {
+        name: 'Argentina',
+        children: []
+      },
+      {
+        name: 'Brazil'
+      }
+    ]
   },
   {
     name: 'Europe',
     children: [
-      { name: 'England' },
-      { name: 'Germany' },
-      { name: 'France' },
-      { name: 'Italy' },
-      { name: 'Spain' }
+      {
+        name: 'England'
+      },
+      {
+        name: 'Germany'
+      },
+      {
+        name: 'France'
+      },
+      {
+        name: 'Italy'
+      },
+      {
+        name: 'Spain'
+      }
     ]
   }
 ];
 
-const tree = new TreeModel();
+export const tree = new TreeModel();
 
 describe('treeTest', () => {
   beforeAll(() => {
-    tree.setData({
-      nodes: _nodes,
-      options: null,
-      events: null
-    });
+    tree.setData({ nodes: _nodes, options: null, events: null });
   });
 
-  it('should return node branch requireds', () => {
-    // console.log('root', tree.getFirstRoot().data.name);
-    // console.log(tree.getNodeBy((node) => node.data.name === 'California').data.uuid);
-    // console.log(tree.getNodeBy((node) => node.data.name === 'California').id);
-    // console.log(tree.getNodeById(1));
+  it('should return node branch requireds toBeGreaterThan 1', () => {
     const selectedNode = tree.getNodeBy(
       node => node.data.name === 'California'
     );
@@ -60,6 +81,14 @@
     const expected = [['New York', 'Florida'], ['United States']];
 
     expect(result.length).toBeGreaterThan(1);
+  });
+
+  it('should return node branch requireds', () => {
+    const selectedNode = tree.getNodeBy(
+      node => node.data.name === 'California'
+    );
+    const result = getBranchRequierds(selectedNode, []);
+    const expected = [['New York', 'Florida'], ['United States']];
     expect(result).toEqual(expected);
   });
 
@@ -67,9 +96,14 @@
     const userSelect = ['Florida', 'New York', 'United States'];
     const selectedNode = tree.getNodeBy(node => node.data.name === 'New York');
     const result = validation(selectedNode, userSelect);
+    expect(result).toEqual([]);
+  });
+  it('should return empty array - success state lenght zero', () => {
+    const userSelect = ['Florida', 'New York', 'United States'];
+    const selectedNode = tree.getNodeBy(node => node.data.name === 'New York');
+    const result = validation(selectedNode, userSelect);
 
     expect(result.length).toEqual(0);
-    expect(result).toEqual([]);
   });
 
   it('should return validation array - missing required filed', () => {
@@ -80,4 +114,29 @@
 
     expect(result).toEqual(expected);
   });
+
+  it('fuzzysearch find match one char', () => {
+    const search = fuzzysearch('1', '1');
+    expect(search).toBe(true);
+  });
+
+  it('fuzzysearch find match string', () => {
+    const search = fuzzysearch('liav', 'liavEzar');
+    expect(search).toBe(true);
+  });
+
+  it('fuzzysearch not find match', () => {
+    const search = fuzzysearch('1', '2');
+    expect(search).toBe(false);
+  });
+
+  it('fuzzysearch not find match', () => {
+    const search = fuzzysearch('liavEzar', 'liav');
+    expect(search).toBe(false);
+  });
+
+  it('fuzzysearch not find match', () => {
+    const search = fuzzysearch('var', 'r2f44');
+    expect(search).toBe(false);
+  });
 });
diff --git a/public/src/app/rule-engine/version-type-select/version-type-select.component.html b/public/src/app/rule-engine/version-type-select/version-type-select.component.html
index 79b9eae..74c55a8 100644
--- a/public/src/app/rule-engine/version-type-select/version-type-select.component.html
+++ b/public/src/app/rule-engine/version-type-select/version-type-select.component.html
@@ -1,34 +1,64 @@
 <div class="selected-event">
 
-  <div style="flex:1; display: flex; align-items: center;">
+  <div style="flex:1; display: flex; align-items: flex-end;">
 
-    <span class="field-label required" style="margin-right: 10px;">Mapping Target</span>
-    <select name="mappingTarget" [(ngModel)]="mappingTarget" (ngModelChange)="onChangeMapping($event)" data-tests-id="mappingDdl"
-      style="height: 27px; padding: 0.3rem; margin-right: 18px;" class="field-select">
-      <option [ngValue]="null" disabled>Select Mapping</option>
-      <option *ngFor="let target of advancedSetting" [value]="target.name" data-tests-id="templateOptions">{{target.name}}</option>
-    </select>
+    <div style="display:flex; flex-direction:column; margin-right: 25px;">
+      <span class="field-label required space-down" style="margin-right: 10px;">Mapping Target</span>
+      <select name="mappingTarget" [(ngModel)]="mappingTarget" (ngModelChange)="onChangeMapping($event)" data-tests-id="mappingDdl"
+        style="height: 35px; padding: 0.3rem; border: 1px solid #d2d2d2" class="field-select">
+        <option [ngValue]="null" disabled>Select Mapping</option>
+        <optgroup label="Rules Configured">
+          <option *ngFor="let target of advancedSetting" [hidden]="!target.isExist" [value]="target.name" data-tests-id="templateOptionsExist">{{target.name}}</option>
+        </optgroup>
+        <optgroup label="No Mapping Configuration">
+          <option *ngFor="let target of advancedSetting" [hidden]="target.isExist" [value]="target.name" data-tests-id="templateOptionsNotExist">{{target.name}}</option>
+        </optgroup>
+      </select>
+    </div>
 
-    <span class="field-label required" style="font-size: 13px; margin-right: 10px; display: flex;
-    align-items: center;" [ngClass]="{'required' : !readOnly}">
-      Version
-    </span>
-    <select *ngIf="!readOnly" style="height: 27px; padding: 0.3rem; margin-right: 18px;" [(ngModel)]="selectedVersion" (ngModelChange)="onSelectVersion($event)"
-      data-tests-id="selectVersion">
-      <option [ngValue]="null" disabled>Select Version</option>
-      <option *ngFor="let version of versions" [value]="version" data-tests-id="option">{{version}}</option>
-    </select>
-    <span *ngIf="readOnly" style="height: 27px; padding: 0.3rem; width:100px; margin-right: 18px; border: 1px solid #D2D2D2; display: flex; align-items: center; background: #F2F2F2">{{selectedVersion}}</span>
+    <div style="display:flex; flex-direction:column; margin-right: 25px;">
+      <span class="field-label required space-down" style="font-size: 13px; margin-right: 10px; display: flex;
+        align-items: center;" [ngClass]="{'required' : !readOnly}">
+        Version
+      </span>
+      <select *ngIf="!readOnly" style="height: 35px; padding: 0.3rem; border: 1px solid #d2d2d2" [(ngModel)]="selectedVersion" (ngModelChange)="onSelectVersion($event)"
+        data-tests-id="selectVersion">
+        <option [ngValue]="null" disabled>Select Version</option>
+        <option *ngFor="let version of versions" [value]="version" data-tests-id="option">{{version}}</option>
+      </select>
+      <span *ngIf="readOnly" style="height: 35px; padding: 0.3rem; width:100px; border: 1px solid #D2D2D2; display: flex; align-items: center; background: #F2F2F2">{{selectedVersion}}</span>
+    </div>
 
-    <span class="field-label required" style="font-size: 13px; display: flex; align-items: center; width: 100px;" [ngClass]="{'required' : !readOnly}">
-      Event Domain
-    </span>
-    <select *ngIf="!readOnly" style="height: 27px; padding: 0.3rem;" [(ngModel)]="selectedEvent" (ngModelChange)="onSelectEventType($event)"
-      data-tests-id="selectEventType">
-      <option [ngValue]="null" disabled>Select Type</option>
-      <option *ngFor="let event of events" [value]="event" data-tests-id="option">{{event | slice:0:event.length-6}}</option>
-    </select>
-    <span *ngIf="readOnly" style="height: 27px; padding: 0.3rem; width:200px; border: 1px solid #D2D2D2; display: flex; align-items: center; background: #F2F2F2">{{selectedEvent | slice:0:selectedEvent.length-6}}</span>
+    <div style="display:flex; flex-direction:column; margin-right: 25px;">
+      <span class="field-label required space-down" style="font-size: 13px; display: flex; align-items: center; width: 100px;"
+        [ngClass]="{'required' : !readOnly}">
+        Event Domain
+      </span>
+      <select *ngIf="!readOnly" style="height: 35px; padding: 0.3rem; border: 1px solid #d2d2d2" [(ngModel)]="selectedEvent" (ngModelChange)="onSelectEventType($event)"
+        data-tests-id="selectEventType">
+        <option [ngValue]="null" disabled>Select Type</option>
+        <option *ngFor="let event of events" [value]="event" data-tests-id="option">{{event | slice:0:event.length-6}}</option>
+      </select> 
+      <span *ngIf="readOnly" style="height: 35px; padding: 0.3rem; width:200px; border: 1px solid #D2D2D2; display: flex; align-items: center; background: #F2F2F2">{{selectedEvent | slice:0:selectedEvent.length-6}}</span>
+    </div>
+
+    <div class="notifyId" style="display: flex; flex-direction:column; margin-right:25px;">
+      <div class="pretty p-svg space-down">
+        <input type="checkbox" name="notifyIdCheckbox" data-tests-id="notifyIdCheckbox" [checked]="notifyIdCheckbox" (change)="changeNotifyId()"
+        />
+        <div class="state">
+          <!-- svg path -->
+          <svg class="svg svg-icon" viewBox="0 0 20 20">
+            <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z"
+              style="stroke: #009fdb; fill:#009fdb;"></path>
+          </svg>
+          <label style="margin-left: 5px;">Notify OID</label>
+        </div>
+      </div>
+      <div *ngIf="notifyIdCheckbox" class="input-wrapper">
+        <input type="text" ngModel required name="defaultInput" data-tests-id="defaultInput" [(ngModel)]="store.notifyIdValue" class="input">
+      </div>
+    </div>
   </div>
 
 </div>
diff --git a/public/src/app/rule-engine/version-type-select/version-type-select.component.scss b/public/src/app/rule-engine/version-type-select/version-type-select.component.scss
index 9f7bad3..1be996e 100644
--- a/public/src/app/rule-engine/version-type-select/version-type-select.component.scss
+++ b/public/src/app/rule-engine/version-type-select/version-type-select.component.scss
@@ -1,7 +1,6 @@
 .selected-event {
   display: flex;
-  margin: 10px 0;
-  // align-items: center;
+  // margin: 10px 0; // align-items: center;
   flex-direction: column;
   margin-bottom: 30px;
 }
@@ -23,6 +22,20 @@
   outline: none;
 }
 
+.space-down {
+  margin-bottom: 5px;
+}
+
+.input-wrapper {
+  .input {
+    height: 35px;
+    border-radius: 2px;
+    padding: 5px;
+    width: 100%;
+    border: 1px solid #d2d2d2;
+  }
+}
+
 .target-field {
   width: 370px;
   display: flex;
@@ -42,5 +55,6 @@
     min-width: 250px;
     padding: 5px 0 5px 5px;
     margin: 0;
+    border: 1px solid #d2d2d2;
   }
 }
diff --git a/public/src/app/rule-engine/version-type-select/version-type-select.component.ts b/public/src/app/rule-engine/version-type-select/version-type-select.component.ts
index b4170a5..ff229cd 100644
--- a/public/src/app/rule-engine/version-type-select/version-type-select.component.ts
+++ b/public/src/app/rule-engine/version-type-select/version-type-select.component.ts
@@ -1,6 +1,6 @@
-import { Component, Output, EventEmitter, Input } from '@angular/core';
-import { RuleEngineApiService } from '../api/rule-engine-api.service';
+import { Component, EventEmitter, Input, Output } from '@angular/core';
 import { Store } from '../../store/store';
+import { RuleEngineApiService } from '../api/rule-engine-api.service';
 
 @Component({
   selector: 'app-version-type-select',
@@ -19,25 +19,60 @@
   @Input() metaData;
   @Output() nodesUpdated = new EventEmitter();
   @Output() refrashRuleList = new EventEmitter();
-  advancedSetting;
+  advancedSetting: Array<any>;
+  notifyIdCheckbox = false;
 
   constructor(private _ruleApi: RuleEngineApiService, public store: Store) {
     this.selectedVersion = null;
     this.selectedEvent = null;
     // set ddl with the first option value.
-    this.mappingTarget = this.store.configurationForm[0].name;
-    this.advancedSetting = this.store.configurationForm.filter(item => {
-      if (
-        !(
-          item.hasOwnProperty('constraints') &&
-          !item.assignment.value.includes('get_input')
-        )
-      ) {
-        return item;
+
+    this._ruleApi.tabIndex.subscribe(index => {
+      console.log('rule index:', index);
+
+      const tabName = this.store.cdump.nodes[index].name;
+      console.log('tab name:', tabName);
+
+      if (tabName.toLowerCase().includes('map')) {
+        this.mappingTarget = this.store.tabsProperties[index][0].name;
+        this.advancedSetting = this.store.tabsProperties[index].filter(item => {
+          if (
+            !(
+              item.hasOwnProperty('constraints') &&
+              !item.value.includes('get_input')
+            )
+          ) {
+            return item;
+          }
+        });
+
+        this._ruleApi
+          .generateMappingRulesFileName(
+            this.store.ruleListExistParams.nodeName,
+            this.store.ruleListExistParams.nodeId,
+            this.store.ruleListExistParams.vfcmtUuid
+          )
+          .subscribe(response => {
+            console.log('generateMappingRulesFileName response: ', response);
+            this.advancedSetting.forEach(element => {
+              if (response.includes(element.name)) {
+                element.isExist = true;
+              } else {
+                element.isExist = false;
+              }
+            });
+          });
       }
     });
   }
 
+  changeNotifyId() {
+    if (!this.notifyIdCheckbox) {
+      this.store.notifyIdValue = '';
+    }
+    return (this.notifyIdCheckbox = !this.notifyIdCheckbox);
+  }
+
   onChangeMapping(configurationKey) {
     console.log('changing propertiy key:', configurationKey);
     this._ruleApi.setFieldName(configurationKey);
@@ -78,9 +113,7 @@
       .subscribe(tree => {
         console.log('tree: ', tree);
         this.loader = false;
-        this.nodesUpdated.emit({
-          nodes: tree
-        });
+        this.nodesUpdated.emit({ nodes: tree });
       });
   }
 }
diff --git a/public/src/app/rule-frame/rule-frame.component.html b/public/src/app/rule-frame/rule-frame.component.html
index 10f3032..e0afa3d 100644
--- a/public/src/app/rule-frame/rule-frame.component.html
+++ b/public/src/app/rule-frame/rule-frame.component.html
@@ -1,16 +1,16 @@
 <div style="position: relative; display: flex; justify-content: flex-end; height: 100%;">
 
-  <div *ngIf="!tabName.includes('map')" style="margin: 1em;">
+  <div *ngIf="!tabName.toLowerCase().includes('map')" style="margin: 1em;">
     <app-bar-icons [tabName]="tabName"></app-bar-icons>
   </div>
 
   <!-- rule engine -->
-  <div style="width: 100%;" *ngIf="tabName.includes('map')">
+  <div style="width: 100%;" *ngIf="tabName.toLowerCase().includes('map')">
     <app-slide-panel [activePane]="store.isLeftVisible ? 'left' : 'right'">
       <div leftPane style="height: 100%; overflow: auto;">
         <app-rule-list></app-rule-list>
       </div>
-      <div rightPane style="height: 100%; overflow: auto;">
+      <div rightPane style="height: 100%; overflow: scroll;">
         <app-action-list></app-action-list>
       </div>
     </app-slide-panel>
diff --git a/public/src/app/rule-frame/rule-frame.component.ts b/public/src/app/rule-frame/rule-frame.component.ts
index 4d5f999..2729c14 100644
--- a/public/src/app/rule-frame/rule-frame.component.ts
+++ b/public/src/app/rule-frame/rule-frame.component.ts
@@ -1,6 +1,5 @@
-import { Component, OnDestroy, Input, ViewChild } from '@angular/core';
+import { Component, Input, OnDestroy } from '@angular/core';
 import { Store } from '../store/store';
-import { BarIconsComponent } from '../bar-icons/bar-icons.component';
 
 @Component({
   selector: 'app-rule-frame',
diff --git a/public/src/app/sdc-notify-dialog/sdc-notify-dialog.component.html b/public/src/app/sdc-notify-dialog/sdc-notify-dialog.component.html
new file mode 100644
index 0000000..f8d51fe
--- /dev/null
+++ b/public/src/app/sdc-notify-dialog/sdc-notify-dialog.component.html
@@ -0,0 +1,39 @@
+<p-dialog [style]="{'border-top-color':'#ffb81c'}" [closable]="false" [(visible)]="store.displaySDCDialog" modal="modal" styleClass="dcae-notify"
+  width="500" [responsive]="true" data-tests-id="sdc-dialog">
+  <p-header>
+    <div style="display: flex;">
+      <span style="color: #ffb81c;
+          padding-right: 15px;
+          height: 100%;
+          display: flex;
+          justify-content: center;
+          align-items: center;" [innerHTML]="'alert-triangle' | feather:28"></span>
+      <span style="font-family: 'Open Sans', sans-serif;
+      font-size: 24px; width: 100%;">
+        Exit from DCAE
+      </span>
+      <span style="
+          height: 100%;
+          display: flex;
+          justify-content: center;
+          color:rgb(90, 90, 90);
+          align-items: center;" [innerHTML]="'x' | feather:20
+          " (click)="closeforChange()"></span>
+    </div>
+  </p-header>
+
+  <div style="padding: 0 0 20px 43px; font-family: 'Open Sans', sans-serif;
+  font-size: 14px;">
+    Do you want to save?
+  </div>
+
+  <p-footer>
+    <button mat-raised-button color="primary" style="background-color: #FFB81C; margin-right: 10px; font-size: 14px; font-family: 'Open Sans', sans-serif; height: 36px;" (click)="closeDialog()" data-tests-id="error-cancel">
+      SAVE
+    </button>
+    <button mat-raised-button class="btn-secondry" style="border-color: #FFB81C !important; color:#FFB81C !important; font-size: 14px; font-family: 'Open Sans', sans-serif;text-align: center; height: 36px;" (click)="closeforChange()"
+      data-tests-id="error-cancel">
+      DISCARD
+    </button>
+  </p-footer>
+</p-dialog>
diff --git a/public/src/app/sdc-notify-dialog/sdc-notify-dialog.component.scss b/public/src/app/sdc-notify-dialog/sdc-notify-dialog.component.scss
new file mode 100644
index 0000000..a775398
--- /dev/null
+++ b/public/src/app/sdc-notify-dialog/sdc-notify-dialog.component.scss
@@ -0,0 +1,17 @@
+:host /deep/ .dcae-notify {
+  border-top: solid 6px #ffb81c;
+}
+:host /deep/ .ui-dialog .ui-dialog-titlebar {
+  padding-top: 15px;
+  padding-left: 20px;
+  padding-right: 12px;
+  padding-bottom: 0;
+}
+
+:host /deep/ .ui-dialog-footer {
+  padding: 10px;
+}
+
+:host /deep/ .ui-dialog.ui-widget .ui-dialog-content {
+  padding-top: 10px;
+}
diff --git a/public/src/app/sdc-notify-dialog/sdc-notify-dialog.component.ts b/public/src/app/sdc-notify-dialog/sdc-notify-dialog.component.ts
new file mode 100644
index 0000000..7572012
--- /dev/null
+++ b/public/src/app/sdc-notify-dialog/sdc-notify-dialog.component.ts
@@ -0,0 +1,72 @@
+import { Component, ElementRef, ViewChild } from '@angular/core';
+import { Router } from '@angular/router';
+import { RestApiService } from '../api/rest-api.service';
+import { MainComponent } from '../main/main.component';
+import { Store } from '../store/store';
+
+@Component({
+  selector: 'app-sdc-notify-dialog',
+  templateUrl: './sdc-notify-dialog.component.html',
+  styleUrls: ['./sdc-notify-dialog.component.scss']
+})
+export class SdcNotifyDialogComponent {
+  @ViewChild(MainComponent) mainComponent: ElementRef;
+
+  constructor(
+    public store: Store,
+    private router: Router,
+    private _restApi: RestApiService
+  ) {}
+
+  closeDialog() {
+    const currentUrl = this.router.url;
+    if (currentUrl.includes('main')) {
+      if (this.store.cdumpIsDirty) {
+        this.saveCDUMP();
+      } else {
+        this.completeAndClose();
+      }
+    } else {
+      this.completeAndClose();
+    }
+  }
+
+  saveCDUMP() {
+    this.store.loader = true;
+    this._restApi
+      .saveMonitoringComponent({
+        contextType: this.store.sdcParmas.contextType,
+        serviceUuid: this.store.sdcParmas.uuid,
+        vfiName: this.store.vfiName,
+        vfcmtUuid: this.store.mcUuid,
+        flowType: this.store.flowType,
+        cdump: this.store.cdump
+      })
+      .subscribe(
+        success => {
+          this.store.loader = false;
+          this.store.mcUuid = success.uuid;
+          this.store.ifrmaeMessenger.notify('ACTION_COMPLETED');
+        },
+        error => {
+          this.store.loader = false;
+          console.log(error.notes);
+          this.store.ifrmaeMessenger.notify('ACTION_COMPLETED');
+          this.store.ErrorContent = Object.values(error.requestError);
+          this.store.displayErrorDialog = true;
+        },
+        () => {
+          this.store.ifrmaeMessenger.notify('ACTION_COMPLETED');
+        }
+      );
+  }
+
+  private completeAndClose() {
+    this.store.ifrmaeMessenger.notify('ACTION_COMPLETED');
+    this.store.displaySDCDialog = false;
+  }
+
+  closeforChange() {
+    this.completeAndClose();
+  }
+}
diff --git a/public/src/app/sdc/base-pubsub.ts b/public/src/app/sdc/base-pubsub.ts
new file mode 100644
index 0000000..f7fcadc
--- /dev/null
+++ b/public/src/app/sdc/base-pubsub.ts
@@ -0,0 +1,124 @@
+declare const window: Window;
+
+export interface IPubSubEvent {
+  type: string;
+  originId: string;
+  data: any;
+}
+
+export interface ISubscriber {
+  window: Window;
+  locationUrl: string;
+}
+
+export class BasePubSub {
+  subscribers: Map<string, ISubscriber>;
+  eventsCallbacks: Array<Function>;
+  clientId: string;
+  eventsToWait: Map<string, Array<string>>;
+
+  constructor(pluginId: string) {
+    this.subscribers = new Map<string, ISubscriber>();
+    this.eventsCallbacks = [];
+    this.eventsToWait = new Map<string, Array<string>>();
+    this.clientId = pluginId;
+    this.onMessage = this.onMessage.bind(this);
+
+    window.addEventListener('message', this.onMessage);
+  }
+
+  public register(
+    subscriberId: string,
+    subscriberWindow: Window,
+    subscriberUrl: string
+  ) {
+    const subscriber = {
+      window: subscriberWindow,
+      locationUrl: subscriberUrl || subscriberWindow.location.href
+    };
+
+    this.subscribers.set(subscriberId, subscriber);
+  }
+
+  public unregister(subscriberId: string) {
+    this.subscribers.delete(subscriberId);
+  }
+
+  public on(callback: Function) {
+    const functionExists = this.eventsCallbacks.find((func: Function) => {
+      return callback.toString() === func.toString();
+    });
+
+    if (!functionExists) {
+      this.eventsCallbacks.push(callback);
+    }
+  }
+
+  public off(callback: Function) {
+    const index = this.eventsCallbacks.indexOf(callback);
+    this.eventsCallbacks.splice(index, 1);
+  }
+
+  public notify(eventType: string, eventData?: any) {
+    const eventObj = {
+      type: eventType,
+      data: eventData,
+      originId: this.clientId
+    };
+
+    this.subscribers.forEach(
+      (subscriber: ISubscriber, subscriberId: string) => {
+        subscriber.window.postMessage(eventObj, subscriber.locationUrl);
+      }
+    );
+
+    return {
+      subscribe: function(callbackFn) {
+        if (this.subscribers.size !== 0) {
+          const subscribersToNotify = Array.from(this.subscribers.keys());
+
+          const checkNotifyComplete = (subscriberId: string) => {
+            const index = subscribersToNotify.indexOf(subscriberId);
+            subscribersToNotify.splice(index, 1);
+
+            if (subscribersToNotify.length === 0) {
+              callbackFn();
+            }
+          };
+
+          this.subscribers.forEach(
+            (subscriber: ISubscriber, subscriberId: string) => {
+              if (
+                this.eventsToWait.has(subscriberId) &&
+                this.eventsToWait.get(subscriberId).indexOf(eventType) !== -1
+              ) {
+                const actionCompletedFunction = (
+                  eventData,
+                  subId = subscriberId
+                ) => {
+                  if (eventData.type === 'ACTION_COMPLETED') {
+                    checkNotifyComplete(subId);
+                  }
+                  this.off(actionCompletedFunction);
+                };
+                this.on(actionCompletedFunction);
+              } else {
+                checkNotifyComplete(subscriberId);
+              }
+            }
+          );
+        } else {
+          callbackFn();
+        }
+      }.bind(this)
+    };
+  }
+
+  protected onMessage(event: any) {
+    if (this.subscribers.has(event.data.originId)) {
+      this.eventsCallbacks.forEach((callback: Function) => {
+        callback(event.data, event);
+      });
+    }
+  }
+}
diff --git a/public/src/app/sdc/plugin-pubsub.ts b/public/src/app/sdc/plugin-pubsub.ts
new file mode 100644
index 0000000..848c7d2
--- /dev/null
+++ b/public/src/app/sdc/plugin-pubsub.ts
@@ -0,0 +1,32 @@
+import { BasePubSub } from './base-pubsub';
+
+declare const window: Window;
+
+export class PluginPubSub extends BasePubSub {
+  constructor(
+    pluginId: string,
+    parentUrl: string,
+    eventsToWait?: Array<string>
+  ) {
+    super(pluginId);
+    this.register('sdc-hub', window.parent, parentUrl);
+    this.subscribe(eventsToWait);
+  }
+
+  public subscribe(eventsToWait?: Array<string>) {
+    const registerData = {
+      pluginId: this.clientId,
+      eventsToWait: eventsToWait || []
+    };
+
+    this.notify('PLUGIN_REGISTER', registerData);
+  }
+
+  public unsubscribe() {
+    const unregisterData = {
+      pluginId: this.clientId
+    };
+
+    this.notify('PLUGIN_UNREGISTER', unregisterData);
+  }
+}
diff --git a/public/src/app/store/store.ts b/public/src/app/store/store.ts
index a9f2431..b075699 100644
--- a/public/src/app/store/store.ts
+++ b/public/src/app/store/store.ts
@@ -1,6 +1,6 @@
 import { Injectable } from '@angular/core';
-import { observable, computed, action, toJS, reaction } from 'mobx';
 import { findIndex } from 'lodash';
+import { action, computed, observable, toJS } from 'mobx';
 
 @Injectable()
 export class Store {
@@ -16,6 +16,10 @@
   @observable expandAdvancedSetting = [];
   @observable generalflow;
   @observable vfiName;
+  @observable flowType;
+  @observable ifrmaeMessenger;
+  @observable waitForSave = false;
+  @observable displaySDCDialog = false;
   // error dialog
   @observable displayErrorDialog = false;
   @observable ErrorContent = [];
@@ -23,9 +27,11 @@
   // rule-engine
   @observable tabParmasForRule;
   @observable ruleList = new Array();
+  @observable ruleListExistParams;
   @observable ruleEditorInitializedState;
   @observable isLeftVisible;
   @observable inprogress;
+  @observable notifyIdValue = '';
 
   @action
   updateRuleInList(rule) {
@@ -82,6 +88,13 @@
         } else if (typeof x.assignment.value === 'object') {
           x.assignment.value = JSON.stringify(x.assignment.value);
         }
+        if (x.value) {
+          if (typeof x.value === 'object') {
+            x.value = JSON.stringify(x.value);
+          }
+        } else if (!x.value) {
+          x.value = x.assignment.value;
+        }
         return x;
       });
     });
diff --git a/public/src/environments/environment.prod.ts b/public/src/environments/environment.prod.ts
index bc3ac4b..84965a9 100644
--- a/public/src/environments/environment.prod.ts
+++ b/public/src/environments/environment.prod.ts
@@ -1,5 +1,5 @@
 export const environment = {
   production: true,
-  apiBaseUrl: 'dcae/dcaeProxy',
-  imagePath: 'dcae_fe/assets/images'
+  apiBaseUrl: 'dcaed/dcaeProxy',
+  imagePath: 'dcaed/assets/images'
 };
diff --git a/public/src/polyfills.ts b/public/src/polyfills.ts
index d68672f..5db0ca6 100644
--- a/public/src/polyfills.ts
+++ b/public/src/polyfills.ts
@@ -19,48 +19,39 @@
  */
 
 /** IE9, IE10 and IE11 requires all of the following polyfills. **/
-// import 'core-js/es6/symbol';
-// import 'core-js/es6/object';
-// import 'core-js/es6/function';
-// import 'core-js/es6/parse-int';
-// import 'core-js/es6/parse-float';
-// import 'core-js/es6/number';
-// import 'core-js/es6/math';
-// import 'core-js/es6/string';
-// import 'core-js/es6/date';
-// import 'core-js/es6/array';
-// import 'core-js/es6/regexp';
-// import 'core-js/es6/map';
-// import 'core-js/es6/weak-map';
-// import 'core-js/es6/set';
-
+import 'core-js/es6/array';
+import 'core-js/es6/date';
+import 'core-js/es6/function';
+import 'core-js/es6/map';
+import 'core-js/es6/math';
+import 'core-js/es6/number';
+import 'core-js/es6/object';
+import 'core-js/es6/parse-float';
+import 'core-js/es6/parse-int';
+import 'core-js/es6/regexp';
+import 'core-js/es6/set';
+import 'core-js/es6/string';
+import 'core-js/es6/symbol';
+import 'core-js/es6/weak-map';
 /** IE10 and IE11 requires the following for NgClass support on SVG elements */
 // import 'classlist.js';  // Run `npm install --save classlist.js`.
-
 /** IE10 and IE11 requires the following for the Reflect API. */
 // import 'core-js/es6/reflect';
-
-
 /** Evergreen browsers require these. **/
-// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.
+// Used for reflect-metadata in JIT. If you use AOT (and only Angular
+// decorators), you can remove.
 import 'core-js/es7/reflect';
-
-
+/***************************************************************************************************
+ * APPLICATION IMPORTS
+ */
+import 'intl';
+import 'intl/locale-data/jsonp/en';
 /**
  * Required to support Web Animations `@angular/platform-browser/animations`.
  * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation
  **/
 // import 'web-animations-js';  // Run `npm install --save web-animations-js`.
-
-
-
 /***************************************************************************************************
  * Zone JS is required by default for Angular itself.
  */
-import 'zone.js/dist/zone';  // Included with Angular CLI.
-
-
-
-/***************************************************************************************************
- * APPLICATION IMPORTS
- */
+import 'zone.js/dist/zone'; // Included with Angular CLI.
diff --git a/public/src/stories/diagram.stories.ts b/public/src/stories/diagram.stories.ts
index 00dd922..682fa6d 100644
--- a/public/src/stories/diagram.stories.ts
+++ b/public/src/stories/diagram.stories.ts
@@ -13,10 +13,24 @@
   },
   props: {
     list: array('list', [
-      { source: 'node1dsvsdsvd', target: 'node2' },
-      { source: 'node3', target: 'node4' },
-      { source: 'node5', target: 'nodedsvsds6' },
-      { source: 'node7', target: 'node8' }
+      {
+        name1: 'node1dsvsdsvd',
+        name2: 'node2',
+        p1: 'Stream_publish_0',
+        p2: 'capability'
+      },
+      {
+        name1: 'node33',
+        name2: 'node2555',
+        p1: 'requirement2',
+        p2: 'capability11'
+      },
+      {
+        name1: 'namber4',
+        name2: 'namber3',
+        p1: 'requirement3',
+        p2: 'capability4'
+      }
     ])
   }
 }));
diff --git a/public/src/styles.css b/public/src/styles.css
index 4b1d433..a56199a 100644
--- a/public/src/styles.css
+++ b/public/src/styles.css
@@ -1,8 +1,13 @@
 /* You can add global styles to this file, and also import other style files */
-@import '@angular/material/prebuilt-themes/indigo-pink.css';
 
+@import '@angular/material/prebuilt-themes/indigo-pink.css';
 @font-face {
   font-family: 'Open Sans';
+  src: url('./assets/fonts/OpenSans-Regular.ttf') format('ttf');
+}
+
+@font-face {
+  font-family: 'Open Sans-SemiBold';
   src: url('./assets/fonts/OpenSans-SemiBold.ttf') format('ttf');
 }
 
@@ -19,28 +24,31 @@
 app-root,
 app-home {
   height: 100%;
-  font-family: 'Open Sans', sans-serif;
+  font-family: 'Open Sans', sans-serif !important;
   font-size: 13px;
   /* height: 100vh; */
 }
 
+select,
+input,
+textarea {
+  font-family: 'Open Sans', sans-serif !important;
+}
+
 div,
 span {
   font-weight: 400;
 }
 
-div .field-label,
-span .field-label,
-div .field-label > span {
-  font-weight: 600;
-}
-
 /* form input validation border */
-textarea.ng-touched.ng-invalid:not(form),input.ng-touched.ng-invalid:not(form) {
+
+textarea.ng-touched.ng-invalid:not(form),
+input.ng-touched.ng-invalid:not(form) {
   border: 1px solid #cf2a2a !important;
 }
 
 /** reset button **/
+
 .mat-fab.mat-primary,
 .mat-mini-fab.mat-primary,
 .mat-raised-button.mat-primary {
@@ -60,7 +68,13 @@
   box-shadow: none !important;
 }
 
+.mat-raised-button.mat-primary[disabled] {
+  background-color: #979797;
+  color: white;
+}
+
 /* Astrix required */
+
 .required::before {
   content: '*';
   color: red;
@@ -68,9 +82,11 @@
 }
 
 /** overide dialog **/
-.ui-dialog {
+
+/* .ui-dialog {
   border-top: solid 6px #cf2a2a;
-}
+} */
+
 .ui-dialog-titlebar {
   background: white;
 }
diff --git a/public/yarn.lock b/public/yarn.lock
index df0e3b2..c6209bd 100644
--- a/public/yarn.lock
+++ b/public/yarn.lock
@@ -39,9 +39,9 @@
   dependencies:
     tslib "^1.7.1"
 
-"@angular/cli@^1.7.3":
-  version "1.7.3"
-  resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-1.7.3.tgz#ac917b69240bb1b340421e9f985135890e0d53b4"
+"@angular/cli@^1.7.4":
+  version "1.7.4"
+  resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-1.7.4.tgz#b6c31b5fc6f8ea07e55b1b01a26422f5358a4ea6"
   dependencies:
     "@angular-devkit/build-optimizer" "0.3.2"
     "@angular-devkit/core" "0.3.2"
@@ -519,6 +519,10 @@
     react-treebeard "^2.1.0"
     redux "^3.7.2"
 
+"@swimlane/ngx-datatable@^13.0.1":
+  version "13.0.1"
+  resolved "https://registry.yarnpkg.com/@swimlane/ngx-datatable/-/ngx-datatable-13.0.1.tgz#6e949e19130b2054e2715d30d158751c4fbaa502"
+
 "@types/blob-util@1.3.3":
   version "1.3.3"
   resolved "https://registry.yarnpkg.com/@types/blob-util/-/blob-util-1.3.3.tgz#adba644ae34f88e1dd9a5864c66ad651caaf628a"
@@ -764,13 +768,13 @@
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
 
-angular-tree-component@^7.0.1:
-  version "7.0.1"
-  resolved "https://registry.yarnpkg.com/angular-tree-component/-/angular-tree-component-7.0.1.tgz#fc8d0e72d8c34b87131a3ba2bd32ad20945689ac"
+angular-tree-component@^7.1.0:
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/angular-tree-component/-/angular-tree-component-7.1.0.tgz#53674ea944f7147647c7e48931f5fad66237a632"
   dependencies:
-    lodash "4.17.4"
-    mobx ">=3"
-    mobx-angular ">=1"
+    lodash "^4.17.5"
+    mobx "^3.6.2"
+    mobx-angular "2.1.1"
 
 angular2-template-loader@^0.6.2:
   version "0.6.2"
@@ -846,6 +850,10 @@
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
 
+archy@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
+
 are-we-there-yet@~1.1.2:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
@@ -2270,6 +2278,10 @@
   version "0.2.13"
   resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
 
+buffer-from@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04"
+
 buffer-indexof@^1.0.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
@@ -2380,6 +2392,14 @@
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.1.tgz#d09c4b52800aa4c078e2dd81a869aac90d2e54e7"
 
+caching-transform@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1"
+  dependencies:
+    md5-hex "^1.2.0"
+    mkdirp "^0.5.1"
+    write-file-atomic "^1.1.4"
+
 callsite@1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
@@ -2853,6 +2873,15 @@
     readable-stream "^2.2.2"
     typedarray "^0.0.6"
 
+concat-stream@1.6.2:
+  version "1.6.2"
+  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+  dependencies:
+    buffer-from "^1.0.0"
+    inherits "^2.0.3"
+    readable-stream "^2.2.2"
+    typedarray "^0.0.6"
+
 concat-stream@~1.5.0, concat-stream@~1.5.1:
   version "1.5.2"
   resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266"
@@ -2911,7 +2940,7 @@
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
 
-convert-source-map@^1.4.0, convert-source-map@^1.5.0:
+convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
 
@@ -3067,6 +3096,13 @@
     lru-cache "^4.0.1"
     which "^1.2.9"
 
+cross-spawn@^4:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
+  dependencies:
+    lru-cache "^4.0.1"
+    which "^1.2.9"
+
 cryptiles@2.x.x:
   version "2.0.5"
   resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
@@ -3235,9 +3271,9 @@
   version "0.2.2"
   resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
 
-cypress@1.4.2:
-  version "1.4.2"
-  resolved "https://registry.yarnpkg.com/cypress/-/cypress-1.4.2.tgz#d957d631617aa87e64a7eae71502f2e175076638"
+cypress@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/cypress/-/cypress-2.1.0.tgz#a8bd7d9b89c38a1e380db83b57d9bba0dbb95ba4"
   dependencies:
     "@cypress/listr-verbose-renderer" "0.4.1"
     "@cypress/xvfb" "1.1.3"
@@ -3315,6 +3351,10 @@
     bindings "~1.2.1"
     nan "^2.0.7"
 
+debug-log@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f"
+
 debug@*, debug@3.1.0, debug@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
@@ -3864,7 +3904,7 @@
     es6-symbol "~3.1.1"
     event-emitter "~0.3.5"
 
-es6-promise@^4.0.5:
+es6-promise@^4.0.3, es6-promise@^4.0.5:
   version "4.2.4"
   resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29"
 
@@ -4221,6 +4261,15 @@
     mkdirp "0.5.0"
     yauzl "2.4.1"
 
+extract-zip@^1.6.5:
+  version "1.6.7"
+  resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9"
+  dependencies:
+    concat-stream "1.6.2"
+    debug "2.6.9"
+    mkdirp "0.5.1"
+    yauzl "2.4.1"
+
 extsprintf@1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
@@ -4380,6 +4429,14 @@
     statuses "~1.3.1"
     unpipe "~1.0.0"
 
+find-cache-dir@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
+  dependencies:
+    commondir "^1.0.1"
+    mkdirp "^0.5.1"
+    pkg-dir "^1.0.0"
+
 find-cache-dir@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
@@ -4454,6 +4511,13 @@
   version "2.0.5"
   resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
 
+foreground-child@^1.5.3, foreground-child@^1.5.6:
+  version "1.5.6"
+  resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9"
+  dependencies:
+    cross-spawn "^4"
+    signal-exit "^3.0.0"
+
 forever-agent@~0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
@@ -4535,6 +4599,14 @@
     path-is-absolute "^1.0.0"
     rimraf "^2.2.8"
 
+fs-extra@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
+  dependencies:
+    graceful-fs "^4.1.2"
+    jsonfile "^2.1.0"
+    klaw "^1.0.0"
+
 fs-write-stream-atomic@^1.0.8:
   version "1.0.10"
   resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
@@ -4997,6 +5069,13 @@
     inherits "^2.0.3"
     minimalistic-assert "^1.0.0"
 
+hasha@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1"
+  dependencies:
+    is-stream "^1.0.1"
+    pinkie-promise "^2.0.0"
+
 hawk@3.1.3, hawk@~3.1.3:
   version "3.1.3"
   resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
@@ -5414,6 +5493,10 @@
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
 
+intl@^1.2.5:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/intl/-/intl-1.2.5.tgz#82244a2190c4e419f8371f5aa34daa3420e2abde"
+
 invariant@^2.2.2:
   version "2.2.2"
   resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
@@ -5802,6 +5885,15 @@
     loader-utils "^1.1.0"
     schema-utils "^0.3.0"
 
+istanbul-instrumenter-loader@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz#9957bd59252b373fae5c52b7b5188e6fde2a0949"
+  dependencies:
+    convert-source-map "^1.5.0"
+    istanbul-lib-instrument "^1.7.3"
+    loader-utils "^1.1.0"
+    schema-utils "^0.3.0"
+
 istanbul-lib-coverage@^1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da"
@@ -5816,6 +5908,18 @@
   dependencies:
     append-transform "^0.4.0"
 
+istanbul-lib-instrument@^1.10.0, istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.8.0:
+  version "1.10.1"
+  resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b"
+  dependencies:
+    babel-generator "^6.18.0"
+    babel-template "^6.16.0"
+    babel-traverse "^6.18.0"
+    babel-types "^6.18.0"
+    babylon "^6.18.0"
+    istanbul-lib-coverage "^1.2.0"
+    semver "^5.3.0"
+
 istanbul-lib-instrument@^1.7.3, istanbul-lib-instrument@^1.9.1:
   version "1.9.1"
   resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e"
@@ -5828,18 +5932,6 @@
     istanbul-lib-coverage "^1.1.1"
     semver "^5.3.0"
 
-istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.8.0:
-  version "1.10.1"
-  resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b"
-  dependencies:
-    babel-generator "^6.18.0"
-    babel-template "^6.16.0"
-    babel-traverse "^6.18.0"
-    babel-types "^6.18.0"
-    babylon "^6.18.0"
-    istanbul-lib-coverage "^1.2.0"
-    semver "^5.3.0"
-
 istanbul-lib-report@^1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz#922be27c13b9511b979bd1587359f69798c1d425"
@@ -5849,7 +5941,16 @@
     path-parse "^1.0.5"
     supports-color "^3.1.2"
 
-istanbul-lib-source-maps@^1.2.1:
+istanbul-lib-report@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz#2df12188c0fa77990c0d2176d2d0ba3394188259"
+  dependencies:
+    istanbul-lib-coverage "^1.1.2"
+    mkdirp "^0.5.1"
+    path-parse "^1.0.5"
+    supports-color "^3.1.2"
+
+istanbul-lib-source-maps@^1.2.1, istanbul-lib-source-maps@^1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6"
   dependencies:
@@ -5875,6 +5976,12 @@
   dependencies:
     handlebars "^4.0.3"
 
+istanbul-reports@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.4.0.tgz#3d7b44b912ecbe7652a603662b962120739646a1"
+  dependencies:
+    handlebars "^4.0.3"
+
 jasmine-core@~2.8.0:
   version "2.8.0"
   resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e"
@@ -6485,6 +6592,13 @@
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.1.tgz#6fe840e75a11600c9d91e84b33c458e1c46a3529"
 
+karma-phantomjs-launcher@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz#d23ca34801bda9863ad318e3bb4bd4062b13acd2"
+  dependencies:
+    lodash "^4.0.1"
+    phantomjs-prebuilt "^2.1.7"
+
 karma-source-map-support@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/karma-source-map-support/-/karma-source-map-support-1.2.0.tgz#1bf81e7bb4b089627ab352ec4179e117c406a540"
@@ -6524,6 +6638,10 @@
     tmp "0.0.33"
     useragent "^2.1.12"
 
+kew@^0.7.0:
+  version "0.7.0"
+  resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b"
+
 keycode@^2.1.9:
   version "2.1.9"
   resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.1.9.tgz#964a23c54e4889405b4861a5c9f0480d45141dfa"
@@ -7097,6 +7215,16 @@
   version "1.2.17"
   resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
 
+md5-hex@^1.2.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4"
+  dependencies:
+    md5-o-matic "^0.1.1"
+
+md5-o-matic@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3"
+
 md5.js@^1.3.4:
   version "1.3.4"
   resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d"
@@ -7140,6 +7268,12 @@
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
 
+merge-source-map@^1.0.2:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
+  dependencies:
+    source-map "^0.6.1"
+
 merge-stream@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1"
@@ -7327,7 +7461,7 @@
   dependencies:
     minimist "0.0.8"
 
-mobx-angular@>=1:
+mobx-angular@2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/mobx-angular/-/mobx-angular-2.1.1.tgz#d5e36539acb200186dd5a1170806b4776b9a8b88"
 
@@ -7347,13 +7481,13 @@
     remotedev "^0.2.7"
     remotedev-utils "^0.1.4"
 
-mobx@>=3:
-  version "3.5.1"
-  resolved "https://registry.yarnpkg.com/mobx/-/mobx-3.5.1.tgz#8e682ec535cf44e04005b9e37e2df66acc975a42"
+mobx@^3.6.2:
+  version "3.6.2"
+  resolved "https://registry.yarnpkg.com/mobx/-/mobx-3.6.2.tgz#fb9f5ff5090539a1ad54e75dc4c098b602693320"
 
-mobx@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/mobx/-/mobx-4.1.0.tgz#e4a9679cdafbe215b20e32ef93a7031845b3f1af"
+mobx@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/mobx/-/mobx-4.2.0.tgz#ee0b0a4f3da2f4776225046ab208ac329a4841d4"
 
 mocha-rp-reporter@^1.0.12:
   version "1.0.12"
@@ -7534,6 +7668,10 @@
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35"
 
+ngx-datatable@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/ngx-datatable/-/ngx-datatable-1.0.3.tgz#9ef9915aa019e9983aa8e3897b61f400f2fd69d5"
+
 ngx-toastr@^8.2.1:
   version "8.2.1"
   resolved "https://registry.yarnpkg.com/ngx-toastr/-/ngx-toastr-8.2.1.tgz#86cffec666a9dadde5f8a37f2a8fe2ab527b3dde"
@@ -7827,6 +7965,38 @@
   version "1.4.3"
   resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.3.tgz#64348e3b3d80f035b40ac11563d278f8b72db89c"
 
+nyc@^11.7.1:
+  version "11.7.1"
+  resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.7.1.tgz#7cb0a422e501b88ff2c1634341dec2560299d67b"
+  dependencies:
+    archy "^1.0.0"
+    arrify "^1.0.1"
+    caching-transform "^1.0.0"
+    convert-source-map "^1.5.1"
+    debug-log "^1.0.1"
+    default-require-extensions "^1.0.0"
+    find-cache-dir "^0.1.1"
+    find-up "^2.1.0"
+    foreground-child "^1.5.3"
+    glob "^7.0.6"
+    istanbul-lib-coverage "^1.1.2"
+    istanbul-lib-hook "^1.1.0"
+    istanbul-lib-instrument "^1.10.0"
+    istanbul-lib-report "^1.1.3"
+    istanbul-lib-source-maps "^1.2.3"
+    istanbul-reports "^1.4.0"
+    md5-hex "^1.2.0"
+    merge-source-map "^1.0.2"
+    micromatch "^2.3.11"
+    mkdirp "^0.5.0"
+    resolve-from "^2.0.0"
+    rimraf "^2.5.4"
+    signal-exit "^3.0.1"
+    spawn-wrap "^1.4.2"
+    test-exclude "^4.2.0"
+    yargs "11.1.0"
+    yargs-parser "^8.0.0"
+
 oauth-sign@~0.8.1, oauth-sign@~0.8.2:
   version "0.8.2"
   resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
@@ -8245,6 +8415,20 @@
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
 
+phantomjs-prebuilt@^2.1.7:
+  version "2.1.16"
+  resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef"
+  dependencies:
+    es6-promise "^4.0.3"
+    extract-zip "^1.6.5"
+    fs-extra "^1.0.0"
+    hasha "^2.2.0"
+    kew "^0.7.0"
+    progress "^1.1.8"
+    request "^2.81.0"
+    request-progress "^2.0.1"
+    which "^1.2.10"
+
 pify@^2.0.0, pify@^2.3.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -8263,6 +8447,12 @@
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
 
+pkg-dir@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
+  dependencies:
+    find-up "^1.0.0"
+
 pkg-dir@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
@@ -8698,7 +8888,7 @@
     speedometer "~0.1.2"
     through2 "~0.2.3"
 
-progress@1.1.8:
+progress@1.1.8, progress@^1.1.8:
   version "1.1.8"
   resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
 
@@ -9438,6 +9628,12 @@
   dependencies:
     throttleit "~0.0.2"
 
+request-progress@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08"
+  dependencies:
+    throttleit "^1.0.0"
+
 request-promise-core@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6"
@@ -9599,6 +9795,10 @@
     expand-tilde "^2.0.0"
     global-modules "^1.0.0"
 
+resolve-from@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
+
 resolve-from@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
@@ -10023,7 +10223,7 @@
   version "2.2.8"
   resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.8.tgz#033b117d6a2e975804f6f0969dbe7d3d0b355131"
 
-signal-exit@^3.0.0, signal-exit@^3.0.2:
+signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
 
@@ -10053,6 +10253,10 @@
   version "0.0.4"
   resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
 
+slide@^1.1.5:
+  version "1.1.6"
+  resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
+
 smart-buffer@^1.0.13, smart-buffer@^1.0.4:
   version "1.1.15"
   resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16"
@@ -10258,6 +10462,17 @@
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
 
+spawn-wrap@^1.4.2:
+  version "1.4.2"
+  resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c"
+  dependencies:
+    foreground-child "^1.5.6"
+    mkdirp "^0.5.0"
+    os-homedir "^1.0.1"
+    rimraf "^2.6.2"
+    signal-exit "^3.0.2"
+    which "^1.3.0"
+
 spdx-correct@~1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
@@ -10708,7 +10923,7 @@
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/terminal-banner/-/terminal-banner-1.1.0.tgz#ef81ce7d9d7e541a81d09eb2c0257c3d5463c3ea"
 
-test-exclude@^4.1.1:
+test-exclude@^4.1.1, test-exclude@^4.2.0:
   version "4.2.1"
   resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa"
   dependencies:
@@ -10730,6 +10945,10 @@
   version "0.0.2"
   resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf"
 
+throttleit@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
+
 through2@^2.0.0:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
@@ -11626,6 +11845,14 @@
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
 
+write-file-atomic@^1.1.4:
+  version "1.3.4"
+  resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
+  dependencies:
+    graceful-fs "^4.1.11"
+    imurmurhash "^0.1.4"
+    slide "^1.1.5"
+
 write-file-atomic@^2.0.0, write-file-atomic@^2.1.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
@@ -11751,7 +11978,7 @@
   dependencies:
     camelcase "^4.1.0"
 
-yargs-parser@^8.1.0:
+yargs-parser@^8.0.0, yargs-parser@^8.1.0:
   version "8.1.0"
   resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950"
   dependencies:
@@ -11763,6 +11990,23 @@
   dependencies:
     camelcase "^4.1.0"
 
+yargs@11.1.0:
+  version "11.1.0"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77"
+  dependencies:
+    cliui "^4.0.0"
+    decamelize "^1.1.1"
+    find-up "^2.1.0"
+    get-caller-file "^1.0.1"
+    os-locale "^2.0.0"
+    require-directory "^2.1.1"
+    require-main-filename "^1.0.1"
+    set-blocking "^2.0.0"
+    string-width "^2.0.0"
+    which-module "^2.0.0"
+    y18n "^3.2.1"
+    yargs-parser "^9.0.2"
+
 yargs@6.6.0:
   version "6.6.0"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"
diff --git a/src/main/java/org/onap/sdc/dcae/controller/proxy/DcaeProxy.java b/src/main/java/org/onap/sdc/dcae/controller/proxy/DcaeProxy.java
index 84b6918..4900f27 100644
--- a/src/main/java/org/onap/sdc/dcae/controller/proxy/DcaeProxy.java
+++ b/src/main/java/org/onap/sdc/dcae/controller/proxy/DcaeProxy.java
@@ -43,14 +43,16 @@
             log.error("Unexpected FE request logging error :", e);
         }
         String uri = request.getRequestURI();
-        uri = uri.replace("/dcaeProxy", "");
+		uri = uri.replaceFirst("/dcaed", "/dcae"); // replacing the new FE context (/dcaed) with BE context (/dcae)
+        uri = uri.replace("/dcaeProxy", ""); // removing the proxy from the request
         String query = request.getQueryString();
         StringBuilder url = new StringBuilder();
         url.append(beHostUrl).append(uri);
-        if(null != query)
-            url.append("?").append(query);
+        if(null != query){
+            url.append("?").append(query); // restoring all query params if tsuch exists
+		}
         String urlString = url.toString();
-        log.info("Proxy outgoing request={}", urlString);
+        log.info("New FE Proxy outgoing request={}", urlString);
         return urlString;
     }
 
diff --git a/src/main/webapp/WEB-INF/config/dcae-fe/application.properties b/src/main/webapp/WEB-INF/config/dcae-fe/application.properties
index a018abb..37b5a2d 100644
--- a/src/main/webapp/WEB-INF/config/dcae-fe/application.properties
+++ b/src/main/webapp/WEB-INF/config/dcae-fe/application.properties
@@ -1,3 +1,5 @@
 server.port=8181
-server.context-path=/dcae
+# this is the context path in which the dcae_fe is exposed:
+server.context-path=/dcaed
+# this is the dcae-d be url which the dcaeProxy in the FE is delegating the request to
 beUrl=https://zldcrdm2sdc2abe01.3f1a87.rdm2.tci.att.com:8443
diff --git a/src/test/org/onap/sdc/dcae/controller/proxy/DcaeProxyTest.java b/src/test/org/onap/sdc/dcae/controller/proxy/DcaeProxyTest.java
index 94cb2c0..13b9c78 100644
--- a/src/test/org/onap/sdc/dcae/controller/proxy/DcaeProxyTest.java
+++ b/src/test/org/onap/sdc/dcae/controller/proxy/DcaeProxyTest.java
@@ -19,8 +19,8 @@
 
     @Test
     public void testRewriteUrlWithQueryParams(){
-        String requestUrl = "/dcae/dcaeProxy/someBeApi?%20x=1&y=2";
-        String expectedUrl = BEHOST + "/dcae/someBeApi?%20x=1&y=2";
+        String requestUrl = "/dcaed/dcaeProxy/someBeApi?%20x=1&y=2";
+        String expectedUrl = BEHOST + "/dcaed/someBeApi?%20x=1&y=2";
         when(servletRequest.getRequestURI()).thenReturn(requestUrl);
         String target = proxy.rewriteTarget(servletRequest);
         assertTrue(target.equals(expectedUrl));
