WDC Lifecycle and Phases


🕐 2 min read

This topic explains the overall lifecycle of a Tableau Web Data Connector (WDC). We recommend that you understand the content in the Get Started topic before diving into this topic.

A WDC is always run with an associated phase. Tableau loads the connector inside a web browser at different times and in distinct phases. This topic explains each of these phases.

Interactive phase: Interact with the user

In the interactive phase, Tableau launches the connector UI. This is the connector’s UI. During the interactive phase, the following actions happen:

  1. Initialize: The connector is executed new Connector(onInitialized).

  2. Get user input: After it’s ready, the connector allows connector-specific input.The connector waits for interaction to be completed by the user. This could be waiting for the user to enter data in a form, waiting for the user to authenticate (for non-OAuth connectors—OAuth happens before the interactive phase), and more. This is optional, if a connector has no need for user input, it can call connector.submit() immediately.

  3. Pass the data: The user data is then passed to the connector in connector.handlerInputs. Secrets are passed as an object to connector.secrets.

  4. Submit: The connector calls the function connector.submit() to finish the interactive phase.

Data gathering phase: Fetch data from data source

After the interactive phase has been completed, the connector sends the user data to EPS, which triggers the data gathering phase.

In the data gathering phase, the following steps take place:

  1. Authenticate (optional): If your connector requires authentication, the pipeline runs the authenticator in the handlers.

  2. Retrieve the data: The fetcher handler retrieves the data from the connector’s data source, according to how and where you have defined it to fetch your data. (data transportation)

    The result of the fetch API is passed to the parser handler.

  3. Transform the data: The parser handler maps the data to Tableau tables.