Step-by-Step Guide to Setting Up and Configuring Customization Options in Data Source Modules in Bold BI
Step-by-step customization of the data source options in the config.json and appsettings.json files
Overview
Customizing data source settings in config.json via the settings page and appsettings.json allows you to tailor how your application interacts with data, helping you manage performance, security, and user experience. This process involves editing specific sections within these configuration files to enable, disable, or modify features according to your needs. Customization of the data source options can be reflected across all the sites.
Note: Customization options are supported only for on-premises builds and for supported versions: 13.1 and above.
Introduction
This document provides instructions for customizing the config.json or appsettings.json files in Bold BI to modify data source module settings.
Customizations made in config.json are persistent and will remain intact after application upgrades, ensuring data permissions and settings are preserved.
In contrast, changes made to appsettings.json are temporary; these can be overwritten during build or upgrade processes, which may result in data or configuration loss.
JSON Format
Steps to Configure
Method 1: Using the Settings Page
- Click the profile icon and go to Manage Site (Admin access).
- Click the Settings icon and go to the Configuration category. Then, select the config.json file.
- Modify the required properties in Datasource category as needed.
- Save the changes and restart the service.
Method 2: Directly Editing the File
- It’s supported for Boolean types. For example, IsEnableBrowserTimezone.
Windows and Linux:
- Navigate to the configuration file located at:
Windows: {{Bold BI Installed Location}}:\BoldServices\bi\dataservice\appsettings.json
Linux: /var/www/bold-services/application/bi/dataservice\appsettings.json
- Open the appsettings.json file with a text editor of your choice, such as Notepad etc.
- Add or update the properties based on your requirements (refer to the provided example for guidance).
- Save the changes and restart the Bold BI services to implement the updates.
Kubernetes and Docker:
**Kubernetes and Docker: ** Add a variable to activate the necessary properties.
Example
AppSettings__DataSource__IsEnableBrowserTimezone
AppSettings__DataSource__DataPreview__IsEnableShowCountInfo
Properties Details
IsEnableBrowserTimezone
Description: Activates or deactivates timezone detection based on the browser settings. When enabled (true), the system utilizes the browser’s timezone; when disabled (false), it defaults to a standard or server-defined timezone.
on=escription
Steps to Modify Timezone Detection in Chrome:
- Right-click on the webpage and select Inspect.
- Navigate to the “Sensors” tab located at the bottom of the DevTools panel (if not visible, access it through More tools > Sensors).
- Choose your desired timezone or location setting:
- For timezone: select your timezone from the dropdown menu.
- For location: enable the Override Geolocation option and input the latitude and longitude.
- Refresh the webpage to apply the updated settings.
Before
After
WebTimeoutInMinutes
Description: Specifies the timeout duration (in minutes) for Web Request timeouts on web-related data sources. The minimum timeout is 4 minutes, the maximum is 10 minutes, and the default is set to 4 minutes.
IsEnableUserBasedFilter
Description: By default, row-level security or user-based filters do not work in Data Source, Designer, and Design Preview. To apply row-level security changes across all pages, you need to enable IsEnableUserBasedFilter in the customization configuration file. Additionally, you can restrict user switching in the Design View page. The default value of this setting is false.
Before
After
IsSkipUpdateQueryMatrix
Description: Skips displaying query metrics details in tables. For each dashboard widget, related query metrics are updated. You can track these details in the Query Performance Tracking dashboard. The default value is set to false.
DataPreview
IsEnableShowCountInfo
Description: Specify this setting to enable the display of data counts in the Query Designer. By default, counting data queries may take some time to execute in SQL Server. The default value is true (enabled).
After
Before
PreviewLimit
Description : Specify the preview limit on the Query Designer page. The default preview limit is 100. The minimum value is 1, and the maximum is 1000. It is recommended to set the value between 1 and 100 for optimal data display in the Query Designer.
After
Before
For Example: 10
ExportSettings
BigQueryExcelCsvApiLimit
Description: Specifies the maximum number of rows retrieved per API request for BigQuery Excel and CSV exports. Adjust this limit to optimize performance and prevent exceeding response size constraints.
Limitation Google Big query response:
Google BigQuery has limitations on response size: a Response Row Limit of 10,000 rows and a Response Size Limit of 10 MB per request. These limits depend on the number of columns and data size. If the response exceeds 10 MB, it is considered the end of data.
To avoid this issue, you can modify the row limit from the default 500 to up to 10,000, based on your data and performance requirements. We recommend configuring this property with one of the following values: 10,000, 5,000, 2,000, 1,000, or 500.
Examples:
- Subject and Title: Both are text types. We suggest setting the export property to 1,000 to ensure optimal performance.
- 30 Columns: If your dataset includes 20 integer columns and 10 string columns, a value of 5,000 is recommended. If you experience export issues, reduce the limit to 2,000.
- 50 Columns: For datasets with a mix of integer and string columns, a value of 1,000 or 500 is advisable.
Note: Export time depends on this configuration. Also, if you’ve set the limit to 1,000 but the response exceeds 10 MB, it is still considered the end of data—this is a limitation inherent to Google BigQuery, not in Bold BI.
CustomizeIsolation
Description - The Isolation Code feature is designed to configure row-level security at the site level, ensuring that all dashboards on the site adhere to the specified access restrictions. To support the isolation filter with custom attributes, the custom attribute must be present at the user level. Based on the user’s custom attribute, the filter is dynamically applied to all dashboards, providing appropriate data access control.
-
Enable the isolation code on the site and include the custom attribute in the following format: {{:FieldName}} = IN ({{:FieldValue}}). Please refer to the help link for more details.
https://help.boldbi.com/working-with-data-sources/configuring-isolation-code/
-
Additionally, ensure that the custom attributes are added at the user level.
-
View dashboard.
Limitations:
- If both properties are not available at the user level, the isolation code is considered false.
- If only one custom attribute is available at the user level, it shows an error message or no data. For example, if only FieldName is available but FieldValue is not, the filter is applied, resulting in no data or an error being displayed in the widget.
- If both properties are available at the user level, it will replace both property values and apply the filter properly.
IsEnableDataPreview
Description - By default, isolation changes are not applied to the Data Preview page. To enable this properly in the Data Source Query Designer page, you need to set the value to true in the appropriate setting.
Before
After
IgnoreTables
Description: The mentioned tables are excluded from the IsolationCode filter. By default, the filter value is an empty string. If you want to add more tables, please specify the table names in the list, separated by commas. Custom attributes are supported: ${{:IgnoreTables}}.
After
Note: Widgets are displaying empty values when the tables specified in the “Ignore Tables” section are used in the widgets. For avoid this case. you need to disable the Row Level security in Isolation Code Session.
TableViewPermissions
Deescription This customization feature displays the relevant tables and views in a tree view based on the URL response. Only the data provided in the response will be shown in the tree view. Multiple schema support is available and is supported exclusively for the PostgreSQL live connector. Additionally, you can hide expressions using the isEnableExpression property and restrict user access with filters via the isEnableUserBaseFilter property. Please note that the URL response is case-sensitive.
Property | Description |
---|---|
IsEnable | Enable or disable the table view permission in the tree view. |
Url | Supports custom attributes. Based on the URL response, the tree view permissions will be showing the data. |
Method Type | Post Type: Username and email will be sent to the URL. Based on the Username or email, you can restrict the tables, view and DataSource options in the tree view. |
Authorization | Token-related information based on your URL. |
Json Format
Custom Attribute in Site
JSON Response for URL
{
"Status": true,
"Message": "Success",
"Data": {
"Email": "baskarank@syncfusion.com",
"Fullname": "barakarank",
"Database": [
{
"DbName": "postgres",
"Schema": [
{
"SchemaName": "public",
"Tables": ["orders"],
"Views": []
},
{
"SchemaName": "public",
"Tables": ["students", "employee"],
"Views": ["sales_summary"]
}
]
}
],
"isEnableUserBaseFilter": true,
"isEnableExpression": false
}
}
Before
After
isEnableExpression property is false