SSP Artifact manifest.json Files
Self-service pipeline (SSP) artifacts (protocols and task scripts, or Tetraflows) can include an optional manifest.json file that contains metadata, configuration, and specifications for each artifact. When present, the manifest.json file serves as the source of truth for each artifact's metadata and tells the Tetra Data Platform (TDP) how to discover, deploy, and display each artifact in the user interface.
NOTEAfter you create a
manifest.jsonfile for your artifact, you don't need to specify any of the required configuration fields in yourts-cli publishcommand arguments. The command pulls the required artifact configuration fields from each artifact'smanifest.jsonfile automatically if one is present in the artifact's root directory. For more information, see the Hello, World! SSP Example.
SSP manifest.json Examples
manifest.json ExamplesMinimum manifest.json File Example
manifest.json File ExampleThe following is an example of a basic SSP protocol manifest.json file, which includes only the required fields:
{
"type": "protocol",
"namespace": "private-my-org",
"slug": "data-processing-pipeline",
"version": "v1.0.0"
}Recommended manifest.json File Example
manifest.json File ExampleWhile only four fields are required, it's recommended to include additional, optional metadata for better documentation and discoverability:
{
"type": "protocol",
"namespace": "private-my-org",
"slug": "data-processing-pipeline",
"version": "v1.0.0",
"name": "Data Processing Pipeline",
"description": "A self-service pipeline for processing and transforming laboratory data",
"catalog_keys": ["any"],
"labels": [
{
"name": "category",
"value": "data-processing"
},
{
"name": "environment",
"value": "dev"
}
]
}SSP Artifact Manifest Fields
SSP artifact manifest.json files include the following required and optional fields.
Required Fields
| Field Name | Type | Description |
|---|---|---|
type | string | Artifact type (protocol, task-script, tetraflow)) |
namespace | string | The artifact namespace the item belongs to |
slug | string | A unique identifier for the artifact |
version | string | Current version in semantic format (for example, v1.0.0) |
Optional Fields
| Field Name | Type | Description |
|---|---|---|
name | string | Display name of the artifact in TDP |
description | string | A description of the artifact's functionality |
labels | array | Set of labels for search and categorization |
icon | string | Relative path to an icon image (for example, "images/icon.png") |
include | array | Glob patterns for files to keep as part of the artifact |
exclude | array | Glob patterns for files to discard (takes priority over include) |
Validation Rules
General Validation
- Validation only occurs if a
manifest.jsonexists - Missing files cause publishing to fail
name(optional): Cannot be empty, should match the title of the readme filenamespace(required): Should beprivate, appeneded with a hyphen (-) and your target orgSlug (format:private-{orgslug/orgslugprefix})slug(required): Must be an alphanumeric string (slug)that serves as a unique identifier for the artifact (for example:akta-raw-to-ids)version(required): Must match versions inpyproject.toml, README.md, andschema.json(for IDS)description(optional): Cannot be emptytype(required): Must be valid artifact typeicon(optional): If present, must equal"images/icon.png", file must exist, and be under 512 KBlabels(optional): Can be empty array, objects must havenameandvaluefields
Restricted Label Names
The name field in labels cannot be any of the following:
catalog_keyinstrument_typeinstrument_modelvendorsoftwaresoftware_version
Best Practices
When configuring SSP artifact manifest.json files, keep in mind the following best practices:
- Include descriptive metadata: Even though optional,
nameanddescriptionhelp with artifact discovery - Use meaningful labels: Add labels that help categorize and search for your SSP
- Follow semantic versioning: Use proper version format (
v1.0.0) for better version management - Set appropriate catalog keys: Use "any" if no specific catalog integration is needed
- Document dependencies: Use the description field to note any external dependencies or requirements
Updated about 18 hours ago
