# Single-VM (RHEL)

This article outlines the steps required to set up the askEdgi Data Service and askEdgi Insight Service on a single virtual machine running RHEL 9, along with the necessary configuration updates to the OvalEdge application. The steps in this document apply to fresh askEdgi deployments on the virtual machine.

The setup includes Python-based services using Poetry and integration with an existing OvalEdge installation on the same virtual machine. The document covers service deployment, system configuration, and validation steps required to complete the setup of askEdgi successfully.

### Purpose

The purpose is to define a precise and reproducible process for installing required software, configuring system prerequisites, deploying Edgi services, opening required network ports, updating application configuration, and validating the complete setup.

### Network Port Configuration

The following inbound ports must be opened on the virtual machine to expose the OvalEdge application and askEdgi services through a browser. The same ports must also be allowed at the operating system level on RHEL 9 to ensure successful network communication.

| Port Number | Service Name         | Usage                                                                   |
| ----------- | -------------------- | ----------------------------------------------------------------------- |
| 8001        | Edgi Data Service    | Enables communication between Edgi Insight and the OvalEdge application |
| 8000        | Edgi Insight Service | Enables communication between the OvalEdge application and Edgi Insight |

{% hint style="info" %}
Both ports must be open for inbound traffic at the virtual machine level to ensure service communication.
{% endhint %}

### Prerequisites

Ensure the following conditions are met before starting deployment.

* Sudo access is available on the server.
* The OvalEdge application is already installed and configured.
* The Edgi services are deployed on the same virtual machine as OvalEdge.

#### Software Requirements

The following software components are required for deployment.

| Component            | Version                  |
| -------------------- | ------------------------ |
| Operating System     | RHEL 9                   |
| Python               | 3.13                     |
| Poetry               | 2.1.3                    |
| OvalEdge Application | Installed and configured |

### Install Python 3.13 on RHEL 9

#### Executing the Python Installation

**Run the following commands to install Python 3.13.**

1. Install development tools

   ```
   sudo dnf groupinstall -y "Development Tools"
   ```
2. Install required libraries

   ```
   sudo dnf install -y \
   openssl-devel bzip2-devel libffi-devel zlib-devel \
   xz-devel tk-devel readline-devel sqlite-devel \
   wget curl make gcc
   ```
3. Download and extract the Python source

   ```
   cd /usr/src
   sudo curl -O https://www.python.org/ftp/python/3.13.0/Python-3.13.0.tgz
   sudo tar -xzf Python-3.13.0.tgz
   cd Python-3.13.0
   ```
4. Configure and install Python

   ```
   sudo ./configure --enable-optimizations --with-ensurepip=install
   sudo make -j$(nproc)
   sudo make altinstall
   ```
5. Verify Python installation

   ```
   python3.13 --version
   sudo alternatives --config python3
   python3 --version
   ```

   \
   Sample reference screenshots:

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2F7LRlT4TfaDT13WCJ9jtD%2Funknown.png?alt=media&#x26;token=8ca47020-994b-490f-be64-5e7c9c6d5ff9" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2Fb9bxIMWi80JXJEgCccWm%2Funknown.png?alt=media&#x26;token=6693f59d-2126-4c14-a087-60c35b17aef0" alt=""><figcaption></figcaption></figure>

### Install Poetry Version 2.1.3

#### Configure the Poetry Environment

1. Install Poetry

   ```
   curl -sSL https://install.python-poetry.org | python3 - --version 2.1.3
   ```
2. Update environment path

   ```
   export PATH="$HOME/.local/bin:$PATH"
   source ~/.bashrc
   ```
3. Verify Poetry installation

   ```
   poetry --version
   ```

   \
   Sample reference screenshot:

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2Fv6SLYGvnm330ugLHJDPv%2Funknown.png?alt=media&#x26;token=ef149b33-c294-4957-bdb4-36e5bbf5ebe4" alt=""><figcaption></figcaption></figure>

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Poetry must be installed under the ovaledge user, as the askEdgi services run using this account.</p></div>

### Preparing Service Directories

Create two base directories for askEdgi services under the ovaledge user home directory.

