@hyperwatch/hyperwatch 4.3.1 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +9 -4
  2. package/config/apache_syslog_example.js +1 -1
  3. package/config/default.js +1 -1
  4. package/config/example.js +4 -4
  5. package/config/express_websocket_example.js +1 -1
  6. package/config/websocket_client_example.js +52 -0
  7. package/docs/configuration.md +67 -6
  8. package/docs/express-embedding.md +137 -0
  9. package/docs/input.md +50 -24
  10. package/docs/tutorials/apache_input.md +16 -14
  11. package/docs/tutorials/express_input.md +10 -8
  12. package/package.json +16 -14
  13. package/scripts/fetch-anthropic-ips.js +60 -0
  14. package/src/app/api.js +129 -3
  15. package/src/app/index.js +8 -4
  16. package/src/app/mount.js +115 -0
  17. package/src/app/websocket.js +12 -9
  18. package/src/app/ws-server.js +123 -0
  19. package/src/constants.js +8 -5
  20. package/src/data/amazon-searchbot-ips.json +304 -0
  21. package/src/data/amazonbot-ips.json +775 -1
  22. package/src/data/chatgpt-user-ips.json +115 -112
  23. package/src/data/claude-bot-ips.json +28 -0
  24. package/src/data/cloudfront-ips.json +14 -0
  25. package/src/data/gptbot-ips.json +0 -3
  26. package/src/data/openai-searchbot-ips.json +4 -0
  27. package/src/index.js +6 -1
  28. package/src/input/http.js +4 -0
  29. package/src/input/syslog.js +5 -1
  30. package/src/input/websocket.js +57 -21
  31. package/src/lib/aggregator.js +112 -19
  32. package/src/lib/formatter.js +10 -1
  33. package/src/lib/log-buffer.js +45 -0
  34. package/src/lib/persistence.js +11 -1
  35. package/src/lib/pipeline.js +140 -14
  36. package/src/lib/recent-map.js +23 -0
  37. package/src/modules/address.js +59 -2
  38. package/src/modules/dnsbl.js +11 -1
  39. package/src/modules/history.js +4 -28
  40. package/src/modules/hostname.js +12 -4
  41. package/src/modules/identity.js +92 -9
  42. package/src/modules/index.js +14 -5
  43. package/src/modules/signature.js +49 -14
  44. package/src/modules/sparkline.js +7 -3
  45. package/src/modules/status.js +6 -1
