IANN FileGPS Linux Installation

Introduction to the Guide

This installation guide provides detailed, step-by-step instructions for setting up the IANN (Intelligent Artificial Neural Network) platform and its associated components. The purpose of this guide is to ensure a smooth and error-free installation process, enabling users to quickly configure the environment and start leveraging the system’s capabilities.

What is IANN?

IANN (Intelligent Artificial Neural Network) is Pragma Edge’s AI-powered unified platform designed to bring intelligence, automation, and predictive analytics into business operations. It combines file tracking, monitoring, and AI-driven insights to ensure end-to-end visibility, operational efficiency, and proactive issue resolution

IANN plays a key role in driving digital transformation across industries by turning traditional data exchanges into intelligent, insight-driven processes.

IANN is built as a modular system with three primary components:

  1. FileGPS – Tracks and monitors file transactions across systems for visibility and SLA compliance.
  2. Monitor – Provides real-time monitoring of processes, system health, and metrics with alerts.
  3. AI – Adds intelligence through predictive analytics, anomaly detection, and GenAI insights.

Who should use this Installation Guide?

This installation guide is designed for a wide range of technical users involved in deploying, maintaining, or supporting IANN solutions. The intended audience includes:

  1. System Administrators / DevOps Engineers
  • Primary audience.
  • Responsible for deploying, configuring, and maintaining the software in different environments (development, staging, production).
  • Use the guide to ensure all prerequisites, system settings, and deployment steps are correctly followed.
  1. IT Support Teams / Technical Support Engineers
  • Use the guide to troubleshoot installation-related issues reported by end users or internal teams.
  • May use it to replicate the installation process for issue diagnosis.
  1. Software Developers
  • Particularly when working in teams or setting up the project locally.
  • Use the guide to set up their development environments and test deployments.
  1. Customers / End Users (for On-Premises Software)
  • If the product is delivered for self-hosting, customers’ technical teams use the installation guide.
  • Often non-developers with technical backgrounds follow these instructions.
  1. Consultants / System Integrators
  • Third-party professionals who assist organizations in setting up and customizing the product.
  1. QA Engineers / Testers
  • Use the guide to install and configure the software in test environments to validate features or bug fixes.

What this Installation Guide Covers?

This guide serves as a comprehensive manual for deploying and configuring the IANN platform in various environments (Linux, Windows, OpenShift). It covers the following:

  1. Purpose and Overview of IANN
  • Clarifies the objective of the document and introduces the IANN FileGPS platform.
  1. System Architecture and Deployment Models
  • Details the architecture of IANN FileGPS and how it integrates with the broader ecosystem.
  1. Step-by-Step Installation Instructions
  • Linux Installations: Covers UI, Server, Rest Consumer, and Client Server deployments.
  • Windows Installations: Includes setup with NSSM, password encryption, component deployments, and validation.
  • OpenShift Installations: Provides detailed guidance on Helm charts, UI/backend configurations, and deployment steps.
  1. Anomalies Detection Modules
  • Deployment instructions for File Anomalies and Transaction Anomalies, supporting both Linux and Windows environments.
  1. IANN Monitor Deployment
  • Instructions for installing IANN Monitor on Linux, Windows, and OpenShift.
  • Includes pre-requisites, system validation, Helm-based deployments, and anomaly detection features.
  1. IANN File Transaction Search
  • Covers deployment and configuration of the File Transaction Search module across platforms.

Each section includes detailed prerequisites, component-level configuration, and post-deployment validation steps to ensure successful setup and operation of IANN in production and non-production environments.

1. Introduction to IANN FileGPS

Pragma Edge’s IANN FileGPS is a robust, end-to-end file monitoring and tracking solution designed to provide organizations with real-time visibility and control over file flows across distributed IT environments. It captures, aggregates, and contextualizes file-related events—enriching them with business context to enhance operational transparency and support informed decision-making.

Beyond traditional monitoring, IANN FileGPS empowers business users to define and manage SLAs (Service Level Agreements) that are closely aligned with business outcomes. SLAs can be configured at multiple levels—such as partner, enterprise, business unit, or even individual file or transaction—enabling fine-grained control and ensuring operational accountability.

With its centralized web interface, powerful alerting mechanisms, and audit-ready architecture, IANN FileGPS ensures that business-critical file processes are continuously and reliably monitored. The solution is built with scalability and security in mind, supporting both on-premise and cloud-based deployments to suit diverse enterprise needs.

2. Architecture of IANN FileGPS

The IANN FileGPS System provides a comprehensive monitoring and alerting solution for file transfer operations across enterprise systems. It ensures timely delivery, transparency, and accountability of file movement by integrating with various source systems and presenting the data through a centralized server and intuitive user interface.

 

A screenshot of a computer AI-generated content may be incorrect.

Below is a breakdown of the end-to-end flow involved in the IANN FileGPS:

·       IANN FileGPS Client: The IANN FileGPS Client is responsible for capturing events from diverse enterprise sources such as databases, logging systems, applications, and APIs. Each event is transformed into a standardized, canonical JSON format to ensure consistency across the system. The client then transmits these events securely either via a REST Consumer API over HTTPS to the IANN FileGPS Server or by publishing them to a designated Apache Kafka topic. This flexible transmission mechanism supports both synchronous and asynchronous data flows, enabling real-time or near-real-time event ingestion based on deployment requirements.

