Skip to content

Ingredient Nodes

You can configure a recipe variation for reuse, to then be embedded within other recipe variation graphs. These reusable variations are called ingredients.

Ingredient nodes call ingredients to run as part of a variation graph.

Considerations

  • For ingredients reused in the create/delete kitchen processes, ingredient nodes are not used.

    See Call Ingredients from Kitchen Wizard for more information.

  • Ingredient nodes generate separate order runs. When a recipe variation containing an ingredient node calls the underlying ingredient, that ingredient runs in a different, temporary child kitchen and executes through a new order run of a separate order.

Properties

Field Required? Description
ingredient-name yes The name of the ingredient called by this node.
ingredient-kitchen-name yes The name of the kitchen containing the variation declared as an ingredient, to be called by this node.
ingredient-recipe-name yes The name of the recipe containing the variation declared as an ingredient, to be called by this node.
ingredient-required-orderrun-results yes JSON object entry containing orderrun-poll-interval and orderrun-timeout.
required-ingredient-variables yes Variables that flow into an Ingredient node. May or may not be required, depending on the configuration for the declared Ingredient.
orderrun-poll-interval no Positive integer entry. The frequency, in seconds, at which the parent order run should poll the child order run, which runs the ingredient, for its status.
orderrun-timeout no Positive integer entry. The length of time, in seconds, after which the child order run, running the ingredient, will timeout.

Ingredient node files

description.json

Note

Node type code: the value for the ingredient node type is DKNode_Ingredient.

This system file sets the node type and provides a description field to describe a node's purpose. The file is not used for other purposes; other entries are ignored.

{
    "type": "DKNode_Ingredient",
    "description": "[YOUR DESCRIPTION HERE]"
}

notebook.json

Ingredient nodes specify the ingredient that they call in their notebook.json configuration file.

This system file is also where you can specify whether to reprocess the ingredient or to use its formerly-processed output.

{
  "ingredient-name": "",
  "ingredient-kitchen-name": "",
  "ingredient-recipe-name": "",
  "required-ingredient-variables": [
      "{{pre-defined-variable-format}}",
      "$runtime-variable-format"
  ],
  "ingredient-required-orderrun-results": {
    "orderrun-poll-interval": 10,
    "orderrun-timeout": 60
  }
}

Results of ingredient tests

Test results from ingredient variation runs can affect the way the system processes the ingredient node calling that ingredient variation. The ingredient tests do not, however, affect the tests defined for the ingredient node itself.

See Results of Ingredient Tests for more information.