@serve.zone/interfaces 31.9.0 → 32.0.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.
Files changed (203) hide show
  1. package/changelog.md +476 -0
  2. package/dist_ts/00_commitinfo_data.js +3 -3
  3. package/dist_ts/appstore/types.d.ts +4 -6
  4. package/dist_ts/appstore/types.js +5 -5
  5. package/dist_ts/data/backup.d.ts +3 -26
  6. package/dist_ts/data/cluster.d.ts +36 -11
  7. package/dist_ts/data/cluster.js +33 -22
  8. package/dist_ts/data/clusteringress.d.ts +8 -0
  9. package/dist_ts/data/clusteringress.js +13 -8
  10. package/dist_ts/data/clusternode.d.ts +121 -74
  11. package/dist_ts/data/clusternode.js +109 -132
  12. package/dist_ts/data/coremail.d.ts +3 -7
  13. package/dist_ts/data/coremail.js +2 -2
  14. package/dist_ts/data/coremail.runtime.d.ts +0 -1
  15. package/dist_ts/data/coremail.runtime.js +5 -22
  16. package/dist_ts/data/deploymentadoption.d.ts +0 -2
  17. package/dist_ts/data/deploymentadoption.js +40 -6
  18. package/dist_ts/data/deploymentoperation.js +16 -3
  19. package/dist_ts/data/deploymentpreflight.d.ts +0 -2
  20. package/dist_ts/data/deploymentpreflight.js +1 -1
  21. package/dist_ts/data/immutableimage.d.ts +38 -21
  22. package/dist_ts/data/immutableimage.js +45 -5
  23. package/dist_ts/data/index.d.ts +1 -1
  24. package/dist_ts/data/isolatedrestore.d.ts +139 -21
  25. package/dist_ts/data/isolatedrestore.golden.d.ts +0 -1
  26. package/dist_ts/data/isolatedrestore.golden.js +6 -9
  27. package/dist_ts/data/isolatedrestore.js +176 -40
  28. package/dist_ts/data/mail.d.ts +1 -1
  29. package/dist_ts/data/networkaddressplan.d.ts +8 -8
  30. package/dist_ts/data/networkaddressplan.js +4 -4
  31. package/dist_ts/data/networkauthority.d.ts +20 -22
  32. package/dist_ts/data/networkauthority.js +26 -28
  33. package/dist_ts/data/networkcredential.d.ts +10 -10
  34. package/dist_ts/data/networkcredential.js +16 -16
  35. package/dist_ts/data/networkdelivery.d.ts +18 -18
  36. package/dist_ts/data/networkdelivery.js +16 -16
  37. package/dist_ts/data/networklease.d.ts +18 -7
  38. package/dist_ts/data/networklease.js +29 -7
  39. package/dist_ts/data/networknode.d.ts +2 -2
  40. package/dist_ts/data/networkprojection.d.ts +59 -60
  41. package/dist_ts/data/networkprojection.js +53 -57
  42. package/dist_ts/data/networkprotection.d.ts +27 -28
  43. package/dist_ts/data/networkprotection.js +36 -36
  44. package/dist_ts/data/networkrouter.d.ts +11 -11
  45. package/dist_ts/data/networkrouter.js +1 -1
  46. package/dist_ts/data/networksigning.d.ts +16 -18
  47. package/dist_ts/data/networksigning.js +20 -21
  48. package/dist_ts/data/nodecredential.d.ts +4 -6
  49. package/dist_ts/data/nodeenrollment.d.ts +35 -40
  50. package/dist_ts/data/nodeenrollment.js +57 -72
  51. package/dist_ts/data/privatenetwork.d.ts +21 -24
  52. package/dist_ts/data/privatenetwork.js +39 -54
  53. package/dist_ts/data/runtimeassignment.d.ts +50 -34
  54. package/dist_ts/data/runtimeassignment.js +79 -45
  55. package/dist_ts/data/runtimeconfig.d.ts +21 -22
  56. package/dist_ts/data/runtimeconfig.js +24 -24
  57. package/dist_ts/data/runtimesession.d.ts +100 -62
  58. package/dist_ts/data/runtimesession.js +98 -79
  59. package/dist_ts/data/runtimeterminalreceipt.d.ts +28 -29
  60. package/dist_ts/data/runtimeterminalreceipt.js +42 -42
  61. package/dist_ts/data/secret.d.ts +18 -25
  62. package/dist_ts/data/secret.js +12 -52
  63. package/dist_ts/data/servicecredential.d.ts +14 -16
  64. package/dist_ts/data/servicecredential.js +17 -28
  65. package/dist_ts/data/serviceruntime.d.ts +7 -7
  66. package/dist_ts/data/serviceruntime.js +4 -4
  67. package/dist_ts/data/sparknodereport.d.ts +27 -14
  68. package/dist_ts/data/sparknodereport.js +35 -28
  69. package/dist_ts/data/webpush.d.ts +0 -1
  70. package/dist_ts/index.d.ts +2 -1
  71. package/dist_ts/index.js +3 -2
  72. package/dist_ts/platform/objectstorageretention.d.ts +21 -24
  73. package/dist_ts/platform/objectstorageretention.js +10 -17
  74. package/dist_ts/platform/storage.d.ts +1 -3
  75. package/dist_ts/platform/storagemigration.d.ts +0 -7
  76. package/dist_ts/platform/storagemigration.golden.d.ts +0 -1
  77. package/dist_ts/platform/storagemigration.golden.js +8 -12
  78. package/dist_ts/platform/storagemigration.js +6 -51
  79. package/dist_ts/platform/types.d.ts +2 -2
  80. package/dist_ts/private/canonicaljson.d.ts +9 -1
  81. package/dist_ts/private/canonicaljson.js +14 -2
  82. package/dist_ts/private/dataproperties.d.ts +62 -0
  83. package/dist_ts/private/dataproperties.js +117 -0
  84. package/dist_ts/private/networkcontract.d.ts +10 -10
  85. package/dist_ts/private/networkcontract.js +1 -1
  86. package/dist_ts/private/releaseversion.d.ts +37 -0
  87. package/dist_ts/private/releaseversion.js +48 -0
  88. package/dist_ts/private/runtimepolicy.d.ts +2 -2
  89. package/dist_ts/private/runtimepolicy.js +1 -1
  90. package/dist_ts/private/tokenlist.d.ts +9 -0
  91. package/dist_ts/private/tokenlist.js +23 -0
  92. package/dist_ts/protocol.d.ts +137 -0
  93. package/dist_ts/protocol.js +255 -0
  94. package/dist_ts/requests/admin.d.ts +8 -8
  95. package/dist_ts/requests/backup.d.ts +102 -112
  96. package/dist_ts/requests/cluster.d.ts +10 -10
  97. package/dist_ts/requests/clusteringress.d.ts +9 -0
  98. package/dist_ts/requests/clusteringress.js +1 -1
  99. package/dist_ts/requests/config.d.ts +3 -3
  100. package/dist_ts/requests/corestore.d.ts +0 -3
  101. package/dist_ts/requests/corestore.js +5 -9
  102. package/dist_ts/requests/network.d.ts +30 -30
  103. package/dist_ts/requests/node.d.ts +15 -28
  104. package/dist_ts/requests/pallet.d.ts +13 -13
  105. package/dist_ts/requests/runtimesession.d.ts +53 -41
  106. package/dist_ts/requests/secret.d.ts +4 -5
  107. package/dist_ts/requests/secret.js +1 -5
  108. package/dist_ts/runtime.corestore.d.ts +56 -74
  109. package/dist_ts/runtime.corestore.databaseexportpackage.d.ts +30 -36
  110. package/dist_ts/runtime.corestore.databaseexportpackage.golden.d.ts +11 -12
  111. package/dist_ts/runtime.corestore.databaseexportpackage.golden.js +54 -71
  112. package/dist_ts/runtime.corestore.databaseexportpackage.js +9 -25
  113. package/dist_ts/runtime.corestore.js +35 -135
  114. package/dist_ts/runtime.corestore.relay.js +2 -7
  115. package/dist_ts/runtime.d.ts +38 -48
  116. package/dist_ts/runtime.js +20 -77
  117. package/dist_ts/runtime.networkprojection.d.ts +4 -4
  118. package/dist_ts/runtime.networkprojection.js +18 -18
  119. package/dist_ts/runtime.workloadinit.d.ts +23 -24
  120. package/dist_ts/runtime.workloadinit.js +6 -13
  121. package/package.json +2 -2
  122. package/readme.md +421 -270
  123. package/ts/00_commitinfo_data.ts +3 -3
  124. package/ts/appstore/types.ts +4 -6
  125. package/ts/data/backup.ts +3 -38
  126. package/ts/data/cluster.ts +51 -34
  127. package/ts/data/clusteringress.ts +12 -12
  128. package/ts/data/clusternode.ts +204 -232
  129. package/ts/data/coremail.runtime.ts +4 -21
  130. package/ts/data/coremail.ts +3 -7
  131. package/ts/data/deploymentadoption.ts +46 -4
  132. package/ts/data/deploymentoperation.ts +16 -1
  133. package/ts/data/deploymentpreflight.ts +0 -2
  134. package/ts/data/immutableimage.ts +71 -24
  135. package/ts/data/index.ts +1 -1
  136. package/ts/data/isolatedrestore.golden.ts +5 -9
  137. package/ts/data/isolatedrestore.ts +339 -54
  138. package/ts/data/mail.ts +1 -1
  139. package/ts/data/networkaddressplan.ts +13 -13
  140. package/ts/data/networkauthority.ts +42 -46
  141. package/ts/data/networkcredential.ts +24 -24
  142. package/ts/data/networkdelivery.ts +27 -27
  143. package/ts/data/networklease.ts +40 -13
  144. package/ts/data/networknode.ts +2 -2
  145. package/ts/data/networkprojection.ts +119 -124
  146. package/ts/data/networkprotection.ts +54 -55
  147. package/ts/data/networkrouter.ts +14 -14
  148. package/ts/data/networksigning.ts +29 -32
  149. package/ts/data/nodecredential.ts +4 -6
  150. package/ts/data/nodeenrollment.ts +96 -114
  151. package/ts/data/privatenetwork.ts +58 -74
  152. package/ts/data/runtimeassignment.ts +143 -94
  153. package/ts/data/runtimeconfig.ts +45 -46
  154. package/ts/data/runtimesession.ts +185 -138
  155. package/ts/data/runtimeterminalreceipt.ts +72 -73
  156. package/ts/data/secret.ts +28 -76
  157. package/ts/data/servicecredential.ts +33 -43
  158. package/ts/data/serviceruntime.ts +11 -11
  159. package/ts/data/sparknodereport.ts +48 -36
  160. package/ts/data/webpush.ts +0 -1
  161. package/ts/index.ts +2 -0
  162. package/ts/platform/objectstorageretention.ts +40 -54
  163. package/ts/platform/storage.ts +1 -3
  164. package/ts/platform/storagemigration.golden.ts +7 -11
  165. package/ts/platform/storagemigration.ts +5 -55
  166. package/ts/platform/types.ts +2 -2
  167. package/ts/private/canonicaljson.ts +13 -1
  168. package/ts/private/dataproperties.ts +139 -0
  169. package/ts/private/networkcontract.ts +9 -9
  170. package/ts/private/releaseversion.ts +70 -0
  171. package/ts/private/runtimepolicy.ts +2 -2
  172. package/ts/private/tokenlist.ts +30 -0
  173. package/ts/protocol.ts +364 -0
  174. package/ts/requests/admin.ts +11 -11
  175. package/ts/requests/backup.ts +112 -117
  176. package/ts/requests/cluster.ts +13 -13
  177. package/ts/requests/clusteringress.ts +9 -0
  178. package/ts/requests/config.ts +3 -3
  179. package/ts/requests/corestore.ts +4 -16
  180. package/ts/requests/network.ts +40 -40
  181. package/ts/requests/node.ts +21 -38
  182. package/ts/requests/pallet.ts +17 -17
  183. package/ts/requests/runtimesession.ts +63 -51
  184. package/ts/requests/secret.ts +5 -10
  185. package/ts/runtime.corestore.databaseexportpackage.golden.ts +77 -95
  186. package/ts/runtime.corestore.databaseexportpackage.ts +51 -73
  187. package/ts/runtime.corestore.relay.ts +1 -10
  188. package/ts/runtime.corestore.ts +118 -268
  189. package/ts/runtime.networkprojection.ts +30 -30
  190. package/ts/runtime.ts +83 -158
  191. package/ts/runtime.workloadinit.ts +36 -48
  192. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.d.ts +0 -902
  193. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.golden.d.ts +0 -35
  194. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.golden.js +0 -315
  195. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.js +0 -3315
  196. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.d.ts +0 -291
  197. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.golden.d.ts +0 -30
  198. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.golden.js +0 -408
  199. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.js +0 -1126
  200. package/ts/runtime.cloudlylegacydeploymentsettlement.golden.ts +0 -421
  201. package/ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.golden.ts +0 -510
  202. package/ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.ts +0 -2470
  203. package/ts/runtime.cloudlylegacydeploymentsettlement.ts +0 -6630
