@serve.zone/dcrouter 17.0.0 → 17.1.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/.smartconfig.json +5 -2
- package/deno.json +1 -1
- package/dist_serve/bundle.js +1316 -1151
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.dcrouter.d.ts +3 -1
- package/dist_ts/classes.dcrouter.js +110 -49
- package/dist_ts/db/classes.cache.cleaner.d.ts +3 -0
- package/dist_ts/db/classes.cache.cleaner.js +7 -3
- package/dist_ts/db/classes.dcrouter-db.js +1 -2
- package/dist_ts/db/documents/classes.cached.email.d.ts +41 -4
- package/dist_ts/db/documents/classes.cached.email.js +36 -5
- package/dist_ts/db/documents/classes.dns-record.doc.js +3 -1
- package/dist_ts/dns/classes.dns-server-runtime.d.ts +0 -1
- package/dist_ts/dns/classes.dns-server-runtime.js +4 -36
- 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 +1 -0
- package/dist_ts/dns/manager.dns.js +49 -14
- package/dist_ts/dns/providers/cloudflare.provider.js +19 -4
- package/dist_ts/dns/txt-record-presentation.d.ts +20 -0
- package/dist_ts/dns/txt-record-presentation.js +131 -0
- package/dist_ts/email/classes.accepted-email-spool.d.ts +32 -3
- package/dist_ts/email/classes.accepted-email-spool.js +174 -13
- package/dist_ts/email/classes.email-domain.manager.d.ts +14 -1
- package/dist_ts/email/classes.email-domain.manager.js +151 -8
- package/dist_ts/email/classes.email-settings.manager.js +2 -2
- package/dist_ts/email/classes.mail-dns-sync.d.ts +31 -5
- package/dist_ts/email/classes.mail-dns-sync.js +508 -117
- package/dist_ts/email/classes.smartmta-blob-storage-manager.d.ts +2 -2
- package/dist_ts/email/classes.smartmta-blob-storage-manager.js +4 -3
- package/dist_ts/email/classes.workapp-mail-manager.d.ts +1 -0
- package/dist_ts/email/classes.workapp-mail-manager.js +26 -2
- package/dist_ts/email/index.d.ts +2 -0
- package/dist_ts/email/index.js +3 -1
- package/dist_ts/email/mail-dns-txt-policy.d.ts +18 -0
- package/dist_ts/email/mail-dns-txt-policy.js +466 -0
- package/dist_ts/email/reconcile-mail-dns-singleton.d.ts +47 -0
- package/dist_ts/email/reconcile-mail-dns-singleton.js +159 -0
- package/dist_ts/opsserver/classes.opsserver.d.ts +8 -0
- package/dist_ts/opsserver/classes.opsserver.js +34 -1
- package/dist_ts/opsserver/handlers/certificate.handler.js +25 -4
- package/dist_ts/opsserver/handlers/config.handler.js +9 -5
- package/dist_ts/opsserver/handlers/dns-provider.handler.js +19 -2
- package/dist_ts/opsserver/handlers/dns-record.handler.js +25 -4
- package/dist_ts/opsserver/handlers/domain.handler.js +37 -3
- package/dist_ts/opsserver/handlers/email-domain.handler.js +5 -7
- package/dist_ts/opsserver/handlers/email-ops.handler.d.ts +1 -0
- package/dist_ts/opsserver/handlers/email-ops.handler.js +26 -7
- package/dist_ts/opsserver/handlers/index.d.ts +1 -0
- package/dist_ts/opsserver/handlers/index.js +2 -1
- package/dist_ts/opsserver/handlers/logs.handler.d.ts +1 -1
- package/dist_ts/opsserver/handlers/logs.handler.js +3 -3
- package/dist_ts/opsserver/handlers/realtime.handler.d.ts +37 -0
- package/dist_ts/opsserver/handlers/realtime.handler.js +154 -0
- package/dist_ts/opsserver/handlers/remoteingress.handler.js +22 -1
- package/dist_ts/opsserver/handlers/route-management.handler.js +47 -5
- package/dist_ts/paths.d.ts +0 -11
- package/dist_ts/paths.js +1 -22
- package/dist_ts/plugins.d.ts +0 -34
- package/dist_ts/plugins.js +1 -62
- package/dist_ts_interfaces/data/email-domain.d.ts +14 -0
- package/dist_ts_interfaces/requests/config.d.ts +1 -1
- package/dist_ts_interfaces/requests/email-ops.d.ts +34 -1
- 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 +38 -0
- package/dist_ts_interfaces/requests/realtime.js +11 -0
- package/dist_ts_migrations/index.d.ts +6 -0
- package/dist_ts_migrations/index.js +204 -9
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/appstate/certificates.js +9 -2
- package/dist_ts_web/appstate/domains.js +16 -5
- package/dist_ts_web/appstate/email-domains.d.ts +3 -0
- package/dist_ts_web/appstate/email-domains.js +47 -14
- package/dist_ts_web/appstate/email-ops.d.ts +1 -0
- package/dist_ts_web/appstate/email-ops.js +20 -2
- package/dist_ts_web/appstate/realtime.d.ts +27 -0
- package/dist_ts_web/appstate/realtime.js +71 -0
- package/dist_ts_web/appstate/remoteingress.js +9 -3
- package/dist_ts_web/appstate/routes.js +16 -5
- package/dist_ts_web/appstate/runtime.js +135 -7
- package/dist_ts_web/appstate.d.ts +1 -0
- package/dist_ts_web/appstate.js +2 -1
- package/dist_ts_web/elements/email/email-domain-creation-progress.d.ts +33 -0
- package/dist_ts_web/elements/email/email-domain-creation-progress.js +257 -0
- package/dist_ts_web/elements/email/ops-view-email-domains.js +233 -68
- package/dist_ts_web/elements/email/ops-view-emails.d.ts +4 -2
- package/dist_ts_web/elements/email/ops-view-emails.js +25 -13
- package/dist_ts_web/elements/overview/ops-view-config.js +5 -5
- package/package.json +22 -19
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.dcrouter.ts +121 -54
- package/ts/db/classes.cache.cleaner.ts +18 -3
- package/ts/db/classes.dcrouter-db.ts +0 -2
- package/ts/db/documents/classes.cached.email.ts +78 -4
- package/ts/db/documents/classes.dns-record.doc.ts +1 -0
- package/ts/dns/classes.dns-server-runtime.ts +9 -45
- package/ts/dns/index.ts +1 -0
- package/ts/dns/manager.dns.ts +50 -16
- package/ts/dns/providers/cloudflare.provider.ts +21 -3
- package/ts/dns/txt-record-presentation.ts +134 -0
- package/ts/email/classes.accepted-email-spool.ts +220 -14
- package/ts/email/classes.email-domain.manager.ts +201 -7
- package/ts/email/classes.email-settings.manager.ts +1 -1
- package/ts/email/classes.mail-dns-sync.ts +588 -122
- package/ts/email/classes.smartmta-blob-storage-manager.ts +3 -2
- package/ts/email/classes.workapp-mail-manager.ts +34 -1
- package/ts/email/index.ts +2 -0
- package/ts/email/mail-dns-txt-policy.ts +505 -0
- package/ts/email/reconcile-mail-dns-singleton.ts +224 -0
- package/ts/opsserver/classes.opsserver.ts +42 -0
- package/ts/opsserver/handlers/certificate.handler.ts +24 -3
- package/ts/opsserver/handlers/config.handler.ts +9 -5
- package/ts/opsserver/handlers/dns-provider.handler.ts +18 -1
- package/ts/opsserver/handlers/dns-record.handler.ts +24 -3
- package/ts/opsserver/handlers/domain.handler.ts +36 -2
- package/ts/opsserver/handlers/email-domain.handler.ts +4 -5
- package/ts/opsserver/handlers/email-ops.handler.ts +29 -6
- package/ts/opsserver/handlers/index.ts +1 -0
- package/ts/opsserver/handlers/logs.handler.ts +2 -2
- package/ts/opsserver/handlers/realtime.handler.ts +222 -0
- package/ts/opsserver/handlers/remoteingress.handler.ts +21 -0
- package/ts/opsserver/handlers/route-management.handler.ts +46 -4
- package/ts/paths.ts +0 -25
- package/ts/plugins.ts +0 -68
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/appstate/certificates.ts +6 -1
- package/ts_web/appstate/domains.ts +11 -4
- package/ts_web/appstate/email-domains.ts +68 -14
- package/ts_web/appstate/email-ops.ts +20 -1
- package/ts_web/appstate/realtime.ts +109 -0
- package/ts_web/appstate/remoteingress.ts +6 -2
- package/ts_web/appstate/routes.ts +11 -4
- package/ts_web/appstate/runtime.ts +176 -7
- package/ts_web/appstate.ts +1 -0
- package/ts_web/elements/email/email-domain-creation-progress.ts +340 -0
- package/ts_web/elements/email/ops-view-email-domains.ts +273 -74
- package/ts_web/elements/email/ops-view-emails.ts +23 -16
- package/ts_web/elements/overview/ops-view-config.ts +4 -4
|
@@ -7,7 +7,7 @@ export interface IConfigData {
|
|
|
7
7
|
publicIp: string | null;
|
|
8
8
|
proxyIps: string[];
|
|
9
9
|
uptime: number;
|
|
10
|
-
storageBackend: '
|
|
10
|
+
storageBackend: 'smartdata-local' | 'smartdata-external';
|
|
11
11
|
storagePath: string | null;
|
|
12
12
|
};
|
|
13
13
|
smartProxy: {
|
|
@@ -15,10 +15,42 @@ export interface IEmail {
|
|
|
15
15
|
}
|
|
16
16
|
export interface ISmtpLogEntry {
|
|
17
17
|
timestamp: string;
|
|
18
|
-
direction: 'client' | 'server';
|
|
18
|
+
direction: 'client' | 'server' | 'system';
|
|
19
19
|
command: string;
|
|
20
20
|
responseCode?: number;
|
|
21
21
|
}
|
|
22
|
+
export type TSmtpDeliveryPhase = 'connect' | 'greeting' | 'ehlo' | 'starttls' | 'tls_handshake' | 'post_tls_ehlo' | 'auth' | 'mail_from' | 'rcpt_to' | 'data_command' | 'message_body' | 'final_response' | 'rset' | 'quit' | 'unknown';
|
|
23
|
+
export interface ISmtpTranscriptEntry {
|
|
24
|
+
timestampMs: number;
|
|
25
|
+
phase: TSmtpDeliveryPhase;
|
|
26
|
+
direction: 'client' | 'server' | 'system';
|
|
27
|
+
text: string;
|
|
28
|
+
responseCode?: number;
|
|
29
|
+
}
|
|
30
|
+
export interface ISmtpTransactionAttempt {
|
|
31
|
+
id: string;
|
|
32
|
+
queueItemId: string;
|
|
33
|
+
queueAttempt: number;
|
|
34
|
+
targetHost: string;
|
|
35
|
+
targetPort: number;
|
|
36
|
+
recipientDomain?: string;
|
|
37
|
+
recipients: string[];
|
|
38
|
+
startedAt: string;
|
|
39
|
+
completedAt: string;
|
|
40
|
+
durationMs: number;
|
|
41
|
+
outcome: 'succeeded' | 'failed';
|
|
42
|
+
retryable: boolean;
|
|
43
|
+
errorType?: string;
|
|
44
|
+
smtpCode?: number;
|
|
45
|
+
recipientResults?: Array<{
|
|
46
|
+
recipient: string;
|
|
47
|
+
accepted: boolean;
|
|
48
|
+
responseCode: number;
|
|
49
|
+
}>;
|
|
50
|
+
failurePhase?: TSmtpDeliveryPhase;
|
|
51
|
+
error?: string;
|
|
52
|
+
transcript: ISmtpTranscriptEntry[];
|
|
53
|
+
}
|
|
22
54
|
export interface IConnectionInfo {
|
|
23
55
|
sourceIp: string;
|
|
24
56
|
sourceHostname: string;
|
|
@@ -39,6 +71,7 @@ export interface IAuthenticationResults {
|
|
|
39
71
|
dmarcPolicy: string;
|
|
40
72
|
}
|
|
41
73
|
export interface IEmailDetail extends IEmail {
|
|
74
|
+
smtpTransactions?: ISmtpTransactionAttempt[];
|
|
42
75
|
toList: string[];
|
|
43
76
|
cc?: string[];
|
|
44
77
|
smtpLog: ISmtpLogEntry[];
|
|
@@ -20,6 +20,7 @@ export * from './dns-records.js';
|
|
|
20
20
|
export * from './acme-config.js';
|
|
21
21
|
export * from './email-domains.js';
|
|
22
22
|
export * from './email-settings.js';
|
|
23
|
+
export * from './realtime.js';
|
|
23
24
|
export * from './workhoster.js';
|
|
24
25
|
export * from './security-policy.js';
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL3JlcXVlc3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsc0JBQXNCLENBQUMifQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as plugins from '../plugins.js';
|
|
2
|
+
import type { IIdentity } from '../data/auth.js';
|
|
3
|
+
export declare const opsRealtimeResources: readonly ["emailDomains", "emailQueue", "smtpAttempts", "dns", "routes", "edges", "certificates"];
|
|
4
|
+
export type TOpsRealtimeResource = (typeof opsRealtimeResources)[number];
|
|
5
|
+
export type IOpsRealtimeRevisionMap = Record<TOpsRealtimeResource, number>;
|
|
6
|
+
export interface IOpsRealtimeInvalidation {
|
|
7
|
+
resource: TOpsRealtimeResource;
|
|
8
|
+
revision: number;
|
|
9
|
+
changedIds?: string[];
|
|
10
|
+
reason?: string;
|
|
11
|
+
timestamp: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Authenticates the current WebSocket peer and returns anything newer than the
|
|
15
|
+
* client's last accepted revision. The tag is assigned by the server only.
|
|
16
|
+
*/
|
|
17
|
+
export interface IReq_SubscribeOpsRealtime extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_SubscribeOpsRealtime> {
|
|
18
|
+
method: 'subscribeOpsRealtime';
|
|
19
|
+
request: {
|
|
20
|
+
identity: IIdentity;
|
|
21
|
+
knownServerEpoch?: string;
|
|
22
|
+
knownRevisions?: Partial<IOpsRealtimeRevisionMap>;
|
|
23
|
+
};
|
|
24
|
+
response: {
|
|
25
|
+
serverEpoch: string;
|
|
26
|
+
revisions: IOpsRealtimeRevisionMap;
|
|
27
|
+
invalidations: IOpsRealtimeInvalidation[];
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/** Server-to-browser notification. Resource data remains behind authenticated reads. */
|
|
31
|
+
export interface IReq_PushOpsRealtimeInvalidation extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_PushOpsRealtimeInvalidation> {
|
|
32
|
+
method: 'pushOpsRealtimeInvalidation';
|
|
33
|
+
request: {
|
|
34
|
+
serverEpoch: string;
|
|
35
|
+
invalidations: IOpsRealtimeInvalidation[];
|
|
36
|
+
};
|
|
37
|
+
response: Record<string, never>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as plugins from '../plugins.js';
|
|
2
|
+
export const opsRealtimeResources = [
|
|
3
|
+
'emailDomains',
|
|
4
|
+
'emailQueue',
|
|
5
|
+
'smtpAttempts',
|
|
6
|
+
'dns',
|
|
7
|
+
'routes',
|
|
8
|
+
'edges',
|
|
9
|
+
'certificates',
|
|
10
|
+
];
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhbHRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL3JlcXVlc3RzL3JlYWx0aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2xDLGNBQWM7SUFDZCxZQUFZO0lBQ1osY0FBYztJQUNkLEtBQUs7SUFDTCxRQUFRO0lBQ1IsT0FBTztJQUNQLGNBQWM7Q0FDTixDQUFDIn0=
|
|
@@ -16,6 +16,10 @@ export interface IMigrationRunResult {
|
|
|
16
16
|
export interface IMigrationRunner {
|
|
17
17
|
run(): Promise<IMigrationRunResult>;
|
|
18
18
|
}
|
|
19
|
+
export interface IMigrationBlobStorage {
|
|
20
|
+
set(key: string, value: Buffer): Promise<void>;
|
|
21
|
+
get(key: string): Promise<Buffer | null>;
|
|
22
|
+
}
|
|
19
23
|
export interface IDcRouterMigrationOptions {
|
|
20
24
|
remoteIngressHubSettings?: {
|
|
21
25
|
enabled?: boolean;
|
|
@@ -31,6 +35,8 @@ export interface IDcRouterMigrationOptions {
|
|
|
31
35
|
};
|
|
32
36
|
/** Explicit legacy raw-file adapter root; never inferred from process state. */
|
|
33
37
|
legacySmartMtaStoragePath?: string;
|
|
38
|
+
/** SmartBucket adapter injected for the versioned CachedEmail payload migration. */
|
|
39
|
+
legacyRawMessageBlobStorage?: IMigrationBlobStorage;
|
|
34
40
|
}
|
|
35
41
|
/**
|
|
36
42
|
* Create a configured SmartMigration runner with all dcrouter migration steps registered.
|