@serve.zone/interfaces 11.1.1 → 11.2.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 +12 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/data/gateway.d.ts +13 -1
- package/package.json +2 -2
- package/readme.md +2 -2
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/data/gateway.ts +14 -1
package/changelog.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026-07-15 - 11.2.0
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- Support priority and managed-kind metadata on gateway routes.
|
|
8
|
+
- Allow combined `hostname` plus `routeRef` ownership so multiple managed routes for one hostname reconcile independently.
|
|
9
|
+
- Define the canonical `letsencrypt-http01-forward` managed route kind.
|
|
10
|
+
|
|
11
|
+
### Maintenance
|
|
12
|
+
|
|
13
|
+
- Update the release toolchain to pnpm 11.13.0 and Node.js types 26.1.1.
|
|
14
|
+
|
|
3
15
|
## 2026-07-13 - 11.1.1
|
|
4
16
|
|
|
5
17
|
### Fixes
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@serve.zone/interfaces',
|
|
6
|
-
version: '11.
|
|
6
|
+
version: '11.2.0',
|
|
7
7
|
description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHVGQUF1RjtDQUNyRyxDQUFBIn0=
|
|
@@ -3,6 +3,10 @@ import type { TDnsRecordType } from './dns.js';
|
|
|
3
3
|
* Type of platform acting as a gateway client against a gateway (dcrouter).
|
|
4
4
|
*/
|
|
5
5
|
export type TGatewayClientType = 'onebox' | 'cloudly' | 'custom';
|
|
6
|
+
/**
|
|
7
|
+
* Canonical managed route purposes understood by gateways.
|
|
8
|
+
*/
|
|
9
|
+
export type TManagedRouteKind = 'letsencrypt-http01-forward';
|
|
6
10
|
/**
|
|
7
11
|
* Identity attached to gateway requests. Gateways run their own user/auth
|
|
8
12
|
* domain (e.g. dcrouter operator accounts), so role/type stay open strings;
|
|
@@ -175,7 +179,11 @@ export interface IGatewayClientOwnership {
|
|
|
175
179
|
appId: string;
|
|
176
180
|
/** Hostname ownership for domain routes. Preserved for existing route keys. */
|
|
177
181
|
hostname?: string;
|
|
178
|
-
/**
|
|
182
|
+
/**
|
|
183
|
+
* Stable route key. Without hostname it identifies a non-domain route such as
|
|
184
|
+
* a public-port mapping. Together with hostname it distinguishes multiple
|
|
185
|
+
* managed routes for the same hostname.
|
|
186
|
+
*/
|
|
179
187
|
routeRef?: string;
|
|
180
188
|
}
|
|
181
189
|
/**
|
|
@@ -224,6 +232,10 @@ export interface IGatewayRouteConfig {
|
|
|
224
232
|
name: string;
|
|
225
233
|
match: IGatewayRouteMatch;
|
|
226
234
|
action: IGatewayRouteAction;
|
|
235
|
+
/** Higher values are matched first by the gateway. */
|
|
236
|
+
priority?: number;
|
|
237
|
+
/** Declares a canonical gateway-managed route purpose. */
|
|
238
|
+
managedRouteKind?: TManagedRouteKind;
|
|
227
239
|
remoteIngress?: {
|
|
228
240
|
enabled: boolean;
|
|
229
241
|
edgeFilter?: string[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serve.zone/interfaces",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.",
|
|
6
6
|
"exports": {
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"@git.zone/tsdoc": "^2.1.1",
|
|
20
20
|
"@git.zone/tsrun": "^2.0.5",
|
|
21
21
|
"@git.zone/tstest": "^3.6.6",
|
|
22
|
-
"@types/node": "^26.1.
|
|
22
|
+
"@types/node": "^26.1.1"
|
|
23
23
|
},
|
|
24
24
|
"files": [
|
|
25
25
|
"ts/**/*",
|
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`, `IGatewayClientRoute` client-owned route views
|
|
98
|
+
- Traffic and gateway route contracts including `ICoretrafficPortRouteConfig`, routing `portRoutes`, and `IGatewayClientRoute` client-owned route views. Gateway route intent supports optional match `domains`, `transport`, and `remoteIngress`, plus explicit route `priority` and `managedRouteKind`. Ownership can combine `hostname` with `routeRef` so a normal route and a path-specific managed route for the same hostname reconcile independently.
|
|
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.
|
|
@@ -140,7 +140,7 @@ interface IExampleRequest {
|
|
|
140
140
|
|
|
141
141
|
`requests.config.IRequest_Any_Cloudly_GetClusterConfig` accepts `data.IIdentityCredential`, which contains only the JWT needed for server-side identity resolution. Username/password login and machine-token exchange responses continue to return the full `data.IIdentity`.
|
|
142
142
|
|
|
143
|
-
Gateway request contracts include `getGatewayClientRoutes` (`requests.gateway.IReq_GetGatewayClientRoutes`) for listing owned `IGatewayClientRoute[]` route views, and `syncGatewayClientRoute` for idempotently syncing or deleting hostname-owned
|
|
143
|
+
Gateway request contracts include `getGatewayClientRoutes` (`requests.gateway.IReq_GetGatewayClientRoutes`) for listing owned `IGatewayClientRoute[]` route views, and `syncGatewayClientRoute` for idempotently syncing or deleting hostname-owned, routeRef-owned, and combined hostname-plus-routeRef routes. A client can label canonical intent with `managedRouteKind: 'letsencrypt-http01-forward'` and set a higher `priority` for a path-specific HTTP-01 route while retaining a separate normal route for the same hostname. Mail request contracts include `syncMailAddressBinding`, `deleteMailAddressBinding`, `rotateMailCredential`, and `getMailDeliveryStatus`. `IReq_GetMailDeliveryStatus` looks up a delivery spool item by `spoolItemId`, returns `data.IMailDeliveryStatus`, and accepts `IMailSubmissionRequestAuth` so service-mail credentials can query their own accepted, queued, deferred, delivered, or failed status. `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.
|
|
144
144
|
|
|
145
145
|
Request groups are exported by product area:
|
|
146
146
|
|
package/ts/00_commitinfo_data.ts
CHANGED
package/ts/data/gateway.ts
CHANGED
|
@@ -5,6 +5,11 @@ import type { TDnsRecordType } from './dns.js';
|
|
|
5
5
|
*/
|
|
6
6
|
export type TGatewayClientType = 'onebox' | 'cloudly' | 'custom';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Canonical managed route purposes understood by gateways.
|
|
10
|
+
*/
|
|
11
|
+
export type TManagedRouteKind = 'letsencrypt-http01-forward';
|
|
12
|
+
|
|
8
13
|
/**
|
|
9
14
|
* Identity attached to gateway requests. Gateways run their own user/auth
|
|
10
15
|
* domain (e.g. dcrouter operator accounts), so role/type stay open strings;
|
|
@@ -187,7 +192,11 @@ export interface IGatewayClientOwnership {
|
|
|
187
192
|
appId: string;
|
|
188
193
|
/** Hostname ownership for domain routes. Preserved for existing route keys. */
|
|
189
194
|
hostname?: string;
|
|
190
|
-
/**
|
|
195
|
+
/**
|
|
196
|
+
* Stable route key. Without hostname it identifies a non-domain route such as
|
|
197
|
+
* a public-port mapping. Together with hostname it distinguishes multiple
|
|
198
|
+
* managed routes for the same hostname.
|
|
199
|
+
*/
|
|
191
200
|
routeRef?: string;
|
|
192
201
|
}
|
|
193
202
|
|
|
@@ -241,6 +250,10 @@ export interface IGatewayRouteConfig {
|
|
|
241
250
|
name: string;
|
|
242
251
|
match: IGatewayRouteMatch;
|
|
243
252
|
action: IGatewayRouteAction;
|
|
253
|
+
/** Higher values are matched first by the gateway. */
|
|
254
|
+
priority?: number;
|
|
255
|
+
/** Declares a canonical gateway-managed route purpose. */
|
|
256
|
+
managedRouteKind?: TManagedRouteKind;
|
|
244
257
|
remoteIngress?: {
|
|
245
258
|
enabled: boolean;
|
|
246
259
|
edgeFilter?: string[];
|