@serve.zone/dcrouter 17.2.4 → 17.4.0
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/deno.json +1 -1
- package/dist_serve/bundle.js +2024 -1758
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.dcrouter.d.ts +11 -1
- package/dist_ts/classes.dcrouter.js +63 -3
- package/dist_ts/config/classes.api-token-manager.d.ts +20 -2
- package/dist_ts/config/classes.api-token-manager.js +201 -6
- package/dist_ts/config/classes.gateway-client-manager.d.ts +36 -2
- package/dist_ts/config/classes.gateway-client-manager.js +391 -27
- package/dist_ts/db/documents/classes.api-token.doc.d.ts +2 -1
- package/dist_ts/db/documents/classes.api-token.doc.js +8 -2
- package/dist_ts/db/documents/classes.cached.email.d.ts +10 -1
- package/dist_ts/db/documents/classes.cached.email.js +27 -2
- package/dist_ts/db/documents/classes.gateway-client.doc.d.ts +25 -0
- package/dist_ts/db/documents/classes.gateway-client.doc.js +73 -2
- package/dist_ts/db/documents/classes.ops-config-event.doc.d.ts +55 -0
- package/dist_ts/db/documents/classes.ops-config-event.doc.js +296 -0
- package/dist_ts/db/documents/index.d.ts +1 -0
- package/dist_ts/db/documents/index.js +2 -1
- package/dist_ts/dns/classes.gateway-route-dns-reconciler.d.ts +52 -0
- package/dist_ts/dns/classes.gateway-route-dns-reconciler.js +609 -0
- package/dist_ts/dns/index.d.ts +1 -0
- package/dist_ts/dns/index.js +2 -1
- package/dist_ts/dns/manager.dns.d.ts +19 -0
- package/dist_ts/dns/manager.dns.js +25 -1
- package/dist_ts/email/classes.accepted-email-spool.d.ts +8 -1
- package/dist_ts/email/classes.accepted-email-spool.js +93 -1
- package/dist_ts/email/classes.smartmta-storage-manager.d.ts +7 -1
- package/dist_ts/email/classes.smartmta-storage-manager.js +46 -1
- package/dist_ts/email/smartmta-storage-policy.js +3 -1
- package/dist_ts/monitoring/classes.ops-event-manager.d.ts +32 -0
- package/dist_ts/monitoring/classes.ops-event-manager.js +71 -0
- package/dist_ts/monitoring/index.d.ts +1 -0
- package/dist_ts/monitoring/index.js +2 -1
- package/dist_ts/opsserver/classes.opsserver.d.ts +1 -0
- package/dist_ts/opsserver/classes.opsserver.js +3 -1
- package/dist_ts/opsserver/handlers/certificate.handler.d.ts +1 -0
- package/dist_ts/opsserver/handlers/certificate.handler.js +35 -5
- package/dist_ts/opsserver/handlers/config-event.handler.d.ts +12 -0
- package/dist_ts/opsserver/handlers/config-event.handler.js +47 -0
- package/dist_ts/opsserver/handlers/dns-record.handler.d.ts +1 -0
- package/dist_ts/opsserver/handlers/dns-record.handler.js +82 -3
- package/dist_ts/opsserver/handlers/email-ops.handler.d.ts +6 -0
- package/dist_ts/opsserver/handlers/email-ops.handler.js +40 -9
- package/dist_ts/opsserver/handlers/gatewayclient.handler.d.ts +9 -1
- package/dist_ts/opsserver/handlers/gatewayclient.handler.js +714 -162
- package/dist_ts/opsserver/handlers/index.d.ts +1 -0
- package/dist_ts/opsserver/handlers/index.js +2 -1
- package/dist_ts/opsserver/helpers/gateway-client-auth.d.ts +25 -0
- package/dist_ts/opsserver/helpers/gateway-client-auth.js +168 -0
- package/dist_ts/plugins.d.ts +2 -1
- package/dist_ts/plugins.js +3 -2
- package/dist_ts_apiclient/classes.gatewayclient.d.ts +13 -1
- package/dist_ts_apiclient/classes.gatewayclient.js +18 -2
- package/dist_ts_interfaces/data/config-events.d.ts +34 -0
- package/dist_ts_interfaces/data/config-events.js +8 -0
- package/dist_ts_interfaces/data/index.d.ts +1 -0
- package/dist_ts_interfaces/data/index.js +2 -1
- package/dist_ts_interfaces/data/route-management.d.ts +28 -1
- package/dist_ts_interfaces/data/route-management.js +3 -1
- package/dist_ts_interfaces/data/workhoster.d.ts +1 -0
- package/dist_ts_interfaces/requests/config-events.d.ts +35 -0
- package/dist_ts_interfaces/requests/config-events.js +4 -0
- package/dist_ts_interfaces/requests/index.d.ts +1 -0
- package/dist_ts_interfaces/requests/index.js +2 -1
- package/dist_ts_interfaces/requests/realtime.d.ts +1 -1
- package/dist_ts_interfaces/requests/realtime.js +2 -1
- package/dist_ts_migrations/index.js +148 -9
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/appstate/config-events.d.ts +19 -0
- package/dist_ts_web/appstate/config-events.js +68 -0
- package/dist_ts_web/appstate/runtime.js +7 -1
- package/dist_ts_web/appstate.d.ts +1 -0
- package/dist_ts_web/appstate.js +2 -1
- package/dist_ts_web/elements/ops-platform-events.d.ts +21 -0
- package/dist_ts_web/elements/ops-platform-events.js +361 -0
- package/dist_ts_web/elements/ops-view-logs.d.ts +4 -0
- package/dist_ts_web/elements/ops-view-logs.js +96 -9
- package/package.json +4 -4
- package/readme.plan.md +22 -0
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.dcrouter.ts +72 -2
- package/ts/config/classes.api-token-manager.ts +237 -4
- package/ts/config/classes.gateway-client-manager.ts +463 -19
- package/ts/db/documents/classes.api-token.doc.ts +8 -1
- package/ts/db/documents/classes.cached.email.ts +21 -1
- package/ts/db/documents/classes.gateway-client.doc.ts +86 -0
- package/ts/db/documents/classes.ops-config-event.doc.ts +257 -0
- package/ts/db/documents/index.ts +1 -0
- package/ts/dns/classes.gateway-route-dns-reconciler.ts +801 -0
- package/ts/dns/index.ts +1 -0
- package/ts/dns/manager.dns.ts +36 -0
- package/ts/email/classes.accepted-email-spool.ts +111 -0
- package/ts/email/classes.smartmta-storage-manager.ts +57 -1
- package/ts/email/smartmta-storage-policy.ts +2 -0
- package/ts/monitoring/classes.ops-event-manager.ts +99 -0
- package/ts/monitoring/index.ts +2 -1
- package/ts/opsserver/classes.opsserver.ts +2 -0
- package/ts/opsserver/handlers/certificate.handler.ts +51 -4
- package/ts/opsserver/handlers/config-event.handler.ts +62 -0
- package/ts/opsserver/handlers/dns-record.handler.ts +101 -2
- package/ts/opsserver/handlers/email-ops.handler.ts +42 -8
- package/ts/opsserver/handlers/gatewayclient.handler.ts +804 -136
- package/ts/opsserver/handlers/index.ts +1 -0
- package/ts/opsserver/helpers/gateway-client-auth.ts +198 -0
- package/ts/plugins.ts +2 -0
- package/ts_apiclient/classes.gatewayclient.ts +45 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/appstate/config-events.ts +98 -0
- package/ts_web/appstate/runtime.ts +8 -1
- package/ts_web/appstate.ts +1 -0
- package/ts_web/elements/ops-platform-events.ts +315 -0
- package/ts_web/elements/ops-view-logs.ts +84 -7
|
@@ -197,14 +197,7 @@ export class EmailOpsHandler {
|
|
|
197
197
|
authMethod: '',
|
|
198
198
|
authUser: this.extractSessionUser(session),
|
|
199
199
|
},
|
|
200
|
-
authenticationResults:
|
|
201
|
-
spf: 'none',
|
|
202
|
-
spfDomain: '',
|
|
203
|
-
dkim: 'none',
|
|
204
|
-
dkimDomain: '',
|
|
205
|
-
dmarc: 'none',
|
|
206
|
-
dmarcPolicy: '',
|
|
207
|
-
},
|
|
200
|
+
authenticationResults: this.mapInboundSecurityResults(doc.inboundSecurityResults),
|
|
208
201
|
rejectionReason: doc.status === 'failed' ? doc.lastError : undefined,
|
|
209
202
|
bounceMessage: doc.status === 'failed' ? doc.lastError : undefined,
|
|
210
203
|
headers,
|
|
@@ -388,6 +381,46 @@ export class EmailOpsHandler {
|
|
|
388
381
|
/**
|
|
389
382
|
* Map queue status to catalog TEmailStatus
|
|
390
383
|
*/
|
|
384
|
+
/**
|
|
385
|
+
* Maps SmartMTA inbound SPF/DKIM/DMARC verdicts (persisted as JSON on the
|
|
386
|
+
* cached email) into the catalog authenticationResults shape. Falls back to
|
|
387
|
+
* all-'none' when no verdicts were captured.
|
|
388
|
+
*/
|
|
389
|
+
private mapInboundSecurityResults(serializedArg?: string): interfaces.requests.IEmailDetail['authenticationResults'] {
|
|
390
|
+
const noneResult: interfaces.requests.IEmailDetail['authenticationResults'] = {
|
|
391
|
+
spf: 'none',
|
|
392
|
+
spfDomain: '',
|
|
393
|
+
dkim: 'none',
|
|
394
|
+
dkimDomain: '',
|
|
395
|
+
dmarc: 'none',
|
|
396
|
+
dmarcPolicy: '',
|
|
397
|
+
};
|
|
398
|
+
if (!serializedArg) return noneResult;
|
|
399
|
+
try {
|
|
400
|
+
const parsed = JSON.parse(serializedArg) as {
|
|
401
|
+
spf?: { result?: string; domain?: string } | null;
|
|
402
|
+
dkim?: Array<{ is_valid?: boolean; domain?: string | null; status?: string }> | null;
|
|
403
|
+
dmarc?: { passed?: boolean; policy?: string; domain?: string } | null;
|
|
404
|
+
};
|
|
405
|
+
const spfResult = (parsed.spf?.result || '').toLowerCase();
|
|
406
|
+
const spf = (['pass', 'fail', 'softfail', 'neutral'] as const).find((value) => value === spfResult) || 'none';
|
|
407
|
+
const dkimSignatures = Array.isArray(parsed.dkim) ? parsed.dkim : [];
|
|
408
|
+
const validSignature = dkimSignatures.find((signature) => signature?.is_valid);
|
|
409
|
+
const dkim = validSignature ? 'pass' : dkimSignatures.length > 0 ? 'fail' : 'none';
|
|
410
|
+
const dmarc = parsed.dmarc ? (parsed.dmarc.passed ? 'pass' : 'fail') : 'none';
|
|
411
|
+
return {
|
|
412
|
+
spf,
|
|
413
|
+
spfDomain: parsed.spf?.domain || '',
|
|
414
|
+
dkim,
|
|
415
|
+
dkimDomain: validSignature?.domain || dkimSignatures[0]?.domain || '',
|
|
416
|
+
dmarc,
|
|
417
|
+
dmarcPolicy: parsed.dmarc?.policy || '',
|
|
418
|
+
};
|
|
419
|
+
} catch {
|
|
420
|
+
return noneResult;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
|
|
391
424
|
private mapStatus(queueStatus: string): interfaces.requests.TEmailStatus {
|
|
392
425
|
switch (queueStatus) {
|
|
393
426
|
case 'pending':
|
|
@@ -395,6 +428,7 @@ export class EmailOpsHandler {
|
|
|
395
428
|
case 'queued':
|
|
396
429
|
return 'pending';
|
|
397
430
|
case 'delivered':
|
|
431
|
+
case 'stored':
|
|
398
432
|
return 'delivered';
|
|
399
433
|
case 'failed':
|
|
400
434
|
return 'bounced';
|