@@ -1,172 +1,166 @@
1
1
  [
2
+ "104.208.184.192/28",
2
3
  "104.210.139.192/28",
3
4
  "104.210.139.224/28",
5
+ "128.85.198.32/28",
4
6
  "13.65.138.112/28",
5
- "13.65.138.96/28",
6
- "13.67.46.240/28",
7
7
  "13.67.72.16/28",
8
- "13.70.107.160/28",
9
8
  "13.71.2.208/28",
10
- "13.76.115.224/28",
11
- "13.76.115.240/28",
12
9
  "13.76.116.80/28",
13
- "13.76.223.48/28",
14
10
  "13.76.32.208/28",
15
- "13.79.43.0/28",
16
11
  "13.83.167.128/28",
17
12
  "13.83.237.176/28",
18
13
  "132.196.82.48/28",
19
- "135.119.134.128/28",
20
- "135.119.134.192/28",
14
+ "134.138.52.128/28",
15
+ "134.138.52.16/28",
16
+ "134.138.52.64/28",
17
+ "134.138.52.96/28",
18
+ "134.138.57.176/28",
19
+ "134.138.57.64/28",
20
+ "134.138.57.80/28",
21
+ "134.138.58.32/28",
22
+ "134.149.233.80/28",
23
+ "134.33.102.192/28",
24
+ "135.116.136.160/28",
25
+ "135.13.64.240/28",
21
26
  "135.220.73.208/28",
22
27
  "135.220.73.240/28",
23
28
  "135.237.131.208/28",
24
- "135.237.133.112/28",
25
29
  "135.237.133.48/28",
26
- "137.135.183.96/28",
27
- "137.135.190.240/28",
28
30
  "137.135.191.176/28",
29
- "137.135.191.32/28",
30
- "138.91.30.48/28",
31
31
  "138.91.46.96/28",
32
+ "145.132.136.96/28",
33
+ "158.158.5.32/28",
32
34
  "168.63.252.240/28",
35
+ "172.162.248.64/28",
36
+ "172.170.1.80/28",
37
+ "172.170.225.0/28",
38
+ "172.170.241.80/28",
39
+ "172.172.206.48/28",
40
+ "172.175.152.224/28",
33
41
  "172.178.140.144/28",
34
42
  "172.178.141.112/28",
35
43
  "172.178.141.128/28",
36
44
  "172.183.143.224/28",
37
45
  "172.183.222.128/28",
38
- "172.204.16.64/28",
39
- "172.212.159.64/28",
40
- "172.213.11.144/28",
41
- "172.213.12.112/28",
42
- "172.213.21.112/28",
43
- "172.213.21.144/28",
44
- "172.213.21.16/28",
45
- "191.233.1.112/28",
46
- "191.233.1.128/28",
47
- "191.233.1.224/28",
48
- "191.233.194.32/28",
49
- "191.233.196.112/28",
46
+ "172.192.112.208/28",
47
+ "172.197.160.192/28",
48
+ "172.197.203.16/28",
49
+ "172.198.161.128/28",
50
+ "172.198.58.176/28",
51
+ "172.198.78.192/28",
52
+ "172.198.79.112/28",
53
+ "172.199.137.80/28",
54
+ "172.204.28.224/28",
55
+ "172.204.96.80/28",
56
+ "172.205.189.192/28",
57
+ "172.206.38.240/28",
58
+ "172.207.1.32/28",
59
+ "172.212.172.160/28",
60
+ "172.215.215.32/28",
61
+ "191.232.238.96/28",
62
+ "191.233.197.0/28",
50
63
  "191.233.199.160/28",
51
- "191.233.2.0/28",
52
- "191.234.167.128/28",
53
- "191.235.66.16/28",
54
- "191.235.98.144/28",
55
- "191.235.99.80/28",
64
+ "191.234.167.144/28",
65
+ "191.235.99.160/28",
56
66
  "191.237.249.64/28",
57
- "191.239.245.16/28",
58
- "20.0.53.96/28",
59
67
  "20.102.212.144/28",
60
- "20.117.22.224/28",
68
+ "20.113.211.112/28",
69
+ "20.113.225.112/28",
61
70
  "20.125.112.224/28",
62
71
  "20.125.144.144/28",
63
72
  "20.161.75.208/28",
64
73
  "20.168.7.192/28",
65
- "20.168.7.240/28",
66
- "20.169.72.112/28",
67
- "20.169.72.96/28",
68
- "20.169.73.176/28",
69
74
  "20.169.73.32/28",
70
75
  "20.169.73.64/28",
71
- "20.169.78.112/28",
72
76
  "20.169.78.128/28",
73
- "20.169.78.144/28",
74
77
  "20.169.78.160/28",
75
- "20.169.78.176/28",
76
78
  "20.169.78.192/28",
77
79
  "20.169.78.48/28",
78
80
  "20.169.78.64/28",
79
- "20.169.78.80/28",
80
- "20.169.78.96/28",
81
+ "20.169.86.224/28",
82
+ "20.169.86.240/28",
83
+ "20.170.184.16/28",
84
+ "20.170.184.32/28",
85
+ "20.170.184.48/28",
86
+ "20.170.184.64/28",
87
+ "20.170.184.80/28",
81
88
  "20.172.29.32/28",
82
- "20.193.233.240/28",
83
- "20.193.50.32/28",
84
- "20.194.0.208/28",
85
- "20.194.1.0/28",
86
- "20.194.157.176/28",
87
- "20.198.67.96/28",
88
- "20.203.245.32/28",
89
- "20.204.24.240/28",
90
- "20.210.154.128/28",
91
- "20.210.174.208/28",
89
+ "20.199.211.160/28",
90
+ "20.199.242.0/28",
91
+ "20.200.212.240/28",
92
+ "20.206.101.192/28",
92
93
  "20.210.211.192/28",
93
94
  "20.215.187.208/28",
94
- "20.215.188.192/28",
95
- "20.215.214.16/28",
96
95
  "20.215.219.128/28",
97
96
  "20.215.219.160/28",
98
97
  "20.215.219.208/28",
99
- "20.215.220.112/28",
100
- "20.215.220.128/28",
101
- "20.215.220.144/28",
102
- "20.215.220.160/28",
103
- "20.215.220.176/28",
104
- "20.215.220.192/28",
105
- "20.215.220.208/28",
106
- "20.215.220.64/28",
107
- "20.215.220.80/28",
108
- "20.215.220.96/28",
98
+ "20.218.30.240/28",
99
+ "20.219.184.96/28",
100
+ "20.219.71.192/28",
101
+ "20.222.36.192/28",
109
102
  "20.227.140.32/28",
110
103
  "20.228.106.176/28",
111
- "20.235.75.208/28",
112
104
  "20.235.87.224/28",
113
105
  "20.249.63.208/28",
114
- "20.27.94.128/28",
106
+ "20.250.136.64/28",
107
+ "20.250.6.128/28",
115
108
  "20.45.178.144/28",
116
109
  "20.55.229.144/28",
110
+ "20.57.199.192/28",
111
+ "20.63.180.96/28",
117
112
  "20.63.221.64/28",
118
- "20.90.7.144/28",
119
- "20.97.189.96/28",
113
+ "20.78.130.48/28",
114
+ "20.83.243.176/28",
115
+ "20.98.18.80/28",
116
+ "23.101.217.176/28",
120
117
  "23.102.140.144/28",
121
118
  "23.102.141.32/28",
122
- "23.97.109.224/28",
123
119
  "23.98.142.176/28",
124
- "23.98.179.16/28",
125
120
  "23.98.186.176/28",
126
121
  "23.98.186.192/28",
127
122
  "23.98.186.64/28",
128
123
  "23.98.186.96/28",
129
124
  "4.151.119.48/28",
130
- "4.151.241.240/28",
131
125
  "4.151.71.176/28",
132
126
  "4.189.118.208/28",
133
127
  "4.189.119.48/28",
134
- "4.196.118.112/28",
135
- "4.196.198.80/28",
136
128
  "4.197.115.112/28",
137
- "4.197.19.176/28",
138
129
  "4.197.22.112/28",
139
130
  "4.197.64.0/28",
140
131
  "4.197.64.16/28",
141
132
  "4.197.64.48/28",
142
133
  "4.197.64.64/28",
134
+ "4.201.232.64/28",
143
135
  "4.205.128.176/28",
136
+ "4.218.24.64/28",
137
+ "4.226.200.16/28",
138
+ "4.226.226.32/28",
144
139
  "40.116.73.208/28",
145
- "40.67.183.160/28",
146
- "40.67.183.176/28",
147
- "40.75.14.224/28",
148
- "40.81.134.128/28",
149
- "40.81.134.144/28",
140
+ "40.124.161.0/28",
141
+ "40.74.200.208/28",
150
142
  "40.81.234.144/28",
151
- "40.84.181.32/28",
143
+ "40.81.67.96/28",
152
144
  "40.84.221.208/28",
153
145
  "40.84.221.224/28",
154
- "51.107.70.192/28",
146
+ "48.221.184.80/28",
147
+ "48.221.184.96/28",
148
+ "48.221.40.176/28",
149
+ "51.116.2.80/28",
150
+ "51.116.221.96/28",
151
+ "51.57.0.96/28",
152
+ "51.59.24.64/28",
153
+ "51.59.24.80/28",
154
+ "51.59.48.80/28",
155
155
  "51.8.155.112/28",
156
156
  "51.8.155.48/28",
157
- "51.8.155.64/28",
158
- "51.8.155.80/28",
159
157
  "52.148.129.32/28",
160
- "52.154.22.48/28",
161
158
  "52.156.77.144/28",
162
159
  "52.159.227.32/28",
163
160
  "52.159.249.96/28",
164
- "52.165.212.16/28",
165
- "52.165.212.32/28",
161
+ "52.161.49.96/28",
166
162
  "52.165.212.48/28",
167
163
  "52.172.129.160/28",
168
- "52.172.251.112/28",
169
- "52.173.123.0/28",
170
164
  "52.173.219.112/28",
171
165
  "52.173.219.96/28",
172
166
  "52.173.221.16/28",
@@ -174,55 +168,64 @@
174
168
  "52.173.221.208/28",
175
169
  "52.173.234.16/28",
176
170
  "52.173.234.80/28",
177
- "52.173.235.80/28",
178
- "52.176.139.176/28",
179
- "52.187.246.128/28",
171
+ "52.183.217.240/28",
180
172
  "52.190.137.144/28",
181
173
  "52.190.137.16/28",
182
174
  "52.190.139.48/28",
183
175
  "52.190.142.64/28",
184
176
  "52.190.190.16/28",
185
177
  "52.225.75.208/28",
186
- "52.230.163.32/28",
187
- "52.230.164.176/28",
188
178
  "52.231.30.48/28",
189
179
  "52.231.34.176/28",
190
180
  "52.231.39.144/28",
191
- "52.231.39.192/28",
192
- "52.231.49.48/28",
193
181
  "52.231.50.64/28",
194
182
  "52.236.94.144/28",
183
+ "52.241.146.208/28",
195
184
  "52.242.132.224/28",
196
185
  "52.242.132.240/28",
197
- "52.242.245.208/28",
198
- "52.252.113.240/28",
199
- "52.255.109.112/28",
200
- "52.255.109.128/28",
201
186
  "52.255.109.144/28",
202
187
  "52.255.109.80/28",
203
188
  "52.255.109.96/28",
204
189
  "52.255.111.0/28",
205
- "52.255.111.112/28",
206
- "52.255.111.16/28",
207
- "52.255.111.32/28",
208
- "52.255.111.48/28",
209
190
  "52.255.111.80/28",
210
191
  "57.154.174.112/28",
211
192
  "57.154.175.0/28",
212
193
  "57.154.187.32/28",
213
194
  "68.154.28.96/28",
214
- "68.218.30.112/28",
215
195
  "68.220.57.64/28",
216
- "68.221.67.160/28",
217
- "68.221.67.192/28",
218
- "68.221.67.224/28",
219
- "68.221.67.240/28",
220
- "68.221.75.16/28",
196
+ "70.153.189.192/28",
197
+ "70.153.32.16/28",
198
+ "70.153.32.32/28",
199
+ "70.153.87.224/28",
200
+ "70.156.152.96/28",
201
+ "74.161.200.96/28",
202
+ "74.224.217.64/28",
221
203
  "74.226.253.160/28",
222
- "74.249.86.176/28",
204
+ "74.248.37.160/28",
223
205
  "74.7.35.112/28",
224
206
  "74.7.35.48/28",
225
207
  "74.7.36.64/28",
226
208
  "74.7.36.80/28",
227
- "74.7.36.96/28"
209
+ "74.7.36.96/28",
210
+ "85.211.128.16/28",
211
+ "85.211.128.32/28",
212
+ "9.129.0.0/17",
213
+ "9.160.128.16/28",
214
+ "9.160.128.64/28",
215
+ "9.160.163.128/28",
216
+ "9.160.34.144/28",
217
+ "9.160.36.16/28",
218
+ "9.160.96.16/28",
219
+ "9.163.101.48/28",
220
+ "9.205.128.32/28",
221
+ "9.205.128.48/28",
222
+ "9.205.25.128/28",
223
+ "9.205.30.128/28",
224
+ "9.205.30.144/28",
225
+ "9.205.30.176/28",
226
+ "9.205.8.48/28",
227
+ "9.205.8.64/28",
228
+ "9.223.181.208/28",
229
+ "9.234.96.192/28",
230
+ "9.234.97.96/28"
228
231
  ]