| Directory     | Purpose                         | Absolute Path                |
| ------------- | ------------------------------- | ---------------------------- |
| edgi\_data    | Edgi Data Service deployment    | /home/ovaledge/edgi\_data    |
| edgi\_insight | Edgi Insight Service deployment | /home/ovaledge/edgi\_insight |

Sample reference screenshot:

<figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FEsRvjDD1tBO5HHueAywB%2Funknown.png?alt=media&#x26;token=a7846b76-69b3-440b-aef5-af50b93a694a" alt=""><figcaption></figcaption></figure>

### Deploy the Edgi Data Service

#### Configuring the Edgi Data Directory

1. Create required folders inside edgi\_data

   ```
   mkdir logs
   mkdir dbfolder
   ```

   \
   Sample reference screenshot:

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FWhZahnxwY3NvtPZTgs2b%2Funknown.png?alt=media&#x26;token=89807eb5-51f2-4230-b852-2ff51aa05af1" alt=""><figcaption></figcaption></figure>

#### Creating the Environment Configuration File

1. Create a .env file and add the following values (Mandatory)

   ```
   DEPLOYMENT_TYPE=vm
   ENV=production
   ```
2. MySQL configuration (Mandatory)

   ```
   mysql_url=jdbc:mysql://<IP_host>:3306/ovaledgedb?useUnicode=true&character_set_server=utf8mb4&useSSL=false&allowPublicKeyRetrieval=true
   mysql_user=<username>
   mysql_password=<password>
   ```

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>The Special character @ in the MySQL password is not supported by Edgi services.</p></div>
3. Workspace identification (Mandatory)

   ```
   WORKSPACE_PROJECT_ID=0001
   WORKSPACE_USER=unknown
   ```
4. Logging configuration (Recommended)

   ```
   LOG_PATH=/home/ovaledge/edgi_data/logs
   LOG_MODE=INFO
   ```
5. DuckDB configuration (Recommended)

   ```
   DB_FOLDER=/home/ovaledge/edgi_data/dbfolder
   ```
6. Pooling configuration (optional).

   ```
   MYSQL_POOL=10
   MYSQL_POOL_NAME=ovaledge_pool
   ```
7. Service port configuration (Mandatory)

   ```
   APP_PORT=8001
   ```
8. Recipe configuration (Optional)

   ```
   OVALEDGE_RECIPE_CONNECTION_ID=-1
   ```

   \
   Sample reference screenshot:

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2F53wKIzL42qNgQyt3BbwX%2Funknown.png?alt=media&#x26;token=cba6d087-6476-4572-8fd6-aca71960e7bf" alt=""><figcaption></figcaption></figure>

#### Download the Edgi Data Package

1. Download the askEdgi  Data tar.gz file into the edgi\_data directory.
2. The DevOps team provides the download link.
3. Extract the tar. gz file using the tar -xvf command.\
   \
   Sample reference screenshots:

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FS0WWUOXSV5wObDJIZIKr%2Funknown.png?alt=media&#x26;token=f0855cfd-e055-49a2-a052-c91d2644d55b" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2F8JJJ0wfufaSnqtDzcaO0%2Funknown.png?alt=media&#x26;token=ae662feb-05c9-459b-a63b-ddedf0c3dcd7" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2Fw279oZ70hAF7orv1D7T6%2Funknown.png?alt=media&#x26;token=801f30e1-ae41-4506-8037-d8a287723a5f" alt=""><figcaption></figcaption></figure>
4. **Validate Extraction**: Confirm that the pyproject.toml file exists in the extracted directory before running poetry install.

#### Install Dependencies

1. Run the following command from the directory containing the pyproject.toml file.

   ```
   poetry install
   ```

   \
   Sample reference screenshots:

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FHg30fswkF24RNVYKRYoJ%2Funknown.png?alt=media&#x26;token=7eee2254-f989-4083-a9b6-89c1a0206163" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FPN4atnZZXnAwAsxiQ2qo%2Funknown.png?alt=media&#x26;token=937c8021-ada0-4468-b50d-b0773566647e" alt=""><figcaption></figcaption></figure>

#### Validate the Data Service

1. Start the service manually using the Poetry service.   &#x20;Navigate to the edgi\_data directory where the pyproject.toml file is located, then run:

   ```
   poetry run service
   ```
