Skip to content

106. Evaluation Pipeline input list

An input list tells the pipeline which data packages to process. You pass it to the run subcommand with --input_list, and to validate to check every entry before a full batch.

The input list is a JSON document with a single top-level key, inputs, holding an array of entries. Each entry describes one recording to process.

{
  "inputs": [
    {
      "drive_data": "/data/recordings/recording_001.parquet",
      "map_data": "/data/maps/area.xodr",
      "matches_data": "/data/matches/recording_001_matches.pb",
      "video_data": "/data/videos/recording_001.mp4",
      "metadata": {"source": "fleet_a", "date": "2026-03-15"}
    },
    {
      "drive_data": "/data/recordings/recording_002.parquet"
    }
  ]
}

106.1 Entry fields

Only drive_data is required. All other fields are optional.

FieldRequiredDescription
drive_dataYesPath to the raw data package — a single measurement file. Directories are rejected; each pipeline run processes exactly one measurement file.
map_dataNoPath to a map file. Overrides any map discovered by the explore stage.
matches_dataNoPath to external match data for the ext_match stage.
video_dataNoPath to a video file for playback in Foretify Manager.
metadataNoAn arbitrary JSON object stored alongside the run for traceability.

106.2 Explorer discovery versus explicit fields

When you omit map_data, matches_data, or video_data, the explore stage plugin discovers them automatically from the recording directory. If the explorer cannot find a field that the flow requires — for example, a map file — the pipeline fails with a clear error.

Any value you specify explicitly in the input list always takes precedence over explorer discovery. The second entry in the example above relies entirely on the explorer, while the first entry specifies every input path explicitly.

106.3 Path expansion

Paths support environment variable expansion, so you can keep the input list portable across installations:

{
  "inputs": [
    {"drive_data": "${DATA_ROOT}/recordings/recording_001.parquet"}
  ]
}

$FTX/..., ${HOME}/..., and any other environment variable are expanded when the list is loaded.

106.4 Inline JSON

Instead of a file path, you can pass the JSON directly to --input_list. This is useful for quick one-off runs and scripting:

$FTX_EVALUATE_EXE run \
    --input_list '{"inputs": [{"drive_data": "/data/recordings/recording_001"}]}' \
    --output_path /tmp/eval_output \
    --flow /path/to/flow_config.yaml

106.5 Cloud storage paths

Both the input list file itself and the individual drive_data, map_data, and other path values can use s3:// URLs. The pipeline downloads them as needed during the run.

{
  "inputs": [
    {
      "drive_data": "s3://my-bucket/recordings/recording_001.parquet",
      "map_data": "s3://my-bucket/maps/area.xodr"
    }
  ]
}