This is an automated email from the ASF dual-hosted git repository.

yasith pushed a commit to branch feat/grpc-armeria-migration
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit 665c80811b57ccf1f3926c2a298d36799d9abf1a
Author: yasithdev <[email protected]>
AuthorDate: Wed Apr 1 14:57:23 2026 -0400

    docs: update all documentation and config to reflect Armeria/gRPC 
architecture
    
    - Remove all Thrift references (ports 8930/18889/19900, thrift_client_pool,
      Thrift installation in ansible common role)
    - Update api_server_port to 9090 across all ansible inventories and role 
defaults
    - Update agent scripts to use port 9090 instead of 19900
    - Remove Thrift client pool properties from all J2 templates (no longer 
used)
    - Update README module structure to include compute-service, 
storage-service,
      credential-service and remove non-existent file-server submodule
    - Update research-service README to reflect embedded-in-unified-server 
reality
    - Update docker-startup.sh to reference Armeria instead of Thrift
    - Remove Thrift build dependencies (bison, flex, libboost, etc.) from 
ansible
---
 README.md                                          |  9 ++++-
 airavata-agent/agent.sh                            |  2 +-
 airavata-agent/application/namd.sh                 |  2 +-
 airavata-api/research-service/README.md            | 24 +++++------
 .../inventories/dev/group_vars/all/vars.yml        |  8 +---
 .../scigap/develop/group_vars/all/vars.yml         |  6 +--
 .../scigap/production/group_vars/all/vars.yml      |  6 +--
 .../scigap/staging/group_vars/all/vars.yml         |  6 +--
 .../scigap/testing/group_vars/all/vars.yml         |  2 +-
 .../inventories/staging/group_vars/all/vars.yml    |  2 +-
 .../inventories/standalone/group_vars/all/vars.yml |  2 +-
 .../inventories/template/group_vars/all/vars.yml   |  2 +-
 .../template/group_vars/all/vars.yml.example       |  2 +-
 .../template/group_vars/all/vault.yml.example      |  2 +-
 .../roles/airavata_services/defaults/main.yml      | 11 +++--
 .../airavata_services/tasks/start_services.yml     |  2 +-
 .../airavata_services/tasks/stop_services.yml      |  8 +---
 .../templates/airavata-server.properties.j2        |  5 +--
 dev-tools/ansible/roles/api-orch/defaults/main.yml | 10 ++---
 .../templates/airavata-server.properties.j2        |  5 +--
 dev-tools/ansible/roles/common/tasks/main.yml      | 47 ----------------------
 .../ansible/roles/helix_setup/defaults/main.yml    |  4 +-
 .../parser-wm/airavata-server.properties.j2        |  5 +--
 .../participant/airavata-server.properties.j2      |  5 +--
 .../post-wm/airavata-server.properties.j2          |  5 +--
 .../templates/pre-wm/airavata-server.properties.j2 |  5 +--
 .../ansible/roles/job_monitor/defaults/main.yml    |  4 +-
 .../email-monitor/airavata-server.properties.j2    |  5 +--
 dev-tools/ansible/roles/pga/defaults/main.yml      |  4 +-
 dev-tools/deployment-scripts/docker-startup.sh     | 10 ++---
 30 files changed, 66 insertions(+), 144 deletions(-)

diff --git a/README.md b/README.md
index 7021671b8b..f57c786da2 100644
--- a/README.md
+++ b/README.md
@@ -171,10 +171,17 @@ The following services are embedded in the unified server 
(not run separately):
 
 | Service | Module | Purpose |
 |---------|--------|---------|
-| **File Server** | `airavata-api/file-server` | SFTP wrapper for secure 
storage access |
 | **Agent Service** | `airavata-api/agent-service` | Backend for interactive 
jobs via bidirectional gRPC |
 | **Research Service** | `airavata-api/research-service` | Research catalog 
API (notebooks, datasets, models) |
 
+Additional service modules in `airavata-api/`:
+
+| Module | Purpose |
+|--------|---------|
+| `compute-service` | HPC resource catalog, resource profiles |
+| `storage-service` | Data products, file service, storage resources |
+| `credential-service` | SSH keys, passwords, credential store |
+
 
 ## 🏗️ Getting Started
 
diff --git a/airavata-agent/agent.sh b/airavata-agent/agent.sh
index 23b7a10c86..c7599f7776 100755
--- a/airavata-agent/agent.sh
+++ b/airavata-agent/agent.sh
@@ -116,4 +116,4 @@ export TMPDIR=$CS_HOME/scratch/tmp
 export PATH=$PWD:$PATH
 
 # run agent