2. Confirm the service has started successfully.
3. Stop the service using Ctrl+C.\
   \
   Sample reference screenshot:

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FCwu4UOw98hwKES5skSwV%2Funknown.png?alt=media&#x26;token=ce1b07b4-67ec-4639-bec1-cf4b8b8e7ead" alt=""><figcaption></figcaption></figure>

#### Configuring the Data Service as a System Service

1. Identify the Poetry installation path.

   ```
   which poetry
   ```

   \
   Sample reference screenshot:

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FJzMKvAazlN1yIkhzgVgf%2Funknown.png?alt=media&#x26;token=232a995c-2673-4ed8-ac69-1f7d75dac44f" alt=""><figcaption></figcaption></figure>
2. Create the system service file at the specified location.

   ```
   sudo vim /etc/systemd/system/data.service
   ```
3. Add the following configuration.

   ```
   [Unit]
   Description=askEdgi  Data Service
   After=network.target

   [Service]
   User=ovaledge
   WorkingDirectory=</path/to/pyproject.toml file>
   ExecStartPre=/home/ovaledge/.local/bin/poetry install --no-interaction --no-root
   ExecStart=/home/ovaledge/.local/bin/poetry run service
   Restart=always
   RestartSec=5
   StandardOutput=append:/home/ovaledge/edgi_data/logs/edgi-data.log
   StandardError=append:/home/ovaledge/edgi_data/logs/edgi-data.log
   Environment="PATH=/home/ovaledge/.local/bin:/usr/local/bin:/usr/bin"

   [Install]
   WantedBy=multi-user.target
   ```
4. Configure the service definition as provided in the details.

   | **Action**     | **Command**                   |
   | -------------- | ----------------------------- |
   | Reload Service | systemctl daemon-reload       |
   | Start Service  | systemctl start data.service  |
   | Enable Service | systemctl enable data.service |
   | Status Service | systemctl status data.service |

### Configure the Edgi Insight Service

#### Creating Directory Structure

1. Inside the edgi\_insight directory, create the following folders and environment file.

   ```
   mkdir logs
   mkdir docu
   mkdir dbfolder
   mkdir storefolder
   ```

   Sample reference screenshot:

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FHMiDmFLnjA34WyhgsJZp%2Funknown.png?alt=media&#x26;token=80c64f6d-49a4-4816-8a94-d09b6afbf429" alt=""><figcaption></figcaption></figure>

#### Creating the Environment Configuration File

1. Create and edit the .env file.

   ```
   DEPLOYMENT_TYPE=vm
   ENV=production
   ```
2. MySQL configuration.

   ```
   mysql_url=jdbc:mysql://3.149.230.229:3306/ovaledgedb?useUnicode=true&character_set_server=utf8mb4&useSSL=false&allowPublicKeyRetrieval=true
   mysql_user=xxxxxx
   mysql_password=xxxxxxx
   ```
3. Workspace identification.

   ```
   WORKSPACE_PROJECT_ID=0001
   WORKSPACE_USER=unknown
   ```
4. Logging configuration.

   ```
   LOG_PATH=/home/ovaledge/edgi_insight/logs/logs
   LOG_MODE=DEBUG
   EDGI_DEBUG_MODE=False
   ENABLE_LLM_RESPONSE_CAPTURE=False
   ALLOW_RAG_CRAWLING=False
   ```
5. Elasticsearch configuration.

   ```
   es_host=3.xxx.xx.2x9
   es_port=9200
   es_username=xxxx
   es_password=xxxxx
   es_protocol=http
   ```
6. Workspace discovery configuration.

   ```
   EDGI_WORKSPACE_DISCOVERY=static
   EDGI_WORKSPACE_PROTOCOL=http
   EDGI_WORKSPACE_HOST=localhost
   EDGI_WORKSPACE_PORT=8001
   ```
7. File storage paths.

   ```
   DB_FOLDER=/home/ovaledge/edgi_insight/dbfolder
   DOCS_FOLDER=/home/ovaledge/edgi_insight/docu
   STORE_FOLDER=/home/ovaledge/edgi_insight/storefolder
   ```

   \
   Sample reference screenshot:

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2F2kKF8Oj5VEXfVTSLxsyX%2Funknown.png?alt=media&#x26;token=11a38e61-1023-4de5-8736-c6aea6452168" alt=""><figcaption></figcaption></figure>