@@ -1,5 +1,6 @@
1
1
  import * as plugins from '../plugins.js';
2
- import type { IArchivePruneResult, IArchiveRetentionPolicy, IBackupArchiveManifest, IBackupArchiveObject, IBackupRecord, IBackupReplicationResult, IIsolatedRestoreNodeState, IIsolatedRestoreRecord, TBackupSnapshot, TIsolatedRestoreResourceMapping } from '../data/backup.js';
2
+ import type { IArchivePruneResult, IArchiveRetentionPolicy, IBackupArchiveManifest, IBackupArchiveObject, IBackupRecord, IBackupReplicationResult, IIsolatedRestoreRecord, TBackupSnapshot } from '../data/backup.js';
3
+ import type { IIsolatedRestoreControlCleanupRequest, IIsolatedRestoreControlExecuteRequest, IIsolatedRestoreControlPrepareRequest, IIsolatedRestoreControlStatusRequest, IIsolatedRestoreControlWriteRequest, IIsolatedRestoreProgress } from '../data/isolatedrestore.js';
3
4
  import type { IService } from '../data/service.js';
4
5
  import type { IIdentity, IIdentityCredential } from '../data/user.js';
5
6
  import type { ICorestoreDatabaseClosureDescriptor } from '../runtime.corestore.relay.js';
