Advanced Features



bipp supports several advanced features and customizations for users who are looking to power up their data analysis and visualization solutions. We will now look at some of these features in detail.


bipp allows you to enable the application cache setting for a particular tenant. Enabling this setting would allow you to cache data from the primary data source locally within the application. This would help in optimizing the performance of frequently accessed dashboards and sheets. These will load faster as they would use the application level cache, thereby reducing the load on the primary datasource.

Caching is disabled by default but can be enabled by the tenant admin on the “Settings” screen - “Cache” tab as shown. You can only access this tab if you are the tenant admin.


The Cache Duration and the Cache Refresh Rate need to be specified while enabling the cache. The cache duration helps to set the maximum age of the cached data in hours. This would help in preventing staleness of the cached data. The cache refresh rate helps to set the frequency for automatic cache invalidation in hours.

Once enabled, the cache may also be manually flushed by clicking on the “Flush Cache” button. Additionally you could also change the cache duration and/or refresh rate by clicking on the “Update” button or disable the cache completely by clicking on the “Disable” button.


LDAP Authentication

bipp supports the use of LDAP authentication for login to the application. It can integrate with any LDAP solution that supports LDAPv3 (RFC-4511) such as Microsoft Active Directory or OpenLDAP. Both TLS and non-TLS LDAP servers are supported.

LDAP may be configured for a tenant on the “Settings” screen - “LDAP” tab as shown. Either the UID or email needs to be configured as the “Bind Key” and will be used for authentication.


Single Sign On

bipp also supports single sign on through other identity providers like Salesforce, ADFS and Ping. Once configured, SSO is available for all the users of a particular tenant. SSO can be configured on the “Settings” screen - “SSO” tab as shown.


Only one IDP provider may be selected per tenant and the corresponding profile configured. Once configured, SSO option will be available in addition to their usual bipp login for these users.


Data Virtualization a.k.a Acceleration feature enables the following two capabilities in the bipp Platform:

  1. Accelerate (speed up) the data fetch or retrieval time by creating physically optimized representations of a bippLang data model. This is achieved by computing a columnar format of the source data along with various other transformations. The process of accelerating a data model is transparent to the end users, and hence no change is required in the SQL of client applications or data representations in the primary (source) data. Acceleration and Virtualization of a data model in bipp are synonymous, and both the terms are used interchangeably.

  2. Join columns from different flavors of database software, also known as Cross Database Joins. For example, with data virtualization, you can join one column of a Big Query based dataset with another from a MS SQL Server database at the SQL level which is otherwise not practically feasible.

Acceleration in bipp is done at project level. A project with a valid data model committed to the Master branch becomes eligible for virtualization. All these projects get automatically listed on the “Settings” screen - “Acceleration” tab as shown. The accelerated projects will have a red rocket symbol displayed near their name.


The bipp platform allows to create refresh policies for acceleration, such that an accelerated dataset remains in sync with the primary source database. You can do this by clicking on the “Create Schedule” option from the project menu options. The refresh frequency and Time zone needs to be set on the “Refresh Policy” screen as shown


Refresh policies associated with an accelerated dataset can be edited as well as deleted when not required. However, it should be kept in mind that deleting a refresh policy also removes all accelerated data associated with it.

Data virtualization in bipp supports a subset of ANSI SQL for doing custom operation on accelerated data. Advanced users can write SQL statements to be executed in the accelerated dataset using the sql_v keyword.

Note that the accelerated database uses double quotes for column names and single quotes for string constants. Most other SQL backends use both for string constants (notable exceptions: teradata, postgres). If you use double quotes for string constants in the definition of custom columns in bippLang, they will be automatically converted into single quotes. However, double quotes are not recommended for string constants in the SQL of a “derived table” or view.


Extensions allow you to design custom visualizations for your data and upload them to bipp, so that they may be used when creating sheets. These extensions should be created as plug-in JavaScript files using the Extensions API provided by bipp.

Extension API

The extension plug-in should be a single JavaScript file that can render content in the DOM of iframe sandboxes. Every plug-in should be able to load the visualization itself as well as the settings pane with respect to the visualization. The following functions or event handlers should be defined in the plug-in and will be called when the bipp engine sends data to the plugin.

  1. BIPP.onLoad() : This function is called on load of the settings pane as well as for the visualization itself. When called for the settings pane, the signature would be as follows.

    BIPP.onLoad = function({ role, settings, columns }) {
        ttings pane load


    When called for the visualization, the signature would also include the data and would be as follows.

    BIPP.onLoad = function({ role, settings, columns, data }) {
        sualization load


    The parameter role will be set to the value "settings" when the settings pane is loaded and "visualization" when the visualization is loaded. The settings parameter is an object which can be serialized to JSON and can contain the settings to be included with options available for selection. The columns parameter is an array of column objects with column level properties like type, label, table etc that would help you to access information about the columns selected by the user. The data object contains the actual data to be visualized in row-column format.

  2. BIPP.onUpdate(): The onUpdate event handler will be called with respect to the settings pane whenever the schema changes, or for the visualization pane when either the data or schema changes. The signature for the settings pane is as follows.

    BIPP.onUpdate = function({ columns }) {
        he table schema changed

    The signature for the visualization is as follows.

    BIPP.onUpdate = function({ columns, data }) {
        he data changed, possibly also the columns (for a table with a pivot)
  3. BIPP.onMessage(): This function should contain the code to be executed when a message is received from the bipp engine. This is applicable only in case of a visualization and is not available for the Settings pane. The signature of the function is as follows.

    BIPP.onMessage = function({ channel, column, value, action }) {
         message was sent to the visualization

BIPP.postMessage(): Additionally messages may also be sent to the bipp engine using the postMessage() function. This function call be invoked as follows

BIPP.postMessage(channel, value)

Here channel is a string indicating what is the message and value is the object containing the data for the message. This can be used to send the settings object as follows.

BIPP.postMessage('settings', settings);

Managing Extensions

Extensions may be uploaded through the “Extensions” screen which can be accessed in the main menu.


To upload a new extension, click on the “New Extension” button at the top-right of the screen. You will be required to enter the extension name and choose the appropriate JavaScript file to be uploaded as shown here.

New Extension

The newly uploaded extension will be listed on the main screen on click of the “Create” button. The script file is not validated by bipp. The name of the extension or the file may be changed by clicking on “Edit” from the extension menu options. An existing extension may be deleted by clicking on the “Delete” option from the extension menu. Extensions created on this screen will appear on the “Sheets” screen settings if the “Custom” visualization type is selected.


Alerts may be created for changes in Sheets data on the Sheets or Dashboard screens. All the alerts created for a tenant may be managed together from the “Alerts” screen. This can be accessed from the main menu.

Manage Alerts

Alerts may be disabled temporarily using the “Disable” option from the Alert menu. They may be deleted permanently using the “Delete” option. The alert may be viewed by clicking on the name of the Alert or the “View” option from the main menu. This will take you to the sheet where the alert is defined.