Flow

See a Flow as an app. It defines things like number of steps, path of access and if it is public or protected by authentication. A Flows aims to guide end-users performing a well defined IAM task.

Setting up a flow

The Flow is defined by a JSON file. Name of the file can be anything, but flow.json is a recommended name. Format of the data inside must be either JSON or JSONC. The flow.json file will be picked up, loaded and exposed by the Forms module.

Name
Description
Default
Mandatory
name

Last part of the URL how to access the flow. Must be unique within the forms module.

N/A

public

If flow can be accessed without any authentication (true/false).

false

require_roles

Array of named roles user must have in order to access the flow, "one of"

Empty array: []

enable_progressbar

Should progress bar be visible (true/false).

true

show_user_menu

Should user menu be visible (true/false).

true

verbose_logs

Additional logging options. Note. This can be added to forms module and will then be available in all flows.

"flow",
"session"

Empty array []

steps

Steps to include for the flow. Recommendation is using @include directive for better overview.

Empty array []

pre_pipe

Pipe executed before first step.

N/A

pipe    

Pipe to execute when last step is complete.

N/A

summary

Step used after last regular step is executed with success. Used for user notification etc. Do not out any logic here.

N/A

incomplete

Step used after last regular step is executed with with failure. Used for user notification etc. Do not out any logic here.

N/A

buttons.
next_button
.enabled

Should next button be enabled (true/false).

true

buttons.
next_button.
text

Text on "Next" button

Next

buttons.
save_button.
enabled

Should save button be enabled (true/false).

true

buttons.
save_button.
text

Text on "Save" button

Save

buttons.
restart_button.
enabled

Should restart button be enabled (true/false).

true

buttons.
restart_button.
text

Text on "Restart" button

Restart

Before step 1

Sometimes it is necessary to perform some kind of logic before first step is rendered. Typically used for validation and or collecting data reqired in step 1.

For case like this use pre_pipe.

In order to consume data in subsequent steps, make sure the pipe returns one item. Data in this item will be accessible using {{flow.xxx}}

Last updated