@@ -299,7 +300,14 @@ export interface IReq_Any_Cloudly_CreateIsolatedRestore extends plugins.typedreq
299
300
  /** Cloudly verifies this credential and derives all actor claims server-side. */
300
301
  identity: IIdentityCredential;
301
302
  sourceBackupId: string;
302
- targetNodeName: string;
303
+ /**
304
+ * The cluster node this restore is dispatched to, as the cluster document names it.
305
+ *
306
+ * Cloudly signs the restore grant for the `targetNodeName` that node carries, and every
307
+ * control call is routed by this id: the name is what the operator's grant authorizes, the id
308
+ * is what the relay routes on, and Cloudly is the one party that holds both.
309
+ */
310
+ targetNodeId: string;
303
311
  purpose: string;
304
312
  /** Caller-generated key; retries return the original restore. */
305
313
  idempotencyKey: string;
@@ -313,6 +321,8 @@ export interface IReq_Any_Cloudly_CreateIsolatedRestore extends plugins.typedreq
313
321
  id?: never;
314
322
  /** Alias-like caller input is forbidden as well. */
315
323
  restoreId?: never;
324
+ /** Derived from the node the restore is dispatched to; the grant carries it. */
325
+ targetNodeName?: never;
316
326
  /** Legacy runnable-service targeting is forbidden. */
317
327
  targetServiceId?: never;
318
328
  /** Generated by Cloudly. Explicitly forbidden as caller input. */
@@ -334,6 +344,9 @@ export interface IReq_Any_Cloudly_GetIsolatedRestores extends plugins.typedreque
334
344
  sourceBackupId?: string;
335
345
  sourceServiceId?: string;
336
346
  clusterId?: string;
347
+ /** The node the restore is dispatched to. */
348
+ targetNodeId?: string;
349
+ /** The node name the restore grant authorizes. */
337
350
  targetNodeName?: string;
338
351
  scratchNamespaceId?: string;
339
352
  status?: IIsolatedRestoreRecord['status'];
@@ -361,147 +374,124 @@ export interface IReq_Any_Cloudly_GetIsolatedRestoreById extends plugins.typedre
361
374
  };
362
375
  }
363
376
  /**
364
- * Prepares and stages one isolated restore on an exact cluster node. A missing
365
- * node state has revision 0; successful mutation returns the next revision.
377
+ * Carrying one isolated-restore control to one exact node of this cluster.
378
+ *
379
+ * Five contracts share one shape: `nodeId` names the node of this cluster, `control` is the body
380
+ * Corestore reads, and the answer is what that node states about the restore. The relay is a
381
+ * carrier: it forwards the control untouched, adds nothing to it and reads nothing out of it. The
382
+ * signed `restoreGrant` inside is the only authority Corestore accepts on these routes — it names
383
+ * the operation, expires within minutes, and binds the cluster, the node name, the canonical
384
+ * resource mappings and the archive manifest — so a relay can carry it but can neither widen it
385
+ * nor mint one.
386
+ *
387
+ * The node is a request field because one relay serves every node of its cluster over one
388
+ * session: the connection that answers proves which cluster is speaking, never which node is
389
+ * meant. No identity field: the cluster is the one the verified machine identity on the session
390
+ * `registerCloudlyClientSession` opened names, exactly as `getClusterRouteTable` and
391
+ * `getClusterPlatformDesiredState` work, and a request-level identity would be a second authority
392
+ * for the same fact, and the weaker of the two. No protocol offer either: that handshake exchanged
393
+ * one, and the relay stated its own again in `registerClusterRelay`'s `protocol` member, so
394
+ * neither fact belongs on a request.
395
+ *
396
+ * Sensitive ephemeral input on all five: the control carries a bearer grant, so exclude the
397
+ * complete request from hooks, logs, diagnostics and durable journals on every hop.
398
+ *
399
+ * A relay that cannot reach the node answers one of `data.isolatedRestoreNodeControlRefusals`
400
+ * instead of a progress; everything Corestore itself refused arrives under
401
+ * `restore-node-refused` with Corestore's own reason.
366
402
  */