#### Downloading and Extracting the Edgi Insight Package

1. Download the Edgi Insight tar.gz file.
2. The DevOps team provides the download link.
3. Extract the package using the tar -xvf command.\
   \
   Sample reference screenshots:

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2Fm40ogY4KxzitnJkytdm8%2Funknown.png?alt=media&#x26;token=5be37fc2-1313-41ce-96dc-6a6da42001d3" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2F2RaVRHP4BcgEGktMSGnv%2Funknown.png?alt=media&#x26;token=ba353de2-dcaa-4aea-993d-d76cd29fe4dd" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2F1OlofN4zquEKlPdiQqF0%2Funknown.png?alt=media&#x26;token=63d38dba-37ca-4061-a6b5-2011d0f735e6" alt=""><figcaption></figcaption></figure>

#### Install Dependencies

1. Run the following command from the directory containing the pyproject. toml file.

   ```
   poetry install
   ```

   \
   Sample reference screenshot:

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FRwJZyiv6IexMt7YShUbT%2Funknown.png?alt=media&#x26;token=cf942db0-bb3f-41a3-a2f1-6fdad185db04" alt=""><figcaption></figcaption></figure>

#### Validate the Insight Service

1. Start the Insight service manually using the Poetry service.   &#x20;Navigate to the edgi\_data directory where the pyproject.toml file is located, then run:

   ```
   poetry run service
   ```
2. Confirm error-free execution.
3. Stop the service using Ctrl+C.\
   \
   Sample reference screenshot:

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FmSCEYqjSg8H7hLo1tdsz%2Funknown.png?alt=media&#x26;token=fd224542-0268-4c1a-82eb-b6943104dd48" alt=""><figcaption></figcaption></figure>

#### Configure the Insight Service as a System Service

1. Create the service file.

   ```
   sudo vim /etc/systemd/system/insight.service
   ```

2. Add the following configuration.

   ```
   [Unit]
   Description=Edgi Insights Service
   After=network.target

   [Service]
   User=ovaledge
   WorkingDirectory=</path/to/pyproject.toml file>
   ExecStartPre=/home/ovaledge/.local/bin/poetry install --no-interaction --no-root
   ExecStart=/home/ovaledge/.local/bin/poetry run service
   Restart=always
   StandardOutput=append:/home/ovaledge/edgi_insight/logs/edgi-insight.log
   StandardError=append:/home/ovaledge/edgi_insight/logs/edgi-insight.log
   Environment="PATH=/home/ovaledge/.local/bin:/usr/local/bin:/usr/bin"
   Environment="LD_LIBRARY_PATH=/usr/local/lib"

   [Install]
   WantedBy=multi-user.target
   ```

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Add a note explaining that the entry point must match the main script or console script defined in pyproject.toml.</p></div>

3. Use the following commands to configure the Insight service.

   | **Action**     | **Command**                      |
   | -------------- | -------------------------------- |
   | Reload Service | systemctl daemon-reload          |
   | Start Service  | systemctl start insight.service  |
   | Enable Service | systemctl enable insight.service |
   | Status Service | systemctl status insight.service |

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>The WorkingDirectory value must point to the directory containing the pyproject toml file for the Edgi Insight service.</p></div>

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>The PATH and LD_LIBRARY_PATH environment variables are mandatory to ensure Poetry and the required native libraries are accessible during service execution.</p></div>

### Update OvalEdge Oasis Configuration

#### Apply Edgi Configuration Parameters

For on-premises deployments, update the oasis configuration file with the following values.

| Property                     | Value     |
| ---------------------------- | --------- |
| oe.edgi.enabled              | true      |
| oe.edgi.credential.type      | static    |
| oe.edgi.workspace.host       | localhost |
| oe.edgi.workspace.port       | 8001      |
| oe.edgi.insight.service.host | localhost |
| oe.edgi.insight.service.port | 8000      |

Sample reference screenshot:

