Skip to main content

Manifest version 10

What's new

  • userFiles: New field that lets specifying the input files owned by the user.

Overview

Manifests of version io.batchx.manifest-10 are JSON documents containing for following information:

Field NameDescriptionRequired
nameImage name.true
versionImage version.true
titleShort description of the purpose of the image.true
readmeDetailed image documentation. Markdown supported.false
scmSource code repository URL.false
authorImage creator.true
schemaSection where image inputs and outputs must be defined.true
errorCodesError codes that might be returned. Keys must be integer numbers.false
warningCodesWarning codes that might be returned. Keys must be integer numbers.false
runtimeSection that defines the minimum resident set size (RSS) memory assigned to the container (in MB) and GPU usage.true
changeLogDescription of how this version improves the previous one.false
pipeline.stepsDeclares this image as a pipeline, and lists the coordinates of the orchestrated images.false
pipeline.readInputFilesArray referencing the JSON paths of the input files that the pipeline job accesses.false
userFilesArray referencing the JSON paths of the input files owned by the user. If empty, all files are user-owned.false
info

BatchX platform will only track user-owned input files, for tool billing purposes.

Definition

More precisely, io.batchx.manifest-10 manifests are JSON documents adhering to the following JSON schema:

JSON schema for io.batchx.manifest-10
  {
"$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"
}
},
"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)"
},
"defaultVcpus": {
"type": "integer",
"description": "Default number of virtual CPUs to use",
"default": 1
}
}
},
"userFiles": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"description": "Declares the subset of input files owned by the user",
"items": {
"type": "string",
"description": "Json path of the input file (relative to the input schema), for example: $.sampleNames"
}
}
}
}