diff --git a/bench/reachability-benchmark/benchmark/schemas/benchmark-manifest.schema.json b/bench/reachability-benchmark/benchmark/schemas/benchmark-manifest.schema.json index 01afc2b8c..b7ee1f6da 100644 --- a/bench/reachability-benchmark/benchmark/schemas/benchmark-manifest.schema.json +++ b/bench/reachability-benchmark/benchmark/schemas/benchmark-manifest.schema.json @@ -12,11 +12,10 @@ "sourceDateEpoch", "cases", "artifacts", - "tools", - "signatures" + "tools" ], "properties": { - "schemaVersion": { "type": "string", "pattern": "^1\.0\.\d+$" }, + "schemaVersion": { "type": "string", "pattern": "^1\\.0\\.\\d+$" }, "kitId": { "type": "string", "pattern": "^reachability-benchmark:[A-Za-z0-9._:-]+$" }, "version": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, @@ -43,17 +42,18 @@ "hashes": { "type": "object", "additionalProperties": false, - "required": ["source", "binary", "sbom", "entrypoints", "case", "truth"], "properties": { - "source": { "type": "string", "pattern": "^[A-Fa-f0-9]{64}$" }, - "binary": { "type": "string", "pattern": "^[A-Fa-f0-9]{64}$" }, - "sbom": { "type": "string", "pattern": "^[A-Fa-f0-9]{64}$" }, - "entrypoints": { "type": "string", "pattern": "^[A-Fa-f0-9]{64}$" }, - "case": { "type": "string", "pattern": "^[A-Fa-f0-9]{64}$" }, - "truth": { "type": "string", "pattern": "^[A-Fa-f0-9]{64}$" }, - "coverage": { "type": "string", "pattern": "^[A-Fa-f0-9]{64}$" }, - "traces": { "type": "string", "pattern": "^[A-Fa-f0-9]{64}$" } - } + "source": { "$ref": "#/definitions/hashedPath" }, + "binary": { "$ref": "#/definitions/hashedPath" }, + "sbom": { "$ref": "#/definitions/hashedPath" }, + "entrypoints": { "$ref": "#/definitions/hashedPath" }, + "case": { "$ref": "#/definitions/hashedPath" }, + "truth": { "$ref": "#/definitions/hashedPath" }, + "coverage": { "$ref": "#/definitions/hashedPath" }, + "traces": { "$ref": "#/definitions/hashedPath" }, + "attestation": { "$ref": "#/definitions/hashedPath" } + }, + "required": ["case", "entrypoints", "binary", "sbom", "truth"] }, "truth": { "type": "object", @@ -86,21 +86,21 @@ "artifacts": { "type": "object", "additionalProperties": false, - "required": ["submissionSchema", "scorer", "baselines"], + "required": ["submissionSchema", "scorer"], "properties": { - "submissionSchema": { "type": "string", "pattern": "^[A-Fa-f0-9]{64}$" }, - "scorer": { "type": "string", "pattern": "^[A-Fa-f0-9]{64}$" }, + "submissionSchema": { "$ref": "#/definitions/hashedPath" }, + "scorer": { "$ref": "#/definitions/hashedPath" }, "baselineSubmissions": { "type": "array", "items": { "type": "object", - "required": ["tool", "version", "submissionSha256"], + "required": ["tool", "version", "submission"], "additionalProperties": false, "properties": { "tool": { "type": "string" }, "version": { "type": "string" }, - "submissionSha256": { "type": "string", "pattern": "^[A-Fa-f0-9]{64}$" }, - "dsse": { "type": "string" } + "submission": { "$ref": "#/definitions/hashedPath" }, + "dsse": { "$ref": "#/definitions/hashedPath" } } } } @@ -111,8 +111,8 @@ "additionalProperties": false, "required": ["builder", "validator"], "properties": { - "builder": { "type": "string" }, - "validator": { "type": "string" } + "builder": { "$ref": "#/definitions/hashedPath" }, + "validator": { "$ref": "#/definitions/hashedPath" } } }, "signatures": { @@ -125,9 +125,21 @@ "type": { "type": "string", "enum": ["dsse", "jws-detached"] }, "keyId": { "type": "string" }, "signature": { "type": "string" }, - "envelopeDigest": { "type": "string" } + "envelopeDigest": { "type": "string", "pattern": "^[A-Fa-f0-9]{64}$" } } } } + }, + "definitions": { + "hashedPath": { + "type": "object", + "additionalProperties": false, + "required": ["path", "sha256"], + "properties": { + "path": { "type": "string" }, + "sha256": { "type": "string", "pattern": "^[A-Fa-f0-9]{64}$" }, + "dsse": { "type": "string" } + } + } } }