-airavata-agent --server "$SERVER:19900" --agent "$AGENT" --environ "$ENVIRON" 
--lib "$LIBRARIES" --pip "$PIP"
+airavata-agent --server "$SERVER:9090" --agent "$AGENT" --environ "$ENVIRON" 
--lib "$LIBRARIES" --pip "$PIP"
diff --git a/airavata-agent/application/namd.sh 
b/airavata-agent/application/namd.sh
index 240cc2ad10..8ad9476bad 100644
--- a/airavata-agent/application/namd.sh
+++ b/airavata-agent/application/namd.sh
@@ -94,7 +94,7 @@ wget -q 
https://github.com/cyber-shuttle/binaries/releases/download/1.0.1/airava
 wget -q 
https://github.com/cyber-shuttle/binaries/releases/download/1.0.1/kernel.py -O 
$WORKDIR/kernel.py
 wget -q 
https://github.com/mamba-org/micromamba-releases/releases/download/2.3.0-1/micromamba-linux-64
 -O $WORKDIR/micromamba
 chmod +x $WORKDIR/airavata-agent $WORKDIR/micromamba
-$WORKDIR/airavata-agent --server "$AGENT_SERVER:19900" --agent "$AGENT_ID" 
--environ "$AGENT_ID" --lib "" --pip "" &
+$WORKDIR/airavata-agent --server "$AGENT_SERVER:9090" --agent "$AGENT_ID" 
--environ "$AGENT_ID" --lib "" --pip "" &
 AGENT_PID=$!
 trap 'kill -TERM $AGENT_PID' EXIT
 echo "Agent started with PID $AGENT_PID"
diff --git a/airavata-api/research-service/README.md 
b/airavata-api/research-service/README.md
index 79c587882c..d2c29672dd 100644
--- a/airavata-api/research-service/README.md
+++ b/airavata-api/research-service/README.md
@@ -17,24 +17,18 @@
     under the License.
 -->
 
-# Research Service Application
+# Research Service
 
-This Spring Boot application supports different profiles for running in 
production vs development mode. In production mode, a security filter enforces 
authentication. In development mode, the security filter is bypassed for easier 
local testing.
+The Research Service provides the research catalog API (notebooks, datasets, 
models). It is embedded in the unified Airavata server and is not run as a 
standalone application.
 
-## Running in Development Mode
+## Development
 
-### Using Maven
+The research service is started automatically as part of the unified server 
(`airavata-server`). Use `tilt up` from the repo root to start the full 
development stack, which includes the research service on port 9090 alongside 
all other services.
 
-```bash
-mvn spring-boot:run -Dspring-boot.run.profiles=dev
-```
+## Profiles
 
-### Using IntelliJ IDEA
+The service supports Spring Boot profiles:
+- **default (production)**: Security filter enforces authentication
+- **dev**: Security filter is bypassed for easier local testing
 
-1. Go to Run > Edit Configurations.
-2. Select your Spring Boot run configuration
-3. In the Program arguments field, add:
-
-```bash
---spring.profiles.active=dev
-```
+When running via the unified server, the active profile is controlled by the 
server's `application.yml` configuration.
diff --git a/dev-tools/ansible/inventories/dev/group_vars/all/vars.yml 
b/dev-tools/ansible/inventories/dev/group_vars/all/vars.yml
index 5e3b1ed174..713de8a490 100644
--- a/dev-tools/ansible/inventories/dev/group_vars/all/vars.yml
+++ b/dev-tools/ansible/inventories/dev/group_vars/all/vars.yml
@@ -20,12 +20,8 @@ group: "{{ deploy_user }}"
 user_home: "/home/{{ user }}"
 
 # Service ports
-api_server_port: 8930
-api_server_tls_port: 9930
-agent_service_port: 18880
-research_service_port: 18899
-file_server_port: 8050
-restproxy_port: 8082
+# Armeria serves gRPC + REST (HTTP/JSON transcoding) on a single port
+api_server_port: 9090
 
 # Database name (single database)
 db_name: "airavata"
diff --git 
a/dev-tools/ansible/inventories/scigap/develop/group_vars/all/vars.yml 
b/dev-tools/ansible/inventories/scigap/develop/group_vars/all/vars.yml
index 8a576296d5..7fcb558e24 100644
--- a/dev-tools/ansible/inventories/scigap/develop/group_vars/all/vars.yml
+++ b/dev-tools/ansible/inventories/scigap/develop/group_vars/all/vars.yml
@@ -70,7 +70,7 @@ zookeeper_connection_url: "{{ groups['zookeeper'][0] }}:{{ 
zookeeper_client_port
 # API Server related variables
 api_server_name: "apiserver-node0"
 api_server_host: "{{ groups['api-orch'][0] }}"
