Skip to content

Blueprint

blueprint picture

A Blueprint defines a reusable specification of tasks, profiles, and parameters that can be applied to WorkOrders. It serves as a template for work that should be executed, providing the initial configuration that is copied to a WorkOrder when it transitions to the Running state.

The Tasks field contains an ordered list of work items. Each entry can be a task name, a stage reference (prefixed with stage:), or an action reference. Unlike Workflow objects, Blueprints do not allow context switching or boot environment changes within the task list. This constraint ensures that Blueprint execution remains within a single operational context.

Blueprints carry their own Profiles and Params fields, which distinguishes them from Workflows. This allows Blueprints to bundle configuration data alongside the task list, enabling customization of task behavior without requiring the single-stage-per-task pattern that Workflows use. When a Blueprint is applied to a WorkOrder, both the task list and the parameter/profile data are copied, supporting late-bound task expansion at execution time.

Blueprints are referenced by WorkOrders and Triggers. The trigger system uses Blueprints to automatically create WorkOrders in response to events, enabling event-driven automation pipelines.

Metadata

Field Description
flow-comment Used by UX to provide side-effect information in the triggers flow visualization.

Fields

Field Definition
Description Description is a string for providing a simple description
Documentation Documentation is a string for providing additional in depth information.
Meta Meta contains the meta data of the object.

The type of this field is a key / value map/dictionary.
The key type is string.
The value type is also string.

The general content of the field is undefined and can be an arbritary store.
There are some common known keys:

color - The color the UX uses when displaying
icon - The icon the UX uses when displaying
* title - The UX uses this for additional display information. Often the source of the object.

Specific Object types use additional meta data fields. These are described at:
https://docs.rackn.io/stable/redirect/?ref=rs_object_metadata
Name Name is the key of this particular Blueprint.
required: true
Params Params holds the values of parameters on the object.

The field is a key / value store of the parameters.
The key is the name of a parameter. The key is of type string.
The value is the value of the parameter. The type of the value is defined
by the parameter object. If the key doesn't reference a parameter, the
type of the object can be anything.

The system will enforce the named parameter's value's type.

Go calls the "anything" parameters as "interface {}". Hence, the type
of this field is a map[string]interface{}.
Profiles Profiles is an array of profiles to apply to this object in order when looking
for a parameter during rendering.
Tasks Tasks is a list of strings that match the same as the machine's Task list.
Actions, contexts, and stages are allowed, provided that the bootenv
does not change.