@serve.zone/interfaces 8.0.1 → 8.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/changelog.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026-07-06 - 8.1.0
4
+
5
+ ### Features
6
+
7
+ - add gateway client route listing contract (gateway)
8
+ - Add IGatewayClientRoute for client-owned route reconciliation views
9
+ - Add getGatewayClientRoutes typed request returning gateway client routes
10
+
11
+ ### Fixes
12
+
13
+ - document gateway client route contracts (docs)
14
+ - Add README references for IGatewayClientRoute, getGatewayClientRoutes, and syncGatewayClientRoute.
15
+ - Update the dcrouter gateway settings example to use generic placeholder values.
16
+
3
17
  ## 2026-07-06 - 8.0.1
4
18
 
5
19
  ### Fixes
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/interfaces',
6
- version: '8.0.1',
6
+ version: '8.1.0',
7
7
  description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHVGQUF1RjtDQUNyRyxDQUFBIn0=
@@ -229,6 +229,18 @@ export interface IGatewayRouteConfig {
229
229
  edgeFilter?: string[];
230
230
  };
231
231
  }
232
+ /**
233
+ * Gateway-client-owned route view used for reconciliation by clients.
234
+ */
235
+ export interface IGatewayClientRoute {
236
+ id: string;
237
+ name: string;
238
+ enabled: boolean;
239
+ ownership: IGatewayClientOwnership;
240
+ route: IGatewayRouteConfig;
241
+ sourceProfileRef?: string;
242
+ managePath?: string;
243
+ }
232
244
  /**
233
245
  * Result of an idempotent gateway route sync.
234
246
  */
@@ -1,5 +1,5 @@
1
1
  import * as plugins from '../plugins.js';
2
- import type { IGatewayCapabilities, IGatewayClientContext, IGatewayClientOwnership, IGatewayDnsRecord, IGatewayDomain, IGatewayIdentity, IGatewayRouteConfig, IGatewayRouteSyncResult } from '../data/gateway.js';
2
+ import type { IGatewayCapabilities, IGatewayClientContext, IGatewayClientOwnership, IGatewayClientRoute, IGatewayDnsRecord, IGatewayDomain, IGatewayIdentity, IGatewayRouteConfig, IGatewayRouteSyncResult } from '../data/gateway.js';
3
3
  /**
4
4
  * Gateway client contracts: the machine-facing API a gateway (dcrouter)
5
5
  * serves to gateway clients (Onebox, Cloudly/Coreflow).
@@ -53,6 +53,17 @@ export interface IReq_GetGatewayClientDnsRecords extends plugins.typedrequestInt
53
53
  records: IGatewayDnsRecord[];
54
54
  };
55
55
  }
56
+ export interface IReq_GetGatewayClientRoutes extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetGatewayClientRoutes> {
57
+ method: 'getGatewayClientRoutes';
58
+ request: {
59
+ identity?: IGatewayIdentity;
60
+ apiToken?: string;
61
+ gatewayClientId?: string;
62
+ };
63
+ response: {
64
+ routes: IGatewayClientRoute[];
65
+ };
66
+ }
56
67
  export interface IReq_SyncGatewayClientRoute extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_SyncGatewayClientRoute> {
57
68
  method: 'syncGatewayClientRoute';
58
69
  request: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serve.zone/interfaces",
3
- "version": "8.0.1",
3
+ "version": "8.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
@@ -95,7 +95,7 @@ Common data contracts include:
95
95
  - `IService`, `IDeployment`, `IImage`, `IRegistryTarget`, and `IExternalRegistry` for workload delivery.
96
96
  - Service port contracts including `IServiceTargetPort`, `IServiceDomainRoute`, and `IServicePublicPortMapping` for canonical backend targets, domain target references, and edge/Coretraffic TCP/UDP public exposure.
97
97
  - `IDomain`, `IDnsEntry`, and traffic contracts for routing and DNS management.
98
- - Traffic and gateway route contracts including `ICoretrafficPortRouteConfig`, routing `portRoutes`, gateway route `routeRef` ownership, optional match `domains`, `transport`, and `remoteIngress` route intent.
98
+ - Traffic and gateway route contracts including `ICoretrafficPortRouteConfig`, routing `portRoutes`, `IGatewayClientRoute` client-owned route views, gateway route `routeRef` ownership, optional match `domains`, `transport`, and `remoteIngress` route intent.
99
99
  - `ISecretBundle` and `ISecretGroup` for secret ownership and shared secret groups.
100
100
  - Mail gateway contracts for domain authorities, address bindings, WorkApp bindings, managed SMTP/API credentials, spool items, delivery journals, and inbound/outbound message payloads.
101
101
  - Service-level mail configuration through `IService.data.mail`, including per-address inbound `smtpForward` settings and outbound credential metadata. Cloudly settings include dcrouter gateway, SMTP submission, and inbound forward-target keys for reconciling those bindings.
@@ -138,7 +138,7 @@ interface IExampleRequest {
138
138
  }
139
139
  ```
140
140
 
141
- Mail request contracts include `syncMailAddressBinding`, `deleteMailAddressBinding`, and `rotateMailCredential`. `TMailAddressBindingSync.outboundEnabled` explicitly controls whether a gateway should maintain a managed outbound SMTP credential for an address binding. Binding credential metadata is public; `rotateMailCredential` returns the new secret only in its one-time `IMailCredentialOneTimeSecret` response.
141
+ Gateway request contracts include `getGatewayClientRoutes` (`requests.gateway.IReq_GetGatewayClientRoutes`) for listing owned `IGatewayClientRoute[]` route views, and `syncGatewayClientRoute` for idempotently syncing or deleting hostname-owned and routeRef-owned routes. Mail request contracts include `syncMailAddressBinding`, `deleteMailAddressBinding`, and `rotateMailCredential`. `TMailAddressBindingSync.outboundEnabled` explicitly controls whether a gateway should maintain a managed outbound SMTP credential for an address binding. Binding credential metadata is public; `rotateMailCredential` returns the new secret only in its one-time `IMailCredentialOneTimeSecret` response.
142
142
 
143
143
  Request groups are exported by product area:
144
144
 
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/interfaces',
6
- version: '8.0.1',
6
+ version: '8.1.0',
7
7
  description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
8
8
  }
@@ -247,6 +247,19 @@ export interface IGatewayRouteConfig {
247
247
  };
248
248
  }
249
249
 
250
+ /**
251
+ * Gateway-client-owned route view used for reconciliation by clients.
252
+ */
253
+ export interface IGatewayClientRoute {
254
+ id: string;
255
+ name: string;
256
+ enabled: boolean;
257
+ ownership: IGatewayClientOwnership;
258
+ route: IGatewayRouteConfig;
259
+ sourceProfileRef?: string;
260
+ managePath?: string;
261
+ }
262
+
250
263
  /**
251
264
  * Result of an idempotent gateway route sync.
252
265
  */
