Learn how to structure and write a manifest.
A manifest in your site defines the execution flow of tools and scripts, specifying dependencies and data transformations. This document outlines how to structure and write a manifest following the format used in your system.
To create a manifest:
id
and name
for each step.tool
, such as INPUT_JSON
or PYTHON_SANDBOX
.input
.needs
to ensure correct execution order.By following this structure, you can build a clear, modular workflow for processing data efficiently.
Each step in a Jinbaflow manifest is composed of several key components that define its behavior and relationship with other steps. Here’s a detailed breakdown:
Each field serves a specific purpose:
id
: Required unique identifier for referencing the steptool
: Required name of the tool to execute (must be one of the available tools)input
: Required list of input parameters specific to the toolconfig
: Optional tool-specific configuration (e.g., API tokens, temperature for LLM)needs
: Optional list of step IDs that must complete before this step runswhen
: Optional condition that must evaluate to true for the step to executeforEach
: Optional field to execute the step multiple times over a collectionUsed to set tool-specific settings:
Example:
Specify which steps must complete before this step can run:
Example:
Control whether a step should run based on conditions:
Examples:
Execute a step for each item in a collection:
Example:
Reference results from previous steps:
{{steps.step_id.result}}
to access previous step results{{secrets.SECRET_NAME}}
to access configured secrets{{item}}
in forEach loops to access the current item|
for a multi-line string until the indentation ends.Jinbaflow supports Jinja2 templating for dynamic value generation and complex logic in manifest files. This powerful feature allows you to create more flexible and reusable workflows. When using templates, you have access to:
steps
: Results from previous stepsitem
: Current item in forEach loopssecrets
: Configured secretszip()
, range()
, etc.Use {%-
and -%}
to control whitespace in the output, where the -
removes whitespace before or after the block.
Below is an example manifest that processes numerical data through multiple steps:
input_data
)INPUT_JSON
tool to define an array of numbers [1, 2, 3, 4, 5]
.branch_a1
)PYTHON_SANDBOX
to compute the sum of even numbers from input_data
.input_data
.branch_a2
)branch_a1
.branch_a1
.branch_b1
)input_data
.input_data
.Learn how to structure and write a manifest.
A manifest in your site defines the execution flow of tools and scripts, specifying dependencies and data transformations. This document outlines how to structure and write a manifest following the format used in your system.
To create a manifest:
id
and name
for each step.tool
, such as INPUT_JSON
or PYTHON_SANDBOX
.input
.needs
to ensure correct execution order.By following this structure, you can build a clear, modular workflow for processing data efficiently.
Each step in a Jinbaflow manifest is composed of several key components that define its behavior and relationship with other steps. Here’s a detailed breakdown:
Each field serves a specific purpose:
id
: Required unique identifier for referencing the steptool
: Required name of the tool to execute (must be one of the available tools)input
: Required list of input parameters specific to the toolconfig
: Optional tool-specific configuration (e.g., API tokens, temperature for LLM)needs
: Optional list of step IDs that must complete before this step runswhen
: Optional condition that must evaluate to true for the step to executeforEach
: Optional field to execute the step multiple times over a collectionUsed to set tool-specific settings:
Example:
Specify which steps must complete before this step can run:
Example:
Control whether a step should run based on conditions:
Examples:
Execute a step for each item in a collection:
Example:
Reference results from previous steps:
{{steps.step_id.result}}
to access previous step results{{secrets.SECRET_NAME}}
to access configured secrets{{item}}
in forEach loops to access the current item|
for a multi-line string until the indentation ends.Jinbaflow supports Jinja2 templating for dynamic value generation and complex logic in manifest files. This powerful feature allows you to create more flexible and reusable workflows. When using templates, you have access to:
steps
: Results from previous stepsitem
: Current item in forEach loopssecrets
: Configured secretszip()
, range()
, etc.Use {%-
and -%}
to control whitespace in the output, where the -
removes whitespace before or after the block.
Below is an example manifest that processes numerical data through multiple steps:
input_data
)INPUT_JSON
tool to define an array of numbers [1, 2, 3, 4, 5]
.branch_a1
)PYTHON_SANDBOX
to compute the sum of even numbers from input_data
.input_data
.branch_a2
)branch_a1
.branch_a1
.branch_b1
)input_data
.input_data
.