Work with your hub's administrator to gain access to the hub's IP address(es) before you can proceed in this section.

First, ask your hub admin for the base url for your hub. That admin will ask you for your public IP address so that the hub can open an inbound firewall hole for your system. "Inbound" access is from the perspective of the hub.  In most cases, if a downstream site can reach the Internet without restrictions, then no firewall configuration is necessary on the downstream side.

Second, ensure that you can reach the hub's tomcat service from your shrine host with this curl command. (Substitute the right DNS name for the hub.) In the example below, if your command executes successfully, you will receive a "pong 200" response:

curl -kw "\n%{response_code}\n" -X GET https://shrine-hub.faraway.com:6443/shrine-api/hub/ping
pong
200

If this step does not succeed, work with your local network admin group to resolve this network problem.

Third, edit your shrine.conf to use the hub's base url. The shrine.conf template uses the shrineHubBaseUrl property for this:

shrineHubBaseUrl = "https://shrine-hub.faraway.com:6443"


shrine {...}

Fourth, tell your hub admin that you are ready to run a test query. He will need to know your node key (from your shrine.conf), your preferred node name, your i2b2 user domain, and your sys admin email address.

A few notes about these values:

  1. Once you select your node key value, it cannot be changed in the hub. Please select a value unique for your site. It is never displayed in the UI so should be insulated from branding considerations.
  2. Please keep your preferred node name descriptive and concise.  This is the value that will be displayed in query result outputs, so consider branding carefully. It is easy to change.
  3. Please use an i2b2 domain that reasonably reflects your site. Please do not use the default value.
  4. For your sys admin email address, consider using an alias email for your team to simplify your vacation plans.

The hub admin will run this curl command to add your node to the network.

curl -u username:password -w "\n%{response_code}\n" -k -X PUT "https://shrine-hub.faraway.com:6443/shrine-api/hub/createNode/yourNodeKey?nodeName=your%20Node%20Name&userDomain=yourDomain&adminEmail=you@example.com&sendQueries=false"

Start tomcat.

sudo service shrine start



If all is well after SHRINE starts you should see recurring entries of your shrine node asking the hub for updates in shrine-api.log:

2020-Jun-26 15:46:48.468 |  INFO | Log$            | httpClient-135  | No message received from https://shrine-hub.faraway.com:6443/shrine-api/mom/receiveMessage/yourNodeKey?timeOutSeconds=10, HTTP Response 204 No Content  
2020-Jun-26 15:46:58.471 |  INFO | Log$            | httpClient-135  | No message received from https://shrine-hub.faraway.com:6443/shrine-api/mom/receiveMessage/yourNodeKey?timeOutSeconds=10, HTTP Response 204 No Content  
2020-Jun-26 15:47:08.474 |  INFO | Log$            | httpClient-135  | No message received from https://shrine-hub.faraway.com:6443/shrine-api/mom/receiveMessage/yourNodeKey?timeOutSeconds=10, HTTP Response 204 No Content  

Open your browser and clear the the cache. Use your browser to create a topic and run a query in shrine.

https://example.com:6443/shrine-api/shrine-webclient/#/login

After you successfully run a query and get results back from other nodes then you should start accepting queries from elsewhere. Let your hub admin know you are ready. He will run this curl command so that you receive queries from the network:

# The hub admin will run
curl -u username:password -w "\n%{response_code}\n" -k -X PUT "https://shrine-hub.faraway.com:6443/shrine-api/hub/modifyNode/yourNodeKey?sendQueries=true"

Once your hub admin has done that, use your browser to run another test query to see results from your node listed with the others.