1.8.1 in Docker - Login/PM Issues

79 views
Skip to first unread message

Chad Dupuis

unread,
Jan 14, 2025, 6:27:45 PMJan 14
to i2b2 Install Help
This seems potentially similar to https://groups.google.com/g/i2b2-install-help/c/t2GgTAswgx4

We are trying to get a containerized setup running in our environment.  This is a fresh install (we do have a 1.7 running elsewhere without docker fwiw).  We have shibboleth logins working and the overall setup seems ok, I was able to make the database tables, can login, even see project based "announcements", but I don't actually seem to be logged in and/or able to see projects correctly...

What I have is the top i2b2 bar and under the user icon I see a. drop down with "User" "Project" "Role" "Version" but they are all just gray text with no links or data.

In my message log I see (some data xxxx'd):
<ns2:response xmlns:ns2="http://www.i2b2.org/xsd/hive/msg/1.1/" xmlns:ns4="http://www.i2b2.org/xsd/cell/pm/1.1/" xmlns:ns3="http://www.i2b2.org/xsd/hive/msg/version/">
    <message_header>
        <i2b2_version_compatible>1.1</i2b2_version_compatible>
        <hl7_version_compatible>2.4</hl7_version_compatible>
        <sending_application>
            <application_name>PM Cell</application_name>
            <application_version>1.700</application_version>
        </sending_application>
        <sending_facility>
            <facility_name>i2b2 Hive</facility_name>
        </sending_facility>
        <receiving_application>
            <application_name>PM Cell</application_name>
            <application_version>1.700</application_version>
        </receiving_application>
        <receiving_facility>
            <facility_name>i2b2 Hive</facility_name>
        </receiving_facility>
        <datetime_of_message>2025-01-14T16:20:31.442-06:00</datetime_of_message>
        <message_control_id>
            <message_num>Rug04shhWGtC0M21i52jn</message_num>
            <instance_num>1</instance_num>
        </message_control_id>
        <processing_id>
            <processing_id>P</processing_id>
            <processing_mode>I</processing_mode>
        </processing_id>
        <accept_acknowledgement_type>AL</accept_acknowledgement_type>
        <application_acknowledgement_type>AL</application_acknowledgement_type>
        <country_code>US</country_code>
        <project_id/>
    </message_header>
    <response_header>
        <result_status>
            <status type="DONE">PM processing completed</status>
        </result_status>
    </response_header>
    <message_body>
        <ns4:configure>
            <environment>PRODUCTION</environment>
            <helpURL>http://www.i2b2.org</helpURL>
            <user>
                <full_name>My Name</full_name>
                <user_name>x...@xxx.edu</user_name>
                <email>x...@xxx.edu</email>
                <password is_token="true" token_ms_timeout="1800000">SessionKey:xxxxxx</password>
                <domain>XXX</domain>
                <is_admin>true</is_admin>
                <param name="authentication_method">SAML</param>
                <project id="Demo">
                    <name>i2b2 Demo</name>
                    <wiki>http://www.i2b2.org</wiki>
                    <path>/Demo</path>
                    <role>DATA_PROT</role>
                    <role>MANAGER</role>
                    <role>USER</role>
                    <param name="announcement">&lt;b>Test announce&lt;/b></param>
                </project>
            </user>
            <domain_name>XXX</domain_name>
            <domain_id>XXX</domain_id>
            <active>true</active>
            <cell_datas>
                <cell_data id="CRC">
                    <name>Data Repository</name>
                    <url>http://localhost:9090/i2b2/services/QueryToolService/</url>
                    <project_path>/</project_path>
                    <method>REST</method>
                    <can_override>true</can_override>
                </cell_data>
                <cell_data id="FRC">
                    <name>File Repository </name>
                    <url>http://localhost:9090/i2b2/services/FRService/</url>
                    <project_path>/</project_path>
                    <method>SOAP</method>
                    <can_override>true</can_override>
                </cell_data>
                <cell_data id="IM">
                    <name>IM Cell</name>
                    <url>http://localhost:9090/i2b2/services/IMService/</url>
                    <project_path>/</project_path>
                    <method>REST</method>
                    <can_override>true</can_override>
                </cell_data>
                <cell_data id="ONT">
                    <name>Ontology Cell</name>
                    <url>http://localhost:9090/i2b2/services/OntologyService/</url>
                    <project_path>/</project_path>
                    <method>REST</method>
                    <can_override>true</can_override>
                </cell_data>
                <cell_data id="WORK">
                    <name>Workplace Cell</name>
                    <url>http://localhost:9090/i2b2/services/WorkplaceService/</url>
                    <project_path>/</project_path>
                    <method>REST</method>
                    <can_override>true</can_override>
                </cell_data>
            </cell_datas>
            <global_data/>
        </ns4:configure>
    </message_body>
</ns2:response>

on the host doing curl http://localhost:9090/i2b2/services/listServices shows all services as active.


Chrome shows some possibly useful errors:

i2b2_loader.js:124 EVENT FIRED i2b2.events.afterFrameworkInit
hive_globals.js:101 i2b2_BaseCell superclass Initialize function for Cell [PM]
i2b2_cell_communicator.js:15 communicatorFactory: 'PM' does not have a cellURL specified
(anonymous) @ i2b2_cell_communicator.js:15
(anonymous) @ i2b2_msgs.js:15
hive_globals.js:157 EVENT FIRED i2b2.events.afterCellInit[PM]
PM_view.js:297 [EVENT CAPTURED i2b2.events.afterCellInit] --> PM
i2b2_loader.js:110 EVENT FIRED i2b2.events.afterHiveInit
PM_ctrlr.js:91 Logged in xx...@xxx.edu with xxxx [I removed the actual user login]
i2b2_cell_communicator.js:294 [AJAX SUCCESS] i2b2.PM.ajax.getUserAuth
PM_ctrlr.js:187 PROCESS Login XML
PM_ctrlr.js:188  === run the following command in console to view message sniffer: i2b2.hive.MsgSniffer.show() ===
PM_ctrlr.js:256 AJAX Login Successful! Updated: i2b2.PM.model
PM_ctrlr.js:275 1 project(s) discovered for user

PM_ctrlr.js:587 Uncaught TypeError: Cannot set properties of undefined (setting 'WDT')
    at i2b2.PM._processLaunchFramework (PM_ctrlr.js:587:17)
    at Object.clickOK (PM_view.js:177:21)
    at HTMLButtonElement.onclick ((index):1:39)
i2b2.PM._processLaunchFramework @ PM_ctrlr.js:587
clickOK @ PM_view.js:177
onclick @ (index):1
PM_ctrlr.js:436 EVENT FIRE i2b2.events.afterAllCellsLoaded
PM_ctrlr.js:447 Uncaught TypeError: Cannot read properties of undefined (reading 'WDT')
    at i2b2.hive.loadMonitor (PM_ctrlr.js:447:21)
i2b2.hive.loadMonitor @ PM_ctrlr.js:447
setInterval
i2b2.PM._processLaunchFramework @ PM_ctrlr.js:454
clickOK @ PM_view.js:177
onclick @ (index):1
PM_ctrlr.js:441 EVENT FIRE i2b2.events.afterLogin
PM_misc.js:20 Uncaught TypeError: Cannot read properties of undefined (reading 'model')
    at i2b2.h.inDebugMode (PM_misc.js:20:50)
    at i2b2.h.debugElements (hive_helpers.js:193:16)
    at Object.<anonymous> (i2b2_layout.js:304:16)
    at c (jquery.min.js:2:28327)
    at Object.fireWith (jquery.min.js:2:29072)
    at Object.fire (jquery.min.js:2:29108)
    at PM_ctrlr.js:442:36
i2b2.h.inDebugMode @ PM_misc.js:20
i2b2.h.debugElements @ hive_helpers.js:193
(anonymous) @ i2b2_layout.js:304
c @ jquery.min.js:2
fireWith @ jquery.min.js:2
fire @ jquery.min.js:2
(anonymous) @ PM_ctrlr.js:442
setTimeout
i2b2.hive.loadMonitor @ PM_ctrlr.js:440
setInterval
i2b2.PM._processLaunchFramework @ PM_ctrlr.js:454
clickOK @ PM_view.js:177
onclick @ (index):1Understand this errorAI
13[Violation] Added non-passive event listener to a scroll-blocking <some> event. Consider marking event handler as 'passive' to make the page more responsive. See <URL>
goldenlayout.min.js:1 Uncaught lm.errors.ConfigurationError {name: 'Configuration Error', message: 'Unknown component "i2b2.ONT.view.nav"', node: undefined, stack: 'Error\n    at https://xxxx/js-…xt/goldenlayout/1.5.9/goldenlayout.min.js:1:66396'}
(anonymous) @ goldenlayout.min.js:1
(anonymous) @ goldenlayout.min.js:1Understand this errorAI
VM250:1 Uncaught TypeError: Cannot read properties of undefined (reading 'trigger_WDT')
    at <anonymous>:1:9
(anonymous) @ VM250:1
setTimeout
i2b2.PM._processLaunchFramework @ PM_ctrlr.js:587
clickOK @ PM_view.js:177
onclick @ (index):1Understand this errorAI
PM_misc.js:132 Uncaught TypeError: Cannot read properties of undefined (reading 'doLogout')
    at Object.<anonymous> (PM_misc.js:132:21)
    at c (jquery.min.js:2:28327)
    at Object.fireWith (jquery.min.js:2:29072)
    at Object.fire (jquery.min.js:2:29108)
    at fireLogout (PM_misc.js:50:13)
(anonymous) @ PM_misc.js:132
c @ jquery.min.js:2
fireWith @ jquery.min.js:2
fire @ jquery.min.js:2
fireLogout @ PM_misc.js:50
setTimeout
resetTimer @ PM_misc.js:62
startTimer @ PM_misc.js:78
i2b2.PM._processUserConfig @ PM_ctrlr.js:218
i2b2.hive.communicatorFactory.retCommObj._defaultCallbackOK @ i2b2_cell_communicator.js:344
success @ i2b2_cell_communicator.js:231
c @ jquery.min.js:2
fireWith @ jquery.min.js:2
l @ jquery.min.js:2
(anonymous) @ jquery.min.js:2
load
send @ jquery.min.js:2
ajax @ jquery.min.js:2
i2b2.hive.communicatorFactory.retCommObj._doSendMsg @ i2b2_cell_communicator.js:264
eval @ VM203:3
i2b2.PM.ctrlr.SamlLogin @ PM_ctrlr.js:116
(anonymous) @ /saml-acs.php:
PM_misc.js:124 Uncaught TypeError: Cannot read properties of undefined (reading 'model')
    at HTMLButtonElement.<anonymous> (PM_misc.js:124:29)
    at HTMLButtonElement.dispatch (jquery.min.js:2:43064)
    at HTMLButtonElement.<anonymous> (jquery.min.js:2:41048)


At this point I've tried numerous combinations of proxy.php settings and related settings to try to get the PMCellUrl error to go away assuming (possibly incorrectly) that that is the crux of the issues, but I'm running out of ideas.  Any guidance would be appreciated.  Thanks!

Vaibhav Talap

unread,
Jan 15, 2025, 1:04:28 PMJan 15
to i2b2 Install Help

Hello Chad,

Thank you for your detailed email.

Can you please confirm have you configured proxy related setting in proxy.conf.
Also can you please give us some details about proxy.php file also i2b2.config.json.

We will review your queries thoroughly and get back to you soon.


Best regards,
Persistent Systems Support Team

Message has been deleted

Vaibhav Talap

unread,
Jan 23, 2025, 9:21:04 PMJan 23
to i2b2 Install Help

Hello Chad,

Could you please let us know which dockerized version you are using?
Additionally, we will need some additional files, such as proxy.conf and i2b2_config_domains.json.


Best regards,
Persistent Systems Support Team

Will Ford [Wake Forest]

unread,
Feb 20, 2025, 1:38:07 PMFeb 20
to i2b2 Install Help
Hey Chad,

Was looking through i2b2 help and I had an issue similar to this- I had to do a few things.  I should mention I'm using traefik so my urls may be slightly different.

First, I think the urlProxy in the standard file is prefixed with './', but removing it and going with just the filename worked for me.

cat i2b2_config_domains.json
{
        "urlProxy": "proxy.php",
        "urlFramework": "js-i2b2/",
        "lstDomains": [
                {   "domain": "i2b2demo",
                        "name": "staging",
                        "urlCellPM": "<server url>/i2b2/services/PMService/",
                        "allowAnalysis": true,
                        "debug": false
                }
        ]
}

The second thing that took a while to sort out was something in the application throws a warning, so I had to move the php.ini-production file into place to suppress warnings:

RUN cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/conf.d/php.ini

Hopefully this helps if you're still stuck!

-Will
Reply all
Reply to author
Forward
0 new messages