Proxy or message capture is a component that used to capture the messages exchanged between two systems under test. This tool is also bind to the EVSClient in order to validate the messages stored in the Proxy in a very simple way.
The Proxy 2.0.0 has externalized the low-level operations of the channels in a dedicated service based on Netty 4, allowing for a clearer separation between transport management and protocol processing, and improving the maintainability and modularity of the overall system.
git clone [PROXY_V17_URL]
mvn clean install -DskipTests
channel-manager
and a user gazelle
.proxy-quarkus/src/main/resources/db/migration/V1__init.sql
to initialize the database schema.
We can run the Channel Socket Service using the following command:
java -jar proxy-quarkus/target/quarkus-app/quarkus-run.jar
The proxy is configured using JVM properties. The following table describes the properties that can be used to configure the proxy component.
Variable name | Description | Default value |
---|---|---|
datahouse.url | The URL used to communicate with datahouse, to record messages and connections | http://localhost:8080/datahouse/rest/v1 |
quarkus.http.port | The port of the service | 8081 |
quarkus.log.level | The log level | INFO |
proxy.fallback.pipeline.enabled | Enable/disable fallback record | true |
proxy.fallback.record.service.url | Recording service URL for the fallback pipeline (alternative to datahouse, ex: proxy v7) | http://localhost:8380/proxy/rest |
service.ip.address | Ip of the host machine of proxy. Used in HTTP rewrite | 127.0.0.1 |
handler.logger.enabled | Enable/disable logger handler to log incoming/outgoing messages | false |
quarkus.swagger-ui.always-include | Enable/disable swagger graphical interface | true |
quarkus.otel.exporter.otlp.traces.endpoint | Service URL to export opentelemtry spans, if not set, telemetry will be disabled | http://localhost:4317 |
The Gazelle Admin Interface is a core component of Proxy that oversees the lifecycle of communication channels. It manages the creation, configuration, and supervision of various channel types—such as TCP, HTTP, DICOM, and Syslog to intercept and record messages exchanged between systems under test.
The Gazelle Admin Interface communicates with the proxy to control these channels, delegating operations such as starting, stopping, and updating channel configurations through its API.
Gazelle Admin Interface is a Channel Manager UI component that provides the user interface for managing channels, including creation, deletion, configuration, listing, and updating of channels.
pnpm install -g pnpm
git clone [gazelle-admin-interface-url]
cd gazelle-admin-interface
pnpm install
To run the Channel Manager UI, use the following command:
pnpm run dev
The UI should now be accessible at:
http://localhost:3000/gazelle/channels
There is a set of properties that you can configure on env that should be on the root of the project.
Property name | Description | Example of value |
---|---|---|
BASE_PATH_CHANNEL | Base path used to mount the admin interface routes | /gazelle/admin |
HOME_URL | URL to redirect users after login or when clicking “Home” | https://qualif3.ihe.kereval.cloud/home/ |
PROXY_URL | The base URL of the proxy admin frontend (used for redirection/navigation) | http://localhost:3001 |
USERS_URL | URL to the external user management interface (GUM UI) | https://qualif3.ihe.kereval.cloud/gum-ui/users |
REGISTRATION_URL | URL to the user registration page | https://qualif3.ihe.kereval.cloud/gum-ui/registration |
CHANNEL_URL | UI base URL of the current channel management interface | http://localhost:3000/ |
CHANNEL_API_URL | REST API base URL for managing channels (provided by the backend proxy engine) | http://localhost:8086/proxy/rest/v1/ |
USERS_API_URL | API endpoint for user information from the GUM backend | http://localhost:8081/gum/rest/users |
KEYCLOAK_CLIENT_ID | Keycloak OIDC client ID used for authentication | OIDC_GAZELLE_CLIENT |
KEYCLOAK_ISSUER | Keycloak issuer URL (realm endpoint for token |
The messages captured by the Proxy can be viewed and managed through the Message Capture
. The interface allows users to filter, search, and validated captured messages, providing a comprehensive view with all messages per connection exchanged on a specific channel
The Message Capture is a component of the Gazelle User Interface that provides a user interface for viewing and managing captured messages.
pnpm install -g pnpm
git clone [gazelle-user-interface-url]
cd gazelle-user-interface
pnpm install
To run the Gazelle User Interface, use the following command:
pnpm run dev
The UI should now be accessible at:
The Message Capture component can be configured using environment variables. The following table describes the properties that can be used to configure the Message Capture component.
Property name | Description | Example of value |
---|---|---|
HOME_URL | URL to redirect users after login or when clicking “Home” | https://qualif3.ihe.kereval.cloud/home/ |
PROXY_URL | Base URL of the proxy frontend | http://localhost:3000 |
USERS_URL | URL to the external user management UI | https://qualif3.ihe.kereval.cloud/gum-ui/users |
REGISTRATION_URL | URL to the user registration page | https://qualif3.ihe.kereval.cloud/gum-ui/registration |
CHANNEL_URL | Base URL of the current channel management UI | http://localhost:3000/ |
FQDN | Fully qualified domain name used to compose base URLs | localhost:3000 |
SCHEME | Protocol scheme (http or https) | http |
BASE_URL | Full base URL composed from scheme and FQDN | http://localhost:3000 |
KEYCLOAK_CLIENT_ID | Keycloak client ID for OIDC authentication | OIDC_GAZELLE_CLIENT |
KEYCLOAK_ISSUER | Keycloak realm issuer URL | http://localhost:28080/realms/gazelle |
NEXTAUTH_URL | NextAuth.js callback URL | http://localhost:3000/gazelle/api/auth |
NEXTAUTH_SECRET | Secret for NextAuth.js encryption | Gd/amKSF7eFZ3YdPNvMuFYKil3j/Ycq8BpnRvpaRpFY= |
GZL_DTH_API_URL | Base URL for DataHouse backend | http://localhost:8082/datahouse/rest/v1 |
GZL_DTH_EVSGATEWAY_URL | Base URL for EVS Gateway service (DataHouse validation engine) | https://qualif2.ihe.kereval.cloud/evsgateway/rest/v1 |
GZL_DTH_VALIDATION_ENABLED | Enables validation in DataHouse | true |
GDH_PRESENTATION_SCHEMA_PATH | Path to the DataHouse presentation schema JSON | /opt/datahouse-ui/presentationSchemas.json |
GZL_GUM_API_URL | GUM API base URL | http://localhost:8081/gum/rest |
GZL_TEXEC_API_URL | Test Execution API base URL | http://localhost:8080/test-execution/rest |
GZL_TM_URL | Test Management frontend URL | http://localhost:8080/gazelle |
GZL_GUM_UI_URL | GUM frontend user management UI URL | http://localhost:3000/gazelle/user-management |
GZL_TEST_CASE_FOLDER | Path to the test case directory | /opt/gazelle-user-interface/test-execution/test-case/ |
GZL_HOME_CONFIGURATION_FOLDER | Path to the home configuration folder | /opt/gazelle-user-interface/home |
You can run the Proxy and Gazelle Admin Interface using Docker.
git clone [PRJECT_URL]
docker-compose up -d