XIBLEDOCS

Nodes

In XIBLE, nodes provide the functionality you need from a flow. Nodes can be hooked up using connectors to request data from another node or to trigger another node after completion.

Nodes are divided into three types;

  • object; This type of node references an object (any type of data really) which can be used in other nodes.
  • action; This type of node takes an action. For instance: modifying the filesystem, logging to console, changing the state of a switch, etc.
  • event; A node which will be triggered by an event.

Insert nodes

By either double- or right-clicking the editor, the node selector comes up. Simply click the node you want with the left mouse button to insert it into the current flow. By holding the mouse down while doing so, you can immedaitely drag the new node into the desired position.

You can use the search bar on top of the node selector to quickly filter the visible nodes in the selector. Multiple keywords can be combined to narrow down your search.

View details

After selecting a single node from the editor, you can hit the h or ? button to get more details on the node. The quality of the data found here is up to the developer of the node(pack).

Install new nodes/nodepacks

By entering your search arguments in the node selector and hitting the 'search online' button, an online search is started. This search is similar to what you can find on the XIBLE site.

From the results, select a node to view the nodepack it is part of. A 'Confirm' button will show up to install the nodepack containing the selected node. After installation you can immediately drag the node from the selector.

You can also install nodepacks from the command line.

Connectors

This section describes connectors, the lines/wires connecting one nodes' output to another nodes' input.

Making a connection

Hold down the mouse on either an in- or output of a node, and drag it to another out- or input, releasing the mouse. Outputs can only be connected to inputs and vice-versa.

Move connector

Hold down shift while picking up the connector(s) endpoint, dragging it to another input or output on a node.

This can be useful also when you want to remove a bunch of connectors to the same input or output in one go. Simply hold shift on the endpoint and drag all the connectors away, and let go of the mouse button.

For moving a single connector out of a bunch, see move selected connector.

Example

Global outputs/connectors

Globals act as a convenient way to hook up all connectors of a certain type to one single output. Setting an output to global prevents you from having to drag a connector between this output and all the related inputs.

Set output as global

Doubleclick an output, to have it act as a global.

Connect input set to receive global

Whenever a direct connection is made to a global input, that input will no longer be connected to the global. If you want this input to receive from the newly created connector and the global output, you can draw another connector between the global output and this input.

Ignore global on input

If an input is receiving from a global output, you can double click that input to ignore the global.

Selections

This section covers creating and manipulating selections within the XIBLE editor.

Making a selection

Click on a node or connector to select it. See below for expanding existing selections.

Alternatively, start dragging anywhere on the canvas (not from a node or connector), to initiate a selection box. Everything within the boundaries of the box will be selected when you let the mouse button go.

Adding to a selection

Hold down ctrl while clicking on nodes or connectors that are not yet part of the selection.

Removing from a selection

Clicking on a selected node or connector while holding down ctrl removes the item from the selection.

Duplicate selection

The key combination ctrl+j duplicates the current selection.

If multiple nodes are selected with connectors between them, but those connectors are not selected, they will be duplicated anyway.

Selected connectors that link to an unselected node will be duplicated with their link intact to that untouched node. The example demonstrates this feature.

Example

Copy selection

The key combination ctrl+c copies the current selection.

Paste selection

The key combination ctrl+v pastes the current selection. The same rules apply as described in duplicate selection.

You can paste from one flow onto another. Note that in this case selected connectors with an unselected node as endpoint will be ignored. Connectors cannot cross flows.

Move selected connector

Select the desired connector(s) by clicking on them. Hold down shift while picking up the connector(s) endpoint, dragging it to another input or output on a node.

Example

Direct(ed) mode

Running in direct mode can have undesired side-effects. Take special note of the caution section.

Direct mode allows you to run a select part of the flow immediately. It only works on "action" nodes, although all required "object" nodes are involved automatically.

While in direct mode, any value (textboxes, dropdowns, etc) of the involved nodes can be changed to take immediate effect.

Enable direct mode

Direct mode is disabled by default. To enable it;

  • Open your XIBLE installation in the web-browser.
  • Navigate to "Settings".
  • Navigate to "Editor"
  • Enable "Allow direct mode"

Start direct mode

Double click the name of an "action" node within a flow to start it in direct mode.

Some considerations;

  • Direct mode must be allowed through the settings of your XIBLE installation.
  • Only nodes that are saved can be run or involved in direct mode.
  • Changes made while running in direct mode are not saved, untill you click the flows' save button.
  • Any change to the involved nodes while running in direct mode immediately triggers the action node with the made changes. Beware of this!

Stop direct mode

Stop the flow by clicking the "stop" button.

Caution

Take care while running direct mode. Direct mode is a powerful feature that will allow you to set desired values without moving back and forth between testing & setting. There can be unwanted side effects to this functionality.

Take for example a flow with a "ssh.client.exec" node that contains the command rm -Rf /tmp/test. In direct mode, if for instance you would want to change that command to rm -Rf /home/something and use backspace to get to rm -Rf / to continue adding from there, you would (attempt to) remove your root directory and everything in between!

Direct mode simply passes any changes directly to the directed "action" node.