Changing the Elasticube Before Loading a Dashboard
This add-on is pre-installed on Sisense in Linux environments and its version could be different. The download link is for Sisense on Windows.
Dynamic Elasticubes is pre-installed on Sisense Linux environments, and its version could be different. Click the Download button for the Windows version of the add-on.
This add-on gives you the ability to dynamically determine which data source should power a given dashboard. You determine how data sources are selected dynamically through a security settings file or via customizable URL parameters.
You can replace any data source (ElastiCubes, Live models and data sets), while sharing dashboard for a specific group of users. In addition, each data source for each widget can be changed.
To configure the add-on to work with multiple data sources, you need to configure a new data source for dashboards in the `dashboardDatasource` config section and then configure the section `WidgetsDatasources` for each widget (see the security section in the configuration below).
Note: If you want to change only the dashboard’s data source, you can delete the `WidgetsDatasources` section.
To install the Dynamic Elasticubes add-on:
- Download the add-on.
For Windows users:
Extract the `.zip` archive to `C:Program FilesSisenseappplugins`
– If the folder does not exist, create it before extracting the `.zip` file.
– Use the alternative plugins folder `C:Program FilesSisensePrismWebPlugins` for Sisense versions lower than 7.2.
– For Linux users:
– Extract the `.zip` archive to `/opt/sisense/storage/plugins/
– Use alternative plugins folder on tab `Admin > System Management > File Management` then upload extracted plugin to the `plugins` folder for Sisense versions higher than l8.0.3
- Configure the config.js file described below.
- Refresh your dashboard.
Implementation
- Configure the config.js file (see the Configuration section below).
Note: After upgrading to Sisense Linux 8.0.5, the config.6.js configuration file is overwritten. Sisense recommends you copy the configuration file before upgrading and then restore the file after upgrading.
- The add-on redirects queries to one of the data sources, it is imperative to apply data security rules based on user groups. This can be configured in your Sisense Admin panel.
- Ensure that Active Directory imported groups are allowed to query the ElastiCube via ‘Admin’ > ‘Data Sources’ > ‘Share’ > Modify group to ‘Can Query’ or ‘Can Edit’.
Configuration
- resetFiltersMembrers(BOOLEAN) – when disabled, dashboard filter members will remain the same as they were shared by the dashboard owner before the datasource switch. In this case there may be situations when the filter members don’t exist in the new datasource. Default value is TRUE.
- urlParamName(STRING) – allows you to configure URL params(see section ‘Using URL parameters’ below).
- configureByDashOID(BOOLEAN) – default behavior for the security object below is to use dashboard OIDs as the nested object keys. Disabling this option will revert to dashboard titles. Default is true.
- throwErrors(BOOLEAN) – enable if each dashboard in your implementation has to be switched dynamically and errors need to be uncovered in QA. Defaults to false.
– if set to `false`: hide errors in the browser console
– if set to `true`: throws errors in the browser console and returns from plugin execution
- maskDataOnError(BOOLEAN) – leaves data mask on if an error occurs while switching data sources. The default behavior is to show data, even after an error (i.e. the dashboard was not configured, bad API call, no user groups defined, etc.). This does not affect downloads and users will still be able to download. Defaults to false.”
- verifyECLocation(BOOLEAN) – enable if your data source migrates between servers.
– if set to `false`: the add-on will assume the server locations of data source remain unchanged.
– if set to `true`: an additional API call will be fired to confirm the server location of a datasource
- selectMostRecent(BOOLEAN) – if set to `false`: the add-on will work with original functionality, switching via a configuration file or URL parameter.- if set to `true`: the add-on will work with custom logic. For users from Active Directory within an AD Group, the latest created and shared data source for this AD Group will be used as the datasource for the dashboard.
- mostRecentRolesBlackList(ARRAY OF STRINGS) – would not update data source for specified roles if `selectMostRecent`is enabled. Works only with `selectMostRecent` parameter.
- security(OBJECT) – nested objects that describe security configuration for dashboard and widgets on a per dashboard basis. The default identifier for each dashboard is OID, but this can be reverted to dashboard titles if desired. For configuring new data sources for dashboard fill fields in the
dashboardDatasource
object. For configuring different data sources for widgets configure widgetsDatasources
object, replace widgetId by your widget id which should be changed and fill fields title
and address
.Security Object structure:
Javascript
{
'': {
'': {
dashboardDatasource: {
title: 'dataSourceTitle',
address: 'dataSourceAddress',
},
widgetsDatasources: { -
'': {
title: 'dataSourceTitle'
address: 'dataSourceAddress',
}
}
}
}
}
Where:
- ‘<dashboardIdOrTitle>’ – dashboard identifier (id or title)
- ‘<groupId>’ – identifier of the group which dashboard should be updated
- dashboardDatasource – section which configure a new data source for the dashboard
- title – datasource title
- address – data source address (can be localhost, live, set or ip of the server where datasource can be imported from). Localhost by default.
- widgetsDatasources – section which configure a new data source for one or multiple widgets
- <widgetId> – widget id which datasource should be changed
- title, address – same as for dashboard
- keepOriginalFilters (BOOLEAN) – the parameter defines the behavior of the plugin regarding the storage of filters from the original data source to which the user has no access. Specifically, it affects the necessity of additional storage of such filters within the plugin.
- When
keepOriginalFilters
is set to true
, the plugin will retain filters containing data from the original source even if the user has lost access to the corresponding values. This allows preserving selected filter values during changes in the data source.
- On the other hand, when
keepOriginalFilters
is set to false
, the product will automatically remove the values of filters from the original data source to which the user has no access when there is a change in the data source. In such cases, the values of the respective filters will be changed to ‘INCLUDE ALL’.
The copy of the original dashboard filters will be stored on the dashboard object after any dashboard filter change, that’s why when switching this parameter to true, the owner should first configure the dashboard and then modify filters. Otherwise, the filters will not be saved and restored in the user’s dashboard. For existing dashboards, the owner must update the filters to ensure the saving of their values and republish the dashboard.
Note: It is essential to consider confidentiality requirements and compliance with legislative norms when configuring this parameter to ensure adherence to security and privacy standards.
Using URL parameters
- Modify the “urlParamName”, property inside the config.6.js file to your preferred query string variable name.
- Navigate to your target dashboard and append the following to your dashboard URL with your own information:
?{yourURLParamName}={desiredECubeTitle}
Limitations
- When using the URL parameter strategy, if the user navigates to another dashboard with the URL parameter still attached, a query error will arise if the schemas aren’t identical. If users need to be able to switch between dashboards and dynamically switch to different data sources. Sisense recommends using the security settings strategy.
- If using a URL parameter strategy, the add-on will switch data sources for any dashboard it encounters, assuming the URL is correctly formatted.
- If exporting the dashboard to PDF from the left-side panel (outside of the dashboard itself) and the dashboard hasn’t been opened before, it might take a second attempt to successfully export.
- When enabling ‘maskDataOnError’, downloads are not disabled.
- `selectMostRecent` – works only with users from Active Directory, for other users it will be ignored. First AD Group is used to authorize the check of ElastiCube updates.
- If selected the data source is not shared with a user, an error with the text: “you don’t have access rights” will be displayed. After page refresh error message will be changed to: “something went wrong”.
- The add-on will not replace the widget data sources if the dashboard’s data source was not changed.
Version 2.3.43 – October 23, 2024
- Bug fix: incorrect dashboard datasource for the downloaded dashboard PDF report, in case when a user is logged with Web Access Token
Version 2.3.38 – March 28, 2024
- Force to apply original (owners) dashboard filters when switching data sources. New parameter “keepOriginalFilter” is added to the add-on configuration
Version 2.3.37 – Nov. 21, 2023
- Added new “resetFiltersMembers” config parameter to allow/disallow resetting dashboard filters to “include all” or the first available member for the single select filter after the add-on switched the datasource. This flag is enabled by default, which should not change the behavior of the add-on.
- Bug fix: Fixed formulas filter reset
- Bug fix: plugin prevent to share the dashboard using the admin access
Version 2.3.34 – Sept. 18, 2023
- Bug fix: There is “no access to elasticube error” once user opens dashboard for the first time
- Bug fix: user can not duplicate dashboard after cube switch
- Improved dashboard loading time when addon is installed
Version 2.3.27 – 4/27/2023:
Bug fix:
- Add-on ignores Sisense proxy url
14/12/2020:
Bug fixes:
- Different sources appeared after opening a dashboard a second time without the ?cid=cubename parameter
- The filter was lost after drilling multiple times with the Dynamic ElastiCube
- A null member was added to a widget while switching between ElastiCubes
18 August 2020:
Bug fixes:
- Keep filter selection after moving between dashboards
- Use the correct data source when exporting to PDF
- Fixed content type for /api/dashboards/DASHBOARD_ID/widgets/WIDGET_ID API call
- Update the data source correctly for all roles
10 June 2020:
- Updated the add-on following security enhancements in Sisense
19 June 2019:
26 June 2019:
- Fixed null filter members bug
12 September 2019:
- Fixed compatibility issue with metadata plugin
12 September 2019:
- Fixed configuration issues
25 October 2019:
- Fixed reset dashboard/widget filters after switching datasource; Linux support added
12 November 2019:
- Fixed import dashboards with Pivot widget
13 April 2020:
- Added support for Multiple Eelasticubes
- Added support for Multiple Live models
- Added support for Hybrid dashboards
- Minor bug fixes