Skip to main content

Overview

An action refers to a specific task or function that is initiated or triggered by a user interaction. This is transparent to the end-user of witboost. An action is just a container for a task that needs to be executed only when all the hooks bound to the action are completed.

With actions we can model workflows where a third-party approval or interaction is required. For instance, when a user sends an access request, it is triggering an action that will perform the following tasks:

  1. The access request action is triggered, meaning that all configured hooks for this action are performed.
  2. By default, the access request action invokes the access request notification hook. This hook sends an access request notification to the resource owner
  3. The resource owner clicks on accept or reject, this is the third-party interaction that we were just mentioning above.
  4. The access request action checks that all its configured hooks are completed, meaning that all the interactions that each hook was waiting for were satisfied.
  5. If all hooks are completed, the access request action's callback is performed, this callback will contact the tech adapters to update the Access Control List on their target technologies, so that the access is effectively granted to the user

As implicitly stated above, actions are composed by hooks. The hooks that are invoked in an action are completely configurable by the platform team. In the following sections you will get an overview of all the available hooks.

tip

A possible use-case for actions and hooks is to model an external authorization flow for resources. If your company uses a centralized tool to manage who can access resources on specific technologies (e.g. a Dremio table on your infrastructure), then you can configure your access request action to forward the request to your tool.

You can achieve this by leveraging the Remote Request hook.

## Configuring actions

Actions can be configured in the app-config in the actionHandlers section:

actionHandlers:
<actionName>:
# specific action configurations
hooks:
- type: <hook name>
# specific hook configurations for <hook name> go here
- type: <2nd hook name>
# specific hook configurations for <2nd hook name> go here

The list of available actions and hooks, together with their specific configurations is presented in the next sections.