-api_server_port: "8930"
+api_server_port: "9090"
 api_server_public_hostname: "apidev.scigap.org"
 api_secured: "true"
 tls_enable: "false"
@@ -172,8 +172,8 @@ parser_broker_consumer_group: "ParsingConsumer"
 parser_storage_resource_id: 
"pgadev.scigap.org_7ddf28fd-d503-4ff8-bbc5-3279a7c3b99e"
 parser_broker_publisher_id: "ParserProducer"
 
-thrift_client_pool_abandoned_removal_enabled: true
-thrift_client_pool_abandoned_removal_logged: true
+connection_pool_abandoned_removal_enabled: true
+connection_pool_abandoned_removal_logged: true
 
 usage_reporting_key: "{{ vault_usage_reporting_key }}"
 
diff --git 
a/dev-tools/ansible/inventories/scigap/production/group_vars/all/vars.yml 
b/dev-tools/ansible/inventories/scigap/production/group_vars/all/vars.yml
index 6d186d2bd3..9d4994e54d 100644
--- a/dev-tools/ansible/inventories/scigap/production/group_vars/all/vars.yml
+++ b/dev-tools/ansible/inventories/scigap/production/group_vars/all/vars.yml
@@ -66,7 +66,7 @@ zookeeper_connection_url: "{{ groups['zookeeper'][0] }}:{{ 
zookeeper_client_port
 # API Server related variables
 api_server_name: "apiserver-node0"
 api_server_host: "{{ groups['api-orch'][0] }}"
-api_server_port: "8930"
+api_server_port: "9090"
 api_server_public_hostname: "apiprod.scigap.org"
 api_secured: "true"
 tls_enable: "false"
@@ -172,8 +172,8 @@ platform_monitor_email_address: 
"[email protected]"
 platform_monitor_email_password: "{{ vault_platform_monitor_email_password }}"
 platform_monitor_target_email_addresses: 
"[email protected],[email protected]"
 
-thrift_client_pool_abandoned_removal_enabled: true
-thrift_client_pool_abandoned_removal_logged: false
+connection_pool_abandoned_removal_enabled: true
+connection_pool_abandoned_removal_logged: false
 
 # Variables related to parser framework
 parser_broker_url: "{{ groups['kafka'][0] }}:{{ kafka_listener_port }}"
diff --git 
a/dev-tools/ansible/inventories/scigap/staging/group_vars/all/vars.yml 
b/dev-tools/ansible/inventories/scigap/staging/group_vars/all/vars.yml
index 962c8f922f..fcbf10cca9 100644
--- a/dev-tools/ansible/inventories/scigap/staging/group_vars/all/vars.yml
+++ b/dev-tools/ansible/inventories/scigap/staging/group_vars/all/vars.yml
@@ -65,7 +65,7 @@ zookeeper_connection_url: "{{ groups['zookeeper'][0] }}:{{ 
zookeeper_client_port
 # API Server related variables
 api_server_name: "apiserver-node0"
 api_server_host: "{{ groups['api-orch'][0] }}"
-api_server_port: "8930"
+api_server_port: "9090"
 api_secured: "true"
 tls_enable: "true"
 api_server_tls_port: "9930"
@@ -176,8 +176,8 @@ parser_broker_consumer_group: "ParsingConsumer"
 parser_storage_resource_id: 
"pga.staging.scigap.org_aa63ffa0-a99f-4885-8f4b-81e3c4c4d737"
 parser_broker_publisher_id: "ParserProducer"
 
-thrift_client_pool_abandoned_removal_enabled: true
-thrift_client_pool_abandoned_removal_logged: true
+connection_pool_abandoned_removal_enabled: true
+connection_pool_abandoned_removal_logged: true
 
 # Subnet definitions
 iu_subnets:
diff --git 
a/dev-tools/ansible/inventories/scigap/testing/group_vars/all/vars.yml 
b/dev-tools/ansible/inventories/scigap/testing/group_vars/all/vars.yml
index 16fb879907..c38e636fa4 100644
--- a/dev-tools/ansible/inventories/scigap/testing/group_vars/all/vars.yml
+++ b/dev-tools/ansible/inventories/scigap/testing/group_vars/all/vars.yml
@@ -63,7 +63,7 @@ zookeeper_connection_url: "{{ groups['zookeeper'][0] }}:{{ 
zookeeper_client_port
 # API Server related variables
 api_server_name: "apiserver-node0"
 api_server_host: "{{ groups['api-orch'][0] }}"
