WriteBackExtreme Product Guide Introduction2023-03-17T09:12:05+01:00

Introduction

Tableau helps people see and understand data. They make sure that, in the process of exploring and analyzing data, there are no changes made to the data. Most analytics tools are based on strictly read-only technology. Sometimes however, you want to have the ability to add, delete or edit existing data behind a Tableau visualization and instantly see how those changes are reflected in the Viz. You can support and solve a lot of your use cases in Tableau with this flexible and solid Write Back Extreme extension. Read more on the product page. This product guide helps you to get around in the Write Back Extreme extension and helps you in deploying and managing your extension. STAY IN THE FLOW  |  STAY IN TABLEAU  |  USE YOUR WRITE BACK SCENARIO

SUPPORTED DATABASE PLATFORMS

Currently we support different database platforms to write data back to. Our goal is to support as many platforms and use cases our customers can think of. If your preferred database platform is not yet supported by the Write Back Extreme extension, you can still use the WriteBackExtreme extension with a supported secondary use database platform. The DATA HELPER and ADD DATA modules can integrate seamlessly with your existing datasources using a supported database platform like MySQL or MS SQL.

MySQL Database Platform

MySQL

WBE version 1.0

Microsoft MS SQL Database Platform

Microsoft SQL Server

WBE version 1.0

PostgreSQL Database Platform

PostgreSQL

WBE Version 1.0

Snowflake Database Platform

Snowflake

Supported via the ODBC Protocol

Azure Synapse database platform for Azure

Azure Synapse

WBE version 1.0

Oracle Database

Oracle Database

WBE Version 1.0. This driver supports Oracle DB. Support via OCI8 ^2.2.0 or 3.0 version.

WriteBackExtreme Product Guide Introduction product guide

Amazon Redshift

WBE version 1.0

Google Big Query

Google Big Query

WBE version 1.0

Primary Key needs to be manually chosen

Teradata

Teradata

WBE version 1.0

What is the architecture of WriteBackExtreme?

We have created an image to show the infrastructure of the WriteBackExtreme extension. This shows what actually happens when you call in your WriteBackExtreme extension to your dashboard.

There’s a connection to the WriteBackExtreme extension server where it will serve the necessary JavaScript, HTML and CSS to the dashboard for the extension to be rendered there (the rendering of the extension is client side). Write back transactions are handled by the WriteBackExtreme Extension server through API calls.

A repository database is required (supported database types for the repository database are listed below) and a connection to your database where you can write directly to is probably already present in your infrastructure (Write Back databases, the common data sources you use for your Tableau Reporting as well).

Whitelisting/Safelisting of the Extension Server URL needs to be done on Tableau Server/Tableau Online to allow communication with the extension server for users visiting your published dashboard. Communication with the WriteBackExtreme extension server will only take place from the clients side (whether it is Tableau Desktop or a visitor of a published workbook in the browser). As already mentioned, rendering of the extension will take place in the dashboard (client side).

Tableau Infrastructure

Where does the write back data live?

The WriteBackExtreme extension can connect to multiple databases by setting up different connections in your Management Console. Use the plugins tab of your management console to see the available database drivers you can connect to. If you miss a specific driver please contact our support.

The writeback data lives in the tables of databases that are (already) present in your infrastructure; the data sources already available to your (Tableau) infrastructure. When creating your (DATA Helper and ADD Data) schemas in the management console, the actual tables will be added to your database automatically by the extension. Changing your schema in the Management console will also change the actual tables in the database. Because of this automation by the extension it is highly recommended not to manually alter the tables created by the extension (and do all changes through the Management console of the extension).

You can also connect to existing tables to change data that already resides in tables in your databases (using the DATA Correction module). The DATA Correction module allows you to change data that is already present in your database and therefore will not create its own table but use the existing table. Be aware that Data correction changes your actual data!

The WriteBackExtreme extension can set up connections to different databases and the data will always remain in the database you select during the creation of the schema.

Where does the data live for repository and which databases are supported?

A database will be set up when installing WriteBackExtreme for repository data. This will be a separate database from your Write Back databases, preferably installed on the same machine as the WriteBackExtreme extension server, this is to avoid lag and performance degradation.

A data repository is the logical aggregation of data items from separate databases into one centralized location for a specific purpose that cannot be achieved using the databases themselves. There is no server side processing of your data, auditing and logging information will be stored in the Repository database. The configuration and connection information of the WriteBackExtreme extension will also be stored (in an encrypted way of course) in the Repository database

Supported Databases for repository

  • MySQL
  • PostgreSQL
  • SQLite
  • SQL Server

System requirements

This section is about the system requirements needed to implement the on premise Write Back Extreme extension

