i2b2 Sponsored Project/s:
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
{"report":{"fcp":2696.2999999998137,"ttfb":1001.7000000001863,"pageVisibility":"visible","entityId":10344,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":16,"apdex":0.5,"journeyId":"f7612576-c7ea-4945-b4ad-91ddcb47c3f0","navigationType":0,"readyForUser":2809.2000000001863,"redirectCount":0,"resourceLoadedEnd":3033.2999999998137,"resourceLoadedStart":1015.2000000001863,"resourceTiming":[{"duration":1068.7999999998137,"initiatorType":"link","name":"https://community.i2b2.org/jira/s/7fd763ecdf5ed1f47fc4d22fa8382e97-CDN/4x9nqn/820011/16zrvj4/49fa3aa3d35a2cc689cbf274e66cc41a/_/download/contextbatch/css/_super/batch.css","startTime":1015.2000000001863,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1015.2000000001863,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":2084,"responseStart":0,"secureConnectionStart":0},{"duration":1068.5999999996275,"initiatorType":"link","name":"https://community.i2b2.org/jira/s/898b8076c5e82f53cd816ca393e45a56-CDN/4x9nqn/820011/16zrvj4/f614b50eeb842ebd1ea7ab2903699907/_/download/contextbatch/css/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.css?jira.create.linked.issue=true&richediton=true","startTime":1015.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1015.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":2084.0999999996275,"responseStart":0,"secureConnectionStart":0},{"duration":1106.4000000003725,"initiatorType":"script","name":"https://community.i2b2.org/jira/s/4c9c503fe98f210445831b0d7b0cdc33-CDN/4x9nqn/820011/16zrvj4/49fa3aa3d35a2cc689cbf274e66cc41a/_/download/contextbatch/js/_super/batch.js?locale=en-US","startTime":1015.5999999996275,"connectEnd":1015.5999999996275,"connectStart":1015.5999999996275,"domainLookupEnd":1015.5999999996275,"domainLookupStart":1015.5999999996275,"fetchStart":1015.5999999996275,"redirectEnd":0,"redirectStart":0,"requestStart":1015.5999999996275,"responseEnd":2122,"responseStart":2122,"secureConnectionStart":1015.5999999996275},{"duration":1281.3999999994412,"initiatorType":"script","name":"https://community.i2b2.org/jira/s/694e598c1ae48b0f96655173631cd247-CDN/4x9nqn/820011/16zrvj4/f614b50eeb842ebd1ea7ab2903699907/_/download/contextbatch/js/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.js?jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":1015.7000000001863,"connectEnd":1015.7000000001863,"connectStart":1015.7000000001863,"domainLookupEnd":1015.7000000001863,"domainLookupStart":1015.7000000001863,"fetchStart":1015.7000000001863,"redirectEnd":0,"redirectStart":0,"requestStart":1015.7000000001863,"responseEnd":2297.0999999996275,"responseStart":2297.0999999996275,"secureConnectionStart":1015.7000000001863},{"duration":1290,"initiatorType":"script","name":"https://community.i2b2.org/jira/s/53f54e0ac3f00bb56b136b4d2fff2853-CDN/4x9nqn/820011/16zrvj4/aae1242f5fc81cc6a5bb8bc963ccda29/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en-US","startTime":1016,"connectEnd":1016,"connectStart":1016,"domainLookupEnd":1016,"domainLookupStart":1016,"fetchStart":1016,"redirectEnd":0,"redirectStart":0,"requestStart":1016,"responseEnd":2306,"responseStart":2306,"secureConnectionStart":1016},{"duration":1291.0999999996275,"initiatorType":"script","name":"https://community.i2b2.org/jira/s/d41d8cd98f00b204e9800998ecf8427e-CDN/4x9nqn/820011/16zrvj4/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":1016,"connectEnd":1016,"connectStart":1016,"domainLookupEnd":1016,"domainLookupStart":1016,"fetchStart":1016,"redirectEnd":0,"redirectStart":0,"requestStart":1016,"responseEnd":2307.0999999996275,"responseStart":2307.0999999996275,"secureConnectionStart":1016},{"duration":1291.7000000001863,"initiatorType":"script","name":"https://community.i2b2.org/jira/s/d41d8cd98f00b204e9800998ecf8427e-CDN/4x9nqn/820011/16zrvj4/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":1016.0999999996275,"connectEnd":1016.0999999996275,"connectStart":1016.0999999996275,"domainLookupEnd":1016.0999999996275,"domainLookupStart":1016.0999999996275,"fetchStart":1016.0999999996275,"redirectEnd":0,"redirectStart":0,"requestStart":1016.0999999996275,"responseEnd":2307.7999999998137,"responseStart":2307.7999999998137,"secureConnectionStart":1016.0999999996275},{"duration":1300.3999999994412,"initiatorType":"link","name":"https://community.i2b2.org/jira/s/30748292e4ca68be6947d7969829384b-CDN/4x9nqn/820011/16zrvj4/4f66da484ef7d95a2a604d3ab014374c/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":1016.2000000001863,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1016.2000000001863,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":2316.5999999996275,"responseStart":0,"secureConnectionStart":0},{"duration":1292.199999999255,"initiatorType":"script","name":"https://community.i2b2.org/jira/rest/api/1.0/shortcuts/820011/766848d8ff8ea3676a80e44dfb51696a/shortcuts.js?context=issuenavigation&context=issueaction","startTime":1016.4000000003725,"connectEnd":1016.4000000003725,"connectStart":1016.4000000003725,"domainLookupEnd":1016.4000000003725,"domainLookupStart":1016.4000000003725,"fetchStart":1016.4000000003725,"redirectEnd":0,"redirectStart":0,"requestStart":1016.4000000003725,"responseEnd":2308.5999999996275,"responseStart":2308.5999999996275,"secureConnectionStart":1016.4000000003725},{"duration":1284.2000000001863,"initiatorType":"link","name":"https://community.i2b2.org/jira/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/4x9nqn/820011/16zrvj4/efa42a25652b26dfd802540c024826b3/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.css?jira.create.linked.issue=true&richediton=true","startTime":1035.2000000001863,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1035.2000000001863,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":2319.4000000003725,"responseStart":0,"secureConnectionStart":0},{"duration":1283.0999999996275,"initiatorType":"script","name":"https://community.i2b2.org/jira/s/8087506fefd02b4096991c90836b49f6-CDN/4x9nqn/820011/16zrvj4/efa42a25652b26dfd802540c024826b3/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.js?jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":1035.4000000003725,"connectEnd":1035.4000000003725,"connectStart":1035.4000000003725,"domainLookupEnd":1035.4000000003725,"domainLookupStart":1035.4000000003725,"fetchStart":1035.4000000003725,"redirectEnd":0,"redirectStart":0,"requestStart":1035.4000000003725,"responseEnd":2318.5,"responseStart":2318.5,"secureConnectionStart":1035.4000000003725},{"duration":1568.4000000003725,"initiatorType":"script","name":"https://community.i2b2.org/jira/s/d41d8cd98f00b204e9800998ecf8427e-CDN/4x9nqn/820011/16zrvj4/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":1044.5999999996275,"connectEnd":2597.4000000003725,"connectStart":2570.7999999998137,"domainLookupEnd":1044.5999999996275,"domainLookupStart":1044.5999999996275,"fetchStart":1044.5999999996275,"redirectEnd":0,"redirectStart":0,"requestStart":2597.5999999996275,"responseEnd":2613,"responseStart":2612.2999999998137,"secureConnectionStart":2584.0999999996275},{"duration":1983,"initiatorType":"script","name":"https://community.i2b2.org/jira/s/d41d8cd98f00b204e9800998ecf8427e-CDN/4x9nqn/820011/16zrvj4/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":1050.2999999998137,"connectEnd":1050.2999999998137,"connectStart":1050.2999999998137,"domainLookupEnd":1050.2999999998137,"domainLookupStart":1050.2999999998137,"fetchStart":1050.2999999998137,"redirectEnd":0,"redirectStart":0,"requestStart":1050.2999999998137,"responseEnd":3033.2999999998137,"responseStart":3033.2999999998137,"secureConnectionStart":1050.2999999998137},{"duration":477.29999999981374,"initiatorType":"xmlhttprequest","name":"https://community.i2b2.org/jira/rest/webResources/1.0/resources","startTime":2556.7000000001863,"connectEnd":2556.7000000001863,"connectStart":2556.7000000001863,"domainLookupEnd":2556.7000000001863,"domainLookupStart":2556.7000000001863,"fetchStart":2556.7000000001863,"redirectEnd":0,"redirectStart":0,"requestStart":2556.7000000001863,"responseEnd":3034,"responseStart":3034,"secureConnectionStart":2556.7000000001863}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":949,"connectEnd":970,"secureConnectionStart":954,"requestStart":970,"responseStart":1002,"responseEnd":1050,"domLoading":1014,"domInteractive":3156,"domContentLoadedEventStart":3156,"domContentLoadedEventEnd":3272,"domComplete":3510,"loadEventStart":3510,"loadEventEnd":3511,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":3089.4000000003725},{"name":"bigPipe.sidebar-id.end","time":3090.4000000003725},{"name":"bigPipe.activity-panel-pipe-id.start","time":3090.5},{"name":"bigPipe.activity-panel-pipe-id.end","time":3091.5999999996275},{"name":"activityTabFullyLoaded","time":3294.5}],"measures":[],"correlationId":"3198979f2d7aeb","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":62,"dbReadsTimeInMs":7,"dbConnsTimeInMs":11,"applicationHash":"0629dd8d260e3954ece49053e565d01dabe11609","experiments":[]}}
"-b 0.0.0.0"