·       Event Ingestion: The IANN FileGPS Server is designed to reliably ingest and persist event data received from the IANN FileGPS Client. When data is transmitted via the REST Consumer API, the server’s REST consumer component processes the incoming canonical JSON payloads and stores them directly into the underlying database. Alternatively, if Kafka is used for transmission, a dedicated Kafka consumer service on the server continuously reads from the configured topic, processes the event data, and commits it to the database. This dual-ingestion mechanism ensures flexibility and resilience in handling both synchronous and asynchronous event flows across diverse enterprise environments.

·       User Access & Web UI: The IANN FileGPS platform provides a secure and intuitive web interface accessible via Single Sign-On (SSO) with SAML 2.0 or through local authentication using JWT-based tokens. The system enforces robust Role-Based Access Control (RBAC) to ensure users have appropriate access based on their roles and responsibilities. Once authenticated, users can leverage powerful features such as real-time file search, interactive dashboards displaying active file events, SLA compliance status, configurable alerts, and comprehensive historical reporting. The platform is designed with enterprise-grade security, supporting session timeouts, token expiry, and full audit logging to meet compliance and governance requirements.

·       Alerting & Notifications: The Alerting & Notifications component of the IANN FileGPS platform provides real-time monitoring of critical file and transaction-related events, enabling timely detection and resolution of operational issues. It supports a robust framework of one-time, rule-based alerts, which are evaluated continuously based on system and user-defined conditions and  supports multiple alert types—SLA, FLA, FNR, TNR, TRA, and Subscription Alerts—with notifications dispatched via email, the IANN dashboard, and REST API callbacks to external systems like ServiceNow, PagerDuty, Slack, and Microsoft Teams.

·       Reporting & Audit Trail: The IANN FileGPS platform provides a robust and extensible Reporting capability that delivers actionable insights into both file and transaction-level activities. It offers a wide range of out-of-the-box reports to track SLA adherence, file lifecycle events, failure patterns, and system performance. Additionally, the platform empowers users to build custom reports by applying business-specific filters, data views, and logic tailored to operational needs. This comprehensive reporting layer enables stakeholders to monitor real-time operations, conduct historical analysis, identify trends, and support audit and compliance initiatives—making it a core enabler of data-driven decision-making within the enterprise.

3. IANN FileGPS – Linux Installation Guide

1. IANN FileGPS Pre-requisites

The following table lists the software, certificate, and configuration prerequisites necessary for the successful deployment of application. Each item includes the version required and guidance tailored for those unfamiliar with technical environments. All software listed is essential and must be installed before beginning the deployment.

1.1 Server Hardware Requirements

The following configurations are the Minium pre-requisites for the IANN FileGPS Server and Client.       

Server

OS

CPU (Cores)

RAM

Storage

Notes

IANN FileGPS Server

RHEL 9 / CentOS 9/

Windows Server 2019 / 2022

4 Cores

16 GB

200 GB

Hosts the application server services and APIs.

IANN FileGPS Reports Server

RHEL 9 / CentOS 9/

Windows Server 2019 / 2022

2 Cores

4 GB

200 GB

Runs Superset and other reporting/dashboard components.

PostgreSQL DB Server

RHEL 9 / CentOS 9/Windows Server 2019 / 2022

4 Cores

16 GB

500 GB (SSD recommended)

Hosts PostgreSQL v15.4+; use SSD for improved IOPS and performance.

Oracle DB Server

RHEL 9 / CentOS 9/Windows Server 2019 / 2022

4 Cores

16 GB

500 GB

Hosts Oracle 19c+ database; ensure client tools and JDBC driver are available.

Use the following commands on a Linux server to verify specs and compatibility:

ls cpu        # CPU info

free -h       # RAM info

df -h          # Disk usage

 

1.2 Server Software Requirements

Software / Certificate

Specific Version

Required

Installation Instructions / Notes

Java

IBM Semeru OpenJDK 17.0.8+7 (LTS)

Yes

Refer to the official Java Installation Setup Guide.

PostgreSQL

Version 15.4 or higher

Yes

 

(Either)

 

Download and install from the official PostgreSQL website or package manager.

Oracle Database

Version 19c or higher

Refer to the Oracle 19c Setup Guide for installation and configuration instructions.

Unzip Utility

Unzip v6.0

Yes

Install via command: sudo yum
install unzip -y

.pfx Certificate

Provided by Customer

Yes

Yes Used for secure HTTPS/API connections. Must be a valid, signed certificate integrated properly.

Ensure .pfx certificates are properly configured for both versions to enable secure HTTPS/API communication.

1.3 Port Requirements

·       8787 – IANN FileGPS UI
This port is used to serve the main web-based user interface of FileGPS. Users access the application via this port through their browser.

·       8086 – IANN FileGPS Rest Consumer
This port handles internal Rest Consumer services, including file processing, API execution, and interactions with the database.

·       5432 – PostgreSQL
The default port for PostgreSQL. It’s used by FileGPS server to connect and interact with the PostgreSQL database.

·       1521 – Oracle
The standard port for Oracle Database. If your deployment uses Oracle as the database, this port is used for database connectivity.

·       8088 – IANN FileGPS Reports Server
This port is used to host the FileGPS Reports Server, which includes tools like Superset for analytics and dashboard reporting.

1.4 Understanding the Application JAR and application.yml File

·       The JAR file (Java ARchive) is the compiled version of the FileGPS UI application. It contains the core functionality required to launch the user interface (UI) service.

·       When you launch the UI JAR, it automatically refers to a configuration file named application.yml. This file acts like a setup sheet for the application to understand how to connect to necessary services like databases, email (SMTP), security, and branding.

What you must provide in application.yml:

Configuration Item

Description

Port

The communication channel IANN FileGPS UI listens on. Default is 8787. Ensure your firewall allows access to this port.

.pfx File

A digital certificate file used for secure (HTTPS) communication. Must be available and referenced with its password.

