diff --git a/Proxy/installation.md b/Proxy/installation.md index c425358ec33e05fdaa4cf5c5603cc2139a608fa7..24f5e798160ffca3cd078ddd6a9e96711b674b5b 100755 --- a/Proxy/installation.md +++ b/Proxy/installation.md @@ -2,10 +2,10 @@ title: Installation Manual subtitle: Gazelle Proxy author: Nicolas BAILLIET -date: 17/07/2023 -toolversion: 5.1.0 +date: 18/01/2024 +toolversion: 6.0.0 function: Engineer -version: 2.01 +version: 2.1 status: Approved document reference: KER1-MAN-IHE-PROXY_INSTALLATION-2_01 customer: IHE-EUROPE @@ -21,6 +21,56 @@ As for the other tools, the proxy is an open source project and its sources are You can download the latest gazelle-proxy.ear in nexus [*http://gazelle.ihe.net/nexus/index.html#nexus-search;quick~gazelle-proxy.ear*](http://gazelle.ihe.net/nexus/index.html#nexus-search;quick~gazelle-proxy.ear) +# Channel Socket Service (Version 6.0.0 and higher) + +## Introduction + +The Proxy 6 has externalized the low level operations of the channels in a dedicated service based on Netty 4. +This service is called the Channel Socket Service. + +This service needs to be installed on the same machine as the Proxy and must be started before the Proxy. + +Channel Socket Service is withing the Proxy V17 projects. + +## Installation + +### Prerequisites + +1. Java 17 +2. Maven 3.8.x +3. Docker +4. Optional: Mandrel 17 (for native compilation) + +### Build + +1. Clone the project: + ```shell + git clone [PROXY_V17_URL] + ``` +2. Build the project: + ```shell + mvn clean install -DskipTests + ``` +### Run + +We can run the Channel Socket Service using the following command: +```shell +java -jar proxy-quarkus/target/quarkus-app/quarkus-run.jar +``` + +### Configuration + +The Channel Socket Service is configured using JVM properties. The following table describes the properties that can be used to configure the Channel Socket Service. + +| **Variable name** | **Description** | **Example of value** | +|------------------------|-------------------------------------------------|----------------------------------------| +| **record.service.url** | The URL used to communicate with record service | http://localhost:8380/proxy/rest/items | +| **quarkus.http.port** | The port of the service | 8081 | +| **quarkus.log.level** | The log leve | INFO | + +For more details about the configuration of the Channel Socket Service, please refer to the +project [README.md](#). + # Compilation and installation Gazelle testbed tools are built using Maven 3, when you have download the sources, go to the gazelle-proxy folder and execute @@ -40,7 +90,22 @@ In your database (postgresql 9.1 or higher) create a database named "gazelle-pro createdb -U gazelle -E UTF8 gazelle-proxy ``` -## 2. On your file system, create a directory `/opt/proxy/DICOM` and an empty file `/opt/proxy/proxyPersistentChannels.csv` +## 2. File system + +### 2.1 Version 6.0.0 and higher +For persistent channels, create a file `/opt/proxy/proxyPersistentChannels.json` and make sure that the user running the application has the right to write in it. +On your file system, create a directory `/opt/proxy/DICOM`. +```bash +sudo mkdir -p /opt/proxy/DICOM +sudo touch /opt/proxy/proxyPersistentChannels.json +sudo chown -R jboss:jboss-admin /opt/proxy +sudo chmod -R 775 /opt/proxy +``` + + +### 2.2 Version 5.0.0 and lower +For persistent channels, create a file `/opt/proxy/proxyPersistentChannels.csv` and make sure that the user running the application has the right to write in it. +On your file system, create a directory `/opt/proxy/DICOM`. ```bash sudo mkdir -p /opt/proxy/DICOM @@ -49,7 +114,7 @@ sudo chown -R jboss:jboss-admin /opt/proxy sudo chmod -R 775 /opt/proxy ``` -## 3. Put the ear in the deploy folder of your Jboss AS +## 3. Put the ear in the deployment folder of your Jboss AS ```bash cp gazelle-proxy-ear/target/gazelle-proxy.ear /usr/local/jboss7/standalone/deployments/gazelle-proxy.ear diff --git a/Proxy/media/open_new_channel.png b/Proxy/media/open_new_channel.png index 0183d89ca9878c90b8dba9ac504527a2ad4fbc53..4bb3b5c9ad322c1d4d1f504c22a6e6a09b09a874 100644 Binary files a/Proxy/media/open_new_channel.png and b/Proxy/media/open_new_channel.png differ diff --git a/Proxy/media/synchronize_with_channel_socket_service.png b/Proxy/media/synchronize_with_channel_socket_service.png new file mode 100644 index 0000000000000000000000000000000000000000..2af211b4d23339bc835dc73b17979e3203034e0b Binary files /dev/null and b/Proxy/media/synchronize_with_channel_socket_service.png differ diff --git a/Proxy/release-note.md b/Proxy/release-note.md index 1c676fddf3542298beab3b6d39251b8e52645c93..c94f9f880bc9ba306c2cf1273d340a24914f5149 100755 --- a/Proxy/release-note.md +++ b/Proxy/release-note.md @@ -8,6 +8,60 @@ function: Software Engineer customer: IHE Europe reference: KER1-RNO-IHE-Proxy --- + +# 6.0.0 +_Release date: 2024-01-18 + +Step 1 of Proxy renovation. + +__Story__ + +* \[[PROXY-274](https://gazelle.ihe.net/jira/browse/PROXY-274)\] Create and start channels from TM +* \[[PROXY-275](https://gazelle.ihe.net/jira/browse/PROXY-275)\] Create/start one TCP channel from Proxy UI. +* \[[PROXY-276](https://gazelle.ihe.net/jira/browse/PROXY-276)\] Create start of several channels from an uploaded CSV in proxy UI. +* \[[PROXY-277](https://gazelle.ihe.net/jira/browse/PROXY-277)\] Support DICOM Channel +* \[[PROXY-278](https://gazelle.ihe.net/jira/browse/PROXY-278)\] Support HL7v2 Channel +* \[[PROXY-279](https://gazelle.ihe.net/jira/browse/PROXY-279)\] Support TCP SYSLOG Channel +* \[[PROXY-281](https://gazelle.ihe.net/jira/browse/PROXY-281)\] Support HTTP Channel +* \[[PROXY-286](https://gazelle.ihe.net/jira/browse/PROXY-286)\] Support secured channels +* \[[PROXY-287](https://gazelle.ihe.net/jira/browse/PROXY-287)\] Support TLS 1.3 for secured channels +* \[[PROXY-288](https://gazelle.ihe.net/jira/browse/PROXY-288)\] HTTP Rewrite +* \[[PROXY-289](https://gazelle.ihe.net/jira/browse/PROXY-289)\] Support SNI for secured channels +* \[[PROXY-291](https://gazelle.ihe.net/jira/browse/PROXY-291)\] Stop channel individually from UI +* \[[PROXY-292](https://gazelle.ihe.net/jira/browse/PROXY-292)\] Stop All channel from UI +* \[[PROXY-293](https://gazelle.ihe.net/jira/browse/PROXY-293)\] Record messages grouped in connections +* \[[PROXY-294](https://gazelle.ihe.net/jira/browse/PROXY-294)\] Record TLS handshake information +* \[[PROXY-307](https://gazelle.ihe.net/jira/browse/PROXY-307)\] Improve channels save/upload format to JSON + +__Bug__ + +* \[[PROXY-312](https://gazelle.ihe.net/jira/browse/PROXY-312)\] Wrong Responder IP +* \[[PROXY-313](https://gazelle.ihe.net/jira/browse/PROXY-313)\] Bad DICOM dump +* \[[PROXY-314](https://gazelle.ihe.net/jira/browse/PROXY-314)\] HL7v2 unclear decoding error message +* \[[PROXY-315](https://gazelle.ihe.net/jira/browse/PROXY-315)\] Incoherent Cipher-Suites list in proxy-v7 +* \[[PROXY-316](https://gazelle.ihe.net/jira/browse/PROXY-316)\] HTTP Wrong decoding error message +* \[[PROXY-317](https://gazelle.ihe.net/jira/browse/PROXY-317)\] Channels filters not working +* \[[PROXY-318](https://gazelle.ihe.net/jira/browse/PROXY-318)\] Empty IP is allowed in channels upload +* \[[PROXY-319](https://gazelle.ihe.net/jira/browse/PROXY-319)\] Unclear message when saving secured config +* \[[PROXY-320](https://gazelle.ihe.net/jira/browse/PROXY-320)\] Unclear TLS error message +* \[[PROXY-321](https://gazelle.ihe.net/jira/browse/PROXY-321)\] Raw message display text not working +* \[[PROXY-322](https://gazelle.ihe.net/jira/browse/PROXY-322)\] Remove All not working in secured channels +* \[[PROXY-324](https://gazelle.ihe.net/jira/browse/PROXY-324)\] Go to the last page not working +* \[[PROXY-325](https://gazelle.ihe.net/jira/browse/PROXY-325)\] Share message icon not working +* \[[PROXY-326](https://gazelle.ihe.net/jira/browse/PROXY-326)\] Copy button not working +* \[[PROXY-327](https://gazelle.ihe.net/jira/browse/PROXY-327)\] Proxy opens too many SQL Connections + + +__Task__ +* \[[PROXY-280](https://gazelle.ihe.net/jira/browse/PROXY-280)\] Support TCP Raw Channel +* \[[PROXY-284](https://gazelle.ihe.net/jira/browse/PROXY-284)\] Native image +* \[[PROXY-285](https://gazelle.ihe.net/jira/browse/PROXY-285)\] Proxy Channel Performence Testing +* \[[PROXY-295](https://gazelle.ihe.net/jira/browse/PROXY-295)\] Pipeline handlers extension +* \[[PROXY-296](https://gazelle.ihe.net/jira/browse/PROXY-296)\] Proxy J7 adaptation implementation +* \[[PROXY-297](https://gazelle.ihe.net/jira/browse/PROXY-297)\] proxy service sync with channel socket service +* \[[PROXY-298](https://gazelle.ihe.net/jira/browse/PROXY-298)\] Custom pipeline fork +* \[[PROXY-311](https://gazelle.ihe.net/jira/browse/PROXY-311)\] System Tests Proxy V17 + # 5.1.0 _Release date: 2023-07-11_ diff --git a/Proxy/user.md b/Proxy/user.md index 91c17530fc56421ea13b59d06f37fc8337e3bf18..e43ae7e60723a75424fdc99db9c3804b907e5c68 100755 --- a/Proxy/user.md +++ b/Proxy/user.md @@ -125,6 +125,14 @@ the lock icon to be redirected in read only mode (any user) NB : Update the configuration induce a restart of all previously opened channels. +## Synchronize with Channel Socket Service (Version >= 6.0.0) + +As the low level socket management is now delegated to a dedicated service, the proxy needs to be synchronized with this +service to be able to open new channels. This synchronization is done automatically every 5 minutes, but can be done manually +by clicking on the "Synchronize with Channel Socket Service" button in the Channels List page. + + + ## Automated filtering @@ -151,7 +159,10 @@ test step instance. The monitor will be then able to validate the message using ## Persist a channel -For version >5.0.8, gazelle-proxy can now have a persist feature that allowed user to persist created channel into csv +**For Version >6.0.0**, gazelle-proxy migrate the persistent channels to a JSON format. The file is located in +`/opt/proxy/proxyPersistentChannels.json` and is accessible by jboss user. + +**For version >5.0.8**, gazelle-proxy can now have a persist feature that allowed user to persist created channel into csv file present in server. To perform this feature it needs 2 steps : @@ -177,7 +188,7 @@ The channel is now created with an `Unpersit` button.  -The chanel is written in `/opt/proxy/proxyPersistentChannels.csv` in this format : +The chanel is written in `/opt/proxy/proxyPersistentChannels.csv` (or `/opt/proxy/proxyPersistentChannels.json`) in this format : ```csv "HTTP","true","10000","example.com","443","true"