@rathnasgala2/schemas 2.11.0 → 2.12.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 (407) hide show
  1. package/README.md +164 -56
  2. package/THIRD_PARTY_LICENSES.json +79 -106
  3. package/diagnostics/diagnostic-map.json +443 -405
  4. package/diagnostics/diagnostic-map.public-runtime-origins.json +5 -0
  5. package/docs/catalogs/schema-inventory.json +33 -54
  6. package/examples/valid/adapter-capability/rules.json +11 -0
  7. package/examples/valid/artifact-manifest/rules.json +156 -177
  8. package/examples/valid/build-input/rules.json +67 -63
  9. package/examples/valid/build-provenance/rules.json +151 -172
  10. package/examples/valid/deployment-intent/rules.json +152 -148
  11. package/examples/valid/deployment-observation/rules.json +24 -20
  12. package/examples/valid/deployment-receipt/rules.json +152 -148
  13. package/examples/valid/navigation/rules.json +2 -4
  14. package/examples/valid/theme-contract/rules.json +4 -1
  15. package/fixtures/boundary/adapter-capability/rules.json +16 -0
  16. package/fixtures/boundary/artifact-manifest/rules.json +195 -202
  17. package/fixtures/boundary/build-input/rules.json +99 -86
  18. package/fixtures/boundary/build-provenance/rules.json +193 -202
  19. package/fixtures/boundary/deployment-intent/rules.json +186 -140
  20. package/fixtures/boundary/deployment-observation/rules.json +68 -18
  21. package/fixtures/boundary/deployment-receipt/rules.json +186 -140
  22. package/fixtures/boundary/navigation/rules.json +2 -17
  23. package/fixtures/boundary/theme-contract/rules.json +34 -0
  24. package/fixtures/invalid/adapter-capability/SCHEMA_STRING_TOO_LONG/cases.json +11 -0
  25. package/fixtures/invalid/adapter-capability/UTF8_BYTE_LENGTH_INVALID/cases.json +11 -0
  26. package/fixtures/invalid/artifact-manifest/ASCII_BYTE_LENGTH_INVALID/cases.json +13 -0
  27. package/fixtures/invalid/artifact-manifest/INTEGER_RANGE_INVALID/cases.json +24 -0
  28. package/fixtures/invalid/artifact-manifest/REQUEST_FIELD_UNKNOWN/cases.json +19 -19
  29. package/fixtures/invalid/artifact-manifest/SCHEMA_CONSTANT_INVALID/cases.json +48 -48
  30. package/fixtures/invalid/artifact-manifest/SCHEMA_ENUM_INVALID/cases.json +11 -11
  31. package/fixtures/invalid/artifact-manifest/SCHEMA_FORMAT_INVALID/cases.json +0 -9
  32. package/fixtures/invalid/artifact-manifest/SCHEMA_NEGATED_RULE_MATCHED/cases.json +0 -11
  33. package/fixtures/invalid/artifact-manifest/SCHEMA_PATTERN_INVALID/cases.json +0 -22
  34. package/fixtures/invalid/artifact-manifest/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +1105 -1105
  35. package/fixtures/invalid/artifact-manifest/SCHEMA_STRING_TOO_LONG/cases.json +4 -6
  36. package/fixtures/invalid/artifact-manifest/SCHEMA_STRING_TOO_SHORT/cases.json +9 -11
  37. package/fixtures/invalid/artifact-manifest/SCHEMA_TYPE_INVALID/cases.json +22 -31
  38. package/fixtures/invalid/artifact-manifest/UTF8_BYTE_LENGTH_INVALID/cases.json +0 -11
  39. package/fixtures/invalid/build-input/INTEGER_RANGE_INVALID/cases.json +13 -0
  40. package/fixtures/invalid/build-input/REQUEST_FIELD_UNKNOWN/cases.json +32 -32
  41. package/fixtures/invalid/build-input/SCHEMA_CONSTANT_INVALID/cases.json +11 -11
  42. package/fixtures/invalid/build-input/SCHEMA_ENUM_INVALID/cases.json +11 -11
  43. package/fixtures/invalid/build-input/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +78 -78
  44. package/fixtures/invalid/build-input/SCHEMA_TYPE_INVALID/cases.json +51 -18
  45. package/fixtures/invalid/build-provenance/ASCII_BYTE_LENGTH_INVALID/cases.json +13 -0
  46. package/fixtures/invalid/build-provenance/INTEGER_RANGE_INVALID/cases.json +22 -0
  47. package/fixtures/invalid/build-provenance/REQUEST_FIELD_UNKNOWN/cases.json +56 -56
  48. package/fixtures/invalid/build-provenance/SCHEMA_CONSTANT_INVALID/cases.json +37 -37
  49. package/fixtures/invalid/build-provenance/SCHEMA_ENUM_INVALID/cases.json +11 -11
  50. package/fixtures/invalid/build-provenance/SCHEMA_FORMAT_INVALID/cases.json +0 -9
  51. package/fixtures/invalid/build-provenance/SCHEMA_NEGATED_RULE_MATCHED/cases.json +0 -11
  52. package/fixtures/invalid/build-provenance/SCHEMA_PATTERN_INVALID/cases.json +0 -22
  53. package/fixtures/invalid/build-provenance/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +927 -927
  54. package/fixtures/invalid/build-provenance/SCHEMA_STRING_TOO_LONG/cases.json +9 -11
  55. package/fixtures/invalid/build-provenance/SCHEMA_STRING_TOO_SHORT/cases.json +8 -10
  56. package/fixtures/invalid/build-provenance/SCHEMA_TYPE_INVALID/cases.json +20 -25
  57. package/fixtures/invalid/build-provenance/UTF8_BYTE_LENGTH_INVALID/cases.json +0 -11
  58. package/fixtures/invalid/deployment-intent/INTEGER_RANGE_INVALID/cases.json +24 -0
  59. package/fixtures/invalid/deployment-intent/REQUEST_FIELD_UNKNOWN/cases.json +30 -30
  60. package/fixtures/invalid/deployment-intent/SCHEMA_CONSTANT_INVALID/cases.json +41 -41
  61. package/fixtures/invalid/deployment-intent/SCHEMA_ENUM_INVALID/cases.json +11 -11
  62. package/fixtures/invalid/deployment-intent/SCHEMA_FORMAT_INVALID/cases.json +0 -9
  63. package/fixtures/invalid/deployment-intent/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +1209 -1209
  64. package/fixtures/invalid/deployment-intent/SCHEMA_STRING_TOO_LONG/cases.json +9 -0
  65. package/fixtures/invalid/deployment-intent/SCHEMA_STRING_TOO_SHORT/cases.json +9 -0
  66. package/fixtures/invalid/deployment-intent/SCHEMA_TYPE_INVALID/cases.json +22 -20
  67. package/fixtures/invalid/deployment-observation/INTEGER_RANGE_INVALID/cases.json +24 -0
  68. package/fixtures/invalid/deployment-observation/REQUEST_FIELD_UNKNOWN/cases.json +16 -16
  69. package/fixtures/invalid/deployment-observation/SCHEMA_FORMAT_INVALID/cases.json +0 -9
  70. package/fixtures/invalid/deployment-observation/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +39 -39
  71. package/fixtures/invalid/deployment-observation/SCHEMA_STRING_TOO_LONG/cases.json +11 -0
  72. package/fixtures/invalid/deployment-observation/SCHEMA_STRING_TOO_SHORT/cases.json +11 -0
  73. package/fixtures/invalid/deployment-observation/SCHEMA_TYPE_INVALID/cases.json +11 -11
  74. package/fixtures/invalid/deployment-receipt/INTEGER_RANGE_INVALID/cases.json +24 -0
  75. package/fixtures/invalid/deployment-receipt/REQUEST_FIELD_UNKNOWN/cases.json +70 -70
  76. package/fixtures/invalid/deployment-receipt/SCHEMA_CONSTANT_INVALID/cases.json +36 -36
  77. package/fixtures/invalid/deployment-receipt/SCHEMA_ENUM_INVALID/cases.json +11 -11
  78. package/fixtures/invalid/deployment-receipt/SCHEMA_FORMAT_INVALID/cases.json +0 -9
  79. package/fixtures/invalid/deployment-receipt/SCHEMA_REQUIRED_FIELD_MISSING/cases.json +1304 -1304
  80. package/fixtures/invalid/deployment-receipt/SCHEMA_STRING_TOO_LONG/cases.json +9 -0
  81. package/fixtures/invalid/deployment-receipt/SCHEMA_STRING_TOO_SHORT/cases.json +9 -0
  82. package/fixtures/invalid/deployment-receipt/SCHEMA_TYPE_INVALID/cases.json +22 -20
  83. package/fixtures/invalid/navigation/SCHEMA_ARRAY_TOO_LONG/cases.json +0 -15
  84. package/fixtures/invalid/navigation/SCHEMA_CONSTANT_INVALID/cases.json +11 -0
  85. package/fixtures/invalid/navigation/SCHEMA_TYPE_INVALID/cases.json +0 -11
  86. package/fixtures/invalid/theme-contract/INTEGER_RANGE_INVALID/cases.json +11 -0
  87. package/fixtures/invalid/theme-contract/SCHEMA_FORMAT_INVALID/cases.json +0 -9
  88. package/fixtures/invalid/theme-contract/SCHEMA_STRING_TOO_LONG/cases.json +9 -0
  89. package/fixtures/invalid/theme-contract/SCHEMA_STRING_TOO_SHORT/cases.json +9 -0
  90. package/fixtures/manifest.json +3217 -2930
  91. package/fixtures/unknown-field/adapter-capability/rules.json +2 -0
  92. package/fixtures/unknown-field/artifact-manifest/rules.json +111 -114
  93. package/fixtures/unknown-field/build-input/rules.json +36 -32
  94. package/fixtures/unknown-field/build-provenance/rules.json +111 -114
  95. package/fixtures/unknown-field/deployment-intent/rules.json +109 -105
  96. package/fixtures/unknown-field/deployment-observation/rules.json +24 -20
  97. package/fixtures/unknown-field/deployment-receipt/rules.json +109 -105
  98. package/fixtures/unknown-field/navigation/rules.json +1 -3
  99. package/fixtures/unknown-field/theme-contract/rules.json +3 -0
  100. package/generated/browser/runtime-origins-validator-core.d.mts +10 -0
  101. package/generated/browser/runtime-origins-validator-core.mjs +35 -0
  102. package/generated/browser/validator-core.d.mts +10 -0
  103. package/generated/browser/validator-core.mjs +80 -0
  104. package/generated/typescript/contracts/artifact-manifest.d.ts +49 -48
  105. package/generated/typescript/contracts/build-input.d.ts +15 -15
  106. package/generated/typescript/contracts/build-provenance.d.ts +51 -50
  107. package/generated/typescript/contracts/deployment-intent.d.ts +6 -6
  108. package/generated/typescript/contracts/deployment-observation.d.ts +1 -1
  109. package/generated/typescript/contracts/deployment-receipt.d.ts +5 -5
  110. package/generated/typescript/contracts/navigation.d.ts +1 -1
  111. package/generated/typescript/index.js +11 -37
  112. package/openapi/http-catalog.json +2 -2
  113. package/openapi/openapi.yaml +18 -10
  114. package/package.json +19 -16
  115. package/sbom.cdx.json +23 -23
  116. package/schemas/adapter-capability.schema.json +5 -1
  117. package/schemas/appearance.schema.json +1 -1
  118. package/schemas/artifact-manifest.schema.json +15 -18
  119. package/schemas/build-input.schema.json +18 -11
  120. package/schemas/build-provenance.schema.json +15 -18
  121. package/schemas/deployment-intent.schema.json +13 -8
  122. package/schemas/deployment-observation.schema.json +10 -5
  123. package/schemas/deployment-receipt.schema.json +12 -7
  124. package/schemas/navigation.schema.json +5 -26
  125. package/schemas/theme-contract.schema.json +4 -2
  126. package/src/index.js +2 -2
  127. package/src/internal/browser-schema-validator.js +43 -0
  128. package/src/internal/format-validators.js +1 -1
  129. package/src/internal/gala-keywords.js +148 -0
  130. package/src/internal/validator-core.js +244 -108
  131. package/src/runtime-origins.js +18 -18
  132. package/types/index.d.ts +2 -2
  133. package/types/internal/browser-schema-validator.d.ts +16 -0
  134. package/types/internal/format-validators.d.ts +1 -1
  135. package/types/internal/gala-keywords.d.ts +68 -0
  136. package/types/internal/validator-core.d.ts +80 -1
  137. package/compatibility/compatibility.json +0 -594
  138. package/generated/java/src/main/java/io/gala/schema/generated/GalaSchemaRegistry.java +0 -67
  139. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityAdapterConfigurationCapabilities.java +0 -24
  140. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityAdapterIdentity.java +0 -20
  141. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityCapabilityDecision.java +0 -62
  142. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityCredentialEgressProfile.java +0 -35
  143. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityDestinationIdentity.java +0 -25
  144. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityDestinationProviderCoordinates.java +0 -19
  145. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityDocument.java +0 -52
  146. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityFilesystemProviderLimits.java +0 -32
  147. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityGithubActionsOidcOriginCatalog.java +0 -25
  148. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityHttpProviderLimits.java +0 -72
  149. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityLocalFilesystemAllowlist.java +0 -21
  150. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityLocalFilesystemAllowlistEntry.java +0 -28
  151. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityLocalFilesystemCapabilityEvidence.java +0 -42
  152. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityLocalFilesystemControlPublication.java +0 -26
  153. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityLocalFilesystemControlRow.java +0 -44
  154. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityLocalFilesystemFailureEvidence.java +0 -40
  155. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityLocalFilesystemObservationEvidence.java +0 -40
  156. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityLocalFilesystemPlatform.java +0 -25
  157. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityLocalFilesystemProbeSummary.java +0 -32
  158. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityLocalFilesystemProbeTranscript.java +0 -25
  159. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityLocalFilesystemReplacement.java +0 -22
  160. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityLocalFilesystemSurfaceIdentity.java +0 -20
  161. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityManagedExecutionBudget.java +0 -26
  162. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityPagesOidcCredentialEgress.java +0 -30
  163. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityProviderCallClassBinding.java +0 -22
  164. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityProviderCredentialEgress.java +0 -26
  165. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityProviderCredentialHeader.java +0 -24
  166. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityProviderDerivedHeader.java +0 -18
  167. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityProviderFixedHeader.java +0 -18
  168. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilityProviderRequestTemplate.java +0 -39
  169. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilitySpacesControlPlaneBinding.java +0 -32
  170. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilitySpacesControlPlaneRequest.java +0 -26
  171. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilitySpacesControlPlaneRequestCatalog.java +0 -31
  172. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilitySpacesControlPlaneResponseCatalog.java +0 -20
  173. package/generated/java/src/main/java/io/gala/schema/generated/model/AdapterCapabilitySpacesWebsiteConfiguration.java +0 -24
  174. package/generated/java/src/main/java/io/gala/schema/generated/model/AppearanceColorMode.java +0 -19
  175. package/generated/java/src/main/java/io/gala/schema/generated/model/AppearanceDocument.java +0 -37
  176. package/generated/java/src/main/java/io/gala/schema/generated/model/AppearanceExtensionMap.java +0 -15
  177. package/generated/java/src/main/java/io/gala/schema/generated/model/AppearanceSemanticTokens.java +0 -15
  178. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestActionPinEvidence.java +0 -20
  179. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestArtifactLicenseConclusion.java +0 -21
  180. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestAssertedWorkload.java +0 -44
  181. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestBuildSandboxEvidence.java +0 -38
  182. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestDocument.java +0 -73
  183. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestFinding.java +0 -22
  184. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestManifestAsset.java +0 -24
  185. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestManifestCompositionIdentity.java +0 -25
  186. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestManifestExcludedInput.java +0 -22
  187. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestManifestIncludedSource.java +0 -22
  188. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestManifestRedirect.java +0 -24
  189. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestManifestRoute.java +0 -28
  190. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestManifestSourceIdentity.java +0 -26
  191. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestManifestValidationEvidence.java +0 -22
  192. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestMeasurement.java +0 -20
  193. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestPackageIdentity.java +0 -22
  194. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestRenderPolicyIdentity.java +0 -20
  195. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestReproducibleBuildRecord.java +0 -56
  196. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestWorkflowCarrierEvidence.java +0 -26
  197. package/generated/java/src/main/java/io/gala/schema/generated/model/ArtifactManifestWorkflowFileEvidence.java +0 -26
  198. package/generated/java/src/main/java/io/gala/schema/generated/model/AuthorDocument.java +0 -33
  199. package/generated/java/src/main/java/io/gala/schema/generated/model/AuthorExtensionMap.java +0 -15
  200. package/generated/java/src/main/java/io/gala/schema/generated/model/AuthorLocalizedAuthor.java +0 -20
  201. package/generated/java/src/main/java/io/gala/schema/generated/model/AuthorSocialLink.java +0 -19
  202. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputAdapterIdentity.java +0 -20
  203. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputAppearanceNormalized.java +0 -33
  204. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputAuthorNormalized.java +0 -31
  205. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputBuildPackages.java +0 -25
  206. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputColorMode.java +0 -19
  207. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputContentBuildRecord.java +0 -33
  208. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputContentFrontmatterNormalized.java +0 -44
  209. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputDestinationCapabilityProfile.java +0 -20
  210. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputDocument.java +0 -51
  211. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputLocalizedAuthor.java +0 -20
  212. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputModuleBuildSelection.java +0 -15
  213. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputNavigationItem.java +0 -23
  214. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputNavigationLeaf.java +0 -22
  215. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputNavigationNormalized.java +0 -21
  216. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputPackageIdentity.java +0 -22
  217. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputPublicationNormalized.java +0 -39
  218. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputRenderPolicyIdentity.java +0 -20
  219. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputRenderableBody.java +0 -26
  220. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputRepositorySnapshot.java +0 -22
  221. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputResolvedFile.java +0 -18
  222. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputResolvedMedia.java +0 -20
  223. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputSemanticTokens.java +0 -15
  224. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildInputSocialLink.java +0 -19
  225. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceActionPinEvidence.java +0 -20
  226. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceArtifactLicenseConclusion.java +0 -21
  227. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceAssertedWorkload.java +0 -44
  228. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceBuildSandboxEvidence.java +0 -38
  229. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceDocument.java +0 -69
  230. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceFinding.java +0 -22
  231. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceManifestAsset.java +0 -24
  232. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceManifestCompositionIdentity.java +0 -25
  233. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceManifestExcludedInput.java +0 -22
  234. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceManifestIncludedSource.java +0 -22
  235. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceManifestRedirect.java +0 -24
  236. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceManifestRoute.java +0 -28
  237. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceManifestSourceIdentity.java +0 -26
  238. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceManifestValidationEvidence.java +0 -22
  239. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceMeasurement.java +0 -20
  240. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenancePackageIdentity.java +0 -22
  241. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceRenderPolicyIdentity.java +0 -20
  242. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceReproducibleBuildRecord.java +0 -56
  243. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceWorkflowCarrierEvidence.java +0 -26
  244. package/generated/java/src/main/java/io/gala/schema/generated/model/BuildProvenanceWorkflowFileEvidence.java +0 -26
  245. package/generated/java/src/main/java/io/gala/schema/generated/model/ContentFrontmatterDocument.java +0 -50
  246. package/generated/java/src/main/java/io/gala/schema/generated/model/ContentFrontmatterExtensionMap.java +0 -15
  247. package/generated/java/src/main/java/io/gala/schema/generated/model/ContentFrontmatterMediaRef.java +0 -20
  248. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentActivationBasis.java +0 -20
  249. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentActivationDetectionObservation.java +0 -33
  250. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentActivationDetectionPlan.java +0 -44
  251. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentActivationDetectionProbe.java +0 -52
  252. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentAdapterIdentity.java +0 -20
  253. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentCancellationFinalizationEvidence.java +0 -41
  254. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentDeadlineFinalizationEvidence.java +0 -39
  255. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentDeadlineFinalizationStream.java +0 -22
  256. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentDeploymentPolicyDecision.java +0 -75
  257. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentDestinationIdentity.java +0 -25
  258. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentDestinationMutationAuthority.java +0 -36
  259. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentDestinationProviderCoordinates.java +0 -19
  260. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentDocument.java +0 -136
  261. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentExpectedRedirectHop.java +0 -23
  262. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentObservedVerificationHeader.java +0 -19
  263. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentPackageIdentity.java +0 -22
  264. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentPagesInterveningRunAttempt.java +0 -20
  265. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentPagesReconciliationCommand.java +0 -48
  266. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentPagesReconciliationRecovery.java +0 -41
  267. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentPagesRunAttemptGapProof.java +0 -27
  268. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentPublicGenerationMarkerPayload.java +0 -24
  269. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentPublicProbeObservation.java +0 -54
  270. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentRecognizedPriorRouteContract.java +0 -30
  271. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentRenderPolicyIdentity.java +0 -20
  272. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentReproducibleBuildRecord.java +0 -56
  273. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentSupersessionFinalizationEvidence.java +0 -45
  274. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentVerificationHeaderExpectation.java +0 -18
  275. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentIntentVerificationPlanTarget.java +0 -52
  276. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationActivationDetectionObservation.java +0 -33
  277. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationActivationDetectionProbe.java +0 -52
  278. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationAdapterIdentity.java +0 -20
  279. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationCancellationFinalizationEvidence.java +0 -41
  280. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationDeadlineFinalizationEvidence.java +0 -39
  281. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationDeadlineFinalizationStream.java +0 -22
  282. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationDestinationIdentity.java +0 -25
  283. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationDestinationProviderCoordinates.java +0 -19
  284. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationDocument.java +0 -57
  285. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationExpectedRedirectHop.java +0 -23
  286. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationObservedVerificationHeader.java +0 -19
  287. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationPackageIdentity.java +0 -22
  288. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationPublicProbeObservation.java +0 -54
  289. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationRecognizedPriorRouteContract.java +0 -30
  290. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationRenderPolicyIdentity.java +0 -20
  291. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationSupersessionFinalizationEvidence.java +0 -45
  292. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationVerificationHeaderExpectation.java +0 -18
  293. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentObservationVerificationPlanTarget.java +0 -52
  294. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptActivationBasis.java +0 -20
  295. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptActivationDetectionObservation.java +0 -33
  296. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptActivationDetectionPlan.java +0 -44
  297. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptActivationDetectionProbe.java +0 -52
  298. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptAdapterIdentity.java +0 -20
  299. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptCancellationFinalizationEvidence.java +0 -41
  300. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptDeadlineFinalizationEvidence.java +0 -39
  301. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptDeadlineFinalizationStream.java +0 -22
  302. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptDeploymentAttempt.java +0 -38
  303. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptDeploymentFailure.java +0 -24
  304. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptDeploymentObservation.java +0 -53
  305. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptDeploymentPolicyDecision.java +0 -75
  306. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptDeploymentStageEvidence.java +0 -36
  307. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptDeploymentStageInput.java +0 -26
  308. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptDeploymentStageObservationEvidenceReference.java +0 -18
  309. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptDeploymentStageResult.java +0 -31
  310. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptDestinationIdentity.java +0 -25
  311. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptDestinationMutationAuthority.java +0 -36
  312. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptDestinationProviderCoordinates.java +0 -19
  313. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptDocument.java +0 -105
  314. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptExpectedRedirectHop.java +0 -23
  315. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptFinding.java +0 -22
  316. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptObservedVerificationHeader.java +0 -19
  317. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptPackageIdentity.java +0 -22
  318. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptPagesInterveningRunAttempt.java +0 -20
  319. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptPagesReconciliationCommand.java +0 -48
  320. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptPagesReconciliationRecovery.java +0 -41
  321. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptPagesRunAttemptGapProof.java +0 -27
  322. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptPublicGenerationMarkerPayload.java +0 -24
  323. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptPublicProbeObservation.java +0 -54
  324. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptRecognizedPriorRouteContract.java +0 -30
  325. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptRenderPolicyIdentity.java +0 -20
  326. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptReproducibleBuildRecord.java +0 -56
  327. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptSupersessionFinalizationEvidence.java +0 -45
  328. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptVerificationHeaderExpectation.java +0 -18
  329. package/generated/java/src/main/java/io/gala/schema/generated/model/DeploymentReceiptVerificationPlanTarget.java +0 -52
  330. package/generated/java/src/main/java/io/gala/schema/generated/model/EventEnvelopeDocument.java +0 -46
  331. package/generated/java/src/main/java/io/gala/schema/generated/model/EventEnvelopeRegisteredEventPayload.java +0 -26
  332. package/generated/java/src/main/java/io/gala/schema/generated/model/LockDependencyEdge.java +0 -18
  333. package/generated/java/src/main/java/io/gala/schema/generated/model/LockDocument.java +0 -39
  334. package/generated/java/src/main/java/io/gala/schema/generated/model/LockLockedPackage.java +0 -26
  335. package/generated/java/src/main/java/io/gala/schema/generated/model/LockLockedTemplate.java +0 -28
  336. package/generated/java/src/main/java/io/gala/schema/generated/model/LockPackageIdentity.java +0 -22
  337. package/generated/java/src/main/java/io/gala/schema/generated/model/NavigationDocument.java +0 -25
  338. package/generated/java/src/main/java/io/gala/schema/generated/model/NavigationExtensionMap.java +0 -15
  339. package/generated/java/src/main/java/io/gala/schema/generated/model/NavigationNavigationItem.java +0 -23
  340. package/generated/java/src/main/java/io/gala/schema/generated/model/NavigationNavigationLeaf.java +0 -23
  341. package/generated/java/src/main/java/io/gala/schema/generated/model/ProblemDocument.java +0 -37
  342. package/generated/java/src/main/java/io/gala/schema/generated/model/ProblemFieldError.java +0 -18
  343. package/generated/java/src/main/java/io/gala/schema/generated/model/PublicGenerationMarkerDocument.java +0 -24
  344. package/generated/java/src/main/java/io/gala/schema/generated/model/PublicRuntimeOriginsDocument.java +0 -44
  345. package/generated/java/src/main/java/io/gala/schema/generated/model/PublicationDocument.java +0 -41
  346. package/generated/java/src/main/java/io/gala/schema/generated/model/PublicationExtensionMap.java +0 -15
  347. package/generated/java/src/main/java/io/gala/schema/generated/model/PublicationFooterCard.java +0 -23
  348. package/generated/java/src/main/java/io/gala/schema/generated/model/PublicationPublicationProfile.java +0 -18
  349. package/generated/java/src/main/java/io/gala/schema/generated/model/PublicationSocialLink.java +0 -19
  350. package/generated/java/src/main/java/io/gala/schema/generated/model/RepositoryAssetRoot.java +0 -16
  351. package/generated/java/src/main/java/io/gala/schema/generated/model/RepositoryContentRoot.java +0 -23
  352. package/generated/java/src/main/java/io/gala/schema/generated/model/RepositoryDocument.java +0 -41
  353. package/generated/java/src/main/java/io/gala/schema/generated/model/RepositoryExtensionMap.java +0 -15
  354. package/generated/java/src/main/java/io/gala/schema/generated/model/RepositoryGeneratedRoot.java +0 -20
  355. package/generated/java/src/main/java/io/gala/schema/generated/model/TemplateCompositionDocument.java +0 -18
  356. package/generated/java/src/main/java/io/gala/schema/generated/model/ThemeContractDocument.java +0 -53
  357. package/generated/java/src/main/java/io/gala/schema/generated/model/ThemeContractPassiveAsset.java +0 -24
  358. package/generated/java/src/main/java/io/gala/schema/generated/model/ThemeContractThemeBudgets.java +0 -20
  359. package/generated/java/src/main/java/io/gala/schema/generated/model/ThemeContractThemeToken.java +0 -22
  360. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/adapter-capability.schema.json +0 -2689
  361. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/appearance.schema.json +0 -226
  362. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/artifact-manifest.schema.json +0 -1063
  363. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/author.schema.json +0 -231
  364. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/build-input.schema.json +0 -866
  365. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/build-provenance.schema.json +0 -937
  366. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/content-frontmatter.schema.json +0 -241
  367. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/deployment-intent.schema.json +0 -2067
  368. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/deployment-observation.schema.json +0 -1654
  369. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/deployment-receipt.schema.json +0 -5546
  370. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/event-envelope.schema.json +0 -195
  371. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/lock.schema.json +0 -326
  372. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/navigation.schema.json +0 -229
  373. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/problem.schema.json +0 -194
  374. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/public-generation-marker.schema.json +0 -142
  375. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/public-runtime-origins.schema.json +0 -183
  376. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/publication.schema.json +0 -248
  377. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/repository.schema.json +0 -219
  378. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/template-composition.schema.json +0 -133
  379. package/generated/java/src/main/resources/io/gala/schema/generated/schemas/theme-contract.schema.json +0 -850
  380. package/generated/typescript/validator-core.cjs +0 -17
  381. package/openapi/generator/spring.json +0 -22
  382. package/openapi/generator/typescript-fetch.json +0 -19
  383. package/openapi/source/authentication.yaml +0 -557
  384. package/openapi/source/callbacks.yaml +0 -332
  385. package/openapi/source/components.yaml +0 -5670
  386. package/openapi/source/github.yaml +0 -351
  387. package/openapi/source/internal.yaml +0 -71
  388. package/openapi/source/membership-invitations.yaml +0 -203
  389. package/openapi/source/organizations.yaml +0 -11144
  390. package/openapi/source/root.yaml +0 -20
  391. package/openapi/source/self.yaml +0 -1940
  392. package/openapi/source/session.yaml +0 -308
  393. package/openapi/source/workloads.yaml +0 -744
  394. package/src/internal/build-artifact-semantics.js +0 -4391
  395. package/src/internal/deployment-record-semantics.js +0 -7567
  396. package/src/internal/deployment-stage-semantics.js +0 -1207
  397. package/src/internal/http-problem-contract.js +0 -35
  398. package/src/internal/managed-evidence-journal.js +0 -160
  399. package/src/internal/public-runtime-origins.js +0 -143
  400. package/src/internal/theme-composition-semantics.js +0 -2441
  401. package/types/internal/build-artifact-semantics.d.ts +0 -77
  402. package/types/internal/deployment-record-semantics.d.ts +0 -313
  403. package/types/internal/deployment-stage-semantics.d.ts +0 -108
  404. package/types/internal/http-problem-contract.d.ts +0 -4
  405. package/types/internal/managed-evidence-journal.d.ts +0 -26
  406. package/types/internal/public-runtime-origins.d.ts +0 -22
  407. package/types/internal/theme-composition-semantics.d.ts +0 -143