Zone ID

The timezone must be consistently set across all IANN FileGPS components (client, server, DB) to ensure timestamp accuracy, e.g., America/Chicago.

SMTP Settings

Email service used for alerts and notifications.

DNS

Ensure that the IANN FileGPS server has a DNS (domain name) configured that maps to the PFX SSL certificate for proper UI access.

1.5 Database Parameters (PostgreSQL/Oracle)

Parameter

Description

Host

The server address (IP or domain name) where your database is hosted. Example: db-server.company.com

Port

The network port used to connect to the database. Use 5432 for PostgreSQL and 1521 for Oracle.

DB Type

Indicates the type of database being used (PostgreSQL or Oracle).

Username

Database account name (e.g., filegps_admin) with privileges to create and modify tables.

Password

Password for authentication.

Schema

Logical grouping of database tables. Example: filegps_schema.

Oracle JDBC URL Format

jdbc:oracle:thin:@//<host>:<port>/<service_name> – This format is used in application configuration files.

PostgreSQL JDBC URL

jdbc:postgresql://<host>:<port>/<database_name>

 

1.6 SMTP Configuration:

Parameter   

Description

Host

This is the address of the outgoing mail server (e.g., smtp.office365.com).

Port

Port used for email delivery. Commonly 587 for secure connections.

Username

Email account used for authentication. Example: alerts@yourdomain.com.

Password

Password or app-specific token for the email account.

From Address

The sender’s email that will appear in email alerts. Example: noreply@filegpsdomain.com.

Purpose

FileGPS uses this info to send email notifications for SLAs, job failures, alerts, User Interface, etc.

1.7 SAML Authentication (Single Sign-On) – If Used

·       If SAML-based Single Sign-On (SSO) is being used, the saml block in application.yml must be configured.

·       The saml block in application.yml enables SAML-based Single Sign-On (SSO) with Okta or other identity providers (IdPs). This allows users to log in using their corporate credentials.

 Key Elements:

·       sso-url: Redirects users to the IdP (Okta) for authentication.

·       sloUrl: Optional logout endpoint to sign users out from IdP.

·       app-slo: Application-level logout redirects URL.

·    metadata: Path to the local metadata XML file received from IdP. It contains certificates, issuer info, and endpoints.

·       registration-id: A unique identifier for the SAML config.

·       idp-groups-role-mapper: Maps identity provider user groups to application roles.

·       default-role: Role assigned if no mapping is found.

·       jwt.secret-key: Used to sign session tokens after authentication.

·       session-expire: Sets session timeout duration (in minutes).

·   signing.credentials: Specifies the private key and certificate used for signing SAML assertions.

·       singlelogout.response-url: Endpoint for SAML logout binding.

 

Logo:

·       Format: .png (Preferred resolution: 200×200 pixels)              

·       Usage: The logo is displayed in the IANN FileGPS UI header. Ensure the image is clear and appropriately sized for optimal appearance across the application.

 

Timezone:

·  IANN FileGPS must operate using a consistent standard timezone across all components. This is a critical factor to ensure uniformity in timestamps, logs, SLAs, user interface, and data processing.

·       All services (UI, server, scheduler, database) should follow the same Zone ID.

·       Example

zoneId: America/Chicago

 

 Log path:

·       Define the directory in your configuration files where logs should be stored.

·       Example:

/opt/filegps/logs

2. IANN FileGPS UI Deployment:

IANN FileGPS UI Deployment refers to the setup of the web-based user interface that allows users to securely view, monitor, and manage file events, alerts, and reports processed by the IANN FileGPS system. It is typically deployed on a web server and connects to server APIs and databases for real-time insights.

  Deployment Procedure – Linux

  Step 1: Login to the Server

·       Access the server where the deployment will take place.

·  Upload the downloaded package IANN_FileGPS_x_x_x.zip to the designated deployment server or platform.

  Step 2: Ensure unzip is Available

·       Verify that the unzip utility is installed:

CMD: unzip –version

 

Example Output: UnZip 6.00 of 20 April 2009, by Info-ZIP

·       If unzip is not installed, use the following command to install it:

sudo yum install unzip -y  # For RedHat/CentOS-based systems

(or)

sudo apt install unzip -y # For Ubuntu/Debian-based systems

  Step 3: Extract the Package

·       Unzip the package into the IANN FileGPS directory:

unzip IANN_FileGPS_x_x_x.zip



·       Set permissions for the extracted folder: 

chmod -R 755 IANN_FileGPS_x_x_x

 

·       Navigate to the directory:

cd IANN_FileGPS_x_x_x

  Step 4: Verify Contents

·       List the contents of the deployment folder:

ls



·       You should see these subfolders or files:

IANN_FileGPS_x_x_x/

├── IANN_FileGPS_UI/

├── IANN_FileGPS_Server/

├── IANN_FileGPS_Rest_Consumer/

└── filegps_application_start.sh

└── filegps_saml_application_start.sh

 


Step 5: Navigate to the UI Directory

·       cd UI

ls

     Expected files:

IANN_FileGPS_UI/

├── application.yml                  # Main configuration file

├── filegps-api-1.0.0.jar          # Java application binary

├── ssl/                                     # Contains SSL certificate files

├── logo/                                  # Contains branding logos

└── filegps_ui_start.sh              # Startup script for UI component

 

└──encryptor-1.0.0.jar    

        


Step 6: Prepare Branding and SSL

·       Upload SSL certificates into the ssl folder.

·       Upload the logo (.png) into the logo folder.


Step 7: Configure application.yml

The application.yml file holds key configurations for IANN FileGPS. Modify it based on your deployment environment.

 Open the file for editing:

