Managing Configuration files

Managing Configuration files

This documentation is for Kyvos 2026.8.x. To view documentation for other Kyvos versions, click here.

This documentation is for Kyvos 2026.8.x. To view documentation for other Kyvos versions, click here.

✅ Enterprise: AWS, Azure, GCP, and On-Premises ✅ Marketplace: AWS, Azure, and GCP ✅ SaaS: AWS, Azure, and GCP ✅ Single Node Installation (SNI)

Overview

This section explains how to manage and upload configuration files in Kyvos Manager to synchronize configuration changes across the Kyvos cluster, allowing administrators to update system configuration files, templates, and integration settings used by different Kyvos components.

Note

  • After upgrading Kyvos, the Alpha Setup restores the default system prompt files in the Kyvos Manager (KM) instance, replacing any custom prompt files uploaded by the user. If you have customized these files, re-upload them using Manage Configuration Files after the upgrade. Before re-uploading, review the default prompt files, as they may include updates to the Kyvos Dialogs execution flow that should be included in your custom files.

  • You can see the last operation details, including progress status and start time, by clicking the i icon. To view more comprehensive details, simply click the View Details link, which will take you to the Operations page, where you can view the operation information in detail. 

  • You can download managed Zookeeper logs through the terminal, similar to Analytical Server log downloads. You can also configure the INFO or DEBUG log level in the logback.xml file from the ‘Manage Configuration File’ page in Kyvos Manager for troubleshooting and diagnostics.

You can upload configuration files from Kyvos Manager to sync the current state of the cluster.

  1. On the navigation pane, click Utilities > Manage Configuration Files.

  2. On the Manage Configuration Files page, navigate to the file that you want to update and click the corresponding Upload button.

    image-20260806-073114.png

     

Important

We recommend creating a backup of all the files that you are updating, as Kyvos may not preserve these files during the upgrade.

  1. Click the Choose File button to locate the configuration file from your computer network and click the Upload button.

Important

You must ensure the correctness of file content before upload, as Kyvos Manager will not validate the contents.

  1. Click the Save button from the top-right of the screen.

Integrating Kyvos with host applications for Conversational Analytics

  • To integrate Kyvos with host applications, configure the User Interface (UI) elements for chat sessions:

    1. On the Manage Configuration page, download the ‘integration.config.json’ file.

    2. Open the downloaded file and add the necessary configurations, which include: ‘clearChat’, ‘showMetadata’, ‘showSelectedSemanticModel’, and ‘allowSemanticModelChange’.

    3. Set the value of these configurations to true if you want them to be displayed. By setting these configurations to true, the corresponding features will be displayed in the integration mode.

    4. Once you have made the changes, upload the file back on the Manage Configuration page.

  • In the Kyvos integration mode with host applications, to add a new chat session as a worksheet from a URL, the host application must send the following URL to Kyvos:

<KyvosPath>/kyvosIntegration.jsp?page=workbooks&workbookName=<%Workbookname%>&folderName=<%Folder%>&cubeName=<%CubeName%>&cubeFolderName=<%CubeFolder%>&cubeId=<%CubeId%>&sheetType=QNASHEET&actionCode=ADD

Uploading Synonym file for Elastic Search

To configure Elastic Search Service, you must first download the synonym.xls file. Ensure that you must not change the name of the synonym file while saving the file.

Using the Synonym file

  1. Download the file. In the file, add the actual value and its synonym you want to use for elastic search.

    image-20250328-115759.png
  2. Save the file without changing its name.

  3. Upload the file.

Uploading the Synonym file

  1. On the Manage Configuration page, expand Kyvos >Commons>kyvos/commons/config/kyvossearch.

  2. Upload the updated synonym file.

  3. Click Save.

image-20250325-140127.png

Managing Compute Server for YARN Deployments

You can launch dedicated compute servers within YARN containers, enhancing compatibility with YARN-based on-premises deployments. This enhancement enables users to run dedicated compute servers specifically for semantic model processing, ensuring improved resource isolation, scalability, and performance.

