Kalix models declare input data files by listing them in the [inputs] section of your model file:

[inputs]
c:/data/climate_data.csv
c:/data/streamflow_data.csv
c:/data/misc.csv

Kalix models declare input data using file paths. Each file path can be written in one of three styles:

Once a file is listed here, you can reference its columns from dynamic expressions using the data.* namespace. See Referencing Input Data for column lookup, name sanitisation, and temporal offset syntax.

Trailhead Paths

Relative paths work well when all your models sit at the same depth in your project folder, but they break when models are organised at different levels. In order to reference the same “evaporation.csv” dataset, each model would need a different relative path:

project/
  data/
    climate/
      evaporation.csv
  models/
    baseline/
      model.kalix          → ../../data/climate/evaporation.csv ✓
    scenarios/
      high_growth/
        model.kalix        → ../../../data/climate/evaporation.csv ✓
      sensitivity/
        detailed/
          model.kalix      → ../../../../data/climate/evaporation.csv ✓

Every model above needs a different number of ../ segments, and if you move a model to a new location you have to update all its data paths. Absolute paths can avoid this but tie your project to a specific machine.

The solution… Kalix’s trailhead paths tell Kalix to search upward through parent folders until it finds what you’re looking for. Use trailhead paths with the prefix ^/:

^/data/climate/evaporation.csv

This means: starting from the folder this model file is in, look for data/climate/evaporation.csv. If it doesn’t exist here, check the parent folder, then the grandparent, and so on until the file is found.

All three models in the example above can now use the exact same path, regardless of how deeply nested they are:

^/data/climate/evaporation.csv

Syntax

^/<target path>