vi application.yml

             Press i to enter insert mode.

            General Settings:

·       Activating the IANN FileGPS License

·       To accept the license, update the accept-license parameter in application.yml

·       Set the parameter value to true and save application.yml to accept the license.

accept-license: true



·       Encrypting the password in application.yaml

·       Encrypt the password using the following command

java -jar encryptor-1.0.0.jar <Sting to be encrypted>

For example:

·       Cmd:

java -jar encryptor-1.0.0.jar <Password>



·       Outputs:

Encrypted Password: cKtfzpIvwNdvHP+8QdHYiQ==

 

·       Set the fgks parameter value to the encrypted password in application.yml.

·       example:

fgks: ENC (cKtfzpIvwNdvHP+8QdHYiQ==)


Update the following values:

·       Server port (e.g., 8787) – If port 8787 is already in use by another Application, configure a different available port to avoid conflicts.

·       SSL settings:

ssl:

     enabled: true

     key-store:/<install_dir>/IANN_FileGPS_x_x_x/IANN_FileGPS_UI/ssl/keystore-

     new.p12

     key-store-password: MyCustomP@ss123

     key-store-type: PKCS12

 

            Key Store Explanation:

1.    key-store: Absolute path to your SSL certificate file.

2.    key-store-password: Provided during certificate creation.

3.    key-store-type: Usually PKCS12, a format for storing cryptographic keys.

Enable Liquibase for Schema Management:

spring:

   liquibase:

enabled: true

 


Liquibase helps automate DB schema changes. Ensure this is set to true to

apply DB updates automatically.

Database Configuration

·       Postgres Example:

spring:

  datasource:

    type: com.zaxxer.hikari.HikariDataSource

    url: jdbc:postgresql://<POSTGRES_HOST>:5432/postgres?=<schema_name>

    username: <postgres_username>

    fgks: ENC (Encrypted_password)

    driver-class-name: org.postgresql.Driver

    hikari:

      connection-timeout: 30000

      minimum-idle: 10

      maximum-pool-size: 20

      idle-timeout: 600000

      max-lifetime: 1800000

 

What to Update:

·       <POSTGRES_HOST>: Hostname or IP of the PostgreSQL server

·       <schema_name>: The schema you are connecting to

·       <postgres_username>: PostgreSQL user

·       <postgres_password>: PostgreSQL user password

·       Oracle Example:

spring:

  datasource:

    type: com.zaxxer.hikari.HikariDataSource

    url:  jdbc:oracle:thin:@//<ORACLE_HOST>:1521/<service_name>

    username: <oracle_username>

    fgks: ENC (Encrypted_password)

    driver-class-name: oracle.jdbc.OracleDriver

    hikari:

      connection-timeout: 30000

      minimum-idle: 5

      maximum-pool-size: 10

      idle-timeout: 600000

      max-lifetime: 1800000

      auto-commit: false

 

Update the following placeholders:

1.    <ORACLE_HOST>: Hostname or IP of the Oracle DB server

2.    <service_name>: Oracle service name

3.    <oracle_username> / <oracle_password>: Valid Oracle DB credentials

SMTP Settings for Email Notifications:

mail:

    host: example-us-east-1.amazonaws.com

    port: 509

    username: smtp-user@example.com

    fgks: ENC (Encrypted_password)

    from: noreply@yourdomain.com

    app-contact-mail: support@yourdomain.com

    mail-signature: FileGPS Support Team

    properties:

      mail:

        smtp:

          auth: true

          starttls:

            enable: true

          ssl:

            trust: “*”

      Ensure correct username, fgks (SMTP Encrypted password), and from   address.

      These settings control notification emails.

Timezone Configuration:

timezone:

  enabled: true

  zoneId: America/Chicago

All services (UI, server, scheduler, database) should follow the same Zone ID.

Save and Exit:

·       Press ESC, then type: wq! and press Enter to save and exit the editor

3. IANN FileGPS Server deployment (Linux)

This section outlines the standardized procedure to deploy the IANN FileGPS server. This is the next step after completing the UI deployment.

Encrypting Password for Secure Configuration for Server and Rest Consumer

To securely encrypt your password for use in the config.ini:

·      Navigate to the encryption utility:

cd <install_dir>/IANN_FileGPS_x_x_x/IANN_FileGPS_Server/bin/encrypt/

 

·   Run the encrypt script

 

./encrypt

·      Enter the password

 

Enter plaintext to encrypt: password   <—    #Give your plain text password

·      The encrypted output will be displayed:

 

Encrypted text: PaoI6u65rRQiLo0ctAykhWsqMMb7zYyKrz3zOSDCHLE=

            ·      Copy the encrypted value and update the configuration:

password = <encrypted_password>

 🛈 If authentication is enabled, ensure this encrypted value is used in place of the plain password inside your config file.

·      Once the IANN FileGPS release package is extracted, the structure will look like:

IANN_IANN_FileGPS_x_x_x/

├── IANN_FileGPS_UI/

├── IANN_FileGPS_Server/

├── IANN_FileGPS_Rest_Consumer/

└── filegps_application_start.sh

└── filegps_saml_application_start.sh

 

We now begin the Server setup by navigating into the Server folder.

Step 1: Navigate to the Server Directory

cd <Install_dir>/IANN_FileGPS_x_x_x/IANN_FileGPS_Server/

·       Replace <Install_dir> with the actual server path where the zip was extracted (e.g., /opt, /var, etc.). Avoid hardcoding home—this allows flexibility based on server preferences.

 

Step 2: File Structure Overview

·      Inside the Server/ folder, you should see: 