<div align="left"><figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FmwHJvM7iBoofJmXT7mYn%2Funknown.png?alt=media&#x26;token=eeb7e3c0-c1b3-4310-8ebd-e8deb44ee5b3" alt=""><figcaption></figcaption></figure></div>

{% hint style="info" %}
Update these properties in the oasis configuration file located at \<path\_to\_oasis\_file> as per your OvalEdge installation directory.
{% endhint %}

{% hint style="info" %}
Restart the Tomcat service after applying configuration changes.
{% endhint %}

### Update OvalEdge Application Settings

#### Execute Application Level Configuration

1. Ensure the OvalEdge application is running.
2. Validate the -1MySQL connector.
   1. Navigate to the OvalEdge application, then go to System Settings > Connectors.
   2. Locate the connector with ID -1 (MySQL) and confirm it is active and connected.
3. Perform crawl and profiling.

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2F8rWrOMc3USFvaHJQIegr%2Fimage.png?alt=media&#x26;token=6ea46b29-985b-413e-a9a7-07d2ccb7ead4" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FiQw8DzLlSJGpZsuMunM1%2Fimage.png?alt=media&#x26;token=c4015e55-ed97-4a1d-8a8a-a9cdaa50695b" alt=""><figcaption></figcaption></figure>

#### Update AI Settings

Navigate to System Settings, then AI tab, and update the following.

| Setting                               | Value                         |
| ------------------------------------- | ----------------------------- |
| askedgi.edition                       | metadata analytics            |
| askedgi.ovaledge.recipe.connection.id | -1 (MySQL connector ID)       |
| ai.config                             | Key provided by the developer |

<figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2Fd7eyExOqbrV7W14pureH%2Fimage.png?alt=media&#x26;token=e568a191-a50c-4cfb-b0b8-edbea4553556" alt=""><figcaption></figcaption></figure>

All the remaining settings are the same as below:

<figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FqriJ5smbl25KIEi5CR94%2Fimage.png?alt=media&#x26;token=f85d30b6-5b32-40a9-a587-bbbf95dce008" alt=""><figcaption></figcaption></figure>

### Final Validation Steps

1. Log out and log back into the application.

2. Navigate to the askEdgi feature.

3. It will take a few seconds to create a workspace.

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FZTi3uuTFW7GvwQDh0FqJ%2Fimage.png?alt=media&#x26;token=e616d6c8-81c8-4ccb-ab40-6e2fc641b9cf" alt=""><figcaption></figcaption></figure>

4. Click on the Catalog.

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FiEYXtGemka9Doe9QBt2t%2Fimage.png?alt=media&#x26;token=0193863f-0134-445a-93cd-9eb25ed97b66" alt=""><figcaption></figcaption></figure>

5. To add any schema, click on Add.

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FLR2cFcw3CVL7hdGnP5lF%2Fimage.png?alt=media&#x26;token=2098d07d-75b2-42b2-8a2e-5e1a5d2d56bd" alt=""><figcaption></figcaption></figure>

6. Access data from the added catalog.<br>

   <div align="left"><figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FtV6dm8AnReKsx3PIvMTl%2Fimage.png?alt=media&#x26;token=4d5f18d0-be27-4dd5-a4eb-a12d17dc5f5c" alt=""><figcaption></figcaption></figure></div>

   <div align="left"><figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FusCyzBFwmF6hDaT5O04c%2Fimage.png?alt=media&#x26;token=eb253685-67f4-4576-8473-678acca3143b" alt=""><figcaption></figcaption></figure></div>

7. Perform a search query and verify that a response is returned.

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FiIbUzygNbokPtSTmdjXP%2Fimage.png?alt=media&#x26;token=98129962-781c-4b0c-9628-111444b674b6" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://4123149314-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FztcvwwOJCeaE1n6oHp4C%2Fuploads%2FCjXc5kTITepPIdDtgetu%2Fimage.png?alt=media&#x26;token=4ad87be2-59a7-42f7-831e-ddfa24a09150" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Successful query results confirm that the complete setup is functioning as expected.
{% endhint %}

***

Copyright © 2026, OvalEdge LLC, Peachtree Corners, GA, USA.
