@serve.zone/interfaces 30.12.0 → 30.14.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/changelog.md +25 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/data/coremail.d.ts +67 -0
- package/dist_ts/data/coremail.js +1 -1
- package/dist_ts/data/coremail.runtime.d.ts +19 -1
- package/dist_ts/data/coremail.runtime.js +191 -4
- package/dist_ts/data/mail.d.ts +72 -4
- package/dist_ts/data/secret.d.ts +2 -2
- package/dist_ts/data/secret.js +5 -4
- package/dist_ts/data/service.d.ts +8 -2
- package/dist_ts/data/settings.d.ts +27 -0
- package/dist_ts/data/settings.js +10 -1
- package/dist_ts/requests/coremail.admin.d.ts +67 -0
- package/dist_ts/requests/coremail.admin.js +2 -0
- package/dist_ts/requests/coremail.d.ts +44 -1
- package/dist_ts/requests/index.d.ts +2 -1
- package/dist_ts/requests/index.js +3 -2
- package/dist_ts/requests/mail.d.ts +50 -0
- package/package.json +2 -2
- package/readme.md +71 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/data/coremail.runtime.ts +278 -2
- package/ts/data/coremail.ts +72 -0
- package/ts/data/mail.ts +96 -4
- package/ts/data/secret.ts +6 -3
- package/ts/data/service.ts +9 -2
- package/ts/data/settings.ts +27 -0
- package/ts/requests/coremail.admin.ts +83 -0
- package/ts/requests/coremail.ts +48 -0
- package/ts/requests/index.ts +2 -0
- package/ts/requests/mail.ts +62 -0
package/changelog.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026-09-15 - 30.14.0
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- Add the CoreMail control plane to `ICloudlySettings` (`coreMailEnabled`, service id, control endpoint, transfer origin, dcrouter gateway endpoint, composite control credential identity, submission listener host/port/TLS mode, and binding quota defaults) plus the four `cloudlySystemSecretKeys` entries for the control, gateway and operator-supplied submission PEM material.
|
|
8
|
+
- Add `ICoreMailServiceBinding` as public `IServiceMailConfig.coreMail` metadata and an explicit `IServiceMailConfig.allowedSenders`, keeping the CoreMail binding out of `TServiceWritableData` while the rest of `mail` stays caller-writable.
|
|
9
|
+
- Widen secret management with the `coremail` source and `coremail:${string}` scope, including the source and scope-prefix validators.
|
|
10
|
+
- Add the operator request group `requests.coremailAdmin` with `getCoreMailServiceMailStatistics`, `getCoreMailControlStatus` and `listServiceMailTargets`, plus the `IServiceMailTargetSummary` and `IServiceMailTargetAddressSummary` inventory contracts.
|
|
11
|
+
|
|
12
|
+
### Maintenance
|
|
13
|
+
|
|
14
|
+
- Update pnpm to 12.4.0 and tstest to 6.1.0 for the release.
|
|
15
|
+
|
|
16
|
+
## 2026-09-15 - 30.13.0
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
- widen `TMailSubmissionErrorCode` with the CoreMail error codes an application can act on (`AUTHENTICATION_FAILED`, `CAPABILITY_DENIED`, `INVALID_REQUEST`, `INVALID_MAILBOX`, `INVALID_SENDER`, `INVALID_RECIPIENT`, `INVALID_HEADER`, `PAYLOAD_LIMIT_EXCEEDED`, `QUOTA_EXCEEDED`, `IDEMPOTENCY_CONFLICT`, `STATE_CONFLICT`, `NOT_FOUND`), so the CoreMail-fronted submission path can pass them through unchanged (mail)
|
|
21
|
+
- Add the CoreMail SMTP submission surface: `TCoreMailSubmissionSource` with an optional `ICoreMailSubmission.source`, and an optional `ICoreMailDesiredState.smtp` listener with secret-key-only TLS material, validated by `normalizeCoreMailDesiredState` while an omitted listener keeps existing canonical bytes and digests.
|
|
22
|
+
- Add per-service CoreMail mail statistics with `normalizeCoreMailServiceMailStatistics` and the control-session `coreMailGetServiceMailStatistics` request.
|
|
23
|
+
- Add the dcrouter-side CoreMail gateway peer provisioning requests `listCoreMailGatewayPeers`, `syncCoreMailGatewayPeer` and `deleteCoreMailGatewayPeer`.
|
|
24
|
+
- Widen mail inbound targeting with a `coreMail` target type, an `IMailCoreMailTarget` reference and the matching `IServiceMailInboundConfig.targetType` member.
|
|
25
|
+
- Add the shared strict normalizers `normalizeCoreMailGatewayMessage` and `normalizeCoreMailConnectionInfo` so every gateway peer digests identical envelope and source bytes.
|
|
26
|
+
- Document the routing-handle envelope digest binding on gateway resolve and inbound handoff, and the monotonic, terminal-on-unknown outbound status contract.
|
|
27
|
+
|
|
3
28
|
## 2026-09-15 - 30.12.0
|
|
4
29
|
|
|
5
30
|
### Features
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@serve.zone/interfaces',
|
|
6
|
-
version: '30.
|
|
6
|
+
version: '30.14.0',
|
|
7
7
|
description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsV0FBVyxFQUFFLHVGQUF1RjtDQUNyRyxDQUFBIn0=
|
|
@@ -14,6 +14,11 @@ export type TCoreMailCredentialVerifierFormat = 'argon2id-v1';
|
|
|
14
14
|
export type TCoreMailPartKind = 'text' | 'html' | 'attachment';
|
|
15
15
|
export type TCoreMailTransferMethod = 'PUT' | 'GET';
|
|
16
16
|
export type TCoreMailSubmissionState = 'preparing' | 'uploading' | 'ready' | 'accepted' | 'queued' | 'delivering' | 'delivered' | 'deferred' | 'failed' | 'deadLettered';
|
|
17
|
+
/**
|
|
18
|
+
* Entry point that produced an outbound submission. `api` is the authenticated
|
|
19
|
+
* workload TypedRequest surface, `smtp` is the CoreMail submission listener.
|
|
20
|
+
*/
|
|
21
|
+
export type TCoreMailSubmissionSource = 'api' | 'smtp';
|
|
17
22
|
export type TCoreMailInboundDeliveryState = 'pending' | 'fetching' | 'fetched' | 'acknowledged';
|
|
18
23
|
export type TCoreMailInboundAckOutcome = 'processed' | 'discarded';
|
|
19
24
|
export type TCoreMailRecipientAction = 'accept' | 'reject' | 'defer' | 'unhandled';
|
|
@@ -90,6 +95,8 @@ export interface ICoreMailSubmission {
|
|
|
90
95
|
idempotencyKey: string;
|
|
91
96
|
submissionDigest: TCoreMailSha256;
|
|
92
97
|
state: TCoreMailSubmissionState;
|
|
98
|
+
/** Entry point that produced this submission. Omitted means an API submission. */
|
|
99
|
+
source?: TCoreMailSubmissionSource;
|
|
93
100
|
parts: ICoreMailPartStatus[];
|
|
94
101
|
transportMessageId?: string;
|
|
95
102
|
attempts: number;
|
|
@@ -187,11 +194,36 @@ export interface ICoreMailRuntimeKeyReference {
|
|
|
187
194
|
secretKey: string;
|
|
188
195
|
acceptUntil?: number;
|
|
189
196
|
}
|
|
197
|
+
export interface ICoreMailSmtpTlsDesiredState {
|
|
198
|
+
/** Keys in CoreMail's resolved runtime secret material holding PEM text, never plaintext values. */
|
|
199
|
+
certificatePemSecretKey: string;
|
|
200
|
+
privateKeyPemSecretKey: string;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Desired state for CoreMail's own SMTP submission listener (MSA).
|
|
204
|
+
*
|
|
205
|
+
* SMTP AUTH uses the binding identity directly: the username is the
|
|
206
|
+
* `bindingId` and the password is any current or retiring credential secret of
|
|
207
|
+
* that binding, so credential rotation windows behave exactly as they do for
|
|
208
|
+
* the workload TypedRequest surface. The listener stays unavailable until the
|
|
209
|
+
* referenced PEM material resolves; an enabled listener without resolvable
|
|
210
|
+
* certificate and private key material never accepts submissions.
|
|
211
|
+
*/
|
|
212
|
+
export interface ICoreMailSmtpDesiredState {
|
|
213
|
+
enabled: boolean;
|
|
214
|
+
/** Listener port inside the CoreMail workload. */
|
|
215
|
+
port: number;
|
|
216
|
+
/** Advertised EHLO hostname. */
|
|
217
|
+
hostname: string;
|
|
218
|
+
tls: ICoreMailSmtpTlsDesiredState;
|
|
219
|
+
}
|
|
190
220
|
export interface ICoreMailDesiredState {
|
|
191
221
|
schemaVersion: 2;
|
|
192
222
|
configEpoch: number;
|
|
193
223
|
bindings: ICoreMailBindingDesiredState[];
|
|
194
224
|
gateway: ICoreMailGatewayDesiredState;
|
|
225
|
+
/** Optional SMTP submission listener. An omitted listener keeps the API-only surface. */
|
|
226
|
+
smtp?: ICoreMailSmtpDesiredState;
|
|
195
227
|
cursorKeys: ICoreMailRuntimeKeyReference[];
|
|
196
228
|
}
|
|
197
229
|
export interface ICoreMailReplicaIdentity {
|
|
@@ -221,6 +253,33 @@ export interface ICoreMailReconciliationStatus {
|
|
|
221
253
|
updatedAt: number;
|
|
222
254
|
errorCode?: TCoreMailErrorCode;
|
|
223
255
|
}
|
|
256
|
+
export interface ICoreMailOutboundMailCounters {
|
|
257
|
+
submittedApi: number;
|
|
258
|
+
submittedSmtp: number;
|
|
259
|
+
delivered: number;
|
|
260
|
+
deferred: number;
|
|
261
|
+
failed: number;
|
|
262
|
+
deadLettered: number;
|
|
263
|
+
}
|
|
264
|
+
export interface ICoreMailInboundMailCounters {
|
|
265
|
+
received: number;
|
|
266
|
+
acknowledgedProcessed: number;
|
|
267
|
+
acknowledgedDiscarded: number;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Per-service mail counters for one UTC calendar day, reported over the
|
|
271
|
+
* authenticated CoreMail control session.
|
|
272
|
+
*/
|
|
273
|
+
export interface ICoreMailServiceMailStatistics {
|
|
274
|
+
tenantId: string;
|
|
275
|
+
serviceId: string;
|
|
276
|
+
bindingId: string;
|
|
277
|
+
/** UTC calendar day, `YYYY-MM-DD`. */
|
|
278
|
+
dayUtc: string;
|
|
279
|
+
outbound: ICoreMailOutboundMailCounters;
|
|
280
|
+
inbound: ICoreMailInboundMailCounters;
|
|
281
|
+
updatedAt: number;
|
|
282
|
+
}
|
|
224
283
|
export interface ICoreMailRecipientResolution {
|
|
225
284
|
recipient: string;
|
|
226
285
|
action: TCoreMailRecipientAction;
|
|
@@ -237,6 +296,14 @@ export interface ICoreMailGatewayMessageDescriptor {
|
|
|
237
296
|
contentType: 'message/rfc822';
|
|
238
297
|
};
|
|
239
298
|
}
|
|
299
|
+
/**
|
|
300
|
+
* dcrouter-reported delivery status for one accepted transport message.
|
|
301
|
+
*
|
|
302
|
+
* `updatedAt` must be monotonic per `transportMessageId`. A
|
|
303
|
+
* `transportMessageId` the gateway can never recognize again must be reported
|
|
304
|
+
* as a terminal `failed` status instead of an error, because CoreMail retries
|
|
305
|
+
* errors indefinitely.
|
|
306
|
+
*/
|
|
240
307
|
export interface ICoreMailGatewayOutboundStatus {
|
|
241
308
|
transportMessageId: string;
|
|
242
309
|
state: Extract<TCoreMailSubmissionState, 'accepted' | 'queued' | 'delivering' | 'delivered' | 'deferred' | 'failed' | 'deadLettered'>;
|
package/dist_ts/data/coremail.js
CHANGED
|
@@ -101,4 +101,4 @@ export const coreMailRuntimeKeys = Object.freeze({
|
|
|
101
101
|
controlCredentialSecret: 'COREMAIL_CONTROL_CREDENTIAL_SECRET',
|
|
102
102
|
gatewayCredentialSecret: 'COREMAIL_GATEWAY_CREDENTIAL',
|
|
103
103
|
});
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZW1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9kYXRhL2NvcmVtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUF5WUgsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDMUMsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLElBQUk7SUFDOUIsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJO0lBQ2xDLGFBQWEsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUk7SUFDOUIsYUFBYSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUM5QixlQUFlLEVBQUUsRUFBRTtJQUNuQixlQUFlLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJO0lBQ2pDLHdCQUF3QixFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUMxQyxnQkFBZ0IsRUFBRSxHQUFHLEdBQUcsSUFBSTtJQUM1QixtQkFBbUIsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUk7SUFDckMsY0FBYyxFQUFFLEdBQUc7SUFDbkIsZUFBZSxFQUFFLEdBQUc7SUFDcEIsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLElBQUk7SUFDM0IsV0FBVyxFQUFFLEtBQUs7SUFDbEIseUJBQXlCLEVBQUUsRUFBRTtJQUM3QixrQkFBa0IsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUk7SUFDakMsa0JBQWtCLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJO0lBQ2pDLHVCQUF1QixFQUFFLEVBQUUsR0FBRyxJQUFJO0lBQ2xDLHFCQUFxQixFQUFFLEVBQUUsR0FBRyxJQUFJO0lBQ2hDLHdCQUF3QixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSTtDQUMvQixDQUFDLENBQUM7QUFFWixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFD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
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type ICoreMailBindingCredentialVerifier, type ICoreMailControlBootstrap, type ICoreMailDesiredState, type ICoreMailDownloadGrant, type ICoreMailEnvelope, type ICoreMailErrorData, type ICoreMailGatewayOutboundStatus, type ICoreMailGatewayPeerDesiredState, type ICoreMailInboundDelivery, type ICoreMailInboundDeliveryPage, type ICoreMailOutboundMessageDescriptor, type ICoreMailRecipientResolution, type ICoreMailRuntimeKeyReference, type ICoreMailReconciliationStatus, type ICoreMailReplicaIdentity, type ICoreMailSubmission, type ICoreMailTransferGrant, type ICoreMailUploadGrant, type TCoreMailCapability, type TCoreMailBindingState, type TCoreMailErrorCode, type TCoreMailSha256, type TCoreMailWorkloadOperation } from './coremail.js';
|
|
1
|
+
import { type ICoreMailBindingCredentialVerifier, type ICoreMailControlBootstrap, type ICoreMailDesiredState, type ICoreMailDownloadGrant, type ICoreMailEnvelope, type ICoreMailErrorData, type ICoreMailGatewayMessageDescriptor, type ICoreMailGatewayOutboundStatus, type ICoreMailGatewayPeerDesiredState, type ICoreMailInboundDelivery, type ICoreMailInboundDeliveryPage, type ICoreMailOutboundMessageDescriptor, type ICoreMailRecipientResolution, type ICoreMailRuntimeKeyReference, type ICoreMailReconciliationStatus, type ICoreMailReplicaIdentity, type ICoreMailServiceMailStatistics, type ICoreMailSubmission, type ICoreMailTransferGrant, type ICoreMailUploadGrant, type TCoreMailCapability, type TCoreMailBindingState, type TCoreMailErrorCode, type TCoreMailSha256, type TCoreMailWorkloadOperation } from './coremail.js';
|
|
2
|
+
import type { IMailConnectionInfo } from './mail.js';
|
|
2
3
|
export declare const coreMailCanonicalJsonRules: Readonly<{
|
|
3
4
|
version: 1;
|
|
4
5
|
encoding: "utf-8";
|
|
@@ -29,6 +30,7 @@ export declare const coreMailContractLimits: Readonly<{
|
|
|
29
30
|
readonly maximumContentIdBytes: 256;
|
|
30
31
|
readonly maximumBearerTokenBytes: 1024;
|
|
31
32
|
readonly maximumRecipientResolutionMessageBytes: 512;
|
|
33
|
+
readonly maximumConnectionInfoFieldBytes: 512;
|
|
32
34
|
}>;
|
|
33
35
|
export declare class CoreMailContractError extends Error {
|
|
34
36
|
readonly code: TCoreMailErrorCode;
|
|
@@ -59,3 +61,19 @@ export declare const createCoreMailDesiredStateDigest: (valueArg: unknown) => Pr
|
|
|
59
61
|
export declare const verifyCoreMailDesiredStateDigest: (valueArg: unknown, digestArg: unknown) => Promise<boolean>;
|
|
60
62
|
export declare const normalizeCoreMailControlBootstrap: (valueArg: unknown) => ICoreMailControlBootstrap;
|
|
61
63
|
export declare const normalizeCoreMailGatewayPeerDesiredState: (valueArg: unknown) => ICoreMailGatewayPeerDesiredState;
|
|
64
|
+
export declare const normalizeCoreMailServiceMailStatistics: (valueArg: unknown, pathArg?: string) => ICoreMailServiceMailStatistics;
|
|
65
|
+
/**
|
|
66
|
+
* Strict gateway message descriptor normalization.
|
|
67
|
+
*
|
|
68
|
+
* CoreMail digests the normalized envelope together with the normalized
|
|
69
|
+
* connection source, so the emitted field set and order is part of the
|
|
70
|
+
* contract and must not change.
|
|
71
|
+
*/
|
|
72
|
+
export declare const normalizeCoreMailGatewayMessage: (valueArg: unknown, pathArg?: string) => ICoreMailGatewayMessageDescriptor;
|
|
73
|
+
/**
|
|
74
|
+
* Strict connection-source normalization for gateway resolve and handoff
|
|
75
|
+
* requests. CoreMail binds routing handles to a digest of the normalized
|
|
76
|
+
* envelope and this normalized source, so the emitted field set and order is
|
|
77
|
+
* part of the contract and must not change.
|
|
78
|
+
*/
|
|
79
|
+
export declare const normalizeCoreMailConnectionInfo: (valueArg: unknown, pathArg?: string) => IMailConnectionInfo;
|