@serve.zone/interfaces 31.8.0 → 32.0.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.
Files changed (215) hide show
  1. package/.smartconfig.json +1 -0
  2. package/changelog.md +512 -0
  3. package/dist_ts/00_commitinfo_data.js +3 -3
  4. package/dist_ts/appstore/types.d.ts +4 -6
  5. package/dist_ts/appstore/types.js +5 -5
  6. package/dist_ts/data/backup.d.ts +3 -26
  7. package/dist_ts/data/cluster.d.ts +36 -11
  8. package/dist_ts/data/cluster.js +33 -22
  9. package/dist_ts/data/clusteringress.d.ts +8 -0
  10. package/dist_ts/data/clusteringress.js +13 -8
  11. package/dist_ts/data/clusternode.d.ts +121 -74
  12. package/dist_ts/data/clusternode.js +109 -132
  13. package/dist_ts/data/clusterruntime.d.ts +39 -0
  14. package/dist_ts/data/clusterruntime.js +11 -0
  15. package/dist_ts/data/coremail.d.ts +3 -7
  16. package/dist_ts/data/coremail.js +2 -2
  17. package/dist_ts/data/coremail.runtime.d.ts +0 -1
  18. package/dist_ts/data/coremail.runtime.js +5 -22
  19. package/dist_ts/data/deploymentadoption.d.ts +0 -2
  20. package/dist_ts/data/deploymentadoption.js +40 -6
  21. package/dist_ts/data/deploymentoperation.js +16 -3
  22. package/dist_ts/data/deploymentpreflight.d.ts +0 -2
  23. package/dist_ts/data/deploymentpreflight.js +1 -1
  24. package/dist_ts/data/immutableimage.d.ts +38 -21
  25. package/dist_ts/data/immutableimage.js +45 -5
  26. package/dist_ts/data/index.d.ts +5 -1
  27. package/dist_ts/data/index.js +5 -1
  28. package/dist_ts/data/isolatedrestore.d.ts +139 -21
  29. package/dist_ts/data/isolatedrestore.golden.d.ts +0 -1
  30. package/dist_ts/data/isolatedrestore.golden.js +6 -9
  31. package/dist_ts/data/isolatedrestore.js +176 -40
  32. package/dist_ts/data/mail.d.ts +1 -1
  33. package/dist_ts/data/networkaddressplan.d.ts +78 -0
  34. package/dist_ts/data/networkaddressplan.js +114 -0
  35. package/dist_ts/data/networkauthority.d.ts +20 -22
  36. package/dist_ts/data/networkauthority.js +29 -43
  37. package/dist_ts/data/networkcredential.d.ts +10 -10
  38. package/dist_ts/data/networkcredential.js +16 -16
  39. package/dist_ts/data/networkdelivery.d.ts +18 -18
  40. package/dist_ts/data/networkdelivery.js +16 -16
  41. package/dist_ts/data/networklease.d.ts +18 -7
  42. package/dist_ts/data/networklease.js +29 -7
  43. package/dist_ts/data/networknode.d.ts +37 -0
  44. package/dist_ts/data/networknode.js +6 -0
  45. package/dist_ts/data/networkprojection.d.ts +59 -60
  46. package/dist_ts/data/networkprojection.js +53 -57
  47. package/dist_ts/data/networkprotection.d.ts +27 -28
  48. package/dist_ts/data/networkprotection.js +36 -36
  49. package/dist_ts/data/networkrouter.d.ts +11 -11
  50. package/dist_ts/data/networkrouter.js +1 -1
  51. package/dist_ts/data/networksigning.d.ts +16 -18
  52. package/dist_ts/data/networksigning.js +20 -21
  53. package/dist_ts/data/nodecredential.d.ts +4 -6
  54. package/dist_ts/data/nodeenrollment.d.ts +35 -40
  55. package/dist_ts/data/nodeenrollment.js +57 -72
  56. package/dist_ts/data/privatenetwork.d.ts +21 -24
  57. package/dist_ts/data/privatenetwork.js +39 -54
  58. package/dist_ts/data/runtimeassignment.d.ts +50 -34
  59. package/dist_ts/data/runtimeassignment.js +79 -45
  60. package/dist_ts/data/runtimeconfig.d.ts +21 -22
  61. package/dist_ts/data/runtimeconfig.js +37 -100
  62. package/dist_ts/data/runtimesession.d.ts +100 -62
  63. package/dist_ts/data/runtimesession.js +98 -79
  64. package/dist_ts/data/runtimeterminalreceipt.d.ts +28 -29
  65. package/dist_ts/data/runtimeterminalreceipt.js +42 -42
  66. package/dist_ts/data/secret.d.ts +18 -25
  67. package/dist_ts/data/secret.js +12 -52
  68. package/dist_ts/data/servicecredential.d.ts +14 -16
  69. package/dist_ts/data/servicecredential.js +17 -28
  70. package/dist_ts/data/serviceruntime.d.ts +128 -0
  71. package/dist_ts/data/serviceruntime.js +92 -0
  72. package/dist_ts/data/sparknodereport.d.ts +27 -14
  73. package/dist_ts/data/sparknodereport.js +35 -28
  74. package/dist_ts/data/webpush.d.ts +0 -1
  75. package/dist_ts/index.d.ts +2 -1
  76. package/dist_ts/index.js +3 -2
  77. package/dist_ts/platform/objectstorageretention.d.ts +21 -24
  78. package/dist_ts/platform/objectstorageretention.js +6 -18
  79. package/dist_ts/platform/storage.d.ts +1 -3
  80. package/dist_ts/platform/storagemigration.d.ts +0 -7
  81. package/dist_ts/platform/storagemigration.golden.d.ts +0 -1
  82. package/dist_ts/platform/storagemigration.golden.js +8 -12
  83. package/dist_ts/platform/storagemigration.js +6 -51
  84. package/dist_ts/platform/types.d.ts +2 -2
  85. package/dist_ts/private/canonicaljson.d.ts +9 -1
  86. package/dist_ts/private/canonicaljson.js +14 -2
  87. package/dist_ts/private/dataproperties.d.ts +62 -0
  88. package/dist_ts/private/dataproperties.js +117 -0
  89. package/dist_ts/private/networkcontract.d.ts +14 -10
  90. package/dist_ts/private/networkcontract.js +15 -1
  91. package/dist_ts/private/producercontract.d.ts +11 -0
  92. package/dist_ts/private/producercontract.js +21 -0
  93. package/dist_ts/private/releaseversion.d.ts +37 -0
  94. package/dist_ts/private/releaseversion.js +48 -0
  95. package/dist_ts/private/runtimepolicy.d.ts +31 -0
  96. package/dist_ts/private/runtimepolicy.js +90 -0
  97. package/dist_ts/private/tokenlist.d.ts +9 -0
  98. package/dist_ts/private/tokenlist.js +23 -0
  99. package/dist_ts/protocol.d.ts +137 -0
  100. package/dist_ts/protocol.js +255 -0
  101. package/dist_ts/requests/admin.d.ts +8 -8
  102. package/dist_ts/requests/backup.d.ts +102 -112
  103. package/dist_ts/requests/cluster.d.ts +47 -10
  104. package/dist_ts/requests/cluster.js +1 -1
  105. package/dist_ts/requests/clusteringress.d.ts +9 -0
  106. package/dist_ts/requests/clusteringress.js +1 -1
  107. package/dist_ts/requests/config.d.ts +3 -3
  108. package/dist_ts/requests/corestore.d.ts +0 -3
  109. package/dist_ts/requests/corestore.js +5 -9
  110. package/dist_ts/requests/network.d.ts +87 -31
  111. package/dist_ts/requests/node.d.ts +15 -28
  112. package/dist_ts/requests/pallet.d.ts +13 -13
  113. package/dist_ts/requests/runtimesession.d.ts +53 -41
  114. package/dist_ts/requests/secret.d.ts +4 -5
  115. package/dist_ts/requests/secret.js +1 -5
  116. package/dist_ts/requests/service.d.ts +60 -0
  117. package/dist_ts/runtime.corestore.d.ts +56 -74
  118. package/dist_ts/runtime.corestore.databaseexportpackage.d.ts +30 -36
  119. package/dist_ts/runtime.corestore.databaseexportpackage.golden.d.ts +11 -12
  120. package/dist_ts/runtime.corestore.databaseexportpackage.golden.js +54 -71
  121. package/dist_ts/runtime.corestore.databaseexportpackage.js +9 -25
  122. package/dist_ts/runtime.corestore.js +35 -135
  123. package/dist_ts/runtime.corestore.relay.js +2 -7
  124. package/dist_ts/runtime.d.ts +38 -48
  125. package/dist_ts/runtime.js +20 -77
  126. package/dist_ts/runtime.networkprojection.d.ts +4 -4
  127. package/dist_ts/runtime.networkprojection.js +18 -18
  128. package/dist_ts/runtime.workloadinit.d.ts +23 -24
  129. package/dist_ts/runtime.workloadinit.js +6 -13
  130. package/package.json +2 -2
  131. package/readme.md +540 -269
  132. package/ts/00_commitinfo_data.ts +3 -3
  133. package/ts/appstore/types.ts +4 -6
  134. package/ts/data/backup.ts +3 -38
  135. package/ts/data/cluster.ts +51 -34
  136. package/ts/data/clusteringress.ts +12 -12
  137. package/ts/data/clusternode.ts +204 -232
  138. package/ts/data/clusterruntime.ts +45 -0
  139. package/ts/data/coremail.runtime.ts +4 -21
  140. package/ts/data/coremail.ts +3 -7
  141. package/ts/data/deploymentadoption.ts +46 -4
  142. package/ts/data/deploymentoperation.ts +16 -1
  143. package/ts/data/deploymentpreflight.ts +0 -2
  144. package/ts/data/immutableimage.ts +71 -24
  145. package/ts/data/index.ts +5 -1
  146. package/ts/data/isolatedrestore.golden.ts +5 -9
  147. package/ts/data/isolatedrestore.ts +339 -54
  148. package/ts/data/mail.ts +1 -1
  149. package/ts/data/networkaddressplan.ts +175 -0
  150. package/ts/data/networkauthority.ts +45 -61
  151. package/ts/data/networkcredential.ts +24 -24
  152. package/ts/data/networkdelivery.ts +27 -27
  153. package/ts/data/networklease.ts +40 -13
  154. package/ts/data/networknode.ts +37 -0
  155. package/ts/data/networkprojection.ts +119 -124
  156. package/ts/data/networkprotection.ts +54 -55
  157. package/ts/data/networkrouter.ts +14 -14
  158. package/ts/data/networksigning.ts +29 -32
  159. package/ts/data/nodecredential.ts +4 -6
  160. package/ts/data/nodeenrollment.ts +96 -114
  161. package/ts/data/privatenetwork.ts +58 -74
  162. package/ts/data/runtimeassignment.ts +143 -94
  163. package/ts/data/runtimeconfig.ts +62 -122
  164. package/ts/data/runtimesession.ts +185 -138
  165. package/ts/data/runtimeterminalreceipt.ts +72 -73
  166. package/ts/data/secret.ts +28 -76
  167. package/ts/data/servicecredential.ts +33 -43
  168. package/ts/data/serviceruntime.ts +208 -0
  169. package/ts/data/sparknodereport.ts +48 -36
  170. package/ts/data/webpush.ts +0 -1
  171. package/ts/index.ts +2 -0
  172. package/ts/platform/objectstorageretention.ts +36 -55
  173. package/ts/platform/storage.ts +1 -3
  174. package/ts/platform/storagemigration.golden.ts +7 -11
  175. package/ts/platform/storagemigration.ts +5 -55
  176. package/ts/platform/types.ts +2 -2
  177. package/ts/private/canonicaljson.ts +13 -1
  178. package/ts/private/dataproperties.ts +139 -0
  179. package/ts/private/networkcontract.ts +23 -9
  180. package/ts/private/producercontract.ts +19 -0
  181. package/ts/private/releaseversion.ts +70 -0
  182. package/ts/private/runtimepolicy.ts +105 -0
  183. package/ts/private/tokenlist.ts +30 -0
  184. package/ts/protocol.ts +364 -0
  185. package/ts/requests/admin.ts +11 -11
  186. package/ts/requests/backup.ts +112 -117
  187. package/ts/requests/cluster.ts +58 -13
  188. package/ts/requests/clusteringress.ts +9 -0
  189. package/ts/requests/config.ts +3 -3
  190. package/ts/requests/corestore.ts +4 -16
  191. package/ts/requests/network.ts +90 -41
  192. package/ts/requests/node.ts +21 -38
  193. package/ts/requests/pallet.ts +17 -17
  194. package/ts/requests/runtimesession.ts +63 -51
  195. package/ts/requests/secret.ts +5 -10
  196. package/ts/requests/service.ts +81 -0
  197. package/ts/runtime.corestore.databaseexportpackage.golden.ts +77 -95
  198. package/ts/runtime.corestore.databaseexportpackage.ts +51 -73
  199. package/ts/runtime.corestore.relay.ts +1 -10
  200. package/ts/runtime.corestore.ts +118 -268
  201. package/ts/runtime.networkprojection.ts +30 -30
  202. package/ts/runtime.ts +83 -158
  203. package/ts/runtime.workloadinit.ts +36 -48
  204. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.d.ts +0 -902
  205. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.golden.d.ts +0 -35
  206. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.golden.js +0 -315
  207. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.js +0 -3315
  208. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.d.ts +0 -291
  209. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.golden.d.ts +0 -30
  210. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.golden.js +0 -408
  211. package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.js +0 -1126
  212. package/ts/runtime.cloudlylegacydeploymentsettlement.golden.ts +0 -421
  213. package/ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.golden.ts +0 -510
  214. package/ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.ts +0 -2470
  215. package/ts/runtime.cloudlylegacydeploymentsettlement.ts +0 -6630