To set up a dedicated compute server for Yarn deployments, do the following:

  1. On the navigation pane, click Utilities > Manage Configuration Files.

  2. On the Manage Configuration Files page, click the Kyvos folder to expand, and then click Query Engine > /kyvos/queryengine/bin/ > start-yarn-cs.sh

  3. Download the start-yarn-cs.sh script, and the following parameters (other parameters in this file are automated) can be modified with their default values. To modify these defaults, update the values of the following parameters:

    1. Change Application Master Name,

      1. APPLICATION_NAME: Ensure that the application name (Dedicated compute) is unique across Kyvos clusters running on the same Hadoop cluster.

      2. APP_MASTER_LOG_PATH

    2. Update containers default values in which Kyvos Compute Server will be launched as Java application,

      1. export CS_CONTAINER_VCORES=8

      2. export CS_CONTAINER_MEMORY=16384

      3. export CS_COUNT=1

    3. Update Kyvos Compute Server configurations,

      1. CS_HEAP_MEMORY="4096M"

      2. CS_OFF_HEAP_MEMORY="2048M"

      3. CS_ANALYTICAL_STORE_BUILD_MEMORY="6GB"

      4. CS_ANALYTICAL_STORE_MAX_TASK_COUNT=2

      5. AUTO_CONFIGURE_PROCESSING_TASK_COUNT="AUTO"

  4. Upload the start-yarn-cs.sh script.

  5. Click the Save button from the top-right of the screen.

  6. Restart the Analytical Server, then trigger a sanity semantic model job. By default, Kyvos will launch 1 Compute Server with the following specifications:

    • 16 GB Memory

    • 4 GB Heap

    • 2 GB Off-heap

    • 6 GB Analytical Store Build Memory

    • 2 Tasks

Note

  • The sum of CS_HEAP_MEMORY, CS_OFF_HEAP_MEMORY, and CS_ANALYTICAL_STORE_BUILD_MEMORY should be less than or equal to CS_CONTAINER_MEMORY - 4GB.

  • Before switching compute type from shared Query Engine compute to Dedicated Compute, stop all Analytical Server and Query Engines (QE-based Appmaster).

Modifying CSV Metadata Template

When exporting a worksheet to CSV and PDF formats, you can include metadata in the report. A separate text file, following the csvMetadataTemplate.txt template, is also exported and can be modified as needed.

To modify the CSV metadata template, perform the following steps.

  1. On the navigation pane, click Utilities > Manage Configuration Files.

  2. On the Manage Configuration Files page, click the Kyvos folder to expand, and then click BI Server> /kyvos/olapengine/conf/dataExport/en_US/ > csvMetadataTemplate.txt

  3. Download the template file. In the file, you can view the following:

    image-20250825-161741.png
  4. Make the changes in the template file as needed and save it.

Note

If you remove a field from the template and later need it, you must add the field and upload the template again.

  1. Upload the template file.

  2. Click Save. The template file will be updated with your changes.

image-20250825-161000.png

Managing custom PPT templates

From Kyvos 2026.3 onwards, you can manage custom PPT templates through Kyvos Manager. You can upload, download, and delete custom PPT templates in the custom\ppt folder under the client\templates directory.

Note

Only .pptx and .potx file types with a maximum size of 10 MB are supported.

To add a custom template file, perform the following steps.

  1. On the navigation pane, click Utilities > Manage Configuration Files.

  2. On the Manage Configuration Files page, click the Kyvos folder to expand, and navigate to Web Portal > kyvos/jakarta/webapps/kyvos/client/templates/custom/ppt/.

  3. Click Add File next to thecustom\pptfolder.

image-20260326-030048.png
  1. In the dialog box, click Choose File, select the file you want to upload from your system and then click Add. A “File uploaded successfully” message will be displayed.

image-20260325-123806.png
  1. Click Save and enter your Kyvos Manager password.

  2. Refresh the web page to view the newly added file in the list.

