From f7d91032ad13f2948161172b3c299bc77b298d85 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Tue, 4 Aug 2020 18:24:55 +0530
Subject: [PATCH 01/28] [skip ci]

[skip ci]
---
 producer_notify_triggers.sql | 479 +++++++++++++++++++++++++++++++++++
 1 file changed, 479 insertions(+)
 create mode 100644 producer_notify_triggers.sql

diff --git a/producer_notify_triggers.sql b/producer_notify_triggers.sql
new file mode 100644
index 0000000..76c519e
--- /dev/null
+++ b/producer_notify_triggers.sql
@@ -0,0 +1,479 @@
+CREATE OR REPLACE FUNCTION "tcs_catalog"."notify_trigger" ()  RETURNS trigger
+  VOLATILE
+AS $body$
+DECLARE
+  rec RECORD;
+  payload TEXT;
+ -- payload2 TEXT;
+  column_name TEXT;
+  column_value TEXT;
+  --payload_items TEXT[];
+  payload2 JSONB;
+   payload_items JSONB;
+   payload_items1 JSONB;
+  pguserval TEXT;
+  uniquecolumn TEXT;
+  logtime TEXT;
+  payloadseqid INTEGER;
+    channelname TEXT;
+  kafkatopicname TEXT;
+BEGIN
+
+pguserval := (SELECT current_user);
+ if pguserval = 'pgsyncuser' then
+    RAISE notice 'pgsyncuser name : %', pguserval;
+   
+    CASE TG_OP
+  WHEN 'INSERT', 'UPDATE' THEN
+     rec := NEW;
+  WHEN 'DELETE' THEN
+     rec := OLD;
+  ELSE
+     RAISE EXCEPTION 'Unknown TG_OP: "%". Should not occur!', TG_OP;
+  END CASE;
+   return rec;
+   -- else
+   end if;
+   
+  -- Set record row depending on operation
+  CASE TG_OP
+  WHEN 'INSERT', 'UPDATE' THEN
+     rec := NEW;
+  WHEN 'DELETE' THEN
+     rec := OLD;
+  ELSE
+     RAISE EXCEPTION 'Unknown TG_OP: "%". Should not occur!', TG_OP;
+  END CASE;
+  
+   --channel and topic details
+   RAISE notice ' % ',TG_TABLE_NAME; 
+  SELECT channel, topic  into channelname, kafkatopicname from common_oltp.pgifx_tbl_channel_mapping where tablename = TG_TABLE_NAME limit 1;
+  if (channelname = '') IS NOT FALSE then
+          channelname = 'dev_db_notifications';
+  RAISE info 'setting default dev_db_notifications';
+  end if;
+  RAISE info 'nofity_common_oltp_trigger';
+  
+  -- Get required fields
+  FOREACH column_name IN ARRAY TG_ARGV LOOP
+    EXECUTE format('SELECT $1.%I::TEXT', column_name)
+    INTO column_value
+    USING rec;
+   case 
+    when 
+    column_name = 'upload_document' then 
+         --  RAISE NOTICE 'upload_document boolean';
+         if column_value = 'false' then
+                column_value = '0';
+        else
+                column_value = '1';       
+        end if;
+    when
+    column_name = 'upload_document_required' then
+         -- RAISE NOTICE 'upload_document_required boolean';
+        if column_value = 'false' then
+                column_value = '0';
+        else
+                column_value = '1';     
+        end if;
+        else
+ --   column_value = regexp_replace(column_value, '^[\\r\\n\\t ]*|[\\r\\n\\t ]*$', '', 'g');
+    end case;
+    --payload_items := array_append(payload_items, '"' || replace(column_name, '"', '\"') || '":"' || replace(column_value, '"', '\"') || '"');
+   --payload_items := coalesce(payload_items,'{}')::jsonb || json_build_object(column_name,column_value)::jsonb;
+   payload_items := coalesce(payload_items,'{}')::jsonb || json_build_object(column_name,replace(column_value,'"','\"'))::jsonb;
+   
+   END LOOP;
+  --RAISE notice 'After guideline json payload 1: "%"', payload_items;
+  --logtime := (select date_display_tz());
+  logtime := (SELECT to_char (now()::timestamptz at time zone 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS"Z"'));
+  payloadseqid := (select nextval('payloadsequence'::regclass));
+  
+  uniquecolumn := (SELECT c.column_name
+        FROM information_schema.key_column_usage AS c
+        LEFT JOIN information_schema.table_constraints AS t
+        ON t.constraint_name = c.constraint_name
+        WHERE t.table_name = TG_TABLE_NAME AND t.constraint_type = 'PRIMARY KEY' limit 1);
+        
+         if (uniquecolumn = '') IS NOT FALSE then
+         uniquecolumn := 'Not-Available';
+         end if;
+         
+  -- exclude any null value columns.
+  payload_items := jsonb_strip_nulls(payload_items);
+
+  RAISE Notice ' payload val: "%"', payload;
+  -- Build the payload
+  --payload := ''
+  --            || '{'
+  --            || '"topic":"' || 'dev.db.postgres.sync' || '",'
+  --            || '"originator":"' || 'tc-postgres-delta-processor' || '",'  
+  --            || '"timestamp":"' || logtime  || '",'
+  --            || '"mime-type":"' || 'application/json'                   || '",'
+  --            || '"payload": {'      
+  --            || '"payloadseqid":"' || payloadseqid                   || '",'
+  --            || '"Uniquecolumn":"' || uniquecolumn                   || '",'
+  --            || '"operation":"' || TG_OP                                || '",'
+  --            || '"schema":"'    || TG_TABLE_SCHEMA                      || '",'
+  --            || '"table":"'     || TG_TABLE_NAME                        || '",'
+  --            || '"data": {'      || array_to_string(payload_items, ',')  || '}'
+  --            || '}}';
+
+  payload := ''
+              || '{'
+              || '"topic":"' || 'dev.db.postgres.sync' || '",'
+              || '"originator":"' || 'tc-postgres-delta-processor' || '",'  
+              || '"timestamp":"' || logtime  || '",'
+              || '"mime-type":"' || 'application/json'                   || '",'
+              || '"payload": {'      
+              || '"payloadseqid":"' || payloadseqid                   || '",'
+              || '"Uniquecolumn":"' || uniquecolumn                   || '",'
+              || '"operation":"' || TG_OP                                || '",'
+              || '"schema":"'    || TG_TABLE_SCHEMA                      || '",'
+              || '"table":"'     || TG_TABLE_NAME                        || '",'
+              || '"data":'       || payload_items  
+             || '}}';
+
+         
+  -- Notify the channel
+  --PERFORM pg_notify('dev_db_notifications', payload);
+   PERFORM pg_notify(channelname, payload);
+  
+  RETURN rec;
+END;
+$body$ LANGUAGE plpgsql
+
+-------------------------------------------------------common_oltp.notify_trigger_common_oltp--------------------------------------------
+CREATE OR REPLACE FUNCTION "common_oltp"."notify_trigger_common_oltp" ()  RETURNS trigger
+  VOLATILE
+AS $body$
+DECLARE
+  rec RECORD;
+  payload TEXT;
+  column_name TEXT;
+  column_value TEXT;
+  pguserval TEXT;
+ --payload_items TEXT[];
+  payload_items JSONB;
+  uniquecolumn TEXT;
+  logtime TEXT;
+  payloadseqid INTEGER;
+  channelname TEXT;
+  kafkatopicname TEXT;
+BEGIN
+
+pguserval := (SELECT current_user);
+ if pguserval = 'pgsyncuser' then
+    RAISE notice 'pgsyncuser name : %', pguserval;
+   
+    CASE TG_OP
+  WHEN 'INSERT', 'UPDATE' THEN
+     rec := NEW;
+  WHEN 'DELETE' THEN
+     rec := OLD;
+  ELSE
+     RAISE EXCEPTION 'Unknown TG_OP: "%". Should not occur!', TG_OP;
+  END CASE;
+   return rec;
+   -- else
+   end if;
+   
+  CASE TG_OP
+  WHEN 'INSERT', 'UPDATE' THEN
+     rec := NEW;
+  WHEN 'DELETE' THEN
+     rec := OLD;
+  ELSE
+     RAISE EXCEPTION 'Unknown TG_OP: "%". Should not occur!', TG_OP;
+  END CASE;
+  
+    --channel and topic details
+  RAISE notice ' % ',TG_TABLE_NAME; 
+  SELECT channel, topic  into channelname, kafkatopicname from common_oltp.pgifx_tbl_channel_mapping where tablename = TG_TABLE_NAME limit 1;
+  if (channelname = '') IS NOT FALSE then
+          channelname = 'dev_db_notifications';
+  RAISE info 'setting default dev_db_notifications';
+  end if;
+  RAISE info 'nofity_common_oltp_trigger';
+  
+  -- Get required fields
+  FOREACH column_name IN ARRAY TG_ARGV LOOP
+    EXECUTE format('SELECT $1.%I::TEXT', column_name)
+    INTO column_value
+    USING rec;
+   case 
+    when 
+    column_name = 'upload_document' then 
+         --  RAISE NOTICE 'upload_document boolean';
+         if column_value = 'false' then
+                column_value = '0';
+        else
+                column_value = '1';
+        end if;
+    when
+    column_name = 'upload_document_required' then
+         -- RAISE NOTICE 'upload_document_required boolean';
+        if column_value = 'false' then
+                column_value = '0';
+        else
+                column_value = '1';     
+        end if;
+     when
+        column_name = 'identify_email_enabled' then
+        if column_value = 'false' then
+                column_value = '0';
+        else
+                column_value = '1';     
+        end if;
+     when
+        column_name = 'identify_handle_enabled' then
+        if column_value = 'false' then
+                column_value = '0';
+        else
+                column_value = '1';     
+        end if;
+     when
+        column_name = 'social_email_verified' then
+        if column_value = 'false' then
+                column_value = 'f';
+        else
+                column_value = 't';     
+        end if;
+    /*  when
+      column_name = 'password' then 
+         if (TG_TABLE_NAME = 'security_user') then
+         column_value := (select regexp_replace(column_value, '([\r\n]+$)', '', 'g'));
+         end if;*/
+      when  
+        column_name = 'create_date' then 
+         if (TG_TABLE_NAME = 'user_social_login') then
+         column_value := (select to_char (column_value::timestamp, 'YYYY-MM-DD HH24:MI:SS'));
+         else
+         column_value := (select to_char (column_value::timestamp, 'YYYY-MM-DD HH24:MI:SS.MS'));
+         end if;
+      when
+         column_name = 'modify_date' then 
+         if (TG_TABLE_NAME = 'security_user')  or (TG_TABLE_NAME = 'user_social_login') then
+         column_value := (select to_char (column_value::timestamp, 'YYYY-MM-DD HH24:MI:SS'));
+         else
+         column_value := (select to_char (column_value::timestamp, 'YYYY-MM-DD HH24:MI:SS.MS'));
+         end if;
+      when
+         column_name = 'last_login' then 
+         column_value := (select to_char (column_value::timestamp, 'YYYY-MM-DD HH24:MI:SS.MS'));
+      when
+         column_name = 'last_site_hit_date' then 
+         column_value := (select to_char (column_value::timestamp, 'YYYY-MM-DD HH24:MI:SS.MS'));
+      when
+         column_name = 'corona_event_timestamp' then 
+         column_value := (select to_char (column_value::timestamp, 'YYYY-MM-DD HH24:MI:SS.MS'));
+      when
+         column_name = 'created_at' then 
+         column_value := (select to_char (column_value::timestamp, 'YYYY-MM-DD HH24:MI:SS.MS'));
+
+         --column_name = 'password' then 
+         --column_value := regexp_replace(column_value, '\s', '', 'g');
+         --column_value := regexp_replace(column_value, E'[\\n\\r]+', '\n\r', 'g');  
+           else
+    -- RAISE NOTICE ' not boolean';
+    end case;
+   -- payload_items := coalesce(payload_items,'{}')::jsonb || json_build_object(column_name,trim(regexp_replace(column_value, E'\n', ' ', 'g')))::jsonb;
+   --payload_items := coalesce(payload_items,'{}')::jsonb || json_build_object(column_name,column_value)::jsonb;
+   payload_items := coalesce(payload_items,'{}')::jsonb || json_build_object(column_name,replace(column_value,'"','\"'))::jsonb;
+   -- payload_items := array_append(payload_items, '"' || replace(column_name, '"', '\"') || '":"' || replace(column_value, '"', '\"') || '"');
+  END LOOP;
+  --logtime := (select date_display_tz());
+  logtime := (SELECT to_char (now()::timestamptz at time zone 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS"Z"'));
+  payloadseqid := (select nextval('common_oltp.payloadsequence'::regclass));
+
+  uniquecolumn := (SELECT c.column_name
+        FROM information_schema.key_column_usage AS c
+        LEFT JOIN information_schema.table_constraints AS t
+        ON t.constraint_name = c.constraint_name
+        WHERE t.table_name = TG_TABLE_NAME AND t.constraint_type = 'PRIMARY KEY' LIMIT 1);
+        
+        if (uniquecolumn = '') IS NOT FALSE then
+         uniquecolumn := 'Not-Available';
+         end if;
+         
+    -- exclude any null value columns.
+  payload_items := jsonb_strip_nulls(payload_items);
+
+  -- Build the payload
+  payload := ''
+               || '{'
+              || '"topic":"' || 'dev.db.postgres.sync' || '",'
+              || '"originator":"' || 'tc-postgres-delta-processor' || '",'  
+            || '"timestamp":"' || logtime  || '",'
+              || '"mime-type":"' || 'application/json'                   || '",'
+              || '"payload": {'      
+              || '"payloadseqid":"' || payloadseqid                   || '",'
+              || '"Uniquecolumn":"' || uniquecolumn                   || '",'
+              || '"operation":"' || TG_OP                                || '",'
+              || '"schema":"'    || TG_TABLE_SCHEMA                      || '",'
+              || '"table":"'     || TG_TABLE_NAME                        || '",'
+              || '"data": '    || payload_items
+              --|| '"data": {'      || array_to_string(payload_items, ',')  || '}'
+              || '}}';
+--  || '"data": {'      || array_to_string(payload_items, ',')  || '}'
+--|| '"data":'       || payload_items  
+  -- Notify the channel
+ -- PERFORM pg_notify('dev_db_notifications', payload);
+  PERFORM pg_notify(channelname, payload);
+  RETURN rec;
+END;
+$body$ LANGUAGE plpgsql
+
+-------------------------------------------------------informixoltp.notify_trigger_informixoltp--------------------------------------------
+
+CREATE OR REPLACE FUNCTION "informixoltp"."notify_trigger_informixoltp" ()  RETURNS trigger
+  VOLATILE
+AS $body$
+DECLARE
+  rec RECORD;
+  payload TEXT;
+  column_name TEXT;
+  column_value TEXT;
+ -- payload_items TEXT[];
+    payload_items JSONB;
+  pguserval TEXT;
+  uniquecolumn TEXT;
+  logtime TEXT;
+  payloadseqid INTEGER;
+  channelname TEXT;
+  kafkatopicname TEXT;
+BEGIN
+
+pguserval := (SELECT current_user);
+ if pguserval = 'pgsyncuser' then
+    RAISE notice 'pgsyncuser name : %', pguserval;
+   
+    CASE TG_OP
+  WHEN 'INSERT', 'UPDATE' THEN
+     rec := NEW;
+  WHEN 'DELETE' THEN
+     rec := OLD;
+  ELSE
+     RAISE EXCEPTION 'Unknown TG_OP: "%". Should not occur!', TG_OP;
+  END CASE;
+   return rec;
+   -- else
+   end if;
+   
+  CASE TG_OP
+  WHEN 'INSERT', 'UPDATE' THEN
+     rec := NEW;
+  WHEN 'DELETE' THEN
+     rec := OLD;
+  ELSE
+     RAISE EXCEPTION 'Unknown TG_OP: "%". Should not occur!', TG_OP;
+  END CASE;
+ 
+     --channel and topic details
+  RAISE notice ' % ',TG_TABLE_NAME; 
+  SELECT channel, topic  into channelname, kafkatopicname from common_oltp.pgifx_tbl_channel_mapping where tablename = TG_TABLE_NAME limit 1;
+  if (channelname = '') IS NOT FALSE then
+  channelname = 'dev_db_notifications';
+  RAISE info 'setting default dev_db_notifications';
+  end if;
+
+  RAISE notice '%', channelname;
+  
+  -- Get required fields
+  FOREACH column_name IN ARRAY TG_ARGV LOOP
+    EXECUTE format('SELECT $1.%I::TEXT', column_name)
+    INTO column_value
+    USING rec;
+   case 
+    when 
+    column_name = 'upload_document' then 
+         --  RAISE NOTICE 'upload_document boolean';
+         if column_value = 'false' then
+                column_value = '0';
+        else
+                column_value = '1';
+        end if;
+    when
+    column_name = 'upload_document_required' then
+         -- RAISE NOTICE 'upload_document_required boolean';
+        if column_value = 'false' then
+                column_value = '0';
+        else
+                column_value = '1';     
+        end if;
+     when
+        column_name = 'identify_email_enabled' then
+        if column_value = 'false' then
+                column_value = '0';
+        else
+                column_value = '1';     
+        end if;
+     when
+        column_name = 'identify_handle_enabled' then
+        if column_value = 'false' then
+                column_value = '0';
+        else
+                column_value = '1';     
+        end if;
+      when  
+     column_name = 'create_date' then 
+      column_value := (select to_char (column_value::timestamp, 'YYYY-MM-DD HH24:MI:SS.MS'));
+      when
+         column_name = 'modify_date' then 
+       column_value := (select to_char (column_value::timestamp, 'YYYY-MM-DD HH24:MI:SS.MS'));
+       when
+         column_name = 'member_since' then 
+       column_value := (select to_char (column_value::timestamp, 'YYYY-MM-DD HH24:MI:SS.MS'));   
+     -- when
+      --   column_name = 'achievement_date' then 
+      --column_value := (select to_date (column_value, 'MM/DD/YYYY'));
+      --column_value := (select to_date (column_value));
+     
+           else
+    -- RAISE NOTICE ' not boolean';
+    end case;
+  --  payload_items := array_append(payload_items, '"' || replace(column_name, '"', '\"') || '":"' || replace(column_value, '"', '\"') || '"');
+    --payload_items := coalesce(payload_items,'{}')::jsonb || json_build_object(column_name,column_value)::jsonb;
+    payload_items := coalesce(payload_items,'{}')::jsonb || json_build_object(column_name,replace(column_value,'"','\"'))::jsonb;
+  END LOOP;
+  --logtime := (select date_display_tz());
+  logtime := (SELECT to_char (now()::timestamptz at time zone 'UTC', 'YYYY-MM-DD"T"HH24:MI:SS"Z"'));
+  payloadseqid := (select nextval('common_oltp.payloadsequence'::regclass));
+
+  uniquecolumn := (SELECT c.column_name
+        FROM information_schema.key_column_usage AS c
+        LEFT JOIN information_schema.table_constraints AS t
+        ON t.constraint_name = c.constraint_name
+        WHERE t.table_name = TG_TABLE_NAME AND t.constraint_type = 'PRIMARY KEY' LIMIT 1);
+        
+        if (uniquecolumn = '') IS NOT FALSE then
+         uniquecolumn := 'Not-Available';
+         end if;
+         
+     -- exclude any null value columns.
+  payload_items := jsonb_strip_nulls(payload_items);
+
+  -- Build the payload
+  payload := ''
+               || '{'
+              || '"topic":"' || 'dev.db.postgres.sync' || '",'
+              || '"originator":"' || 'tc-postgres-delta-processor' || '",'  
+            || '"timestamp":"' || logtime  || '",'
+              || '"mime-type":"' || 'application/json'                   || '",'
+              || '"payload": {'      
+              || '"payloadseqid":"' || payloadseqid                   || '",'
+              || '"Uniquecolumn":"' || uniquecolumn                   || '",'
+              || '"operation":"' || TG_OP                                || '",'
+              || '"schema":"'    || TG_TABLE_SCHEMA                      || '",'
+              || '"table":"'     || TG_TABLE_NAME                        || '",'
+             -- || '"data": {'      || array_to_string(payload_items, ',')  || '}'
+               || '"data": '    || payload_items
+              || '}}';
+
+  -- Notify the channel
+  --PERFORM pg_notify('dev_db_notifications', payload);
+  PERFORM pg_notify(channelname, payload);
+  
+  RETURN rec;
+END;
+$body$ LANGUAGE plpgsql

From ecf191a525e1239f52c2b6890a8299e8b05f6659 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Wed, 26 Aug 2020 16:22:09 +0530
Subject: [PATCH 02/28] [skip ci]

[skip ci]
---
 src/services/updateInformix.js | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index 3b7cf86..7e545ac 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -4,7 +4,12 @@ const logger = require('../common/logger')
 
 String.prototype.escapeSpecialChars = function () {
   return this.replace(/\n/g, "\\n")
-    .replace(/\r/g, "\\r");
+    .replace(/\r/g, "\\r")
+    .replace(/\t/g, "\\t")
+    .replace(/\b/g, "\\b")
+    .replace(/\f/g, "\\f")
+    .replace(/\&/g, "\\&");
+    
 };
 
 async function updateInformix(payload) {

From ad093ac97853d8f7064c0b7a929a28bd93ce75f3 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Wed, 26 Aug 2020 16:23:09 +0530
Subject: [PATCH 03/28] Update config.yml

---
 .circleci/config.yml | 2 --
 1 file changed, 2 deletions(-)

diff --git a/.circleci/config.yml b/.circleci/config.yml
index f0e269d..7109743 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -44,7 +44,6 @@ build_steps: &build_steps
             ./awsconfiguration.sh ${DEPLOY_ENV}
             source awsenvconf
             
-
             #scorecard test consumer remove later
             #./buildenv.sh -e ${DEPLOY_ENV} -b ${LOGICAL_ENV}-${APP_NAME}-consumer_scorecard-deployvar
             #source buildenvvar
@@ -61,7 +60,6 @@ build_steps: &build_steps
             source buildenvvar
             ./master_deploy.sh -d ECS -e ${DEPLOY_ENV} -t latest -s ${GLOBAL_ENV}-global-appvar,${LOGICAL_ENV}-${APP_NAME}-appvar -i postgres-ifx-processer
             
-
             #echo "Running Masterscript - deploy postgres-ifx-processer producer"
             #if [ -e ${LOGICAL_ENV}-${APP_NAME}-consumer-deployvar.json ]; then  sudo rm -vf ${LOGICAL_ENV}-${APP_NAME}-consumer-deployvar.json; fi
             #./buildenv.sh -e ${DEPLOY_ENV} -b ${LOGICAL_ENV}-${APP_NAME}-producer-deployvar

From c03b0d2fb487f11359e69ea3d20715376c4b82fd Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Wed, 26 Aug 2020 16:36:08 +0530
Subject: [PATCH 04/28] Update updateInformix.js

---
 src/services/updateInformix.js | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index 7e545ac..cc753bf 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -6,7 +6,6 @@ String.prototype.escapeSpecialChars = function () {
   return this.replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
-    .replace(/\b/g, "\\b")
     .replace(/\f/g, "\\f")
     .replace(/\&/g, "\\&");
     

From a84c4804fa7158a3ac2439df6f98fbd8fd98c8c4 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Wed, 26 Aug 2020 16:56:52 +0530
Subject: [PATCH 05/28] Update updateInformix.js

---
 src/services/updateInformix.js | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index cc753bf..11dafe7 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -6,8 +6,7 @@ String.prototype.escapeSpecialChars = function () {
   return this.replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
-    .replace(/\f/g, "\\f")
-    .replace(/\&/g, "\\&");
+    .replace(/\f/g, "\\f");
     
 };
 

From 0c5b1bedcf7fd0bf0fc54ad81ce431b3a54b392d Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Wed, 26 Aug 2020 17:37:01 +0530
Subject: [PATCH 06/28] Update updateInformix.js

---
 src/services/updateInformix.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index 11dafe7..f21cc7d 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -6,7 +6,8 @@ String.prototype.escapeSpecialChars = function () {
   return this.replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
-    .replace(/\f/g, "\\f");
+    .replace(/\f/g, "\\f")
+    .replace(/\\/g, "\\\");
     
 };
 

From 0473dd445c3735ed4c46e2bc255e65d7081eefbf Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Wed, 26 Aug 2020 17:43:27 +0530
Subject: [PATCH 07/28] Update updateInformix.js

---
 src/services/updateInformix.js | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index f21cc7d..5910ea3 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -6,9 +6,7 @@ String.prototype.escapeSpecialChars = function () {
   return this.replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
-    .replace(/\f/g, "\\f")
-    .replace(/\\/g, "\\\");
-    
+    .replace(/\f/g, "\\f");
 };
 
 async function updateInformix(payload) {

From af7941c034502cf76b02b5a76afaf8e7adae78c5 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Thu, 27 Aug 2020 16:29:21 +0530
Subject: [PATCH 08/28] Update updateInformix.js

---
 src/services/updateInformix.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index 5910ea3..5d7e411 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -6,7 +6,8 @@ String.prototype.escapeSpecialChars = function () {
   return this.replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
-    .replace(/\f/g, "\\f");
+    .replace(/\f/g, "\\f")
+    .replace("/\/g", "\\");
 };
 
 async function updateInformix(payload) {

From 5d395f80439eb27729988beaf8f1c34d07e2df5f Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Thu, 27 Aug 2020 16:47:11 +0530
Subject: [PATCH 09/28] Update updateInformix.js

---
 src/services/updateInformix.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index 5d7e411..9c1b869 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -7,7 +7,7 @@ String.prototype.escapeSpecialChars = function () {
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
     .replace(/\f/g, "\\f")
-    .replace("/\/g", "\\");
+    .replace("/\/g", "\");
 };
 
 async function updateInformix(payload) {

From d4acfa804fa81f54733e3db6d0ddc8a6e2d7345d Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Thu, 27 Aug 2020 16:56:19 +0530
Subject: [PATCH 10/28] Update updateInformix.js

---
 src/services/updateInformix.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index 9c1b869..f49ab8f 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -7,7 +7,7 @@ String.prototype.escapeSpecialChars = function () {
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
     .replace(/\f/g, "\\f")
-    .replace("/\/g", "\");
+    .replace("|\|","\\");
 };
 
 async function updateInformix(payload) {

From 6bd736f6bae6918231aea4f780dd352cc36123c9 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Thu, 27 Aug 2020 17:06:08 +0530
Subject: [PATCH 11/28] Update updateInformix.js

---
 src/services/updateInformix.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index f49ab8f..9becae0 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -7,7 +7,7 @@ String.prototype.escapeSpecialChars = function () {
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
     .replace(/\f/g, "\\f")
-    .replace("|\|","\\");
+    .replace("|\|g","\\\\");
 };
 
 async function updateInformix(payload) {

From 550305f68805cf4ad0184140e65b6d61f86a429f Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Thu, 27 Aug 2020 17:17:27 +0530
Subject: [PATCH 12/28] Update updateInformix.js

---
 src/services/updateInformix.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index 9becae0..ac832ec 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -7,7 +7,7 @@ String.prototype.escapeSpecialChars = function () {
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
     .replace(/\f/g, "\\f")
-    .replace("|\|g","\\\\");
+    .replace("/\/g","\\\");
 };
 
 async function updateInformix(payload) {

From 2a53649509aa3bc9d5dcb330380101e2259e8299 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Thu, 27 Aug 2020 17:28:36 +0530
Subject: [PATCH 13/28] Update updateInformix.js

---
 src/services/updateInformix.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index ac832ec..536f931 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -7,7 +7,7 @@ String.prototype.escapeSpecialChars = function () {
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
     .replace(/\f/g, "\\f")
-    .replace("/\/g","\\\");
+    .replace("|\|g","\\\");
 };
 
 async function updateInformix(payload) {

From f166366ffca69562588a8ba3520bf98bd820f5b4 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Thu, 27 Aug 2020 17:30:13 +0530
Subject: [PATCH 14/28] Update updateInformix.js

---
 src/services/updateInformix.js | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index 536f931..5910ea3 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -6,8 +6,7 @@ String.prototype.escapeSpecialChars = function () {
   return this.replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
-    .replace(/\f/g, "\\f")
-    .replace("|\|g","\\\");
+    .replace(/\f/g, "\\f");
 };
 
 async function updateInformix(payload) {

From 900d3c73e1e2c4fa10b33f54d40a2cfc1e80da83 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Fri, 28 Aug 2020 15:36:50 +0530
Subject: [PATCH 15/28] Update updateInformix.js

---
 src/services/updateInformix.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index 5910ea3..0fc080c 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -6,7 +6,8 @@ String.prototype.escapeSpecialChars = function () {
   return this.replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
-    .replace(/\f/g, "\\f");
+    .replace(/\f/g, "\\f")
+    .replace(/\\/g, "\\\\");
 };
 
 async function updateInformix(payload) {

From fa11a6a746b8b33b9bd6bbb6c52aec46e172a4be Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Fri, 28 Aug 2020 16:58:53 +0530
Subject: [PATCH 16/28] Update updateInformix.js

---
 src/services/updateInformix.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index 0fc080c..33e9e6b 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -6,8 +6,8 @@ String.prototype.escapeSpecialChars = function () {
   return this.replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
-    .replace(/\f/g, "\\f")
-    .replace(/\\/g, "\\\\");
+    .replace(/\f/g, "\\f");
+   // .replace(/\\/g, "\\\\");
 };
 
 async function updateInformix(payload) {

From 29e464a29b6704a572e1f8f6bc4d2d507d24a43f Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Fri, 28 Aug 2020 17:45:10 +0530
Subject: [PATCH 17/28] Update updateInformix.js

---
 src/services/updateInformix.js | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index 33e9e6b..dd46a76 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -3,11 +3,16 @@ const informix = require('../common/informixWrapper')
 const logger = require('../common/logger')
 
 String.prototype.escapeSpecialChars = function () {
-  return this.replace(/\n/g, "\\n")
+/*  return this.replace(/\n/g, "\\n")
+    .replace(/\r/g, "\\r")
+    .replace(/\t/g, "\\t")
+    .replace(/\f/g, "\\f");
+   // .replace(/\\/g, "\\\\"); */
+   return this.replace(/\\/g, "\\\\")
+    .replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
     .replace(/\f/g, "\\f");
-   // .replace(/\\/g, "\\\\");
 };
 
 async function updateInformix(payload) {

From e07c1bba498e313da6d2bf1e668118b430952e9e Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Fri, 28 Aug 2020 19:11:29 +0530
Subject: [PATCH 18/28] Update updateInformix.js

---
 src/services/updateInformix.js | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index dd46a76..2e4e4df 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -8,7 +8,9 @@ String.prototype.escapeSpecialChars = function () {
     .replace(/\t/g, "\\t")
     .replace(/\f/g, "\\f");
    // .replace(/\\/g, "\\\\"); */
+
    return this.replace(/\\/g, "\\\\")
+    .replace(/\\\"/g, '\\\\"')
     .replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")

From b56ade91250c56aa558cd8868a76257063a2cde3 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Mon, 31 Aug 2020 10:23:40 +0530
Subject: [PATCH 19/28] Update updateInformix.js

---
 src/services/updateInformix.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index 2e4e4df..c3f8153 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -10,7 +10,7 @@ String.prototype.escapeSpecialChars = function () {
    // .replace(/\\/g, "\\\\"); */
 
    return this.replace(/\\/g, "\\\\")
-    .replace(/\\\"/g, '\\\\"')
+  //  .replace(/\\\"/g, '\\\\"')
     .replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")

From 4451841469178e2ed1b807bdbca60ef993071e17 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Mon, 31 Aug 2020 11:55:18 +0530
Subject: [PATCH 20/28] Update updateInformix.js

---
 src/services/updateInformix.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index c3f8153..dd96717 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -10,7 +10,7 @@ String.prototype.escapeSpecialChars = function () {
    // .replace(/\\/g, "\\\\"); */
 
    return this.replace(/\\/g, "\\\\")
-  //  .replace(/\\\"/g, '\\\\"')
+    .replace(/\\\"/g, '\\\"')
     .replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")

From 2df9c9f35d5be8ab8f2b23cc87e79765c9d34653 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Mon, 31 Aug 2020 12:06:03 +0530
Subject: [PATCH 21/28] Update updateInformix.js

---
 src/services/updateInformix.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index dd96717..dc23ac4 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -10,7 +10,7 @@ String.prototype.escapeSpecialChars = function () {
    // .replace(/\\/g, "\\\\"); */
 
    return this.replace(/\\/g, "\\\\")
-    .replace(/\\\"/g, '\\\"')
+    .replace(/\\"/g, '\\\"')
     .replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")

From b663e74832e4d8c97279b037f3dda0b85b004038 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Mon, 31 Aug 2020 12:52:21 +0530
Subject: [PATCH 22/28] Update updateInformix.js

---
 src/services/updateInformix.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index dc23ac4..9ce36c5 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -9,8 +9,8 @@ String.prototype.escapeSpecialChars = function () {
     .replace(/\f/g, "\\f");
    // .replace(/\\/g, "\\\\"); */
 
-   return this.replace(/\\/g, "\\\\")
-    .replace(/\\"/g, '\\\"')
+   return this.replace(/\\/g, "\\\")
+    //.replace(/\\"/g, '\\\"')
     .replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")

From 51be12ba909260adcd0b8cf9f4c61bf9752677ad Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Mon, 31 Aug 2020 12:58:52 +0530
Subject: [PATCH 23/28] Update updateInformix.js

---
 src/services/updateInformix.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index 9ce36c5..4d48be7 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -9,7 +9,7 @@ String.prototype.escapeSpecialChars = function () {
     .replace(/\f/g, "\\f");
    // .replace(/\\/g, "\\\\"); */
 
-   return this.replace(/\\/g, "\\\")
+   return this.replace(/\\/g, '\\')
     //.replace(/\\"/g, '\\\"')
     .replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")

From 3be25c1a4bfb6764785c917e7c95803512401a72 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Mon, 31 Aug 2020 16:26:38 +0530
Subject: [PATCH 24/28] [skip ci]

[skip ci]
---
 package.json | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/package.json b/package.json
index e27d0b3..7158aa1 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
     "lint:fix": "standard --env mocha --fix",
     "producer": "node ./src/producer.js",
     "producer_channel_2": "node ./src/producer.js",
-    "consumer": "node ./src/consumer.js",
+    "consumer": "nodemon ./src/consumer.js",
     "producer_dd": "node ./src/producer.js failover",
     "reconsiler1": "node ./src/reconsiler-audit.js",
     "reconsiler2": "node ./src/reconsiler-dd-new.js",
@@ -28,6 +28,7 @@
     "winston": "^3.2.1",
     "lodash": "^4.17.15",
     "topcoder-bus-api-wrapper": "^1.0.1",
+    "nodemon": "latest",
     "topcoder-healthcheck-dropin": "^1.0.3"
   },
   "devDependencies": {

From a18edbd17e3c3dab9684521dd3728b5606b6b823 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Mon, 31 Aug 2020 16:31:59 +0530
Subject: [PATCH 25/28] Update updateInformix.js

---
 src/services/updateInformix.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index 4d48be7..fdd7500 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -10,7 +10,7 @@ String.prototype.escapeSpecialChars = function () {
    // .replace(/\\/g, "\\\\"); */
 
    return this.replace(/\\/g, '\\')
-    //.replace(/\\"/g, '\\\"')
+    .replace(/\\\\\\\"/g, '\\\"')
     .replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")

From 6eec033d9f9d24386be4d79888c446abe4f8ad50 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Thu, 3 Sep 2020 18:44:53 +0530
Subject: [PATCH 26/28] Update updateInformix.js

---
 src/services/updateInformix.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index fdd7500..ff4d914 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -9,7 +9,7 @@ String.prototype.escapeSpecialChars = function () {
     .replace(/\f/g, "\\f");
    // .replace(/\\/g, "\\\\"); */
 
-   return this.replace(/\\/g, '\\')
+   return this.replace(/\\/g, '\\\\')
     .replace(/\\\\\\\"/g, '\\\"')
     .replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")

From 8c943b654762d26b36f91205c7f1aa8b6f1e52d4 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Thu, 3 Sep 2020 19:03:31 +0530
Subject: [PATCH 27/28] Update updateInformix.js

---
 src/services/updateInformix.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/services/updateInformix.js b/src/services/updateInformix.js
index ff4d914..53b2b3b 100644
--- a/src/services/updateInformix.js
+++ b/src/services/updateInformix.js
@@ -10,7 +10,7 @@ String.prototype.escapeSpecialChars = function () {
    // .replace(/\\/g, "\\\\"); */
 
    return this.replace(/\\/g, '\\\\')
-    .replace(/\\\\\\\"/g, '\\\"')
+    .replace(/\\\"/g, '\"')
     .replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")

From f96d314790d1f335ee1ba14f72caf4a504bfb393 Mon Sep 17 00:00:00 2001
From: nkumar-topcoder <33625707+nkumar-topcoder@users.noreply.github.com>
Date: Fri, 11 Sep 2020 10:54:43 +0530
Subject: [PATCH 28/28] [skip ci]

[skip ci]
---
 package.json | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/package.json b/package.json
index 7158aa1..e27d0b3 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
     "lint:fix": "standard --env mocha --fix",
     "producer": "node ./src/producer.js",
     "producer_channel_2": "node ./src/producer.js",
-    "consumer": "nodemon ./src/consumer.js",
+    "consumer": "node ./src/consumer.js",
     "producer_dd": "node ./src/producer.js failover",
     "reconsiler1": "node ./src/reconsiler-audit.js",
     "reconsiler2": "node ./src/reconsiler-dd-new.js",
@@ -28,7 +28,6 @@
     "winston": "^3.2.1",
     "lodash": "^4.17.15",
     "topcoder-bus-api-wrapper": "^1.0.1",
-    "nodemon": "latest",
     "topcoder-healthcheck-dropin": "^1.0.3"
   },
   "devDependencies": {