102 lines
No EOL
2.8 KiB
JSON
102 lines
No EOL
2.8 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://databuild.example.com/schemas/v1",
|
|
"title": "DataBuild Core Schemas",
|
|
"description": "Schema definitions for DataBuild core components",
|
|
|
|
"definitions": {
|
|
"DepType": {
|
|
"type": "string",
|
|
"enum": ["query", "materialize"],
|
|
"description": "The type of dependency"
|
|
},
|
|
|
|
"DataDep": {
|
|
"type": "object",
|
|
"required": ["depType", "ref"],
|
|
"properties": {
|
|
"depType": {
|
|
"$ref": "#/definitions/DepType"
|
|
},
|
|
"ref": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
|
|
"JobConfig": {
|
|
"type": "object",
|
|
"required": ["outputs", "inputs","args","env"],
|
|
"properties": {
|
|
"outputs": {
|
|
"type": "array",
|
|
"items": { "type": "string" },
|
|
"description": "The partitions that this parameterization produces"
|
|
},
|
|
"inputs": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/DataDep" },
|
|
"description": "Required data dependencies"
|
|
},
|
|
"args": {
|
|
"type": "array",
|
|
"items": { "type": "string" },
|
|
"description": "Command line arguments"
|
|
},
|
|
"env": {
|
|
"type": "object",
|
|
"additionalProperties": { "type": "string" },
|
|
"description": "Environment variables"
|
|
}
|
|
}
|
|
},
|
|
|
|
"PartitionManifest": {
|
|
"type": "object",
|
|
"required": ["outputs", "inputs", "startTime", "endTime", "config"],
|
|
"properties": {
|
|
"outputs": {
|
|
"type": "array",
|
|
"items": { "type": "string" },
|
|
"description": "The refs of the partitions produced by this job"
|
|
},
|
|
"inputs": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/PartitionManifest" },
|
|
"description": "Input partition manifests"
|
|
},
|
|
"startTime": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"description": "Start time of job execution (Unix timestamp)"
|
|
},
|
|
"endTime": {
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"description": "End time of job execution (Unix timestamp)"
|
|
},
|
|
"config": {
|
|
"$ref": "#/definitions/JobConfig",
|
|
"description": "The configuration used to run the job"
|
|
}
|
|
}
|
|
},
|
|
|
|
"JobGraph": {
|
|
"type": "object",
|
|
"required": ["outputs", "nodes"],
|
|
"properties": {
|
|
"outputs": {
|
|
"type": "array",
|
|
"items": { "type": "string" },
|
|
"description": "The output partitions to be produced by this graph"
|
|
},
|
|
"nodes": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/JobConfig" },
|
|
"description": "The job configurations that make up this graph"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |