¶ How to Create and Work With Pipelines
This guide will focus more heavily on the UI aspect of working with pipelines,
and assumes you already have a functioning instance of C4, as well as credentials
to log into that instance's UI.
The guide will use arrow notation (e.g ... -> Edit) to indicate clicking on/entering a series
of menus in the UI.
Using the Pipelines button along the top bar, navigate to the pipelines page:
From this page, you can:
- View pipelines in either grid or list view alongside previews of their contents
- Add a new pipeline (the name must be unique)
- Edit pipelines: either click on the pipeline's title or use
... -> Edit
- Trigger a pipeline as a test:
... -> Trigger
- Filter the pipelines via the Search... box at the top
This view is accessed from the pipelines page -> ... -> Edit on a pipeline.
This view will automatically zoom itself on initial load to cover all nodes in the graph. If the nodes are spread far
apart, this may make the nodes rather small.
All editing functionality is controlled through a few methods:
- Scroll to zoom
- Click and drag on the background of the graph to pan
- Click and drag the header of a node to move it
- Use the
+ button to create a new node
- Details of this modal are covered in the editing nodes subsection.
- The views for creating and editing nodes are the same, except editing an existing node also allows deleting it.
- Nodes are always created at
(0, 0) (the center of the graph) by default.
- Use the floppy disk (3D-printed save icon) icon to save the pipeline
- Note that the UI does not autosave. This must be done manually.
- Use the
... button or right click on a node to edit it
- Click an output port, then click an input port to create a linkage between those ports
- Click a control port, then click a node's header make that node dependent on that port
Note: The views for creating and editing nodes are the same, but the Delete button is replaced with Cancel when
creating, and you may only edit the node's name on creation.
From this view, you may set (in order) the node's:
- name (if creating) - used to uniquely identify this node within this pipeline.
- comment - used to document the reasoning behind and purpose of this node's being in the graph.
- kind - select Script, Embedded Pipeline, or Sub-Pipeline from the dropdown
- For most uses, this will never change from the default value of Script. For more details, see
Understanding Pipelines.
- parameters - see the next section editing parameters.
- position - useful if you accidentally placed a node far away from the others, causing the
As discussed in General Architecture, parameters work based on two systems:
- Immediate parameters, which are stored directly on the node, pipeline, schedule, or runset, and apply
the literal string value given them to the parameter found at their path.
- For example, the header for this section shows a
Set node with a single DestPath parameter. This maps
directly to the DestPath member inside the Set node in the code.
- Making an immediate value
Q inside another immediate value P will look at the P parameter of the current
node and, if it is a script, will apply Q's value to the parameter named Q on the script P.
- Example: <img src="./img/ParentChildParams.png" height=100 />
- Saved/Sensitive parameters which act similarly to immediates, except that they load predefined sets of immediates
from the database, then act as if those immediates had been placed directly on this node under the given path.
- For example, a saved argument set
S with a value V (which has no parents inside S) will,
when applied at the path P, act as if the node has the immediate path P/V.
You may perform the following actions on either immediate or saved parameters:
- Click the
+ at the top to add a new node to the root (i.e with no prefix/parent).
- Click the
+ on an existing node to add a new immediate value or saved parameter set.
- Click the <img src="./img/NewPrefixIcon.png" height=25 /> icon to create a new prefix (child) under the current
saved parameter node.