@serve.zone/interfaces 20.2.0 → 21.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.
@@ -1,6 +1,13 @@
1
1
  import * as plugins from '../plugins.js';
2
2
  import * as serviceInterfaces from '../data/service.js';
3
3
  import * as userInterfaces from '../data/user.js';
4
+ type TReportReconciliationRolloutIdentity = {
5
+ rolloutId: string;
6
+ rolloutGeneration: number;
7
+ } | {
8
+ rolloutId?: never;
9
+ rolloutGeneration?: never;
10
+ };
4
11
  /**
5
12
  * a status update dashboard
6
13
  */
@@ -24,6 +31,7 @@ export interface IRequest_Coreflow_Cloudly_ReportReconciliationStatus extends pl
24
31
  message?: string;
25
32
  errorText?: string;
26
33
  reportedAt?: number;
27
- };
34
+ } & TReportReconciliationRolloutIdentity;
28
35
  response: {};
29
36
  }
37
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serve.zone/interfaces",
3
- "version": "20.2.0",
3
+ "version": "21.1.0",
4
4
  "private": false,
5
5
  "description": "Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.",
6
6
  "exports": {
package/readme.md CHANGED
@@ -505,6 +505,40 @@ bounded one-time HTTP upload, then applies it by reconciliation ID, so a large
505
505
  binding set never bypasses the 64 KiB control-frame boundary. Desired bindings
506
506
  contain password verifiers and secret references only, never plaintext
507
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.
508
542
  Reconciliation status carries the exact CoreMail task, rollout generation, and
509
543
  image digest so Coreflow can correlate every response with its authoritative
510
544
  current task roster.
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/interfaces',
6
- version: '20.2.0',
6
+ version: '21.1.0',
7
7
  description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
8
8
  }