Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Working As Designed
-
1.7.02
-
None
-
None
-
i2b2 VM hosted with Network Address Translation.
-
i2b2 Desktop (Workbench)
-
i2b2 Core
Description
After i2b2 WB's login authentication passes PM cell, the PM returns a XML response to WB to tell the information of cells, which contains the URLs for RESTFUL connection to these cells. Like:
<cell_data id="CRC">
<name>Data Repository</name>
<url>http://10.0.2.15:9090/i2b2/services/QueryToolService/</url>
<project_path>/</project_path>
<method>REST</method>
<can_override>true</can_override>
</cell_data>
The IP address on the URL is perceived from the environmental variables in the i2b2 server. However, this strategy assumes that the WB can use that IP address to access the i2b2 server directly, which is not always the case.
In my case, the i2b2 VM is hosted on a Linux server with VirtualBox, and the network is assigned with Network Address Translation (NAT) with port forwarding. Therefore, the IP that i2b2 VM has (10.0.2.15) is an internal IP similar to behind a router (which is the Linux hosting server). To access the i2b2 web client from my laptop, I also need to set up a SSH tunnel to forward the laptop ports to my Linux server ports. So, my WB needs to use this setting to access PM cell:
I2b2.2=i2b2demo,REST,http://localhost:9090/i2b2/services/PMService/
instead of using the IP 10.0.2.15.
After my login information gets authenticated by PM, my WB cannot load the cells because of the wrong URLs with IP 10.0.2.15.
To fix this problem, I recommend the communication between WB and i2b2 server should use relative URL rather than the absolute URL. Thank you!
HM
<cell_data id="CRC">
<name>Data Repository</name>
<url>http://10.0.2.15:9090/i2b2/services/QueryToolService/</url>
<project_path>/</project_path>
<method>REST</method>
<can_override>true</can_override>
</cell_data>
The IP address on the URL is perceived from the environmental variables in the i2b2 server. However, this strategy assumes that the WB can use that IP address to access the i2b2 server directly, which is not always the case.
In my case, the i2b2 VM is hosted on a Linux server with VirtualBox, and the network is assigned with Network Address Translation (NAT) with port forwarding. Therefore, the IP that i2b2 VM has (10.0.2.15) is an internal IP similar to behind a router (which is the Linux hosting server). To access the i2b2 web client from my laptop, I also need to set up a SSH tunnel to forward the laptop ports to my Linux server ports. So, my WB needs to use this setting to access PM cell:
I2b2.2=i2b2demo,REST,http://localhost:9090/i2b2/services/PMService/
instead of using the IP 10.0.2.15.
After my login information gets authenticated by PM, my WB cannot load the cells because of the wrong URLs with IP 10.0.2.15.
To fix this problem, I recommend the communication between WB and i2b2 server should use relative URL rather than the absolute URL. Thank you!
HM