IANN_FileGPS_Server/

├── bin/             # Core server binaries or executables

├── config/       # Configuration files (config.ini ,schedulers.sql)

├── logs/           # Logs generated during server execution

└── scripts/      # Shell scripts to trigger server jobs

Step 3: Configuration Setup

cd config

vi config.ini

 

 

·      Step 1: Open config.ini

·     Step 2: Update Essential Fields 

·      Time Zone Configuration

timezone = America/Chicago

 All services (UI, server, scheduler, database) should follow the same Zone ID.         

·      Log Path 

logs_path = <absolute_path_to_logs>

·      Scheduler SQL Path

[queries]

path = <full_path_to>/IANN_FileGPS_Server/config/schedulers.sql

·      This tells the system where to pick up job scheduling data.

·       SMTP Settings that are required to send alert and error notifications via email.

 

smtp_host = smtp.yourdomain.com

smtp_port = 587

from_email = noreply@yourdomain.com

to_email = admin@yourdomain.com

email_authentication = true

username = your_smtp_username

password = <encrypted_password>

 🛈 If authentication is enabled, the password should be securely encrypted and    placed in the password field.        

Step 4: Configure Database Connections

·    All schema names in the config must match what is configured in your application (e.g., application.yml).

·       Update config.ini with PostgreSQL, Oracle, and their purged database details:

·       PostgreSQL (Primary)

 

[postgres_db]

host =
db-test -1.rds.amazonaws.com

port = 5432

database = <
database_name>

username
=  < database _username>

password =
<encrypted_password>

schema =
Example_poc

driver_name
= postgresql

connection_type
= cursor

  …

 

·       PostgreSQL (Purged)

      This database is used to archive older data as part of the retention policy process.

[postgres_purged_db]

host = <host>

port = 5432

database = < database_name>

purged_schema = test_db

username =  < database _username>

password = <encrypted_password>

 …

·      Oracle DB (if used)

[oracle_db]

host = <host>

port = 1521

database = ORCL

schema = <schema_name>

username = <username_of_DB>

password =
<encrypted_password>

·       Oracle Purged DB

[oracle_purged_db]

host = <host>

port = 1521

database = ORCL

purged_schema = <
purged_schema_name>

username = <
username_of_DB >

password =
<encrypted_password>

·       Ensure encrypted credentials and accurate schema names are used.

 

Step 5: Save Changes

To save and exit vi editor:

·       Press ESC

·       Type :wq!

·       Press Enter

 

Step 6: Load Scheduled Jobs

A default job scheduler setup is provided in schedulers.sql.

Step 1: Edit schedulers.sql

vi
schedulers.sql

Step 2: Set Schema to Match Application Configuration

INSERT INTO <schema_name>.petpe_schedulers

Change:

Step 3: Save the File After editing, save the file using your editor

:wq!

                    

4. IANN FileGPS Rest Consumer Deployment (Linux)

This section outlines the standardized steps to deploy the IANN FileGPS Rest Consumer Service. It includes all configuration requirements and connection settings for PostgreSQL, Oracle and other databases.

4.1 Deployment Steps for IANN FileGPS Rest Consumer

Step 1: Navigate to Rest Consumer Directory

cd <path_to_extracted>/IANN_FileGPS_x_x_x/IANN_FileGPS_Rest_Consumer/

  

Step 2: Verify File Structure

·       Run ls to ensure the correct files and folders are present:

·       Expected output:

IANN_FileGPS_Rest_Consumer/

config.ini                  # Configuration file

rest_consumer        # Binary to start the service

logs/                          # Directory to store logs

Step 3: Edit config.ini

vi config.ini

·       Open the configuration file for editing:

·       Press i to enter insert mode.

·       Required Config Sections

[filegps]

zoneid = America/Chicago   # Set
the Zone ID

·       All services (UI, server, scheduler, database) should follow the same Zone ID.

·      [authentication]

[authentication]

auth_type = basic

username = <your_username>

password = <your_encrypted_password>

path = <absolute_path_to_ssl_certificate.pem>

cert_password = <your_cert_password>

use_ssl = true

use_ssl_password = false

              ·      [logs]

[logs]

path = <absolute_path_to_logs_directory>

·       Example: /opt/filegps/logs/rest_consumer/ 

·      [rest_consumer_network]

[rest_consumer_network]

host = 0.0.0.0

port = <your_port_number>

                  Example: 8086  

If port 8086 is already being used by another Application, make sure to
configure a different available port.

·       [postgres_db]

 

[postgres_db]

database = <your_database>

host = <your_db_host>

username = <your_db_username>

password = <your_encrypted_password>

schema = <schema_used_in_application_config>

port = 5432

driver_name = postgresql

chunksize = 5000

step_table_name = step_events_data

order_table_name = order_events_data

table_name = queue_depth_alert

uncorrelated_table_name = uncorrelated_events_data

connection_type = cursor

·      [oracle_db] (Optional – if Oracle is used)

 

[oracle_db]

driver_name = oracle

host = <your_oracle_host>

port = 1521

database = <your_oracle_service_name>

username = <your_oracle_username>

password = <your_encrypted_password>

schema = <your_oracle_schema>

connection_type = cursor

step_table_name = step_events_data

order_table_name = order_events_data

queue_table_name = queue_depth_data

table_name = queue_depth_alert

petpe_all_alerts_table_name = petpe_all_alerts

Step 4: Save and Exit

·       Press ESC

·       Type :wq! and press Enter to save the file and exit.

5. Start IANN FileGPS Application & Verify Logs

