@serve.zone/dcrouter 11.0.4 → 11.0.5

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 (118) hide show
  1. package/dist_serve/bundle.js +1 -1
  2. package/package.json +1 -1
  3. package/ts/00_commitinfo_data.ts +1 -1
  4. package/ts_web/00_commitinfo_data.ts +1 -1
  5. package/dist_ts/00_commitinfo_data.d.ts +0 -8
  6. package/dist_ts/00_commitinfo_data.js +0 -9
  7. package/dist_ts/cache/classes.cache.cleaner.d.ts +0 -47
  8. package/dist_ts/cache/classes.cache.cleaner.js +0 -130
  9. package/dist_ts/cache/documents/classes.cached.email.d.ts +0 -125
  10. package/dist_ts/cache/documents/classes.cached.email.js +0 -337
  11. package/dist_ts/cache/documents/classes.cached.ip.reputation.d.ts +0 -119
  12. package/dist_ts/cache/documents/classes.cached.ip.reputation.js +0 -323
  13. package/dist_ts/cache/documents/index.d.ts +0 -2
  14. package/dist_ts/cache/documents/index.js +0 -3
  15. package/dist_ts/cache/index.d.ts +0 -4
  16. package/dist_ts/cache/index.js +0 -7
  17. package/dist_ts/classes.cert-provision-scheduler.d.ts +0 -53
  18. package/dist_ts/classes.cert-provision-scheduler.js +0 -110
  19. package/dist_ts/classes.dcrouter.d.ts +0 -337
  20. package/dist_ts/classes.dcrouter.js +0 -1405
  21. package/dist_ts/classes.storage-cert-manager.d.ts +0 -18
  22. package/dist_ts/classes.storage-cert-manager.js +0 -43
  23. package/dist_ts/config/classes.api-token-manager.d.ts +0 -46
  24. package/dist_ts/config/classes.api-token-manager.js +0 -150
  25. package/dist_ts/config/classes.route-config-manager.d.ts +0 -35
  26. package/dist_ts/config/classes.route-config-manager.js +0 -231
  27. package/dist_ts/config/index.d.ts +0 -3
  28. package/dist_ts/config/index.js +0 -5
  29. package/dist_ts/config/validator.d.ts +0 -104
  30. package/dist_ts/config/validator.js +0 -152
  31. package/dist_ts/errors/base.errors.d.ts +0 -224
  32. package/dist_ts/errors/base.errors.js +0 -320
  33. package/dist_ts/errors/error-handler.d.ts +0 -98
  34. package/dist_ts/errors/error-handler.js +0 -282
  35. package/dist_ts/errors/error.codes.d.ts +0 -115
  36. package/dist_ts/errors/error.codes.js +0 -136
  37. package/dist_ts/errors/index.d.ts +0 -54
  38. package/dist_ts/errors/index.js +0 -136
  39. package/dist_ts/errors/reputation.errors.d.ts +0 -183
  40. package/dist_ts/errors/reputation.errors.js +0 -292
  41. package/dist_ts/index.d.ts +0 -7
  42. package/dist_ts/index.js +0 -11
  43. package/dist_ts/logger.d.ts +0 -21
  44. package/dist_ts/logger.js +0 -81
  45. package/dist_ts/monitoring/classes.metricscache.d.ts +0 -32
  46. package/dist_ts/monitoring/classes.metricscache.js +0 -63
  47. package/dist_ts/monitoring/classes.metricsmanager.d.ts +0 -178
  48. package/dist_ts/monitoring/classes.metricsmanager.js +0 -642
  49. package/dist_ts/monitoring/index.d.ts +0 -1
  50. package/dist_ts/monitoring/index.js +0 -2
  51. package/dist_ts/opsserver/classes.opsserver.d.ts +0 -37
  52. package/dist_ts/opsserver/classes.opsserver.js +0 -85
  53. package/dist_ts/opsserver/handlers/admin.handler.d.ts +0 -31
  54. package/dist_ts/opsserver/handlers/admin.handler.js +0 -180
  55. package/dist_ts/opsserver/handlers/api-token.handler.d.ts +0 -6
  56. package/dist_ts/opsserver/handlers/api-token.handler.js +0 -62
  57. package/dist_ts/opsserver/handlers/certificate.handler.d.ts +0 -32
  58. package/dist_ts/opsserver/handlers/certificate.handler.js +0 -421
  59. package/dist_ts/opsserver/handlers/config.handler.d.ts +0 -7
  60. package/dist_ts/opsserver/handlers/config.handler.js +0 -192
  61. package/dist_ts/opsserver/handlers/email-ops.handler.d.ts +0 -30
  62. package/dist_ts/opsserver/handlers/email-ops.handler.js +0 -227
  63. package/dist_ts/opsserver/handlers/index.d.ts +0 -11
  64. package/dist_ts/opsserver/handlers/index.js +0 -12
  65. package/dist_ts/opsserver/handlers/logs.handler.d.ts +0 -25
  66. package/dist_ts/opsserver/handlers/logs.handler.js +0 -256
  67. package/dist_ts/opsserver/handlers/radius.handler.d.ts +0 -6
  68. package/dist_ts/opsserver/handlers/radius.handler.js +0 -295
  69. package/dist_ts/opsserver/handlers/remoteingress.handler.d.ts +0 -6
  70. package/dist_ts/opsserver/handlers/remoteingress.handler.js +0 -156
  71. package/dist_ts/opsserver/handlers/route-management.handler.d.ts +0 -14
  72. package/dist_ts/opsserver/handlers/route-management.handler.js +0 -117
  73. package/dist_ts/opsserver/handlers/security.handler.d.ts +0 -9
  74. package/dist_ts/opsserver/handlers/security.handler.js +0 -231
  75. package/dist_ts/opsserver/handlers/stats.handler.d.ts +0 -11
  76. package/dist_ts/opsserver/handlers/stats.handler.js +0 -399
  77. package/dist_ts/opsserver/helpers/guards.d.ts +0 -27
  78. package/dist_ts/opsserver/helpers/guards.js +0 -43
  79. package/dist_ts/opsserver/index.d.ts +0 -1
  80. package/dist_ts/opsserver/index.js +0 -2
  81. package/dist_ts/paths.d.ts +0 -26
  82. package/dist_ts/paths.js +0 -45
  83. package/dist_ts/plugins.d.ts +0 -79
  84. package/dist_ts/plugins.js +0 -113
  85. package/dist_ts/radius/classes.accounting.manager.d.ts +0 -218
  86. package/dist_ts/radius/classes.accounting.manager.js +0 -417
  87. package/dist_ts/radius/classes.radius.server.d.ts +0 -171
  88. package/dist_ts/radius/classes.radius.server.js +0 -385
  89. package/dist_ts/radius/classes.vlan.manager.d.ts +0 -128
  90. package/dist_ts/radius/classes.vlan.manager.js +0 -279
  91. package/dist_ts/radius/index.d.ts +0 -13
  92. package/dist_ts/radius/index.js +0 -14
  93. package/dist_ts/remoteingress/classes.remoteingress-manager.d.ts +0 -82
  94. package/dist_ts/remoteingress/classes.remoteingress-manager.js +0 -227
  95. package/dist_ts/remoteingress/classes.tunnel-manager.d.ts +0 -59
  96. package/dist_ts/remoteingress/classes.tunnel-manager.js +0 -165
  97. package/dist_ts/remoteingress/index.d.ts +0 -2
  98. package/dist_ts/remoteingress/index.js +0 -3
  99. package/dist_ts/security/classes.contentscanner.d.ts +0 -164
  100. package/dist_ts/security/classes.contentscanner.js +0 -642
  101. package/dist_ts/security/classes.ipreputationchecker.d.ts +0 -160
  102. package/dist_ts/security/classes.ipreputationchecker.js +0 -537
  103. package/dist_ts/security/classes.securitylogger.d.ts +0 -144
  104. package/dist_ts/security/classes.securitylogger.js +0 -233
  105. package/dist_ts/security/index.d.ts +0 -3
  106. package/dist_ts/security/index.js +0 -4
  107. package/dist_ts/sms/classes.smsservice.d.ts +0 -15
  108. package/dist_ts/sms/classes.smsservice.js +0 -72
  109. package/dist_ts/sms/config/sms.config.d.ts +0 -93
  110. package/dist_ts/sms/config/sms.config.js +0 -2
  111. package/dist_ts/sms/config/sms.schema.d.ts +0 -5
  112. package/dist_ts/sms/config/sms.schema.js +0 -121
  113. package/dist_ts/sms/index.d.ts +0 -1
  114. package/dist_ts/sms/index.js +0 -2
  115. package/dist_ts/storage/classes.storagemanager.d.ts +0 -83
  116. package/dist_ts/storage/classes.storagemanager.js +0 -350
  117. package/dist_ts/storage/index.d.ts +0 -1
  118. package/dist_ts/storage/index.js +0 -3