@@ -1,1654 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "urn:gala:schema:deployment-observation:2.0.0",
4
- "title": "Gala deployment-observation contract",
5
- "type": "object",
6
- "required": [
7
- "schemaId",
8
- "schemaVersion",
9
- "observationId",
10
- "operationId",
11
- "attemptId",
12
- "stageAttemptId",
13
- "sequence",
14
- "intentDigest",
15
- "artifactId",
16
- "artifactDigest",
17
- "adapter",
18
- "destination",
19
- "observationClass",
20
- "outcome",
21
- "destinationChanged",
22
- "observedAt",
23
- "receivedAt",
24
- "evidenceDigest",
25
- "probes"
26
- ],
27
- "properties": {
28
- "schemaId": { "const": "urn:gala:schema:deployment-observation:2.0.0" },
29
- "schemaVersion": { "const": "2.0.0" },
30
- "observationId": { "$ref": "#/$defs/stableId" },
31
- "operationId": { "$ref": "#/$defs/stableId" },
32
- "attemptId": { "$ref": "#/$defs/stableId" },
33
- "stageAttemptId": { "$ref": "#/$defs/stableId" },
34
- "sequence": { "type": "integer", "minimum": 1, "maximum": 1000 },
35
- "intentDigest": { "$ref": "#/$defs/digest" },
36
- "artifactId": { "$ref": "#/$defs/stableId" },
37
- "artifactDigest": { "$ref": "#/$defs/digest" },
38
- "adapter": { "$ref": "#/$defs/adapterIdentity" },
39
- "destination": { "$ref": "#/$defs/destinationIdentity" },
40
- "generationId": { "$ref": "#/$defs/stableId" },
41
- "providerObjectIdDigest": { "$ref": "#/$defs/digest" },
42
- "providerVersion": { "$ref": "#/$defs/plainLabel" },
43
- "observedArtifactDigest": { "$ref": "#/$defs/digest" },
44
- "observationClass": {
45
- "enum": [
46
- "request-not-started",
47
- "request-accepted",
48
- "provider-state",
49
- "public-state",
50
- "deadline-finalization",
51
- "supersession-finalization",
52
- "timeout",
53
- "provider-error"
54
- ]
55
- },
56
- "outcome": {
57
- "enum": [
58
- "succeeded",
59
- "rejected",
60
- "not-attempted-retryable",
61
- "outcome-unknown-reconciling",
62
- "authorization-lost",
63
- "rate-limited",
64
- "provider-contract-violation"
65
- ]
66
- },
67
- "destinationChanged": { "enum": ["yes", "no", "unknown"] },
68
- "observedAt": { "$ref": "#/$defs/rfc3339" },
69
- "receivedAt": { "$ref": "#/$defs/rfc3339" },
70
- "evidenceDigest": { "$ref": "#/$defs/digest" },
71
- "probes": {
72
- "type": "array",
73
- "items": { "$ref": "#/$defs/publicProbeObservation" },
74
- "minItems": 0,
75
- "maxItems": 16
76
- }
77
- },
78
- "additionalProperties": false,
79
- "$defs": {
80
- "stableId": {
81
- "type": "string",
82
- "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$",
83
- "description": "Lowercase canonical UUIDv7. Once published, it is immutable; its time ordering conveys neither chronology nor authority."
84
- },
85
- "slug": {
86
- "type": "string",
87
- "minLength": 1,
88
- "maxLength": 80,
89
- "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
90
- },
91
- "repoRelativePath": {
92
- "type": "string",
93
- "minLength": 1,
94
- "maxLength": 512,
95
- "pattern": "^(?!/)(?!.*\\\\)(?!.*\\u0000).+$",
96
- "format": "gala-repository-relative-path",
97
- "x-gala-utf8ByteLength": { "maximum": 512 },
98
- "description": "NFC UTF-8 repository-relative path using slash separators, with no leading slash, dot segment, NUL, backslash, or percent-decoded traversal."
99
- },
100
- "canonicalRoute": {
101
- "type": "string",
102
- "minLength": 1,
103
- "pattern": "^/(?!/)(?!.*//)(?!.*[?#]).*$",
104
- "format": "gala-canonical-route",
105
- "description": "Absolute normalized route with no query, fragment, dot segment, double slash, or non-normalized percent encoding."
106
- },
107
- "gitObjectId": {
108
- "type": "string",
109
- "pattern": "^(?:sha1:[0-9a-f]{40}|sha256:[0-9a-f]{64})$"
110
- },
111
- "digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
112
- "urlHttps": {
113
- "type": "string",
114
- "format": "uri",
115
- "pattern": "^https://(?![^/?#]*@)",
116
- "description": "Absolute HTTPS URL without embedded credentials."
117
- },
118
- "bcp47": {
119
- "type": "string",
120
- "minLength": 1,
121
- "maxLength": 255,
122
- "pattern": "^[A-Za-z0-9-]+$",
123
- "format": "gala-bcp47",
124
- "x-gala-utf8ByteLength": { "minimum": 1, "maximum": 255 },
125
- "description": "Structurally valid canonical BCP-47 language tag."
126
- },
127
- "isoCountry": {
128
- "type": "string",
129
- "pattern": "^[A-Z]{2}$",
130
- "format": "gala-iso-country",
131
- "description": "ISO 3166-1 alpha-2 country code; admission remains subject to the active policy profile."
132
- },
133
- "plainLabel": {
134
- "type": "string",
135
- "format": "gala-plain-label",
136
- "x-gala-graphemeLength": { "minimum": 1, "maximum": 80 },
137
- "description": "Normalized Unicode plain text without markup, controls, or bidi overrides."
138
- },
139
- "plainText": {
140
- "type": "string",
141
- "format": "gala-plain-text",
142
- "description": "NFC Unicode text without disallowed C0/C1 controls or bidi override/isolate controls."
143
- },
144
- "rfc3339": {
145
- "type": "string",
146
- "format": "date-time",
147
- "pattern": "^[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])T(?:[01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]\\.[0-9]{3}Z$",
148
- "description": "Canonical Gala UTC millisecond subset of RFC 3339."
149
- },
150
- "semver": {
151
- "type": "string",
152
- "pattern": "^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-(?:0|[1-9]\\d*|\\d*[A-Za-z-][0-9A-Za-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[A-Za-z-][0-9A-Za-z-]*))*)?$",
153
- "description": "Canonical SemVer 2.0.0 without build metadata."
154
- },
155
- "semverRange": {
156
- "type": "string",
157
- "minLength": 1,
158
- "pattern": "^(?:\\S+|\\S+ \\S+)$",
159
- "format": "gala-semver-range",
160
- "description": "Whitespace-free npm-compatible exact, caret, or bounded comparator-set range; tags and URLs are invalid."
161
- },
162
- "packageRange": {
163
- "type": "string",
164
- "minLength": 3,
165
- "pattern": "^(?:@[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?/[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?|[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?)@(?:\\S+|\\S+ \\S+)$",
166
- "format": "gala-package-range",
167
- "description": "Lowercase npm package identity and admitted semver range; Git, file, URL, and alias sources are invalid."
168
- },
169
- "packageExact": {
170
- "type": "string",
171
- "minLength": 3,
172
- "pattern": "^(?:@[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?/[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?|[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?)@\\S+$",
173
- "format": "gala-package-exact",
174
- "description": "Lowercase npm package identity and exact canonical semantic version; aliases are invalid."
175
- },
176
- "urn": {
177
- "type": "string",
178
- "minLength": 10,
179
- "maxLength": 255,
180
- "format": "uri",
181
- "pattern": "^urn:gala:[\\x21-\\x7E]+$",
182
- "description": "Absolute ASCII URN in the schema-declared Gala namespace."
183
- },
184
- "glob": {
185
- "type": "string",
186
- "minLength": 1,
187
- "maxLength": 256,
188
- "format": "gala-repository-glob",
189
- "x-gala-utf8ByteLength": { "maximum": 256 },
190
- "description": "Repository-relative POSIX glob using only star, globstar, and question-mark operators; braces, extglobs, negation, absolute paths, and parent traversal are invalid."
191
- },
192
- "passiveVisualToken": false,
193
- "extensionKey": {
194
- "type": "string",
195
- "format": "gala-extension-key",
196
- "description": "Reverse-DNS extension namespace that cannot shadow a core key."
197
- },
198
- "npmPackageName": {
199
- "type": "string",
200
- "minLength": 1,
201
- "maxLength": 214,
202
- "pattern": "^(?:[a-z0-9][a-z0-9._-]*|@[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*)$",
203
- "x-gala-utf8ByteLength": { "maximum": 214 }
204
- },
205
- "int64": {
206
- "type": "string",
207
- "pattern": "^(?:0|-?[1-9][0-9]*)$",
208
- "format": "gala-int64",
209
- "description": "Canonical signed 64-bit base-10 JSON string."
210
- },
211
- "nonNegativeInt64": {
212
- "type": "string",
213
- "pattern": "^(?:0|[1-9][0-9]*)$",
214
- "format": "gala-int64"
215
- },
216
- "positiveInt64": {
217
- "type": "string",
218
- "pattern": "^[1-9][0-9]*$",
219
- "format": "gala-int64"
220
- },
221
- "githubPositiveDecimal": {
222
- "type": "string",
223
- "minLength": 1,
224
- "maxLength": 20,
225
- "pattern": "^[1-9][0-9]{0,19}$",
226
- "format": "gala-github-positive-uint64"
227
- },
228
- "githubActionsArtifactId": { "$ref": "#/$defs/githubPositiveDecimal" },
229
- "lowerHex40": { "type": "string", "pattern": "^[0-9a-f]{40}$" },
230
- "packageIdentity": {
231
- "type": "object",
232
- "required": ["package", "version", "integrity", "registry"],
233
- "properties": {
234
- "package": { "$ref": "#/$defs/npmPackageName" },
235
- "version": { "$ref": "#/$defs/semver" },
236
- "integrity": { "$ref": "#/$defs/digest" },
237
- "registry": { "$ref": "#/$defs/urlHttps" }
238
- },
239
- "additionalProperties": false
240
- },
241
- "adapterIdentity": {
242
- "type": "object",
243
- "required": ["adapterId", "adapterVersion", "adapterDigest"],
244
- "properties": {
245
- "adapterId": { "$ref": "#/$defs/plainLabel" },
246
- "adapterVersion": { "$ref": "#/$defs/semver" },
247
- "adapterDigest": { "$ref": "#/$defs/digest" }
248
- },
249
- "additionalProperties": false
250
- },
251
- "destinationIdentity": {
252
- "type": "object",
253
- "required": [
254
- "environment",
255
- "adapterId",
256
- "adapterVersion",
257
- "targetDigest",
258
- "baseUrl"
259
- ],
260
- "properties": {
261
- "environment": {
262
- "type": "string",
263
- "enum": ["github-pages", "do-spaces", "local-directory"],
264
- "description": "One constant per adapter (LOCAL-60a): `github-pages`, `do-spaces` or `local-directory`; it equals `adapterId` for each MVP adapter."
265
- },
266
- "adapterId": { "$ref": "#/$defs/plainLabel" },
267
- "adapterVersion": { "$ref": "#/$defs/semver" },
268
- "targetDigest": { "$ref": "#/$defs/digest" },
269
- "baseUrl": {
270
- "allOf": [{ "$ref": "#/$defs/urlHttps" }],
271
- "maxLength": 2048,
272
- "x-gala-utf8ByteLength": { "maximum": 2048 }
273
- },
274
- "providerBinding": { "$ref": "#/$defs/destinationProviderCoordinates" }
275
- },
276
- "additionalProperties": false,
277
- "allOf": [
278
- {
279
- "if": {
280
- "properties": { "adapterId": { "const": "github-pages" } },
281
- "required": ["adapterId"]
282
- },
283
- "then": {
284
- "properties": { "environment": { "const": "github-pages" } }
285
- }
286
- },
287
- {
288
- "if": {
289
- "properties": { "adapterId": { "const": "do-spaces" } },
290
- "required": ["adapterId"]
291
- },
292
- "then": { "properties": { "environment": { "const": "do-spaces" } } }
293
- },
294
- {
295
- "if": {
296
- "properties": { "adapterId": { "const": "local-directory" } },
297
- "required": ["adapterId"]
298
- },
299
- "then": {
300
- "properties": { "environment": { "const": "local-directory" } }
301
- }
302
- },
303
- {
304
- "if": {
305
- "properties": { "adapterId": { "const": "github-pages" } },
306
- "required": ["adapterId", "providerBinding"]
307
- },
308
- "then": {
309
- "properties": {
310
- "providerBinding": {
311
- "required": ["owner", "repository"],
312
- "properties": {
313
- "region": false,
314
- "servedBucket": false,
315
- "stagingBucket": false
316
- }
317
- }
318
- }
319
- }
320
- },
321
- {
322
- "if": {
323
- "properties": { "adapterId": { "const": "do-spaces" } },
324
- "required": ["adapterId", "providerBinding"]
325
- },
326
- "then": {
327
- "properties": {
328
- "providerBinding": {
329
- "required": ["region", "servedBucket", "stagingBucket"],
330
- "properties": { "owner": false, "repository": false }
331
- }
332
- }
333
- }
334
- },
335
- {
336
- "if": {
337
- "properties": { "adapterId": { "const": "local-directory" } },
338
- "required": ["adapterId"]
339
- },
340
- "then": { "properties": { "providerBinding": false } }
341
- }
342
- ]
343
- },
344
- "destinationProviderCoordinates": {
345
- "type": "object",
346
- "required": [],
347
- "properties": {
348
- "owner": {
349
- "type": "string",
350
- "minLength": 1,
351
- "maxLength": 39,
352
- "pattern": "^[A-Za-z0-9](?:[A-Za-z0-9-]{0,37}[A-Za-z0-9])?$",
353
- "x-gala-asciiByteLength": { "minimum": 1, "maximum": 39 },
354
- "description": "GitHub owner login, for `github-pages` destinations."
355
- },
356
- "repository": {
357
- "type": "string",
358
- "minLength": 1,
359
- "maxLength": 100,
360
- "pattern": "^(?!\\.{1,2}$)[A-Za-z0-9._-]{1,100}$",
361
- "x-gala-asciiByteLength": { "minimum": 1, "maximum": 100 },
362
- "description": "GitHub repository name, for `github-pages` destinations."
363
- },
364
- "region": { "$ref": "#/$defs/spacesRegion" },
365
- "servedBucket": { "$ref": "#/$defs/spacesBucket" },
366
- "stagingBucket": { "$ref": "#/$defs/spacesBucket" }
367
- },
368
- "additionalProperties": false
369
- },
370
- "spacesBucket": {
371
- "type": "string",
372
- "minLength": 3,
373
- "maxLength": 63,
374
- "pattern": "^[a-z0-9](?:[a-z0-9-]{1,61}[a-z0-9])$",
375
- "x-gala-asciiByteLength": { "minimum": 3, "maximum": 63 }
376
- },
377
- "spacesRegion": {
378
- "type": "string",
379
- "pattern": "^[a-z]{3}[1-9][0-9]?$",
380
- "x-gala-asciiByteLength": { "minimum": 4, "maximum": 5 }
381
- },
382
- "renderPolicyIdentity": {
383
- "type": "object",
384
- "required": ["name", "version", "digest"],
385
- "properties": {
386
- "name": { "$ref": "#/$defs/plainLabel" },
387
- "version": { "$ref": "#/$defs/semver" },
388
- "digest": { "$ref": "#/$defs/digest" }
389
- },
390
- "additionalProperties": false
391
- },
392
- "verificationOrigin": {
393
- "type": "string",
394
- "minLength": 9,
395
- "maxLength": 2048,
396
- "pattern": "^https://[\\x21-\\x7e]+$",
397
- "format": "gala-verification-origin",
398
- "x-gala-utf8ByteLength": { "maximum": 2048 }
399
- },
400
- "verificationUrl": {
401
- "type": "string",
402
- "minLength": 10,
403
- "maxLength": 2048,
404
- "pattern": "^https://[\\x21-\\x7e]+$",
405
- "format": "gala-verification-url",
406
- "x-gala-utf8ByteLength": { "maximum": 2048 }
407
- },
408
- "observedRedirectLocation": {
409
- "type": "string",
410
- "minLength": 1,
411
- "maxLength": 2048,
412
- "pattern": "^https?://[\\x21-\\x7e]+$",
413
- "format": "gala-observed-redirect-location",
414
- "x-gala-utf8ByteLength": { "maximum": 2048 }
415
- },
416
- "probeRegion": {
417
- "type": "string",
418
- "minLength": 1,
419
- "maxLength": 32,
420
- "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
421
- },
422
- "verificationHeaderName": {
423
- "type": "string",
424
- "minLength": 1,
425
- "maxLength": 64,
426
- "pattern": "^[!#$%&'*+.^_`|~0-9a-z-]{1,64}$",
427
- "not": {
428
- "enum": [
429
- "authorization",
430
- "proxy-authorization",
431
- "cookie",
432
- "set-cookie",
433
- "www-authenticate",
434
- "proxy-authenticate",
435
- "authentication-info",
436
- "proxy-authentication-info",
437
- "connection",
438
- "keep-alive",
439
- "te",
440
- "trailer",
441
- "transfer-encoding",
442
- "upgrade",
443
- "location",
444
- "content-length"
445
- ]
446
- }
447
- },
448
- "verificationHeaderValue": {
449
- "type": "string",
450
- "maxLength": 1024,
451
- "pattern": "^(?:$|[!-~](?:[ -~]{0,1022}[!-~])?)$",
452
- "x-gala-utf8ByteLength": { "maximum": 1024 }
453
- },
454
- "observedVerificationHeader": {
455
- "type": "object",
456
- "required": ["name", "state"],
457
- "properties": {
458
- "name": { "$ref": "#/$defs/verificationHeaderName" },
459
- "state": { "enum": ["present", "absent", "unsafe-omitted"] },
460
- "value": { "$ref": "#/$defs/verificationHeaderValue" }
461
- },
462
- "additionalProperties": false,
463
- "allOf": [
464
- {
465
- "if": {
466
- "properties": { "state": { "const": "present" } },
467
- "required": ["state"]
468
- },
469
- "then": { "required": ["value"] },
470
- "else": { "not": { "anyOf": [{ "required": ["value"] }] } }
471
- }
472
- ]
473
- },
474
- "expectedRedirectHop": {
475
- "type": "object",
476
- "required": [
477
- "hopNumber",
478
- "requestUrl",
479
- "expectedStatus",
480
- "expectedLocation"
481
- ],
482
- "properties": {
483
- "hopNumber": { "type": "integer", "minimum": 0, "maximum": 9 },
484
- "requestUrl": { "$ref": "#/$defs/verificationUrl" },
485
- "expectedStatus": { "enum": [301, 302, 303, 307, 308] },
486
- "expectedLocation": { "$ref": "#/$defs/verificationUrl" }
487
- },
488
- "additionalProperties": false
489
- },
490
- "verificationHeaderExpectation": {
491
- "type": "object",
492
- "required": ["name", "value"],
493
- "properties": {
494
- "name": { "$ref": "#/$defs/verificationHeaderName" },
495
- "value": { "$ref": "#/$defs/verificationHeaderValue" }
496
- },
497
- "additionalProperties": false
498
- },
499
- "recognizedPriorRouteContract": {
500
- "type": "object",
501
- "required": [
502
- "generationId",
503
- "redirectChain",
504
- "terminalRequestUrl",
505
- "expectedTerminalStatus",
506
- "expectedByteLength",
507
- "expectedHeaders",
508
- "expectedDigest"
509
- ],
510
- "properties": {
511
- "generationId": { "$ref": "#/$defs/stableId" },
512
- "redirectChain": {
513
- "type": "array",
514
- "items": { "$ref": "#/$defs/expectedRedirectHop" },
515
- "minItems": 0,
516
- "maxItems": 10
517
- },
518
- "terminalRequestUrl": { "$ref": "#/$defs/verificationUrl" },
519
- "expectedTerminalStatus": { "enum": [200, 404] },
520
- "expectedByteLength": { "$ref": "#/$defs/nonNegativeInt64" },
521
- "expectedHeaders": {
522
- "type": "array",
523
- "items": { "$ref": "#/$defs/verificationHeaderExpectation" },
524
- "minItems": 0,
525
- "maxItems": 32
526
- },
527
- "expectedDigest": { "$ref": "#/$defs/digest" }
528
- },
529
- "additionalProperties": false
530
- },
531
- "verificationPlanTarget": {
532
- "type": "object",
533
- "required": [
534
- "targetId",
535
- "origin",
536
- "route",
537
- "requiredProbeRegions",
538
- "redirectChain",
539
- "terminalRequestUrl",
540
- "expectedTerminalStatus",
541
- "expectedByteLength",
542
- "maximumResponseBytes",
543
- "maximumResponseWireBytes",
544
- "requestTimeoutSeconds",
545
- "requestProfile",
546
- "retryProfile",
547
- "maximumAttempts",
548
- "maximumConcurrentStreams",
549
- "expectedHeaders",
550
- "expectedCandidateDigest",
551
- "recognizedPriorContracts"
552
- ],
553
- "properties": {
554
- "targetId": { "type": "integer", "minimum": 1, "maximum": 900 },
555
- "origin": { "$ref": "#/$defs/verificationOrigin" },
556
- "route": { "$ref": "#/$defs/canonicalRoute" },
557
- "requiredProbeRegions": {
558
- "type": "array",
559
- "items": { "$ref": "#/$defs/probeRegion" },
560
- "minItems": 1,
561
- "maxItems": 8,
562
- "uniqueItems": true
563
- },
564
- "redirectChain": {
565
- "type": "array",
566
- "items": { "$ref": "#/$defs/expectedRedirectHop" },
567
- "minItems": 0,
568
- "maxItems": 10
569
- },
570
- "terminalRequestUrl": { "$ref": "#/$defs/verificationUrl" },
571
- "expectedTerminalStatus": { "enum": [200, 404] },
572
- "expectedByteLength": { "$ref": "#/$defs/nonNegativeInt64" },
573
- "maximumResponseBytes": { "$ref": "#/$defs/nonNegativeInt64" },
574
- "maximumResponseWireBytes": { "$ref": "#/$defs/positiveInt64" },
575
- "requestTimeoutSeconds": {
576
- "type": "integer",
577
- "minimum": 1,
578
- "maximum": 30
579
- },
580
- "requestProfile": { "const": "gala-public-verifier-v2" },
581
- "retryProfile": { "const": "gala-public-probe-retry-v2" },
582
- "maximumAttempts": { "type": "integer", "minimum": 1, "maximum": 10 },
583
- "maximumConcurrentStreams": {
584
- "type": "integer",
585
- "minimum": 1,
586
- "maximum": 32
587
- },
588
- "expectedHeaders": {
589
- "type": "array",
590
- "items": { "$ref": "#/$defs/verificationHeaderExpectation" },
591
- "minItems": 0,
592
- "maxItems": 32
593
- },
594
- "expectedCandidateDigest": { "$ref": "#/$defs/digest" },
595
- "recognizedPriorContracts": {
596
- "type": "array",
597
- "items": { "$ref": "#/$defs/recognizedPriorRouteContract" },
598
- "minItems": 0,
599
- "maxItems": 6
600
- }
601
- },
602
- "additionalProperties": false
603
- },
604
- "publicProbeObservation": {
605
- "type": "object",
606
- "required": [
607
- "targetId",
608
- "attemptNumber",
609
- "hopNumber",
610
- "origin",
611
- "route",
612
- "requestUrl",
613
- "probeRegion",
614
- "requestStartedAt",
615
- "observedAt",
616
- "expectedCandidateDigest",
617
- "responseHeadState",
618
- "observedLocationState",
619
- "observedHeaders",
620
- "bodyState",
621
- "classification",
622
- "evidenceDigest"
623
- ],
624
- "properties": {
625
- "targetId": { "type": "integer", "minimum": 1, "maximum": 900 },
626
- "attemptNumber": { "type": "integer", "minimum": 1, "maximum": 10 },
627
- "hopNumber": { "type": "integer", "minimum": 0, "maximum": 10 },
628
- "origin": { "$ref": "#/$defs/verificationOrigin" },
629
- "route": { "$ref": "#/$defs/canonicalRoute" },
630
- "requestUrl": { "$ref": "#/$defs/verificationUrl" },
631
- "probeRegion": { "$ref": "#/$defs/probeRegion" },
632
- "contractGenerationId": { "$ref": "#/$defs/stableId" },
633
- "precedingProbeEvidenceDigest": { "$ref": "#/$defs/digest" },
634
- "requestStartedAt": { "$ref": "#/$defs/rfc3339" },
635
- "observedAt": { "$ref": "#/$defs/rfc3339" },
636
- "expectedCandidateDigest": { "$ref": "#/$defs/digest" },
637
- "responseHeadState": {
638
- "enum": ["not-received", "complete", "limit-exceeded", "malformed"]
639
- },
640
- "observedStatus": { "type": "integer", "minimum": 100, "maximum": 599 },
641
- "observedLocationState": {
642
- "enum": ["absent", "retained", "unsafe-omitted", "head-unavailable"]
643
- },
644
- "observedLocation": { "$ref": "#/$defs/observedRedirectLocation" },
645
- "observedHeaders": {
646
- "type": "array",
647
- "items": { "$ref": "#/$defs/observedVerificationHeader" },
648
- "minItems": 0,
649
- "maxItems": 32
650
- },
651
- "bodyState": {
652
- "enum": [
653
- "not-read",
654
- "incomplete",
655
- "complete",
656
- "limit-exceeded",
657
- "encoding-rejected",
658
- "framing-rejected"
659
- ]
660
- },
661
- "observedByteLength": { "$ref": "#/$defs/nonNegativeInt64" },
662
- "observedDigest": { "$ref": "#/$defs/digest" },
663
- "observedGenerationId": {
664
- "$ref": "#/$defs/stableId",
665
- "description": "The generation the destination is observed to be serving. Unlike the write-side `expectedGenerationId` fence, this observation-side field is simply absent when nothing is served and may be carried as null by a consumer that models it nullably: an observation reports what is there, so \"nothing\" is a truthful reading, while an expectation of \"nothing\" must be stated as the explicit expect-nothing-served sentinel and can never be an omission (LOCAL-52)."
666
- },
667
- "classification": {
668
- "enum": [
669
- "redirect-match",
670
- "candidate",
671
- "recognized-prior",
672
- "integrity-mismatch",
673
- "inconclusive"
674
- ]
675
- },
676
- "evidenceDigest": { "$ref": "#/$defs/digest" }
677
- },
678
- "additionalProperties": false,
679
- "allOf": [
680
- {
681
- "if": {
682
- "properties": { "hopNumber": { "const": 0 } },
683
- "required": ["hopNumber"]
684
- },
685
- "then": {
686
- "not": {
687
- "anyOf": [{ "required": ["precedingProbeEvidenceDigest"] }]
688
- }
689
- },
690
- "else": { "required": ["precedingProbeEvidenceDigest"] }
691
- },
692
- {
693
- "if": {
694
- "properties": { "observedLocationState": { "const": "retained" } },
695
- "required": ["observedLocationState"]
696
- },
697
- "then": { "required": ["observedLocation"] },
698
- "else": { "not": { "anyOf": [{ "required": ["observedLocation"] }] } }
699
- },
700
- {
701
- "if": {
702
- "properties": { "bodyState": { "const": "complete" } },
703
- "required": ["bodyState"]
704
- },
705
- "then": { "required": ["observedByteLength", "observedDigest"] },
706
- "else": {
707
- "not": {
708
- "anyOf": [
709
- { "required": ["observedByteLength"] },
710
- { "required": ["observedDigest"] }
711
- ]
712
- }
713
- }
714
- },
715
- {
716
- "if": {
717
- "properties": { "bodyState": { "const": "complete" } },
718
- "required": ["bodyState"]
719
- },
720
- "else": {
721
- "not": { "anyOf": [{ "required": ["observedGenerationId"] }] }
722
- }
723
- },
724
- {
725
- "if": {
726
- "properties": { "responseHeadState": { "const": "complete" } },
727
- "required": ["responseHeadState"]
728
- },
729
- "then": { "required": ["observedStatus"] }
730
- },
731
- {
732
- "if": {
733
- "properties": { "responseHeadState": { "const": "not-received" } },
734
- "required": ["responseHeadState"]
735
- },
736
- "then": {
737
- "properties": {
738
- "observedLocationState": { "const": "absent" },
739
- "observedHeaders": { "maxItems": 0 },
740
- "bodyState": { "const": "not-read" },
741
- "classification": { "const": "inconclusive" }
742
- },
743
- "not": {
744
- "anyOf": [
745
- { "required": ["contractGenerationId"] },
746
- { "required": ["observedStatus"] },
747
- { "required": ["observedLocation"] },
748
- { "required": ["observedByteLength"] },
749
- { "required": ["observedDigest"] },
750
- { "required": ["observedGenerationId"] }
751
- ]
752
- }
753
- }
754
- },
755
- {
756
- "if": {
757
- "properties": {
758
- "responseHeadState": { "enum": ["limit-exceeded", "malformed"] }
759
- },
760
- "required": ["responseHeadState"]
761
- },
762
- "then": {
763
- "properties": {
764
- "observedLocationState": { "const": "head-unavailable" },
765
- "observedHeaders": { "maxItems": 0 },
766
- "bodyState": { "const": "not-read" },
767
- "classification": { "const": "inconclusive" }
768
- },
769
- "not": {
770
- "anyOf": [
771
- { "required": ["contractGenerationId"] },
772
- { "required": ["observedLocation"] },
773
- { "required": ["observedByteLength"] },
774
- { "required": ["observedDigest"] },
775
- { "required": ["observedGenerationId"] }
776
- ]
777
- }
778
- }
779
- },
780
- {
781
- "if": {
782
- "properties": {
783
- "observedLocationState": { "const": "head-unavailable" }
784
- },
785
- "required": ["observedLocationState"]
786
- },
787
- "then": {
788
- "properties": {
789
- "responseHeadState": { "enum": ["limit-exceeded", "malformed"] }
790
- }
791
- }
792
- },
793
- {
794
- "if": {
795
- "properties": { "bodyState": { "const": "incomplete" } },
796
- "required": ["bodyState"]
797
- },
798
- "then": {
799
- "properties": { "classification": { "const": "inconclusive" } },
800
- "not": {
801
- "anyOf": [
802
- { "required": ["contractGenerationId"] },
803
- { "required": ["observedByteLength"] },
804
- { "required": ["observedDigest"] },
805
- { "required": ["observedGenerationId"] }
806
- ]
807
- }
808
- }
809
- },
810
- {
811
- "if": {
812
- "properties": { "classification": { "const": "redirect-match" } },
813
- "required": ["classification"]
814
- },
815
- "then": {
816
- "properties": {
817
- "responseHeadState": { "const": "complete" },
818
- "observedStatus": { "enum": [301, 302, 303, 307, 308] },
819
- "observedLocationState": { "const": "retained" },
820
- "observedHeaders": { "maxItems": 0 },
821
- "bodyState": { "const": "not-read" }
822
- },
823
- "required": [
824
- "contractGenerationId",
825
- "observedStatus",
826
- "observedLocation"
827
- ],
828
- "not": {
829
- "anyOf": [
830
- { "required": ["observedByteLength"] },
831
- { "required": ["observedDigest"] },
832
- { "required": ["observedGenerationId"] }
833
- ]
834
- }
835
- }
836
- },
837
- {
838
- "if": {
839
- "properties": {
840
- "classification": { "enum": ["candidate", "recognized-prior"] }
841
- },
842
- "required": ["classification"]
843
- },
844
- "then": {
845
- "properties": {
846
- "responseHeadState": { "const": "complete" },
847
- "observedLocationState": { "const": "absent" },
848
- "observedHeaders": {
849
- "minItems": 1,
850
- "items": {
851
- "properties": { "state": { "const": "present" } },
852
- "required": ["state"]
853
- }
854
- },
855
- "bodyState": { "const": "complete" }
856
- },
857
- "required": [
858
- "contractGenerationId",
859
- "observedStatus",
860
- "observedByteLength",
861
- "observedDigest"
862
- ]
863
- }
864
- },
865
- {
866
- "if": {
867
- "properties": {
868
- "bodyState": {
869
- "enum": [
870
- "limit-exceeded",
871
- "encoding-rejected",
872
- "framing-rejected"
873
- ]
874
- }
875
- },
876
- "required": ["bodyState"]
877
- },
878
- "then": {
879
- "properties": {
880
- "classification": { "const": "integrity-mismatch" }
881
- }
882
- }
883
- }
884
- ],
885
- "$comment": "Plan equality, trusted timestamp order, redirect-chain selection, marker-specific generation presence, header-set equality, byte-count equality, and each evidence digest are enforced by the deployment semantic validator."
886
- },
887
- "activationDetectionProbe": {
888
- "type": "object",
889
- "required": [
890
- "targetId",
891
- "hopNumber",
892
- "origin",
893
- "route",
894
- "requestUrl",
895
- "probeRegion",
896
- "requestStartedAt",
897
- "observedAt",
898
- "expectedCandidateDigest",
899
- "responseHeadState",
900
- "observedLocationState",
901
- "observedHeaders",
902
- "bodyState",
903
- "classification",
904
- "evidenceDigest"
905
- ],
906
- "properties": {
907
- "targetId": { "type": "integer", "minimum": 1, "maximum": 900 },
908
- "hopNumber": { "type": "integer", "minimum": 0, "maximum": 10 },
909
- "origin": { "$ref": "#/$defs/verificationOrigin" },
910
- "route": { "$ref": "#/$defs/canonicalRoute" },
911
- "requestUrl": { "$ref": "#/$defs/verificationUrl" },
912
- "probeRegion": { "$ref": "#/$defs/probeRegion" },
913
- "contractGenerationId": { "$ref": "#/$defs/stableId" },
914
- "precedingDetectionProbeEvidenceDigest": { "$ref": "#/$defs/digest" },
915
- "requestStartedAt": { "$ref": "#/$defs/rfc3339" },
916
- "observedAt": { "$ref": "#/$defs/rfc3339" },
917
- "expectedCandidateDigest": { "$ref": "#/$defs/digest" },
918
- "responseHeadState": {
919
- "enum": ["not-received", "complete", "limit-exceeded", "malformed"]
920
- },
921
- "observedStatus": { "type": "integer", "minimum": 100, "maximum": 599 },
922
- "observedLocationState": {
923
- "enum": ["absent", "retained", "unsafe-omitted", "head-unavailable"]
924
- },
925
- "observedLocation": { "$ref": "#/$defs/observedRedirectLocation" },
926
- "observedHeaders": {
927
- "type": "array",
928
- "items": { "$ref": "#/$defs/observedVerificationHeader" },
929
- "minItems": 0,
930
- "maxItems": 32
931
- },
932
- "bodyState": {
933
- "enum": [
934
- "not-read",
935
- "incomplete",
936
- "complete",
937
- "limit-exceeded",
938
- "encoding-rejected",
939
- "framing-rejected"
940
- ]
941
- },
942
- "observedByteLength": { "$ref": "#/$defs/nonNegativeInt64" },
943
- "observedDigest": { "$ref": "#/$defs/digest" },
944
- "observedGenerationId": {
945
- "$ref": "#/$defs/stableId",
946
- "description": "The generation the destination is observed to be serving. Unlike the write-side `expectedGenerationId` fence, this observation-side field is simply absent when nothing is served and may be carried as null by a consumer that models it nullably: an observation reports what is there, so \"nothing\" is a truthful reading, while an expectation of \"nothing\" must be stated as the explicit expect-nothing-served sentinel and can never be an omission (LOCAL-52)."
947
- },
948
- "classification": {
949
- "enum": [
950
- "redirect-match",
951
- "candidate",
952
- "recognized-prior",
953
- "integrity-mismatch",
954
- "inconclusive"
955
- ]
956
- },
957
- "evidenceDigest": { "$ref": "#/$defs/digest" }
958
- },
959
- "additionalProperties": false,
960
- "allOf": [
961
- {
962
- "if": {
963
- "properties": { "hopNumber": { "const": 0 } },
964
- "required": ["hopNumber"]
965
- },
966
- "then": {
967
- "not": {
968
- "anyOf": [
969
- { "required": ["precedingDetectionProbeEvidenceDigest"] }
970
- ]
971
- }
972
- },
973
- "else": { "required": ["precedingDetectionProbeEvidenceDigest"] }
974
- },
975
- {
976
- "if": {
977
- "properties": { "observedLocationState": { "const": "retained" } },
978
- "required": ["observedLocationState"]
979
- },
980
- "then": { "required": ["observedLocation"] },
981
- "else": { "not": { "anyOf": [{ "required": ["observedLocation"] }] } }
982
- },
983
- {
984
- "if": {
985
- "properties": { "bodyState": { "const": "complete" } },
986
- "required": ["bodyState"]
987
- },
988
- "then": { "required": ["observedByteLength", "observedDigest"] },
989
- "else": {
990
- "not": {
991
- "anyOf": [
992
- { "required": ["observedByteLength"] },
993
- { "required": ["observedDigest"] }
994
- ]
995
- }
996
- }
997
- },
998
- {
999
- "if": {
1000
- "properties": { "bodyState": { "const": "complete" } },
1001
- "required": ["bodyState"]
1002
- },
1003
- "else": {
1004
- "not": { "anyOf": [{ "required": ["observedGenerationId"] }] }
1005
- }
1006
- },
1007
- {
1008
- "if": {
1009
- "properties": { "responseHeadState": { "const": "complete" } },
1010
- "required": ["responseHeadState"]
1011
- },
1012
- "then": { "required": ["observedStatus"] }
1013
- },
1014
- {
1015
- "if": {
1016
- "properties": { "responseHeadState": { "const": "not-received" } },
1017
- "required": ["responseHeadState"]
1018
- },
1019
- "then": {
1020
- "properties": {
1021
- "observedLocationState": { "const": "absent" },
1022
- "observedHeaders": { "maxItems": 0 },
1023
- "bodyState": { "const": "not-read" },
1024
- "classification": { "const": "inconclusive" }
1025
- },
1026
- "not": {
1027
- "anyOf": [
1028
- { "required": ["contractGenerationId"] },
1029
- { "required": ["observedStatus"] },
1030
- { "required": ["observedLocation"] },
1031
- { "required": ["observedByteLength"] },
1032
- { "required": ["observedDigest"] },
1033
- { "required": ["observedGenerationId"] }
1034
- ]
1035
- }
1036
- }
1037
- },
1038
- {
1039
- "if": {
1040
- "properties": {
1041
- "responseHeadState": { "enum": ["limit-exceeded", "malformed"] }
1042
- },
1043
- "required": ["responseHeadState"]
1044
- },
1045
- "then": {
1046
- "properties": {
1047
- "observedLocationState": { "const": "head-unavailable" },
1048
- "observedHeaders": { "maxItems": 0 },
1049
- "bodyState": { "const": "not-read" },
1050
- "classification": { "const": "inconclusive" }
1051
- },
1052
- "not": {
1053
- "anyOf": [
1054
- { "required": ["contractGenerationId"] },
1055
- { "required": ["observedLocation"] },
1056
- { "required": ["observedByteLength"] },
1057
- { "required": ["observedDigest"] },
1058
- { "required": ["observedGenerationId"] }
1059
- ]
1060
- }
1061
- }
1062
- },
1063
- {
1064
- "if": {
1065
- "properties": {
1066
- "observedLocationState": { "const": "head-unavailable" }
1067
- },
1068
- "required": ["observedLocationState"]
1069
- },
1070
- "then": {
1071
- "properties": {
1072
- "responseHeadState": { "enum": ["limit-exceeded", "malformed"] }
1073
- }
1074
- }
1075
- },
1076
- {
1077
- "if": {
1078
- "properties": { "bodyState": { "const": "incomplete" } },
1079
- "required": ["bodyState"]
1080
- },
1081
- "then": {
1082
- "properties": { "classification": { "const": "inconclusive" } },
1083
- "not": {
1084
- "anyOf": [
1085
- { "required": ["contractGenerationId"] },
1086
- { "required": ["observedByteLength"] },
1087
- { "required": ["observedDigest"] },
1088
- { "required": ["observedGenerationId"] }
1089
- ]
1090
- }
1091
- }
1092
- },
1093
- {
1094
- "if": {
1095
- "properties": { "classification": { "const": "redirect-match" } },
1096
- "required": ["classification"]
1097
- },
1098
- "then": {
1099
- "properties": {
1100
- "responseHeadState": { "const": "complete" },
1101
- "observedStatus": { "enum": [301, 302, 303, 307, 308] },
1102
- "observedLocationState": { "const": "retained" },
1103
- "observedHeaders": { "maxItems": 0 },
1104
- "bodyState": { "const": "not-read" }
1105
- },
1106
- "required": [
1107
- "contractGenerationId",
1108
- "observedStatus",
1109
- "observedLocation"
1110
- ],
1111
- "not": {
1112
- "anyOf": [
1113
- { "required": ["observedByteLength"] },
1114
- { "required": ["observedDigest"] },
1115
- { "required": ["observedGenerationId"] }
1116
- ]
1117
- }
1118
- }
1119
- },
1120
- {
1121
- "if": {
1122
- "properties": {
1123
- "classification": { "enum": ["candidate", "recognized-prior"] }
1124
- },
1125
- "required": ["classification"]
1126
- },
1127
- "then": {
1128
- "properties": {
1129
- "responseHeadState": { "const": "complete" },
1130
- "observedLocationState": { "const": "absent" },
1131
- "observedHeaders": {
1132
- "minItems": 1,
1133
- "items": {
1134
- "properties": { "state": { "const": "present" } },
1135
- "required": ["state"]
1136
- }
1137
- },
1138
- "bodyState": { "const": "complete" }
1139
- },
1140
- "required": [
1141
- "contractGenerationId",
1142
- "observedStatus",
1143
- "observedByteLength",
1144
- "observedDigest"
1145
- ]
1146
- }
1147
- },
1148
- {
1149
- "if": {
1150
- "properties": {
1151
- "bodyState": {
1152
- "enum": [
1153
- "limit-exceeded",
1154
- "encoding-rejected",
1155
- "framing-rejected"
1156
- ]
1157
- }
1158
- },
1159
- "required": ["bodyState"]
1160
- },
1161
- "then": {
1162
- "properties": {
1163
- "classification": { "const": "integrity-mismatch" }
1164
- }
1165
- }
1166
- }
1167
- ],
1168
- "$comment": "Plan equality, trusted timestamp order, redirect-chain selection, marker-specific generation presence, header-set equality, byte-count equality, and each evidence digest are enforced by the deployment semantic validator."
1169
- },
1170
- "activationDetectionObservation": {
1171
- "type": "object",
1172
- "required": [
1173
- "profile",
1174
- "operationId",
1175
- "attemptId",
1176
- "planDigest",
1177
- "detectionAttemptNumber",
1178
- "eligibleAt",
1179
- "probes",
1180
- "receivedAt",
1181
- "evidenceDigest"
1182
- ],
1183
- "properties": {
1184
- "profile": {
1185
- "const": "gala-public-activation-detection-observation-v2"
1186
- },
1187
- "operationId": { "$ref": "#/$defs/stableId" },
1188
- "attemptId": { "$ref": "#/$defs/stableId" },
1189
- "planDigest": { "$ref": "#/$defs/digest" },
1190
- "detectionAttemptNumber": {
1191
- "type": "integer",
1192
- "minimum": 1,
1193
- "maximum": 91
1194
- },
1195
- "eligibleAt": { "$ref": "#/$defs/rfc3339" },
1196
- "probes": {
1197
- "type": "array",
1198
- "items": { "$ref": "#/$defs/activationDetectionProbe" },
1199
- "minItems": 1,
1200
- "maxItems": 11
1201
- },
1202
- "receivedAt": { "$ref": "#/$defs/rfc3339" },
1203
- "evidenceDigest": { "$ref": "#/$defs/digest" }
1204
- },
1205
- "additionalProperties": false
1206
- },
1207
- "deadlineFinalizationStream": {
1208
- "type": "object",
1209
- "required": ["targetId", "probeRegion", "state"],
1210
- "properties": {
1211
- "targetId": { "type": "integer", "minimum": 1, "maximum": 900 },
1212
- "probeRegion": { "$ref": "#/$defs/probeRegion" },
1213
- "state": { "enum": ["terminal", "missing"] },
1214
- "observationId": { "$ref": "#/$defs/stableId" },
1215
- "evidenceDigest": { "$ref": "#/$defs/digest" }
1216
- },
1217
- "additionalProperties": false,
1218
- "allOf": [
1219
- {
1220
- "if": {
1221
- "properties": { "state": { "const": "terminal" } },
1222
- "required": ["state"]
1223
- },
1224
- "then": { "required": ["observationId", "evidenceDigest"] },
1225
- "else": {
1226
- "not": {
1227
- "anyOf": [
1228
- { "required": ["observationId"] },
1229
- { "required": ["evidenceDigest"] }
1230
- ]
1231
- }
1232
- }
1233
- }
1234
- ]
1235
- },
1236
- "deadlineFinalizationEvidence": {
1237
- "type": "object",
1238
- "required": [
1239
- "profile",
1240
- "operationId",
1241
- "attemptId",
1242
- "intentDigest",
1243
- "verificationPlanDigest",
1244
- "verificationDeadlineAt",
1245
- "finalizationDeadlineAt",
1246
- "cutoffEvidenceJournalEntryCount",
1247
- "cutoffEvidenceJournalHeadDigest",
1248
- "finalizationKind",
1249
- "selectedStreams",
1250
- "finalizedAt"
1251
- ],
1252
- "properties": {
1253
- "profile": { "const": "gala-deadline-finalization-evidence-v2" },
1254
- "operationId": { "$ref": "#/$defs/stableId" },
1255
- "attemptId": { "$ref": "#/$defs/stableId" },
1256
- "intentDigest": { "$ref": "#/$defs/digest" },
1257
- "verificationPlanDigest": { "$ref": "#/$defs/digest" },
1258
- "verificationDeadlineAt": { "$ref": "#/$defs/rfc3339" },
1259
- "finalizationDeadlineAt": { "$ref": "#/$defs/rfc3339" },
1260
- "cutoffEvidenceJournalEntryCount": {
1261
- "type": "integer",
1262
- "minimum": 0,
1263
- "maximum": 1098
1264
- },
1265
- "cutoffEvidenceJournalHeadDigest": { "$ref": "#/$defs/digest" },
1266
- "finalizationKind": {
1267
- "enum": ["propagation-degraded", "verification-inconclusive"]
1268
- },
1269
- "selectedStreams": {
1270
- "type": "array",
1271
- "items": { "$ref": "#/$defs/deadlineFinalizationStream" },
1272
- "minItems": 1,
1273
- "maxItems": 900,
1274
- "uniqueItems": true
1275
- },
1276
- "finalizedAt": { "$ref": "#/$defs/rfc3339" }
1277
- },
1278
- "additionalProperties": false,
1279
- "allOf": [
1280
- {
1281
- "if": {
1282
- "properties": {
1283
- "finalizationKind": { "const": "verification-inconclusive" }
1284
- },
1285
- "required": ["finalizationKind"]
1286
- },
1287
- "then": {
1288
- "properties": {
1289
- "selectedStreams": {
1290
- "contains": {
1291
- "properties": { "state": { "const": "missing" } },
1292
- "required": ["state"]
1293
- },
1294
- "minContains": 1
1295
- }
1296
- }
1297
- },
1298
- "else": {
1299
- "properties": {
1300
- "selectedStreams": {
1301
- "not": {
1302
- "contains": {
1303
- "properties": { "state": { "const": "missing" } },
1304
- "required": ["state"]
1305
- }
1306
- }
1307
- }
1308
- }
1309
- }
1310
- }
1311
- ]
1312
- },
1313
- "supersessionFinalizationEvidence": {
1314
- "type": "object",
1315
- "required": [
1316
- "profile",
1317
- "supersededOperationId",
1318
- "supersededAttemptId",
1319
- "supersededIntentDigest",
1320
- "destinationKeyDigest",
1321
- "authorityEpoch",
1322
- "fenceTerminalState",
1323
- "fenceEvidenceDigest",
1324
- "supersededByOperationId",
1325
- "supersededByGenerationId",
1326
- "finalizationOutcome",
1327
- "activationDetectionObservationCount",
1328
- "precedingEvidenceJournalEntryCount",
1329
- "precedingEvidenceJournalHeadDigest",
1330
- "finalizedAt"
1331
- ],
1332
- "properties": {
1333
- "profile": { "const": "gala-supersession-finalization-evidence-v2" },
1334
- "supersededOperationId": { "$ref": "#/$defs/stableId" },
1335
- "supersededAttemptId": { "$ref": "#/$defs/stableId" },
1336
- "supersededIntentDigest": { "$ref": "#/$defs/digest" },
1337
- "destinationKeyDigest": { "$ref": "#/$defs/digest" },
1338
- "authorityEpoch": { "$ref": "#/$defs/positiveInt64" },
1339
- "fenceTerminalState": {
1340
- "enum": ["terminal-no-change", "terminal-candidate"]
1341
- },
1342
- "fenceEvidenceDigest": { "$ref": "#/$defs/digest" },
1343
- "supersededByOperationId": { "$ref": "#/$defs/stableId" },
1344
- "supersededByGenerationId": { "$ref": "#/$defs/stableId" },
1345
- "finalizationOutcome": { "enum": ["before-mutation", "activated"] },
1346
- "activationDetectionObservationCount": {
1347
- "type": "integer",
1348
- "minimum": 0,
1349
- "maximum": 91
1350
- },
1351
- "activationDetectionLastEvidenceDigest": { "$ref": "#/$defs/digest" },
1352
- "precedingEvidenceJournalEntryCount": {
1353
- "type": "integer",
1354
- "minimum": 0,
1355
- "maximum": 1098
1356
- },
1357
- "precedingEvidenceJournalHeadDigest": { "$ref": "#/$defs/digest" },
1358
- "finalizedAt": { "$ref": "#/$defs/rfc3339" }
1359
- },
1360
- "additionalProperties": false,
1361
- "allOf": [
1362
- {
1363
- "if": {
1364
- "properties": {
1365
- "activationDetectionObservationCount": { "const": 0 }
1366
- },
1367
- "required": ["activationDetectionObservationCount"]
1368
- },
1369
- "then": {
1370
- "not": {
1371
- "anyOf": [
1372
- { "required": ["activationDetectionLastEvidenceDigest"] }
1373
- ]
1374
- }
1375
- },
1376
- "else": { "required": ["activationDetectionLastEvidenceDigest"] }
1377
- },
1378
- {
1379
- "oneOf": [
1380
- {
1381
- "properties": {
1382
- "fenceTerminalState": { "const": "terminal-no-change" },
1383
- "finalizationOutcome": { "const": "before-mutation" }
1384
- },
1385
- "required": ["fenceTerminalState", "finalizationOutcome"]
1386
- },
1387
- {
1388
- "properties": {
1389
- "fenceTerminalState": { "const": "terminal-candidate" },
1390
- "finalizationOutcome": { "const": "activated" }
1391
- },
1392
- "required": ["fenceTerminalState", "finalizationOutcome"]
1393
- }
1394
- ]
1395
- }
1396
- ]
1397
- },
1398
- "cancellationFinalizationEvidence": {
1399
- "type": "object",
1400
- "required": [
1401
- "profile",
1402
- "operationId",
1403
- "attemptId",
1404
- "intentDigest",
1405
- "destinationKeyDigest",
1406
- "authorityEpoch",
1407
- "fenceEvidenceDigest",
1408
- "cancellationCommandId",
1409
- "cancellationActorId",
1410
- "activationDetectionObservationCount",
1411
- "precedingEvidenceJournalEntryCount",
1412
- "precedingEvidenceJournalHeadDigest",
1413
- "finalizedAt"
1414
- ],
1415
- "properties": {
1416
- "profile": { "const": "gala-cancellation-finalization-evidence-v2" },
1417
- "operationId": { "$ref": "#/$defs/stableId" },
1418
- "attemptId": { "$ref": "#/$defs/stableId" },
1419
- "intentDigest": { "$ref": "#/$defs/digest" },
1420
- "destinationKeyDigest": { "$ref": "#/$defs/digest" },
1421
- "authorityEpoch": { "$ref": "#/$defs/positiveInt64" },
1422
- "fenceEvidenceDigest": { "$ref": "#/$defs/digest" },
1423
- "cancellationCommandId": { "$ref": "#/$defs/stableId" },
1424
- "cancellationActorId": { "$ref": "#/$defs/stableId" },
1425
- "activationDetectionObservationCount": {
1426
- "type": "integer",
1427
- "minimum": 0,
1428
- "maximum": 91
1429
- },
1430
- "activationDetectionLastEvidenceDigest": { "$ref": "#/$defs/digest" },
1431
- "precedingEvidenceJournalEntryCount": {
1432
- "type": "integer",
1433
- "minimum": 0,
1434
- "maximum": 1098
1435
- },
1436
- "precedingEvidenceJournalHeadDigest": { "$ref": "#/$defs/digest" },
1437
- "finalizedAt": { "$ref": "#/$defs/rfc3339" }
1438
- },
1439
- "additionalProperties": false,
1440
- "allOf": [
1441
- {
1442
- "if": {
1443
- "properties": {
1444
- "activationDetectionObservationCount": { "const": 0 }
1445
- },
1446
- "required": ["activationDetectionObservationCount"]
1447
- },
1448
- "then": {
1449
- "not": {
1450
- "anyOf": [
1451
- { "required": ["activationDetectionLastEvidenceDigest"] }
1452
- ]
1453
- }
1454
- },
1455
- "else": { "required": ["activationDetectionLastEvidenceDigest"] }
1456
- }
1457
- ]
1458
- }
1459
- },
1460
- "allOf": [
1461
- {
1462
- "oneOf": [
1463
- {
1464
- "properties": {
1465
- "observationClass": { "const": "request-not-started" },
1466
- "outcome": {
1467
- "enum": [
1468
- "rejected",
1469
- "not-attempted-retryable",
1470
- "authorization-lost",
1471
- "rate-limited",
1472
- "provider-contract-violation"
1473
- ]
1474
- },
1475
- "destinationChanged": { "enum": ["no", "yes"] }
1476
- },
1477
- "required": []
1478
- },
1479
- {
1480
- "properties": {
1481
- "observationClass": { "const": "request-accepted" },
1482
- "outcome": { "const": "outcome-unknown-reconciling" },
1483
- "destinationChanged": { "enum": ["unknown", "yes"] }
1484
- },
1485
- "required": []
1486
- },
1487
- {
1488
- "properties": {
1489
- "observationClass": { "const": "provider-state" },
1490
- "outcome": { "const": "succeeded" },
1491
- "destinationChanged": { "enum": ["no", "yes"] }
1492
- },
1493
- "required": []
1494
- },
1495
- {
1496
- "properties": {
1497
- "observationClass": { "const": "provider-state" },
1498
- "outcome": { "const": "rejected" },
1499
- "destinationChanged": { "const": "no" }
1500
- },
1501
- "required": []
1502
- },
1503
- {
1504
- "properties": {
1505
- "observationClass": { "const": "provider-state" },
1506
- "outcome": { "const": "outcome-unknown-reconciling" },
1507
- "destinationChanged": { "enum": ["unknown", "yes"] }
1508
- },
1509
- "required": []
1510
- },
1511
- {
1512
- "properties": {
1513
- "observationClass": { "const": "provider-state" },
1514
- "outcome": { "const": "provider-contract-violation" },
1515
- "destinationChanged": { "enum": ["yes", "no", "unknown"] }
1516
- },
1517
- "required": []
1518
- },
1519
- {
1520
- "properties": {
1521
- "observationClass": { "const": "public-state" },
1522
- "outcome": { "const": "succeeded" },
1523
- "destinationChanged": { "const": "yes" }
1524
- },
1525
- "required": []
1526
- },
1527
- {
1528
- "properties": {
1529
- "observationClass": { "const": "public-state" },
1530
- "outcome": {
1531
- "enum": [
1532
- "outcome-unknown-reconciling",
1533
- "provider-contract-violation"
1534
- ]
1535
- },
1536
- "destinationChanged": { "enum": ["unknown", "yes"] }
1537
- },
1538
- "required": []
1539
- },
1540
- {
1541
- "properties": {
1542
- "observationClass": { "const": "deadline-finalization" },
1543
- "outcome": { "enum": ["succeeded", "outcome-unknown-reconciling"] },
1544
- "destinationChanged": { "const": "yes" }
1545
- },
1546
- "required": []
1547
- },
1548
- {
1549
- "properties": {
1550
- "observationClass": { "const": "supersession-finalization" },
1551
- "outcome": { "const": "rejected" },
1552
- "destinationChanged": { "const": "no" }
1553
- },
1554
- "required": []
1555
- },
1556
- {
1557
- "properties": {
1558
- "observationClass": { "const": "supersession-finalization" },
1559
- "outcome": { "const": "succeeded" },
1560
- "destinationChanged": { "const": "yes" }
1561
- },
1562
- "required": []
1563
- },
1564
- {
1565
- "properties": {
1566
- "observationClass": { "const": "timeout" },
1567
- "outcome": { "const": "outcome-unknown-reconciling" },
1568
- "destinationChanged": { "enum": ["unknown", "yes"] }
1569
- },
1570
- "required": []
1571
- },
1572
- {
1573
- "properties": {
1574
- "observationClass": { "const": "provider-error" },
1575
- "outcome": {
1576
- "enum": [
1577
- "rejected",
1578
- "not-attempted-retryable",
1579
- "authorization-lost",
1580
- "rate-limited",
1581
- "provider-contract-violation"
1582
- ]
1583
- },
1584
- "destinationChanged": { "enum": ["no", "yes"] }
1585
- },
1586
- "required": []
1587
- },
1588
- {
1589
- "properties": {
1590
- "observationClass": { "const": "provider-error" },
1591
- "outcome": { "const": "outcome-unknown-reconciling" },
1592
- "destinationChanged": { "enum": ["unknown", "yes"] }
1593
- },
1594
- "required": []
1595
- }
1596
- ]
1597
- },
1598
- {
1599
- "if": {
1600
- "properties": { "observationClass": { "const": "public-state" } },
1601
- "required": ["observationClass"]
1602
- },
1603
- "then": { "properties": { "probes": { "minItems": 1, "maxItems": 16 } } },
1604
- "else": { "properties": { "probes": { "maxItems": 0 } } }
1605
- },
1606
- {
1607
- "if": {
1608
- "properties": { "observationClass": { "const": "provider-state" } },
1609
- "required": ["observationClass"]
1610
- },
1611
- "else": {
1612
- "not": {
1613
- "anyOf": [
1614
- { "required": ["generationId"] },
1615
- { "required": ["observedArtifactDigest"] }
1616
- ]
1617
- }
1618
- }
1619
- },
1620
- {
1621
- "if": {
1622
- "properties": {
1623
- "observationClass": {
1624
- "enum": ["request-accepted", "provider-state", "provider-error"]
1625
- }
1626
- },
1627
- "required": ["observationClass"]
1628
- },
1629
- "else": {
1630
- "not": {
1631
- "anyOf": [
1632
- { "required": ["providerObjectIdDigest"] },
1633
- { "required": ["providerVersion"] }
1634
- ]
1635
- }
1636
- }
1637
- },
1638
- {
1639
- "if": {
1640
- "properties": {
1641
- "probes": {
1642
- "contains": {
1643
- "properties": { "classification": { "const": "candidate" } },
1644
- "required": ["classification"]
1645
- }
1646
- }
1647
- },
1648
- "required": ["probes"]
1649
- },
1650
- "then": { "properties": { "destinationChanged": { "const": "yes" } } }
1651
- }
1652
- ],
1653
- "$comment": "Sequence continuity, timestamp order, intent identity equalities, cumulative change proof, source-record validation, canonical probe order, and evidence-digest equality are enforced by the deployment semantic validator."
1654
- }