-api_server_port: "8930"
+api_server_port: "9090"
 api_secured: "false"
 tls_enable: "true"
 api_server_tls_port: "9930"
diff --git a/dev-tools/ansible/inventories/staging/group_vars/all/vars.yml 
b/dev-tools/ansible/inventories/staging/group_vars/all/vars.yml
index ff14cc6989..8916a8fe7e 100644
--- a/dev-tools/ansible/inventories/staging/group_vars/all/vars.yml
+++ b/dev-tools/ansible/inventories/staging/group_vars/all/vars.yml
@@ -20,7 +20,7 @@ group: "{{ deploy_user }}"
 user_home: "/home/{{ user }}"
 
 # Service ports
-api_server_port: 8930
+api_server_port: 9090
 api_server_tls_port: 9930
 agent_service_port: 18880
 research_service_port: 18899
diff --git a/dev-tools/ansible/inventories/standalone/group_vars/all/vars.yml 
b/dev-tools/ansible/inventories/standalone/group_vars/all/vars.yml
index 54ad3df083..af4da391d2 100644
--- a/dev-tools/ansible/inventories/standalone/group_vars/all/vars.yml
+++ b/dev-tools/ansible/inventories/standalone/group_vars/all/vars.yml
@@ -73,7 +73,7 @@ zookeeper_connection_url: "{{ groups['zookeeper'][0] }}:{{ 
zookeeper_client_port
 api_server_name: "apiserver-node0"
 api_server_host: "{{ groups['api-orch'][0] }}"
 api_server_bind_host: "{{ api_server_host }}"
-api_server_port: "8930"
+api_server_port: "9090"
 api_secured: "false"
 tls_enable: "true"
 api_server_tls_port: "9930"
diff --git a/dev-tools/ansible/inventories/template/group_vars/all/vars.yml 
b/dev-tools/ansible/inventories/template/group_vars/all/vars.yml
index 80f1d83bb7..f6efb4f4c5 100644
--- a/dev-tools/ansible/inventories/template/group_vars/all/vars.yml
+++ b/dev-tools/ansible/inventories/template/group_vars/all/vars.yml
@@ -72,7 +72,7 @@ zookeeper_connection_url: "{{ groups['zookeeper'][0] }}:{{ 
zookeeper_client_port
 # API Server related variables
 api_server_name: "apiserver-node0"
 api_server_host: "{{ groups['api-orch'][0] }}"
-api_server_port: "8930"
+api_server_port: "9090"
 api_secured: "false"
 tls_enable: "true"
 api_server_tls_port: "9930"
diff --git 
a/dev-tools/ansible/inventories/template/group_vars/all/vars.yml.example 
b/dev-tools/ansible/inventories/template/group_vars/all/vars.yml.example
index d9022a9a6a..ae990b6090 100644
--- a/dev-tools/ansible/inventories/template/group_vars/all/vars.yml.example
+++ b/dev-tools/ansible/inventories/template/group_vars/all/vars.yml.example
@@ -14,7 +14,7 @@ apache_maven_version: "apache-maven-3.9.11"
 
 # Non-sensitive service settings
 deploy_user: "CHANGEME_DEPLOY_USER"
-api_server_port: 8930
+api_server_port: 9090
 profile_service_port: 8962
 registry_port: 8970
 
diff --git 
a/dev-tools/ansible/inventories/template/group_vars/all/vault.yml.example 
b/dev-tools/ansible/inventories/template/group_vars/all/vault.yml.example
index 7faff4cff5..83ae1a504a 100644
--- a/dev-tools/ansible/inventories/template/group_vars/all/vault.yml.example
+++ b/dev-tools/ansible/inventories/template/group_vars/all/vault.yml.example
@@ -96,7 +96,7 @@ research_service_datasource_password: "CHANGEME_DB_PASSWORD"
 
 # Agent service Airavata settings
 agent_service_airavata_url: "localhost"
-agent_service_airavata_port: 8930
+agent_service_airavata_port: 9090
 agent_service_airavata_secure: false
 
 # Research service URLs
diff --git a/dev-tools/ansible/roles/airavata_services/defaults/main.yml 
b/dev-tools/ansible/roles/airavata_services/defaults/main.yml
index ef086c7b83..22f04a7bb6 100644
--- a/dev-tools/ansible/roles/airavata_services/defaults/main.yml
+++ b/dev-tools/ansible/roles/airavata_services/defaults/main.yml
@@ -29,9 +29,8 @@ airavata_server_dist_name: "airavata-server-{{ 
airavata_version }}"
 airavata_server_dir: "{{ deployment_dir }}/airavata-server-{{ airavata_version 
}}"
 
 # Service ports