After a file has been added to the custom\ppt folder, you can use the following actions by clicking the corresponding links displayed next to the file:

  • Upload: Replace the file with a new version.

  • Download: Download the file to your local system.

  • Delete: Delete the file from the folder.

Configuring Tier-Based Commands for System Monitoring

You can customize the commands executed by the system monitoring framework by modifying the systemconfig.json file.

To configure tier-based monitoring commands, perform the following steps.

  1. Log in to Kyvos Manager.

  2. Navigate to Utilities > Manage Configuration Files.

    image-20260605-111514.png
  3. Expand Kyvos > BI Server > kyvos/olapengine/conf/.

  4. Locate the systemconfig.json file.

  5. Click Download to download the configuration file.

  6. Open the downloaded systemconfig.json file in a text editor.

    image-20260605-111551.png
  7. Locate the system_monitor section. The file contains monitoring commands organized into different tiers (for example, tier0, tier1, tier2, tier3, and tier4).

  8. Add, remove, or modify commands under the required monitoring tier based on your diagnostic requirements.

  9. Save the updated systemconfig.json file.

  10. Return to the Manage Configuration Files page in Kyvos Manager.

  11. Click Upload next to the systemconfig.json file and upload the modified file.

  12. Click Save to apply the changes.

Application Performance Monitoring (APM) Integration and Distributed Tracing

Kyvos supports integration with an Application Performance Monitoring (APM) platform to monitor application performance and health. When enabled, telemetry provides end-to-end distributed tracing across Kyvos components and helps you troubleshoot application and communication issues.

Telemetry supports the following capabilities:

  • End-to-End Distributed Tracing: Tracks requests across the Web Client, Analytical Server, Query Engine, Compute Master, and databases by maintaining the parent-child trace hierarchy.

  • TCP Communication Tracing: Creates child spans for proprietary TCP communication and associates them with the corresponding parent spans.

  • Span Details: Captures relevant information, such as the host name and port, for TCP communication spans.

Prerequisites

Before enabling telemetry, obtain the APM connection string for the target deployment.

For Azure Application Insights:

  1. Open the required Application Insights resource in the Azure portal.

  2. On the Overview page, locate Connection string under Essentials.

    image-20260826-094724.png
  3. Copy the connection string for use in the telemetry configuration.

Configure the APM Connection

You must update the applicationinsights.json file with the required APM connection string.

To configure the APM connection, perform the following steps:

  1. Go to Utilities > Manage Configuration Files.

  2. Under Commons, expand the following path: kyvos/commons/config/opentelemetry/

  3. The applicationinsights.json file is available under the opentelemetry configuration folder, as shown below.

    image-20260826-095010.png
  4. Download the applicationinsights.json file.
    JSON format: The following is a sample JSON file. For more details about advance configuration, see Microsoft Azure Documentation.

    { "connectionString":"<YOUR_CONNECTION_STRING>", "role": { "name": "KyvosClient" }, "sampling": { "percentage": 100 }, "preview": { "captureHttpServer4xxAsError": false } }
  5. In the file, add the APM configuration string that you have copied from Azure Portal.

  6. Save the file.

  7. Upload the updated file.

  8. After updating the telemetry configuration, save the configuration changes in Kyvos Manager and restart Kyvos services for them to take effect.

Enable or Disable Telemetry

You can enable or disable telemetry, use the ENABLE_TELEMETRY property to control telemetry:

Built-In Configuration-Based Row-Level Security

You can also use Kyvos' built-in configuration file to implement RLS, without uploading a custom JAR.

To enable built-in configuration-based RLS Security, configure the RLSConfiguration.json file, located at /kyvos/olapengine/conf/RLSConfiguration.json.

The RLSConfiguration.json file defines the actual row-level filtering behavior for each semantic model — including which users are allowed access when they are missing from the rules table (missingUserBehaviour), the filter expression used to generate the RLS filter (rlsRuleQuery), and the wildcard character that grants full column access (wildCardCharacter).

