@serve.zone/dcrouter 5.3.0 → 5.4.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.
- package/dist_serve/bundle.js +222 -222
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.dcrouter.d.ts +1 -0
- package/dist_ts/classes.dcrouter.js +41 -34
- package/dist_ts/opsserver/handlers/certificate.handler.js +25 -10
- package/dist_ts/opsserver/handlers/stats.handler.js +11 -16
- package/dist_ts_interfaces/data/stats.d.ts +4 -0
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/appstate.d.ts +4 -0
- package/dist_ts_web/appstate.js +7 -7
- package/dist_ts_web/elements/ops-view-network.js +3 -1
- package/package.json +2 -2
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.dcrouter.ts +41 -33
- package/ts/opsserver/handlers/certificate.handler.ts +20 -8
- package/ts/opsserver/handlers/stats.handler.ts +11 -16
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/appstate.ts +7 -7
- package/ts_web/elements/ops-view-network.ts +2 -0
package/dist_ts_web/appstate.js
CHANGED
|
@@ -47,6 +47,7 @@ export const networkStatePart = await appState.getStatePart('network', {
|
|
|
47
47
|
connections: [],
|
|
48
48
|
connectionsByIP: {},
|
|
49
49
|
throughputRate: { bytesInPerSecond: 0, bytesOutPerSecond: 0 },
|
|
50
|
+
totalBytes: { in: 0, out: 0 },
|
|
50
51
|
topIPs: [],
|
|
51
52
|
lastUpdated: 0,
|
|
52
53
|
isLoading: false,
|
|
@@ -255,6 +256,9 @@ export const fetchNetworkStatsAction = networkStatePart.createAction(async (stat
|
|
|
255
256
|
connections: connectionsResponse.connections,
|
|
256
257
|
connectionsByIP,
|
|
257
258
|
throughputRate: networkStatsResponse.throughputRate || { bytesInPerSecond: 0, bytesOutPerSecond: 0 },
|
|
259
|
+
totalBytes: networkStatsResponse.totalDataTransferred
|
|
260
|
+
? { in: networkStatsResponse.totalDataTransferred.bytesIn, out: networkStatsResponse.totalDataTransferred.bytesOut }
|
|
261
|
+
: { in: 0, out: 0 },
|
|
258
262
|
topIPs: networkStatsResponse.topIPs || [],
|
|
259
263
|
lastUpdated: Date.now(),
|
|
260
264
|
isLoading: false,
|
|
@@ -556,6 +560,7 @@ async function dispatchCombinedRefreshAction() {
|
|
|
556
560
|
bytesInPerSecond: network.totalBandwidth.in,
|
|
557
561
|
bytesOutPerSecond: network.totalBandwidth.out
|
|
558
562
|
},
|
|
563
|
+
totalBytes: network.totalBytes || { in: 0, out: 0 },
|
|
559
564
|
topIPs: network.topEndpoints.map(e => ({ ip: e.endpoint, count: e.requests })),
|
|
560
565
|
lastUpdated: Date.now(),
|
|
561
566
|
isLoading: false,
|
|
@@ -572,6 +577,7 @@ async function dispatchCombinedRefreshAction() {
|
|
|
572
577
|
bytesInPerSecond: network.totalBandwidth.in,
|
|
573
578
|
bytesOutPerSecond: network.totalBandwidth.out
|
|
574
579
|
},
|
|
580
|
+
totalBytes: network.totalBytes || { in: 0, out: 0 },
|
|
575
581
|
topIPs: network.topEndpoints.map(e => ({ ip: e.endpoint, count: e.requests })),
|
|
576
582
|
lastUpdated: Date.now(),
|
|
577
583
|
isLoading: false,
|
|
@@ -610,12 +616,6 @@ let currentRefreshRate = 1000; // Track current refresh rate to avoid unnecessar
|
|
|
610
616
|
refreshInterval = setInterval(() => {
|
|
611
617
|
// Use combined refresh action for efficiency
|
|
612
618
|
dispatchCombinedRefreshAction();
|
|
613
|
-
// If network view is active, also ensure we have fresh network data
|
|
614
|
-
const currentView = uiStatePart.getState().activeView;
|
|
615
|
-
if (currentView === 'network') {
|
|
616
|
-
// Network view needs more frequent updates, fetch directly
|
|
617
|
-
networkStatePart.dispatchAction(fetchNetworkStatsAction, null);
|
|
618
|
-
}
|
|
619
619
|
}, uiState.refreshInterval);
|
|
620
620
|
}
|
|
621
621
|
}
|
|
@@ -653,4 +653,4 @@ let currentRefreshRate = 1000; // Track current refresh rate to avoid unnecessar
|
|
|
653
653
|
// Initial start
|
|
654
654
|
startAutoRefresh();
|
|
655
655
|
})();
|
|
656
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c193ZWIvYXBwc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RCxpQ0FBaUM7QUFDakMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBeUU3RSxrREFBa0Q7QUFDbEQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sUUFBUSxDQUFDLFlBQVksQ0FDdkQsT0FBTyxFQUNQO0lBQ0UsUUFBUSxFQUFFLElBQUk7SUFDZCxVQUFVLEVBQUUsS0FBSztDQUNsQixFQUNELFlBQVksQ0FBQywrQ0FBK0M7Q0FDN0QsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxNQUFNLFFBQVEsQ0FBQyxZQUFZLENBQ3ZELE9BQU8sRUFDUDtJQUNFLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFFBQVEsRUFBRSxJQUFJO0lBQ2QsZUFBZSxFQUFFLElBQUk7SUFDckIsV0FBVyxFQUFFLENBQUM7SUFDZCxTQUFTLEVBQUUsS0FBSztJQUNoQixLQUFLLEVBQUUsSUFBSTtDQUNaLEVBQ0QsTUFBTSxDQUFDLHFDQUFxQztDQUM3QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLE1BQU0sUUFBUSxDQUFDLFlBQVksQ0FDeEQsUUFBUSxFQUNSO0lBQ0UsTUFBTSxFQUFFLElBQUk7SUFDWixTQUFTLEVBQUUsS0FBSztJQUNoQixLQUFLLEVBQUUsSUFBSTtDQUNaLENBQ0YsQ0FBQztBQUVGLHVDQUF1QztBQUN2QyxNQUFNLGNBQWMsR0FBRyxHQUFXLEVBQUU7SUFDbEMsTUFBTSxJQUFJLEdBQUcs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
|
|
656
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c193ZWIvYXBwc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RCxpQ0FBaUM7QUFDakMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBMEU3RSxrREFBa0Q7QUFDbEQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sUUFBUSxDQUFDLFlBQVksQ0FDdkQsT0FBTyxFQUNQO0lBQ0UsUUFBUSxFQUFFLElBQUk7SUFDZCxVQUFVLEVBQUUsS0FBSztDQUNsQixFQUNELFlBQVksQ0FBQywrQ0FBK0M7Q0FDN0QsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxNQUFNLFFBQVEsQ0FBQyxZQUFZLENBQ3ZELE9BQU8sRUFDUDtJQUNFLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFFBQVEsRUFBRSxJQUFJO0lBQ2QsZUFBZSxFQUFFLElBQUk7SUFDckIsV0FBVyxFQUFFLENBQUM7SUFDZCxTQUFTLEVBQUUsS0FBSztJQUNoQixLQUFLLEVBQUUsSUFBSTtDQUNaLEVBQ0QsTUFBTSxDQUFDLHFDQUFxQztDQUM3QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLE1BQU0sUUFBUSxDQUFDLFlBQVksQ0FDeEQsUUFBUSxFQUNSO0lBQ0UsTUFBTSxFQUFFLElBQUk7SUFDWixTQUFTLEVBQUUsS0FBSztJQUNoQixLQUFLLEVBQUUsSUFBSTtDQUNaLENBQ0YsQ0FBQztBQUVGLHVDQUF1QztBQUN2QyxNQUFNLGNBQWMsR0FBRyxHQUFXLEVBQUU7SUFDbEMsTUFBTSxJQUFJLEdBQUcs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
|
|
@@ -437,6 +437,7 @@ let OpsViewNetwork = (() => {
|
|
|
437
437
|
type: 'number',
|
|
438
438
|
icon: 'download',
|
|
439
439
|
color: '#22c55e',
|
|
440
|
+
description: `Total: ${this.formatBytes(this.networkState.totalBytes?.in || 0)}`,
|
|
440
441
|
},
|
|
441
442
|
{
|
|
442
443
|
id: 'throughputOut',
|
|
@@ -446,6 +447,7 @@ let OpsViewNetwork = (() => {
|
|
|
446
447
|
type: 'number',
|
|
447
448
|
icon: 'upload',
|
|
448
449
|
color: '#8b5cf6',
|
|
450
|
+
description: `Total: ${this.formatBytes(this.networkState.totalBytes?.out || 0)}`,
|
|
449
451
|
},
|
|
450
452
|
];
|
|
451
453
|
return html `
|
|
@@ -576,4 +578,4 @@ let OpsViewNetwork = (() => {
|
|
|
576
578
|
return OpsViewNetwork = _classThis;
|
|
577
579
|
})();
|
|
578
580
|
export { OpsViewNetwork };
|
|
579
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLXZpZXctbmV0d29yay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9vcHMtdmlldy1uZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUF1QixHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RJLE9BQU8sS0FBSyxRQUFRLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBbUIsTUFBTSw2QkFBNkIsQ0FBQztJQXlCakQsY0FBYzs0QkFEMUIsYUFBYSxDQUFDLGtCQUFrQixDQUFDOzs7O3NCQUNFLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7OEJBQW5CLFNBQVEsV0FBVzs7OztzQ0FDNUMsS0FBSyxFQUFFO3dDQUdQLEtBQUssRUFBRTsyQ0FJUCxLQUFLLEVBQUU7eUNBR1AsS0FBSyxFQUFFOzBDQUdQLEtBQUssRUFBRTtZQVpSLG1MQUFTLFVBQVUsNkJBQVYsVUFBVSwrRkFBc0M7WUFHekQseUxBQVMsWUFBWSw2QkFBWixZQUFZLG1HQUF3QztZQUk3RCxrTUFBUyxlQUFlLDZCQUFmLGVBQWUseUdBQXlCO1lBR2pELDRMQUFTLGFBQWEsNkJBQWIsYUFBYSxxR0FBZ0Q7WUFHdEUsK0xBQVMsY0FBYyw2QkFBZCxjQUFjLHVHQUFnRDtZQWZ6RSw2S0F1aUJDOzs7O1FBcmlCQyxpRkFBc0IsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsRUFBQztRQUF6RCxJQUFTLFVBQVUsZ0RBQXNDO1FBQXpELElBQVMsVUFBVSxzREFBc0M7UUFHekQsOElBQXdCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBQztRQUE3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
|
|
581
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLXZpZXctbmV0d29yay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9vcHMtdmlldy1uZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUF1QixHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RJLE9BQU8sS0FBSyxRQUFRLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBbUIsTUFBTSw2QkFBNkIsQ0FBQztJQXlCakQsY0FBYzs0QkFEMUIsYUFBYSxDQUFDLGtCQUFrQixDQUFDOzs7O3NCQUNFLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7OEJBQW5CLFNBQVEsV0FBVzs7OztzQ0FDNUMsS0FBSyxFQUFFO3dDQUdQLEtBQUssRUFBRTsyQ0FJUCxLQUFLLEVBQUU7eUNBR1AsS0FBSyxFQUFFOzBDQUdQLEtBQUssRUFBRTtZQVpSLG1MQUFTLFVBQVUsNkJBQVYsVUFBVSwrRkFBc0M7WUFHekQseUxBQVMsWUFBWSw2QkFBWixZQUFZLG1HQUF3QztZQUk3RCxrTUFBUyxlQUFlLDZCQUFmLGVBQWUseUdBQXlCO1lBR2pELDRMQUFTLGFBQWEsNkJBQWIsYUFBYSxxR0FBZ0Q7WUFHdEUsK0xBQVMsY0FBYyw2QkFBZCxjQUFjLHVHQUFnRDtZQWZ6RSw2S0F5aUJDOzs7O1FBdmlCQyxpRkFBc0IsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsRUFBQztRQUF6RCxJQUFTLFVBQVUsZ0RBQXNDO1FBQXpELElBQVMsVUFBVSxzREFBc0M7UUFHekQsOElBQXdCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBQztRQUE3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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serve.zone/dcrouter",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.4.1",
|
|
5
5
|
"description": "A multifaceted routing service handling mail and SMS delivery functions.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"exports": {
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@push.rocks/smartnetwork": "^4.4.0",
|
|
50
50
|
"@push.rocks/smartpath": "^6.0.0",
|
|
51
51
|
"@push.rocks/smartpromise": "^4.2.3",
|
|
52
|
-
"@push.rocks/smartproxy": "^
|
|
52
|
+
"@push.rocks/smartproxy": "^25.0.0",
|
|
53
53
|
"@push.rocks/smartradius": "^1.1.1",
|
|
54
54
|
"@push.rocks/smartrequest": "^5.0.1",
|
|
55
55
|
"@push.rocks/smartrx": "^3.0.10",
|
package/ts/00_commitinfo_data.ts
CHANGED
package/ts/classes.dcrouter.ts
CHANGED
|
@@ -189,6 +189,7 @@ export class DcRouter {
|
|
|
189
189
|
domain: string;
|
|
190
190
|
expiryDate?: string;
|
|
191
191
|
issuedAt?: string;
|
|
192
|
+
source?: string;
|
|
192
193
|
error?: string;
|
|
193
194
|
}>();
|
|
194
195
|
|
|
@@ -450,9 +451,14 @@ export class DcRouter {
|
|
|
450
451
|
});
|
|
451
452
|
await this.smartAcme.start();
|
|
452
453
|
|
|
453
|
-
smartProxyConfig.certProvisionFunction = async (domain
|
|
454
|
+
smartProxyConfig.certProvisionFunction = async (domain, eventComms) => {
|
|
454
455
|
try {
|
|
456
|
+
eventComms.log(`Attempting DNS-01 via SmartAcme for ${domain}`);
|
|
457
|
+
eventComms.setSource('smartacme-dns-01');
|
|
455
458
|
const cert = await this.smartAcme.getCertificateForDomain(domain);
|
|
459
|
+
if (cert.validUntil) {
|
|
460
|
+
eventComms.setExpiryDate(new Date(cert.validUntil));
|
|
461
|
+
}
|
|
456
462
|
return {
|
|
457
463
|
id: cert.id,
|
|
458
464
|
domainName: cert.domainName,
|
|
@@ -463,7 +469,7 @@ export class DcRouter {
|
|
|
463
469
|
csr: cert.csr,
|
|
464
470
|
};
|
|
465
471
|
} catch (err) {
|
|
466
|
-
|
|
472
|
+
eventComms.warn(`SmartAcme DNS-01 failed for ${domain}: ${err.message}, falling back to http-01`);
|
|
467
473
|
return 'http01';
|
|
468
474
|
}
|
|
469
475
|
};
|
|
@@ -485,39 +491,41 @@ export class DcRouter {
|
|
|
485
491
|
console.error('[DcRouter] Error stack:', err.stack);
|
|
486
492
|
});
|
|
487
493
|
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
}
|
|
498
|
-
}
|
|
494
|
+
// Always listen for certificate events — emitted by both ACME and certProvisionFunction paths
|
|
495
|
+
this.smartProxy.on('certificate-issued', (event: plugins.smartproxy.ICertificateIssuedEvent) => {
|
|
496
|
+
console.log(`[DcRouter] Certificate issued for ${event.domain} via ${event.source}, expires ${event.expiryDate}`);
|
|
497
|
+
const routeName = this.findRouteNameForDomain(event.domain);
|
|
498
|
+
if (routeName) {
|
|
499
|
+
this.certificateStatusMap.set(routeName, {
|
|
500
|
+
status: 'valid', domain: event.domain,
|
|
501
|
+
expiryDate: event.expiryDate, issuedAt: new Date().toISOString(),
|
|
502
|
+
source: event.source,
|
|
503
|
+
});
|
|
504
|
+
}
|
|
505
|
+
});
|
|
499
506
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
}
|
|
509
|
-
}
|
|
507
|
+
this.smartProxy.on('certificate-renewed', (event: plugins.smartproxy.ICertificateIssuedEvent) => {
|
|
508
|
+
console.log(`[DcRouter] Certificate renewed for ${event.domain} via ${event.source}, expires ${event.expiryDate}`);
|
|
509
|
+
const routeName = this.findRouteNameForDomain(event.domain);
|
|
510
|
+
if (routeName) {
|
|
511
|
+
this.certificateStatusMap.set(routeName, {
|
|
512
|
+
status: 'valid', domain: event.domain,
|
|
513
|
+
expiryDate: event.expiryDate, issuedAt: new Date().toISOString(),
|
|
514
|
+
source: event.source,
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
});
|
|
510
518
|
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
}
|
|
519
|
-
}
|
|
520
|
-
}
|
|
519
|
+
this.smartProxy.on('certificate-failed', (event: plugins.smartproxy.ICertificateFailedEvent) => {
|
|
520
|
+
console.error(`[DcRouter] Certificate failed for ${event.domain} (${event.source}):`, event.error);
|
|
521
|
+
const routeName = this.findRouteNameForDomain(event.domain);
|
|
522
|
+
if (routeName) {
|
|
523
|
+
this.certificateStatusMap.set(routeName, {
|
|
524
|
+
status: 'failed', domain: event.domain, error: event.error,
|
|
525
|
+
source: event.source,
|
|
526
|
+
});
|
|
527
|
+
}
|
|
528
|
+
});
|
|
521
529
|
|
|
522
530
|
// Start SmartProxy
|
|
523
531
|
console.log('[DcRouter] Starting SmartProxy...');
|
|
@@ -16,7 +16,7 @@ export class CertificateHandler {
|
|
|
16
16
|
new plugins.typedrequest.TypedHandler<interfaces.requests.IReq_GetCertificateOverview>(
|
|
17
17
|
'getCertificateOverview',
|
|
18
18
|
async (dataArg) => {
|
|
19
|
-
const certificates = this.buildCertificateOverview();
|
|
19
|
+
const certificates = await this.buildCertificateOverview();
|
|
20
20
|
const summary = this.buildSummary(certificates);
|
|
21
21
|
return { certificates, summary };
|
|
22
22
|
}
|
|
@@ -34,7 +34,7 @@ export class CertificateHandler {
|
|
|
34
34
|
);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
private buildCertificateOverview(): interfaces.requests.ICertificateInfo[] {
|
|
37
|
+
private async buildCertificateOverview(): Promise<interfaces.requests.ICertificateInfo[]> {
|
|
38
38
|
const dcRouter = this.opsServerRef.dcRouterRef;
|
|
39
39
|
const smartProxy = dcRouter.smartProxy;
|
|
40
40
|
if (!smartProxy) return [];
|
|
@@ -82,14 +82,26 @@ export class CertificateHandler {
|
|
|
82
82
|
expiryDate = eventStatus.expiryDate;
|
|
83
83
|
issuedAt = eventStatus.issuedAt;
|
|
84
84
|
error = eventStatus.error;
|
|
85
|
+
if (eventStatus.source) {
|
|
86
|
+
issuer = eventStatus.source;
|
|
87
|
+
}
|
|
85
88
|
}
|
|
86
89
|
|
|
87
|
-
// Try
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
// Try Rust-side certificate status if no event data
|
|
91
|
+
if (status === 'unknown') {
|
|
92
|
+
try {
|
|
93
|
+
const rustStatus = await smartProxy.getCertificateStatus(route.name);
|
|
94
|
+
if (rustStatus) {
|
|
95
|
+
if (rustStatus.expiryDate) expiryDate = rustStatus.expiryDate;
|
|
96
|
+
if (rustStatus.issuer) issuer = rustStatus.issuer;
|
|
97
|
+
if (rustStatus.issuedAt) issuedAt = rustStatus.issuedAt;
|
|
98
|
+
if (rustStatus.status === 'valid' || rustStatus.status === 'expired') {
|
|
99
|
+
status = rustStatus.status;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
} catch {
|
|
103
|
+
// Rust bridge may not support this command yet — ignore
|
|
104
|
+
}
|
|
93
105
|
}
|
|
94
106
|
|
|
95
107
|
// Compute status from expiry date if we have one and status is still valid/unknown
|
|
@@ -251,26 +251,21 @@ export class StatsHandler {
|
|
|
251
251
|
|
|
252
252
|
if (sections.network && this.opsServerRef.dcRouterRef.metricsManager) {
|
|
253
253
|
promises.push(
|
|
254
|
-
|
|
255
|
-
const
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
remoteAddress: ip,
|
|
259
|
-
protocol: 'https' as any,
|
|
260
|
-
state: 'established' as any,
|
|
261
|
-
startTime: Date.now(),
|
|
262
|
-
bytesIn: 0,
|
|
263
|
-
bytesOut: 0,
|
|
264
|
-
});
|
|
265
|
-
});
|
|
266
|
-
|
|
254
|
+
(async () => {
|
|
255
|
+
const stats = await this.opsServerRef.dcRouterRef.metricsManager.getNetworkStats();
|
|
256
|
+
const serverStats = await this.collectServerStats();
|
|
257
|
+
|
|
267
258
|
metrics.network = {
|
|
268
259
|
totalBandwidth: {
|
|
269
260
|
in: stats.throughputRate.bytesInPerSecond,
|
|
270
261
|
out: stats.throughputRate.bytesOutPerSecond,
|
|
271
262
|
},
|
|
272
|
-
|
|
273
|
-
|
|
263
|
+
totalBytes: {
|
|
264
|
+
in: stats.totalDataTransferred.bytesIn,
|
|
265
|
+
out: stats.totalDataTransferred.bytesOut,
|
|
266
|
+
},
|
|
267
|
+
activeConnections: serverStats.activeConnections,
|
|
268
|
+
connectionDetails: [],
|
|
274
269
|
topEndpoints: stats.topIPs.map(ip => ({
|
|
275
270
|
endpoint: ip.ip,
|
|
276
271
|
requests: ip.count,
|
|
@@ -280,7 +275,7 @@ export class StatsHandler {
|
|
|
280
275
|
},
|
|
281
276
|
})),
|
|
282
277
|
};
|
|
283
|
-
})
|
|
278
|
+
})()
|
|
284
279
|
);
|
|
285
280
|
}
|
|
286
281
|
|
package/ts_web/appstate.ts
CHANGED
|
@@ -47,6 +47,7 @@ export interface INetworkState {
|
|
|
47
47
|
connections: interfaces.data.IConnectionInfo[];
|
|
48
48
|
connectionsByIP: { [ip: string]: number };
|
|
49
49
|
throughputRate: { bytesInPerSecond: number; bytesOutPerSecond: number };
|
|
50
|
+
totalBytes: { in: number; out: number };
|
|
50
51
|
topIPs: Array<{ ip: string; count: number }>;
|
|
51
52
|
lastUpdated: number;
|
|
52
53
|
isLoading: boolean;
|
|
@@ -144,6 +145,7 @@ export const networkStatePart = await appState.getStatePart<INetworkState>(
|
|
|
144
145
|
connections: [],
|
|
145
146
|
connectionsByIP: {},
|
|
146
147
|
throughputRate: { bytesInPerSecond: 0, bytesOutPerSecond: 0 },
|
|
148
|
+
totalBytes: { in: 0, out: 0 },
|
|
147
149
|
topIPs: [],
|
|
148
150
|
lastUpdated: 0,
|
|
149
151
|
isLoading: false,
|
|
@@ -421,6 +423,9 @@ export const fetchNetworkStatsAction = networkStatePart.createAction(async (stat
|
|
|
421
423
|
connections: connectionsResponse.connections,
|
|
422
424
|
connectionsByIP,
|
|
423
425
|
throughputRate: networkStatsResponse.throughputRate || { bytesInPerSecond: 0, bytesOutPerSecond: 0 },
|
|
426
|
+
totalBytes: networkStatsResponse.totalDataTransferred
|
|
427
|
+
? { in: networkStatsResponse.totalDataTransferred.bytesIn, out: networkStatsResponse.totalDataTransferred.bytesOut }
|
|
428
|
+
: { in: 0, out: 0 },
|
|
424
429
|
topIPs: networkStatsResponse.topIPs || [],
|
|
425
430
|
lastUpdated: Date.now(),
|
|
426
431
|
isLoading: false,
|
|
@@ -790,6 +795,7 @@ async function dispatchCombinedRefreshAction() {
|
|
|
790
795
|
bytesInPerSecond: network.totalBandwidth.in,
|
|
791
796
|
bytesOutPerSecond: network.totalBandwidth.out
|
|
792
797
|
},
|
|
798
|
+
totalBytes: network.totalBytes || { in: 0, out: 0 },
|
|
793
799
|
topIPs: network.topEndpoints.map(e => ({ ip: e.endpoint, count: e.requests })),
|
|
794
800
|
lastUpdated: Date.now(),
|
|
795
801
|
isLoading: false,
|
|
@@ -805,6 +811,7 @@ async function dispatchCombinedRefreshAction() {
|
|
|
805
811
|
bytesInPerSecond: network.totalBandwidth.in,
|
|
806
812
|
bytesOutPerSecond: network.totalBandwidth.out
|
|
807
813
|
},
|
|
814
|
+
totalBytes: network.totalBytes || { in: 0, out: 0 },
|
|
808
815
|
topIPs: network.topEndpoints.map(e => ({ ip: e.endpoint, count: e.requests })),
|
|
809
816
|
lastUpdated: Date.now(),
|
|
810
817
|
isLoading: false,
|
|
@@ -845,13 +852,6 @@ let currentRefreshRate = 1000; // Track current refresh rate to avoid unnecessar
|
|
|
845
852
|
refreshInterval = setInterval(() => {
|
|
846
853
|
// Use combined refresh action for efficiency
|
|
847
854
|
dispatchCombinedRefreshAction();
|
|
848
|
-
|
|
849
|
-
// If network view is active, also ensure we have fresh network data
|
|
850
|
-
const currentView = uiStatePart.getState().activeView;
|
|
851
|
-
if (currentView === 'network') {
|
|
852
|
-
// Network view needs more frequent updates, fetch directly
|
|
853
|
-
networkStatePart.dispatchAction(fetchNetworkStatsAction, null);
|
|
854
|
-
}
|
|
855
855
|
}, uiState.refreshInterval);
|
|
856
856
|
}
|
|
857
857
|
} else {
|
|
@@ -426,6 +426,7 @@ export class OpsViewNetwork extends DeesElement {
|
|
|
426
426
|
type: 'number',
|
|
427
427
|
icon: 'download',
|
|
428
428
|
color: '#22c55e',
|
|
429
|
+
description: `Total: ${this.formatBytes(this.networkState.totalBytes?.in || 0)}`,
|
|
429
430
|
},
|
|
430
431
|
{
|
|
431
432
|
id: 'throughputOut',
|
|
@@ -435,6 +436,7 @@ export class OpsViewNetwork extends DeesElement {
|
|
|
435
436
|
type: 'number',
|
|
436
437
|
icon: 'upload',
|
|
437
438
|
color: '#8b5cf6',
|
|
439
|
+
description: `Total: ${this.formatBytes(this.networkState.totalBytes?.out || 0)}`,
|
|
438
440
|
},
|
|
439
441
|
];
|
|
440
442
|
|