@@ -26,7 +26,7 @@ export interface ICloudlySettings {
26
26
 
27
27
  // JSON map of swarm node hostname -> gateway-reachable IP/host. Routes for
28
28
  // services pinned to a node target that node's coretraffic instead of the
29
- // static dcrouterTargetHost (e.g. {"cloudlyworkergrasberg":"192.168.190.108"}).
29
+ // static dcrouterTargetHost (e.g. {"worker-a":"192.0.2.10"}).
30
30
  dcrouterGatewayUrl?: string;
31
31
  dcrouterGatewayApiToken?: string;
32
32
  dcrouterOpsApiToken?: string;
@@ -3,6 +3,7 @@ import type {
3
3
  IGatewayCapabilities,
4
4
  IGatewayClientContext,
5
5
  IGatewayClientOwnership,
6
+ IGatewayClientRoute,
6
7
  IGatewayDnsRecord,
7
8
  IGatewayDomain,
8
9
  IGatewayIdentity,
@@ -80,6 +81,21 @@ export interface IReq_GetGatewayClientDnsRecords extends plugins.typedrequestInt
80
81
  };
81
82
  }
82
83
 
84
+ export interface IReq_GetGatewayClientRoutes extends plugins.typedrequestInterfaces.implementsTR<
85
+ plugins.typedrequestInterfaces.ITypedRequest,
86
+ IReq_GetGatewayClientRoutes
87
+ > {
88
+ method: 'getGatewayClientRoutes';
89
+ request: {
90
+ identity?: IGatewayIdentity;
91
+ apiToken?: string;
92
+ gatewayClientId?: string;
93
+ };
94
+ response: {
95
+ routes: IGatewayClientRoute[];
96
+ };
97
+ }
98
+
83
99
  export interface IReq_SyncGatewayClientRoute extends plugins.typedrequestInterfaces.implementsTR<
84
100
  plugins.typedrequestInterfaces.ITypedRequest,
85
101
  IReq_SyncGatewayClientRoute