@serve.zone/interfaces 19.2.0 → 19.3.1

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-24 - 19.3.1
4
+
5
+ ### Fixes
6
+
7
+ - align immutable placement repair with Cloudly's authenticated admin identity guard
8
+
9
+ ## 2026-07-24 - 19.3.0
10
+
11
+ ### Features
12
+
13
+ - add a fenced immutable-service placement repair contract (service)
14
+ - Require callers to fence the active rollout and rollout-status revision.
15
+ - Keep placement repair separate from generic immutable service updates.
16
+
3
17
  ## 2026-07-24 - 19.2.0
4
18
 
5
19
  ### Features
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/interfaces',
6
- version: '19.2.0',
6
+ version: '19.3.1',
7
7
  description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHVGQUF1RjtDQUNyRyxDQUFBIn0=
@@ -1,6 +1,7 @@
1
1
  import * as plugins from '../plugins.js';
2
2
  import type { IService } from '../data/service.js';
3
3
  import type { TServiceUpdateWritableData, TServiceWritableData } from '../data/service.js';
4
+ import type { IServicePlacement } from '../data/service.js';
4
5
  import type { IRegistryTarget } from '../data/registry.js';
5
6
  import type { IIdentity, IIdentityCredential } from '../data/user.js';
6
7
  import type { IImageRelease } from '../data/immutableimage.js';
@@ -218,6 +219,28 @@ export interface IRequest_Any_Cloudly_UpdateService extends plugins.typedrequest
218
219
  service: IService;
219
220
  };
220
221
  }
222
+ /**
223
+ * Narrow administrative repair for an immutable service whose persisted
224
+ * placement contradicts its already-active rollout target scope.
225
+ *
226
+ * The rollout and status fences make the mutation fail closed if runtime
227
+ * evidence changes between inspection and repair.
228
+ */
229
+ export interface IRequest_Any_Cloudly_RepairImmutableServicePlacement extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IRequest_Any_Cloudly_RepairImmutableServicePlacement> {
230
+ method: 'repairImmutableServicePlacement';
231
+ request: {
232
+ identity: IIdentity;
233
+ serviceId: string;
234
+ expectedRolloutId: string;
235
+ expectedRolloutGeneration: number;
236
+ expectedRolloutStatusUpdatedAt: number;
237
+ placement: IServicePlacement;
238
+ };
239
+ response: {
240
+ service: IService;
241
+ changed: boolean;
242
+ };
243
+ }
221
244
  export interface IRequest_Any_Cloudly_DeleteServiceById extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IRequest_Any_Cloudly_DeleteServiceById> {
222
245
  method: 'deleteServiceById';
223
246
  request: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serve.zone/interfaces",
3
- "version": "19.2.0",
3
+ "version": "19.3.1",
4
4
  "private": false,
5
5
  "description": "Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.",
6
6
  "exports": {
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/interfaces',
6
- version: '19.2.0',
6
+ version: '19.3.1',
7
7
  description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
8
8
  }
@@ -1,6 +1,7 @@
1
1
  import * as plugins from '../plugins.js';
2
2
  import type { IService } from '../data/service.js';
3
3
  import type { TServiceUpdateWritableData, TServiceWritableData } from '../data/service.js';
4
+ import type { IServicePlacement } from '../data/service.js';
4
5
  import type { IRegistryTarget } from '../data/registry.js';
5
6
  import type { IIdentity, IIdentityCredential } from '../data/user.js';
6
7
  import type { IServiceRessources } from '../data/docker.js';
@@ -326,6 +327,33 @@ extends plugins.typedrequestInterfaces.implementsTR<
326
327
  };
327
328
  }
328
329
 
330
+ /**
331
+ * Narrow administrative repair for an immutable service whose persisted
332
+ * placement contradicts its already-active rollout target scope.
333
+ *
334
+ * The rollout and status fences make the mutation fail closed if runtime
335
+ * evidence changes between inspection and repair.
336
+ */
337
+ export interface IRequest_Any_Cloudly_RepairImmutableServicePlacement
338
+ extends plugins.typedrequestInterfaces.implementsTR<
339
+ plugins.typedrequestInterfaces.ITypedRequest,
340
+ IRequest_Any_Cloudly_RepairImmutableServicePlacement
341
+ > {
342
+ method: 'repairImmutableServicePlacement';
343
+ request: {
344
+ identity: IIdentity;
345
+ serviceId: string;
346
+ expectedRolloutId: string;
347
+ expectedRolloutGeneration: number;
348
+ expectedRolloutStatusUpdatedAt: number;
349
+ placement: IServicePlacement;
350
+ };
351
+ response: {
352
+ service: IService;
353
+ changed: boolean;
354
+ };
355
+ }
356
+
329
357
  export interface IRequest_Any_Cloudly_DeleteServiceById
330
358
  extends plugins.typedrequestInterfaces.implementsTR<
331
359
  plugins.typedrequestInterfaces.ITypedRequest,