{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/QACGBDT/QKForce-docs/contracts/schemas/qkforce.test-data-lock-v1.1.schema.json", "title": "QKForce test data lock v1.1", "type": "object", "additionalProperties": false, "required": ["schemaVersion", "datasets"], "properties": { "schemaVersion": { "const": 1 }, "datasets": { "type": "array", "maxItems": 128, "items": { "type": "object", "additionalProperties": false, "required": ["datasetId", "versionId", "versionNumber", "logicalName", "path", "sha256", "rowCount", "contentType"], "properties": { "datasetId": { "type": "string", "pattern": "^[A-Za-z0-9_-]{1,128}$" }, "versionId": { "type": "string", "pattern": "^[A-Za-z0-9_-]{1,128}$" }, "versionNumber": { "type": "integer", "minimum": 1 }, "logicalName": { "type": "string", "minLength": 1, "maxLength": 128 }, "path": { "type": "string", "pattern": "^test-data/[A-Za-z0-9][A-Za-z0-9._-]{0,239}\\.csv$" }, "sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" }, "rowCount": { "type": "integer", "minimum": 0 }, "contentType": { "const": "text/csv; charset=utf-8" } } } } } }