This section outlines how to launch the complete IANN FileGPS platform using the provided shell script and verify if the UI, Server, and Rest Consumer are running successfully. It also covers inserting scheduler configurations essential for server job execution.

Step 1: Navigate to FileGPS Root Directory

·       After completing configuration of all components (UI, Server, Rest Consumer):

cd <Install_dir>/IANN_FileGPS_x_x_x/




·       Replace <Install_dir> with the actual path where FileGPS was extracted on your server.

 

Step 2: Run the Startup Shell Script

·       To start the entire FileGPS application (UI + Server + Rest Consumer): 

             ·       To launch the application with standard login  run:

./filegps_application_script.sh  <Install_dir>/IANN_FileGPS_x_x_x

              ·       If you want to deploy using SAML configuration, use:

./filegps_saml_application_script.sh  <Install_dir>/IANN_FileGPS_x_x_x

Step 3: Verify Each FileGPS Component

cd <Install_dir>/IANN_FileGPS_x_x_x/IANN_FileGPS_UI



·       UI Verification

tail -f file-gps-api.log



·       Successful UI logs will show API endpoints loading and initialization confirmation.

·       Server Verification

 

cd <Install_dir>/IANN_FileGPS_x_x_x/ IANN_FileGPS_Server/logs/

ls

You should see logs like retention_policy.log, event_correlation.log, etc., indicating server processing has started.           

·       Rest Consumer Verification

cd <Install_dir>/IANN_FileGPS_x_x_x/IANN_FileGPS_Rest_Consumer/logs/

 

tail -f rest_consumer.log

·       Logs will confirm whether the consumer service has started, DB connection was successful, and queue/transaction messages are being processed.

 

Step 5: Verify Scheduler Configuration

To verify whether the scheduler jobs have been successfully inserted

·       Connect to the PostgreSQL DB using a client like psql, DBeaver, or pgAdmin

·       Run the following query (replace <schema> with the schema name in your config.ini):

SELECT * FROM <schema>.petpe_schedulers;

·       You should see rows for:  

        RETENTION_POLICY        

         QDA_SI

         QDA_MQ

         UPDATE_CONTEXT

         AGENT_DOWN_ALERT

         TNR_GROUP

        SLA

       FNR_GROUP

       FLA_GROUP

      TNR

      FNR                        

      FLA

     EVENTS_CORRELATION

     CALCULATE_SLA

     CALCULATE_TRANSACTION_SLA

     SUB

     SUB_GROUP

     TRANSACTION_DURATION

     TRA

     TRA_GROUP

·       Oracle: Use SQL Developer or sqlplus to connect

             Query the scheduler table:

SELECT * FROM <SCHEMA>.PETPE_SCHEDULERS;

     Confirm all expected job names and metadata are present.

·       Final Confirmation – Verify the successful deployment

·       After verifying:

·       UI is running and showing success logs

·       Server logs indicate job processing is active.

·       Rest Consumer is consuming and logging data

·       Schedulers are correctly inserted into DB

·       Congratulations! You have successfully deployed and verified the IANN FileGPS platform, including:

IANN_FileGPS_UI

IANN_FileGPS_Server

IANN_FileGPS_Rest_Consumer

Scheduler Configuration

6. IANN FileGPS Client Server Deployment

This
section guides you through installing and configuring the IANN FileGPS Client (vx.x.x). The client is responsible for reading source data from supported databases (e.g., Oracle, DB2, MySQL) and delivering the extracted information to the FileGPS using APIs or Kafka.

6.1 System and Software Requirements

Ensure the client machine meets the following prerequisites:

Server

OS

CPU
(Cores)

RAM

Storage

 Software

FileGPS  Client Server

RHEL 9 / CentOS 9/

Windows Server 2019 / 2022

4 Cores

16 GB

200 GB

Java (IBM
Semeru OpenJDK 17.0.8+7 (LTS)
)

6.2 Installation Steps

Step 1: Unzip the Client Package

Extract the delivered client package:

 You should see files like:

 

filegps_client

filegps_client_config.ini

start_filegps_client.sh

6.3. Configuration – filegps_client_config.ini

·       This file controls all input, output, and system settings for the client.

 

Input Section

·       Set the number of input sources you are reading data from:

 

·       Important:

·      If no_of_inputs = 3, then [input1], [input2], and [input3] blocks must be present and correctly defined.

·       [input1]

[input1]                                     

SELECT

    SEQID,

    CASE WHEN
TYPEOFTRANSFER IS NULL THEN ” ELSE TYPEOFTRANSFER END AS TYPE_OF_TRANSFER,

   
SRCPROTOCOL,

   
DESTPROTOCOL,

   
APPLICATION,

   
SUBSTR(FILEARRIVED , 1, 10) || ‘T’ || REPLACE(SUBSTR(FILEARRIVED , 12,
8), ‘.’, ‘:’) || SUBSTR(FILEARRIVED , 20, 4) || ‘-0500’ AS occurred,

   
FILEARRIVED,

    CASE WHEN
FLOWINOUT IS NULL THEN ” ELSE FLOWINOUT END AS direction,

    CASE WHEN
SRCFILENAME IS NULL THEN ” ELSE SRCFILENAME END AS localfilename,

    CASE WHEN
DESTFILENAME IS NULL THEN ” ELSE DESTFILENAME END AS remotefilename,

    CASE WHEN
PARTNER IS NULL THEN ” ELSE PARTNER END AS clientname,

    CASE WHEN
PARTNER IS NULL THEN ” ELSE PARTNER END AS clientid,

    CASE WHEN
DOCTRANS IS NULL THEN ” ELSE DOCTRANS END AS transaction,

   
‘PCM/client’ AS nodeid,

    CASE WHEN