To enable built-in configuration-based RLS Security, perform the following steps.

  1. Navigate to Utilities > Manage Configuration Files.

  2. Go to the following location: /kyvos/olapengine/conf/RLSConfiguration.json

    image-20260921-072308.png

     

  3. Download the RLSConfiguration.json file.

  4. Update it with the required configuration and upload it back to apply the changes.

  5. Save the file.

  6. Upload the updated file.

The following is a sample JSON file.

Note

Either all of the following properties, jdbcUrl, jdbcUser, jdbcPassword, and jdbcDriver, must be specified, or only the connectionFileName property must be specified in the RLSConfiguration.json file.

{ "commonAttributes": { "jdbcUrl": "<Enter JDBC URL>", "jdbcUser": "<Enter JDBC User>", "jdbcPassword": "<Enter JDBC Password>", "jdbcDriver": "<Enter JDBC Driver>", "connectionFileName": "<Enter Kyvos connection file name>", "syncFrequency": "10", "missingUserBehaviour": "DENY_ALL_ACCESS", "wildCardCharacter": "*" }, "semanticModels": [ { "semanticModelId": "<Enter semantic model ID>", "userIdentifierColumnInRuleTable": "username", "fetchRulesQuery": "select username, rule_column from rule_table", "rlsRuleQuery": " (sm.country_column in (rule_column))", "denyRlsRuleQuery": "(sm.country_column in (‘ABCDEF’))", "columnMappings": { "sm.country_column": "country code" } } ] }

The following table describes the key configuration properties used in the RLSConfiguration.jsonfile.

Property

Description

Possible Values

Default Value

Property

Description

Possible Values

Default Value

missingUserBehaviour

Defines the level of data access for users who are not present in the Rules table.

ALLOW_ALL_ACCESS – Allows access to all data without applying the rlsRuleQuery filter.

DENY_ALL_ACCESS – Denies access to all data.

ALLOW_ALL_ACCESS

rlsRuleQuery

Defines the row-level security filter logic applied to user queries using bitwise AND (&) and OR operations to evaluate access permissions. It references columns from both fetchRulesQuery results and semantic model columns. It applies automatically to every query users execute on the semantic model

Any valid SQL condition.

-

denyRlsRuleQuery

Defines the SQL condition used to deny access to all data. This condition is used instead of rlsRuleQuery when missingUserBehaviour is set to DENY_ALL_ACCESS and the user is not found in the Rules table.

Any valid SQL condition.

-

wildCardCharacter

Defines a wildcard character that provides access to all data for the corresponding column when the character is present in the Rules table.

Any valid string.

-

fetchRulesQuery

SQL query that retrieves user-specific RLS rules from the external rules table. It executes over the connection specified in connectionFileName and returns all columns required for filtering operations. The query re-executes periodically based on the syncFrequency setting.

Any valid SQL query.

-

SyncFrequency

Defines the interval, in minutes, at which Kyvos reloads the RLS configuration. The system reruns fetchRulesQuery at this interval to update user permissions. Lower values enable near real-time updates but increase database load.

Note: Restart the Analytical Server after the initial configuration. Subsequent updates are synchronized automatically based on this interval.

Any integer greater than or equal to 1.

15

JdbcUrl

Defines the JDBC URL used to connect to the external database.

Any valid JDBC URL.

-

JdbcUser

Defines the user name for the JDBC connection.

Valid database user name.

-

JdbcPassword

Defines the password for the JDBC connection.

Valid database password.

-

JdbcDriver

Defines the JDBC driver class name.

Valid JDBC driver class name.

-

connectionFileName

Specifies the Kyvos connection used to retrieve the RLS rule table.Specifies the connection configuration file name as defined in Kyvos. It must exactly match the name used during connection setup in Kyvos. This file establishes connectivity to the external data source containing RLS rules.

Valid Kyvos connection name.

-

semanticModelId

