zoomdata.properties Properties
The zoomdata.properties file can be edited in the/etc/zoomdata directory. Each property is described in the table below.
Some situations where the zoomdata.properties file needs to be updated include:
- Add an SSL Certificate
- Disable the SSL Certificate in Self-Service Analytics
- Screenshot Microservice
- Create a Symmetric Key to Encrypt Data Source Passwords
- About Scheduled Reports
- Set Up and Use the Data Gateway Service
General Properties
| Property | Default Value | Description |
|---|---|---|
| access.control.allow.origin | * | By default, CORS is set to --- in the Self-Service Analytics Server. You can set CORS to restrict access:access.control.allow.origin=<user-defined>For more information, see Enable Self-Service Analytics Component Access From Other Sites Using Cross-Origin Resource Sharing (CORS). |
| logs.dir | <ZD_install_directory> /logs | Path to Self-Service Analytics logs. The placeholder <ZD_install_directory> is replaced with the actual location where Self-Service Analytics is installed. Verify that this log directory has all the necessary permissions and that the owner of the directory is set to zoomdata.The /home directory cannot be used for logging.Example: logs.dir=/opt/<ZD_install_directory>/logs) |
| data-gateway.client-api.enabled | False | Set to true to enable use of the Data Gateway API and Data Gateway Service. See Set Up and Use the Data Gateway Service. |
| saml.maxAuthAge | 86400 | Sets the timeout for SAML, in seconds. The default is 24 hours. Example: saml.maxAuthAge=86400 |
| server.compression.enabled | true | Enables gzip compression for http requests. Example: server.compression.enabled=true |
| server.port | 8080 | The default server port, which is set to use http. Prior releases used http.port |
| server.servlet.context-path | /composer | Example: server.servlet.context-path=/composer |
| server.session-timeout | 1800 seconds | Sets when your Self-Service Analytics session will timeout (in seconds). Example: server.session-timeout=1800If you alter this value, also alter the value of the zoomdata.server.ws.idle.timeout property to match it. |
| source.attribute.values.limit | 1000 | Sets the limit for the number of attribute values that can be displayed in the Filter list. Example: source.attribute.values.limit=1000 |
| spring.servlet.multipart.max-file-size | 500Mb | Example: spring.servlet.multipart.max-file-size=500Mb |
| spring.servlet.multipart.max-request-size | 500Mb | Example: spring.servlet.multipart.max-request-size=500Mb |
| zoomdata.server.ws.idle.timeout | 1800000 ms | Idle time that allows the WebSocket to be still valid. If you alter this value, also alter the value of the server.session-timeout property to match it. |
| http.response.header.content-security-policy | frame-ancestors *; | Add appropriate values to override the default values and support your business needs, such as default-src 'self' , script-src 'self' , and more.Secure your implementation by including values for these resources using appropriate source URLs. Example: frame-ancestors *; default-src 'self'; script-src 'self' 'nonce-composerScript' https://*.storage.example.com; style-src 'self' 'unsafe-inline' https://*.storage.example.com; img-src 'self'; connect-src 'self'; font-src 'self'; base-uri 'self'; |
Source Metadata Properties
| Property | Default Value | Description |
|---|---|---|
| zoomdata.source.refresh.metadata.cache.timeout.minutes | 10080 (one week) | Sets the default time-to-live for cache values, in minutes. |
| zoomdata.source.refresh.values.maxDistinctValues | 100000 | Sets the number of queried distinct values that can be stored in cache. |
Encryption Properties
| Property | Default Value | Description |
|---|---|---|
| security.encryption.algorithm | The encryption algorithm used for file encryption. | |
| security.encryption.key.algorithm | The algorithm type of the encryption key used for file encryption. |
Keystore Properties
| Property | Default Value | Description |
|---|---|---|
| keystore.location | classpath:security/zoomkeystore.jks | Self-Service Analytics uses symmetric encryption. You can point to a new keystore to strengthen security. Example: keystore.location=classpath:security/zoomkeystore.jksSee Create a Symmetric Key to Encrypt Data Source Passwords for further guidance. |
| keystore.password | zoomkey | Lets you set up a unique password for the keystore. Example: keystore.password=zoomkey |
| keystore.key.alias | zoomkey | Example: keystore.key.alias=zoomkey |
| keystore.key.password | zoomkey | Example:keystore.key.password=zoomkey |
Server SSL Properties
| Property | Default Value | Description |
|---|---|---|
| server.ssl.key-store | <Self-Service Analytics_install_directory>/conf/keystore | Sets the path for the keystore location. Example: server.ssl.key-store=HOME/conf/keystore |
| server.ssl.key-store-password | changeit | Stores the keystore password. Example: server.ssl.key-store-password=<YourPassword> |
SAML Configuration Properties
| Property | Default Value | Description |
|---|---|---|
| saml.artifactBindingDefault | true | Example: saml.artifactBindingDefault=true |
| saml.useMultiValueList | true | Example: saml.useMultiValueList=true |
| saml.stringDelimiter | , | Example: saml.stringDelimiter=; |
Kerberized PostgreSQL Properties
| Property | Default Value | Description |
|---|---|---|
| spring.datasource.url | jdbc:postgresql://<IP_address>:<port>/zoomdata | The URL of the zoomdata database in the PostgreSQL metadata store.Example: spring.datasource.url=jdbc:postgresql://localhost:5432/zoomdata |
| spring.datasource.username | zoomdata | The user name for the zoomdata database in the PostgreSQL metadata store.Example: spring.datasource.username=zoomdata |
| spring.datasource.password | --- | The password associated with the user name for the zoomdata database in the PostgreSQL metadata store. |
| keyset.destination.params.jdbc_url | jdbc:postgresql://<IP_address>:<port>/zoomdata-keyset | The URL of the zoomdata-keyset database in the PostgreSQL metadata store.Example: keyset.destination.params.jdbc_url=jdbc:postgresql://10.2.1.4:5432/zoomdata-keyset |
| keyset.destination.params.user_name | zoomdata | The user name for the zoomdata-keyset database in the PostgreSQL metadata store.Example: keyset.destination.params.user_name=zoomdata |
| keyset.destination.params.password | --- | The password associated with the user name for the zoomdata-keyset database in the PostgreSQL metadata store. |
| upload.destination.params.jdbc_url | jdbc:postgresql://<IP_address>:<port>/zoomdata-upload | The URL of the zoomdata-upload database in the PostgreSQL metadata store.Example: upload.destination.params.jdbc_url=jdbc:postgresql://10.2.1.4:5432/zoomdata-upload |
| upload.destination.params.user_name | zoomdata | The user name for the zoomdata-upload database in the PostgreSQL metadata store.Example: upload.destination.params.user_name=zoomdata |
| upload.destination.params.password | --- | The password associated with the user name for the zoomdata-upload database in the PostgreSQL metadata store. |
Source Sampling Properties
| Property | Default Value | Description |
|---|---|---|
| source.sampling.rows | 1000 | Example: source.sampling.rows=1000 |
| source.attribute.values.limit | 1000 | Example: source.attribute.values.limit=1000 |
Logging Properties
| Property | Default Value | Description |
|---|---|---|
| logging.unified.host | 127.0.0.1 | Sets the host IP address for Fluentd server message logging. For more information, see Set Up Unified Logging Using Fluentd. Example: logging.unified.host=123.4.5.6 |
| logging.unified.level | OFF | Sets the log level for messages logged to the Fluentd server. The following options are available for this property: TRACE, DEBUG, INFO, WARN, ERROR, and OFF. If set to OFF, Fluentd unified logging is disabled. For more information, see Set Up Unified Logging Using Fluentd. Example: logging.unified.level=INFO |
| logging.unified.port | 24224 | Sets the port for Fluentd server message logging. For more information, see Set Up Unified Logging Using Fluentd. Example: logging.unified.port=1234 |
| logging.unified.tag | zoomdata-server | Sets the microservice tag name for messages logged to the Fluentd server. This is important because the tag identifies the microservice to which the log messages apply. Valid values are query-engine, zoomdata-server, stream-writer, upload-service, and edc-<connector-name> (where <connector-name> is one of the names listed in Connector Properties and Property Files).For more information, see Set Up Unified Logging Using Fluentd. Example: logging.unified.tag = zoomdata-server |
| syslog.host | 127.0.0.1 | Sets the host IP address for Syslog server message logging. Example: syslog.host=127.0.0.1 |
| syslog.log.level | OFF | Sets the syslog log level for messages logged to the Syslog server. The following options are available for this property: TRACE, DEBUG, INFO, WARN, ERROR, and OFF. Example: syslog.log.level=DEBUG |
| syslog.port | 1514 | Sets the port for Syslog server message logging. Example: syslog.port=1514 |
| syslog.suffix | local | Specifies a suffix that is appended at the end of the Syslog server log entry that Self-Service Analytics generates. Example: syslog.suffix=local |
Password Policy
| Property | Default Value | Description |
|---|---|---|
| auth.password.policy.specialCharacters | !@#$%^&*()-_=+,.:;<> | |
| auth.password.policy.minCharacters | 9 | |
| auth.password.policy.maxCharacters | 255 | |
| auth.password.policy.minLowercaseCharacters | 1 | |
| auth.password.policy.minUppercaseCharacters | 1 | |
| auth.password.policy.minNumericCharacters | 1 | |
| auth.password.policy.minSpecialCharacters | 1 | |
| auth.password.policy.helpMessage | Password must contain at least 9 characters including 1 lowercase, 1 uppercase, 1 number and 1 special (!@#$%^&*()-_=+,.:;<>). | Text is not enclosed in quotation marks. |
Data Export Properties
| Property | Default Value | Description |
|---|---|---|
| zoomdata.export.data.max.cols | 1000 columns | Use this property to define the maximum number of columns that can be exported for two-dimensional visuals (such as a pivot table). Self-Service Analytics enforces this limit for visual data, but does not enforce it for raw data. The distributed default for this setting is 1000 columns. Valid values can range from 0 through 2147483647 columns. |
| zoomdata.export.data.max.rows | 100000 rows | Use this property to define the maximum number of rows that can be exported for visuals. Self-Service Analytics enforces this limit for visual data. However, for raw data, Self-Service Analytics produces an error if the number of rows requested for export exceeds this setting. The distributed default for this setting is 100000 rows. Valid values can range from 0 through 2147483647 rows. |
| zoomdata.export.visualdata.max.rows | 100000 rows | Use this property to define the maximum number of rows that can be exported for visuals. Self-Service Analytics enforces this limit for visual data. However, for raw data, Self-Service Analytics produces an error if the number of rows requested for export exceeds this setting. The distributed default for this setting is 100000 rows. Valid values can range from 0 through 2147483647 rows. |
Screenshot Microservice Client & Dashboard Scheduling Properties
| Property | Default Value | Description |
|---|---|---|
| dashboard.scheduling.screenshot.png.height | 1080 | Identifies the maximum height (in pixels) of the screenshot PNG file that will be sent. |
| dashboard.scheduling.screenshot.png.width | 1920 | Identifies the maximum width (in pixels) of the screenshot PNG file that will be sent. |
| dashboard.scheduling.screenshot.timeout | 60 | Specifies the timeout (in seconds) to take a screenshot for a dashboard email report. The time specified by this property must be less than or equal to the time set by the screenshot.service.http.client.read.timeout.milliseconds property. If you increase the value of this property, make sure that you increase the value of the screenshot.service.http.client.read.timeout.milliseconds property accordingly. Bear in mind that this property is specified in seconds, but the screenshot.service.http.client.read.timeout.milliseconds property is specified in milliseconds. |
| export.proxy.allow | .* | Specifies a regular expression that allow-lists the outgoing URLs the canvas proxy can request when generating screenshots and PDF exports. |
| export.proxy.mime-types.allowed | image/jpeg,image/jpg,image/png,image/gif,image/webp,image/svg+xml,image/svg-xml,text/html,application/xhtml,application/xhtml+xml | Specifies the MIME types the canvas proxy is permitted to fetch. Separate multiple values with commas. |
| export.proxy.client.timeout.millis | 300000 | Sets how long (in milliseconds) the canvas proxy waits when fetching a resource from a remote source before the request fails. |
| screenshot.service.name | screenshot-service | |
| screenshot.service.url | http://localhost:8083/ | This is the default screenshot microservice URL, used when service discovery is disabled in your environment. |
| screenshot.service.http.client.connect.timeout.milliseconds | 10000 | Specifies the number of milliseconds that can elapse before Self-Service Analytics stops trying to connect to the screenshot microservice client. |
| screenshot.service.http.client.read.timeout.milliseconds | 60000 | Specifies the number of milliseconds that can elapse before Self-Service Analytics stops trying to read from the screenshot microservice client. If you increase the time set by the dashboard.scheduling.screenshot.timeout property, make sure that you increase the value of this property as well. The total time set by screenshot.service.http.client.read.timeout.milliseconds should always be greater than or equal to the time set by the dashboard.scheduling.screenshot.timeout property. Bear in mind that this property is specified in milliseconds, but the dashboard.scheduling.screenshot.timeout property is specified in seconds. |
| screenshot.service.http.client.write.timeout.milliseconds | 60000 | Specifies the number of milliseconds that can elapse before Self-Service Analytics stops trying to write to the screenshot microservice client. |
| screenshot.service.http.client.max-in-memory-size.bytes | 512000 | The maximum amount of buffered bytes used when aggregating the response stream. |
Field Settings
| Property | Default Value | Description |
|---|---|---|
| zoomdata.detect.type.attribute.max.length | 200 characters | Use this property to set the maximum character length of attribute fields. If this limit is exceeded, the field will be recognized as a Text field. |
Mail SMTP Information
| Property | Default Value | Description |
|---|---|---|
| sftp.host | sftp.host=localhost sftp.port=2222 sftp.user=uname sftp.password=pwd sftp.strictHostKeyChecking=no sftp.remote.directory=/tmp | Specifies the properties for SFTP location, credentials, and other settings to deliver scheduled reports and schedule dashboard reports to the defined SFTP location. |
| mail.from | Specifies the email address identifying where the email comes from. “User@example.com” | |
| mail.login | Specifies the email login to use to access the mail server. | |
| mail.password | Specifies the password associated with the email login identified in the mail.login property. |
mail.smtp.port: 465mail.smtp.auth: truemail.smtp.ssl.enable: truemail.smtp.ssl.protocols: "TLSv1.2"mail.login: "mail.login"mail.password: "mail.password"mail.from: "mail.from"
zoomdata.properties file to identify the mail server and other mail properties required to use that server to send the scheduled dashboard (for example, mail.smtp.auth, mail.smtp.host, mail.smtp.port, mail.imap.host, and mail.imap.port). Complete descriptions of IMAP and SMTP protocol JavaMail properties can be found at these links:
- IMAP: https://javaee.github.io/javamail/docs/api/com/sun/mail/imap/package-summary.html
- SMTP: https://javaee.github.io/javamail/docs/api/com/sun/mail/smtp/package-summary.html
zoomdata.jvm Options
Thezoomdata.jvm file contains JVM options (e.g. memory configuration) and Java system properties (e.g. timezone, temp directory, etc.) related to Self-Service Analytics. The table below describes the options you can adjust.
Situations where the zoomdata.jvm file needs to be edited include:
For information on editing configuration files, see Configuration Property Files.
| Option | Default Value | Description |
|---|---|---|
| DEBUG_ENABLED | 0/false | Toggle switch to enable or disable the Java debug capability. To enable, enter ‘1’ or ‘true’. Example: DEBUG_ENABLED=false |
| DEBUG_PORT | 9393 | The default port for the Java debug capability. Example: DEBUG_PORT=9393 |
| JAVA_OPTS | -Xss256k -Xms2048m -Xmx8192m | Java-related options for JVM. Refer to Oracle’s article on Java HotSpot VM Options for information. |
| KERBEROS_CONFIG | /etc/krb5.conf | Default location for the Kerberos configuration details. However, the path to the file may be different in your environment. Refer to Oracle’s article on File Formats for information. |
| KERBEROS_PRINCIPAL | hdfs@HADOOP.COM | Kerberos principal name. |
| KERBEROS_KEYTAB | /etc/zoomdata/zoomdata.keytab | Kerberos keytab location. |
| PROXY_HOST | user-defined | For cloud-based connectors (including Google Analytics and Salesforce) being used in a proxy configuration, this property specifies the server host to be returned for calls, and identifies the proxy host server that will provide internet access. |
| PROXY_PORT | user-defined | For cloud-based connectors (including Google Analytics and Salesforce) being used in a proxy configuration, this property specifies the server port to be returned for calls, and identifies the proxy port server that will provide internet access. |
Query Engine Properties
Most of the query engine components can be edited in thequery-engine.properties file. You can manage the query engine using the following properties. For information on editing configuration files, see Edit a Configuration File.
| Property | Default Value | Description |
|---|---|---|
| Service Logging | ||
| access.log.file.size | 10 | Access log file size (in MB). |
| qe.error.log.file.size | 5 | Error log file size (in MB). |
| log.file.size | 20 | General log file size (in MB). |
| websocket.log.file.size | 10 | Websocket log file size (in MB). |
| syslog.host | 127.0.0.1 | Sets the host IP address for Syslog server message logging. |
| syslog.log.level | OFF | Sets the syslog log level for messages logged to the Syslog server. The following options are available for this property: TRACE, DEBUG, INFO, WARN, ERROR. and OFF. |
| trace.requests | false | Enables detailed tracing of HTTP request. |
| tracing.sampler.probability | 1 | The distributed tracing request rate percentage. Valid values are between 0 to 1.0, where 0 disables tracing and 1.0 indicates tracing 100% of requests. |
| General Microservice Configuration for Jetty Web Server | ||
| server.jetty.max-threads | 200 | Number of threads to serve the HTTP & WebSocket clients. |
| qe.server.ws.idle.timeout | 86400000 | Idle time (in milliseconds) that allows the WebSocket to be still valid. |
| qe.server.ws.input.buffer.size | 16384 | Buffer size (in bytes) for the WebSocket message. |
| qe.server.ws.max.message.size | 1048576 | Max size (in bytes) of a message that could be sent over the query engine WebSocket. |
| server.port | 5580 | REST/WebSocket microservice port. |
| server.ssl.enabled | false | Defines whether the REST/WS API should use SSL. |
| server.ssl.key-store | Path to the file with the keystore. | |
| Graceful Shutdown | ||
| application.graceful.shutdown.enabled | true | Indicates whether or not graceful shutdown processing should occur. Valid values are true (perform graceful shutdown processing) or false (do not perform graceful shutdown processing). |
| application.graceful.shutdown.event-propagation-timeout-sec | 5 | Specifies how long (in seconds) a query engine instance will wait to allow clients to receive the information that it is out of service. |
| application.graceful.shutdown.force-kill-timeout-sec | 30 | The maximum number of seconds that a query engine instance will wait for the number of its active tasks to reach zero. When this time has elapsed, all remaining active WebSockets serving in-flight queries are closed and then the query engine instance will stop. |
| Topology Configuration | ||
| calculations.detect.array.fields | true | Enables and disables the query engine validation of multivalue fields in a derived field. By disabling (set the value to false) this functionality, any custom metrics that you may have created in earlier versions of Self-Service Analytics that are aggregations of multivalue fields will produce valid values. |
| qe.max.allowed.time.groups | 10000 | The maximum amount of time in which groups can be generated by the Include Blanks function. For information on even time intervals, see Even Time Intervals . |
| qe.max.rows.during.execution | 5000000 | The maximum number of rows that can be processed during a single query. The value specified must be at least slightly greater than the value for the qe.zengine.edc.rows.limit property.If you increase the value of qe.zengine.edc.rows.limit, consider increasing the value of this property.When a query exceeds the limit set by this property, a Resource limit is reached during query execution message appears. |
| qe.zengine.edc.rows.limit | 1000000 | The maximum number of records that can be fused from a single data source. |
| sharpening.enabled | true | Enables or disables Data Sharpening. Set this property to true to enable Data Sharpening; set it to false to disable it. |
| sharpening.samples.max.count | 100 | The maximum number of Data Sharpening requests that can be generated by the sharpening process. |
| sharpening.samples.skip.first | 1 | Defines how many first samples are skipped before visualizing the result of sharpening. |
| zoomdata.validation.histogram.max.size | 1000 | Histogram max bucket count. |
screenshot-service.properties Properties
The following table lists properties you might adjust for the Self-Service Analytics Screenshot microservice. For information on editing configuration files, see Edit a Configuration File.| Property Name | Default Value | Description |
|---|---|---|
| pool.queue.size | 10 | Sets the queue size for Screenshot microservice requests. This property and the pool.thread.size property specify the upper limits for Screenshot microservice processing. When the number of screenshot requests exceeds the limits set by these two properties, you will receive HTTP 429 “Too Many Requests” errors. You can exceed these limits in a number of ways, including:
You can increase the values of this property and the pool.thread.size property when you encounter too many failed screenshots. However, do so with caution. |
| pool.thread.size | 20 | Sets the thread count for Screenshot microservice requests. This property and the pool.queue.size property specify the upper limits for Screenshot microservice processing. When the number of screenshot requests exceeds the limits set by these two properties, you will receive HTTP 429 “Too Many Requests” errors. You can exceed these limits in a number of ways, including:
If your use of Self-Service Analytics includes scheduling dashboard reports, update this setting so it is greater than the number of concurrent reports. You can also increase the values of this property and the pool.queue.size property when you encounter too many failed screenshots. However, do so with caution. |
| syslog.host | 127.0.0.1 | Sets the host IP address for Syslog server message logging. Example: syslog.host=127.0.0.1Override in the zoomdata.properties file; this affects more than the screenshot microservice if you edit it. |
| syslog.log.level | OFF | Sets the syslog log level for messages logged to the Syslog server. The following options are available for this property: TRACE, DEBUG, INFO, WARN, ERROR and OFF. Example: syslog.log.level=DEBUGOverride in the zoomdata.properties file; this affects more than the screenshot microservice if you edit it. |
| syslog.port | 1514 | Sets the port for Syslog server message logging. Example: syslog.port=1514Override in the zoomdata.properties file; this affects more than the screenshot microservice if you edit it. |
| syslog.suffix | local | Specifies a suffix that is appended at the end of the Syslog server log entry that Self-Service Analytics generates. Example: syslog.suffix=localOverride in the zoomdata.properties file; this affects more than the screenshot microservice if you edit it. |
Connector Properties and Property Files
Self-Service Analytics’s architecture enables the deployment of Self-Service Analytics’s data connectors as standalone components running in their own process space. Each connector has its own dedicated connector server and a corresponding property files. Some properties are common to all connectors and some properties are unique to a specific connector. The properties for each connector are documented in the property files. The kinds of configuration properties found in these files include:- logging properties
- actuator properties (Spring Boot management endpoint configuration)
- data source connection pool properties
- data source-specific properties
- Kerberos configuration properties (for some connectors)
- service discovery properties
- other connector-specific properties.
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:
edc-<connector>.properties. The following table lists these property files and identifies the associated connector.
For more information about editing property files, see Edit a Configuration File.