ADVERRORSTATUS IS NULL THEN ” ELSE ADVERRORSTATUS END AS errorinfo,

    CASE WHEN
ERRORSTATUS IS NULL THEN ” ELSE ERRORSTATUS END AS errortype,

    CASE WHEN
STATUS IS NULL THEN ” ELSE STATUS END AS STATUS,

    ‘PCM’ AS
appId,

    ‘Start’ AS
msgTxt,

    CASE WHEN
COREBPID IS NULL THEN ” ELSE COREBPID END AS processid,

    CASE WHEN
COREBPID IS NULL THEN ‘EMPTY’ ELSE COREBPID END AS co_relation_id,

    CASE WHEN
SRCARCFILELOC IS NULL THEN ” ELSE SRCARCFILELOC END AS local_arc_file_loc,

    CASE WHEN
DESTARCFILELOC IS NULL THEN ” ELSE DESTARCFILELOC END AS
remote_arc_file_loc,

    CASE WHEN
DBMS_LOB.SUBSTR(CORRELATION_VALUE_3) IS NULL THEN ” ELSE
DBMS_LOB.SUBSTR(CORRELATION_VALUE_3) END AS error_arc_file_loc,

    CASE WHEN
DBMS_LOB.SUBSTR(CORRELATION_VALUE_1) IS NULL THEN ” ELSE
DBMS_LOB.SUBSTR(CORRELATION_VALUE_1) END AS po_number,

    CASE WHEN
GS_CTL IS NULL THEN ” ELSE GS_CTL END AS gs_control_number,

    CASE WHEN
SENDERID IS NULL THEN ” ELSE SENDERID END AS sender_id,

    CASE WHEN
RECIVERID IS NULL THEN ” ELSE RECIVERID END AS receiver_id,

    CASE WHEN
SRC_FILE_SIZE IS NOT NULL THEN SRC_FILE_SIZE ELSE NULL END AS file_size

FROM

   
<schema_name>.PETPE_TRANSFERINFO pt

WHERE

   
FILEARRIVED > TIMESTAMP ‘sql_last_value’

ORDER BY

   
FILEARRIVED ASC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

·      [input2]

 

[input2]

SELECT

    SEQID,

    CASE WHEN
TYPEOFTRANSFER IS NULL THEN ” ELSE TYPEOFTRANSFER END AS TYPE_OF_TRANSFER,

   
SRCPROTOCOL,

   
DESTPROTOCOL,

   
APPLICATION,

   
SUBSTR(FILEARRIVED , 1, 10) || ‘T’ || REPLACE(SUBSTR(FILEARRIVED , 12,
8), ‘.’, ‘:’) || SUBSTR(FILEARRIVED , 20, 4) || ‘-0500’ AS occurred,

   
FILEARRIVED,

    CASE WHEN
FLOWINOUT IS NULL THEN ” ELSE FLOWINOUT END AS direction,

    CASE WHEN
SRCFILENAME IS NULL THEN ” ELSE SRCFILENAME END AS localfilename,

    CASE WHEN
DESTFILENAME IS NULL THEN ” ELSE DESTFILENAME END AS remotefilename,

    CASE WHEN
PARTNER IS NULL THEN ” ELSE PARTNER END AS clientname,

    CASE WHEN
PARTNER IS NULL THEN ” ELSE PARTNER END AS clientid,

    CASE WHEN
DOCTRANS IS NULL THEN ” ELSE DOCTRANS END AS transaction,

   
‘client/client’ AS nodeid,

    CASE WHEN
ADVERRORSTATUS IS NULL THEN ” ELSE ADVERRORSTATUS END AS errorinfo,

    CASE WHEN
ERRORSTATUS IS NULL THEN ” ELSE ERRORSTATUS END AS errortype,

    CASE WHEN
STATUS IS NULL THEN ” ELSE STATUS END AS STATUS,

    ‘PCM’ AS
appId,

    RTRIM(CASE
WHEN STATUS = ‘Success’ THEN ‘Stop’ WHEN STATUS = ‘Failed’ THEN ‘Error’ END)
AS msgTxt,

    CASE WHEN
COREBPID IS NULL THEN ” ELSE COREBPID END AS processid,

    CASE WHEN
COREBPID IS NULL THEN ‘EMPTY’ ELSE COREBPID END AS co_relation_id,

    CASE WHEN
SRCARCFILELOC IS NULL THEN ” ELSE SRCARCFILELOC END AS local_arc_file_loc,

    CASE WHEN
DESTARCFILELOC IS NULL THEN ” ELSE DESTARCFILELOC END AS
remote_arc_file_loc,

    CASE WHEN
DBMS_LOB.SUBSTR(CORRELATION_VALUE_3) IS NULL THEN ” ELSE
DBMS_LOB.SUBSTR(CORRELATION_VALUE_3) END AS error_arc_file_loc,

    CASE WHEN
GS_CTL IS NULL THEN ” ELSE GS_CTL END AS gs_control_number,

    CASE WHEN
DBMS_LOB.SUBSTR(CORRELATION_VALUE_1) IS NULL THEN ” ELSE
DBMS_LOB.SUBSTR(CORRELATION_VALUE_1) END AS po_number,

    CASE WHEN
SENDERID IS NULL THEN ” ELSE SENDERID END AS sender_id,

    CASE WHEN
RECIVERID IS NULL THEN ” ELSE RECIVERID END AS receiver_id,

    CASE WHEN
STATUS = ‘Success’ THEN DEST_FILE_SIZE WHEN STATUS = ‘Failed’ THEN NULL END
AS DEST_FILE_SIZE

