30
schemas/qkforce.test-data-lock.schema.json
Normal file
30
schemas/qkforce.test-data-lock.schema.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"$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" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user