Blueprint¶
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. |