Manifest version 08
What's new
pipeline.steps: Pipeline steps have been moved here.pipeline.readInputFiles: New field that enables pipeline jobs accessing input files.
Overview
Manifests of version io.batchx.manifest-08 are JSON documents containing for following information:
| Field Name | Description | Required |
|---|---|---|
name | Image name. | true |
version | Image version. | true |
title | Short description of the purpose of the image. | true |
readme | Detailed image documentation. Markdown supported. | false |
scm | Source code repository URL. | false |
author | Image creator. | true |
schema | Section where image inputs and outputs must be defined. | true |
errorCodes | Error codes that might be returned. Keys must be integer numbers. | false |
warningCodes | Warning codes that might be returned. Keys must be integer numbers. | false |
runtime | Section that defines the minimum resident set size (RSS) memory assigned to the container (in MB) and GPU usage. | true |
changeLog | Description of how this version improves the previous one. | false |
pipeline.steps | Declares this image as a pipeline, and lists the coordinates of the orchestrated images. | false |
pipeline.readInputFiles | Array referencing the JSON paths of the files that the pipeline job accesses. | false |
Definition
More precisely, io.batchx.manifest-08 manifests are JSON documents adhering to the following JSON schema:
JSON schema for io.batchx.manifest-08
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"name",
"title",
"schema",
"author",
"version",
"runtime",
"changeLog"
],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Image name",
"maxLength": 60
},
"version": {
"type": "string",
"description": "Semantic version of the image",
"maxLength": 15,
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"title": {
"type": "string",
"description": "Short description of the purpose of the image",
"maxLength": 100
},
"readme": {
"type": "string",
"description": "Detailed image documentation. Markdown supported"
},
"changeLog": {
"type": "string",
"description": "Short description of what news this version brings, compared to the previous one",
"maxLength": 80
},
"schema": {
"type": "object",
"required": [
"input",
"output"
],
"additionalProperties": false,
"properties": {
"input": {
"type": "object",
"description": "JSON-Schema of the input data",
"additionalProperties": true
},
"output": {
"type": "object",
"description": "JSON-Schema of the output data",
"additionalProperties": true
}
}
},
"errorCodes": {
"description": "Error codes that might be returned. Keys must be integer numbers",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"warningCodes": {
"description": "Warning return codes that might be returned. Keys must be integer numbers",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"author": {
"type": "string",
"description": "Individual or environment",
"maxLength": 40
},
"scm": {
"type": "string",
"description": "Source code repository URL",
"maxLength": 70
},
"pipeline": {
"type": "object",
"required": [
"steps"
],
"additionalProperties": false,
"properties": {
"steps": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"description": "Declares all the images that this pipeline orchestrates",
"items": {
"type": "string",
"description": "BatchX image coordinates"
},
"minMem": {
"type": "integer",
"description": "Minimum RSS limit for the container (in MB)"
}
},
"readInputFiles": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"description": "Declares all the input files the orchestrator job reads at runtime",
"items": {
"type": "string",
"description": "Json path of the input file (relative to the input schema), for example: $.sampleNames"
}
}
}
},
"runtime": {
"type": "object",
"required": [
"minMem"
],
"additionalProperties": false,
"properties": {
"gpus": {
"type": "string",
"description": "Indicates whether the image requires at least one gpu to run",
"enum": [
"required",
"supported"
]
},
"minMem": {
"type": "integer",
"description": "Minimum RSS limit for the container (in MB)"
}
}
}
}
}