@@ -1,5 +1,6 @@
1
1
  import type { TSha256Digest, TImmutableContainerPlatform } from './data/immutableimage.js';
2
2
  import { isSha256Digest } from './data/immutableimage.js';
3
+ import { hasExactKeys } from './private/dataproperties.js';
3
4
 
4
5
  export const workloadInitReleaseContract = Object.freeze({
5
6
  packageName: '@serve.zone/workloadinit',
@@ -9,20 +10,20 @@ export const workloadInitReleaseContract = Object.freeze({
9
10
  imageIndexMediaType: 'application/vnd.oci.image.index.v1+json',
10
11
  statementType: 'https://in-toto.io/Statement/v1',
11
12
  predicateType: 'https://slsa.dev/provenance/v1',
12
- buildType: 'https://serve.zone/buildtypes/workloadinit-gitzone-tsdocker/v1',
13
- builderId: 'https://serve.zone/builders/workloadinit-manual-release/v1',
13
+ buildType: 'https://serve.zone/buildtypes/workloadinit-gitzone-tsdocker',
14
+ builderId: 'https://serve.zone/builders/workloadinit-manual-release',
14
15
  signatureFormat: 'cosign-dsse-bundle-v0.3',
15
16
  signatureAlgorithm: 'ecdsa-p256-sha256',
16
17
  } as const);
17
18
 
18
- export interface IWorkloadInitBuildToolVersionsV1 {
19
+ export interface IWorkloadInitBuildToolVersions {
19
20
  dockerBuildx: string;
20
21
  gitzone: string;
21
22
  tsdocker: string;
22
23
  tsrust: string;
23
24
  }
24
25
 
25
- export interface IWorkloadInitReleaseIdentityV1 {
26
+ export interface IWorkloadInitReleaseIdentity {
26
27
  packageName: typeof workloadInitReleaseContract.packageName;
27
28
  version: string;
28
29
  sourceRepository: typeof workloadInitReleaseContract.sourceRepository;
@@ -34,7 +35,7 @@ export interface IWorkloadInitReleaseIdentityV1 {
34
35
  imageTag: string;
35
36
  }
36
37
 
37
- export interface IWorkloadInitReleaseAttestationStatementV1 {
38
+ export interface IWorkloadInitReleaseAttestationStatement {
38
39
  _type: typeof workloadInitReleaseContract.statementType;
39
40
  subject: [{
40
41
  name: string;
@@ -69,7 +70,7 @@ export interface IWorkloadInitReleaseAttestationStatementV1 {
69
70
  runDetails: {
70
71
  builder: {
71
72
  id: typeof workloadInitReleaseContract.builderId;
72
- version: IWorkloadInitBuildToolVersionsV1;
73
+ version: IWorkloadInitBuildToolVersions;
73
74
  };
74
75
  };
75
76
  };
@@ -79,7 +80,7 @@ export interface IWorkloadInitReleaseAttestationStatementV1 {
79
80
  * Cloudly-created summary of a private DSSE verification. Shape and digest
80
81
  * validation do not independently prove the signature or its trust policy.
81
82
  */
82
- export interface IWorkloadInitCloudlyVerificationSummaryV1 {
83
+ export interface IWorkloadInitCloudlyVerificationSummary {
83
84
  signatureFormat: typeof workloadInitReleaseContract.signatureFormat;
84
85
  signatureAlgorithm: typeof workloadInitReleaseContract.signatureAlgorithm;
85
86
  signerKeyId: TSha256Digest;
@@ -92,32 +93,31 @@ export interface IWorkloadInitCloudlyVerificationSummaryV1 {
92
93
  verifiedAt: number;
93
94
  }
94
95
 
95
- export interface IWorkloadInitApprovedArtifactV1 {
96
+ export interface IWorkloadInitApprovedArtifact {
96
97
  platform: TImmutableContainerPlatform;
97
98
  workloadInitPlatformManifestDigest: TSha256Digest;
98
99
  workloadInitExecutableDigest: TSha256Digest;
99
100
  }
100
101
 
101
- export interface IWorkloadInitReleaseApprovalV1 {
102
- schemaVersion: 1;
103
- release: IWorkloadInitReleaseIdentityV1;
102
+ export interface IWorkloadInitReleaseApproval {
103
+ release: IWorkloadInitReleaseIdentity;
104
104
  imageIndexMediaType: typeof workloadInitReleaseContract.imageIndexMediaType;
105
105
  workloadInitImageIndexDigest: TSha256Digest;
106
- artifacts: [IWorkloadInitApprovedArtifactV1, IWorkloadInitApprovedArtifactV1];
107
- verificationSummary: IWorkloadInitCloudlyVerificationSummaryV1;
106
+ artifacts: [IWorkloadInitApprovedArtifact, IWorkloadInitApprovedArtifact];
107
+ verificationSummary: IWorkloadInitCloudlyVerificationSummary;
108
108
  approvedAt: number;
109
109
  approvalDigest: TSha256Digest;
110
110
  }
111
111
 
112
- export interface IWorkloadInitApprovalAuthorityReferenceV1 {
113
- authorityVersion: 1;
112
+ export interface IWorkloadInitApprovalAuthorityReference {
113
+ /** Counts Cloudly's approval decisions; a later generation supersedes an earlier one. */
114
114
  authorityGeneration: number;
115
115
  approvalDigest: TSha256Digest;
116
116
  }
117
117
 
118
- export interface IWorkloadInitActiveApprovalAuthorityV1
119
- extends IWorkloadInitApprovalAuthorityReferenceV1 {
120
- approval: IWorkloadInitReleaseApprovalV1;
118
+ export interface IWorkloadInitActiveApprovalAuthority
119
+ extends IWorkloadInitApprovalAuthorityReference {
120
+ approval: IWorkloadInitReleaseApproval;
121
121
  }
122
122
 
123
123
  const semanticVersionRegex = /^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/;
@@ -129,11 +129,6 @@ const isRecord = (valueArg: unknown): valueArg is Record<string, unknown> => (
129
129
  Boolean(valueArg) && typeof valueArg === 'object' && !Array.isArray(valueArg)
130
130
  );
131
131
 
132
- const hasExactKeys = (
133
- valueArg: Record<string, unknown>,
134
- keysArg: string[],
135
- ): boolean => JSON.stringify(Object.keys(valueArg).sort()) === JSON.stringify([...keysArg].sort());
136
-
137
132
  const isPositiveSafeInteger = (valueArg: unknown): valueArg is number => (
138
133
  Number.isSafeInteger(valueArg) && (valueArg as number) > 0
139
134
  );
@@ -187,8 +182,8 @@ export const validateWorkloadInitReleaseIdentity = (
187
182
  };
188
183
 
189
184
  const canonicalToolVersions = (
190
- versionsArg: IWorkloadInitBuildToolVersionsV1,
191
- ): IWorkloadInitBuildToolVersionsV1 => ({
185
+ versionsArg: IWorkloadInitBuildToolVersions,
186
+ ): IWorkloadInitBuildToolVersions => ({
192
187
  dockerBuildx: versionsArg.dockerBuildx,
193
188
  gitzone: versionsArg.gitzone,
194
189
  tsdocker: versionsArg.tsdocker,
@@ -196,10 +191,10 @@ const canonicalToolVersions = (
196
191
  });
197
192
 
198
193
  export const createWorkloadInitReleaseAttestationStatement = (inputArg: {
199
- release: IWorkloadInitReleaseIdentityV1;
194
+ release: IWorkloadInitReleaseIdentity;
200
195
  workloadInitImageIndexDigest: TSha256Digest;
201
- toolVersions: IWorkloadInitBuildToolVersionsV1;
202
- }): IWorkloadInitReleaseAttestationStatementV1 => ({
196
+ toolVersions: IWorkloadInitBuildToolVersions;
197
+ }): IWorkloadInitReleaseAttestationStatement => ({
203
198
  _type: workloadInitReleaseContract.statementType,
204
199
  subject: [{
205
200
  name: `${inputArg.release.imageRegistry}/${inputArg.release.imageRepository}:${
@@ -243,11 +238,11 @@ export const createWorkloadInitReleaseAttestationStatement = (inputArg: {
243
238
  });
244
239
 
245
240
  export const createWorkloadInitReleaseAttestationPayload = (
246
- statementArg: IWorkloadInitReleaseAttestationStatementV1,
241
+ statementArg: IWorkloadInitReleaseAttestationStatement,
247
242
  ): Uint8Array => new TextEncoder().encode(JSON.stringify(statementArg));
248
243
 
249
244
  export const computeWorkloadInitReleaseAttestationStatementDigest = async (
250
- statementArg: IWorkloadInitReleaseAttestationStatementV1,
245
+ statementArg: IWorkloadInitReleaseAttestationStatement,
251
246
  ): Promise<TSha256Digest> => computeSha256(
252
247
  createWorkloadInitReleaseAttestationPayload(statementArg),
253
248
  );
@@ -396,8 +391,8 @@ export const validateWorkloadInitCloudlyVerificationSummary = (
396
391
  };
397
392
 
398
393
  const canonicalReleaseIdentity = (
399
- releaseArg: IWorkloadInitReleaseIdentityV1,
400
- ): IWorkloadInitReleaseIdentityV1 => ({
394
+ releaseArg: IWorkloadInitReleaseIdentity,
395
+ ): IWorkloadInitReleaseIdentity => ({
401
396
  packageName: releaseArg.packageName,
402
397
  version: releaseArg.version,
403
398
  sourceRepository: releaseArg.sourceRepository,
@@ -410,16 +405,16 @@ const canonicalReleaseIdentity = (
410
405
  });
411
406
 
412
407
  const canonicalApprovedArtifact = (
413
- artifactArg: IWorkloadInitApprovedArtifactV1,
414
- ): IWorkloadInitApprovedArtifactV1 => ({
408
+ artifactArg: IWorkloadInitApprovedArtifact,
409
+ ): IWorkloadInitApprovedArtifact => ({
415
410
  platform: artifactArg.platform,
416
411
  workloadInitPlatformManifestDigest: artifactArg.workloadInitPlatformManifestDigest,
417
412
  workloadInitExecutableDigest: artifactArg.workloadInitExecutableDigest,
418
413
  });
419
414
 
420
415
  const canonicalVerificationSummary = (
421
- summaryArg: IWorkloadInitCloudlyVerificationSummaryV1,
422
- ): IWorkloadInitCloudlyVerificationSummaryV1 => ({
416
+ summaryArg: IWorkloadInitCloudlyVerificationSummary,
417
+ ): IWorkloadInitCloudlyVerificationSummary => ({
423
418
  signatureFormat: summaryArg.signatureFormat,
424
419
  signatureAlgorithm: summaryArg.signatureAlgorithm,
425
420
  signerKeyId: summaryArg.signerKeyId,
@@ -433,9 +428,8 @@ const canonicalVerificationSummary = (
433
428
  });
434
429
 
435
430
  export const createWorkloadInitReleaseApprovalDigestInput = (
436
- approvalArg: IWorkloadInitReleaseApprovalV1,
431
+ approvalArg: IWorkloadInitReleaseApproval,
437
432
  ): string => JSON.stringify({
438
- schemaVersion: approvalArg.schemaVersion,
439
433
  purpose: 'serve.zone/workloadinit-release-approval',
440
434
  release: canonicalReleaseIdentity(approvalArg.release),
441
435
  imageIndexMediaType: approvalArg.imageIndexMediaType,
@@ -446,7 +440,7 @@ export const createWorkloadInitReleaseApprovalDigestInput = (
446
440
  });
447
441
 
448
442
  export const computeWorkloadInitReleaseApprovalDigest = async (
449
- approvalArg: IWorkloadInitReleaseApprovalV1,
443
+ approvalArg: IWorkloadInitReleaseApproval,
450
444
  ): Promise<TSha256Digest> => computeSha256(
451
445
  new TextEncoder().encode(createWorkloadInitReleaseApprovalDigestInput(approvalArg)),
452
446
  );
@@ -457,7 +451,6 @@ export const validateWorkloadInitReleaseApproval = async (
457
451
  try {
458
452
  if (!isRecord(approvalArg)
459
453
  || !hasExactKeys(approvalArg, [
460
- 'schemaVersion',
461
454
  'release',
462
455
  'imageIndexMediaType',
463
456
  'workloadInitImageIndexDigest',
@@ -472,8 +465,7 @@ export const validateWorkloadInitReleaseApproval = async (
472
465
  ...validateWorkloadInitReleaseIdentity(approvalArg.release),
473
466
  ...validateWorkloadInitCloudlyVerificationSummary(approvalArg.verificationSummary),
474
467
  ];
475
- if (approvalArg.schemaVersion !== 1
476
- || approvalArg.imageIndexMediaType !== workloadInitReleaseContract.imageIndexMediaType
468
+ if (approvalArg.imageIndexMediaType !== workloadInitReleaseContract.imageIndexMediaType
477
469
  || typeof approvalArg.workloadInitImageIndexDigest !== 'string'
478
470
  || !isSha256Digest(approvalArg.workloadInitImageIndexDigest)
479
471
  || !isPositiveSafeInteger(approvalArg.approvedAt)
@@ -522,7 +514,7 @@ export const validateWorkloadInitReleaseApproval = async (
522
514
  }
523
515
  if (errors.length === 0
524
516
  && approvalArg.approvalDigest !== await computeWorkloadInitReleaseApprovalDigest(
525
- approvalArg as unknown as IWorkloadInitReleaseApprovalV1,
517
+ approvalArg as unknown as IWorkloadInitReleaseApproval,
526
518
  )) {
527
519
  errors.push('WorkloadInit release approval digest does not match');
528
520
  }
@@ -537,15 +529,13 @@ export const validateWorkloadInitApprovalAuthorityReference = (
537
529
  ): string[] => {
538
530
  if (!isRecord(referenceArg)
539
531
  || !hasExactKeys(referenceArg, [
540
- 'authorityVersion',
541
532
  'authorityGeneration',
542
533
  'approvalDigest',
543
534
  ])) {
544
535
  return ['WorkloadInit approval authority reference must use its exact schema'];
545
536
  }
546
537
  const errors: string[] = [];
547
- if (referenceArg.authorityVersion !== 1
548
- || !isPositiveSafeInteger(referenceArg.authorityGeneration)
538
+ if (!isPositiveSafeInteger(referenceArg.authorityGeneration)
549
539
  || typeof referenceArg.approvalDigest !== 'string'
550
540
  || !isSha256Digest(referenceArg.approvalDigest)) {
551
541
  errors.push('WorkloadInit approval authority reference fields must be canonical');
@@ -558,7 +548,6 @@ export const validateWorkloadInitActiveApprovalAuthority = async (
558
548
  ): Promise<string[]> => {
559
549
  if (!isRecord(authorityArg)
560
550
  || !hasExactKeys(authorityArg, [
561
- 'authorityVersion',
562
551
  'authorityGeneration',
563
552
  'approvalDigest',
564
553
  'approval',
@@ -566,7 +555,6 @@ export const validateWorkloadInitActiveApprovalAuthority = async (
566
555
  return ['active WorkloadInit approval authority must use its exact schema'];
567
556
  }
568
557
  const reference = {
569
- authorityVersion: authorityArg.authorityVersion,
570
558
  authorityGeneration: authorityArg.authorityGeneration,
571
559
  approvalDigest: authorityArg.approvalDigest,
572
560
  };