<component_name>.properties file and a <component_name>.jvm file.
Use the configuration files to make changes to the Self-Service Analytics server and how it functions. The configuration files need to be created after the Self-Service Analytics server has been installed to override Self-Service Analytics’s default configuration. To modify the settings in these files, edit them in the /etc/zoomdata directory.
Every <component_name>.jvm file should include an Xmx JVM option to control the maximum heap memory limit for the application. See Configure Memory Settings.
Edit a Configuration File
You can edit the properties for your Self-Service Analytics configuration in the configuration files. For a complete list of configuration files, see Configuration Property Files.insightsoftware discourages changing properties in the
/opt/zoomdata/conf directory (Linux) or <install-path>/conf (Windows). Copy the files you want to change to the /etc/zoomdata directory (Linux) or <install-path>/conf-modify (Windows) and change them there. This will ensure that your changes are not overwritten when Self-Service Analytics is next upgraded.diff in Linux. For example:
- From your terminal, SSH to your Self-Service Analytics server.
- Stop the appropriate Self-Service Analytics microservice (Self-Service Analytics, Screenshot, or the specific connector server). For the appropriate Linux command, see Stop Microservices.
-
Use the following command to access and open the configuration file:
For example:Names of valid configuration files are listed in Configuration Property Files. If the configuration file does not exist, this command creates it.Make sure the file is readable by theIf you are not logged in as a root user, then you need to enter
sudo vi /etc/zoomdata/zoomdata.propertiesto create the desired file.zoomdatamicroservice account. - Add the new variable or property into the file on a new line or edit an existing one, as needed. See:
- Save and exit the configuration file.
- Restart Self-Service Analytics microservices. For the appropriate Linux command line, see Restart Microservices.
- Open the configuration file using a text editor that can edit Windows property files. Names of valid configuration files are listed in Configuration Property Files.
- Stop the appropriate microservice or specific connector server. For the appropriate Windows commands, see Windows Bootstrap Reference.
- Add the new variable or property into the file on a new line or edit an existing one, as needed. See:
- Save and exit the configuration file.
- Restart microservices.
Configuration Property Files
Self-Service Analytics uses the configuration files in the following table to ensure successful deployment in your operating environment. You can edit many of the properties and options in these files. You can edit them in/etc/zoomdata as described in Edit a Configuration File.
insightsoftware discourages changing properties in the
/opt/zoomdata/conf directory (Linux) or <install-path>/conf (Windows). Copy the files you want to change to the /etc/zoomdata directory (Linux) or <install-path>/conf-modify (Windows) and change them there. This will ensure that your changes are not overwritten when Self-Service Analytics is next upgraded.diff in Linux. For example:
Server-Level Variables
Server-level variables can be viewed by Self-Service Analytics administrators or members of the Supervisors group in the Server-Level Variables work area. Select the Advanced menu option to access the Server-Level Variables work area. Server-level variables are defined as key-value pairs. You can enable or disable the listed variables below if needed. Select Save to save and apply any changes you make in this work area.Changing toggles or editing content other than as instructed in this work area or as directed by Technical Support may prevent your users from using various components of Self-Service Analytics.
| Key (Server-Level Variable) | Value | Description |
|---|---|---|
| allow-dashboard-and-report-sharing-within-tenant | false (default) | Enable or disable dashboard and self service report sharing options for sharing content with users, established groups, and everyone within your tenants or environment. See Share a Dashboard or Self Service Report with Users. |
| allow-sending-reports-to-external-emails | true (default) | Enabled by default, allows users with appropriate privileges to send reports to external email addresses (user@example.com). Disable to prevent users from sending reports to users external to your data analytics environment. Any user included in a report send in your environment will get the report sent to the email address associated with their user account. |
| alternative-calendars | false (default) | Enable or disable fiscal calendars. When set to true, users with appropriate credentials can use the API to define fiscal calendars. Once defined, calendars are available to users.When set to false, users cannot define or use fiscal calendars.See Fiscal Calendars. |
| enable-dundas-connector | false (default) | Disabled by default, enable to allow users with appropriate privileges to register the connector server, define a connector, and create or update sources to access data hosted in a Dundas BI environment for use in this analytics environment. |
| enhanced-experience | The default setting is determined by your installation or transition path. See Transitioning for Symphony and Composer Users. | Enable or disable the enhanced user experience layout and theme (d+a_light) for your environment.For environments transitioning from Symphony, this is true (enabled) by default.For fresh installations of Composer v26.2 or later releases, this is false (disabled) by default.For fresh installations of Self-Service Analytics 26.3 or later releases, this is false (disabled) by default.For environments transitioning from earlier releases of Composer, this is false (disabled) by default.See User Interface Themes: v26.3 and Later and Themes and UI Updates. Update your custom theme and enable the enhanced-experience toggle before upgrading past version 26.2. The enhanced homepage and navigation will become the standard experience for all users in the near future. We recommend making these updates now to ensure a smooth transition. |
| folder-organization-enabled | false (default) | Enable or disable folders for use with dashboards and reports. Use folders to organize and manage dashboards and reports in your environment. When set to true, users with appropriate roles assigned to their user account can use the API to define folders, manage folders, and delete folders.When set to false, users cannot define or use folders. |
| hierarchies | true (default) | Enable or disable hierarchical fields in your environment. When set to true, users with appropriate credentials can define hierarchical fields. These are availability to users with appropriate credentials.When set to false, users cannot define or use hierarchical fields.See Hierarchical Fields and Structures. |
| scheduled-report-file-drop | false (default) | Enable or disable users’ ability to deliver a scheduled dashboard report or self service report to an SFTP location. When set to true, users can select an SFTP file location you have defined to accept the scheduled report.When set to false, users do not see an SFTP option for scheduled reports.Define the settings for your environment at the instance level in zoomdata.propertiesor by passing along tenant or user attributes to zoomdata.properties. See Scheduled Report Properties. |
| self-service-reports | false (default) | Enable or disable self service reports in your environment. When set to true, users with appropriate permissions can create self service reports in the Reports Library.When set to false, users do not see self service report options or a Reports Library.For more information about configuring your environment and planning for self service reporting, see Self Service Report Microservice. |
| timebar-snap-to-interval | false (default) | Enable or disable to control the granularity to which the time bar slider snaps. When set to true, moving the time bar slider adjusts to the closest interval of the defined granularity available in the data set.When set to false, moving the time bar slider adjusts to the nearest smallest granularity available in the data set. |
| materialized-view | false (default) | This enabled the materialized views feature, which has been deprecated. Do not enable. |
Configure Memory Settings
Unified service memory configuration recommendations can help you avoid out of memory issues, unpredictable service stability, and memory allocation. We strongly recommend you use the new default for Java: Xms=Xmx. These updated default memory allocations are designed configure your services more effectively for a production load after installation or upgrade.Self-Service Analytics requires slightly higher memory expectations than previous releases. Upgrading will not overwrite your memory configuration if you have already overwritten the default configuration settings.
- Review your data source connector usage; stop unused connectors.
- Review your memory settings based on the chart below.
Change memory allocation settings for microservices
- From your terminal, SSH to your Self-Service Analytics server.
-
To modify the memory settings for Self-Service Analytics microservices, you need to edit or create the corresponding
.jvmfiles in/etc/zoomdata/. Perform the following steps:For complete information on editing configuration files, see Edit a Configuration File. -
Add or update the following line(s) in the corresponding
.jvmfiles. The following example configures the Self-Service Analytics server to use 20 GB of RAM in thezoomdata.jvmconfiguration file. You can adjust the number to fit your system’s needs. Replace the 20 with the necessary memory allocation for your operating environment. -
Save and exit the
.jvmfile. -
Restart the microservice for which you have modified the settings:
For CentOS and Ubuntu:
Encrypt Configuration Properties
You can encrypt sensitive property values in Self-Service Analytics’s property files, if needed. This can be accomplished using the Spring Cloud CLI. See also Encryption. You can also pass sensitive property values using Linux environment variables, rather than hard coding the values in Self-Service Analytics property files. See Pass Sensitive Data Using Linux Environment Variables.Prerequisites
Before you can encrypt property values, your Self-Service Analytics environment must meet the following requirements.-
Install or upgrade to Spring Cloud CLI version 2.0.0. This specific version is required. Review the installation and upgrade guidance here: https://docs.spring.io/spring-boot/docs/2.0.0.RELEASE/reference/html/getting-started-installing-spring-boot.html#getting-started-installing-the-cli.
- Manual installation link: https://github.com/spring-projects/spring-boot/releases/tag/v2.0.0.RELEASE
- The command referenced for setup is
sdk install springboot 2.0.0. - To install, use the command
spring install org.springframework.cloud:spring-cloud-cli:2.0.0.RELEASE.
Encrypting a Property
Encrypt an individual configuration property- Ensure your environment meets the prerequisites listed in Prerequisites.
-
Use the following Spring Cloud CLI 2.0.0 command to encrypt a property value with a specified encryption key:
For example, the following command encrypts the value of the PASSWORD variable using the encryption key specified by the ENCRYPT_KEY variable.The output of this command is the encrypted property. For example:
-
Add the following to the properties file in which the encrypted property value will be stored:
-
The encrypted property you obtained in Step 2, prepended with
{cipher}. The{cipher}prefix allows Spring Cloud to recognize encrypted properties. For example: -
A new property (once per property file) that identifies the encryption key used. For example:
-
The encrypted property you obtained in Step 2, prepended with
- Save the properties file and restart its associated Self-Service Analytics microservice. See Restart Microservices.
Sample Script to Encrypt a Property
You can modify and use the following sample script to encrypt a property value in a properties file.Pass Sensitive Data Using Linux Environment Variables
You can pass sensitive property values (such as database passwords or user names) to Self-Service Analytics using Linux environment variables, rather than hard coding the values in Self-Service Analytics property files. Using the Spring Boot Java application’s ability to consume application properties as environment variables, you can pass sensitive data to Self-Service Analytics without showing the data as plain text in the Self-Service Analytics property files.The information provided here requires a strong knowledge of Linux internals.
- Method 1: Use systemdOverride Files (Less Secure)
- Method 2: Use Parameters Passed to Microservices (More Secure)
Method 1: Use systemdOverride Files (Less Secure)
You can use systemd with default unit files override. This is less secure than Method 2: Use Parameters Passed to Microservices (More Secure) because the passwords are still exposed in the env-pass.conf files.
Complete the following steps:
-
Stop the affected microservices. See Stop Microservices.
-
Add a
systemdoverride file, calledenv-pass.conf, for each affected microservice. For example, thesystemdoverride file for thezoomdatamicroservice would be/etc/systemd/system/zoomdata.service.d/env-pass.confand the override file for thezoomdata-query-enginemicroservice would be/etc/systemd/system/zoomdata-query-engine.service.d/env-pass.conf. A complete list of microservice names is provided in Self-Service Analytics Microservice Name Reference. -
Edit the
env-pass.conffile for each microservice and add lines specifying environment variable values for every microservice configuration property containing sensitive information. For example, the following environment variables specify the data store password, the upload destination password, and the keyset destination password in theenv-pass.conffile for thezoomdatamicroservice:In theenv-pass.conffile for thezoomdata-query-enginemicroservice, you might add the following environment variable to specify the query engine database password:The environment variable names are the same as the property names in the corresponding microservice property files, but in all capital letters and substituting underscores for the periods in the property names. Review the property files for valid property names. For example, the environment variable name for thespring.datasource.passwordproperty isSPRING_DATASOURCE_PASSWORD. -
Apply the changes to
systemd: - Start the affected microservices. See Start Microservices.
Method 2: Use Parameters Passed to Microservices (More Secure)
The most secure method is to pass sensitive parameters to Self-Service Analytics microservices as environment variables when you start the microservices. After the microservice is started, the settings for the sensitive parameters are no longer visible. Complete the following steps:-
Stop the affected Self-Service Analytics microservice. See Stop Microservices.
-
Disable the affected microservice. See Disable Microservices.
-
Start the affected microservice, passing the sensitive parameters in environment variables as command line arguments. Make sure you use appropriate escape quotes if your password includes quotes.
The environment variable names are the same as the property names in the corresponding microservice property files, but in all capital letters and substituting underscores for the periods in the property names. Review the property files for valid property names. For example, the environment variable name for the
spring.datasource.passwordproperty isSPRING_DATASOURCE_PASSWORD. In the following start command, thezoomdatamicroservice is started and the data store password, the upload destination password, and the keyset destination password are all passed as command line arguments:The following start command starts thezoomdata-query-enginemicroservice and passes the query engine database password as a command line argument.See Start Microservices.
Enable Self-Service Analytics Component Access From Other Sites Using Cross-Origin Resource Sharing (CORS)
Cross-origin resource sharing (CORS) is a standard introduced in HTML 5 that allows web applications to use HTTP headers to specify which origins are permitted to request resources on the server. Cross-origin resource sharing provides a web application access to selected resources running at a different location. Web browsers consult the Access-Control-Allow-Origin header on how to relax the same origin policy for a given page. By default, this setting was disabled starting version 1.5.0SR1 due to security vulnerability concerns. However, CORS can be enabled for certain or all domains by editing thezoomdata.properties file (located in /etc/zoomdata). For more information about CORS, see https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS.
Modify CORS request permissions
- From your terminal, open a command line session.
- Connect to your Self-Service Analytics server via command prompt.
-
Use the following command to access and open the
zoomdata.propertiesfile: -
Add the following variables to the file on new lines:
Replace
<source>with the actual sources that may embed resources. The default is an asterisk (*), or all sources. For more information about the Content-Security-Policy (CSP) frame-ancestors directive, see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors. Replace<origin1>and<origin2>with your specific URI includinghttporhttpsas appropriate. Use*as a wildcard instead of a specific origin, thereby allowing any origin to access the resource, keeping in mind that this is a potential security vulnerability and may not work with all browsers. Refer to your Tomcat documentation to verify the appropriate syntax to use. -
Save the document using standard
vicommands. - Restart Self-Service Analytics microservices after making this change and also make sure to clear your browser cache. See Restart Microservices.
The Cross-Origin Request Blocked Error
Cross-origin resource sharing (CORS) is a new standard introduced in HTML 5 that allows web applications to use HTTP headers to specify which origins are permitted to request resources on the server. Modern web browsers will consult the Access-Control-Allow-Origin header on how to relax the same origin policy for a given page. By default, this setting was disabled starting version 1.5.0SR1 due to security vulnerability concerns. However, CORS can be enabled for certain or all domains through the zoomdata.conf (/etc/zoomdata ) file. Please add the following parameter:
* will open CORS for all domains. If you want to specify specific domains, replace the * with the appropriate domain name. Refer to your Tomcat documentation to verify the appropriate syntax to use.
Please restart Self-Service Analytics server after making this change and also make sure to clear your browser cache.