Linux Server / Webserver

  • Minimal Server Resources: 2 vCPU, 8Gb, 100Gb application diskspace, 100Mbps or 1Gbps network-interface
  • Long-Term supported distributions only (UBUNTU preferred)
  • Full permissions (root/sudo) on the Linux webserver through SSH. We recommend to install NGINX (config generator: https://nginxconfig.io/) or Apache as a web server.
  • Firewall rules to permit access on port 443 (https) and ports to the database servers (if installed on this machine). Both internal, external and server-firewall.
  • Minimum version of PHP is 7.4. PHP-FPM is preferred.
  • PHP is installed and functioning (you can test this by adding an index.php to the webroot with content: <?php echo ‘Hello World’; ?>)

SSL certificates

  • A webdomain (example: https://write-back.company.com)
  • Use of HTTPS is mandatory in all environments. Therefor a SSL-certificate is needed. And it has to cover the web domain / application URL. It can be a wildcard certificate (“*.company.com”) or URL-specific (fi. “write-back.company.com”). We need the certificate-file (.crt), the private-key (.key) and certificate-chain file (often CAcert.crt) to configure in NGINX / Apache Webserver
  • Domain needs to point to the webserver with DNS (internal and/or external)
  • https://write-back.company.com is pointing to the document-root location on the webserver (using virtual-hosts for example)
  • HTTPS is functioning on above domain

Database platform

MySQL

  • Minimum version of MySQL is 5.7
  • MySQL is running
  • MySQL root account and password (written down);
  • MySQL read only user (test and access via Tableau to add datasources)
  • You can connect to the MySQL database through linux server console

Microsoft SQL Server

  • Minimum version of MS SQL Server 2016
  • MSSQL is running
  • MSSQL db_owner user account and password (written down)
  • MSSQL read only user (on same database)
  • You can connect to the SQL server database through linux server console

Field types available per database

When you connect DATA CORRECTION to an existing schema it reads all fields but might encounter fields of a type that is not compatible with WriteBackExtreme field types. If a field is not properly recognized it can be set to the correct field type when creating a schema.

                          My SQL

MySQL Database Platform

 

id: (36) PK number: int(11) dropdown: varchar(255)
single_line: varchar(255) decimal: decimal(12,2) date: date
paragraph: text boolean: tinyint(1) date_time: datetime

                Microsoft SQL Server

Microsoft MS SQL Database Platform

 

id: uniqueidentifier number: int dropdown: varchar(255)
single_line: nvarchar(255) decimal: decimal(12,4) date: datetimeoffset
paragraph: nvarchar(max) boolean: bit date_time: datetime

                      PostgreSQL

PostgreSQL

 

id: uuid number: int(8) dropdown: varchar(255)
single_line: varchar(255) decimal: double precision date: date
paragraph: text boolean: bit date_time: datetime

                         Snowflake

Snowflake Database Platform

 

id: varchar(36) number: number(38,0) dropdown: varchar(255)
single_line: varchar(255) decimal: number(38,4) date: date
paragraph: text boolean: boolean date_time: datetime

                      Azure Synapse

Azure Synapse database platform for Azure

 

id: char(36) number: int dropdown: varchar(255)
single_line: varchar(255) decimal: decimal date: date
paragraph: nvarchar(4000) boolean: tinyint(1) date_time: datetime

                           Oracle

WriteBackExtreme Product Guide Introduction  product guide

 

id: char(36) number: number dropdown: varchar
single_line: varchar, varchar2, char decimal: number date: date
paragraph: clob boolean: char(1) date_time: timestamp(6)

                      Amazon Redshift

WriteBackExtreme Product Guide Introduction  product guide

 

id: char(36) number: numeric dropdown: varchar
single_line: varchar decimal: decimal date: timestamp
paragraph: text boolean: tinyint(1) date_time: timestamp

Workflows in WriteBackExtreme

The general idea of workflows is the ability to send a notification to another system of an action that is triggered in the extension. For example: When a user creates a collaboration record in the extension, the representative should be notified per mail.

Getting started

A workflow is defined on a schema.

  • Open the schema where you want to define a workflow for
  • Click the ‘Workflows’ tab
  • Here you can add workflows

Connected Workflows

WriteBackExtreme Workflows

Add and edit your workflow connected to your schema.

WriteBackExtreme Workflow Action

Relations

What makes workflows more powerful is the ability to add even more data to the request. For example: When you have a form in your extension where you can specify the state of the US. You can append data to the notification that is specific for that state. Relations can be set for all tables of a connection. Even if the tables are not managed by WriteBackExtreme at all. Only a connection is needed to make it work. Relations are defined globally for the given schema so that it is re-usable for any trigger that needs that information attached to the workflow payload.

To add a workflow relation click on the relation tab and add a relation.

WriteBackExtreme Add Workflow Relation

You will then be prompted with a helpful wizard to take you through setting up your relation. Give your relation a recognisable name, set the connection to your database which holds the table you wish to connect to then in the table find the column to match with a column in your schema. From that table you can decide which columns you wish to fetch by clicking on one or multiple.

WriteBackExtreme Workflow Relation

System fields

System fields are fields that are not in the schema fields but are filled by the system, like the user who triggered the action, the trigger itself and the selected marks. Most of the system fields speak for themselves. Only the `selected marks` can be difficult for users to understand. The Selected marks field will append an array of the marks that the user selected in the connected sheet of the dashboard when creating/updating the form in the extension. For example: I have a dashboard with a sheet of states and connect my extension to that sheet. When I select a state and make a record in my extension for that state, the workflow payload will include that selected state when it is triggered.

Logging

Each trigger will create a log entry in the management console. These logs are accessible via the workflows menu item. At the right top of the screen there is a ‘View logs’ button. All errors that are returned by the third-party application will be stored in our logs files. We only store logs of the last 14 days.

Give it a try!

The `try` button at the top of the workflow popup will generate a sample payload. This will enable the user to see the JSON structure of the payload that is sent by WriteBackExtreme. This is needed as input for the setup in some third party applications like Power automate and salesforce.

Supported processors

WriteBackExtreme Supported Processors

Row Level Security

When setting up a schema in the management console, admins are able to set row level security on groups and/or users. Set groups or users with row level security so they only see the data that’s relevant to them within WriteBackExtreme. Overall, row level security provides a powerful mechanism for controlling access to sensitive data in a database. By restricting access to specific rows based on the identity of the user, you can ensure that your data remains secure and confidential, while still allowing authorized users to access the information they need to do their jobs.

An example is that users in a particular department will only see their departments data. Multiple rules can be set up so groups/users can see their departments information in a particular region for example.

  • The rules within a policy will be stacked. This means that data is only shown when all conditions are met (AND)
  • Defining multiple policies for a schema will result into a union (OR)
  • Multiple entitlements within a user or group will create a union (OR)
Row level security in Tableau using WriteBackExtreme Extension

How it works

Choose the entitlements of your user or group and set the value that applies to your schema. The user or group will only see the data within these fields.

Vince Order Number

When connected to the schema only the rows will be present in your data set

Vince WriteBackExtreme

RLS Entitlement import

For customers that have an existing set of entitlements for their RLS policies we have the following solution to easily import this into WriteBackExtreme. Any ETL tool can be used to populate our internal WriteBackExtreme RLS entitlements table. Since you are already use Tableau we recommend to achieve this with Tableau Prep. In Tableau prep you can transform your entitlement dataset to our data structure for the RLS Entitlements. After setting up this prep, you can easily add it as a scheduled task in your tableau server instance. As an example we have created a sample file that can be used as an inspiration.

The most important of the prep is that you need to populate the _rls_entitlements table. The following columns need to be populated:

  • assignable_type (this needs to be user or group since we can set entitlements for groups or for users.
  • assignable_id (the id of the user or the group) (note that this should be our internal id in the _users or _groups table)
  • property (the name of the entitlement)
  • value (the value of the entitlement)
Sync

Want to try it yourself? Use our example files as inspiration!

FAQ

Is WriteBackExtreme supported when Tableau dashboard is set to Extract mode2022-09-06T09:50:56+01:00

Yes. The write back connection where the data from the writeback forms is stored needs to be on a live connection. The rest of your data sources can be on an extract.

Is blending essential for the writeback functionality?2022-09-06T10:06:52+01:00

You can use a blend, Join or Relationship to connect primary data with writeback data. With Data Correction you can write back in the primary data source (if on a live connection) and you only need a Blend/Join or Relationship if you want to combine your primary data with the writeback data in the same visualization. You can also use an ETL process to combine primary data with WriteBack data.

How can we manage the jurisdiction to correct or add data ?2021-05-19T10:15:55+01:00

Within the management console administrators will be able to create groups and assign permissions to the groups. 

Snowflake – Schema creation throws error undefined2021-11-03T11:08:15+01:00

When creating a new schema for Snowflake an error message was thrown that it could not create the schema.

Reason
This is happening because the PDO/ODBC implementation of Snowflake has some quirks with preparing a SQL query. Our intended workflow of all of our database implementations should be: Prepare data (escape/sanitises data) -> execute query. Only the default Snowflake ODBC implementation fires the query directly instead of preparing the query.

Solution
Within the ODBC driver configuration file we need to set the configuration `NoExecuteInSQLPrepare=true` re-enable the original intended functionality of the prepare statement of the PDO/ODBC. Checkout this documentation for help.

References:
– https://docs.snowflake.com/en/release-notes/2020-08.html#odbc-driver-2-21-6-changes-to-the-handling-of-ddl-statements-in-sqlprepare-and-sqlexecute
– https://appsfortableau.infotopics.com/support/documentation/write-back-extreme-installation-manual-linux/

How can we set permissions and authorizations for the write back users?2020-10-29T09:17:37+01:00

We have developed a permissions system which is very similar to Tableau Server. You can set permissions on your schema’s for every group. These permissions will be pushed to the extension automatically.

A printable extension part is something Tableau needs to incorporate as other dashboard items can’t be printed. To connect to the backend data would still be possible to join or relate it to the other data and do something printable, right?2021-05-19T10:22:47+01:00
That is correct. Tableau is working really hard to make that possible. Luckely you can query, join or relate the Write Back data right into your dashboard and visualize it and then print it of course :).
Do we need licenses to deploy the extension in development and test environments?2020-10-29T09:21:56+01:00

No, you only need licenses for your production environment and you can use the extension on your development and test environment without extra need for licenses.

We like to do a proof of concept with the WriteBackExtreme extension. How can we start?2021-08-17T08:20:41+01:00

If you want to start with Write Back Extreme, you can contact us to plan a meeting to talk about your use cases and have a live demo that meets your requirements.

We can grant you access to our online demo server and after a functional PoC we can also agree on an installation on your server if you like to use your own data, infrastructure and dashboards.

Currently we work with the Annotations extensions. Can we migrate to WriteBackExtreme Add Data module?2021-08-17T08:20:32+01:00

Yes of course. You can migrate and use all the value of Write Back Extreme. We can migrate your Annotations subscription to the Write Back Extreme | Add Data module at no extra costs.

Which users in my Tableau environment need to be licensed to use the WriteBackExtreme extension?2021-08-17T08:20:18+01:00

Only users that are actually going to interact with Write Back Extreme need to be licensed license, this includes all Tableau  Creators, Explorers and Viewers that are going to use the extension.

We would like to purchase a subscription to the WriteBackExtreme extension. Is it possible to start with 1 module?2021-08-17T08:20:05+01:00

Yes that is possible. You can start with 1 module and if needed you can upgrade to 2 modules or 3. We also offer a discount for the second and third module.

When we have extra wishes or general improvements regarding the WriteBackExtreme extension, how do we let you know?2021-08-17T08:19:54+01:00

We understand you might have some extra ideas and use cases that might be solved with this extension with a slight addition of functionality. You can email [email protected] or use our information form.

Can we use 2 instances or 2 different schemas of the WriteBackExtreme extension in the same dashboard?2021-08-17T08:19:45+01:00

Yes you can! And they can all integrate in one container on your dashboard.

The extension doesn’t work on Tableau Online/Server2021-09-27T15:57:59+01:00
  • Make sure the extension domain is whitelisted on Tableau Online/Server.
  • Webserver services content with proper X-Frame-Options and Content-Security-Policy headers.
  • Extensions feature is turned on, on Tableau Online/Server.
  • The Extension server/domain has a valid SSL Certificate.
  • Tableau Online/Server has access to the Extension Server to load the extension.

You can find any issues by doing the following: While running on Tableau Online/Server in the browser open the “console” tab in Chrome Developer’s tools. To open the developers tools can be done via: Hamburger menu top right > More Tools > Developer tools. Refresh the page while the developers tools is open. Now you can see if there any issue while embedding.

Note: Tableau will show warnings with something like: ‘cannot load source map’ by default, these are not caused by our extensions. They can be identified based on the domain of the url that it warns with.

Make sure to follow our installation guide to setup the right configuration!

Common issues

CSP Header error or X-Frame-Options error.

Make sure the following headers are properly set:

X-Frame-Options: SAMEORIGIN
Content-Security-Policy: frame-ancestors 'self' *.online.tableau.com;

For Tableau Server *.online.tableau.com should be your domain.

Check all security headers with the following website: https://securityheaders.com/

Does the no auth method work with MS SQL Server Auth or is it between the backend and frontend?2021-08-16T15:01:09+01:00
The connection with the database is managed by the backend. The no auth is only for access to the frontend of the extension.
What databases are supported with WriteBackExtreme?2022-04-04T11:39:57+01:00

Currently we support branches of SQL, we support MySQL, MicrosoftSQL and PostgreSQL. We also support a few cloud data warehouses like Snowflake and Amazon Redshift and Synapse and we also support the Oracle database for the WriteBackExtreme extension.

Title