@xemahq/contracts 0.82.0 → 0.84.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 (339) hide show
  1. package/dist/.source-stamp.json +2 -2
  2. package/dist/address/lib/resource-instance-address.d.ts.map +1 -1
  3. package/dist/address/lib/resource-instance-address.js.map +1 -1
  4. package/dist/agent-composition/lib/agent-ref-resolution.d.ts.map +1 -1
  5. package/dist/agent-composition/lib/agent-ref-resolution.js.map +1 -1
  6. package/dist/agent-composition/lib/agent.d.ts.map +1 -1
  7. package/dist/agent-composition/lib/agent.js.map +1 -1
  8. package/dist/agent-session/lib/lifecycle.d.ts +1 -1
  9. package/dist/biome/lib/biome-component.d.ts +24 -0
  10. package/dist/biome/lib/biome-component.d.ts.map +1 -1
  11. package/dist/biome/lib/biome-component.js +69 -14
  12. package/dist/biome/lib/biome-component.js.map +1 -1
  13. package/dist/biome/lib/biome-kind.d.ts.map +1 -1
  14. package/dist/biome/lib/biome-kind.js.map +1 -1
  15. package/dist/biome/lib/biome-manifest.d.ts +94 -0
  16. package/dist/biome/lib/biome-manifest.d.ts.map +1 -1
  17. package/dist/biome/lib/biome-manifest.js +26 -1
  18. package/dist/biome/lib/biome-manifest.js.map +1 -1
  19. package/dist/biome/xema-biome.schema.json +214 -2
  20. package/dist/biome-catalog/lib/biome-permission-digest.d.ts +18 -0
  21. package/dist/biome-catalog/lib/biome-permission-digest.d.ts.map +1 -1
  22. package/dist/biome-catalog/lib/biome-permission-digest.js +14 -0
  23. package/dist/biome-catalog/lib/biome-permission-digest.js.map +1 -1
  24. package/dist/biome-dependency/lib/peer-seam-table.d.ts.map +1 -1
  25. package/dist/biome-dependency/lib/peer-seam-table.js +18 -0
  26. package/dist/biome-dependency/lib/peer-seam-table.js.map +1 -1
  27. package/dist/caller-context/index.d.ts +2 -0
  28. package/dist/caller-context/index.d.ts.map +1 -1
  29. package/dist/caller-context/index.js +2 -0
  30. package/dist/caller-context/index.js.map +1 -1
  31. package/dist/caller-context/lib/acting-chain.d.ts +20 -0
  32. package/dist/caller-context/lib/acting-chain.d.ts.map +1 -0
  33. package/dist/caller-context/lib/acting-chain.js +46 -0
  34. package/dist/caller-context/lib/acting-chain.js.map +1 -0
  35. package/dist/caller-context/lib/org-authority.d.ts.map +1 -1
  36. package/dist/caller-context/lib/org-authority.js.map +1 -1
  37. package/dist/caller-context/lib/platform-sweep.d.ts +5 -1
  38. package/dist/caller-context/lib/platform-sweep.d.ts.map +1 -1
  39. package/dist/caller-context/lib/platform-sweep.js +10 -0
  40. package/dist/caller-context/lib/platform-sweep.js.map +1 -1
  41. package/dist/caller-context/lib/request-context.d.ts +2 -0
  42. package/dist/caller-context/lib/request-context.d.ts.map +1 -1
  43. package/dist/caller-context/lib/request-context.js.map +1 -1
  44. package/dist/caller-context/lib/workflow-step-credential.d.ts +120 -0
  45. package/dist/caller-context/lib/workflow-step-credential.d.ts.map +1 -0
  46. package/dist/caller-context/lib/workflow-step-credential.js +169 -0
  47. package/dist/caller-context/lib/workflow-step-credential.js.map +1 -0
  48. package/dist/capability/index.d.ts +3 -3
  49. package/dist/capability/index.d.ts.map +1 -1
  50. package/dist/capability/index.js +3 -3
  51. package/dist/capability/index.js.map +1 -1
  52. package/dist/capability/lib/capability-aperture.js +1 -1
  53. package/dist/capability/lib/capability-aperture.js.map +1 -1
  54. package/dist/capability/lib/capability-caller-constraint.d.ts +23 -0
  55. package/dist/capability/lib/capability-caller-constraint.d.ts.map +1 -0
  56. package/dist/capability/lib/capability-caller-constraint.js +45 -0
  57. package/dist/capability/lib/capability-caller-constraint.js.map +1 -0
  58. package/dist/capability/lib/capability-contribution.d.ts +3 -0
  59. package/dist/capability/lib/capability-contribution.d.ts.map +1 -1
  60. package/dist/capability/lib/capability-contribution.js +11 -0
  61. package/dist/capability/lib/capability-contribution.js.map +1 -1
  62. package/dist/capability/lib/capability-ref-error.d.ts +12 -0
  63. package/dist/capability/lib/capability-ref-error.d.ts.map +1 -0
  64. package/dist/capability/lib/capability-ref-error.js +18 -0
  65. package/dist/capability/lib/capability-ref-error.js.map +1 -0
  66. package/dist/capability/lib/capability-ref.js +7 -7
  67. package/dist/capability/lib/capability-ref.js.map +1 -1
  68. package/dist/capability/lib/connector-capability-ref.js +4 -4
  69. package/dist/capability/lib/connector-capability-ref.js.map +1 -1
  70. package/dist/capability-domain/index.d.ts +2 -0
  71. package/dist/capability-domain/index.d.ts.map +1 -0
  72. package/dist/capability-domain/index.js +18 -0
  73. package/dist/capability-domain/index.js.map +1 -0
  74. package/dist/capability-domain/lib/capability-domain.d.ts.map +1 -0
  75. package/dist/capability-domain/lib/capability-domain.js.map +1 -0
  76. package/dist/capability-error/index.d.ts +3 -0
  77. package/dist/capability-error/index.d.ts.map +1 -0
  78. package/dist/capability-error/index.js +19 -0
  79. package/dist/capability-error/index.js.map +1 -0
  80. package/dist/capability-error/lib/capability-invocation-descriptor.d.ts.map +1 -0
  81. package/dist/{capability → capability-error}/lib/capability-invocation-descriptor.js +2 -2
  82. package/dist/capability-error/lib/capability-invocation-descriptor.js.map +1 -0
  83. package/dist/{capability → capability-error}/lib/errors.d.ts +3 -7
  84. package/dist/capability-error/lib/errors.d.ts.map +1 -0
  85. package/dist/{capability → capability-error}/lib/errors.js +4 -12
  86. package/dist/capability-error/lib/errors.js.map +1 -0
  87. package/dist/capability-projection/lib/projected-capability.d.ts +1 -0
  88. package/dist/capability-projection/lib/projected-capability.d.ts.map +1 -1
  89. package/dist/conformance/customer-edition-definition.vectors.json +987 -0
  90. package/dist/conformance/edition-source-pins.vectors.json +298 -0
  91. package/dist/conformance/optional-operation-admission.vectors.json +44 -0
  92. package/dist/conformance/verify-store-package.vectors.json +2081 -0
  93. package/dist/connector/index.d.ts +2 -0
  94. package/dist/connector/index.d.ts.map +1 -1
  95. package/dist/connector/index.js +2 -0
  96. package/dist/connector/index.js.map +1 -1
  97. package/dist/connector/lib/connector-adapter-contribution.d.ts +10 -3
  98. package/dist/connector/lib/connector-adapter-contribution.d.ts.map +1 -1
  99. package/dist/connector/lib/connector-adapter-contribution.js +78 -21
  100. package/dist/connector/lib/connector-adapter-contribution.js.map +1 -1
  101. package/dist/connector/lib/connector-endpoint-source-declaration.d.ts +19 -0
  102. package/dist/connector/lib/connector-endpoint-source-declaration.d.ts.map +1 -0
  103. package/dist/connector/lib/connector-endpoint-source-declaration.js +50 -0
  104. package/dist/connector/lib/connector-endpoint-source-declaration.js.map +1 -0
  105. package/dist/connector/lib/connector-endpoint-source.d.ts +5 -0
  106. package/dist/connector/lib/connector-endpoint-source.d.ts.map +1 -0
  107. package/dist/connector/lib/connector-endpoint-source.js +9 -0
  108. package/dist/connector/lib/connector-endpoint-source.js.map +1 -0
  109. package/dist/connector/lib/provider-descriptor.d.ts.map +1 -1
  110. package/dist/connector/lib/provider-descriptor.js.map +1 -1
  111. package/dist/contribution/lib/contribution-kind.d.ts.map +1 -1
  112. package/dist/contribution/lib/contribution-kind.js.map +1 -1
  113. package/dist/contribution/lib/sync.d.ts +6 -2
  114. package/dist/contribution/lib/sync.d.ts.map +1 -1
  115. package/dist/contribution/lib/sync.js +26 -6
  116. package/dist/contribution/lib/sync.js.map +1 -1
  117. package/dist/deployment/index.d.ts +6 -0
  118. package/dist/deployment/index.d.ts.map +1 -1
  119. package/dist/deployment/index.js +6 -0
  120. package/dist/deployment/index.js.map +1 -1
  121. package/dist/deployment/lib/artifact-signer-trust.d.ts +71 -9
  122. package/dist/deployment/lib/artifact-signer-trust.d.ts.map +1 -1
  123. package/dist/deployment/lib/artifact-signer-trust.js +228 -16
  124. package/dist/deployment/lib/artifact-signer-trust.js.map +1 -1
  125. package/dist/deployment/lib/code-unit-order.d.ts +2 -0
  126. package/dist/deployment/lib/code-unit-order.d.ts.map +1 -0
  127. package/dist/deployment/lib/code-unit-order.js +7 -0
  128. package/dist/deployment/lib/code-unit-order.js.map +1 -0
  129. package/dist/deployment/lib/event-subscription-grant.d.ts +46 -0
  130. package/dist/deployment/lib/event-subscription-grant.d.ts.map +1 -0
  131. package/dist/deployment/lib/event-subscription-grant.js +52 -0
  132. package/dist/deployment/lib/event-subscription-grant.js.map +1 -0
  133. package/dist/deployment/lib/installed-event-subscription-grant.d.ts +60 -0
  134. package/dist/deployment/lib/installed-event-subscription-grant.d.ts.map +1 -0
  135. package/dist/deployment/lib/installed-event-subscription-grant.js +107 -0
  136. package/dist/deployment/lib/installed-event-subscription-grant.js.map +1 -0
  137. package/dist/deployment/lib/installed-workload-grant.d.ts +80 -0
  138. package/dist/deployment/lib/installed-workload-grant.d.ts.map +1 -0
  139. package/dist/deployment/lib/installed-workload-grant.js +119 -0
  140. package/dist/deployment/lib/installed-workload-grant.js.map +1 -0
  141. package/dist/deployment/lib/operation-grant.d.ts +19 -0
  142. package/dist/deployment/lib/operation-grant.d.ts.map +1 -1
  143. package/dist/deployment/lib/operation-grant.js +18 -9
  144. package/dist/deployment/lib/operation-grant.js.map +1 -1
  145. package/dist/deployment/lib/org-context-relay.d.ts +10 -0
  146. package/dist/deployment/lib/org-context-relay.d.ts.map +1 -0
  147. package/dist/deployment/lib/org-context-relay.js +22 -0
  148. package/dist/deployment/lib/org-context-relay.js.map +1 -0
  149. package/dist/deployment/lib/organization-sweep-grant.d.ts.map +1 -1
  150. package/dist/deployment/lib/organization-sweep-grant.js +4 -6
  151. package/dist/deployment/lib/organization-sweep-grant.js.map +1 -1
  152. package/dist/deployment/lib/platform-sweep.d.ts +3 -1
  153. package/dist/deployment/lib/platform-sweep.d.ts.map +1 -1
  154. package/dist/deployment/lib/platform-sweep.js +17 -1
  155. package/dist/deployment/lib/platform-sweep.js.map +1 -1
  156. package/dist/deployment/lib/resolved-deployment.d.ts +121 -2
  157. package/dist/deployment/lib/resolved-deployment.d.ts.map +1 -1
  158. package/dist/deployment/lib/resolved-deployment.js +140 -13
  159. package/dist/deployment/lib/resolved-deployment.js.map +1 -1
  160. package/dist/deployment/lib/store-event-ceiling.d.ts +43 -0
  161. package/dist/deployment/lib/store-event-ceiling.d.ts.map +1 -0
  162. package/dist/deployment/lib/store-event-ceiling.js +80 -0
  163. package/dist/deployment/lib/store-event-ceiling.js.map +1 -0
  164. package/dist/deployment/lib/store-workload-grant-ceiling.d.ts +59 -0
  165. package/dist/deployment/lib/store-workload-grant-ceiling.d.ts.map +1 -0
  166. package/dist/deployment/lib/store-workload-grant-ceiling.js +102 -0
  167. package/dist/deployment/lib/store-workload-grant-ceiling.js.map +1 -0
  168. package/dist/distribution/index.d.ts +9 -0
  169. package/dist/distribution/index.d.ts.map +1 -1
  170. package/dist/distribution/index.js +18 -6
  171. package/dist/distribution/index.js.map +1 -1
  172. package/dist/distribution/lib/customer-edition-definition.d.ts +8 -1
  173. package/dist/distribution/lib/customer-edition-definition.d.ts.map +1 -1
  174. package/dist/distribution/lib/customer-edition-definition.js +51 -2
  175. package/dist/distribution/lib/customer-edition-definition.js.map +1 -1
  176. package/dist/distribution/lib/distribution-lock.d.ts +10 -1
  177. package/dist/distribution/lib/distribution-lock.d.ts.map +1 -1
  178. package/dist/distribution/lib/distribution-lock.js +38 -11
  179. package/dist/distribution/lib/distribution-lock.js.map +1 -1
  180. package/dist/distribution/lib/distribution.d.ts +16 -0
  181. package/dist/distribution/lib/distribution.d.ts.map +1 -1
  182. package/dist/distribution/lib/distribution.js +39 -1
  183. package/dist/distribution/lib/distribution.js.map +1 -1
  184. package/dist/distribution/lib/event-subscription-admission.d.ts +22 -0
  185. package/dist/distribution/lib/event-subscription-admission.d.ts.map +1 -0
  186. package/dist/distribution/lib/event-subscription-admission.js +72 -0
  187. package/dist/distribution/lib/event-subscription-admission.js.map +1 -0
  188. package/dist/distribution/lib/image-lock.d.ts.map +1 -1
  189. package/dist/distribution/lib/image-lock.js +2 -10
  190. package/dist/distribution/lib/image-lock.js.map +1 -1
  191. package/dist/distribution/lib/image-producer-evidence.d.ts +114 -10
  192. package/dist/distribution/lib/image-producer-evidence.d.ts.map +1 -1
  193. package/dist/distribution/lib/image-producer-evidence.js +78 -31
  194. package/dist/distribution/lib/image-producer-evidence.js.map +1 -1
  195. package/dist/distribution/lib/installed-operation-ceiling-admission.d.ts +21 -0
  196. package/dist/distribution/lib/installed-operation-ceiling-admission.d.ts.map +1 -0
  197. package/dist/distribution/lib/installed-operation-ceiling-admission.js +54 -0
  198. package/dist/distribution/lib/installed-operation-ceiling-admission.js.map +1 -0
  199. package/dist/distribution/lib/kernel-contract-source-paths.d.ts +1 -1
  200. package/dist/distribution/lib/kernel-contract-source-paths.d.ts.map +1 -1
  201. package/dist/distribution/lib/kernel-contract-source-paths.js +24 -3
  202. package/dist/distribution/lib/kernel-contract-source-paths.js.map +1 -1
  203. package/dist/distribution/lib/operation-grant-admission.d.ts +29 -2
  204. package/dist/distribution/lib/operation-grant-admission.d.ts.map +1 -1
  205. package/dist/distribution/lib/operation-grant-admission.js +97 -19
  206. package/dist/distribution/lib/operation-grant-admission.js.map +1 -1
  207. package/dist/distribution/lib/org-context-relay-admission.d.ts +19 -0
  208. package/dist/distribution/lib/org-context-relay-admission.d.ts.map +1 -0
  209. package/dist/distribution/lib/org-context-relay-admission.js +50 -0
  210. package/dist/distribution/lib/org-context-relay-admission.js.map +1 -0
  211. package/dist/distribution/lib/organization-sweep-admission.d.ts +1 -0
  212. package/dist/distribution/lib/organization-sweep-admission.d.ts.map +1 -1
  213. package/dist/distribution/lib/organization-sweep-admission.js +4 -0
  214. package/dist/distribution/lib/organization-sweep-admission.js.map +1 -1
  215. package/dist/distribution/lib/package-image-lock.d.ts +99 -0
  216. package/dist/distribution/lib/package-image-lock.d.ts.map +1 -0
  217. package/dist/distribution/lib/package-image-lock.js +167 -0
  218. package/dist/distribution/lib/package-image-lock.js.map +1 -0
  219. package/dist/distribution/lib/package-image-trust.d.ts +36 -0
  220. package/dist/distribution/lib/package-image-trust.d.ts.map +1 -0
  221. package/dist/distribution/lib/package-image-trust.js +112 -0
  222. package/dist/distribution/lib/package-image-trust.js.map +1 -0
  223. package/dist/distribution/lib/resolve-unsplit-deployment.d.ts.map +1 -1
  224. package/dist/distribution/lib/resolve-unsplit-deployment.js +31 -0
  225. package/dist/distribution/lib/resolve-unsplit-deployment.js.map +1 -1
  226. package/dist/distribution/lib/store-workload-ceiling-admission.d.ts +17 -0
  227. package/dist/distribution/lib/store-workload-ceiling-admission.d.ts.map +1 -0
  228. package/dist/distribution/lib/store-workload-ceiling-admission.js +40 -0
  229. package/dist/distribution/lib/store-workload-ceiling-admission.js.map +1 -0
  230. package/dist/distribution/lib/store-workload-ceiling.d.ts +6 -0
  231. package/dist/distribution/lib/store-workload-ceiling.d.ts.map +1 -0
  232. package/dist/distribution/lib/store-workload-ceiling.js +13 -0
  233. package/dist/distribution/lib/store-workload-ceiling.js.map +1 -0
  234. package/dist/distribution/lib/verify-resolved-deployment.d.ts +12 -0
  235. package/dist/distribution/lib/verify-resolved-deployment.d.ts.map +1 -1
  236. package/dist/distribution/lib/verify-resolved-deployment.js +148 -4
  237. package/dist/distribution/lib/verify-resolved-deployment.js.map +1 -1
  238. package/dist/distribution/server/index.d.ts +8 -0
  239. package/dist/distribution/server/index.d.ts.map +1 -1
  240. package/dist/distribution/server/index.js +10 -0
  241. package/dist/distribution/server/index.js.map +1 -1
  242. package/dist/edition-protocol/edition-contract.schema.json +1 -1
  243. package/dist/edition-protocol/edition-protocol.json +1 -1
  244. package/dist/edition-protocol/lib/edition-protocol.d.ts +1 -1
  245. package/dist/edition-protocol/lib/edition-protocol.d.ts.map +1 -1
  246. package/dist/edition-protocol/lib/edition-protocol.js +3 -2
  247. package/dist/edition-protocol/lib/edition-protocol.js.map +1 -1
  248. package/dist/event-subscription/index.d.ts +4 -0
  249. package/dist/event-subscription/index.d.ts.map +1 -0
  250. package/dist/event-subscription/index.js +20 -0
  251. package/dist/event-subscription/index.js.map +1 -0
  252. package/dist/event-subscription/lib/event-subscription-clause.d.ts +61 -0
  253. package/dist/event-subscription/lib/event-subscription-clause.d.ts.map +1 -0
  254. package/dist/event-subscription/lib/event-subscription-clause.js +102 -0
  255. package/dist/event-subscription/lib/event-subscription-clause.js.map +1 -0
  256. package/dist/event-subscription/lib/event-type-pattern.d.ts +12 -0
  257. package/dist/event-subscription/lib/event-type-pattern.d.ts.map +1 -0
  258. package/dist/event-subscription/lib/event-type-pattern.js +47 -0
  259. package/dist/event-subscription/lib/event-type-pattern.js.map +1 -0
  260. package/dist/event-subscription/lib/visibility-tier.d.ts +10 -0
  261. package/dist/event-subscription/lib/visibility-tier.d.ts.map +1 -0
  262. package/dist/event-subscription/lib/visibility-tier.js +22 -0
  263. package/dist/event-subscription/lib/visibility-tier.js.map +1 -0
  264. package/dist/execution-environment/lib/execution-environment.d.ts +4 -2
  265. package/dist/execution-environment/lib/execution-environment.d.ts.map +1 -1
  266. package/dist/execution-environment/lib/execution-environment.js +5 -6
  267. package/dist/execution-environment/lib/execution-environment.js.map +1 -1
  268. package/dist/http/lib/problem-details.d.ts.map +1 -1
  269. package/dist/http/lib/problem-details.js.map +1 -1
  270. package/dist/http/lib/xema-error.d.ts.map +1 -1
  271. package/dist/http/lib/xema-error.js.map +1 -1
  272. package/dist/resolved-deployment-fixture/lib/resolved-deployment-fixture.d.ts +21 -1
  273. package/dist/resolved-deployment-fixture/lib/resolved-deployment-fixture.d.ts.map +1 -1
  274. package/dist/resolved-deployment-fixture/lib/resolved-deployment-fixture.js +76 -2
  275. package/dist/resolved-deployment-fixture/lib/resolved-deployment-fixture.js.map +1 -1
  276. package/dist/resource/lib/resource-kind.d.ts +7 -1
  277. package/dist/resource/lib/resource-kind.d.ts.map +1 -1
  278. package/dist/resource/lib/resource-kind.js +6 -0
  279. package/dist/resource/lib/resource-kind.js.map +1 -1
  280. package/dist/resource-accounting/index.d.ts +0 -1
  281. package/dist/resource-accounting/index.d.ts.map +1 -1
  282. package/dist/resource-accounting/index.js +0 -1
  283. package/dist/resource-accounting/index.js.map +1 -1
  284. package/dist/resource-accounting/lib/producer.d.ts +0 -2
  285. package/dist/resource-accounting/lib/producer.d.ts.map +1 -1
  286. package/dist/resource-accounting/lib/producer.js +0 -1
  287. package/dist/resource-accounting/lib/producer.js.map +1 -1
  288. package/dist/revision-target/lib/revision-target.d.ts +10 -4
  289. package/dist/revision-target/lib/revision-target.d.ts.map +1 -1
  290. package/dist/revision-target/lib/revision-target.js +26 -5
  291. package/dist/revision-target/lib/revision-target.js.map +1 -1
  292. package/dist/setting/index.d.ts +1 -0
  293. package/dist/setting/index.d.ts.map +1 -1
  294. package/dist/setting/index.js +1 -0
  295. package/dist/setting/index.js.map +1 -1
  296. package/dist/setting/lib/setting-lifecycle.d.ts +33 -0
  297. package/dist/setting/lib/setting-lifecycle.d.ts.map +1 -0
  298. package/dist/setting/lib/setting-lifecycle.js +64 -0
  299. package/dist/setting/lib/setting-lifecycle.js.map +1 -0
  300. package/dist/store-package/index.d.ts +3 -0
  301. package/dist/store-package/index.d.ts.map +1 -0
  302. package/dist/store-package/index.js +10 -0
  303. package/dist/store-package/index.js.map +1 -0
  304. package/dist/store-package/lib/store-package-signatures.d.ts +22 -0
  305. package/dist/store-package/lib/store-package-signatures.d.ts.map +1 -0
  306. package/dist/store-package/lib/store-package-signatures.js +51 -0
  307. package/dist/store-package/lib/store-package-signatures.js.map +1 -0
  308. package/dist/store-package/lib/store-package-verdict.d.ts +50 -0
  309. package/dist/store-package/lib/store-package-verdict.d.ts.map +1 -0
  310. package/dist/store-package/lib/store-package-verdict.js +28 -0
  311. package/dist/store-package/lib/store-package-verdict.js.map +1 -0
  312. package/dist/store-package/server/index.d.ts +17 -0
  313. package/dist/store-package/server/index.d.ts.map +1 -0
  314. package/dist/store-package/server/index.js +66 -0
  315. package/dist/store-package/server/index.js.map +1 -0
  316. package/dist/workflow/lib/compiled-run.d.ts +1 -1
  317. package/dist/workflow/lib/compiled-run.d.ts.map +1 -1
  318. package/dist/workflow/lib/enums.d.ts +2 -0
  319. package/dist/workflow/lib/enums.d.ts.map +1 -1
  320. package/dist/workflow/lib/enums.js +7 -1
  321. package/dist/workflow/lib/enums.js.map +1 -1
  322. package/dist/workflow/lib/errors.d.ts +1 -0
  323. package/dist/workflow/lib/errors.d.ts.map +1 -1
  324. package/dist/workflow/lib/errors.js +2 -0
  325. package/dist/workflow/lib/errors.js.map +1 -1
  326. package/package.json +14 -3
  327. package/dist/capability/lib/capability-domain.d.ts.map +0 -1
  328. package/dist/capability/lib/capability-domain.js.map +0 -1
  329. package/dist/capability/lib/capability-invocation-descriptor.d.ts.map +0 -1
  330. package/dist/capability/lib/capability-invocation-descriptor.js.map +0 -1
  331. package/dist/capability/lib/errors.d.ts.map +0 -1
  332. package/dist/capability/lib/errors.js.map +0 -1
  333. package/dist/resource-accounting/lib/reconciliation.d.ts +0 -81
  334. package/dist/resource-accounting/lib/reconciliation.d.ts.map +0 -1
  335. package/dist/resource-accounting/lib/reconciliation.js +0 -111
  336. package/dist/resource-accounting/lib/reconciliation.js.map +0 -1
  337. /package/dist/{capability → capability-domain}/lib/capability-domain.d.ts +0 -0
  338. /package/dist/{capability → capability-domain}/lib/capability-domain.js +0 -0
  339. /package/dist/{capability → capability-error}/lib/capability-invocation-descriptor.d.ts +0 -0
