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
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}}