@@ -1,231 +0,0 @@
1
- import * as plugins from '../../plugins.js';
2
- import * as interfaces from '../../../dist_ts_interfaces/index.js';
3
- import { MetricsManager } from '../../monitoring/index.js';
4
- export class SecurityHandler {
5
- opsServerRef;
6
- constructor(opsServerRef) {
7
- this.opsServerRef = opsServerRef;
8
- this.registerHandlers();
9
- }
10
- registerHandlers() {
11
- // All security endpoints register directly on viewRouter (valid identity required via middleware)
12
- const router = this.opsServerRef.viewRouter;
13
- // Security Metrics Handler
14
- router.addTypedHandler(new plugins.typedrequest.TypedHandler('getSecurityMetrics', async (dataArg, toolsArg) => {
15
- const metrics = await this.collectSecurityMetrics();
16
- return {
17
- metrics: {
18
- blockedIPs: metrics.blockedIPs,
19
- reputationScores: metrics.reputationScores,
20
- spamDetected: metrics.spamDetection.detected,
21
- malwareDetected: metrics.malwareDetected,
22
- phishingDetected: metrics.phishingDetected,
23
- authenticationFailures: metrics.authFailures,
24
- suspiciousActivities: metrics.suspiciousActivities,
25
- },
26
- trends: dataArg.includeDetails ? {
27
- spam: metrics.trends.spam,
28
- malware: metrics.trends.malware,
29
- phishing: metrics.trends.phishing,
30
- } : undefined,
31
- };
32
- }));
33
- // Active Connections Handler
34
- router.addTypedHandler(new plugins.typedrequest.TypedHandler('getActiveConnections', async (dataArg, toolsArg) => {
35
- const connections = await this.getActiveConnections(dataArg.protocol, dataArg.state);
36
- const connectionInfos = connections.map(conn => ({
37
- id: conn.id,
38
- remoteAddress: conn.source.ip,
39
- localAddress: conn.destination.ip,
40
- startTime: conn.startTime,
41
- protocol: conn.type === 'http' ? 'https' : conn.type,
42
- state: conn.status,
43
- bytesReceived: Math.floor(conn.bytesTransferred / 2),
44
- bytesSent: Math.floor(conn.bytesTransferred / 2),
45
- }));
46
- const summary = {
47
- total: connectionInfos.length,
48
- byProtocol: connectionInfos.reduce((acc, conn) => {
49
- acc[conn.protocol] = (acc[conn.protocol] || 0) + 1;
50
- return acc;
51
- }, {}),
52
- byState: connectionInfos.reduce((acc, conn) => {
53
- acc[conn.state] = (acc[conn.state] || 0) + 1;
54
- return acc;
55
- }, {}),
56
- };
57
- return {
58
- connections: connectionInfos,
59
- summary,
60
- };
61
- }));
62
- // Network Stats Handler - provides comprehensive network metrics
63
- router.addTypedHandler(new plugins.typedrequest.TypedHandler('getNetworkStats', async (dataArg, toolsArg) => {
64
- // Get network stats from MetricsManager if available
65
- if (this.opsServerRef.dcRouterRef.metricsManager) {
66
- const networkStats = await this.opsServerRef.dcRouterRef.metricsManager.getNetworkStats();
67
- // Convert per-IP throughput Map to serializable array
68
- const throughputByIP = [];
69
- if (networkStats.throughputByIP) {
70
- for (const [ip, tp] of networkStats.throughputByIP) {
71
- throughputByIP.push({ ip, in: tp.in, out: tp.out });
72
- }
73
- }
74
- return {
75
- connectionsByIP: Array.from(networkStats.connectionsByIP.entries()).map(([ip, count]) => ({ ip, count })),
76
- throughputRate: networkStats.throughputRate,
77
- topIPs: networkStats.topIPs,
78
- totalDataTransferred: networkStats.totalDataTransferred,
79
- throughputHistory: networkStats.throughputHistory || [],
80
- throughputByIP,
81
- requestsPerSecond: networkStats.requestsPerSecond || 0,
82
- requestsTotal: networkStats.requestsTotal || 0,
83
- };
84
- }
85
- // Fallback if MetricsManager not available
86
- return {
87
- connectionsByIP: [],
88
- throughputRate: { bytesInPerSecond: 0, bytesOutPerSecond: 0 },
89
- topIPs: [],
90
- totalDataTransferred: { bytesIn: 0, bytesOut: 0 },
91
- throughputHistory: [],
92
- throughputByIP: [],
93
- requestsPerSecond: 0,
94
- requestsTotal: 0,
95
- };
96
- }));
97
- // Rate Limit Status Handler
98
- router.addTypedHandler(new plugins.typedrequest.TypedHandler('getRateLimitStatus', async (dataArg, toolsArg) => {
99
- const status = await this.getRateLimitStatus(dataArg.domain, dataArg.ip);
100
- const limits = status.limits.map(limit => ({
101
- domain: limit.identifier,
102
- currentRate: limit.current,
103
- limit: limit.limit,
104
- remaining: limit.limit - limit.current,
105
- resetTime: limit.resetAt,
106
- blocked: limit.status === 'limited',
107
- }));
108
- return {
109
- limits,
110
- globalLimit: dataArg.includeBlocked ? {
111
- current: limits.reduce((sum, l) => sum + l.currentRate, 0),
112
- limit: 1000, // Global limit
113
- remaining: 1000 - limits.reduce((sum, l) => sum + l.currentRate, 0),
114
- } : undefined,
115
- };
116
- }));
117
- }
118
- async collectSecurityMetrics() {
119
- // Get metrics from MetricsManager if available
120
- if (this.opsServerRef.dcRouterRef.metricsManager) {
121
- const securityStats = await this.opsServerRef.dcRouterRef.metricsManager.getSecurityStats();
122
- return {
123
- blockedIPs: [], // TODO: Track actual blocked IPs
124
- reputationScores: {},
125
- spamDetection: {
126
- detected: securityStats.spamDetected,
127
- falsePositives: 0,
128
- },
129
- malwareDetected: securityStats.malwareDetected,
130
- phishingDetected: securityStats.phishingDetected,
131
- authFailures: securityStats.authFailures,
132
- suspiciousActivities: 0,
133
- trends: {
134
- spam: [],
135
- malware: [],
136
- phishing: [],
137
- },
138
- };
139
- }
140
- // Fallback if MetricsManager not available
141
- return {
142
- blockedIPs: [],
143
- reputationScores: {},
144
- spamDetection: {
145
- detected: 0,
146
- falsePositives: 0,
147
- },
148
- malwareDetected: 0,
149
- phishingDetected: 0,
150
- authFailures: 0,
151
- suspiciousActivities: 0,
152
- trends: {
153
- spam: [],
154
- malware: [],
155
- phishing: [],
156
- },
157
- };
158
- }
159
- async getActiveConnections(protocol, state) {
160
- const connections = [];
161
- // Get connection info and network stats from MetricsManager if available
162
- if (this.opsServerRef.dcRouterRef.metricsManager) {
163
- const connectionInfo = await this.opsServerRef.dcRouterRef.metricsManager.getConnectionInfo();
164
- const networkStats = await this.opsServerRef.dcRouterRef.metricsManager.getNetworkStats();
165
- // Use IP-based connection data from the new metrics API
166
- if (networkStats.connectionsByIP && networkStats.connectionsByIP.size > 0) {
167
- let connIndex = 0;
168
- const publicIp = this.opsServerRef.dcRouterRef.options.publicIp || 'server';
169
- for (const [ip, count] of networkStats.connectionsByIP) {
170
- // Create a connection entry for each active IP connection
171
- for (let i = 0; i < Math.min(count, 5); i++) { // Limit to 5 connections per IP for UI performance
172
- connections.push({
173
- id: `conn-${connIndex++}`,
174
- type: 'http',
175
- source: {
176
- ip: ip,
177
- port: Math.floor(Math.random() * 50000) + 10000, // High port range
178
- },
179
- destination: {
180
- ip: publicIp,
181
- port: 443,
182
- service: 'proxy',
183
- },
184
- startTime: Date.now() - Math.floor(Math.random() * 3600000), // Within last hour
185
- bytesTransferred: Math.floor(networkStats.totalDataTransferred.bytesIn / networkStats.connectionsByIP.size),
186
- status: 'active',
187
- });
188
- }
189
- }
190
- }
191
- else if (connectionInfo.length > 0) {
192
- // Fallback to route-based connection info if no IP data available
193
- connectionInfo.forEach((info, index) => {
194
- connections.push({
195
- id: `conn-${index}`,
196
- type: 'http',
197
- source: {
198
- ip: 'unknown',
199
- port: 0,
200
- },
201
- destination: {
202
- ip: this.opsServerRef.dcRouterRef.options.publicIp || 'server',
203
- port: 443,
204
- service: info.source,
205
- },
206
- startTime: info.lastActivity.getTime(),
207
- bytesTransferred: 0,
208
- status: 'active',
209
- });
210
- });
211
- }
212
- }
213
- // Filter by protocol if specified
214
- if (protocol) {
215
- return connections.filter(conn => {
216
- if (protocol === 'https' || protocol === 'http') {
217
- return conn.type === 'http';
218
- }
219
- return conn.type === protocol.replace('s', ''); // smtp/smtps -> smtp
220
- });
221
- }
222
- return connections;
223
- }
224
- async getRateLimitStatus(domain, ip) {
225
- // TODO: Implement actual rate limit status collection
226
- return {
227
- limits: [],
228
- };
229
- }
230
- }
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHkuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzL29wc3NlcnZlci9oYW5kbGVycy9zZWN1cml0eS5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFM0QsTUFBTSxPQUFPLGVBQWU7SUFDTjtJQUFwQixZQUFvQixZQUF1QjtRQUF2QixpQkFBWSxHQUFaLFlBQVksQ0FBVztRQUN6QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLGtHQUFrRztRQUNsRyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztRQUU1QywyQkFBMkI7UUFDM0IsTUFBTSxDQUFDLGVBQWUsQ0FDcEIsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FDbkMsb0JBQW9CLEVBQ3BCLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDMUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNwRCxPQUFPO2dCQUNMLE9BQU8sRUFBRTtvQkFDUCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7b0JBQzlCLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7b0JBQzFDLFlBQVksRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVE7b0JBQzVDLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZTtvQkFDeEMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQjtvQkFDMUMsc0JBQXNCLEVBQUUsT0FBTyxDQUFDLFlBQVk7b0JBQzVDLG9CQUFvQixFQUFFLE9BQU8sQ0FB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
@@ -1,11 +0,0 @@
1
- import type { OpsServer } from '../classes.opsserver.js';
2
- export declare class StatsHandler {
3
- private opsServerRef;
4
- constructor(opsServerRef: OpsServer);
5
- private registerHandlers;
6
- private collectServerStats;
7
- private collectEmailStats;
8
- private collectDnsStats;
9
- private getQueueStatus;
10
- private checkHealthStatus;
11
- }