@@ -0,0 +1,2081 @@
1
+ {
2
+ "$comment": "Conformance vectors for the composed store-package verifier (`verifyStorePackage`). Re-run every vector against your implementation. HARNESS: `manifests[v.manifest]` is the parsed manifest; `bundleLock`, `sealedLockDigest`, `namedEntries` map to the input fields of the same name (`null` is `undefined`); `trust` is the declared trust, or the string \"official\" for the official signers; `nodePlatforms` null is `undefined`. The fake verifier convention: a sigstore bundle is `{ identity, oidcIssuer, payload(base64) }`, \"signed by\" the identity and issuer written in it, and verifies for a signer iff its payload equals the verified payload, its issuer equals `signer.oidcIssuer` and its identity matches the anchored escaped `signer.identity.exact`. `signatures.lock.signedBy` signs the canonical lock bytes (null: no lock signature layer); `signatures.images[key]` writes `images/<key>.payload.json` (a cosign payload naming `digest`, where \"sealed\" is the lock entry's indexDigest) and `images/<key>.sigstore.json` signed by `signedBy` (null: both layers absent). The expectation is the verdict code, componentKey and, on admission, the admitted signer (admitted null: nothing to seal).",
3
+ "manifests": {
4
+ "one": {
5
+ "name": "@acme/dispatcher-biome",
6
+ "version": "4.0.0",
7
+ "xema": {
8
+ "id": "dispatcher",
9
+ "displayName": "Dispatcher",
10
+ "scope": "platform",
11
+ "target": "server",
12
+ "components": [
13
+ {
14
+ "key": "api",
15
+ "kind": "service",
16
+ "artifact": {
17
+ "kind": "oci-image",
18
+ "path": "./service"
19
+ },
20
+ "entrypoint": {
21
+ "kind": "oci-default"
22
+ },
23
+ "protocol": {
24
+ "kind": "http",
25
+ "revision": "v1",
26
+ "serviceName": "language-neutral-api",
27
+ "openapi": "./service/openapi.json",
28
+ "authScopes": [
29
+ "org"
30
+ ]
31
+ },
32
+ "scheduler": "platform",
33
+ "executionModes": [
34
+ "isolated"
35
+ ],
36
+ "requirements": {
37
+ "tenancy": {
38
+ "allowed": [
39
+ "org"
40
+ ],
41
+ "tenantContext": "verified"
42
+ },
43
+ "isolation": {
44
+ "minimum": "container"
45
+ },
46
+ "trust": {
47
+ "minimum": "verified"
48
+ },
49
+ "locality": {
50
+ "allowed": [
51
+ "cloud",
52
+ "customer-private"
53
+ ]
54
+ },
55
+ "state": {
56
+ "kind": "stateless"
57
+ },
58
+ "resources": {
59
+ "minimum": {
60
+ "cpu": "100m",
61
+ "memory": "128Mi",
62
+ "ephemeralStorage": "64Mi"
63
+ }
64
+ },
65
+ "runtime": {
66
+ "kind": "none",
67
+ "architectures": [
68
+ "amd64",
69
+ "arm64"
70
+ ]
71
+ },
72
+ "io": {
73
+ "ingress": "http",
74
+ "egress": "platform",
75
+ "rawBody": false,
76
+ "devices": []
77
+ },
78
+ "scaling": {
79
+ "mode": "horizontal",
80
+ "concurrency": {
81
+ "handling": "parallel",
82
+ "maximumPerInstance": 100
83
+ },
84
+ "readiness": {
85
+ "kind": "protocol",
86
+ "initialDelaySeconds": 1
87
+ },
88
+ "drain": {
89
+ "kind": "graceful",
90
+ "maximumSeconds": 30
91
+ },
92
+ "hints": {
93
+ "cpu": "latency",
94
+ "memory": "steady",
95
+ "startup": "fast"
96
+ }
97
+ }
98
+ }
99
+ }
100
+ ]
101
+ }
102
+ },
103
+ "two": {
104
+ "name": "@acme/dispatcher-biome",
105
+ "version": "4.0.0",
106
+ "xema": {
107
+ "id": "dispatcher",
108
+ "displayName": "Dispatcher",
109
+ "scope": "platform",
110
+ "target": "server",
111
+ "components": [
112
+ {
113
+ "key": "api",
114
+ "kind": "service",
115
+ "artifact": {
116
+ "kind": "oci-image",
117
+ "path": "./service"
118
+ },
119
+ "entrypoint": {
120
+ "kind": "oci-default"
121
+ },
122
+ "protocol": {
123
+ "kind": "http",
124
+ "revision": "v1",
125
+ "serviceName": "language-neutral-api",
126
+ "openapi": "./service/openapi.json",
127
+ "authScopes": [
128
+ "org"
129
+ ]
130
+ },
131
+ "scheduler": "platform",
132
+ "executionModes": [
133
+ "isolated"
134
+ ],
135
+ "requirements": {
136
+ "tenancy": {
137
+ "allowed": [
138
+ "org"
139
+ ],
140
+ "tenantContext": "verified"
141
+ },
142
+ "isolation": {
143
+ "minimum": "container"
144
+ },
145
+ "trust": {
146
+ "minimum": "verified"
147
+ },
148
+ "locality": {
149
+ "allowed": [
150
+ "cloud",
151
+ "customer-private"
152
+ ]
153
+ },
154
+ "state": {
155
+ "kind": "stateless"
156
+ },
157
+ "resources": {
158
+ "minimum": {
159
+ "cpu": "100m",
160
+ "memory": "128Mi",
161
+ "ephemeralStorage": "64Mi"
162
+ }
163
+ },
164
+ "runtime": {
165
+ "kind": "none",
166
+ "architectures": [
167
+ "amd64",
168
+ "arm64"
169
+ ]
170
+ },
171
+ "io": {
172
+ "ingress": "http",
173
+ "egress": "platform",
174
+ "rawBody": false,
175
+ "devices": []
176
+ },
177
+ "scaling": {
178
+ "mode": "horizontal",
179
+ "concurrency": {
180
+ "handling": "parallel",
181
+ "maximumPerInstance": 100
182
+ },
183
+ "readiness": {
184
+ "kind": "protocol",
185
+ "initialDelaySeconds": 1
186
+ },
187
+ "drain": {
188
+ "kind": "graceful",
189
+ "maximumSeconds": 30
190
+ },
191
+ "hints": {
192
+ "cpu": "latency",
193
+ "memory": "steady",
194
+ "startup": "fast"
195
+ }
196
+ }
197
+ },
198
+ "dispatchesRuntimeComponents": [
199
+ {
200
+ "biomeId": "dispatcher",
201
+ "componentKey": "runner"
202
+ }
203
+ ]
204
+ },
205
+ {
206
+ "key": "runner",
207
+ "kind": "service",
208
+ "artifact": {
209
+ "kind": "oci-image",
210
+ "path": "./service"
211
+ },
212
+ "entrypoint": {
213
+ "kind": "oci-default"
214
+ },
215
+ "protocol": {
216
+ "kind": "http",
217
+ "revision": "v1",
218
+ "serviceName": "dispatcher-runner",
219
+ "openapi": "./service/openapi.json",
220
+ "authScopes": [
221
+ "org"
222
+ ]
223
+ },
224
+ "scheduler": "platform",
225
+ "executionModes": [
226
+ "isolated"
227
+ ],
228
+ "requirements": {
229
+ "tenancy": {
230
+ "allowed": [
231
+ "org"
232
+ ],
233
+ "tenantContext": "verified"
234
+ },
235
+ "isolation": {
236
+ "minimum": "container"
237
+ },
238
+ "trust": {
239
+ "minimum": "verified"
240
+ },
241
+ "locality": {
242
+ "allowed": [
243
+ "cloud",
244
+ "customer-private"
245
+ ]
246
+ },
247
+ "state": {
248
+ "kind": "stateless"
249
+ },
250
+ "resources": {
251
+ "minimum": {
252
+ "cpu": "100m",
253
+ "memory": "128Mi",
254
+ "ephemeralStorage": "64Mi"
255
+ }
256
+ },
257
+ "runtime": {
258
+ "kind": "none",
259
+ "architectures": [
260
+ "amd64",
261
+ "arm64"
262
+ ]
263
+ },
264
+ "io": {
265
+ "ingress": "http",
266
+ "egress": "platform",
267
+ "rawBody": false,
268
+ "devices": []
269
+ },
270
+ "scaling": {
271
+ "mode": "horizontal",
272
+ "concurrency": {
273
+ "handling": "parallel",
274
+ "maximumPerInstance": 100
275
+ },
276
+ "readiness": {
277
+ "kind": "protocol",
278
+ "initialDelaySeconds": 1
279
+ },
280
+ "drain": {
281
+ "kind": "graceful",
282
+ "maximumSeconds": 30
283
+ },
284
+ "hints": {
285
+ "cpu": "latency",
286
+ "memory": "steady",
287
+ "startup": "fast"
288
+ }
289
+ }
290
+ }
291
+ }
292
+ ]
293
+ }
294
+ },
295
+ "none": {
296
+ "name": "@acme/content-biome",
297
+ "version": "4.0.0",
298
+ "xema": {
299
+ "id": "content-biome",
300
+ "displayName": "Content biome",
301
+ "scope": "platform",
302
+ "target": "server",
303
+ "components": [
304
+ {
305
+ "key": "content",
306
+ "kind": "content",
307
+ "artifact": {
308
+ "kind": "package-content",
309
+ "path": "."
310
+ },
311
+ "entrypoint": {
312
+ "kind": "materialize"
313
+ },
314
+ "protocol": {
315
+ "kind": "none"
316
+ },
317
+ "executionModes": [
318
+ "materialized"
319
+ ],
320
+ "requirements": {
321
+ "tenancy": {
322
+ "allowed": [
323
+ "org"
324
+ ],
325
+ "tenantContext": "verified"
326
+ },
327
+ "isolation": {
328
+ "minimum": "none"
329
+ },
330
+ "trust": {
331
+ "minimum": "untrusted"
332
+ },
333
+ "locality": {
334
+ "allowed": [
335
+ "cloud",
336
+ "customer-private"
337
+ ]
338
+ },
339
+ "state": {
340
+ "kind": "stateless"
341
+ },
342
+ "resources": {
343
+ "minimum": {
344
+ "cpu": "1m",
345
+ "memory": "1Mi",
346
+ "ephemeralStorage": "1Mi"
347
+ }
348
+ },
349
+ "runtime": {
350
+ "kind": "none"
351
+ },
352
+ "io": {
353
+ "ingress": "none",
354
+ "egress": "none",
355
+ "rawBody": false,
356
+ "devices": []
357
+ },
358
+ "scaling": {
359
+ "mode": "singleton",
360
+ "concurrency": {
361
+ "handling": "serial",
362
+ "maximumPerInstance": 1
363
+ },
364
+ "readiness": {
365
+ "kind": "none"
366
+ },
367
+ "drain": {
368
+ "kind": "none"
369
+ },
370
+ "hints": {
371
+ "cpu": "batch",
372
+ "memory": "steady",
373
+ "startup": "fast"
374
+ }
375
+ }
376
+ }
377
+ }
378
+ ]
379
+ }
380
+ }
381
+ },
382
+ "vectors": [
383
+ {
384
+ "name": "one-signer-signed-lock-and-images-passes",
385
+ "manifest": "one",
386
+ "bundleLock": {
387
+ "schemaVersion": 1,
388
+ "biomeId": "dispatcher",
389
+ "version": "4.0.0",
390
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
391
+ "entries": [
392
+ {
393
+ "componentKey": "api",
394
+ "kind": "service",
395
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
396
+ "platforms": [
397
+ {
398
+ "os": "linux",
399
+ "architecture": "amd64",
400
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
401
+ },
402
+ {
403
+ "os": "linux",
404
+ "architecture": "arm64",
405
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
406
+ }
407
+ ],
408
+ "source": {
409
+ "repo": "acme/dispatcher",
410
+ "path": "service",
411
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
412
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
413
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
414
+ }
415
+ }
416
+ ]
417
+ },
418
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
419
+ "namedEntries": null,
420
+ "trust": [
421
+ {
422
+ "kind": "oidc-certificate",
423
+ "scope": "store-packages",
424
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
425
+ "identity": {
426
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
427
+ }
428
+ }
429
+ ],
430
+ "nodePlatforms": [
431
+ {
432
+ "os": "linux",
433
+ "architecture": "amd64"
434
+ },
435
+ {
436
+ "os": "linux",
437
+ "architecture": "arm64"
438
+ }
439
+ ],
440
+ "signatures": {
441
+ "lock": {
442
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
443
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
444
+ },
445
+ "images": {
446
+ "api": {
447
+ "signedBy": {
448
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
449
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
450
+ },
451
+ "digest": "sealed"
452
+ }
453
+ }
454
+ },
455
+ "expect": {
456
+ "ok": true,
457
+ "admitted": {
458
+ "signer": {
459
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
460
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
461
+ }
462
+ }
463
+ }
464
+ },
465
+ {
466
+ "name": "trust-lists-a-and-b-and-b-signed-everything-admits-b",
467
+ "manifest": "one",
468
+ "bundleLock": {
469
+ "schemaVersion": 1,
470
+ "biomeId": "dispatcher",
471
+ "version": "4.0.0",
472
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
473
+ "entries": [
474
+ {
475
+ "componentKey": "api",
476
+ "kind": "service",
477
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
478
+ "platforms": [
479
+ {
480
+ "os": "linux",
481
+ "architecture": "amd64",
482
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
483
+ },
484
+ {
485
+ "os": "linux",
486
+ "architecture": "arm64",
487
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
488
+ }
489
+ ],
490
+ "source": {
491
+ "repo": "acme/dispatcher",
492
+ "path": "service",
493
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
494
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
495
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
496
+ }
497
+ }
498
+ ]
499
+ },
500
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
501
+ "namedEntries": null,
502
+ "trust": [
503
+ {
504
+ "kind": "oidc-certificate",
505
+ "scope": "store-packages",
506
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
507
+ "identity": {
508
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
509
+ }
510
+ },
511
+ {
512
+ "kind": "oidc-certificate",
513
+ "scope": "store-packages",
514
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
515
+ "identity": {
516
+ "exact": "https://github.com/acme/dispatcher-b/.github/workflows/publish.yaml@refs/heads/main"
517
+ }
518
+ }
519
+ ],
520
+ "nodePlatforms": [
521
+ {
522
+ "os": "linux",
523
+ "architecture": "amd64"
524
+ },
525
+ {
526
+ "os": "linux",
527
+ "architecture": "arm64"
528
+ }
529
+ ],
530
+ "signatures": {
531
+ "lock": {
532
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
533
+ "identity": "https://github.com/acme/dispatcher-b/.github/workflows/publish.yaml@refs/heads/main"
534
+ },
535
+ "images": {
536
+ "api": {
537
+ "signedBy": {
538
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
539
+ "identity": "https://github.com/acme/dispatcher-b/.github/workflows/publish.yaml@refs/heads/main"
540
+ },
541
+ "digest": "sealed"
542
+ }
543
+ }
544
+ },
545
+ "expect": {
546
+ "ok": true,
547
+ "admitted": {
548
+ "signer": {
549
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
550
+ "identity": "https://github.com/acme/dispatcher-b/.github/workflows/publish.yaml@refs/heads/main"
551
+ }
552
+ }
553
+ }
554
+ },
555
+ {
556
+ "name": "lock-by-a-and-image-by-b-both-trusted-is-refused",
557
+ "manifest": "one",
558
+ "bundleLock": {
559
+ "schemaVersion": 1,
560
+ "biomeId": "dispatcher",
561
+ "version": "4.0.0",
562
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
563
+ "entries": [
564
+ {
565
+ "componentKey": "api",
566
+ "kind": "service",
567
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
568
+ "platforms": [
569
+ {
570
+ "os": "linux",
571
+ "architecture": "amd64",
572
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
573
+ },
574
+ {
575
+ "os": "linux",
576
+ "architecture": "arm64",
577
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
578
+ }
579
+ ],
580
+ "source": {
581
+ "repo": "acme/dispatcher",
582
+ "path": "service",
583
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
584
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
585
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
586
+ }
587
+ }
588
+ ]
589
+ },
590
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
591
+ "namedEntries": null,
592
+ "trust": [
593
+ {
594
+ "kind": "oidc-certificate",
595
+ "scope": "store-packages",
596
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
597
+ "identity": {
598
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
599
+ }
600
+ },
601
+ {
602
+ "kind": "oidc-certificate",
603
+ "scope": "store-packages",
604
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
605
+ "identity": {
606
+ "exact": "https://github.com/acme/dispatcher-b/.github/workflows/publish.yaml@refs/heads/main"
607
+ }
608
+ }
609
+ ],
610
+ "nodePlatforms": [
611
+ {
612
+ "os": "linux",
613
+ "architecture": "amd64"
614
+ },
615
+ {
616
+ "os": "linux",
617
+ "architecture": "arm64"
618
+ }
619
+ ],
620
+ "signatures": {
621
+ "lock": {
622
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
623
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
624
+ },
625
+ "images": {
626
+ "api": {
627
+ "signedBy": {
628
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
629
+ "identity": "https://github.com/acme/dispatcher-b/.github/workflows/publish.yaml@refs/heads/main"
630
+ },
631
+ "digest": "sealed"
632
+ }
633
+ }
634
+ },
635
+ "expect": {
636
+ "ok": false,
637
+ "code": "image-signer-not-lock-signer"
638
+ }
639
+ },
640
+ {
641
+ "name": "unsigned-lock-is-refused",
642
+ "manifest": "one",
643
+ "bundleLock": {
644
+ "schemaVersion": 1,
645
+ "biomeId": "dispatcher",
646
+ "version": "4.0.0",
647
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
648
+ "entries": [
649
+ {
650
+ "componentKey": "api",
651
+ "kind": "service",
652
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
653
+ "platforms": [
654
+ {
655
+ "os": "linux",
656
+ "architecture": "amd64",
657
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
658
+ },
659
+ {
660
+ "os": "linux",
661
+ "architecture": "arm64",
662
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
663
+ }
664
+ ],
665
+ "source": {
666
+ "repo": "acme/dispatcher",
667
+ "path": "service",
668
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
669
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
670
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
671
+ }
672
+ }
673
+ ]
674
+ },
675
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
676
+ "namedEntries": null,
677
+ "trust": [
678
+ {
679
+ "kind": "oidc-certificate",
680
+ "scope": "store-packages",
681
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
682
+ "identity": {
683
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
684
+ }
685
+ }
686
+ ],
687
+ "nodePlatforms": [
688
+ {
689
+ "os": "linux",
690
+ "architecture": "amd64"
691
+ },
692
+ {
693
+ "os": "linux",
694
+ "architecture": "arm64"
695
+ }
696
+ ],
697
+ "signatures": {
698
+ "lock": null,
699
+ "images": {
700
+ "api": {
701
+ "signedBy": {
702
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
703
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
704
+ },
705
+ "digest": "sealed"
706
+ }
707
+ }
708
+ },
709
+ "expect": {
710
+ "ok": false,
711
+ "code": "image-signer-untrusted"
712
+ }
713
+ },
714
+ {
715
+ "name": "unsigned-image-is-refused",
716
+ "manifest": "one",
717
+ "bundleLock": {
718
+ "schemaVersion": 1,
719
+ "biomeId": "dispatcher",
720
+ "version": "4.0.0",
721
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
722
+ "entries": [
723
+ {
724
+ "componentKey": "api",
725
+ "kind": "service",
726
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
727
+ "platforms": [
728
+ {
729
+ "os": "linux",
730
+ "architecture": "amd64",
731
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
732
+ },
733
+ {
734
+ "os": "linux",
735
+ "architecture": "arm64",
736
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
737
+ }
738
+ ],
739
+ "source": {
740
+ "repo": "acme/dispatcher",
741
+ "path": "service",
742
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
743
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
744
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
745
+ }
746
+ }
747
+ ]
748
+ },
749
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
750
+ "namedEntries": null,
751
+ "trust": [
752
+ {
753
+ "kind": "oidc-certificate",
754
+ "scope": "store-packages",
755
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
756
+ "identity": {
757
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
758
+ }
759
+ }
760
+ ],
761
+ "nodePlatforms": [
762
+ {
763
+ "os": "linux",
764
+ "architecture": "amd64"
765
+ },
766
+ {
767
+ "os": "linux",
768
+ "architecture": "arm64"
769
+ }
770
+ ],
771
+ "signatures": {
772
+ "lock": {
773
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
774
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
775
+ },
776
+ "images": {
777
+ "api": {
778
+ "signedBy": null,
779
+ "digest": null
780
+ }
781
+ }
782
+ },
783
+ "expect": {
784
+ "ok": false,
785
+ "code": "image-signer-untrusted",
786
+ "componentKey": "api"
787
+ }
788
+ },
789
+ {
790
+ "name": "image-payload-naming-another-digest-is-refused",
791
+ "manifest": "one",
792
+ "bundleLock": {
793
+ "schemaVersion": 1,
794
+ "biomeId": "dispatcher",
795
+ "version": "4.0.0",
796
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
797
+ "entries": [
798
+ {
799
+ "componentKey": "api",
800
+ "kind": "service",
801
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
802
+ "platforms": [
803
+ {
804
+ "os": "linux",
805
+ "architecture": "amd64",
806
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
807
+ },
808
+ {
809
+ "os": "linux",
810
+ "architecture": "arm64",
811
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
812
+ }
813
+ ],
814
+ "source": {
815
+ "repo": "acme/dispatcher",
816
+ "path": "service",
817
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
818
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
819
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
820
+ }
821
+ }
822
+ ]
823
+ },
824
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
825
+ "namedEntries": null,
826
+ "trust": [
827
+ {
828
+ "kind": "oidc-certificate",
829
+ "scope": "store-packages",
830
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
831
+ "identity": {
832
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
833
+ }
834
+ }
835
+ ],
836
+ "nodePlatforms": [
837
+ {
838
+ "os": "linux",
839
+ "architecture": "amd64"
840
+ },
841
+ {
842
+ "os": "linux",
843
+ "architecture": "arm64"
844
+ }
845
+ ],
846
+ "signatures": {
847
+ "lock": {
848
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
849
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
850
+ },
851
+ "images": {
852
+ "api": {
853
+ "signedBy": {
854
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
855
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
856
+ },
857
+ "digest": "sha256:9999999999999999999999999999999999999999999999999999999999999999"
858
+ }
859
+ }
860
+ },
861
+ "expect": {
862
+ "ok": false,
863
+ "code": "image-signer-untrusted",
864
+ "componentKey": "api"
865
+ }
866
+ },
867
+ {
868
+ "name": "signer-the-deployment-does-not-trust-is-refused",
869
+ "manifest": "one",
870
+ "bundleLock": {
871
+ "schemaVersion": 1,
872
+ "biomeId": "dispatcher",
873
+ "version": "4.0.0",
874
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
875
+ "entries": [
876
+ {
877
+ "componentKey": "api",
878
+ "kind": "service",
879
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
880
+ "platforms": [
881
+ {
882
+ "os": "linux",
883
+ "architecture": "amd64",
884
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
885
+ },
886
+ {
887
+ "os": "linux",
888
+ "architecture": "arm64",
889
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
890
+ }
891
+ ],
892
+ "source": {
893
+ "repo": "acme/dispatcher",
894
+ "path": "service",
895
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
896
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
897
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
898
+ }
899
+ }
900
+ ]
901
+ },
902
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
903
+ "namedEntries": null,
904
+ "trust": [
905
+ {
906
+ "kind": "oidc-certificate",
907
+ "scope": "store-packages",
908
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
909
+ "identity": {
910
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
911
+ }
912
+ }
913
+ ],
914
+ "nodePlatforms": [
915
+ {
916
+ "os": "linux",
917
+ "architecture": "amd64"
918
+ },
919
+ {
920
+ "os": "linux",
921
+ "architecture": "arm64"
922
+ }
923
+ ],
924
+ "signatures": {
925
+ "lock": {
926
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
927
+ "identity": "https://github.com/acme/dispatcher-b/.github/workflows/publish.yaml@refs/heads/main"
928
+ },
929
+ "images": {
930
+ "api": {
931
+ "signedBy": {
932
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
933
+ "identity": "https://github.com/acme/dispatcher-b/.github/workflows/publish.yaml@refs/heads/main"
934
+ },
935
+ "digest": "sealed"
936
+ }
937
+ }
938
+ },
939
+ "expect": {
940
+ "ok": false,
941
+ "code": "image-signer-untrusted"
942
+ }
943
+ },
944
+ {
945
+ "name": "official-trust-declares-no-store-packages-signer",
946
+ "manifest": "one",
947
+ "bundleLock": {
948
+ "schemaVersion": 1,
949
+ "biomeId": "dispatcher",
950
+ "version": "4.0.0",
951
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
952
+ "entries": [
953
+ {
954
+ "componentKey": "api",
955
+ "kind": "service",
956
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
957
+ "platforms": [
958
+ {
959
+ "os": "linux",
960
+ "architecture": "amd64",
961
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
962
+ },
963
+ {
964
+ "os": "linux",
965
+ "architecture": "arm64",
966
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
967
+ }
968
+ ],
969
+ "source": {
970
+ "repo": "acme/dispatcher",
971
+ "path": "service",
972
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
973
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
974
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
975
+ }
976
+ }
977
+ ]
978
+ },
979
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
980
+ "namedEntries": null,
981
+ "trust": "official",
982
+ "nodePlatforms": [
983
+ {
984
+ "os": "linux",
985
+ "architecture": "amd64"
986
+ },
987
+ {
988
+ "os": "linux",
989
+ "architecture": "arm64"
990
+ }
991
+ ],
992
+ "signatures": {
993
+ "lock": {
994
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
995
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
996
+ },
997
+ "images": {
998
+ "api": {
999
+ "signedBy": {
1000
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1001
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1002
+ },
1003
+ "digest": "sealed"
1004
+ }
1005
+ }
1006
+ },
1007
+ "expect": {
1008
+ "ok": false,
1009
+ "code": "store-signer-trust-empty"
1010
+ }
1011
+ },
1012
+ {
1013
+ "name": "public-key-store-packages-signer-is-refused-not-skipped",
1014
+ "manifest": "one",
1015
+ "bundleLock": {
1016
+ "schemaVersion": 1,
1017
+ "biomeId": "dispatcher",
1018
+ "version": "4.0.0",
1019
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
1020
+ "entries": [
1021
+ {
1022
+ "componentKey": "api",
1023
+ "kind": "service",
1024
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1025
+ "platforms": [
1026
+ {
1027
+ "os": "linux",
1028
+ "architecture": "amd64",
1029
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
1030
+ },
1031
+ {
1032
+ "os": "linux",
1033
+ "architecture": "arm64",
1034
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
1035
+ }
1036
+ ],
1037
+ "source": {
1038
+ "repo": "acme/dispatcher",
1039
+ "path": "service",
1040
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
1041
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1042
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
1043
+ }
1044
+ }
1045
+ ]
1046
+ },
1047
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
1048
+ "namedEntries": null,
1049
+ "trust": [
1050
+ {
1051
+ "kind": "oidc-certificate",
1052
+ "scope": "store-packages",
1053
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1054
+ "identity": {
1055
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1056
+ }
1057
+ },
1058
+ {
1059
+ "kind": "public-key",
1060
+ "scope": "store-packages",
1061
+ "publicKey": {
1062
+ "pem": "unparsed",
1063
+ "sha256": "0000000000000000000000000000000000000000000000000000000000000000"
1064
+ },
1065
+ "transparencyLog": "required"
1066
+ }
1067
+ ],
1068
+ "nodePlatforms": [
1069
+ {
1070
+ "os": "linux",
1071
+ "architecture": "amd64"
1072
+ },
1073
+ {
1074
+ "os": "linux",
1075
+ "architecture": "arm64"
1076
+ }
1077
+ ],
1078
+ "signatures": {
1079
+ "lock": {
1080
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1081
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1082
+ },
1083
+ "images": {
1084
+ "api": {
1085
+ "signedBy": {
1086
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1087
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1088
+ },
1089
+ "digest": "sealed"
1090
+ }
1091
+ }
1092
+ },
1093
+ "expect": {
1094
+ "ok": false,
1095
+ "code": "store-signer-trust-invalid"
1096
+ }
1097
+ },
1098
+ {
1099
+ "name": "regexp-store-packages-signer-is-refused-not-skipped",
1100
+ "manifest": "one",
1101
+ "bundleLock": {
1102
+ "schemaVersion": 1,
1103
+ "biomeId": "dispatcher",
1104
+ "version": "4.0.0",
1105
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
1106
+ "entries": [
1107
+ {
1108
+ "componentKey": "api",
1109
+ "kind": "service",
1110
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1111
+ "platforms": [
1112
+ {
1113
+ "os": "linux",
1114
+ "architecture": "amd64",
1115
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
1116
+ },
1117
+ {
1118
+ "os": "linux",
1119
+ "architecture": "arm64",
1120
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
1121
+ }
1122
+ ],
1123
+ "source": {
1124
+ "repo": "acme/dispatcher",
1125
+ "path": "service",
1126
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
1127
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1128
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
1129
+ }
1130
+ }
1131
+ ]
1132
+ },
1133
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
1134
+ "namedEntries": null,
1135
+ "trust": [
1136
+ {
1137
+ "kind": "oidc-certificate",
1138
+ "scope": "store-packages",
1139
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1140
+ "identity": {
1141
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1142
+ }
1143
+ },
1144
+ {
1145
+ "kind": "oidc-certificate",
1146
+ "scope": "store-packages",
1147
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1148
+ "identity": {
1149
+ "regexp": "^https://github.com/acme/.*$"
1150
+ }
1151
+ }
1152
+ ],
1153
+ "nodePlatforms": [
1154
+ {
1155
+ "os": "linux",
1156
+ "architecture": "amd64"
1157
+ },
1158
+ {
1159
+ "os": "linux",
1160
+ "architecture": "arm64"
1161
+ }
1162
+ ],
1163
+ "signatures": {
1164
+ "lock": {
1165
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1166
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1167
+ },
1168
+ "images": {
1169
+ "api": {
1170
+ "signedBy": {
1171
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1172
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1173
+ },
1174
+ "digest": "sealed"
1175
+ }
1176
+ }
1177
+ },
1178
+ "expect": {
1179
+ "ok": false,
1180
+ "code": "store-signer-trust-invalid"
1181
+ }
1182
+ },
1183
+ {
1184
+ "name": "pull-request-ref-store-packages-signer-is-refused",
1185
+ "manifest": "one",
1186
+ "bundleLock": {
1187
+ "schemaVersion": 1,
1188
+ "biomeId": "dispatcher",
1189
+ "version": "4.0.0",
1190
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
1191
+ "entries": [
1192
+ {
1193
+ "componentKey": "api",
1194
+ "kind": "service",
1195
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1196
+ "platforms": [
1197
+ {
1198
+ "os": "linux",
1199
+ "architecture": "amd64",
1200
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
1201
+ },
1202
+ {
1203
+ "os": "linux",
1204
+ "architecture": "arm64",
1205
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
1206
+ }
1207
+ ],
1208
+ "source": {
1209
+ "repo": "acme/dispatcher",
1210
+ "path": "service",
1211
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
1212
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1213
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
1214
+ }
1215
+ }
1216
+ ]
1217
+ },
1218
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
1219
+ "namedEntries": null,
1220
+ "trust": [
1221
+ {
1222
+ "kind": "oidc-certificate",
1223
+ "scope": "store-packages",
1224
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1225
+ "identity": {
1226
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1227
+ }
1228
+ },
1229
+ {
1230
+ "kind": "oidc-certificate",
1231
+ "scope": "store-packages",
1232
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1233
+ "identity": {
1234
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/pull/7/merge"
1235
+ }
1236
+ }
1237
+ ],
1238
+ "nodePlatforms": [
1239
+ {
1240
+ "os": "linux",
1241
+ "architecture": "amd64"
1242
+ },
1243
+ {
1244
+ "os": "linux",
1245
+ "architecture": "arm64"
1246
+ }
1247
+ ],
1248
+ "signatures": {
1249
+ "lock": {
1250
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1251
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1252
+ },
1253
+ "images": {
1254
+ "api": {
1255
+ "signedBy": {
1256
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1257
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1258
+ },
1259
+ "digest": "sealed"
1260
+ }
1261
+ }
1262
+ },
1263
+ "expect": {
1264
+ "ok": false,
1265
+ "code": "store-signer-trust-invalid"
1266
+ }
1267
+ },
1268
+ {
1269
+ "name": "absent-cluster-facts-are-refused",
1270
+ "manifest": "one",
1271
+ "bundleLock": {
1272
+ "schemaVersion": 1,
1273
+ "biomeId": "dispatcher",
1274
+ "version": "4.0.0",
1275
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
1276
+ "entries": [
1277
+ {
1278
+ "componentKey": "api",
1279
+ "kind": "service",
1280
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1281
+ "platforms": [
1282
+ {
1283
+ "os": "linux",
1284
+ "architecture": "amd64",
1285
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
1286
+ },
1287
+ {
1288
+ "os": "linux",
1289
+ "architecture": "arm64",
1290
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
1291
+ }
1292
+ ],
1293
+ "source": {
1294
+ "repo": "acme/dispatcher",
1295
+ "path": "service",
1296
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
1297
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1298
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
1299
+ }
1300
+ }
1301
+ ]
1302
+ },
1303
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
1304
+ "namedEntries": null,
1305
+ "trust": [
1306
+ {
1307
+ "kind": "oidc-certificate",
1308
+ "scope": "store-packages",
1309
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1310
+ "identity": {
1311
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1312
+ }
1313
+ }
1314
+ ],
1315
+ "nodePlatforms": null,
1316
+ "signatures": {
1317
+ "lock": {
1318
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1319
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1320
+ },
1321
+ "images": {
1322
+ "api": {
1323
+ "signedBy": {
1324
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1325
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1326
+ },
1327
+ "digest": "sealed"
1328
+ }
1329
+ }
1330
+ },
1331
+ "expect": {
1332
+ "ok": false,
1333
+ "code": "cluster-facts-missing"
1334
+ }
1335
+ },
1336
+ {
1337
+ "name": "platform-variant-gap-in-the-second-entry-names-its-component",
1338
+ "manifest": "two",
1339
+ "bundleLock": {
1340
+ "schemaVersion": 1,
1341
+ "biomeId": "dispatcher",
1342
+ "version": "4.0.0",
1343
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
1344
+ "entries": [
1345
+ {
1346
+ "componentKey": "api",
1347
+ "kind": "service",
1348
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1349
+ "platforms": [
1350
+ {
1351
+ "os": "linux",
1352
+ "architecture": "amd64",
1353
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
1354
+ },
1355
+ {
1356
+ "os": "linux",
1357
+ "architecture": "arm64",
1358
+ "variant": "v8",
1359
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
1360
+ }
1361
+ ],
1362
+ "source": {
1363
+ "repo": "acme/dispatcher",
1364
+ "path": "service",
1365
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
1366
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1367
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
1368
+ }
1369
+ },
1370
+ {
1371
+ "componentKey": "runner",
1372
+ "kind": "runtime-component",
1373
+ "indexDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
1374
+ "platforms": [
1375
+ {
1376
+ "os": "linux",
1377
+ "architecture": "amd64",
1378
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
1379
+ },
1380
+ {
1381
+ "os": "linux",
1382
+ "architecture": "arm64",
1383
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
1384
+ }
1385
+ ],
1386
+ "source": {
1387
+ "repo": "acme/dispatcher",
1388
+ "path": "service",
1389
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
1390
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1391
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
1392
+ }
1393
+ }
1394
+ ]
1395
+ },
1396
+ "sealedLockDigest": "sha256:53d5e41fabd9f5c452a01c1341310a45d7e3f3a6a4ace5590ca4010cf53722ec",
1397
+ "namedEntries": null,
1398
+ "trust": [
1399
+ {
1400
+ "kind": "oidc-certificate",
1401
+ "scope": "store-packages",
1402
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1403
+ "identity": {
1404
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1405
+ }
1406
+ }
1407
+ ],
1408
+ "nodePlatforms": [
1409
+ {
1410
+ "os": "linux",
1411
+ "architecture": "amd64"
1412
+ },
1413
+ {
1414
+ "os": "linux",
1415
+ "architecture": "arm64",
1416
+ "variant": "v8"
1417
+ }
1418
+ ],
1419
+ "signatures": {
1420
+ "lock": {
1421
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1422
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1423
+ },
1424
+ "images": {
1425
+ "api": {
1426
+ "signedBy": {
1427
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1428
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1429
+ },
1430
+ "digest": "sealed"
1431
+ },
1432
+ "runner": {
1433
+ "signedBy": {
1434
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1435
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1436
+ },
1437
+ "digest": "sealed"
1438
+ }
1439
+ }
1440
+ },
1441
+ "expect": {
1442
+ "ok": false,
1443
+ "code": "image-platform-missing",
1444
+ "componentKey": "runner"
1445
+ }
1446
+ },
1447
+ {
1448
+ "name": "images-required-and-no-lock-is-refused",
1449
+ "manifest": "one",
1450
+ "bundleLock": null,
1451
+ "sealedLockDigest": null,
1452
+ "namedEntries": null,
1453
+ "trust": [
1454
+ {
1455
+ "kind": "oidc-certificate",
1456
+ "scope": "store-packages",
1457
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1458
+ "identity": {
1459
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1460
+ }
1461
+ }
1462
+ ],
1463
+ "nodePlatforms": [
1464
+ {
1465
+ "os": "linux",
1466
+ "architecture": "amd64"
1467
+ },
1468
+ {
1469
+ "os": "linux",
1470
+ "architecture": "arm64"
1471
+ }
1472
+ ],
1473
+ "signatures": {
1474
+ "lock": {
1475
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1476
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1477
+ },
1478
+ "images": {
1479
+ "api": {
1480
+ "signedBy": {
1481
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1482
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1483
+ },
1484
+ "digest": "sealed"
1485
+ }
1486
+ }
1487
+ },
1488
+ "expect": {
1489
+ "ok": false,
1490
+ "code": "package-image-lock-missing"
1491
+ }
1492
+ },
1493
+ {
1494
+ "name": "lock-for-a-manifest-with-no-image-component-is-unexpected",
1495
+ "manifest": "none",
1496
+ "bundleLock": {
1497
+ "schemaVersion": 1,
1498
+ "biomeId": "dispatcher",
1499
+ "version": "4.0.0",
1500
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
1501
+ "entries": [
1502
+ {
1503
+ "componentKey": "api",
1504
+ "kind": "service",
1505
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1506
+ "platforms": [
1507
+ {
1508
+ "os": "linux",
1509
+ "architecture": "amd64",
1510
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
1511
+ },
1512
+ {
1513
+ "os": "linux",
1514
+ "architecture": "arm64",
1515
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
1516
+ }
1517
+ ],
1518
+ "source": {
1519
+ "repo": "acme/dispatcher",
1520
+ "path": "service",
1521
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
1522
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1523
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
1524
+ }
1525
+ }
1526
+ ]
1527
+ },
1528
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
1529
+ "namedEntries": null,
1530
+ "trust": [
1531
+ {
1532
+ "kind": "oidc-certificate",
1533
+ "scope": "store-packages",
1534
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1535
+ "identity": {
1536
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1537
+ }
1538
+ }
1539
+ ],
1540
+ "nodePlatforms": [
1541
+ {
1542
+ "os": "linux",
1543
+ "architecture": "amd64"
1544
+ },
1545
+ {
1546
+ "os": "linux",
1547
+ "architecture": "arm64"
1548
+ }
1549
+ ],
1550
+ "signatures": {
1551
+ "lock": {
1552
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1553
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1554
+ },
1555
+ "images": {
1556
+ "api": {
1557
+ "signedBy": {
1558
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1559
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1560
+ },
1561
+ "digest": "sealed"
1562
+ }
1563
+ }
1564
+ },
1565
+ "expect": {
1566
+ "ok": false,
1567
+ "code": "package-image-lock-unexpected"
1568
+ }
1569
+ },
1570
+ {
1571
+ "name": "structurally-invalid-lock-is-refused",
1572
+ "manifest": "one",
1573
+ "bundleLock": {
1574
+ "schemaVersion": 1,
1575
+ "biomeId": "dispatcher"
1576
+ },
1577
+ "sealedLockDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
1578
+ "namedEntries": null,
1579
+ "trust": [
1580
+ {
1581
+ "kind": "oidc-certificate",
1582
+ "scope": "store-packages",
1583
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1584
+ "identity": {
1585
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1586
+ }
1587
+ }
1588
+ ],
1589
+ "nodePlatforms": [
1590
+ {
1591
+ "os": "linux",
1592
+ "architecture": "amd64"
1593
+ },
1594
+ {
1595
+ "os": "linux",
1596
+ "architecture": "arm64"
1597
+ }
1598
+ ],
1599
+ "signatures": {
1600
+ "lock": {
1601
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1602
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1603
+ },
1604
+ "images": {
1605
+ "api": {
1606
+ "signedBy": {
1607
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1608
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1609
+ },
1610
+ "digest": "sealed"
1611
+ }
1612
+ }
1613
+ },
1614
+ "expect": {
1615
+ "ok": false,
1616
+ "code": "package-image-lock-invalid"
1617
+ }
1618
+ },
1619
+ {
1620
+ "name": "lock-not-matching-the-sealed-digest-is-refused",
1621
+ "manifest": "one",
1622
+ "bundleLock": {
1623
+ "schemaVersion": 1,
1624
+ "biomeId": "dispatcher",
1625
+ "version": "4.0.0",
1626
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
1627
+ "entries": [
1628
+ {
1629
+ "componentKey": "api",
1630
+ "kind": "service",
1631
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1632
+ "platforms": [
1633
+ {
1634
+ "os": "linux",
1635
+ "architecture": "amd64",
1636
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
1637
+ },
1638
+ {
1639
+ "os": "linux",
1640
+ "architecture": "arm64",
1641
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
1642
+ }
1643
+ ],
1644
+ "source": {
1645
+ "repo": "acme/dispatcher",
1646
+ "path": "service",
1647
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
1648
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1649
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
1650
+ }
1651
+ }
1652
+ ]
1653
+ },
1654
+ "sealedLockDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
1655
+ "namedEntries": null,
1656
+ "trust": [
1657
+ {
1658
+ "kind": "oidc-certificate",
1659
+ "scope": "store-packages",
1660
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1661
+ "identity": {
1662
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1663
+ }
1664
+ }
1665
+ ],
1666
+ "nodePlatforms": [
1667
+ {
1668
+ "os": "linux",
1669
+ "architecture": "amd64"
1670
+ },
1671
+ {
1672
+ "os": "linux",
1673
+ "architecture": "arm64"
1674
+ }
1675
+ ],
1676
+ "signatures": {
1677
+ "lock": {
1678
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1679
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1680
+ },
1681
+ "images": {
1682
+ "api": {
1683
+ "signedBy": {
1684
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1685
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1686
+ },
1687
+ "digest": "sealed"
1688
+ }
1689
+ }
1690
+ },
1691
+ "expect": {
1692
+ "ok": false,
1693
+ "code": "package-image-lock-mismatch"
1694
+ }
1695
+ },
1696
+ {
1697
+ "name": "named-entries-differing-from-the-lock-are-refused",
1698
+ "manifest": "one",
1699
+ "bundleLock": {
1700
+ "schemaVersion": 1,
1701
+ "biomeId": "dispatcher",
1702
+ "version": "4.0.0",
1703
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
1704
+ "entries": [
1705
+ {
1706
+ "componentKey": "api",
1707
+ "kind": "service",
1708
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1709
+ "platforms": [
1710
+ {
1711
+ "os": "linux",
1712
+ "architecture": "amd64",
1713
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
1714
+ },
1715
+ {
1716
+ "os": "linux",
1717
+ "architecture": "arm64",
1718
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
1719
+ }
1720
+ ],
1721
+ "source": {
1722
+ "repo": "acme/dispatcher",
1723
+ "path": "service",
1724
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
1725
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1726
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
1727
+ }
1728
+ }
1729
+ ]
1730
+ },
1731
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
1732
+ "namedEntries": [
1733
+ {
1734
+ "componentKey": "api",
1735
+ "kind": "service",
1736
+ "indexDigest": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
1737
+ "platforms": [
1738
+ {
1739
+ "os": "linux",
1740
+ "architecture": "amd64",
1741
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
1742
+ },
1743
+ {
1744
+ "os": "linux",
1745
+ "architecture": "arm64",
1746
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
1747
+ }
1748
+ ],
1749
+ "source": {
1750
+ "repo": "acme/dispatcher",
1751
+ "path": "service",
1752
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
1753
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1754
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
1755
+ }
1756
+ }
1757
+ ],
1758
+ "trust": [
1759
+ {
1760
+ "kind": "oidc-certificate",
1761
+ "scope": "store-packages",
1762
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1763
+ "identity": {
1764
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1765
+ }
1766
+ }
1767
+ ],
1768
+ "nodePlatforms": [
1769
+ {
1770
+ "os": "linux",
1771
+ "architecture": "amd64"
1772
+ },
1773
+ {
1774
+ "os": "linux",
1775
+ "architecture": "arm64"
1776
+ }
1777
+ ],
1778
+ "signatures": {
1779
+ "lock": {
1780
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1781
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1782
+ },
1783
+ "images": {
1784
+ "api": {
1785
+ "signedBy": {
1786
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1787
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1788
+ },
1789
+ "digest": "sealed"
1790
+ }
1791
+ }
1792
+ },
1793
+ "expect": {
1794
+ "ok": false,
1795
+ "code": "package-image-lock-mismatch"
1796
+ }
1797
+ },
1798
+ {
1799
+ "name": "lock-for-another-biome-or-version-is-a-mismatch",
1800
+ "manifest": "one",
1801
+ "bundleLock": {
1802
+ "schemaVersion": 1,
1803
+ "biomeId": "dispatcher",
1804
+ "version": "9.9.9",
1805
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
1806
+ "entries": [
1807
+ {
1808
+ "componentKey": "api",
1809
+ "kind": "service",
1810
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1811
+ "platforms": [
1812
+ {
1813
+ "os": "linux",
1814
+ "architecture": "amd64",
1815
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
1816
+ },
1817
+ {
1818
+ "os": "linux",
1819
+ "architecture": "arm64",
1820
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
1821
+ }
1822
+ ],
1823
+ "source": {
1824
+ "repo": "acme/dispatcher",
1825
+ "path": "service",
1826
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
1827
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1828
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
1829
+ }
1830
+ }
1831
+ ]
1832
+ },
1833
+ "sealedLockDigest": "sha256:2e195624f2846586a6668bcf12a7e140818c081beab9d40ea3510b650463a69c",
1834
+ "namedEntries": null,
1835
+ "trust": [
1836
+ {
1837
+ "kind": "oidc-certificate",
1838
+ "scope": "store-packages",
1839
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1840
+ "identity": {
1841
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1842
+ }
1843
+ }
1844
+ ],
1845
+ "nodePlatforms": [
1846
+ {
1847
+ "os": "linux",
1848
+ "architecture": "amd64"
1849
+ },
1850
+ {
1851
+ "os": "linux",
1852
+ "architecture": "arm64"
1853
+ }
1854
+ ],
1855
+ "signatures": {
1856
+ "lock": {
1857
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1858
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1859
+ },
1860
+ "images": {
1861
+ "api": {
1862
+ "signedBy": {
1863
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1864
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1865
+ },
1866
+ "digest": "sealed"
1867
+ }
1868
+ }
1869
+ },
1870
+ "expect": {
1871
+ "ok": false,
1872
+ "code": "package-image-lock-mismatch"
1873
+ }
1874
+ },
1875
+ {
1876
+ "name": "lock-missing-a-required-component-is-incomplete",
1877
+ "manifest": "two",
1878
+ "bundleLock": {
1879
+ "schemaVersion": 1,
1880
+ "biomeId": "dispatcher",
1881
+ "version": "4.0.0",
1882
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
1883
+ "entries": [
1884
+ {
1885
+ "componentKey": "api",
1886
+ "kind": "service",
1887
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1888
+ "platforms": [
1889
+ {
1890
+ "os": "linux",
1891
+ "architecture": "amd64",
1892
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
1893
+ },
1894
+ {
1895
+ "os": "linux",
1896
+ "architecture": "arm64",
1897
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
1898
+ }
1899
+ ],
1900
+ "source": {
1901
+ "repo": "acme/dispatcher",
1902
+ "path": "service",
1903
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
1904
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1905
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
1906
+ }
1907
+ }
1908
+ ]
1909
+ },
1910
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
1911
+ "namedEntries": null,
1912
+ "trust": [
1913
+ {
1914
+ "kind": "oidc-certificate",
1915
+ "scope": "store-packages",
1916
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1917
+ "identity": {
1918
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1919
+ }
1920
+ }
1921
+ ],
1922
+ "nodePlatforms": [
1923
+ {
1924
+ "os": "linux",
1925
+ "architecture": "amd64"
1926
+ },
1927
+ {
1928
+ "os": "linux",
1929
+ "architecture": "arm64"
1930
+ }
1931
+ ],
1932
+ "signatures": {
1933
+ "lock": {
1934
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1935
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1936
+ },
1937
+ "images": {
1938
+ "api": {
1939
+ "signedBy": {
1940
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1941
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1942
+ },
1943
+ "digest": "sealed"
1944
+ }
1945
+ }
1946
+ },
1947
+ "expect": {
1948
+ "ok": false,
1949
+ "code": "package-image-lock-incomplete"
1950
+ }
1951
+ },
1952
+ {
1953
+ "name": "no-images-and-no-lock-admits-nothing",
1954
+ "manifest": "none",
1955
+ "bundleLock": null,
1956
+ "sealedLockDigest": null,
1957
+ "namedEntries": null,
1958
+ "trust": [
1959
+ {
1960
+ "kind": "oidc-certificate",
1961
+ "scope": "store-packages",
1962
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1963
+ "identity": {
1964
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1965
+ }
1966
+ }
1967
+ ],
1968
+ "nodePlatforms": [
1969
+ {
1970
+ "os": "linux",
1971
+ "architecture": "amd64"
1972
+ },
1973
+ {
1974
+ "os": "linux",
1975
+ "architecture": "arm64"
1976
+ }
1977
+ ],
1978
+ "signatures": {
1979
+ "lock": {
1980
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1981
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1982
+ },
1983
+ "images": {
1984
+ "api": {
1985
+ "signedBy": {
1986
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
1987
+ "identity": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
1988
+ },
1989
+ "digest": "sealed"
1990
+ }
1991
+ }
1992
+ },
1993
+ "expect": {
1994
+ "ok": true,
1995
+ "admitted": null
1996
+ }
1997
+ },
1998
+ {
1999
+ "name": "platform-gap-and-untrusted-signer-refuses-platform-first",
2000
+ "manifest": "one",
2001
+ "bundleLock": {
2002
+ "schemaVersion": 1,
2003
+ "biomeId": "dispatcher",
2004
+ "version": "4.0.0",
2005
+ "sourceHashAlgorithm": "xema-image-input-sha256-v3",
2006
+ "entries": [
2007
+ {
2008
+ "componentKey": "api",
2009
+ "kind": "service",
2010
+ "indexDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
2011
+ "platforms": [
2012
+ {
2013
+ "os": "linux",
2014
+ "architecture": "amd64",
2015
+ "childDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
2016
+ },
2017
+ {
2018
+ "os": "linux",
2019
+ "architecture": "arm64",
2020
+ "childDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
2021
+ }
2022
+ ],
2023
+ "source": {
2024
+ "repo": "acme/dispatcher",
2025
+ "path": "service",
2026
+ "sourceCommit": "dddddddddddddddddddddddddddddddddddddddd",
2027
+ "sourceManifestHash": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
2028
+ "contentHash": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
2029
+ }
2030
+ }
2031
+ ]
2032
+ },
2033
+ "sealedLockDigest": "sha256:26950b31fcc4f27f36f3052bc66603d8eb426ad7ee3a77b76bf6f9364fb7da85",
2034
+ "namedEntries": null,
2035
+ "trust": [
2036
+ {
2037
+ "kind": "oidc-certificate",
2038
+ "scope": "store-packages",
2039
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
2040
+ "identity": {
2041
+ "exact": "https://github.com/acme/dispatcher/.github/workflows/publish.yaml@refs/heads/main"
2042
+ }
2043
+ }
2044
+ ],
2045
+ "nodePlatforms": [
2046
+ {
2047
+ "os": "linux",
2048
+ "architecture": "amd64"
2049
+ },
2050
+ {
2051
+ "os": "linux",
2052
+ "architecture": "arm64"
2053
+ },
2054
+ {
2055
+ "os": "linux",
2056
+ "architecture": "s390x"
2057
+ }
2058
+ ],
2059
+ "signatures": {
2060
+ "lock": {
2061
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
2062
+ "identity": "https://github.com/acme/dispatcher-b/.github/workflows/publish.yaml@refs/heads/main"
2063
+ },
2064
+ "images": {
2065
+ "api": {
2066
+ "signedBy": {
2067
+ "oidcIssuer": "https://token.actions.githubusercontent.com",
2068
+ "identity": "https://github.com/acme/dispatcher-b/.github/workflows/publish.yaml@refs/heads/main"
2069
+ },
2070
+ "digest": "sealed"
2071
+ }
2072
+ }
2073
+ },
2074
+ "expect": {
2075
+ "ok": false,
2076
+ "code": "image-platform-missing",
2077
+ "componentKey": "api"
2078
+ }
2079
+ }
2080
+ ]
2081
+ }