-thrift_port: 8930
-rest_port: 18889
-grpc_port: 19900
+# Armeria serves gRPC + REST (HTTP/JSON transcoding) on a single port
+api_server_port: 9090
 monitoring_port: 9097
 
 # Service hosts
@@ -125,9 +124,9 @@ data_analyzer_job_scanning_enable: false
 # Data staging configuration
 enable_streaming_transfer: false
 
-# Thrift client pool configuration
-thrift_client_pool_abandoned_removal_enabled: true
-thrift_client_pool_abandoned_removal_logged: false
+# Connection pool configuration
+connection_pool_abandoned_removal_enabled: true
+connection_pool_abandoned_removal_logged: false
 
 # Storage configuration
 local_data_location: "/home/{{ deploy_user }}/temp-storage"
diff --git a/dev-tools/ansible/roles/airavata_services/tasks/start_services.yml 
b/dev-tools/ansible/roles/airavata_services/tasks/start_services.yml
index 5fb25d4b7c..1eeaece7a2 100644
--- a/dev-tools/ansible/roles/airavata_services/tasks/start_services.yml
+++ b/dev-tools/ansible/roles/airavata_services/tasks/start_services.yml
@@ -28,7 +28,7 @@
 
 - name: Wait for Airavata Server to be ready
   wait_for:
-    port: '{{ thrift_port }}'
+    port: '{{ api_server_port }}'
     host: '{{ api_server_host }}'
     delay: 5
     timeout: 60
diff --git a/dev-tools/ansible/roles/airavata_services/tasks/stop_services.yml 
b/dev-tools/ansible/roles/airavata_services/tasks/stop_services.yml
index 87e477b1ea..295b0f7766 100644
--- a/dev-tools/ansible/roles/airavata_services/tasks/stop_services.yml
+++ b/dev-tools/ansible/roles/airavata_services/tasks/stop_services.yml
@@ -42,12 +42,8 @@
 - name: Define Airavata service ports
   set_fact:
     airavata_ports:
-      - port: "{{ thrift_port }}"
-        service: "Airavata Server (Thrift)"
-      - port: "{{ rest_port }}"
-        service: "Airavata Server (REST)"
-      - port: "{{ grpc_port }}"
-        service: "Airavata Server (gRPC)"
+      - port: "{{ api_server_port }}"
+        service: "Airavata Server (Armeria gRPC + REST)"
       - port: "{{ monitoring_port }}"
         service: "Airavata Server (Monitoring)"
       - port: "{{ participant_monitoring_port }}"
diff --git 
a/dev-tools/ansible/roles/airavata_services/templates/airavata-server.properties.j2
 
b/dev-tools/ansible/roles/airavata_services/templates/airavata-server.properties.j2
index ed3eca9750..9b2a933c8a 100644
--- 
a/dev-tools/ansible/roles/airavata_services/templates/airavata-server.properties.j2
+++ 
b/dev-tools/ansible/roles/airavata_services/templates/airavata-server.properties.j2
@@ -136,10 +136,7 @@ local.data.location={{ local_data_location }}
 max.archive.size={{ max_archive_size | default('21474836480') }}
 
 ###########################################################################
-# ThriftClientPool Configuration
-###########################################################################
-thrift.client.pool.abandoned.removal.enabled={{ 
thrift_client_pool_abandoned_removal_enabled }}
-thrift.client.pool.abandoned.removal.logged={{ 
thrift_client_pool_abandoned_removal_logged }}
+# Connection pool configuration (Thrift pool removed — gRPC via Armeria)
 
 ###########################################################################
 # Pre-workflow Configuration
diff --git a/dev-tools/ansible/roles/api-orch/defaults/main.yml 
b/dev-tools/ansible/roles/api-orch/defaults/main.yml
index 5b054fbbbc..4236a05db8 100644
--- a/dev-tools/ansible/roles/api-orch/defaults/main.yml
+++ b/dev-tools/ansible/roles/api-orch/defaults/main.yml
@@ -31,10 +31,10 @@ iam_server_super_admin_username: "admin"
 #iam_server_super_admin_password: "changeme"
 
 profile_service_host: "airavata.localhost"
-profile_service_port: 8930
+profile_service_port: 9090
 
 mariadb_connector_jar_url: 
"http://downloads.mariadb.com/Connectors/java/connector-java-2.0.2/mariadb-java-client-2.0.2.jar";
-sharing_registry_tls_enabled: "false"
+sharing_registry_tls_enabled: false
 
 api_server_bind_host: "{{ ansible_default_ipv4.address }}"
 orchestrator_bind_host: "{{ ansible_default_ipv4.address }}"