367
- export interface IReq_Cloudly_Coreflow_PrepareIsolatedRestore extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_Coreflow_PrepareIsolatedRestore> {
368
- method: 'coreflowPrepareIsolatedRestore';
403
+ export interface IReq_Cloudly_Relay_PrepareIsolatedRestoreOnNode extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_Relay_PrepareIsolatedRestoreOnNode> {
404
+ method: 'prepareIsolatedRestoreOnNode';
369
405
  request: {
370
- /**
371
- * The compact RS256 restore grant Cloudly signed for exactly this
372
- * operation, carried untouched to Corestore.
373
- *
374
- * Corestore accepts no other authority on an isolated-restore route: the
375
- * grant names the operation, expires within minutes, and binds the cluster,
376
- * the node, the canonical resource mappings and the archive manifest, so a
377
- * relay can carry it but can neither widen it nor mint one. Sensitive
378
- * ephemeral input: exclude the complete request from hooks, logs and
379
- * journals on every hop.
380
- */
381
- restoreGrant: string;
382
- clusterId: string;
383
- targetNodeName: string;
384
- restoreId: string;
385
- expectedRevision: number;
386
- sourceBackupId: string;
387
- sourceServiceId: string;
388
- scratchNamespaceId: string;
389
- stagingArchiveId: string;
390
- resourceMappings: TIsolatedRestoreResourceMapping[];
391
- archiveManifest: IBackupArchiveManifest;
406
+ /** The cluster node whose Corestore stages this restore. */
407
+ nodeId: string;
408
+ /** `expectedRevision` is 0 for a restore this node does not hold yet; a replay returns its state. */
409
+ control: IIsolatedRestoreControlPrepareRequest;
392
410
  };
393
411
  response: {
394
- state: IIsolatedRestoreNodeState;
412
+ progress: IIsolatedRestoreProgress;
395
413
  };
396
414
  }
397
415
  /**
398
- * Cloudly stages one archive object of an isolated restore on the relay's node.
416
+ * Cloudly stages one bounded chunk of one archive object on the relay's node.
417
+ *
418
+ * Cloudly holds the source backup, so these bytes travel Cloudly → relay → Corestore, one chunk
419
+ * per call as `data.isolatedRestoreContractLimits` bounds them: at most 512 KiB decoded per chunk,
420
+ * 4,096 chunks per object and 64 MiB per object. The chunk states the complete object — `path`,
421
+ * `size`, `sha256` — and authenticates its own bytes with `chunkSha256`, so a replayed chunk
422
+ * settles on the same bytes and a completed object is proved rather than assumed. The answer's
423
+ * `stagedObject` says where the next chunk continues, which is what lets an interrupted staging
424
+ * run resume at the byte the node already holds.
399
425
  *
400
- * Cloudly holds the source backup, so these bytes travel Cloudly → relay and
401
- * the requester is the sender. One object per call, as the archive manifest
402
- * lists it: Corestore writes staged objects under a `write-object` grant, one
403
- * bounded chunk at a time, and the relay is what turns this stream into those
404
- * chunks. The object descriptor is the manifest entry itself — path, exact size
405
- * and digest — so the relay can prove the complete object before it counts as
406
- * written, and so a replayed stage settles on the same bytes.
426
+ * That answer is a projection of Corestore's own: `path`, `nextOffset` and `completed` are top
427
+ * level on Corestore's write answer and become `stagedObject` here, Corestore's own `object`
428
+ * member is the received-object receipt it stored and is not carried, and the extra members the
429
+ * mutating routes add (`written`, `restored`, `ok`, `stagingArchiveDeleted`, `alreadyAbsent`) are
430
+ * dropped, so all five contracts answer the one shape a node can state.
431
+ *
432
+ * Sensitive ephemeral input; see `prepareIsolatedRestoreOnNode`.
407
433
  */
408
434
  export interface IReq_Cloudly_Relay_StageIsolatedRestoreArchive extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_Relay_StageIsolatedRestoreArchive> {
409
435
  method: 'stageIsolatedRestoreArchive';
410
436
  request: {
411
- /**
412
- * The compact RS256 restore grant for the `write-object` operation, carried
413
- * untouched to Corestore. Sensitive ephemeral input, like every other
414
- * grant on these routes.
415
- */
416
- restoreGrant: string;
417
- clusterId: string;
418
- targetNodeName: string;
419
- restoreId: string;
420
- expectedRevision: number;
421
- /** The manifest entry these bytes complete: `path`, `size`, `sha256`. */
422
- object: IBackupArchiveObject;
423
- /** Requester sends the object bytes; the TypedHandler receives them. */
424
- archive: plugins.typedrequestInterfaces.TVirtualStream<'send'>;
437
+ /** The cluster node whose Corestore holds the staging tree. */
438
+ nodeId: string;
439
+ control: IIsolatedRestoreControlWriteRequest;
425
440
  };
426
441
  response: {
427
- state: IIsolatedRestoreNodeState;
442
+ progress: IIsolatedRestoreProgress;
428
443
  };
429
444
  }
430
- /** Read-only status for one exact cluster/node/restore routing key. */
431
- export interface IReq_Cloudly_Coreflow_GetIsolatedRestoreStatus extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_Coreflow_GetIsolatedRestoreStatus> {
432
- method: 'coreflowGetIsolatedRestoreStatus';
445
+ /** Reads what one node holds for a restore, without changing it; see `prepareIsolatedRestoreOnNode`. */
446
+ export interface IReq_Cloudly_Relay_GetIsolatedRestoreProgressOnNode extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_Relay_GetIsolatedRestoreProgressOnNode> {
447
+ method: 'getIsolatedRestoreProgressOnNode';
433
448
  request: {
434
- /**
435
- * The compact RS256 restore grant Cloudly signed for exactly this
436
- * operation, carried untouched to Corestore.
437
- *
438
- * Corestore accepts no other authority on an isolated-restore route: the
439
- * grant names the operation, expires within minutes, and binds the cluster,
440
- * the node, the canonical resource mappings and the archive manifest, so a
441
- * relay can carry it but can neither widen it nor mint one. Sensitive
442
- * ephemeral input: exclude the complete request from hooks, logs and
443
- * journals on every hop.
444
- */
445
- restoreGrant: string;
446
- clusterId: string;
447
- targetNodeName: string;
448
- restoreId: string;
449
+ /** The cluster node whose Corestore is read. */
450
+ nodeId: string;
451
+ control: IIsolatedRestoreControlStatusRequest;
449
452
  };
450
453
  response: {
451
- found: boolean;
452
- state?: IIsolatedRestoreNodeState;
454
+ progress: IIsolatedRestoreProgress;
453
455
  };
454
456
  }
455
- export interface IReq_Cloudly_Coreflow_ExecuteIsolatedRestore extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_Coreflow_ExecuteIsolatedRestore> {
456
- method: 'coreflowExecuteIsolatedRestore';
457
+ /**
458
+ * Restores every staged mapping into the scratch namespace on that node.
459
+ *
460
+ * `executed` requires every mapping of the plan to be completed, and a run that stopped answers
461
+ * `failed` with its staging tree intact, so the caller can read the progress and clean up rather
462
+ * than guess what is on the node.
463
+ *
464
+ * Sensitive ephemeral input; see `prepareIsolatedRestoreOnNode`.
465
+ */
466
+ export interface IReq_Cloudly_Relay_ExecuteIsolatedRestoreOnNode extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_Relay_ExecuteIsolatedRestoreOnNode> {
467
+ method: 'executeIsolatedRestoreOnNode';
457
468
  request: {
458
- /**
459
- * The compact RS256 restore grant Cloudly signed for exactly this
460
- * operation, carried untouched to Corestore.
461
- *
462
- * Corestore accepts no other authority on an isolated-restore route: the
463
- * grant names the operation, expires within minutes, and binds the cluster,
464
- * the node, the canonical resource mappings and the archive manifest, so a
465
- * relay can carry it but can neither widen it nor mint one. Sensitive
466
- * ephemeral input: exclude the complete request from hooks, logs and
467
- * journals on every hop.
468
- */
469
- restoreGrant: string;
470
- clusterId: string;
471
- targetNodeName: string;
472
- restoreId: string;
473
- expectedRevision: number;
469
+ /** The cluster node that runs the restore. */
470
+ nodeId: string;
471
+ control: IIsolatedRestoreControlExecuteRequest;
474
472
  };
475
473
  response: {
476
- state: IIsolatedRestoreNodeState;
474
+ progress: IIsolatedRestoreProgress;
477
475
  };
478
476
  }
479
477
  /**
480
- * Idempotent cleanup mutation. A cleanup-failed state remains retryable and
481
- * does not authorize release of the source-backup hold.
478
+ * Idempotent cleanup of everything this restore left on that node.
479
+ *
480
+ * A node that already cleaned up answers `cleaned` again rather than refusing, and a cleanup that
481
+ * failed stays retryable: the source-backup hold is released by the control plane only once a node
482
+ * states `cleaned`.
483
+ *
484
+ * Sensitive ephemeral input; see `prepareIsolatedRestoreOnNode`.
482
485
  */
483
- export interface IReq_Cloudly_Coreflow_CleanupIsolatedRestore extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_Coreflow_CleanupIsolatedRestore> {
484
- method: 'coreflowCleanupIsolatedRestore';
486
+ export interface IReq_Cloudly_Relay_CleanupIsolatedRestoreOnNode extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_Relay_CleanupIsolatedRestoreOnNode> {
487
+ method: 'cleanupIsolatedRestoreOnNode';
485
488
  request: {
486
- /**
487
- * The compact RS256 restore grant Cloudly signed for exactly this
488
- * operation, carried untouched to Corestore.
489
- *
490
- * Corestore accepts no other authority on an isolated-restore route: the
491
- * grant names the operation, expires within minutes, and binds the cluster,
492
- * the node, the canonical resource mappings and the archive manifest, so a
493
- * relay can carry it but can neither widen it nor mint one. Sensitive
494
- * ephemeral input: exclude the complete request from hooks, logs and
495
- * journals on every hop.
496
- */
497
- restoreGrant: string;
498
- clusterId: string;
499
- targetNodeName: string;
500
- restoreId: string;
501
- expectedRevision: number;
489
+ /** The cluster node whose staging tree and scratch resources are removed. */
490
+ nodeId: string;
491
+ control: IIsolatedRestoreControlCleanupRequest;
502
492
  };
503
493
  response: {
504
- state: IIsolatedRestoreNodeState;
494
+ progress: IIsolatedRestoreProgress;
505
495
  };
506
496
  }
507
497
  /**
@@ -59,14 +59,14 @@ export interface IReq_Any_Cloudly_UpdateCluster extends plugins.typedrequestInte
59
59
  * The response carries the block Cloudly published, which is the same block every cluster-side
60
60
  * component then reads from `ICluster.data.relay`.
61
61
  */
62
- export interface IReq_Any_Cloudly_EnableClusterRelayV1 extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_EnableClusterRelayV1> {
63
- method: 'enableClusterRelayV1';
62
+ export interface IReq_Any_Cloudly_EnableClusterRelay extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_EnableClusterRelay> {
63
+ method: 'enableClusterRelay';
64
64
  request: {
65
65
  identity: userInterfaces.IIdentity;
66
66
  clusterId: string;
67
67
  };
68
68
  response: {
69
- relay: clusterInterfaces.IClusterRelayV1;
69
+ relay: clusterInterfaces.IClusterRelay;
70
70
  };
71
71
  }
72
72
  /**
@@ -76,8 +76,8 @@ export interface IReq_Any_Cloudly_EnableClusterRelayV1 extends plugins.typedrequ
76
76
  * the response rather than absent: the caller learns that the block is gone, not that the
77
77
  * response forgot it.
78
78
  */
79
- export interface IReq_Any_Cloudly_DisableClusterRelayV1 extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_DisableClusterRelayV1> {
80
- method: 'disableClusterRelayV1';
79
+ export interface IReq_Any_Cloudly_DisableClusterRelay extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_DisableClusterRelay> {
80
+ method: 'disableClusterRelay';
81
81
  request: {
82
82
  identity: userInterfaces.IIdentity;
83
83
  clusterId: string;
@@ -106,14 +106,14 @@ export interface IReq_Any_Cloudly_GetClusterRelayRegistrations extends plugins.t
106
106
  /**
107
107
  * The cluster relay tells Cloudly where it listens, over its own authenticated socket.
108
108
  *
109
- * Sent after `registerCloudlyClientSessionV1`, so the cluster is the one the verified machine
109
+ * Sent after `registerCloudlyClientSession`, so the cluster is the one the verified machine
110
110
  * identity on that socket names and is never a request field. `Relay` names the role, not a
111
111
  * component: whichever process fills it for a cluster sends this.
112
112
  */
113
- export interface IReq_Relay_Cloudly_RegisterClusterRelayV1 extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Relay_Cloudly_RegisterClusterRelayV1> {
114
- method: 'registerClusterRelayV1';
115
- request: clusterInterfaces.IClusterRelayRegistrationV1;
116
- response: clusterInterfaces.IClusterRelayRegistrationResponseV1;
113
+ export interface IReq_Relay_Cloudly_RegisterClusterRelay extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Relay_Cloudly_RegisterClusterRelay> {
114
+ method: 'registerClusterRelay';
115
+ request: clusterInterfaces.IRegisterClusterRelayRequest;
116
+ response: clusterInterfaces.IRegisterClusterRelayResponse;
117
117
  }
118
118
  /**
119
119
  * Cloudly hands the cluster relay the DNS lease renewals it has signed ahead of time for one node.
@@ -1,4 +1,5 @@
1
1
  import * as clusterIngressInterfaces from '../data/clusteringress.js';
2
+ import type { IProtocolOffer } from '../protocol.js';
2
3
  import * as plugins from '../plugins.js';
3
4
  /**
4
5
  * Cloudly hands a cluster's relay the table its ingress serves.
@@ -56,6 +57,10 @@ export interface IReq_Relay_Cloudly_GetClusterRouteTable extends plugins.typedre
56
57
  * `revision` is the table the relay holds, so an accepted ingress knows at once
57
58
  * whether it has to fetch one. Cloudly answers `null`: the table is the relay's
58
59
  * to state, not Cloudly's to echo.
60
+ *
61
+ * Both hops judge the body in the one server order `protocol.readProtocolOffer`
62
+ * states, negotiating before the bearer is verified, as the shape states at
63
+ * `validateClusterIngressRegistration`.
59
64
  */
60
65
  export interface IReq_Ingress_Relay_Cloudly_RegisterClusterIngress extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Ingress_Relay_Cloudly_RegisterClusterIngress> {
61
66
  method: 'registerClusterIngress';
@@ -72,10 +77,14 @@ export interface IReq_Ingress_Relay_Cloudly_RegisterClusterIngress extends plugi
72
77
  nodeId: string;
73
78
  /** Optional capability names; an ingress that states none states nothing. */
74
79
  capabilities?: string[];
80
+ /** Read and negotiated by the relay and by Cloudly before the bearer is verified. */
81
+ protocol: IProtocolOffer;
75
82
  };
76
83
  response: {
77
84
  accepted: true;
78
85
  revision: number | null;
86
+ /** The offer of the side that accepted, so an ingress judges the session it opened. */
87
+ protocol: IProtocolOffer;
79
88
  };
80
89
  }
81
90
  /**
@@ -1,3 +1,3 @@
1
1
  import * as clusterIngressInterfaces from '../data/clusteringress.js';
2
2
  import * as plugins from '../plugins.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3RlcmluZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9yZXF1ZXN0cy9jbHVzdGVyaW5ncmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssd0JBQXdCLE1BQU0sMkJBQTJCLENBQUM7QUFDdEUsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUMifQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3RlcmluZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9yZXF1ZXN0cy9jbHVzdGVyaW5ncmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssd0JBQXdCLE1BQU0sMkJBQTJCLENBQUM7QUFFdEUsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUMifQ==
@@ -3,7 +3,7 @@ import * as clusterInterfaces from '../data/cluster.js';
3
3
  import * as userInterfaces from '../data/user.js';
4
4
  import type { IService } from '../data/service.js';
5
5
  import type { IPlatformBinding, IPlatformProviderConfig } from '../platform/types.js';
6
- import type { ICorestoreCredentialPublicationGrantV1 } from '../runtime.corestore.js';
6
+ import type { ICorestoreCredentialPublicationGrant } from '../runtime.corestore.js';
7
7
  export interface IRequest_Any_Cloudly_GetClusterConfig extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IRequest_Any_Cloudly_GetClusterConfig> {
8
8
  method: 'getClusterConfig';
9
9
  request: {
@@ -14,7 +14,7 @@ export interface IRequest_Any_Cloudly_GetClusterConfig extends plugins.typedrequ
14
14
  services: IService[];
15
15
  platformProviderConfigs?: IPlatformProviderConfig[];
16
16
  platformBindings?: IPlatformBinding[];
17
- corestoreCredentialPublicationGrants?: ICorestoreCredentialPublicationGrantV1[];
17
+ corestoreCredentialPublicationGrants?: ICorestoreCredentialPublicationGrant[];
18
18
  };
19
19
  }
20
20
  export interface IRequest_Cloudly_Coreflow_PushClusterConfig extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IRequest_Cloudly_Coreflow_PushClusterConfig> {
@@ -24,7 +24,7 @@ export interface IRequest_Cloudly_Coreflow_PushClusterConfig extends plugins.typ
24
24
  services: IService[];
25
25
  platformProviderConfigs?: IPlatformProviderConfig[];
26
26
  platformBindings?: IPlatformBinding[];
27
- corestoreCredentialPublicationGrants?: ICorestoreCredentialPublicationGrantV1[];
27
+ corestoreCredentialPublicationGrants?: ICorestoreCredentialPublicationGrant[];
28
28
  };
29
29
  response: {};
30
30
  }
@@ -27,7 +27,6 @@ export interface ICorestoreServiceResources {
27
27
  export interface ICorestoreNodeInventory {
28
28
  /** Swarm node hostnames of the reporting coreflow. */
29
29
  nodeNames: string[];
30
- protocolVersion: 1;
31
30
  checkedAt: number;
32
31
  reachable: boolean;
33
32
  errorCode?: 'NODE_DISCOVERY_FAILED' | 'CORESTORE_UNREACHABLE';
@@ -49,7 +48,6 @@ export interface ICorestoreInventoryProbe {
49
48
  status: TCorestoreInventoryProbeStatus;
50
49
  connectionId?: string;
51
50
  reporterSessionId?: string;
52
- capabilityVersion?: number;
53
51
  observedNodeNames: string[];
54
52
  checkedAt: number;
55
53
  lastSuccessfulInventoryAt?: number;
@@ -63,7 +61,6 @@ export interface ICorestoreInventoryReport {
63
61
  }
64
62
  /** Final registration tag restored only after identity and capability tags. */
65
63
  export interface ICoreflowInventoryRegistration {
66
- registrationVersion: 1;
67
64
  reporterSessionId: string;
68
65
  registeredAt: number;
69
66
  }
@@ -1,18 +1,14 @@
1
1
  import * as plugins from '../plugins.js';
2
+ import { hasExactKeys } from '../private/dataproperties.js';
2
3
  const clusterCorestoreInventoryIdentifierPattern = /^[A-Za-z0-9][A-Za-z0-9:._-]{0,199}$/;
3
4
  const isClusterCorestoreRecord = (valueArg) => (Boolean(valueArg)
4
5
  && typeof valueArg === 'object'
5
6
  && !Array.isArray(valueArg)
6
7
  && (Object.getPrototypeOf(valueArg) === Object.prototype
7
8
  || Object.getPrototypeOf(valueArg) === null));
8
- const hasClusterCorestoreKeys = (valueArg, keysArg, optionalKeysArg = []) => {
9
- const actualKeys = Object.keys(valueArg);
10
- return keysArg.every((keyArg) => actualKeys.includes(keyArg))
11
- && actualKeys.every((keyArg) => keysArg.includes(keyArg) || optionalKeysArg.includes(keyArg));
12
- };
13
9
  const validateClusterCorestoreServiceResources = (valueArg, pathArg) => {
14
10
  if (!isClusterCorestoreRecord(valueArg)
15
- || !hasClusterCorestoreKeys(valueArg, ['serviceId', 'resources', 'updatedAt'], ['serviceName'])) {
11
+ || !hasExactKeys(valueArg, ['serviceId', 'resources', 'updatedAt'], ['serviceName'])) {
16
12
  return [`${pathArg} must use its exact schema`];
17
13
  }
18
14
  const errors = [];
@@ -30,7 +26,7 @@ const validateClusterCorestoreServiceResources = (valueArg, pathArg) => {
30
26
  for (const [index, resource] of valueArg.resources.entries()) {
31
27
  const resourcePath = `${pathArg} resources[${index}]`;
32
28
  if (!isClusterCorestoreRecord(resource)
33
- || !hasClusterCorestoreKeys(resource, ['capability', 'provider', 'resourceName', 'createdAt'])) {
29
+ || !hasExactKeys(resource, ['capability', 'provider', 'resourceName', 'createdAt'])) {
34
30
  errors.push(`${resourcePath} must use its exact schema`);
35
31
  continue;
36
32
  }
@@ -61,7 +57,7 @@ const validateClusterCorestoreServiceResources = (valueArg, pathArg) => {
61
57
  */
62
58
  export const validateClusterCorestoreInventory = (valueArg, pathArg = 'cluster corestore inventory') => {
63
59
  if (!isClusterCorestoreRecord(valueArg)
64
- || !hasClusterCorestoreKeys(valueArg, ['nodeId', 'checkedAt', 'reachable', 'services'], ['errorCode'])) {
60
+ || !hasExactKeys(valueArg, ['nodeId', 'checkedAt', 'reachable', 'services'], ['errorCode'])) {
65
61
  return [`${pathArg} must use its exact schema`];
66
62
  }
67
63
  const errors = [];
@@ -100,4 +96,4 @@ export const validateClusterCorestoreInventory = (valueArg, pathArg = 'cluster c
100
96
  }
101
97
  return errors;
102
98
  };
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvcmVxdWVzdHMvY29yZXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBNEd6QyxNQUFNLDBDQUEwQyxHQUFHLHFDQUFxQyxDQUFDO0FBRXpGLE1BQU0sd0JBQXdCLEdBQUcsQ0FDL0IsUUFBaUIsRUFDb0IsRUFBRSxDQUFDLENBQ3hDLE9BQU8sQ0FBQyxRQUFRLENBQUM7T0FDZCxPQUFPLFFBQVEsS0FBSyxRQUFRO09BQzVCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7T0FDeEIsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxTQUFTO1dBQ25ELE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQy9DLENBQUM7QUFFRixNQUFNLHVCQUF1QixHQUFHLENBQzlCLFFBQWlDLEVBQ2pDLE9BQTBCLEVBQzFCLGtCQUFxQyxFQUFFLEVBQzlCLEVBQUU7SUFDWCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztXQUN4RCxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNsRyxDQUFDLENBQUM7QUFFRixNQUFNLHdDQUF3QyxHQUFHLENBQy9DLFFBQWlCLEVBQ2pCLE9BQWUsRUFDTCxFQUFFO0lBQ1osSUFBSSxDQUFDLHdCQUF3QixDQUFD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
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvcmVxdWVzdHMvY29yZXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQXdHNUQsTUFBTSwwQ0FBMEMsR0FBRyxxQ0FBcUMsQ0FBQztBQUV6RixNQUFNLHdCQUF3QixHQUFHLENBQy9CLFFBQWlCLEVBQ29CLEVBQUUsQ0FBQyxDQUN4QyxPQUFPLENBQUMsUUFBUSxDQUFDO09BQ2QsT0FBTyxRQUFRLEtBQUssUUFBUTtPQUM1QixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO09BQ3hCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxNQUFNLENBQUMsU0FBUztXQUNuRCxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUMvQyxDQUFDO0FBRUYsTUFBTSx3Q0FBd0MsR0FBRyxDQUMvQyxRQUFpQixFQUNqQixPQUFlLEVBQ0wsRUFBRTtJQUNaLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUM7V0FDbEMsQ0FBQyxZQUFZLENBQ2QsUUFBUSxFQUNSLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFDdkMsQ0FBQyxhQUFhLENBQUMsQ0FDaEIsRUFBRSxDQUFDO1FBQ0osT0FBTyxDQUFDLEdBQUcsT0FBTyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFDNUIsSUFBSSxPQUFPLFFBQVEsQ0FBQyxTQUFTLEtBQUssUUFBUTtXQUNyQyxDQUFDLDBDQUEwQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUMxRSxNQUFNLENBQUMsSUFB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
@@ -2,11 +2,11 @@ import * as plugins from '../plugins.js';
2
2
  import type { IIdentity, IIdentityCredential } from '../data/user.js';
3
3
  import type { IRuntimeNetworkAddressPlan, TRuntimeNetworkAddressPlanWritableData } from '../data/networkaddressplan.js';
4
4
  import type { IRuntimeNetworkNodeReadiness, IRuntimeRouterIncarnation } from '../data/networknode.js';
5
- import type { IPrivateNetworkV1, IServicePrivateNetworksV1, ISetServicePrivateNetworksV1, TPrivateNetworkMutationV1 } from '../data/privatenetwork.js';
6
- import type { IServicePublishedPortsV1, ISetServicePublishedPortsV1 } from '../data/networkprojection.js';
5
+ import type { IPrivateNetwork, IServicePrivateNetworks, ISetServicePrivateNetworks, TPrivateNetworkMutation } from '../data/privatenetwork.js';
6
+ import type { IServicePublishedPorts, ISetServicePublishedPorts } from '../data/networkprojection.js';
7
7
  /** Current organization picker data. Entries are never cached authorization grants. */
8
- export interface IReq_Cloudly_ListOwnedOrganizationsV1 extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_ListOwnedOrganizationsV1> {
9
- method: 'listOwnedOrganizationsV1';
8
+ export interface IReq_Cloudly_ListOwnedOrganizations extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_ListOwnedOrganizations> {
9
+ method: 'listOwnedOrganizations';
10
10
  request: {
11
11
  identity: IIdentityCredential;
12
12
  };
@@ -20,8 +20,8 @@ export interface IReq_Cloudly_ListOwnedOrganizationsV1 extends plugins.typedrequ
20
20
  };
21
21
  }
22
22
  /** Organization-scoped attachment choices; excludes service configuration and secrets. */
23
- export interface IReq_Cloudly_ListPrivateNetworkServiceCandidatesV1 extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_ListPrivateNetworkServiceCandidatesV1> {
24
- method: 'listPrivateNetworkServiceCandidatesV1';
23
+ export interface IReq_Cloudly_ListPrivateNetworkServiceCandidates extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_ListPrivateNetworkServiceCandidates> {
24
+ method: 'listPrivateNetworkServiceCandidates';
25
25
  /** Each page requires a fresh canonical organization-owner authority observation. */
26
26
  request: {
27
27
  identity: IIdentityCredential;
@@ -38,8 +38,8 @@ export interface IReq_Cloudly_ListPrivateNetworkServiceCandidatesV1 extends plug
38
38
  };
39
39
  }
40
40
  /** Every request is authorized against live canonical membership and Cloudly policy. */
41
- export interface IReq_Cloudly_ListPrivateNetworksV1 extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_ListPrivateNetworksV1> {
42
- method: 'listPrivateNetworksV1';
41
+ export interface IReq_Cloudly_ListPrivateNetworks extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_ListPrivateNetworks> {
42
+ method: 'listPrivateNetworks';
43
43
  request: {
44
44
  identity: IIdentityCredential;
45
45
  organizationId: string;
@@ -47,73 +47,73 @@ export interface IReq_Cloudly_ListPrivateNetworksV1 extends plugins.typedrequest
47
47
  limit: number;
48
48
  };
49
49
  response: {
50
- networks: IPrivateNetworkV1[];
50
+ networks: IPrivateNetwork[];
51
51
  nextCursor: string | null;
52
52
  };
53
53
  }
54
- export interface IReq_Cloudly_GetPrivateNetworkV1 extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_GetPrivateNetworkV1> {
55
- method: 'getPrivateNetworkV1';
54
+ export interface IReq_Cloudly_GetPrivateNetwork extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_GetPrivateNetwork> {
55
+ method: 'getPrivateNetwork';
56
56
  request: {
57
57
  identity: IIdentityCredential;
58
58
  organizationId: string;
59
59
  networkId: string;
60
60
  };
61
61
  response: {
62
- network: IPrivateNetworkV1 | null;
62
+ network: IPrivateNetwork | null;
63
63
  };
64
64
  }
65
- export interface IReq_Cloudly_MutatePrivateNetworkV1 extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_MutatePrivateNetworkV1> {
66
- method: 'mutatePrivateNetworkV1';
65
+ export interface IReq_Cloudly_MutatePrivateNetwork extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_MutatePrivateNetwork> {
66
+ method: 'mutatePrivateNetwork';
67
67
  request: {
68
68
  identity: IIdentityCredential;
69
- mutation: TPrivateNetworkMutationV1;
69
+ mutation: TPrivateNetworkMutation;
70
70
  };
71
71
  /** Historical on replay; neither acceptance nor replay proves applied packet/DNS state. */
72
72
  response: {
73
- network: IPrivateNetworkV1;
73
+ network: IPrivateNetwork;
74
74
  replayed: boolean;
75
75
  };
76
76
  }
77
- export interface IReq_Cloudly_GetServicePrivateNetworksV1 extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_GetServicePrivateNetworksV1> {
78
- method: 'getServicePrivateNetworksV1';
77
+ export interface IReq_Cloudly_GetServicePrivateNetworks extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_GetServicePrivateNetworks> {
78
+ method: 'getServicePrivateNetworks';
79
79
  request: {
80
80
  identity: IIdentityCredential;
81
81
  organizationId: string;
82
82
  serviceId: string;
83
83
  };
84
84
  response: {
85
- membership: IServicePrivateNetworksV1 | null;
85
+ membership: IServicePrivateNetworks | null;
86
86
  };
87
87
  }
88
- export interface IReq_Cloudly_SetServicePrivateNetworksV1 extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_SetServicePrivateNetworksV1> {
89
- method: 'setServicePrivateNetworksV1';
88
+ export interface IReq_Cloudly_SetServicePrivateNetworks extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_SetServicePrivateNetworks> {
89
+ method: 'setServicePrivateNetworks';
90
90
  request: {
91
91
  identity: IIdentityCredential;
92
- mutation: ISetServicePrivateNetworksV1;
92
+ mutation: ISetServicePrivateNetworks;
93
93
  };
94
94
  /** Exact desired membership; enforcement and outstanding revocations remain separately observed. */
95
95
  response: {
96
- membership: IServicePrivateNetworksV1;
96
+ membership: IServicePrivateNetworks;
97
97
  replayed: boolean;
98
98
  };
99
99
  }
100
100
  /** null means the service has never had an authorized published-port policy. */
101
- export interface IReq_Cloudly_GetServicePublishedPortsV1 extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_GetServicePublishedPortsV1> {
102
- method: 'getServicePublishedPortsV1';
101
+ export interface IReq_Cloudly_GetServicePublishedPorts extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_GetServicePublishedPorts> {
102
+ method: 'getServicePublishedPorts';
103
103
  request: {
104
104
  identity: IIdentityCredential;
105
105
  organizationId: string;
106
106
  serviceId: string;
107
107
  };
108
108
  response: {
109
- publishedPorts: IServicePublishedPortsV1 | null;
109
+ publishedPorts: IServicePublishedPorts | null;
110
110
  };
111
111
  }
112
- export interface IReq_Cloudly_SetServicePublishedPortsV1 extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_SetServicePublishedPortsV1> {
113
- method: 'setServicePublishedPortsV1';
112
+ export interface IReq_Cloudly_SetServicePublishedPorts extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_SetServicePublishedPorts> {
113
+ method: 'setServicePublishedPorts';
114
114
  request: {
115
115
  identity: IIdentityCredential;
116
- mutation: ISetServicePublishedPortsV1;
116
+ mutation: ISetServicePublishedPorts;
117
117
  };
118
118
  /**
119
119
  * The accepted document including its `revision`; historical on replay. Cloudly
@@ -121,7 +121,7 @@ export interface IReq_Cloudly_SetServicePublishedPortsV1 extends plugins.typedre
121
121
  * and acceptance is neither node placement nor applied packet state.
122
122
  */
123
123
  response: {
124
- publishedPorts: IServicePublishedPortsV1;
124
+ publishedPorts: IServicePublishedPorts;
125
125
  replayed: boolean;
126
126
  };
127
127
  }