Dynamic step activation (DSA) - flow concept

Dynamic step activation (DSA) is a flow concept that allows steps to activate (or deactivate) steps later in the flow. It gives the end-user (or REST client) control over optional steps.

Example:
Using the DSA concept, an end-user may, for example, activate a Remember-Me Step by checking a box ("Keep me logged-in") on the login page:

63972174.png

In the example, checking the box activates the Remember-Me Step later in the flow.

Example use cases

  • For a better understanding of what you can do with DSA, consider the following usage example:
  • The end-user activates the remember-me feature during login.
  • The end-user activates password change during login.
  • The end-user activates the activation of an additional 2nd-factor token right after the login.
  • The end-user chooses to provide extra profile information during self-registration.
  • The end-user orders an activation letter by activating a corresponding letter-ordering step.
  • The end-user chooses to skip part of the self-registration process by deactivating one or more steps.

General information

Consider the following example flow. Step 1 and Step 2 are processed in order but Step 3 is only processed if it has been activated by Step 1. If it has not been activated, it is skipped.

DynamicStepActivation1
  • A step may be activated by another step if all the following conditions are met:
  • The step is configured to require activation.
  • The step has a step ID.
  • The step implementation supports activations (most but not all steps support step activation).
  • Additional information worth noting:
  • A step may activate multiple (independent) other steps. In this case, the Loginapp UI displays multiple checkboxes.
  • The activation state of a step is stored in the flow session. If step 3, for example, activates step 5, it may find step 5 already activated by another step.
  • Dynamic step activation is available for all flow types.

Activating a sequence of steps

It may be required to activate a sequence of steps instead of a single step:

DynamicStepActivation2
  1. To achieve this, the following setup is recommended:
  2. Use dynamic step activation for the first step to be activated (Step 3 in the example)
  3. For all following activated steps (Step 4 and Step 5 in the example), use the skip condition Logical NOT on the condition Step Activated. Thus, Step 4 and Step 5 are skipped if Step 3 has not been activated. In other words, Step 4 and Step 5 are only executed if Step 3 has been executed.

The same behavior may be achieved by activating a Selection Step and defining Step 3, Step 4, and Step 5 in the sole selection option that is always selected.

This solution results in the same flow execution but requires a more complex configuration and deeper nesting.

REST API and Loginapp UI

The REST APIs of all flow types (Loginapp: public and protected self-services, authentication, self-registration; Transaction approval) provides the following end-points for dynamic step activation:

  • .../dynamic-steps/retrieve - returns all steps that can be activated from the current step
  • .../dynamic-steps/<step-id>/activate - activates a step
  • .../dynamic-steps/<step-id>/deactivate - deactivates a step
  • Please refer to the REST API specification for further details.

The Loginapp UI dynamically renders step activations by displaying one or more checkboxes as shown in the screenshot above.

Configuration

Dynamic step activation is configured both on the step to be activated and on the activating step.

  • In the step to be activated:
  • Set a Step ID.
  • Check the Requires Activation checkbox.
  • In the step activating one or more other steps:
  • Specify the steps to be activated with property Dynamic Step Activations.
  • In each Dynamic Step Activation entry, use the step ID of the step to be activated.

Limitations

  • The following known limitations exist:
  • DSA is not available for Configurable UI components in the Loginapp Design Kit.
  • DSA is not available for Context Data UI components in the Loginapp Design Kit.
  • DSA does not work across flows (a step can only be activated within a flow).