@@ -48,11 +48,11 @@ default_registry_password : "admin"
 
 api_orch_systemd_unit_file: "/etc/systemd/system/apiorch.service"
 
-thrift_client_pool_abandoned_removal_enabled: false
-thrift_client_pool_abandoned_removal_logged: false
+connection_pool_abandoned_removal_enabled: false
+connection_pool_abandoned_removal_logged: false
 
 api_server_public_hostname: "airavata.localhost"
-api_server_port: 8930
+api_server_port: 9090
 api_server_tls_port: 9930
 api_server_host: "airavata.localhost"
 haproxy_api_server_ssl_cert: "/etc/ssl/{{ api_server_public_hostname }}/{{ 
api_server_public_hostname }}.pem"
diff --git 
a/dev-tools/ansible/roles/api-orch/templates/airavata-server.properties.j2 
b/dev-tools/ansible/roles/api-orch/templates/airavata-server.properties.j2
index a1d67e847e..5bb8dd999f 100644
--- a/dev-tools/ansible/roles/api-orch/templates/airavata-server.properties.j2
+++ b/dev-tools/ansible/roles/api-orch/templates/airavata-server.properties.j2
@@ -149,10 +149,7 @@ iam.server.super.admin.password={{ 
iam_server_super_admin_password }}
 
db_event_manager.class=org.apache.airavata.db.event.manager.DBEventManagerRunner
 
 ###########################################################################
-# ThriftClientPool Configuration
-###########################################################################
-thrift.client.pool.abandoned.removal.enabled={{ 
thrift_client_pool_abandoned_removal_enabled }}
-thrift.client.pool.abandoned.removal.logged={{ 
thrift_client_pool_abandoned_removal_logged }}
+# Connection pool configuration (Thrift pool removed — gRPC via Armeria)
 
 ###########################################################################
 # Platform Monitoring Configuration
diff --git a/dev-tools/ansible/roles/common/tasks/main.yml 
b/dev-tools/ansible/roles/common/tasks/main.yml
index b7b2db723d..85bbda25c0 100644
--- a/dev-tools/ansible/roles/common/tasks/main.yml
+++ b/dev-tools/ansible/roles/common/tasks/main.yml
@@ -41,14 +41,6 @@
   with_items:
     - git
     - build-essential
-    - automake
-    - bison
-    - flex
-    - libboost-all-dev
-    - libevent-dev
-    - libssl-dev
-    - libtool
-    - pkg-config
   become_user: root
   when: ansible_os_family == "Debian"
 
@@ -85,45 +77,6 @@
   become: yes
   become_user: root
 
-- name: Check if Thrift is installed
-  command: which thrift
-  register: thrift_check
-  changed_when: false
-  failed_when: false
-  become: no
-
-- name: Download Thrift 0.22.0
-  shell: |
-    cd /tmp && \
-    wget -q --no-check-certificate 
https://dlcdn.apache.org/thrift/0.22.0/thrift-0.22.0.tar.gz && \
-    tar -xzf thrift-0.22.0.tar.gz
-  args:
-    creates: /tmp/thrift-0.22.0
-  become: yes
-  become_user: root
-  when: thrift_check.rc != 0
-
-- name: Build and install Thrift 0.22.0
-  shell: |
-    cd /tmp/thrift-0.22.0 && \
-    ./configure --without-rs --enable-libs=no --enable-tests=no && \
-    make -j$(nproc) && \
-    make install && \
-    ldconfig
-  become: yes
-  become_user: root
-  when: thrift_check.rc != 0
-
-- name: Verify Thrift installation
-  command: thrift -version
-  register: thrift_version
-  changed_when: false
-  become: no
-
-- name: Display Thrift version
-  debug:
-    msg: "Thrift version: {{ thrift_version.stdout }}"
-
 # Setup airavata source
 - name: Create deployment directory {{ deployment_dir }}
   file: path={{ deployment_dir }} state=directory mode=0755
diff --git a/dev-tools/ansible/roles/helix_setup/defaults/main.yml 
b/dev-tools/ansible/roles/helix_setup/defaults/main.yml
index 1c089f8835..f4178c38b6 100644
--- a/dev-tools/ansible/roles/helix_setup/defaults/main.yml
+++ b/dev-tools/ansible/roles/helix_setup/defaults/main.yml
@@ -53,8 +53,8 @@ kafka_rest_proxy_listener_port: 8082
 
 local_data_location: "/tmp"
 
-thrift_client_pool_abandoned_removal_enabled: false
-thrift_client_pool_abandoned_removal_logged: false
+connection_pool_abandoned_removal_enabled: false
+connection_pool_abandoned_removal_logged: false
 
 max_archive_size: 21474836480
 ...
