File Formats

project.yaml

  • name, project_path (host-aware), templates[] (id, source_template, status, params, published)
  • workflows[] (id, status, params, started_at, finished_at, run_entry, args, error)

stores.yaml

  • schema_version, updated, active, stores{id, source, cache_path, version, commit, last_updated}

template_config.yaml

  • id, description, params, render.into, render.files, render.parent_directory, run.entry, publish, hooks
  • tools: list or map of required/optional CLI tools to hint environment needs

workflow_config.yaml

  • id, description, params, run.entry, run.args, run.env, hooks
  • tools: list or map of required/optional CLI tools to hint environment needs

Schema (minimal example):

id: demo_workflow
description: Example workflow
params:
  name: {type: str, required: true, cli: --name}
  include_time: {type: bool, default: false, cli: --include-time}
run:
  entry: "run.sh"
  args:
    - "${ctx.params.name}"
    - "${ctx.params.include_time}"
  env:
    REPORT_DIR: "${ctx.project_dir}/reports"
hooks:
  pre_run: [hooks.env:main]
  post_run: [hooks.collect:main]
tools:
  required: [python]
  optional: [quarto]

Param fields:

  • name (map key), type, required, default, cli, exists, description

Template instance fields:

  • id: instance/alias stored in project.yaml (render folder name).
  • source_template: canonical template id from the BRS (defaults to id when not aliased).

Examples:

  • Simple list (treated as required): tools: [fastqc, multiqc]
  • Explicit groups: tools: required: [fastqc, multiqc] optional: [bcl-convert]

Notes:

  • render.parent_directory: Optional extra folder inserted above the rendered template folder in project mode. For example, with render.into: "${ctx.project.name}/${ctx.template.id}/" and render.parent_directory: analysis, files render into <project_dir>/<project.name>/analysis/<template.id>/. Ad-hoc mode ignores this and renders directly into the provided output directory.

This site uses Just the Docs, a documentation theme for Jekyll.