Specifies the unique ID of the semantic model for which RLS is configured.

Valid semantic model ID.

-

userIdentifierColumnInRuleTable

Identifies the column in the RLS rules table with user identifiers. Supports formats such as email addresses, usernames, and employee IDs. Matches authenticated users to their security rules.

Valid column name.

-

columnMappings

JSON object mapping query aliases to semantic model column names.

  • Left side: alias used in rlsRuleQuery, typically prefixed with "sm."

  • Right side: actual column name as defined in the semantic model

Enables flexible query construction independent of column naming.

Valid field-to-column mappings.

-

Configuring Row-Level Properties

Use RLSConfiguration.json to define Row-Level Security (RLS) for semantic models. The configuration supports:

Configuration

Description

Configuration

Description

fetchRulesQuery and rlsRuleQuery

Define and apply RLS conditions and rule values

columnMappings

Map RLS column names to the corresponding semantic model fields

Multiple semantic models

Define RLS configurations for multiple semantic models in a single file

1. Using fetchRulesQuery with rlsRuleQuery  

 The rlsRuleQuery property defines the SQL condition used for applying Row-Level Security (RLS). It can be any valid SQL condition, and it can reference:

  • Semantic model column names or aliases defined through column mapping. 

  • Column names from the RLS rule table. 

For example, if region is the semantic model column and rule_region is the corresponding rule-table column, configure:

"rlsRuleQuery": "(region IN (rule_region))"

At runtime, the value of rule_region is substituted into the query. 

Points to know 

  • Use parentheses for conditions: When combining conditions with AND or OR, enclose each condition in parentheses.

    "rlsRuleQuery": "(region IN (rule_region)) AND (country IN (rule_country))"

    For mixed conditions, use additional parentheses to define the required logical grouping.

    "rlsRuleQuery": "((region IN (rule_region)) AND (country IN (rule_country))) OR (state IN (rule_state))"
  • Enclose string values in single quotation marks: When using multiple string values with the IN operator, format the values as: ('US', 'UK')
    You can generate these values in either of the following ways:

    • Use SQL functions such as CONCAT in fetchRulesQuery to construct the single-quoted, comma-separated values.

    • Store the values directly in the rule table in the following format: 'US', 'UK'

The resulting rlsRuleQuery should be equivalent to: (region IN ('US', 'UK'))

  • Use different names for semantic model and rule-table columns: Rule-table column names are replaced with their corresponding values during RLS processing. Using the same name for both columns can result in unexpected substitution behavior. For example:

Column type

Name

Column type

Name

Semantic model column

region

Rule-table column

rule_region

Use rule_region instead of region for the rule-table column.

For example:

{      " rlsRuleQuery ": "(region IN (rule_region)) AND (country IN (rule_country))"   } 

This allows the RLS query to dynamically use the values defined in the corresponding rule-table columns. 

2. Using columnMappings 

Use columnMappings when the dimension name used in rlsRuleQuery doesn't match the field name Kyvos actually sends to the provider.

Example: The Kyvos semantic model field is Sales Region (with a space). After normalization (spaces become underscores), the key seen by the provider is Sales_Region. If the rule template also uses Sales_Region, no mapping is needed in most cases.

But if the semantic model field were named something entirely different — say Geo — add a mapping:

"columnMappings": {    "Sales_Region": "Geo"  } 

This renames Sales_Region to Geo in the template at load time, so the final expression uses the name that actually matches the semantic model’s field.

3. Configuring multiple semantic models  

A single RLSConfiguration.json file can hold configurations for multiple semantic models at once. Each model can define its own rule query, fetch query, and column mappings, while sharing the same database connection settings:

{    "commonAttributes": { ...},    "semanticModels": [      { "semanticModelId": "sales-cube-id",   ... },      { "semanticModelId": "finance-cube-id", ... },      { "semanticModelId": "hr-cube-id",      ... }    ]  } 

Copyright Kyvos, Inc. 2026. All rights reserved.