diff --git 
a/dev-tools/ansible/roles/helix_setup/templates/parser-wm/airavata-server.properties.j2
 
b/dev-tools/ansible/roles/helix_setup/templates/parser-wm/airavata-server.properties.j2
index 6e78323085..b3d9d108c2 100644
--- 
a/dev-tools/ansible/roles/helix_setup/templates/parser-wm/airavata-server.properties.j2
+++ 
b/dev-tools/ansible/roles/helix_setup/templates/parser-wm/airavata-server.properties.j2
@@ -58,10 +58,7 @@ data.parser.storage.resource.id={{ 
parser_storage_resource_id }}
 post.workflow.manager.loadbalance.clusters=False
 
 ###########################################################################
-# ThriftClientPool Configuration
-###########################################################################
-thrift.client.pool.abandoned.removal.enabled={{ 
thrift_client_pool_abandoned_removal_enabled }}
-thrift.client.pool.abandoned.removal.logged={{ 
thrift_client_pool_abandoned_removal_logged }}
+# Connection pool configuration (Thrift pool removed — gRPC via Armeria)
 
 ###########################################################################
 # Platform Monitoring Configuration
diff --git 
a/dev-tools/ansible/roles/helix_setup/templates/participant/airavata-server.properties.j2
 
b/dev-tools/ansible/roles/helix_setup/templates/participant/airavata-server.properties.j2
index b8f22e2646..d18f478cca 100644
--- 
a/dev-tools/ansible/roles/helix_setup/templates/participant/airavata-server.properties.j2
+++ 
b/dev-tools/ansible/roles/helix_setup/templates/participant/airavata-server.properties.j2
@@ -94,10 +94,7 @@ enable.streaming.transfer=False
 max.archive.size={{ max_archive_size }}
 
 ###########################################################################
-# ThriftClientPool Configuration
-###########################################################################
-thrift.client.pool.abandoned.removal.enabled={{ 
thrift_client_pool_abandoned_removal_enabled }}
-thrift.client.pool.abandoned.removal.logged={{ 
thrift_client_pool_abandoned_removal_logged }}
+# Connection pool configuration (Thrift pool removed — gRPC via Armeria)
 
 ###########################################################################
 # Platform Monitoring Configuration
diff --git 
a/dev-tools/ansible/roles/helix_setup/templates/post-wm/airavata-server.properties.j2
 
b/dev-tools/ansible/roles/helix_setup/templates/post-wm/airavata-server.properties.j2
index 5e7b8026e3..5a086ac4e9 100644
--- 
a/dev-tools/ansible/roles/helix_setup/templates/post-wm/airavata-server.properties.j2
+++ 
b/dev-tools/ansible/roles/helix_setup/templates/post-wm/airavata-server.properties.j2
@@ -52,10 +52,7 @@ prefetch.count=200
 zookeeper.server.connection={{ zookeeper_connection_url }}
 
 ###########################################################################
-# ThriftClientPool Configuration
-###########################################################################
-thrift.client.pool.abandoned.removal.enabled={{ 
thrift_client_pool_abandoned_removal_enabled }}
-thrift.client.pool.abandoned.removal.logged={{ 
thrift_client_pool_abandoned_removal_logged }}
+# Connection pool configuration (Thrift pool removed — gRPC via Armeria)
 
 ###########################################################################
 # Platform Monitoring Configuration
diff --git 
a/dev-tools/ansible/roles/helix_setup/templates/pre-wm/airavata-server.properties.j2
 
b/dev-tools/ansible/roles/helix_setup/templates/pre-wm/airavata-server.properties.j2
index 303079fd49..38e16b2d14 100644
--- 
a/dev-tools/ansible/roles/helix_setup/templates/pre-wm/airavata-server.properties.j2
+++ 
b/dev-tools/ansible/roles/helix_setup/templates/pre-wm/airavata-server.properties.j2
@@ -49,10 +49,7 @@ prefetch.count=200
 zookeeper.server.connection={{ zookeeper_connection_url }}
 
 ###########################################################################
-# ThriftClientPool Configuration
-###########################################################################
-thrift.client.pool.abandoned.removal.enabled={{ 
thrift_client_pool_abandoned_removal_enabled }}
-thrift.client.pool.abandoned.removal.logged={{ 
thrift_client_pool_abandoned_removal_logged }}
+# Connection pool configuration (Thrift pool removed — gRPC via Armeria)
 
 ###########################################################################
 # Platform Monitoring Configuration
