Data Portability

The Data Portability app is an app which allows you to do two things:

  • Create data definitions in the backend which contain configurations for extracting user-related data
  • Render those data definitions in frontend, and allow users to download the data

As can be inferred from this, the app consists of two parts:

  • A configurable app for creating data definitions
  • A paragraph app for rendering data definitions in frontend

These are both described below.

A  data definition is, well, a definition of the data you want to make available for download. A data definition consists of one or more data groups, which in turn contain data item types (Figure 2.1).

Figure 2.1 The Data Portability app

All of this is a fairly complicated way of saying that you use providers to extract data about a user and their activity, and that you can group the data together when it makes sense.

To create a data definition:

  • Go to Apps > Data Portability
  • Right-click the Data Definitions node and click New data definition (Figure 2.2)
Figure 2.2 Creating a new data definition
  • Enter a Name and Save
  • Right-click the newly created data definition instance and click Add data group
  • Enter a Name and Save

A data definition can contain of as many data groups as necessary – each data group can be viewed as a rough grouping of related data, e.g. Content data such as comments, form submits, and forum messages. This data is retrieved by data item types using a data-specific provider.

A data item type is a configuration which uses a provider to extract data associated with the user from the solution.

To create a data item type:

  • Click on the data group
  • In the content pane, click add in the toolbar
  • Name the data item type and select a provider (Figure 3.1)
  • Save
Figure 3.1 Creating a new data item type

Dynamicweb ships with a set of data providers which can extract various types of data related to a user:

Provider

Data extracted

CommentDataProvider

Comments on pages, products, etc. which have been added to the Comment table in the database

FavoriteListDataProvider

Favorite lists

FormSubmitDataProvider

Form data submitted using the Forms for Editors app

ForumMessageDataProvider

Forum posts

OrderDataProvider

Orders & Carts with their orderlines

PaymentCardDataProvider

Saved credit card information

SessionDataProvider

User sessions

SqlDataProvider

See below

UserAddressDataProvider

Secondary addresses associated with the user

UserDataProvider

Standard user fields

UserExternalLoginDataProvider

External login data, e.g. Facebook or Twitter logins associated with the user

Should the preconfigured providers not be adequate, you can use the SqlDataProvider to extract data from other parts of the system (Figure 3.2).

Figure 3.2 The SqlDataProvider

This provider must be configured:

  • Select a database table to extract data from
  • Select one or more columns to include in the download – if nothing is selected, all columns will be included
  • Select the column name containing the UserId to extract data based on

To complement the configurable Data Portability app, a simple paragraph app is available (Figure 4.1).

Figure 4.1 The Data Portability paragraph app

To use the data portability paragraph app:

  • Select a data definition
  • Select or create a form template for downloading the data