From f6909b08ebad63c04f56d0f26d668fe91618a985 Mon Sep 17 00:00:00 2001 From: Thanakorn Date: Mon, 14 Sep 2026 17:05:57 +0700 Subject: [PATCH] Stop tracking PM2 log files --- .gitignore | 3 + nodejs/logs/{socket-error.log => .gitkeep} | 0 nodejs/logs/scheduler-error.log | 21 -- nodejs/logs/scheduler.log | 58 ----- nodejs/logs/socket.log | 255 --------------------- 5 files changed, 3 insertions(+), 334 deletions(-) rename nodejs/logs/{socket-error.log => .gitkeep} (100%) delete mode 100644 nodejs/logs/scheduler-error.log delete mode 100644 nodejs/logs/scheduler.log delete mode 100644 nodejs/logs/socket.log diff --git a/.gitignore b/.gitignore index aab04c9..3648d90 100755 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,9 @@ app/uploads node_modules/ nodejs/.env +# PM2 runtime logs (written by the node container; nodejs/logs/.gitkeep keeps the folder) +nodejs/logs/*.log + # Docker deploy secrets /.env diff --git a/nodejs/logs/socket-error.log b/nodejs/logs/.gitkeep similarity index 100% rename from nodejs/logs/socket-error.log rename to nodejs/logs/.gitkeep diff --git a/nodejs/logs/scheduler-error.log b/nodejs/logs/scheduler-error.log deleted file mode 100644 index 373e447..0000000 --- a/nodejs/logs/scheduler-error.log +++ /dev/null @@ -1,21 +0,0 @@ -2026-07-22T14:37:48: [2026-07-22T07:37:48.626Z] [PID: 505] [NODE-CRON] [WARN] missed execution at Wed Jul 22 2026 14:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T15:14:43: [2026-07-23T08:14:43.767Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 15:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T20:39:04: [2026-07-23T13:39:04.943Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 17:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T20:39:04: [2026-07-23T13:39:04.953Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 18:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T20:39:04: [2026-07-23T13:39:04.959Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 19:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T20:39:04: [2026-07-23T13:39:04.965Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 20:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T21:02:17: [2026-07-23T14:02:17.033Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 21:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T21:11:21: [2026-07-23T14:11:21.977Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 17:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T21:11:21: [2026-07-23T14:11:21.982Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 18:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T21:11:21: [2026-07-23T14:11:21.985Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 19:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T21:11:21: [2026-07-23T14:11:21.987Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 20:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-25T14:44:32: [2026-07-25T07:44:32.121Z] [PID: 476] [NODE-CRON] [WARN] missed execution at Sat Jul 25 2026 13:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-25T14:44:32: [2026-07-25T07:44:32.127Z] [PID: 476] [NODE-CRON] [WARN] missed execution at Sat Jul 25 2026 14:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-25T15:24:00: [2026-07-25T08:24:00.029Z] [PID: 476] [NODE-CRON] [WARN] missed execution at Sat Jul 25 2026 14:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-25T15:24:00: [2026-07-25T08:24:00.032Z] [PID: 476] [NODE-CRON] [WARN] missed execution at Sat Jul 25 2026 15:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-08-03T10:11:12: [2026-08-03T03:11:12.241Z] [PID: 477] [NODE-CRON] [WARN] missed execution at Mon Aug 03 2026 10:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-08-03T10:31:46: [2026-08-03T03:31:46.573Z] [PID: 477] [NODE-CRON] [WARN] missed execution at Mon Aug 03 2026 10:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-08-03T11:08:26: [2026-08-03T04:08:26.686Z] [PID: 477] [NODE-CRON] [WARN] missed execution at Mon Aug 03 2026 11:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-08-04T15:02:31: [2026-08-04T08:02:31.243Z] [PID: 78443] [NODE-CRON] [WARN] missed execution at Tue Aug 04 2026 15:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-08-04T15:32:15: [2026-08-04T08:32:15.561Z] [PID: 78443] [NODE-CRON] [WARN] missed execution at Tue Aug 04 2026 15:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-08-04T17:01:03: [2026-08-04T10:01:03.525Z] [PID: 78443] [NODE-CRON] [WARN] missed execution at Tue Aug 04 2026 17:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. diff --git a/nodejs/logs/scheduler.log b/nodejs/logs/scheduler.log deleted file mode 100644 index 7b38dd2..0000000 --- a/nodejs/logs/scheduler.log +++ /dev/null @@ -1,58 +0,0 @@ -2026-07-20T17:35:51: [scheduler] running — etl_gl + etl_stock (hourly) | low_stock + overdue_invoices alerts (daily) -2026-07-20T21:00:00: [scheduler] etl_gl slot=21 -2026-07-20T21:00:00: [scheduler] etl_gl slot=21 — no companies -2026-07-21T16:06:58: [scheduler] running — etl_gl + etl_stock (hourly) | low_stock + overdue_invoices alerts (daily) -2026-07-22T13:08:58: [scheduler] running — etl_gl + etl_stock (hourly) | low_stock + overdue_invoices alerts (daily) -2026-07-22T14:37:48: [2026-07-22T07:37:48.626Z] [PID: 505] [NODE-CRON] [WARN] missed execution at Wed Jul 22 2026 14:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-22T15:00:00: [scheduler] etl_gl slot=15 -2026-07-22T15:00:00: [scheduler] etl_gl slot=15 — no companies -2026-07-22T15:30:00: [scheduler] etl_stock slot=15 -2026-07-22T15:30:00: [scheduler] etl_stock slot=15 — no companies -2026-07-22T16:00:00: [scheduler] etl_gl slot=16 -2026-07-22T16:00:00: [scheduler] etl_gl slot=16 — no companies -2026-07-23T12:11:51: [scheduler] running — etl_gl + etl_stock (hourly) | low_stock + overdue_invoices alerts (daily) -2026-07-23T12:30:00: [scheduler] etl_stock slot=12 -2026-07-23T12:30:00: [scheduler] etl_stock slot=12 — no companies -2026-07-23T13:36:04: [scheduler] running — etl_gl + etl_stock (hourly) | low_stock + overdue_invoices alerts (daily) -2026-07-23T15:14:43: [2026-07-23T08:14:43.767Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 15:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T15:30:00: [scheduler] etl_stock slot=15 -2026-07-23T15:30:00: [scheduler] etl_stock slot=15 — no companies -2026-07-23T16:00:00: [scheduler] etl_gl slot=16 -2026-07-23T16:00:00: [scheduler] etl_gl slot=16 — no companies -2026-07-23T16:30:00: [scheduler] etl_stock slot=16 -2026-07-23T16:30:00: [scheduler] etl_stock slot=16 — no companies -2026-07-23T20:39:04: [2026-07-23T13:39:04.943Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 17:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T20:39:04: [2026-07-23T13:39:04.953Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 18:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T20:39:04: [2026-07-23T13:39:04.959Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 19:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T20:39:04: [2026-07-23T13:39:04.965Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 20:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T21:02:17: [2026-07-23T14:02:17.033Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 21:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T21:11:21: [2026-07-23T14:11:21.977Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 17:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T21:11:21: [2026-07-23T14:11:21.982Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 18:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T21:11:21: [2026-07-23T14:11:21.985Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 19:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T21:11:21: [2026-07-23T14:11:21.987Z] [PID: 451] [NODE-CRON] [WARN] missed execution at Thu Jul 23 2026 20:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-23T21:30:00: [scheduler] etl_stock slot=21 -2026-07-23T21:30:00: [scheduler] etl_stock slot=21 — no companies -2026-07-25T12:19:55: [scheduler] running — etl_gl + etl_stock (hourly) | low_stock + overdue_invoices alerts (daily) -2026-07-25T12:30:00: [scheduler] etl_stock slot=12 -2026-07-25T12:30:00: [scheduler] etl_stock slot=12 — no companies -2026-07-25T13:00:00: [scheduler] etl_gl slot=13 -2026-07-25T13:00:00: [scheduler] etl_gl slot=13 — no companies -2026-07-25T14:44:32: [2026-07-25T07:44:32.121Z] [PID: 476] [NODE-CRON] [WARN] missed execution at Sat Jul 25 2026 13:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-25T14:44:32: [2026-07-25T07:44:32.127Z] [PID: 476] [NODE-CRON] [WARN] missed execution at Sat Jul 25 2026 14:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-25T15:24:00: [2026-07-25T08:24:00.029Z] [PID: 476] [NODE-CRON] [WARN] missed execution at Sat Jul 25 2026 14:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-07-25T15:24:00: [2026-07-25T08:24:00.032Z] [PID: 476] [NODE-CRON] [WARN] missed execution at Sat Jul 25 2026 15:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-08-03T08:52:15: [scheduler] running — etl_gl + etl_stock (hourly) | low_stock + overdue_invoices alerts (daily) -2026-08-03T09:00:00: [scheduler] etl_gl slot=9 -2026-08-03T09:00:00: [scheduler] alert_overdue_invoices running -2026-08-03T09:00:00: [scheduler] etl_gl slot=9 — no companies -2026-08-03T10:11:12: [2026-08-03T03:11:12.241Z] [PID: 477] [NODE-CRON] [WARN] missed execution at Mon Aug 03 2026 10:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-08-03T10:31:46: [2026-08-03T03:31:46.573Z] [PID: 477] [NODE-CRON] [WARN] missed execution at Mon Aug 03 2026 10:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-08-03T11:08:26: [2026-08-03T04:08:26.686Z] [PID: 477] [NODE-CRON] [WARN] missed execution at Mon Aug 03 2026 11:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-08-04T13:35:14: [scheduler] running — etl_gl + etl_stock (hourly) | low_stock + overdue_invoices alerts (daily) -2026-08-04T15:02:31: [2026-08-04T08:02:31.243Z] [PID: 78443] [NODE-CRON] [WARN] missed execution at Tue Aug 04 2026 15:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-08-04T15:32:15: [2026-08-04T08:32:15.561Z] [PID: 78443] [NODE-CRON] [WARN] missed execution at Tue Aug 04 2026 15:30:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. -2026-08-04T16:00:00: [scheduler] etl_gl slot=16 -2026-08-04T16:00:00: [scheduler] etl_gl slot=16 — no companies -2026-08-04T16:30:00: [scheduler] etl_stock slot=16 -2026-08-04T16:30:00: [scheduler] etl_stock slot=16 — no companies -2026-08-04T17:01:03: [2026-08-04T10:01:03.525Z] [PID: 78443] [NODE-CRON] [WARN] missed execution at Tue Aug 04 2026 17:00:00 GMT+0700 (Indochina Time)! Possible blocking IO or high CPU user at the same process used by node-cron. diff --git a/nodejs/logs/socket.log b/nodejs/logs/socket.log deleted file mode 100644 index 61a8b42..0000000 --- a/nodejs/logs/socket.log +++ /dev/null @@ -1,255 +0,0 @@ -2026-07-20T17:35:51: Node.js real-time server running on port 3000 -2026-07-21T16:06:58: Node.js real-time server running on port 3000 -2026-07-22T13:08:58: Node.js real-time server running on port 3000 -2026-07-22T13:10:29: [connect] socket=0-LquhazY9eKKN7LAAAB company=1 user=1 role=owner -2026-07-22T13:15:09: [disconnect] socket=0-LquhazY9eKKN7LAAAB -2026-07-22T13:15:12: [connect] socket=P4rxlPGuHWMqT35XAAAD company=1 user=1 role=owner -2026-07-22T13:26:21: [disconnect] socket=P4rxlPGuHWMqT35XAAAD -2026-07-22T13:26:23: [connect] socket=EBxi3tj8fNMUmyoyAAAF company=1 user=1 role=owner -2026-07-22T13:30:24: [disconnect] socket=EBxi3tj8fNMUmyoyAAAF -2026-07-22T13:30:25: [connect] socket=SJtRh1L6usnHrWebAAAH company=1 user=1 role=owner -2026-07-22T13:31:59: [disconnect] socket=SJtRh1L6usnHrWebAAAH -2026-07-22T13:31:59: [connect] socket=xvRdZhqqg-soDWr7AAAJ company=1 user=1 role=owner -2026-07-22T13:41:17: [disconnect] socket=xvRdZhqqg-soDWr7AAAJ -2026-07-22T13:41:17: [connect] socket=QZkAkh2pHOGltp-0AAAL company=1 user=1 role=owner -2026-07-22T13:42:28: [disconnect] socket=QZkAkh2pHOGltp-0AAAL -2026-07-22T13:42:28: [connect] socket=0Vb5YTMHDs1gOC47AAAN company=1 user=1 role=owner -2026-07-22T13:42:36: [disconnect] socket=0Vb5YTMHDs1gOC47AAAN -2026-07-22T13:42:36: [connect] socket=idQO9l1OGLiXPyEoAAAP company=1 user=1 role=owner -2026-07-22T13:42:43: [disconnect] socket=idQO9l1OGLiXPyEoAAAP -2026-07-22T13:42:43: [connect] socket=nvfS_4EF_3kF5PGsAAAR company=1 user=1 role=owner -2026-07-22T13:47:25: [disconnect] socket=nvfS_4EF_3kF5PGsAAAR -2026-07-22T13:47:27: [connect] socket=yytX3fzh594f9phBAAAT company=1 user=1 role=owner -2026-07-22T13:50:19: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-07-22T13:50:19: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-07-22T13:50:19: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-07-22T13:50:19: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-07-22T13:50:19: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-07-22T13:59:42: [emit] company=1 event=stock_updated { warehouse_id: 2, type: 'in' } -2026-07-22T13:59:42: [emit] company=1 event=stock_updated { warehouse_id: 2, type: 'in' } -2026-07-22T13:59:43: [emit] company=1 event=stock_updated { warehouse_id: 2, type: 'in' } -2026-07-22T13:59:43: [emit] company=1 event=stock_updated { warehouse_id: 2, type: 'in' } -2026-07-22T13:59:43: [emit] company=1 event=stock_updated { warehouse_id: 2, type: 'in' } -2026-07-22T13:59:43: [emit] company=1 event=stock_updated { warehouse_id: 2, type: 'in' } -2026-07-22T13:59:43: [emit] company=1 event=stock_updated { warehouse_id: 2, type: 'in' } -2026-07-22T13:59:43: [emit] company=1 event=stock_updated { warehouse_id: 2, type: 'in' } -2026-07-22T13:59:43: [emit] company=1 event=stock_updated { warehouse_id: 2, type: 'in' } -2026-07-22T13:59:43: [emit] company=1 event=stock_updated { warehouse_id: 2, type: 'in' } -2026-07-22T14:03:26: [disconnect] socket=yytX3fzh594f9phBAAAT -2026-07-22T14:03:28: [connect] socket=waEM4mo4V099RHhAAAAV company=1 user=1 role=owner -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'in' } -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'in' } -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'in' } -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'in' } -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'in' } -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'in' } -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'in' } -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'in' } -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'in' } -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'in' } -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'out' } -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'out' } -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'out' } -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'out' } -2026-07-22T14:03:30: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'out' } -2026-07-22T14:11:10: [disconnect] socket=waEM4mo4V099RHhAAAAV -2026-07-22T14:35:14: [connect] socket=ZSmIs38dJh1u4If4AAAX company=1 user=1 role=owner -2026-07-22T14:35:49: [disconnect] socket=ZSmIs38dJh1u4If4AAAX -2026-07-22T14:35:49: [connect] socket=1bcHdQOC7cBTftxyAAAZ company=1 user=1 role=owner -2026-07-22T14:36:37: [disconnect] socket=1bcHdQOC7cBTftxyAAAZ -2026-07-22T14:36:38: [connect] socket=fMazKVGWKhaTm7OUAAAb company=1 user=1 role=owner -2026-07-22T14:36:46: [disconnect] socket=fMazKVGWKhaTm7OUAAAb -2026-07-22T14:36:46: [connect] socket=VfqVaEiOI3NTCA7fAAAd company=1 user=1 role=owner -2026-07-22T14:36:48: [disconnect] socket=VfqVaEiOI3NTCA7fAAAd -2026-07-22T14:36:48: [connect] socket=DAww8irzEgS7j7JLAAAf company=1 user=1 role=owner -2026-07-22T14:36:49: [disconnect] socket=DAww8irzEgS7j7JLAAAf -2026-07-22T14:36:49: [connect] socket=WgF3HArg1rthWkktAAAh company=1 user=1 role=owner -2026-07-22T14:37:05: [disconnect] socket=WgF3HArg1rthWkktAAAh -2026-07-22T14:37:05: [connect] socket=pfMLLNR0x-qoq485AAAj company=1 user=1 role=owner -2026-07-22T14:37:08: [disconnect] socket=pfMLLNR0x-qoq485AAAj -2026-07-22T14:37:09: [connect] socket=7ZtkCaJZqcYXBSZWAAAl company=1 user=1 role=owner -2026-07-22T14:37:14: [disconnect] socket=7ZtkCaJZqcYXBSZWAAAl -2026-07-22T14:37:14: [connect] socket=F6_OvPrmc-vv_KoqAAAn company=1 user=1 role=owner -2026-07-22T14:37:18: [disconnect] socket=F6_OvPrmc-vv_KoqAAAn -2026-07-22T14:37:18: [connect] socket=gdlZxPbkkcdkdE2AAAAp company=1 user=1 role=owner -2026-07-22T14:40:08: [disconnect] socket=gdlZxPbkkcdkdE2AAAAp -2026-07-22T14:40:09: [connect] socket=c8j8ybp-e7MPpa6cAAAr company=1 user=1 role=owner -2026-07-22T14:40:13: [disconnect] socket=c8j8ybp-e7MPpa6cAAAr -2026-07-22T14:40:13: [connect] socket=D36DmJgraENmU5xsAAAt company=1 user=1 role=owner -2026-07-22T14:40:20: [disconnect] socket=D36DmJgraENmU5xsAAAt -2026-07-22T14:40:21: [connect] socket=saY0q6gBioHWgq7RAAAv company=1 user=1 role=owner -2026-07-22T14:40:25: [disconnect] socket=saY0q6gBioHWgq7RAAAv -2026-07-22T14:40:25: [connect] socket=o9h4_9i-KOjDfVmrAAAx company=1 user=1 role=owner -2026-07-22T14:40:27: [disconnect] socket=o9h4_9i-KOjDfVmrAAAx -2026-07-22T14:40:27: [connect] socket=aIM89idl78lyhTbNAAAz company=1 user=1 role=owner -2026-07-22T14:56:05: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'in' } -2026-07-22T14:56:05: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'in' } -2026-07-22T14:56:06: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'out' } -2026-07-22T14:56:06: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'out' } -2026-07-22T15:21:05: [emit] company=1 event=stock_updated { warehouse_id: 3, type: 'transfer' } -2026-07-22T15:28:23: [disconnect] socket=aIM89idl78lyhTbNAAAz -2026-07-22T15:43:35: [connect] socket=q1N4BECKfiomOEfyAAA1 company=1 user=1 role=owner -2026-07-22T15:43:38: [disconnect] socket=q1N4BECKfiomOEfyAAA1 -2026-07-22T15:43:38: [connect] socket=yM_0j72uX0V2b-GuAAA3 company=1 user=1 role=owner -2026-07-22T15:43:43: [disconnect] socket=yM_0j72uX0V2b-GuAAA3 -2026-07-22T15:43:43: [connect] socket=dvzUKq0p7lXQMuSLAAA5 company=1 user=1 role=owner -2026-07-22T15:43:45: [disconnect] socket=dvzUKq0p7lXQMuSLAAA5 -2026-07-22T15:43:45: [connect] socket=TYvNpQgcOHR5-V1RAAA7 company=1 user=1 role=owner -2026-07-22T15:43:46: [disconnect] socket=TYvNpQgcOHR5-V1RAAA7 -2026-07-22T15:43:46: [connect] socket=waNTeqU5sAu8W2jqAAA9 company=1 user=1 role=owner -2026-07-22T16:05:01: [disconnect] socket=waNTeqU5sAu8W2jqAAA9 -2026-07-23T12:11:51: Node.js real-time server running on port 3000 -2026-07-23T12:13:27: [connect] socket=NYO9Tg4V6Cqp3e4cAAAB company=1 user=1 role=owner -2026-07-23T12:33:05: [disconnect] socket=NYO9Tg4V6Cqp3e4cAAAB -2026-07-23T12:33:06: [connect] socket=pEDe8Dms2dU7gdhCAAAD company=1 user=1 role=owner -2026-07-23T12:34:13: [disconnect] socket=pEDe8Dms2dU7gdhCAAAD -2026-07-23T12:34:17: [connect] socket=vaGUT12vPXkqH_7kAAAF company=1 user=1 role=owner -2026-07-23T12:55:49: [disconnect] socket=vaGUT12vPXkqH_7kAAAF -2026-07-23T13:36:04: Node.js real-time server running on port 3000 -2026-07-23T13:36:55: [connect] socket=nVGY71aXPas0zYS_AAAB company=1 user=1 role=owner -2026-07-23T13:51:36: [disconnect] socket=nVGY71aXPas0zYS_AAAB -2026-07-23T13:51:36: [connect] socket=5peGIWbSaRCxnlYBAAAD company=1 user=1 role=owner -2026-07-23T13:51:38: [disconnect] socket=5peGIWbSaRCxnlYBAAAD -2026-07-23T13:51:38: [connect] socket=fGwRmZaYGzedlqqRAAAF company=1 user=1 role=owner -2026-07-23T13:51:40: [disconnect] socket=fGwRmZaYGzedlqqRAAAF -2026-07-23T13:51:40: [connect] socket=YZk7xLKHpmi29ykIAAAH company=1 user=1 role=owner -2026-07-23T13:51:41: [disconnect] socket=YZk7xLKHpmi29ykIAAAH -2026-07-23T13:51:41: [connect] socket=f078x01mtX2eGd2HAAAJ company=1 user=1 role=owner -2026-07-23T13:57:26: [disconnect] socket=f078x01mtX2eGd2HAAAJ -2026-07-23T13:57:28: [connect] socket=vToy_ZVIAk6w9099AAAL company=1 user=1 role=owner -2026-07-23T14:17:58: [disconnect] socket=vToy_ZVIAk6w9099AAAL -2026-07-23T14:18:00: [connect] socket=7yHLdkKxBAAO_nF4AAAN company=1 user=1 role=owner -2026-07-23T16:25:41: [disconnect] socket=7yHLdkKxBAAO_nF4AAAN -2026-07-25T12:19:55: Node.js real-time server running on port 3000 -2026-08-03T08:52:15: Node.js real-time server running on port 3000 -2026-08-03T10:17:41: [connect] socket=kNyFq-T_JVC3-_WLAAAB company=1 user=1 role=owner -2026-08-03T10:18:50: [disconnect] socket=kNyFq-T_JVC3-_WLAAAB -2026-08-03T10:18:50: [connect] socket=efcou9_hk0YUTnvQAAAD company=1 user=1 role=owner -2026-08-03T10:18:59: [disconnect] socket=efcou9_hk0YUTnvQAAAD -2026-08-03T10:18:59: [connect] socket=PmKuy_3CCIDze4P3AAAF company=1 user=1 role=owner -2026-08-03T10:32:14: [disconnect] socket=PmKuy_3CCIDze4P3AAAF -2026-08-03T10:32:18: [connect] socket=-ZlIPBBmpRazD30gAAAH company=1 user=1 role=owner -2026-08-03T10:49:23: [disconnect] socket=-ZlIPBBmpRazD30gAAAH -2026-08-03T10:49:26: [connect] socket=Azbj9ipTPqb3aOW3AAAJ company=1 user=1 role=owner -2026-08-03T10:54:19: [disconnect] socket=Azbj9ipTPqb3aOW3AAAJ -2026-08-03T10:54:19: [connect] socket=FMnx-fmSk96rxIfwAAAL company=1 user=1 role=owner -2026-08-03T11:13:57: [disconnect] socket=FMnx-fmSk96rxIfwAAAL -2026-08-03T11:13:59: [connect] socket=LgVxBoN_6JuJtxHyAAAN company=1 user=1 role=owner -2026-08-04T13:35:14: Node.js real-time server running on port 3000 -2026-08-04T13:36:21: [connect] socket=BOvxSU23giBsnIXWAAAB company=1 user=1 role=owner -2026-08-04T13:36:25: [disconnect] socket=BOvxSU23giBsnIXWAAAB -2026-08-04T13:36:25: [connect] socket=pJXUXD7HNX_V9peAAAAD company=1 user=1 role=owner -2026-08-04T13:36:27: [disconnect] socket=pJXUXD7HNX_V9peAAAAD -2026-08-04T13:36:27: [connect] socket=St7RkiRumWpwc47xAAAF company=1 user=1 role=owner -2026-08-04T13:36:28: [disconnect] socket=St7RkiRumWpwc47xAAAF -2026-08-04T13:36:28: [connect] socket=a9NsNFmUpIL1vW8uAAAH company=1 user=1 role=owner -2026-08-04T13:40:28: [disconnect] socket=a9NsNFmUpIL1vW8uAAAH -2026-08-04T13:40:28: [connect] socket=uYLFddlhCkOxrcJNAAAJ company=1 user=1 role=owner -2026-08-04T13:48:10: [disconnect] socket=uYLFddlhCkOxrcJNAAAJ -2026-08-04T13:48:11: [connect] socket=VekC6UabiJABBbjhAAAL company=1 user=1 role=owner -2026-08-04T13:50:28: [disconnect] socket=VekC6UabiJABBbjhAAAL -2026-08-04T13:50:29: [connect] socket=gj-glld-ZsxWbGQuAAAN company=1 user=1 role=owner -2026-08-04T14:08:49: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T14:08:49: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T14:08:49: [emit] company=1 event=stock_updated { warehouse_id: 2, type: 'in' } -2026-08-04T14:08:49: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T14:08:49: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'out' } -2026-08-04T14:08:49: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T14:08:49: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'out' } -2026-08-04T14:08:49: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T14:08:49: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'transfer' } -2026-08-04T14:08:49: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T14:08:49: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'transfer' } -2026-08-04T14:11:36: [disconnect] socket=gj-glld-ZsxWbGQuAAAN -2026-08-04T14:11:36: [connect] socket=v97BofsQmYBAEJMmAAAP company=1 user=1 role=owner -2026-08-04T14:13:54: [disconnect] socket=v97BofsQmYBAEJMmAAAP -2026-08-04T14:13:54: [connect] socket=WYJSdI9xVDaTML9xAAAR company=1 user=1 role=owner -2026-08-04T14:17:32: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'out' } -2026-08-04T14:17:32: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'out' } -2026-08-04T14:21:12: [disconnect] socket=WYJSdI9xVDaTML9xAAAR -2026-08-04T14:21:12: [connect] socket=UhIyCllsOjal4UwCAAAT company=1 user=1 role=owner -2026-08-04T14:21:13: [disconnect] socket=UhIyCllsOjal4UwCAAAT -2026-08-04T14:21:13: [connect] socket=6hZ-_fAyDgWzwsgvAAAV company=1 user=1 role=owner -2026-08-04T14:21:38: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T14:21:38: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T14:25:22: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'out' } -2026-08-04T14:25:22: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'out' } -2026-08-04T14:25:22: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T14:25:22: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T14:29:14: [disconnect] socket=6hZ-_fAyDgWzwsgvAAAV -2026-08-04T14:29:14: [connect] socket=7ocTMfufQlyO36XrAAAX company=1 user=1 role=owner -2026-08-04T14:29:19: [disconnect] socket=7ocTMfufQlyO36XrAAAX -2026-08-04T14:36:58: [connect] socket=kY4WNaECxPvGVj2JAAAZ company=1 user=1 role=owner -2026-08-04T14:37:12: [disconnect] socket=kY4WNaECxPvGVj2JAAAZ -2026-08-04T14:37:12: [connect] socket=OabEymZu5SehwNWnAAAb company=1 user=1 role=owner -2026-08-04T14:37:40: [disconnect] socket=OabEymZu5SehwNWnAAAb -2026-08-04T14:41:55: [connect] socket=kAlZOJl54kd8RXKAAAAd company=1 user=1 role=owner -2026-08-04T14:42:42: [disconnect] socket=kAlZOJl54kd8RXKAAAAd -2026-08-04T14:42:42: [connect] socket=DBSytTfd-o12DxhfAAAf company=1 user=1 role=owner -2026-08-04T14:49:38: [disconnect] socket=DBSytTfd-o12DxhfAAAf -2026-08-04T14:49:39: [connect] socket=sAr1qebAYGyIq8zrAAAh company=1 user=1 role=owner -2026-08-04T14:58:10: [emit] company=1 event=stock_updated { warehouse_id: 2, type: 'in' } -2026-08-04T14:58:10: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T14:58:10: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'out' } -2026-08-04T14:58:10: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T14:58:10: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'transfer' } -2026-08-04T14:59:17: [disconnect] socket=sAr1qebAYGyIq8zrAAAh -2026-08-04T14:59:17: [connect] socket=a264uVnqws4cIAy-AAAj company=1 user=1 role=owner -2026-08-04T15:21:19: [disconnect] socket=a264uVnqws4cIAy-AAAj -2026-08-04T15:21:19: [connect] socket=JL7kcUwnQI_NExMkAAAl company=1 user=1 role=owner -2026-08-04T15:21:22: [disconnect] socket=JL7kcUwnQI_NExMkAAAl -2026-08-04T15:27:09: [connect] socket=VcbOCpKEShqcqqM0AAAn company=1 user=1 role=owner -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 2, type: 'in' } -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'out' } -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'out' } -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'out' } -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'transfer' } -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'transfer' } -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'in' } -2026-08-04T15:28:36: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'transfer' } -2026-08-04T15:30:09: [disconnect] socket=VcbOCpKEShqcqqM0AAAn -2026-08-04T15:30:09: [connect] socket=ecBAVshG1Eng4jh5AAAp company=1 user=1 role=owner -2026-08-04T15:33:32: [disconnect] socket=ecBAVshG1Eng4jh5AAAp -2026-08-04T15:33:32: [connect] socket=M43MyEQ7wipYOgd5AAAr company=1 user=1 role=owner -2026-08-04T15:34:32: [disconnect] socket=M43MyEQ7wipYOgd5AAAr -2026-08-04T15:34:32: [connect] socket=TiGDT6OMJsYlixlkAAAt company=1 user=1 role=owner -2026-08-04T15:35:36: [disconnect] socket=TiGDT6OMJsYlixlkAAAt -2026-08-04T15:35:36: [connect] socket=uHRGhZU0TJVvvh_aAAAv company=1 user=1 role=owner -2026-08-04T15:36:24: [disconnect] socket=uHRGhZU0TJVvvh_aAAAv -2026-08-04T15:36:24: [connect] socket=Hsui_73WGENhGdRIAAAx company=1 user=1 role=owner -2026-08-04T15:38:27: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'out' } -2026-08-04T15:38:27: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'out' } -2026-08-04T15:38:27: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'out' } -2026-08-04T15:38:27: [emit] company=1 event=stock_updated { warehouse_id: 1, type: 'out' } -2026-08-04T15:39:55: [disconnect] socket=Hsui_73WGENhGdRIAAAx -2026-08-04T15:39:55: [connect] socket=xSl0-9raxlwU2K9rAAAz company=1 user=1 role=owner -2026-08-04T15:52:53: [disconnect] socket=xSl0-9raxlwU2K9rAAAz -2026-08-04T15:52:53: [connect] socket=n_l9kHYTF1AXNNRYAAA1 company=1 user=1 role=owner -2026-08-04T15:58:37: [disconnect] socket=n_l9kHYTF1AXNNRYAAA1 -2026-08-04T15:58:37: [connect] socket=T9mpzRMT3I1qjj0BAAA3 company=1 user=1 role=owner -2026-08-04T15:58:39: [disconnect] socket=T9mpzRMT3I1qjj0BAAA3 -2026-08-04T15:58:39: [connect] socket=Q1jGtGwwFc49KKxDAAA5 company=1 user=1 role=owner -2026-08-04T15:58:40: [disconnect] socket=Q1jGtGwwFc49KKxDAAA5 -2026-08-04T15:58:41: [connect] socket=Fk7l8SLr2IIRFFHbAAA7 company=1 user=1 role=owner -2026-08-04T15:58:42: [disconnect] socket=Fk7l8SLr2IIRFFHbAAA7 -2026-08-04T15:58:42: [connect] socket=pAuTSmpDDC86EZwXAAA9 company=1 user=1 role=owner -2026-08-04T16:41:11: [disconnect] socket=pAuTSmpDDC86EZwXAAA9 -2026-08-04T16:41:13: [connect] socket=XmFaoUIej-g8203TAAA_ company=1 user=1 role=owner -2026-08-04T16:41:25: [disconnect] socket=XmFaoUIej-g8203TAAA_ -2026-08-04T16:41:28: [connect] socket=TxwzTsUHzqDLHpODAABB company=1 user=1 role=owner -2026-08-04T16:43:43: [disconnect] socket=TxwzTsUHzqDLHpODAABB -2026-08-04T16:44:26: [connect] socket=TOhs2YrBWQkiGDZDAABD company=1 user=1 role=owner -2026-08-04T16:58:05: [disconnect] socket=TOhs2YrBWQkiGDZDAABD -2026-08-04T16:59:15: [connect] socket=p1xNFoGJFKox8FaOAABF company=1 user=1 role=owner -2026-08-04T17:25:03: [disconnect] socket=p1xNFoGJFKox8FaOAABF -2026-08-04T17:25:03: [connect] socket=j3s6wvwe_BxVzCA_AABH company=1 user=1 role=owner -2026-08-04T17:25:05: [disconnect] socket=j3s6wvwe_BxVzCA_AABH -2026-08-04T17:25:05: [connect] socket=4wkwmOWCAvQSicL3AABJ company=1 user=1 role=owner -2026-08-04T17:26:40: [disconnect] socket=4wkwmOWCAvQSicL3AABJ