diff --git a/dev-tools/ansible/roles/job_monitor/defaults/main.yml 
b/dev-tools/ansible/roles/job_monitor/defaults/main.yml
index ab2e3f961a..85f91801ab 100644
--- a/dev-tools/ansible/roles/job_monitor/defaults/main.yml
+++ b/dev-tools/ansible/roles/job_monitor/defaults/main.yml
@@ -46,6 +46,6 @@ job_monitor_broker_consumer_group: "MonitoringConsumer"
 helix_log_max_history: 30
 helix_log_total_size_cap: "1 GB"
 
-thrift_client_pool_abandoned_removal_enabled: false
-thrift_client_pool_abandoned_removal_logged: false
+connection_pool_abandoned_removal_enabled: false
+connection_pool_abandoned_removal_logged: false
 ...
diff --git 
a/dev-tools/ansible/roles/job_monitor/templates/email-monitor/airavata-server.properties.j2
 
b/dev-tools/ansible/roles/job_monitor/templates/email-monitor/airavata-server.properties.j2
index fde8e1c495..ccb4197fdf 100644
--- 
a/dev-tools/ansible/roles/job_monitor/templates/email-monitor/airavata-server.properties.j2
+++ 
b/dev-tools/ansible/roles/job_monitor/templates/email-monitor/airavata-server.properties.j2
@@ -41,7 +41,4 @@ regserver.server.host={{ registry_host }}
 regserver.server.port={{ registry_port }}
 
 ###########################################################################
-# ThriftClientPool Configuration
-###########################################################################
-thrift.client.pool.abandoned.removal.enabled={{ 
thrift_client_pool_abandoned_removal_enabled }}
-thrift.client.pool.abandoned.removal.logged={{ 
thrift_client_pool_abandoned_removal_logged }}
+# Connection pool configuration (Thrift pool removed — gRPC via Armeria)
diff --git a/dev-tools/ansible/roles/pga/defaults/main.yml 
b/dev-tools/ansible/roles/pga/defaults/main.yml
index 071c21c0b2..748201d0ff 100644
--- a/dev-tools/ansible/roles/pga/defaults/main.yml
+++ b/dev-tools/ansible/roles/pga/defaults/main.yml
@@ -80,9 +80,9 @@ oauth_callback_url: "http://{{ vhost_servername 
}}/callback-url"
 pga_repo: "https://github.com/apache/airavata-php-gateway.git";
 pga_git_branch: "master"
 airavata_server: "{{ groups['api-orch'][0] }}"
-airavata_port: "8930"
+airavata_port: "9090"
 airavata_profile_service_server: "{{ airavata_server }}"
-airavata_profile_service_port: "8930"
+airavata_profile_service_port: "9090"
 gateway_id: "{{ default_gateway }}"
 # relative to document root dir
 experiment_data_dir: "{{ user_data_dir }}"
diff --git a/dev-tools/deployment-scripts/docker-startup.sh 
b/dev-tools/deployment-scripts/docker-startup.sh
index dd192f4263..7de5f705d2 100644
--- a/dev-tools/deployment-scripts/docker-startup.sh
+++ b/dev-tools/deployment-scripts/docker-startup.sh
@@ -6,7 +6,7 @@ set -e
 export AIRAVATA_CONFIG_DIR=/opt/airavata/vault
 
 echo "🚀 Starting Apache Airavata Server..."
-echo "📋 Single JVM server with all Thrift services multiplexed on port 8930"
+echo "📋 Single JVM server with Armeria (gRPC + REST transcoding) on port 9090"
 echo "📁 Properties file location: 
/opt/airavata/vault/airavata-server.properties"
 echo "📁 Configuration directory: $AIRAVATA_CONFIG_DIR"
 echo "📊 All logs will be captured and visible via 'docker logs'"
@@ -48,7 +48,7 @@ log "Starting Airavata Server..."
 
 cd ${AIRAVATA_HOME}
 
-# Start unified Airavata server (Thrift 8930, REST 18889, gRPC 19900, 
Monitoring 9097)
+# Start unified Airavata server (Armeria gRPC + REST on 9090, Monitoring 9097)
 java -jar lib/airavata-server-*.jar &
 AIRAVATA_PID=$!
 
@@ -62,10 +62,8 @@ log "Starting log monitoring..."
 sleep 5
 
 echo "Airavata Server is running!"
-echo "  Thrift:     port 8930"
-echo "  REST:       port 18889"
-echo "  gRPC:       port 19900"
-echo "  Monitoring: port 9097"
+echo "  Armeria (gRPC + REST): port 9090"
+echo "  Monitoring:            port 9097"
 echo ""
 echo "Use 'docker logs -f' to view server logs"
 echo ""

Reply via email to