Manifest reference (unibench.toml)
Auto-generated from
unibench-manifesttype definitions. Regenerate withcargo run -p unibench-manifest --bin manifest-reference-gen.
- Schema version this build supports: 1 (decision 2.26)
- Catalog version this build supports: 1 (decision 2.47)
Manifest (top level)
| Field | Type | Required | Description |
|---|---|---|---|
project | Project | yes | |
runtime | map<string, Runtime> | no | |
seed | any | no | [seed] block — scripts the orchestrator runs after a Seed-mode start to load test fixtures into the now-empty data dirs. Source: §3.3, §8.6.1, decision 2.21. |
services | map<string, Service> | no | |
tasks | map<string, Task> | no |
AutoPortMarker
Captures the literal string "auto" for the PortSpec::Auto variant. Serde's untagged enums need a concrete representative for each branch.
Variants:
"auto"
Dependency
| Field | Type | Required | Description |
|---|---|---|---|
condition | DependencyCondition | yes | |
service | string | yes |
DependencyCondition
One of:
healthy— Wait until the upstream service's healthcheck passes.completed— Wait until atask_serviceexits cleanly (decision 2.16, 2.43).model_loaded— Wait until anollamaservice finishes loading the declared model.
IsolationKind
One of:
per-project— Per-project instance (default for most services per decision 2.2).shared— Single shared instance per (type, major version) — see decision 2.46.
PackageManagerSpec
Variants:
"auto""bun""pnpm""yarn""npm""uv""poetry""pip""bundler""cargo""composer""go"
PortSpec
One of:
any—port = "auto"— orchestrator allocates from a free range.integer—port = 5432— manual pin.
Project
| Field | Type | Required | Description |
|---|---|---|---|
catalog | `ProjectCatalog | null` | no |
name | string | yes | |
schema | ProjectSchema | yes |
ProjectCatalog
| Field | Type | Required | Description |
|---|---|---|---|
minimum_version | integer | yes |
ProjectSchema
| Field | Type | Required | Description |
|---|---|---|---|
version | integer | yes |
Runtime
[runtime.<name>] declaration — the orchestrator provisions the runtime and detects the package manager from a lockfile (decision 2.13).
| Field | Type | Required | Description |
|---|---|---|---|
manager | any | no | |
version | string | yes |
Sandbox
[seed] table — list of scripts to run after start_all in Seed sandbox mode. Each path is resolved relative to the project root unless absolute. The scripts are spawned via bash -c with the same env shape services see: mise-resolved PATH + every service's $<NAME>_PORT and $<NAME>_HOST.
| Field | Type | Required | Description |
|---|---|---|---|
scripts | array<string> | no |
Service
| Field | Type | Required | Description |
|---|---|---|---|
depends_on | array<Dependency> | no | |
healthcheck_retries | `integer | null` | no |
isolation | `IsolationKind | null` | no |
on_unhealthy | array<string> | no | |
port | `PortSpec | null` | no |
post_start | array<string> | no | |
pre_start | array<string> | no | |
pre_stop | array<string> | no | |
type | string | yes | |
version | `string | null` | no |
Task
[tasks.<name>] — named commands surfaced as one-click buttons in the project UI and runnable from CLI (decision 2.10).
| Field | Type | Required | Description |
|---|---|---|---|
description | string | yes | |
run | TaskRun | yes |
TaskRun
One of:
string—run = "do-the-thing"array<string>—run = ["step-one", "step-two"]