Interface WorkflowProvider

All Superinterfaces:
Provider
All Known Implementing Classes:
AbstractUserWorkflowProvider, EventBasedWorkflowProvider, UserCreationTimeWorkflowProvider, UserSessionRefreshTimeWorkflowProvider

public interface WorkflowProvider extends Provider
  • Method Details

    • getEligibleResourcesForInitialStep

      List<String> getEligibleResourcesForInitialStep()
      Finds all resources that are eligible for the first action of a workflow.
      Returns:
      A list of eligible resource IDs.
    • supports

      boolean supports(ResourceType type)
      Checks if the provider supports resources of the specified type.
      Parameters:
      type - the resource type.
      Returns:
      true if the provider supports the specified type; false otherwise.
    • activateOnEvent

      boolean activateOnEvent(WorkflowEvent event)
      Indicates whether the workflow supports being activated for a resource based on the event or not. If true, the workflow will be activated for the resource. For scheduled workflows, this means the first action will be scheduled. For immediate workflows, this means all actions will be executed right away. At the very least, implementations should validate the event's resource type and operation to ensure the workflow will only be activated on expected operations being performed on the expected type.
      Parameters:
      event - a WorkflowEvent containing details of the event that was triggered such as operation (CREATE, LOGIN, etc.), the resource type, and the resource id.
      Returns:
      true if the workflow can be activated based on the received event; false otherwise.
    • resetOnEvent

      boolean resetOnEvent(WorkflowEvent event)
      Indicates whether the workflow supports being reset (i.e. go back to the first action) based on the event received or not. By default, this method returns false as most workflows won't support this kind of flow, but specific workflows such as one based on a resource's last updated time, or last used time, can signal that they expect the process to start over once the timestamp they are based on is updated. At the very least, implementations should validate the event's resource type and operation to ensure the workflow will only be reset on expected operations being performed on the expected type.
      Parameters:
      event - a WorkflowEvent containing details of the event that was triggered such as operation (CREATE, LOGIN, etc.), the resource type, and the resource id.
      Returns:
      true if the workflow supports resetting the flow based on the received event; false otherwise.
    • deactivateOnEvent

      boolean deactivateOnEvent(WorkflowEvent event)
      Indicates whether the workflow supports being deactivated for a resource based on the event or not. If true, the workflow will be deactivated for the resource, meaning any existing scheduled actions will be removed and no further actions will be executed. At the very least, implementations should validate the event's resource type and operation to ensure the workflow will only be deactivated on expected operations being performed on the expected type.
      Parameters:
      event - a WorkflowEvent containing details of the event that was triggered such as operation (CREATE, LOGIN, etc.), the resource type, and the resource id.
      Returns:
      true if the workflow can be deactivated based on the received event; false otherwise.