@serve.zone/interfaces 20.1.0 → 21.0.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.
@@ -0,0 +1,250 @@
1
+ import type * as plugins from '../plugins.js';
2
+ import type { ICoreMailEnvelope, ICoreMailDownloadGrant, ICoreMailGatewayMessageDescriptor, ICoreMailGatewayOutboundStatus, ICoreMailInboundDelivery, ICoreMailOutboundMessageDescriptor, ICoreMailRecipientResolution, ICoreMailReconciliationStatus, ICoreMailReplicaIdentity, ICoreMailSubmission, ICoreMailUploadGrant, TCoreMailInboundAckOutcome, TCoreMailSha256 } from '../data/coremail.js';
3
+ import type { IMailConnectionInfo } from '../data/mail.js';
4
+ export interface IReq_CoreMailAuthenticateWorkload extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailAuthenticateWorkload> {
5
+ method: 'coreMailAuthenticateWorkload';
6
+ request: {
7
+ bindingId: string;
8
+ credentialId: string;
9
+ credentialVersion: number;
10
+ credentialSecret: string;
11
+ };
12
+ response: {
13
+ authenticated: true;
14
+ credentialVersion: number;
15
+ capabilities: Array<'outbound' | 'inbound'>;
16
+ };
17
+ }
18
+ export interface IReq_CoreMailPrepareOutboundSubmission extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailPrepareOutboundSubmission> {
19
+ method: 'coreMailPrepareOutboundSubmission';
20
+ request: {
21
+ /** Required replay key. Authority is added by the authenticated server session. */
22
+ idempotencyKey: string;
23
+ message: ICoreMailOutboundMessageDescriptor;
24
+ };
25
+ response: {
26
+ submission: ICoreMailSubmission;
27
+ replayed: boolean;
28
+ };
29
+ }
30
+ export interface IReq_CoreMailPrepareOutboundPartUpload extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailPrepareOutboundPartUpload> {
31
+ method: 'coreMailPrepareOutboundPartUpload';
32
+ request: {
33
+ submissionId: string;
34
+ partId: string;
35
+ };
36
+ response: {
37
+ grant: ICoreMailUploadGrant;
38
+ };
39
+ }
40
+ export interface IReq_CoreMailCompleteOutboundPartUpload extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailCompleteOutboundPartUpload> {
41
+ method: 'coreMailCompleteOutboundPartUpload';
42
+ request: {
43
+ submissionId: string;
44
+ partId: string;
45
+ grantId: string;
46
+ sha256: TCoreMailSha256;
47
+ lengthBytes: number;
48
+ };
49
+ response: {
50
+ submission: ICoreMailSubmission;
51
+ };
52
+ }
53
+ export interface IReq_CoreMailFinalizeOutboundSubmission extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailFinalizeOutboundSubmission> {
54
+ method: 'coreMailFinalizeOutboundSubmission';
55
+ request: {
56
+ submissionId: string;
57
+ };
58
+ response: {
59
+ submission: ICoreMailSubmission;
60
+ };
61
+ }
62
+ export interface IReq_CoreMailGetOutboundSubmission extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailGetOutboundSubmission> {
63
+ method: 'coreMailGetOutboundSubmission';
64
+ request: {
65
+ submissionId: string;
66
+ };
67
+ response: {
68
+ submission: ICoreMailSubmission;
69
+ };
70
+ }
71
+ export interface IReq_CoreMailListInboundDeliveries extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailListInboundDeliveries> {
72
+ method: 'coreMailListInboundDeliveries';
73
+ request: {
74
+ afterDeliveryId?: string;
75
+ limit: number;
76
+ };
77
+ response: {
78
+ deliveries: ICoreMailInboundDelivery[];
79
+ };
80
+ }
81
+ export interface IReq_CoreMailPrepareInboundFetch extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailPrepareInboundFetch> {
82
+ method: 'coreMailPrepareInboundFetch';
83
+ request: {
84
+ deliveryId: string;
85
+ };
86
+ response: {
87
+ grant: ICoreMailDownloadGrant;
88
+ };
89
+ }
90
+ export interface IReq_CoreMailCompleteInboundFetch extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailCompleteInboundFetch> {
91
+ method: 'coreMailCompleteInboundFetch';
92
+ request: {
93
+ deliveryId: string;
94
+ grantId: string;
95
+ sha256: TCoreMailSha256;
96
+ lengthBytes: number;
97
+ };
98
+ response: {
99
+ delivery: ICoreMailInboundDelivery;
100
+ };
101
+ }
102
+ export interface IReq_CoreMailAcknowledgeInboundDelivery extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailAcknowledgeInboundDelivery> {
103
+ method: 'coreMailAcknowledgeInboundDelivery';
104
+ request: {
105
+ deliveryId: string;
106
+ outcome: TCoreMailInboundAckOutcome;
107
+ };
108
+ response: {
109
+ delivery: ICoreMailInboundDelivery;
110
+ replayed: boolean;
111
+ };
112
+ }
113
+ export interface IReq_CoreMailAuthenticateControl extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailAuthenticateControl> {
114
+ method: 'coreMailAuthenticateControl';
115
+ request: {
116
+ credentialId: string;
117
+ credentialVersion: number;
118
+ credentialSecret: string;
119
+ };
120
+ response: {
121
+ authenticated: true;
122
+ replica: ICoreMailReplicaIdentity;
123
+ };
124
+ }
125
+ export interface IReq_CoreMailPrepareDesiredStateUpload extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailPrepareDesiredStateUpload> {
126
+ method: 'coreMailPrepareDesiredStateUpload';
127
+ request: {
128
+ expectedAppliedConfigEpoch: number;
129
+ configEpoch: number;
130
+ desiredStateDigest: TCoreMailSha256;
131
+ lengthBytes: number;
132
+ };
133
+ response: {
134
+ reconciliationId: string;
135
+ grant: ICoreMailUploadGrant;
136
+ replayed: boolean;
137
+ };
138
+ }
139
+ export interface IReq_CoreMailApplyDesiredState extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailApplyDesiredState> {
140
+ method: 'coreMailApplyDesiredState';
141
+ request: {
142
+ reconciliationId: string;
143
+ grantId: string;
144
+ desiredStateDigest: TCoreMailSha256;
145
+ lengthBytes: number;
146
+ };
147
+ response: {
148
+ status: ICoreMailReconciliationStatus;
149
+ };
150
+ }
151
+ export interface IReq_CoreMailGetReconciliationStatus extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailGetReconciliationStatus> {
152
+ method: 'coreMailGetReconciliationStatus';
153
+ request: {
154
+ configEpoch: number;
155
+ desiredStateDigest: TCoreMailSha256;
156
+ };
157
+ response: {
158
+ status: ICoreMailReconciliationStatus;
159
+ };
160
+ }
161
+ export interface IReq_CoreMailGatewayAuthenticate extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailGatewayAuthenticate> {
162
+ method: 'coreMailGatewayAuthenticate';
163
+ request: {
164
+ credentialId: string;
165
+ credentialVersion: number;
166
+ credentialSecret: string;
167
+ };
168
+ response: {
169
+ authenticated: true;
170
+ credentialVersion: number;
171
+ /** dcrouter's authoritative, control-plane-bound origin for CoreMail transfer paths. */
172
+ coreMailTransferOrigin: string;
173
+ };
174
+ }
175
+ export interface IReq_CoreMailGatewayResolveRecipients extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailGatewayResolveRecipients> {
176
+ method: 'coreMailGatewayResolveRecipients';
177
+ request: {
178
+ envelope: ICoreMailEnvelope;
179
+ recipients: string[];
180
+ source: IMailConnectionInfo;
181
+ };
182
+ response: {
183
+ resolutions: ICoreMailRecipientResolution[];
184
+ };
185
+ }
186
+ export interface IReq_CoreMailGatewayPrepareInboundHandoff extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailGatewayPrepareInboundHandoff> {
187
+ method: 'coreMailGatewayPrepareInboundHandoff';
188
+ request: {
189
+ transportDeliveryId: string;
190
+ routingHandles: string[];
191
+ message: ICoreMailGatewayMessageDescriptor;
192
+ source: IMailConnectionInfo;
193
+ };
194
+ response: {
195
+ handoffId: string;
196
+ grant?: ICoreMailUploadGrant;
197
+ replayed: boolean;
198
+ };
199
+ }
200
+ export interface IReq_CoreMailGatewayCompleteInboundHandoff extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailGatewayCompleteInboundHandoff> {
201
+ method: 'coreMailGatewayCompleteInboundHandoff';
202
+ request: {
203
+ handoffId: string;
204
+ grantId: string;
205
+ sha256: TCoreMailSha256;
206
+ lengthBytes: number;
207
+ };
208
+ response: {
209
+ accepted: true;
210
+ deliveryIds: string[];
211
+ replayed: boolean;
212
+ };
213
+ }
214
+ export interface IReq_CoreMailGatewayPrepareOutboundHandoff extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailGatewayPrepareOutboundHandoff> {
215
+ method: 'coreMailGatewayPrepareOutboundHandoff';
216
+ request: {
217
+ transportSubmissionId: string;
218
+ submissionDigest: TCoreMailSha256;
219
+ message: ICoreMailGatewayMessageDescriptor;
220
+ /** CoreMail-issued GET grant. dcrouter resolves the path against the authenticated peer. */
221
+ grant: ICoreMailDownloadGrant;
222
+ };
223
+ response: {
224
+ transportMessageId: string;
225
+ status: ICoreMailGatewayOutboundStatus;
226
+ replayed: boolean;
227
+ };
228
+ }
229
+ export interface IReq_CoreMailGatewayCompleteOutboundHandoff extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailGatewayCompleteOutboundHandoff> {
230
+ method: 'coreMailGatewayCompleteOutboundHandoff';
231
+ request: {
232
+ transportMessageId: string;
233
+ grantId: string;
234
+ sha256: TCoreMailSha256;
235
+ lengthBytes: number;
236
+ };
237
+ response: {
238
+ status: ICoreMailGatewayOutboundStatus;
239
+ replayed: boolean;
240
+ };
241
+ }
242
+ export interface IReq_CoreMailGatewayGetOutboundStatus extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CoreMailGatewayGetOutboundStatus> {
243
+ method: 'coreMailGatewayGetOutboundStatus';
244
+ request: {
245
+ transportMessageId: string;
246
+ };
247
+ response: {
248
+ status: ICoreMailGatewayOutboundStatus;
249
+ };
250
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZW1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9yZXF1ZXN0cy9jb3JlbWFpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -6,6 +6,7 @@ import * as backupRequests from './backup.js';
6
6
  import * as certificateRequests from './certificate.js';
7
7
  import * as clusterRequests from './cluster.js';
8
8
  import * as configRequests from './config.js';
9
+ import * as coreMailRequests from './coremail.js';
9
10
  import * as corestoreRequests from './corestore.js';
10
11
  import * as deploymentRequests from './deployment.js';
11
12
  import * as dnsRequests from './dns.js';
@@ -33,7 +34,7 @@ import * as statusRequests from './status.js';
33
34
  import * as taskRequests from './task.js';
34
35
  import * as versionRequests from './version.js';
35
36
  import * as webPushRequests from './webpush.js';
36
- export { adminRequests as admin, appStoreRequests as appstore, baremetalRequests as baremetal, baseOsRequests as baseos, backupRequests as backup, certificateRequests as certificate, clusterRequests as cluster, configRequests as config, corestoreRequests as corestore, deploymentRequests as deployment, dnsRequests as dns, domainRequests as domain, externalRegistryRequests as externalRegistry, gatewayRequests as gateway, hostedAppRequests as hostedapp, identityRequests as identity, imageRequests as image, informRequests as inform, logRequests as log, mailRequests as mail, migrationRequests as migration, networkRequests as network, nodeRequests as node, platformRequests as platform, routingRequests as routing, secretRequests as secret, secretBundleRequests as secretbundle, secretGroupRequests as secretgroup, serverRequests as server, serviceRequests as service, settingsRequests as settings, statusRequests as status, taskRequests as task, versionRequests as version, webPushRequests as webpush, };
37
+ export { adminRequests as admin, appStoreRequests as appstore, baremetalRequests as baremetal, baseOsRequests as baseos, backupRequests as backup, certificateRequests as certificate, clusterRequests as cluster, configRequests as config, coreMailRequests as coremail, corestoreRequests as corestore, deploymentRequests as deployment, dnsRequests as dns, domainRequests as domain, externalRegistryRequests as externalRegistry, gatewayRequests as gateway, hostedAppRequests as hostedapp, identityRequests as identity, imageRequests as image, informRequests as inform, logRequests as log, mailRequests as mail, migrationRequests as migration, networkRequests as network, nodeRequests as node, platformRequests as platform, routingRequests as routing, secretRequests as secret, secretBundleRequests as secretbundle, secretGroupRequests as secretgroup, serverRequests as server, serviceRequests as service, settingsRequests as settings, statusRequests as status, taskRequests as task, versionRequests as version, webPushRequests as webpush, };
37
38
  export * from './inform.js';
38
39
  export * from './hostedapp.js';
39
40
  export * from './mail.js';
@@ -7,6 +7,7 @@ import * as backupRequests from './backup.js';
7
7
  import * as certificateRequests from './certificate.js';
8
8
  import * as clusterRequests from './cluster.js';
9
9
  import * as configRequests from './config.js';
10
+ import * as coreMailRequests from './coremail.js';
10
11
  import * as corestoreRequests from './corestore.js';
11
12
  import * as deploymentRequests from './deployment.js';
12
13
  import * as dnsRequests from './dns.js';
@@ -34,9 +35,9 @@ import * as statusRequests from './status.js';
34
35
  import * as taskRequests from './task.js';
35
36
  import * as versionRequests from './version.js';
36
37
  import * as webPushRequests from './webpush.js';
37
- export { adminRequests as admin, appStoreRequests as appstore, baremetalRequests as baremetal, baseOsRequests as baseos, backupRequests as backup, certificateRequests as certificate, clusterRequests as cluster, configRequests as config, corestoreRequests as corestore, deploymentRequests as deployment, dnsRequests as dns, domainRequests as domain, externalRegistryRequests as externalRegistry, gatewayRequests as gateway, hostedAppRequests as hostedapp, identityRequests as identity, imageRequests as image, informRequests as inform, logRequests as log, mailRequests as mail, migrationRequests as migration, networkRequests as network, nodeRequests as node, platformRequests as platform, routingRequests as routing, secretRequests as secret, secretBundleRequests as secretbundle, secretGroupRequests as secretgroup, serverRequests as server, serviceRequests as service, settingsRequests as settings, statusRequests as status, taskRequests as task, versionRequests as version, webPushRequests as webpush, };
38
+ export { adminRequests as admin, appStoreRequests as appstore, baremetalRequests as baremetal, baseOsRequests as baseos, backupRequests as backup, certificateRequests as certificate, clusterRequests as cluster, configRequests as config, coreMailRequests as coremail, corestoreRequests as corestore, deploymentRequests as deployment, dnsRequests as dns, domainRequests as domain, externalRegistryRequests as externalRegistry, gatewayRequests as gateway, hostedAppRequests as hostedapp, identityRequests as identity, imageRequests as image, informRequests as inform, logRequests as log, mailRequests as mail, migrationRequests as migration, networkRequests as network, nodeRequests as node, platformRequests as platform, routingRequests as routing, secretRequests as secret, secretBundleRequests as secretbundle, secretGroupRequests as secretgroup, serverRequests as server, serviceRequests as service, settingsRequests as settings, statusRequests as status, taskRequests as task, versionRequests as version, webPushRequests as webpush, };
38
39
  export * from './inform.js';
39
40
  export * from './hostedapp.js';
40
41
  export * from './mail.js';
41
42
  export * from './webpush.js';
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9yZXF1ZXN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEtBQUssYUFBYSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssbUJBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxLQUFLLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxLQUFLLGlCQUFpQixNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxrQkFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEtBQUssV0FBVyxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssd0JBQXdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxLQUFLLGlCQUFpQixNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxLQUFLLGFBQWEsTUFBTSxZQUFZLENBQUM7QUFDNUMsT0FBTyxLQUFLLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxLQUFLLFdBQVcsTUFBTSxVQUFVLENBQUM7QUFDeEMsT0FBTyxLQUFLLFlBQVksTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxLQUFLLGlCQUFpQixNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxlQUFlLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sS0FBSyxZQUFZLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxLQUFLLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxLQUFLLG9CQUFvQixNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxtQkFBbUIsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssZUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sS0FBSyxjQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxZQUFZLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sS0FBSyxlQUFlLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sS0FBSyxlQUFlLE1BQU0sY0FBYyxDQUFDO0FBRWhELE9BQU8sRUFDTCxhQUFhLElBQUksS0FBSyxFQUN0QixnQkFBZ0IsSUFBSSxRQUFRLEVBQzVCLGlCQUFpQixJQUFJLFNBQVMsRUFDOUIsY0FBYyxJQUFJLE1BQU0sRUFDeEIsY0FBYyxJQUFJLE1BQU0sRUFDeEIsbUJBQW1CLElBQUksV0FBVyxFQUNsQyxlQUFlLElBQUksT0FBTyxFQUMxQixjQUFjLElBQUksTUFBTSxFQUN4QixpQkFBaUIsSUFBSSxTQUFTLEVBQzlCLGtCQUFrQixJQUFJLFVBQVUsRUFDaEMsV0FBVyxJQUFJLEdBQUcsRUFDbEIsY0FBYyxJQUFJLE1BQU0sRUFDeEIsd0JBQXdCLElBQUksZ0JBQWdCLEVBQzVDLGVBQWUsSUFBSSxPQUFPLEVBQzFCLGlCQUFpQixJQUFJLFNBQVMsRUFDOUIsZ0JBQWdCLElBQUksUUFBUSxFQUM1QixhQUFhLElBQUksS0FBSyxFQUN0QixjQUFjLElBQUksTUFBTSxFQUN4QixXQUFXLElBQUksR0FBRyxFQUNsQixZQUFZLElBQUksSUFBSSxFQUNwQixpQkFBaUIsSUFBSSxTQUFTLEVBQzlCLGVBQWUsSUFBSSxPQUFPLEVBQzFCLFlBQVksSUFBSSxJQUFJLEVBQ3BCLGdCQUFnQixJQUFJLFFBQVEsRUFDNUIsZUFBZSxJQUFJLE9BQU8sRUFDMUIsY0FBYyxJQUFJLE1BQU0sRUFDeEIsb0JBQW9CLElBQUksWUFBWSxFQUNwQyxtQkFBbUIsSUFBSSxXQUFXLEVBQ2xDLGNBQWMsSUFBSSxNQUFNLEVBQ3hCLGVBQWUsSUFBSSxPQUFPLEVBQzFCLGdCQUFnQixJQUFJLFFBQVEsRUFDNUIsY0FBYyxJQUFJLE1BQU0sRUFDeEIsWUFBWSxJQUFJLElBQUksRUFDcEIsZUFBZSxJQUFJLE9BQU8sRUFDMUIsZUFBZSxJQUFJLE9BQU8sR0FDM0IsQ0FBQztBQUVGLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUMifQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9yZXF1ZXN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEtBQUssYUFBYSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssbUJBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxLQUFLLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxLQUFLLGdCQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEtBQUssaUJBQWlCLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxLQUFLLGtCQUFrQixNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sS0FBSyxXQUFXLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxjQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyx3QkFBd0IsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEtBQUssZUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEtBQUssaUJBQWlCLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxLQUFLLGdCQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEtBQUssYUFBYSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssV0FBVyxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEtBQUssWUFBWSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEtBQUssaUJBQWlCLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxLQUFLLFlBQVksTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxLQUFLLGdCQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEtBQUssZUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssb0JBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxLQUFLLG1CQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sS0FBSyxjQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxlQUFlLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxLQUFLLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxLQUFLLFlBQVksTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLENBQUM7QUFFaEQsT0FBTyxFQUNMLGFBQWEsSUFBSSxLQUFLLEVBQ3RCLGdCQUFnQixJQUFJLFFBQVEsRUFDNUIsaUJBQWlCLElBQUksU0FBUyxFQUM5QixjQUFjLElBQUksTUFBTSxFQUN4QixjQUFjLElBQUksTUFBTSxFQUN4QixtQkFBbUIsSUFBSSxXQUFXLEVBQ2xDLGVBQWUsSUFBSSxPQUFPLEVBQzFCLGNBQWMsSUFBSSxNQUFNLEVBQ3hCLGdCQUFnQixJQUFJLFFBQVEsRUFDNUIsaUJBQWlCLElBQUksU0FBUyxFQUM5QixrQkFBa0IsSUFBSSxVQUFVLEVBQ2hDLFdBQVcsSUFBSSxHQUFHLEVBQ2xCLGNBQWMsSUFBSSxNQUFNLEVBQ3hCLHdCQUF3QixJQUFJLGdCQUFnQixFQUM1QyxlQUFlLElBQUksT0FBTyxFQUMxQixpQkFBaUIsSUFBSSxTQUFTLEVBQzlCLGdCQUFnQixJQUFJLFFBQVEsRUFDNUIsYUFBYSxJQUFJLEtBQUssRUFDdEIsY0FBYyxJQUFJLE1BQU0sRUFDeEIsV0FBVyxJQUFJLEdBQUcsRUFDbEIsWUFBWSxJQUFJLElBQUksRUFDcEIsaUJBQWlCLElBQUksU0FBUyxFQUM5QixlQUFlLElBQUksT0FBTyxFQUMxQixZQUFZLElBQUksSUFBSSxFQUNwQixnQkFBZ0IsSUFBSSxRQUFRLEVBQzVCLGVBQWUsSUFBSSxPQUFPLEVBQzFCLGNBQWMsSUFBSSxNQUFNLEVBQ3hCLG9CQUFvQixJQUFJLFlBQVksRUFDcEMsbUJBQW1CLElBQUksV0FBVyxFQUNsQyxjQUFjLElBQUksTUFBTSxFQUN4QixlQUFlLElBQUksT0FBTyxFQUMxQixnQkFBZ0IsSUFBSSxRQUFRLEVBQzVCLGNBQWMsSUFBSSxNQUFNLEVBQ3hCLFlBQVksSUFBSSxJQUFJLEVBQ3BCLGVBQWUsSUFBSSxPQUFPLEVBQzFCLGVBQWUsSUFBSSxPQUFPLEdBQzNCLENBQUM7QUFFRixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsY0FBYyxDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serve.zone/interfaces",
3
- "version": "20.1.0",
3
+ "version": "21.0.0",
4
4
  "private": false,
5
5
  "description": "Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.",
6
6
  "exports": {
@@ -17,7 +17,7 @@
17
17
  "author": "Task Venture Capital GmbH",
18
18
  "license": "MIT",
19
19
  "dependencies": {
20
- "@api.global/typedrequest-interfaces": "^3.0.19",
20
+ "@api.global/typedrequest-interfaces": "^4.0.0",
21
21
  "@push.rocks/smartlog-interfaces": "^3.0.2",
22
22
  "@tsclass/tsclass": "^9.5.1"
23
23
  },
package/readme.md CHANGED
@@ -480,6 +480,69 @@ const provisioning: requests.gateway.IReq_ProvisionGatewayClientCredential['requ
480
480
 
481
481
  `getGatewayClientContext` returns effective live policy. A `gatewayClient` role necessarily includes the credential ID, bound client ID/type, and `policyGeneration`; consumers should reject admin/operator or mismatched contexts rather than falling back to a caller-supplied owner ID. `getGatewayClientMailOverview` provides an owner-scoped domain and recent-message summary. `getGatewayClientMailDomainCount` derives ownership exclusively from the authenticating gateway credential and returns `{ count: number }` for its distinct configured mail domains. Cloudly therefore uses only `dcrouterGatewayApiToken`; the former `dcrouterOpsApiToken` setting is not part of `data.ICloudlySettings`.
482
482
 
483
+ ### CoreMail contracts
484
+
485
+ `requests.coremail` is the shared contract boundary for authenticated workload
486
+ sessions, Coreflow reconciliation, and the CoreMail-to-dcrouter gateway
487
+ session. Only the three authentication handshakes carry reusable peer
488
+ credentials. Subsequent transfer operations may carry a scoped, short-lived,
489
+ one-time bearer capability, while every subsequent workload request derives
490
+ tenant, service, binding, capabilities, allowed senders, and credential version
491
+ from the server-owned TypedSocket peer.
492
+
493
+ Large content never travels inside TypedRequest JSON. Outbound body parts and
494
+ attachments use prepare/upload/complete operations with short-lived one-time
495
+ HTTP transfer grants. Inbound delivery uses bounded delivery listing followed
496
+ by prepare/fetch/complete and an explicit acknowledgement after the workload
497
+ has processed the exact byte count and SHA-256 digest. `data.coreMailLimits`
498
+ defines the 64 KiB control-frame boundary, bounded structured content, the
499
+ 30 MiB serialized MIME ceiling, transfer deadlines, and five-minute grant
500
+ lifetime.
501
+
502
+ Coreflow applies `data.ICoreMailDesiredState` with a config-epoch
503
+ compare-and-set fence. It stages the digest-fenced JSON snapshot through a
504
+ bounded one-time HTTP upload, then applies it by reconciliation ID, so a large
505
+ binding set never bypasses the 64 KiB control-frame boundary. Desired bindings
506
+ contain password verifiers and secret references only, never plaintext
507
+ workload or dcrouter credentials.
508
+ Use `data.normalizeCoreMailDesiredState`,
509
+ `data.canonicalizeCoreMailDesiredState`, and
510
+ `data.createCoreMailDesiredStateDigest` at every producer and consumer
511
+ boundary. Use `data.verifyCoreMailDesiredStateDigest` before applying a staged
512
+ snapshot, `data.normalizeCoreMailCredentialVerifier` before accepting verifier
513
+ metadata, `data.normalizeCoreMailControlBootstrap` for startup authority, and
514
+ `data.normalizeCoreMailGatewayPeerDesiredState` for dcrouter peer state. The
515
+ normalizers reject unknown fields, noncanonical mailboxes,
516
+ ambiguous active recipient ownership, malformed SHA-256 values, and
517
+ credential-lifecycle inconsistencies. CoreMail credential verifiers use the
518
+ versioned `argon2id-v1` format and the exact policy exported as
519
+ `data.coreMailCredentialVerifierPolicy`.
520
+
521
+ `data.ICoreMailControlBootstrap` is installed before ordinary reconciliation.
522
+ It contains the CoreMail service identity and verifier metadata only. The
523
+ matching plaintext control credential is delivered exclusively to Coreflow
524
+ through resolved runtime secrets. `data.coreMailRuntimeKeys` publishes the
525
+ canonical environment keys for the verifier-only bootstrap payload and the
526
+ separate control and gateway secret values; no consumer may derive or embed
527
+ plaintext material in desired state.
528
+
529
+ `data.ICoreMailGatewayPeerDesiredState` gives dcrouter the authoritative HTTPS
530
+ CoreMail transfer origin associated with an authenticated CoreMail service.
531
+ The origin is control-plane state and must never be inferred from a socket,
532
+ Host header, TypedSocket tag, or unrestricted peer input. The gateway
533
+ authentication response repeats dcrouter's bound origin so CoreMail can reject
534
+ configuration drift before handing over a path-only transfer grant.
535
+
536
+ Control and gateway credential rotation is ordered: provision the candidate
537
+ plaintext through resolved runtime secrets, publish and activate the matching
538
+ `argon2id-v1` verifier, roll or reconnect every affected replica, observe
539
+ per-task authentication and readiness, then mark the previous verifier
540
+ `retiring` with `acceptUntil`. Remove the previous verifier and secret only
541
+ after its acceptance window has elapsed and no session uses that version.
542
+ Reconciliation status carries the exact CoreMail task, rollout generation, and
543
+ image digest so Coreflow can correlate every response with its authoritative
544
+ current task roster.
545
+
483
546
  Request groups are exported by product area:
484
547
 
485
548
  - `requests.admin`
@@ -490,6 +553,7 @@ Request groups are exported by product area:
490
553
  - `requests.certificate`
491
554
  - `requests.cluster`
492
555
  - `requests.config`
556
+ - `requests.coremail`
493
557
  - `requests.corestore`
494
558
  - `requests.deployment`
495
559
  - `requests.dns`
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/interfaces',
6
- version: '20.1.0',
6
+ version: '21.0.0',
7
7
  description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
8
8
  }