@@ -0,0 +1,28 @@
1
+ [
2
+ "216.73.216.0/22",
3
+ "34.162.230.222/32",
4
+ "34.162.244.71/32",
5
+ "34.162.191.81/32",
6
+ "34.150.241.79/32",
7
+ "34.85.172.162/32",
8
+ "35.245.175.129/32",
9
+ "34.182.222.37/32",
10
+ "34.186.108.163/32",
11
+ "35.245.89.239/32",
12
+ "34.182.161.143/32",
13
+ "34.182.218.27/32",
14
+ "34.182.220.85/32",
15
+ "34.11.34.31/32",
16
+ "34.182.140.95/32",
17
+ "136.107.176.208/32",
18
+ "34.182.226.151/32",
19
+ "34.182.226.221/32",
20
+ "35.221.29.174/32",
21
+ "34.182.225.167/32",
22
+ "40.124.101.48/28",
23
+ "20.102.46.224/28",
24
+ "20.64.57.208/28",
25
+ "16.58.26.69/32",
26
+ "18.225.238.228/32",
27
+ "18.227.226.255/32"
28
+ ]
@@ -1,4 +1,5 @@
1
1
  [
2
+ "23.228.249.0/24",
2
3
  "120.52.22.96/27",
3
4
  "23.228.222.0/24",
4
5
  "205.251.249.0/24",
@@ -10,6 +11,7 @@
10
11
  "205.251.252.0/23",
11
12
  "54.192.0.0/16",
12
13
  "204.246.173.0/24",
14
+ "23.228.244.0/24",
13
15
  "54.230.200.0/21",
14
16
  "120.253.240.192/26",
15
17
  "23.234.192.0/18",
@@ -18,6 +20,8 @@
18
20
  "3.173.192.0/18",
19
21
  "108.156.0.0/14",
20
22
  "99.86.0.0/16",
23
+ "23.228.214.0/24",
24
+ "23.228.213.0/24",
21
25
  "13.32.0.0/15",
22
26
  "120.253.245.128/26",
23
27
  "13.224.0.0/14",
@@ -30,9 +34,11 @@
30
34
  "205.251.208.0/20",
31
35
  "3.165.0.0/16",
32
36
  "3.168.0.0/14",
37
+ "23.228.251.0/24",
33
38
  "65.9.128.0/18",
34
39
  "130.176.128.0/18",
35
40
  "23.228.221.0/24",
41
+ "23.228.248.0/24",
36
42
  "58.254.138.0/25",
37
43
  "205.251.206.0/23",
38
44
  "54.230.208.0/20",
@@ -41,6 +47,7 @@
41
47
  "23.91.0.0/19",
42
48
  "52.222.128.0/17",
43
49
  "18.164.0.0/15",
50
+ "23.228.246.0/24",
44
51
  "111.13.185.32/27",
45
52
  "64.252.128.0/18",
46
53
  "205.251.254.0/24",
@@ -64,6 +71,7 @@
64
71
  "52.82.128.0/19",
65
72
  "54.230.0.0/17",
66
73
  "54.230.128.0/18",
74
+ "23.228.247.0/24",
67
75
  "54.239.128.0/18",
68
76
  "130.176.224.0/20",
69
77
  "36.103.232.128/26",
@@ -71,6 +79,7 @@
71
79
  "143.204.0.0/16",
72
80
  "144.220.0.0/16",
73
81
  "120.52.153.192/26",
82
+ "23.228.250.0/24",
74
83
  "119.147.182.0/25",
75
84
  "120.232.236.0/25",
76
85
  "111.13.185.64/27",
@@ -88,11 +97,13 @@
88
97
  "205.251.204.0/23",
89
98
  "130.176.192.0/19",
90
99
  "23.228.223.0/24",
100
+ "23.228.212.0/24",
91
101
  "52.124.128.0/17",
92
102
  "204.246.164.0/22",
93
103
  "13.35.0.0/16",
94
104
  "204.246.174.0/23",
95
105
  "3.164.128.0/17",
106
+ "24.110.128.0/17",
96
107
  "3.172.0.0/18",
97
108
  "36.103.232.0/25",
98
109
  "119.147.182.128/26",
@@ -104,6 +115,7 @@
104
115
  "108.138.0.0/15",
105
116
  "120.253.241.160/27",
106
117
  "3.173.128.0/18",
118
+ "51.74.192.0/18",
107
119
  "64.252.64.0/18",
108
120
  "13.113.196.64/26",
109
121
  "13.113.203.0/24",
@@ -213,6 +225,7 @@
213
225
  "2600:9000:1000::/36",
214
226
  "2600:9000:2000::/36",
215
227
  "2400:7fc0:500::/40",
228
+ "2001:3fc6:20::/43",
216
229
  "2600:9000:4000::/36",
217
230
  "2600:9000:fff::/48",
218
231
  "2409:8c00:2421:400::/56",
@@ -220,6 +233,7 @@
220
233
  "2600:9000:5308::/45",
221
234
  "2600:9000:f534::/46",
222
235
  "2600:f0f0:601::/48",
236
+ "2600:9000:6000::/36",
223
237
  "2600:9000:f520::/44",
224
238
  "2600:9000:5320::/43",
225
239
  "2600:9000:5310::/44",
@@ -1,10 +1,7 @@
1
1
  [
2
2
  "132.196.86.0/24",
3
3
  "172.182.202.0/25",
4
- "172.182.204.0/24",
5
4
  "172.182.207.0/25",
6
- "172.182.214.0/24",
7
- "172.182.215.0/24",
8
5
  "20.125.66.80/28",
9
6
  "20.171.206.0/24",
10
7
  "20.171.207.0/24",
@@ -1,5 +1,6 @@
1
1
  [
2
2
  "104.210.140.128/28",
3
+ "13.66.216.176/28",
3
4
  "135.234.64.0/24",
4
5
  "172.182.193.224/28",
5
6
  "172.182.193.80/28",
@@ -10,7 +11,9 @@
10
11
  "172.182.211.192/28",
11
12
  "172.182.213.192/28",
12
13
  "172.182.224.0/28",
14
+ "172.203.190.112/28",
13
15
  "172.203.190.128/28",
16
+ "172.203.190.80/28",
14
17
  "20.14.99.96/28",
15
18
  "20.168.18.32/28",
16
19
  "20.169.6.224/28",
@@ -20,6 +23,7 @@
20
23
  "20.171.53.224/28",
21
24
  "20.25.151.224/28",
22
25
  "20.42.10.176/28",
26
+ "23.102.145.48/28",
23
27
  "4.227.36.0/25",
24
28
  "40.67.175.0/25",
25
29
  "40.90.214.16/28",
package/src/index.js CHANGED
@@ -45,7 +45,12 @@ function start() {
45
45
  }
46
46
 
47
47
  async function stop() {
48
- await pipeline.stop();
48
+ try {
49
+ await pipeline.stop();
50
+ } catch (err) {
51
+ console.error('Error stopping the pipeline:', err.message);
52
+ }
53
+ // Persist even if stopping the inputs failed
49
54
  try {
50
55
  if (constants.persistence.enabled) {
51
56
  persistence.dump(getPersistenceDir());
package/src/input/http.js CHANGED
@@ -10,6 +10,10 @@ function create({ name = 'HTTP server', path, parse = fromJS }) {
10
10
  // No validation before sending the response to the client
11
11
  res.send('Ok');
12
12
  // Processing the message(s)
13
+ // Express 5 leaves req.body undefined when no body parser matched
14
+ if (req.body === undefined) {
15
+ return;
16
+ }
13
17
  const messages = Array.isArray(req.body) ? req.body : [req.body];
14
18
  messages.forEach((message) => {
15
19
  try {
@@ -1,5 +1,6 @@
1
1
  const { fromJS } = require('immutable');
2
- const syslogParse = require('syslog-parse');
2
+ // syslog-parse is ESM-only with a default export
3
+ const syslogParse = require('syslog-parse').default;
3
4
 
4
5
  const socket = require('./socket');
5
6
 
@@ -21,6 +22,9 @@ function create({
21
22
  }
22
23
  try {
23
24
  const result = syslogParse(message);
25
+ if (!result) {
26
+ throw new Error('Unparseable syslog message');
27
+ }
24
28
  success(parse(result.message));
25
29
  } catch (err) {
26
30
  reject(err);