@serve.zone/dcrouter 5.0.2 → 5.0.3
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 +30539 -0
- package/dist_serve/bundle.js.map +7 -0
- package/dist_serve/index.html +1 -0
- package/dist_ts/00_commitinfo_data.d.ts +8 -0
- package/dist_ts/00_commitinfo_data.js +9 -0
- package/dist_ts/cache/classes.cache.cleaner.d.ts +47 -0
- package/dist_ts/cache/classes.cache.cleaner.js +130 -0
- package/dist_ts/cache/classes.cached.document.d.ts +76 -0
- package/dist_ts/cache/classes.cached.document.js +100 -0
- package/dist_ts/cache/classes.cachedb.d.ts +60 -0
- package/dist_ts/cache/classes.cachedb.js +125 -0
- package/dist_ts/cache/documents/classes.cached.email.d.ts +125 -0
- package/dist_ts/cache/documents/classes.cached.email.js +337 -0
- package/dist_ts/cache/documents/classes.cached.ip.reputation.d.ts +119 -0
- package/dist_ts/cache/documents/classes.cached.ip.reputation.js +323 -0
- package/dist_ts/cache/documents/index.d.ts +2 -0
- package/dist_ts/cache/documents/index.js +3 -0
- package/dist_ts/cache/index.d.ts +4 -0
- package/dist_ts/cache/index.js +7 -0
- package/dist_ts/classes.dcrouter.d.ts +276 -0
- package/dist_ts/classes.dcrouter.js +1033 -0
- package/dist_ts/config/index.d.ts +1 -0
- package/dist_ts/config/index.js +3 -0
- package/dist_ts/config/validator.d.ts +104 -0
- package/dist_ts/config/validator.js +152 -0
- package/dist_ts/errors/base.errors.d.ts +224 -0
- package/dist_ts/errors/base.errors.js +320 -0
- package/dist_ts/errors/error-handler.d.ts +98 -0
- package/dist_ts/errors/error-handler.js +282 -0
- package/dist_ts/errors/error.codes.d.ts +115 -0
- package/dist_ts/errors/error.codes.js +136 -0
- package/dist_ts/errors/index.d.ts +54 -0
- package/dist_ts/errors/index.js +136 -0
- package/dist_ts/errors/reputation.errors.d.ts +183 -0
- package/dist_ts/errors/reputation.errors.js +292 -0
- package/dist_ts/index.d.ts +6 -0
- package/dist_ts/index.js +9 -0
- package/dist_ts/logger.d.ts +17 -0
- package/dist_ts/logger.js +76 -0
- package/dist_ts/monitoring/classes.metricscache.d.ts +32 -0
- package/dist_ts/monitoring/classes.metricscache.js +63 -0
- package/dist_ts/monitoring/classes.metricsmanager.d.ts +112 -0
- package/dist_ts/monitoring/classes.metricsmanager.js +446 -0
- package/dist_ts/monitoring/index.d.ts +1 -0
- package/dist_ts/monitoring/index.js +2 -0
- package/dist_ts/opsserver/classes.opsserver.d.ts +22 -0
- package/dist_ts/opsserver/classes.opsserver.js +56 -0
- package/dist_ts/opsserver/handlers/admin.handler.d.ts +31 -0
- package/dist_ts/opsserver/handlers/admin.handler.js +180 -0
- package/dist_ts/opsserver/handlers/config.handler.d.ts +9 -0
- package/dist_ts/opsserver/handlers/config.handler.js +67 -0
- package/dist_ts/opsserver/handlers/email-ops.handler.d.ts +12 -0
- package/dist_ts/opsserver/handlers/email-ops.handler.js +219 -0
- package/dist_ts/opsserver/handlers/index.d.ts +7 -0
- package/dist_ts/opsserver/handlers/index.js +8 -0
- package/dist_ts/opsserver/handlers/logs.handler.d.ts +10 -0
- package/dist_ts/opsserver/handlers/logs.handler.js +122 -0
- package/dist_ts/opsserver/handlers/radius.handler.d.ts +8 -0
- package/dist_ts/opsserver/handlers/radius.handler.js +296 -0
- package/dist_ts/opsserver/handlers/security.handler.d.ts +11 -0
- package/dist_ts/opsserver/handlers/security.handler.js +217 -0
- package/dist_ts/opsserver/handlers/stats.handler.d.ts +13 -0
- package/dist_ts/opsserver/handlers/stats.handler.js +366 -0
- package/dist_ts/opsserver/helpers/guards.d.ts +25 -0
- package/dist_ts/opsserver/helpers/guards.js +41 -0
- package/dist_ts/opsserver/index.d.ts +1 -0
- package/dist_ts/opsserver/index.js +2 -0
- package/dist_ts/paths.d.ts +14 -0
- package/dist_ts/paths.js +39 -0
- package/dist_ts/plugins.d.ts +78 -0
- package/dist_ts/plugins.js +112 -0
- package/dist_ts/radius/classes.accounting.manager.d.ts +218 -0
- package/dist_ts/radius/classes.accounting.manager.js +417 -0
- package/dist_ts/radius/classes.radius.server.d.ts +171 -0
- package/dist_ts/radius/classes.radius.server.js +385 -0
- package/dist_ts/radius/classes.vlan.manager.d.ts +128 -0
- package/dist_ts/radius/classes.vlan.manager.js +272 -0
- package/dist_ts/radius/index.d.ts +13 -0
- package/dist_ts/radius/index.js +14 -0
- package/dist_ts/security/classes.contentscanner.d.ts +160 -0
- package/dist_ts/security/classes.contentscanner.js +637 -0
- package/dist_ts/security/classes.ipreputationchecker.d.ts +150 -0
- package/dist_ts/security/classes.ipreputationchecker.js +512 -0
- package/dist_ts/security/classes.securitylogger.d.ts +140 -0
- package/dist_ts/security/classes.securitylogger.js +235 -0
- package/dist_ts/security/index.d.ts +3 -0
- package/dist_ts/security/index.js +4 -0
- package/dist_ts/sms/classes.smsservice.d.ts +15 -0
- package/dist_ts/sms/classes.smsservice.js +72 -0
- package/dist_ts/sms/config/sms.config.d.ts +93 -0
- package/dist_ts/sms/config/sms.config.js +2 -0
- package/dist_ts/sms/config/sms.schema.d.ts +5 -0
- package/dist_ts/sms/config/sms.schema.js +121 -0
- package/dist_ts/sms/index.d.ts +1 -0
- package/dist_ts/sms/index.js +2 -0
- package/dist_ts/storage/classes.storagemanager.d.ts +82 -0
- package/dist_ts/storage/classes.storagemanager.js +344 -0
- package/dist_ts/storage/index.d.ts +1 -0
- package/dist_ts/storage/index.js +3 -0
- package/dist_ts_interfaces/data/auth.d.ts +8 -0
- package/dist_ts_interfaces/data/auth.js +2 -0
- package/dist_ts_interfaces/data/index.d.ts +2 -0
- package/dist_ts_interfaces/data/index.js +3 -0
- package/dist_ts_interfaces/data/stats.d.ts +120 -0
- package/dist_ts_interfaces/data/stats.js +2 -0
- package/{ts_interfaces/index.ts → dist_ts_interfaces/index.d.ts} +1 -5
- package/dist_ts_interfaces/index.js +8 -0
- package/{ts_interfaces/plugins.ts → dist_ts_interfaces/plugins.d.ts} +1 -5
- package/dist_ts_interfaces/plugins.js +4 -0
- package/dist_ts_interfaces/requests/admin.d.ts +31 -0
- package/dist_ts_interfaces/requests/admin.js +3 -0
- package/dist_ts_interfaces/requests/combined.stats.d.ts +24 -0
- package/dist_ts_interfaces/requests/combined.stats.js +2 -0
- package/dist_ts_interfaces/requests/config.d.ts +13 -0
- package/dist_ts_interfaces/requests/config.js +3 -0
- package/dist_ts_interfaces/requests/email-ops.d.ts +139 -0
- package/dist_ts_interfaces/requests/email-ops.js +3 -0
- package/{ts_interfaces/requests/index.ts → dist_ts_interfaces/requests/index.d.ts} +1 -1
- package/dist_ts_interfaces/requests/index.js +8 -0
- package/dist_ts_interfaces/requests/logs.d.ts +34 -0
- package/dist_ts_interfaces/requests/logs.js +4 -0
- package/dist_ts_interfaces/requests/radius.d.ts +268 -0
- package/dist_ts_interfaces/requests/radius.js +3 -0
- package/dist_ts_interfaces/requests/stats.d.ts +131 -0
- package/dist_ts_interfaces/requests/stats.js +4 -0
- package/dist_ts_web/00_commitinfo_data.d.ts +8 -0
- package/dist_ts_web/00_commitinfo_data.js +9 -0
- package/dist_ts_web/appstate.d.ts +96 -0
- package/dist_ts_web/appstate.js +587 -0
- package/dist_ts_web/elements/index.d.ts +8 -0
- package/dist_ts_web/elements/index.js +9 -0
- package/dist_ts_web/elements/ops-dashboard.d.ts +23 -0
- package/dist_ts_web/elements/ops-dashboard.js +271 -0
- package/dist_ts_web/elements/ops-view-config.d.ts +17 -0
- package/dist_ts_web/elements/ops-view-config.js +414 -0
- package/dist_ts_web/elements/ops-view-emails.d.ts +44 -0
- package/dist_ts_web/elements/ops-view-emails.js +880 -0
- package/dist_ts_web/elements/ops-view-logs.d.ts +13 -0
- package/dist_ts_web/elements/ops-view-logs.js +249 -0
- package/dist_ts_web/elements/ops-view-network.d.ts +65 -0
- package/dist_ts_web/elements/ops-view-network.js +579 -0
- package/dist_ts_web/elements/ops-view-overview.d.ts +14 -0
- package/dist_ts_web/elements/ops-view-overview.js +344 -0
- package/dist_ts_web/elements/ops-view-security.d.ts +21 -0
- package/dist_ts_web/elements/ops-view-security.js +568 -0
- package/dist_ts_web/elements/shared/css.d.ts +1 -0
- package/dist_ts_web/elements/shared/css.js +10 -0
- package/dist_ts_web/elements/shared/index.d.ts +2 -0
- package/dist_ts_web/elements/shared/index.js +3 -0
- package/dist_ts_web/elements/shared/ops-sectionheading.d.ts +5 -0
- package/dist_ts_web/elements/shared/ops-sectionheading.js +82 -0
- package/dist_ts_web/index.d.ts +1 -0
- package/dist_ts_web/index.js +10 -0
- package/dist_ts_web/plugins.d.ts +4 -0
- package/dist_ts_web/plugins.js +7 -0
- package/dist_ts_web/router.d.ts +25 -0
- package/dist_ts_web/router.js +165 -0
- package/package.json +14 -2
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/.dockerignore +0 -1
- package/.gitea/workflows/docker_nottags.yaml +0 -71
- package/.gitea/workflows/docker_tags.yaml +0 -106
- package/.playwright-mcp/dcrouter-scrollbar-issue.png +0 -0
- package/.playwright-mcp/page-2026-02-01T23-10-23-737Z.png +0 -0
- package/.playwright-mcp/page-2026-02-01T23-11-19-449Z.png +0 -0
- package/.playwright-mcp/page-2026-02-01T23-12-03-126Z.png +0 -0
- package/.playwright-mcp/page-2026-02-01T23-12-15-576Z.png +0 -0
- package/.vscode/launch.json +0 -11
- package/.vscode/settings.json +0 -26
- package/Dockerfile +0 -46
- package/changelog.md +0 -350
- package/cli.child.js +0 -4
- package/cli.child.ts +0 -4
- package/cli.ts.js +0 -5
- package/html/index.html +0 -121
- package/test/readme.md +0 -443
- package/test/test.config.md +0 -175
- package/test/test.contentscanner.ts +0 -265
- package/test/test.dcrouter.email.ts +0 -159
- package/test/test.dns-server-config.ts +0 -140
- package/test/test.dns-socket-handler.ts +0 -148
- package/test/test.errors.ts +0 -274
- package/test/test.ipreputationchecker.ts +0 -179
- package/test/test.jwt-auth.ts +0 -131
- package/test/test.opsserver-api.ts +0 -84
- package/test/test.protected-endpoint.ts +0 -120
- package/test/test.storagemanager.ts +0 -289
- package/test_watch/devserver.ts +0 -35
- package/ts_interfaces/data/auth.ts +0 -8
- package/ts_interfaces/data/index.ts +0 -2
- package/ts_interfaces/data/stats.ts +0 -131
- package/ts_interfaces/readme.md +0 -205
- package/ts_interfaces/requests/admin.ts +0 -46
- package/ts_interfaces/requests/combined.stats.ts +0 -25
- package/ts_interfaces/requests/config.ts +0 -18
- package/ts_interfaces/requests/email-ops.ts +0 -239
- package/ts_interfaces/requests/logs.ts +0 -44
- package/ts_interfaces/requests/radius.ts +0 -329
- package/ts_interfaces/requests/stats.ts +0 -162
- package/ts_interfaces/tspublish.json +0 -3
- package/tsconfig.json +0 -12
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
2
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
3
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
4
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
5
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
6
|
+
var _, done = false;
|
|
7
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
8
|
+
var context = {};
|
|
9
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
10
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
11
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
12
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
13
|
+
if (kind === "accessor") {
|
|
14
|
+
if (result === void 0) continue;
|
|
15
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
16
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
17
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
18
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
19
|
+
}
|
|
20
|
+
else if (_ = accept(result)) {
|
|
21
|
+
if (kind === "field") initializers.unshift(_);
|
|
22
|
+
else descriptor[key] = _;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
26
|
+
done = true;
|
|
27
|
+
};
|
|
28
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
29
|
+
var useValue = arguments.length > 2;
|
|
30
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
31
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
32
|
+
}
|
|
33
|
+
return useValue ? value : void 0;
|
|
34
|
+
};
|
|
35
|
+
import * as plugins from '../plugins.js';
|
|
36
|
+
import * as shared from './shared/index.js';
|
|
37
|
+
import * as appstate from '../appstate.js';
|
|
38
|
+
import { DeesElement, customElement, html, state, css, cssManager, } from '@design.estate/dees-element';
|
|
39
|
+
import {} from '@design.estate/dees-catalog';
|
|
40
|
+
let OpsViewOverview = (() => {
|
|
41
|
+
let _classDecorators = [customElement('ops-view-overview')];
|
|
42
|
+
let _classDescriptor;
|
|
43
|
+
let _classExtraInitializers = [];
|
|
44
|
+
let _classThis;
|
|
45
|
+
let _classSuper = DeesElement;
|
|
46
|
+
let _statsState_decorators;
|
|
47
|
+
let _statsState_initializers = [];
|
|
48
|
+
let _statsState_extraInitializers = [];
|
|
49
|
+
var OpsViewOverview = class extends _classSuper {
|
|
50
|
+
static { _classThis = this; }
|
|
51
|
+
static {
|
|
52
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
53
|
+
_statsState_decorators = [state()];
|
|
54
|
+
__esDecorate(this, null, _statsState_decorators, { kind: "accessor", name: "statsState", static: false, private: false, access: { has: obj => "statsState" in obj, get: obj => obj.statsState, set: (obj, value) => { obj.statsState = value; } }, metadata: _metadata }, _statsState_initializers, _statsState_extraInitializers);
|
|
55
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
56
|
+
OpsViewOverview = _classThis = _classDescriptor.value;
|
|
57
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
58
|
+
}
|
|
59
|
+
#statsState_accessor_storage = __runInitializers(this, _statsState_initializers, {
|
|
60
|
+
serverStats: null,
|
|
61
|
+
emailStats: null,
|
|
62
|
+
dnsStats: null,
|
|
63
|
+
securityMetrics: null,
|
|
64
|
+
lastUpdated: 0,
|
|
65
|
+
isLoading: false,
|
|
66
|
+
error: null,
|
|
67
|
+
});
|
|
68
|
+
get statsState() { return this.#statsState_accessor_storage; }
|
|
69
|
+
set statsState(value) { this.#statsState_accessor_storage = value; }
|
|
70
|
+
constructor() {
|
|
71
|
+
super();
|
|
72
|
+
__runInitializers(this, _statsState_extraInitializers);
|
|
73
|
+
const subscription = appstate.statsStatePart
|
|
74
|
+
.select((stateArg) => stateArg)
|
|
75
|
+
.subscribe((statsState) => {
|
|
76
|
+
this.statsState = statsState;
|
|
77
|
+
});
|
|
78
|
+
this.rxSubscriptions.push(subscription);
|
|
79
|
+
}
|
|
80
|
+
static styles = [
|
|
81
|
+
cssManager.defaultStyles,
|
|
82
|
+
shared.viewHostCss,
|
|
83
|
+
css `
|
|
84
|
+
h2 {
|
|
85
|
+
margin: 32px 0 16px 0;
|
|
86
|
+
font-size: 24px;
|
|
87
|
+
font-weight: 600;
|
|
88
|
+
color: ${cssManager.bdTheme('#333', '#ccc')};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.chartGrid {
|
|
92
|
+
display: grid;
|
|
93
|
+
grid-template-columns: repeat(2, 1fr);
|
|
94
|
+
grid-gap: 16px;
|
|
95
|
+
margin-top: 32px;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.loadingMessage {
|
|
99
|
+
text-align: center;
|
|
100
|
+
padding: 40px;
|
|
101
|
+
color: ${cssManager.bdTheme('#666', '#999')};
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.errorMessage {
|
|
105
|
+
background-color: ${cssManager.bdTheme('#fee', '#4a1f1f')};
|
|
106
|
+
border: 1px solid ${cssManager.bdTheme('#fcc', '#6a2f2f')};
|
|
107
|
+
border-radius: 4px;
|
|
108
|
+
padding: 16px;
|
|
109
|
+
color: ${cssManager.bdTheme('#c00', '#ff6666')};
|
|
110
|
+
margin: 16px 0;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
dees-statsgrid {
|
|
114
|
+
margin-bottom: 32px;
|
|
115
|
+
}
|
|
116
|
+
`,
|
|
117
|
+
];
|
|
118
|
+
render() {
|
|
119
|
+
return html `
|
|
120
|
+
<ops-sectionheading>Overview</ops-sectionheading>
|
|
121
|
+
|
|
122
|
+
${this.statsState.isLoading ? html `
|
|
123
|
+
<div class="loadingMessage">
|
|
124
|
+
<dees-spinner></dees-spinner>
|
|
125
|
+
<p>Loading statistics...</p>
|
|
126
|
+
</div>
|
|
127
|
+
` : this.statsState.error ? html `
|
|
128
|
+
<div class="errorMessage">
|
|
129
|
+
Error loading statistics: ${this.statsState.error}
|
|
130
|
+
</div>
|
|
131
|
+
` : html `
|
|
132
|
+
${this.renderServerStats()}
|
|
133
|
+
|
|
134
|
+
${this.renderEmailStats()}
|
|
135
|
+
|
|
136
|
+
${this.renderDnsStats()}
|
|
137
|
+
|
|
138
|
+
<div class="chartGrid">
|
|
139
|
+
<dees-chart-area .label=${'Email Traffic (24h)'} .data=${[]}></dees-chart-area>
|
|
140
|
+
<dees-chart-area .label=${'DNS Queries (24h)'} .data=${[]}></dees-chart-area>
|
|
141
|
+
<dees-chart-log .label=${'Recent Events'} .data=${[]}></dees-chart-log>
|
|
142
|
+
<dees-chart-log .label=${'Security Alerts'} .data=${[]}></dees-chart-log>
|
|
143
|
+
</div>
|
|
144
|
+
`}
|
|
145
|
+
`;
|
|
146
|
+
}
|
|
147
|
+
formatUptime(seconds) {
|
|
148
|
+
const days = Math.floor(seconds / 86400);
|
|
149
|
+
const hours = Math.floor((seconds % 86400) / 3600);
|
|
150
|
+
const minutes = Math.floor((seconds % 3600) / 60);
|
|
151
|
+
const secs = Math.floor(seconds % 60);
|
|
152
|
+
if (days > 0) {
|
|
153
|
+
return `${days}d ${hours}h ${minutes}m ${secs}s`;
|
|
154
|
+
}
|
|
155
|
+
else if (hours > 0) {
|
|
156
|
+
return `${hours}h ${minutes}m ${secs}s`;
|
|
157
|
+
}
|
|
158
|
+
else if (minutes > 0) {
|
|
159
|
+
return `${minutes}m ${secs}s`;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
return `${secs}s`;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
formatBytes(bytes) {
|
|
166
|
+
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
|
|
167
|
+
let size = bytes;
|
|
168
|
+
let unitIndex = 0;
|
|
169
|
+
while (size >= 1024 && unitIndex < units.length - 1) {
|
|
170
|
+
size /= 1024;
|
|
171
|
+
unitIndex++;
|
|
172
|
+
}
|
|
173
|
+
return `${size.toFixed(1)} ${units[unitIndex]}`;
|
|
174
|
+
}
|
|
175
|
+
renderServerStats() {
|
|
176
|
+
if (!this.statsState.serverStats)
|
|
177
|
+
return html ``;
|
|
178
|
+
const cpuUsage = Math.round(this.statsState.serverStats.cpuUsage.user);
|
|
179
|
+
const memoryUsage = this.statsState.serverStats.memoryUsage.actualUsagePercentage !== undefined
|
|
180
|
+
? Math.round(this.statsState.serverStats.memoryUsage.actualUsagePercentage)
|
|
181
|
+
: Math.round((this.statsState.serverStats.memoryUsage.heapUsed / this.statsState.serverStats.memoryUsage.heapTotal) * 100);
|
|
182
|
+
const tiles = [
|
|
183
|
+
{
|
|
184
|
+
id: 'status',
|
|
185
|
+
title: 'Server Status',
|
|
186
|
+
value: this.statsState.serverStats.uptime ? 'Online' : 'Offline',
|
|
187
|
+
type: 'text',
|
|
188
|
+
icon: 'server',
|
|
189
|
+
color: this.statsState.serverStats.uptime ? '#22c55e' : '#ef4444',
|
|
190
|
+
description: `Uptime: ${this.formatUptime(this.statsState.serverStats.uptime)}`,
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
id: 'connections',
|
|
194
|
+
title: 'Active Connections',
|
|
195
|
+
value: this.statsState.serverStats.activeConnections,
|
|
196
|
+
type: 'number',
|
|
197
|
+
icon: 'networkWired',
|
|
198
|
+
color: '#3b82f6',
|
|
199
|
+
description: `Total: ${this.statsState.serverStats.totalConnections}`,
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
id: 'cpu',
|
|
203
|
+
title: 'CPU Usage',
|
|
204
|
+
value: cpuUsage,
|
|
205
|
+
type: 'gauge',
|
|
206
|
+
icon: 'microchip',
|
|
207
|
+
gaugeOptions: {
|
|
208
|
+
min: 0,
|
|
209
|
+
max: 100,
|
|
210
|
+
thresholds: [
|
|
211
|
+
{ value: 0, color: '#22c55e' },
|
|
212
|
+
{ value: 60, color: '#f59e0b' },
|
|
213
|
+
{ value: 80, color: '#ef4444' },
|
|
214
|
+
],
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
id: 'memory',
|
|
219
|
+
title: 'Memory Usage',
|
|
220
|
+
value: memoryUsage,
|
|
221
|
+
type: 'percentage',
|
|
222
|
+
icon: 'memory',
|
|
223
|
+
color: memoryUsage > 80 ? '#ef4444' : memoryUsage > 60 ? '#f59e0b' : '#22c55e',
|
|
224
|
+
description: this.statsState.serverStats.memoryUsage.actualUsageBytes !== undefined && this.statsState.serverStats.memoryUsage.maxMemoryMB !== undefined
|
|
225
|
+
? `${this.formatBytes(this.statsState.serverStats.memoryUsage.actualUsageBytes)} / ${this.formatBytes(this.statsState.serverStats.memoryUsage.maxMemoryMB * 1024 * 1024)}`
|
|
226
|
+
: `${this.formatBytes(this.statsState.serverStats.memoryUsage.rss)} / ${this.formatBytes(this.statsState.serverStats.memoryUsage.heapTotal)}`,
|
|
227
|
+
},
|
|
228
|
+
];
|
|
229
|
+
return html `
|
|
230
|
+
<dees-statsgrid
|
|
231
|
+
.tiles=${tiles}
|
|
232
|
+
.gridActions=${[
|
|
233
|
+
{
|
|
234
|
+
name: 'Refresh',
|
|
235
|
+
iconName: 'arrowsRotate',
|
|
236
|
+
action: async () => {
|
|
237
|
+
await appstate.statsStatePart.dispatchAction(appstate.fetchAllStatsAction, null);
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
]}
|
|
241
|
+
></dees-statsgrid>
|
|
242
|
+
`;
|
|
243
|
+
}
|
|
244
|
+
renderEmailStats() {
|
|
245
|
+
if (!this.statsState.emailStats)
|
|
246
|
+
return html ``;
|
|
247
|
+
const deliveryRate = this.statsState.emailStats.deliveryRate || 0;
|
|
248
|
+
const bounceRate = this.statsState.emailStats.bounceRate || 0;
|
|
249
|
+
const tiles = [
|
|
250
|
+
{
|
|
251
|
+
id: 'sent',
|
|
252
|
+
title: 'Emails Sent',
|
|
253
|
+
value: this.statsState.emailStats.sent,
|
|
254
|
+
type: 'number',
|
|
255
|
+
icon: 'paperPlane',
|
|
256
|
+
color: '#22c55e',
|
|
257
|
+
description: `Delivery rate: ${(deliveryRate * 100).toFixed(1)}%`,
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
id: 'received',
|
|
261
|
+
title: 'Emails Received',
|
|
262
|
+
value: this.statsState.emailStats.received,
|
|
263
|
+
type: 'number',
|
|
264
|
+
icon: 'envelope',
|
|
265
|
+
color: '#3b82f6',
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
id: 'queued',
|
|
269
|
+
title: 'Queued',
|
|
270
|
+
value: this.statsState.emailStats.queued,
|
|
271
|
+
type: 'number',
|
|
272
|
+
icon: 'clock',
|
|
273
|
+
color: '#f59e0b',
|
|
274
|
+
description: 'Pending delivery',
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
id: 'failed',
|
|
278
|
+
title: 'Failed',
|
|
279
|
+
value: this.statsState.emailStats.failed,
|
|
280
|
+
type: 'number',
|
|
281
|
+
icon: 'triangleExclamation',
|
|
282
|
+
color: '#ef4444',
|
|
283
|
+
description: `Bounce rate: ${(bounceRate * 100).toFixed(1)}%`,
|
|
284
|
+
},
|
|
285
|
+
];
|
|
286
|
+
return html `
|
|
287
|
+
<h2>Email Statistics</h2>
|
|
288
|
+
<dees-statsgrid .tiles=${tiles}></dees-statsgrid>
|
|
289
|
+
`;
|
|
290
|
+
}
|
|
291
|
+
renderDnsStats() {
|
|
292
|
+
if (!this.statsState.dnsStats)
|
|
293
|
+
return html ``;
|
|
294
|
+
const cacheHitRate = Math.round(this.statsState.dnsStats.cacheHitRate * 100);
|
|
295
|
+
const tiles = [
|
|
296
|
+
{
|
|
297
|
+
id: 'queries',
|
|
298
|
+
title: 'DNS Queries',
|
|
299
|
+
value: this.statsState.dnsStats.totalQueries,
|
|
300
|
+
type: 'number',
|
|
301
|
+
icon: 'globe',
|
|
302
|
+
color: '#3b82f6',
|
|
303
|
+
description: 'Total queries handled',
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
id: 'cacheRate',
|
|
307
|
+
title: 'Cache Hit Rate',
|
|
308
|
+
value: cacheHitRate,
|
|
309
|
+
type: 'percentage',
|
|
310
|
+
icon: 'database',
|
|
311
|
+
color: cacheHitRate > 80 ? '#22c55e' : cacheHitRate > 60 ? '#f59e0b' : '#ef4444',
|
|
312
|
+
description: `${this.statsState.dnsStats.cacheHits} hits / ${this.statsState.dnsStats.cacheMisses} misses`,
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
id: 'domains',
|
|
316
|
+
title: 'Active Domains',
|
|
317
|
+
value: this.statsState.dnsStats.activeDomains,
|
|
318
|
+
type: 'number',
|
|
319
|
+
icon: 'sitemap',
|
|
320
|
+
color: '#8b5cf6',
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
id: 'responseTime',
|
|
324
|
+
title: 'Avg Response Time',
|
|
325
|
+
value: this.statsState.dnsStats.averageResponseTime.toFixed(1),
|
|
326
|
+
unit: 'ms',
|
|
327
|
+
type: 'number',
|
|
328
|
+
icon: 'clockRotateLeft',
|
|
329
|
+
color: this.statsState.dnsStats.averageResponseTime < 50 ? '#22c55e' : '#f59e0b',
|
|
330
|
+
},
|
|
331
|
+
];
|
|
332
|
+
return html `
|
|
333
|
+
<h2>DNS Statistics</h2>
|
|
334
|
+
<dees-statsgrid .tiles=${tiles}></dees-statsgrid>
|
|
335
|
+
`;
|
|
336
|
+
}
|
|
337
|
+
static {
|
|
338
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
339
|
+
}
|
|
340
|
+
};
|
|
341
|
+
return OpsViewOverview = _classThis;
|
|
342
|
+
})();
|
|
343
|
+
export { OpsViewOverview };
|
|
344
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BzLXZpZXctb3ZlcnZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvb3BzLXZpZXctb3ZlcnZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxLQUFLLFFBQVEsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixJQUFJLEVBQ0osS0FBSyxFQUNMLEdBQUcsRUFDSCxVQUFVLEdBRVgsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQW1CLE1BQU0sNkJBQTZCLENBQUM7SUFHakQsZUFBZTs0QkFEM0IsYUFBYSxDQUFDLG1CQUFtQixDQUFDOzs7O3NCQUNFLFdBQVc7Ozs7K0JBQW5CLFNBQVEsV0FBVzs7OztzQ0FDN0MsS0FBSyxFQUFFO1lBQ1IsbUxBQVMsVUFBVSw2QkFBVixVQUFVLCtGQVFqQjtZQVZKLDZLQW1TQzs7OztRQWpTQyxpRkFBNEM7WUFDMUMsV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLElBQUk7WUFDaEIsUUFBUSxFQUFFLElBQUk7WUFDZCxlQUFlLEVBQUUsSUFBSTtZQUNyQixXQUFXLEVBQUUsQ0FBQztZQUNkLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLEtBQUssRUFBRSxJQUFJO1NBQ1osRUFBQztRQVJGLElBQVMsVUFBVSxnREFRakI7UUFSRixJQUFTLFVBQVUsc0RBUWpCO1FBRUY7WUFDRSxLQUFLLEVBQUUsQ0FBQzs7WUFDUixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsY0FBYztpQkFDekMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUM7aUJBQzlCLFNBQVMsQ0FBQyxDQUFD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
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as plugins from '../plugins.js';
|
|
2
|
+
import * as appstate from '../appstate.js';
|
|
3
|
+
import { DeesElement } from '@design.estate/dees-element';
|
|
4
|
+
export declare class OpsViewSecurity extends DeesElement {
|
|
5
|
+
accessor statsState: appstate.IStatsState;
|
|
6
|
+
accessor selectedTab: 'overview' | 'blocked' | 'authentication' | 'email-security';
|
|
7
|
+
constructor();
|
|
8
|
+
static styles: plugins.deesElement.CSSResult[];
|
|
9
|
+
render(): plugins.deesElement.TemplateResult<1>;
|
|
10
|
+
private renderTabContent;
|
|
11
|
+
private renderOverview;
|
|
12
|
+
private renderBlockedIPs;
|
|
13
|
+
private renderAuthentication;
|
|
14
|
+
private renderEmailSecurity;
|
|
15
|
+
private calculateThreatLevel;
|
|
16
|
+
private getThreatScore;
|
|
17
|
+
private getSecurityEvents;
|
|
18
|
+
private clearBlockedIPs;
|
|
19
|
+
private unblockIP;
|
|
20
|
+
private saveEmailSecuritySettings;
|
|
21
|
+
}
|