@serve.zone/dcrouter 16.4.1 → 16.5.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 +852 -852
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.dcrouter.d.ts +2 -1
- package/dist_ts/classes.dcrouter.js +20 -4
- package/dist_ts/db/documents/classes.dns-record.doc.d.ts +4 -0
- package/dist_ts/db/documents/classes.dns-record.doc.js +33 -2
- package/dist_ts/db/documents/classes.email-domain.doc.d.ts +5 -1
- package/dist_ts/db/documents/classes.email-domain.doc.js +26 -2
- package/dist_ts/dns/manager.dns.d.ts +6 -0
- package/dist_ts/dns/manager.dns.js +81 -32
- package/dist_ts/dns/providers/cloudflare.provider.d.ts +2 -0
- package/dist_ts/dns/providers/cloudflare.provider.js +45 -28
- package/dist_ts/email/classes.email-domain.manager.d.ts +43 -38
- package/dist_ts/email/classes.email-domain.manager.js +391 -324
- package/dist_ts/email/classes.mail-dns-sync.d.ts +58 -17
- package/dist_ts/email/classes.mail-dns-sync.js +857 -141
- package/dist_ts/email/classes.mail-edge-eligibility.d.ts +55 -0
- package/dist_ts/email/classes.mail-edge-eligibility.js +168 -0
- package/dist_ts/email/classes.mail-egress-coordinator.d.ts +3 -1
- package/dist_ts/email/classes.mail-egress-coordinator.js +43 -22
- package/dist_ts/email/classes.workapp-mail-manager.d.ts +3 -0
- package/dist_ts/email/classes.workapp-mail-manager.js +58 -12
- package/dist_ts/email/index.d.ts +1 -0
- package/dist_ts/email/index.js +2 -1
- package/dist_ts/opsserver/handlers/email-domain.handler.d.ts +1 -0
- package/dist_ts/opsserver/handlers/email-domain.handler.js +138 -22
- package/dist_ts/remoteingress/classes.hub-lifecycle.js +2 -1
- package/dist_ts/remoteingress/classes.tunnel-manager.d.ts +6 -0
- package/dist_ts/remoteingress/classes.tunnel-manager.js +40 -2
- package/dist_ts_interfaces/data/dns-record.d.ts +6 -0
- package/dist_ts_interfaces/data/email-domain.d.ts +81 -0
- package/dist_ts_interfaces/requests/email-domains.d.ts +25 -17
- package/dist_ts_migrations/index.js +152 -9
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/appstate/email-domains.d.ts +16 -0
- package/dist_ts_web/appstate/email-domains.js +140 -19
- package/dist_ts_web/elements/email/ops-view-email-domains.d.ts +1 -0
- package/dist_ts_web/elements/email/ops-view-email-domains.js +36 -13
- package/package.json +3 -3
- package/readme.md +13 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.dcrouter.ts +22 -3
- package/ts/db/documents/classes.dns-record.doc.ts +20 -0
- package/ts/db/documents/classes.email-domain.doc.ts +14 -0
- package/ts/dns/manager.dns.ts +89 -29
- package/ts/dns/providers/cloudflare.provider.ts +46 -27
- package/ts/email/classes.email-domain.manager.ts +416 -368
- package/ts/email/classes.mail-dns-sync.ts +913 -146
- package/ts/email/classes.mail-edge-eligibility.ts +205 -0
- package/ts/email/classes.mail-egress-coordinator.ts +46 -23
- package/ts/email/classes.workapp-mail-manager.ts +69 -13
- package/ts/email/index.ts +1 -0
- package/ts/opsserver/handlers/email-domain.handler.ts +154 -21
- package/ts/remoteingress/classes.hub-lifecycle.ts +1 -0
- package/ts/remoteingress/classes.tunnel-manager.ts +53 -7
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/appstate/email-domains.ts +187 -18
- package/ts_web/elements/email/ops-view-email-domains.ts +44 -12
|
@@ -1,23 +1,35 @@
|
|
|
1
1
|
import type { IEmailDomainConfig } from '@push.rocks/smartmta';
|
|
2
|
-
import
|
|
2
|
+
import { EmailDomainDoc } from '../db/documents/classes.email-domain.doc.js';
|
|
3
|
+
import type { IEmailDomain, IEmailDnsRecord, IEmailDomainRemoteIngress, IEmailDomainOperationError, TEmailDomainLifecycleStatus } from '../../dist_ts_interfaces/data/email-domain.js';
|
|
4
|
+
export interface IEmailDomainManagerActionResult {
|
|
5
|
+
success: boolean;
|
|
6
|
+
message?: string;
|
|
7
|
+
lifecycleStatus?: TEmailDomainLifecycleStatus;
|
|
8
|
+
code?: string;
|
|
9
|
+
errors?: IEmailDomainOperationError[];
|
|
10
|
+
retryAt?: string;
|
|
11
|
+
capability?: 'supported' | 'unsupported';
|
|
12
|
+
domain?: IEmailDomain;
|
|
13
|
+
records?: IEmailDnsRecord[];
|
|
14
|
+
provisioned?: number;
|
|
15
|
+
}
|
|
3
16
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* Wires smartmta's DKIMCreator (key generation) with dcrouter's DnsManager
|
|
7
|
-
* (record creation for dcrouter-hosted and provider-managed zones) to provide
|
|
8
|
-
* a single entry point for setting up an email domain from A to Z.
|
|
17
|
+
* Persists managed email domains and projects them into SmartMTA. DNS mutation
|
|
18
|
+
* is delegated exclusively to MailDnsSync.
|
|
9
19
|
*/
|
|
10
20
|
export declare class EmailDomainManager {
|
|
11
21
|
private dcRouter;
|
|
12
22
|
private baseEmailDomains;
|
|
13
|
-
private
|
|
23
|
+
private mutationChain;
|
|
24
|
+
/** Explicit upstream capability marker; absence is deliberately fail-closed. */
|
|
25
|
+
private get selectorCorrectSigningCapability();
|
|
14
26
|
constructor(dcRouterRef: any);
|
|
15
27
|
setBaseEmailDomains(domains: IEmailDomainConfig[] | undefined): void;
|
|
16
|
-
private get dnsManager();
|
|
17
28
|
private get dkimCreator();
|
|
18
|
-
private get emailHostname();
|
|
19
29
|
start(): Promise<void>;
|
|
20
30
|
stop(): Promise<void>;
|
|
31
|
+
supportsSelectorCorrectSigning(): boolean;
|
|
32
|
+
private runMutationExclusive;
|
|
21
33
|
getAll(): Promise<IEmailDomain[]>;
|
|
22
34
|
getById(id: string): Promise<IEmailDomain | null>;
|
|
23
35
|
getByDomain(domainName: string): Promise<IEmailDomain | null>;
|
|
@@ -35,37 +47,30 @@ export declare class EmailDomainManager {
|
|
|
35
47
|
rotateKeys?: boolean;
|
|
36
48
|
rotationIntervalDays?: number;
|
|
37
49
|
rateLimits?: IEmailDomain['rateLimits'];
|
|
38
|
-
/** null clears the pin. */
|
|
39
50
|
remoteIngress?: IEmailDomainRemoteIngress | null;
|
|
40
|
-
}): Promise<
|
|
41
|
-
|
|
42
|
-
* Normalize a per-domain edge pin. Pins may reference edges that are not
|
|
43
|
-
* registered yet — that only warns, so pins can precede edge registration.
|
|
44
|
-
*/
|
|
45
|
-
private normalizeRemoteIngressPin;
|
|
46
|
-
/** Enabled edges pinned for this domain (empty when unpinned). */
|
|
47
|
-
private resolvePinnedEdges;
|
|
48
|
-
deleteEmailDomain(id: string): Promise<void>;
|
|
49
|
-
/**
|
|
50
|
-
* Compute the 4 required DNS records for an email domain.
|
|
51
|
-
*/
|
|
51
|
+
}): Promise<IEmailDomainManagerActionResult>;
|
|
52
|
+
deleteEmailDomain(id: string): Promise<IEmailDomainManagerActionResult>;
|
|
52
53
|
getRequiredDnsRecords(id: string): Promise<IEmailDnsRecord[]>;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
private
|
|
66
|
-
private
|
|
67
|
-
private
|
|
68
|
-
private
|
|
54
|
+
provisionDnsRecords(id: string): Promise<IEmailDomainManagerActionResult>;
|
|
55
|
+
validateDns(id: string): Promise<IEmailDomainManagerActionResult>;
|
|
56
|
+
getOutboundReadiness(domainName: string): Promise<{
|
|
57
|
+
ready: boolean;
|
|
58
|
+
reason?: string;
|
|
59
|
+
edgeIds: string[];
|
|
60
|
+
selector?: string;
|
|
61
|
+
}>;
|
|
62
|
+
requestDkimRotation(id: string): Promise<IEmailDomainManagerActionResult>;
|
|
63
|
+
/** Called by the reconciler before planning so scheduled external rotation is durable first. */
|
|
64
|
+
stageDkimRotationIfDue(id: string): Promise<EmailDomainDoc | undefined>;
|
|
65
|
+
private stageDkimRotation;
|
|
66
|
+
private normalizeRemoteIngressPin;
|
|
67
|
+
private extractDkimPublicKey;
|
|
68
|
+
private getActiveDkim;
|
|
69
|
+
private invalidateReconciliation;
|
|
70
|
+
private capabilityError;
|
|
71
|
+
private unsupportedResult;
|
|
72
|
+
private hasDnsMutationFailure;
|
|
73
|
+
private resultForDoc;
|
|
69
74
|
private docToInterface;
|
|
70
75
|
private isDomainAlreadyConfigured;
|
|
71
76
|
private findLinkedDnsDomain;
|