FROM

   
<schema_name>.PETPE_TRANSFERINFO pt

WHERE

   
FILEARRIVED > TIMESTAMP ‘sql_last_value’

ORDER BY

   
FILEARRIVED ASC

            ·       [input3]

 

[input3]

SELECT

    BPID AS
processid,

    CASE WHEN
RULENAME IS NULL THEN ‘ ‘ ELSE RULENAME END AS RULENAME,

    CASE WHEN
BPNAME IS NULL THEN ‘ ‘ ELSE BPNAME END AS BPNAME,

    CASE WHEN
DETAILS IS NULL THEN ‘ ‘ ELSE DETAILS END AS DETAILS,

   
“SEQUENCE”,

   
ACTIVITY_DT,

   
ACTIVITY_DT AS occurred,

    CASE WHEN
ACTIVITY_BY IS NULL THEN ‘ ‘ ELSE ACTIVITY_BY END AS ACTIVITY_BY,

    CASE WHEN
ACT_NAME IS NULL THEN ‘ ‘ ELSE ACT_NAME END AS ACT_NAME,

    ‘Step’ AS
msgTxt,

   
‘client/PCM’ AS nodeid

FROM

   
<schema_name>.PETPE_TRANSINFOD pt

WHERE

   
ACTIVITY_DT IS NOT NULL

    AND
ACTIVITY_DT > TIMESTAMP ‘sql_last_value’

ORDER BY

   
ACTIVITY_DT, “SEQUENCE” ASC

Output Section

·      Define where the data should be pushed after
processing:

[outputs]

no_of_outputs = 1  # Match with
the number of defined [outputX] blocks

·       [output1] – API Output (Example)

[output1]

output_type = api

auth_type = basic_auth

api_url =
http://<rest_consumer_host>:8086/api/ingest

api_username = your_user

api_password = your_encrypted_password

path = /opt/client_outputs/

file_name = restapi_data

timeout = 60

batch_size = 1000

6.4 Startup Script

·       Navigate to the client directory:

cd /path/to/IANN_FileGPS_Client_x_x_x/



·       Create a startup script file:

vi filegps_smart_client_start.sh

·       Press i to enter insert mode and paste the following line:

nohup./filegps_smart_client/filegps_smart_client
filegps_smart_client_config.ini &

 

type :wq 



·       Press Esc,

·       Hit Enter to save and exit.

 

·       Grant execute permission to the script:

chmod 755 filegps_smart_client_start.sh

·       Start the IANN FileGPS Client:

./filegps_smart_client_start.sh

6.5 Stopping the Client

·       To find the process:

ps -ef | grep -i filegps_smart_client

              ·       Then stop the client using one of the following:

kill -9 <PID>

OR

pkill -f filegps_smart_client

6.6 Restarting the Client

·       If the client stops unexpectedly, you can resume its operation using:

./filegps_smart_client_start.sh

·       If the client wants to fetch data starting from a specific date:

ls -lrta

                  Check for the .sql_last_value file:

rm.sql_last_value

 

·       Delete the last value file:

·       Update the days_to_load in the config:

vi
filegps_smart_client_config.ini

·      Edit:

[backup_days]

days_to_load
= <number_of_days>

·       Restart the client:

./filegps_smart_client_start.sh

CREATE INDEX IDX_ORDER_EVENTS_TIMESTAMP

ON FILEGPS_SCHEMA.ORDER_EVENTS_DATA (OCCURRED);

7. Indexing Purpose:

Indexing is used to optimize query performance on large transactional tables such as order_events_data, step_events_data, and queue_depth_alert.

Applicable Versions:

        ·       6.3.3.1: PostgreSQL only

        ·       6.4.0 and above: PostgreSQL and Oracle supported

 

PostgreSQL Example

CREATE INDEX idx_order_events_timestamp

ON filegps_schema.order_events_data (timestamp);

To check existing indexes

SELECT indexname, indexdef

FROM pg_indexes

WHERE tablename = ‘order_events_data’;

Oracle Example (6.4.0):

CREATE INDEX IDX_ORDER_EVENTS_TIMESTAMP

ON FILEGPS_SCHEMA.ORDER_EVENTS_DATA (OCCURRED);

 

·       Ensure all schema names used in the indexing statements are consistent with those configured in application.yml and config.ini.

For Oracle (v6.4.0+), syntax should follow standard Oracle conventions.

8. Known Issues

Component

Version Affected

Description

Resolution

PostgreSQL-only setups

v6.3.3.1

Oracle configurations not applicable or supported

Use only PostgreSQL for 6.3.3.1

Port Conflicts (8787, 8086)

All versions

Conflicts with existing services on default ports

Update port values in application.yml and config.ini

Timezone mismatch

All versions

Inconsistent timestamps due to differing zoneId configs

Set unified zoneId across all components

Missing encrypted credentials

All versions

System fails to start due to plain text passwords in config files

Use encryption utility (encryptor-1.0.0.jar) as documented

SSL Certificate not mapped

All versions

HTTPS access fails if .pfx or .pem is missing or misconfigured

Verify correct paths and passwords in application.yml

 

9. Troubleshooting Guidance

Issue

Step-by-Step Guidance

UI not starting

Check “tail -f file-gps-api.log for port binding or license acceptance errors

Server not executing scheduled jobs

Validate scheduler load in DB via: SELECT * FROM <schema>.petpe_schedulers;

Rest Consumer not consuming data

Tail logs: tail -f rest_consumer.log

Client not sending data

Confirm .sql_last_value file exists; if not, recreate or update days_to_load

Email notifications not sent

 

Check SMTP section in application.yml or config.ini;

validate authentication creds.