SHRINE gets its configuration from a configuration file named shrine.conf in /opt/shrine/tomcat/lib. If you are installing a downstream (non-hub) node, copy the shrine-setup/qep-and-adapter-shrine.conf file from shrine-setup.zip to tomcat's lib directory. If you are creating a hub use hub-and-qep-shrine.conf instead.  (ACT participants should configure their hosts as downstream nodes.)

cp shrine-setup/qep-and-adapter-shrine.conf /opt/shrine/tomcat/lib/shrine.conf


In this guide, we will refer to this file often and will go more in detail on configuring this file in the later chapters). Here is the example shrine.conf file from shrine-setup.zip. You will need to customize it for your own node on your network.  In the example below, the first four lines define values for parameters that are used throughout the configuration file. 

shrineHubBaseUrl = "https://shrine-hub.faraway.com:6443" //The shrine hub's URL as observed from this tomcat server
i2b2BaseUrl = "http://i2b2.example.com:9090" 	//The local i2b2's URL as observed from this tomcat server
i2b2Domain = "exampleDomain"
i2b2ShrineProjectName = "SHRINE"

shrine {

  nodeKey = "testNode" //node key to get information from the hub about this node.

  messagequeue {
    blockingq {
      serverUrl = ${shrineHubBaseUrl}/shrine-api/mom
    }
  }

  //shrineDatabaseType = "mysql" // "mysql" by default. It can be "sqlserver" "mysql" or "oracle"

  webclient {
   domain = ${i2b2Domain}
   name  = ${i2b2ShrineProjectName}
   siteAdminEmail = "shrine-admin@example.com"
  }

  pmEndpoint {
    url = ${i2b2BaseUrl}/i2b2/services/PMService/getServices
  }

  ontEndpoint {
    url = ${i2b2BaseUrl}/i2b2/services/OntologyService/
  }
  
  hiveCredentials {
    domain = ${i2b2Domain}
    username = "demo"
    password = "changeit"
    crcProjectId = "Demo"
    ontProjectId = ${i2b2ShrineProjectName}
  }//hiveCredentials

  breakdownResultOutputTypes {
    PATIENT_AGE_COUNT_XML {
      description = "Age patient breakdown"
    }
      
    PATIENT_RACE_COUNT_XML {
      description = "Race patient breakdown"
    }

    PATIENT_VITALSTATUS_COUNT_XML {
      description = "Vital Status patient breakdown"
    }

    PATIENT_GENDER_COUNT_XML {
      description = "Gender patient breakdown"
    }
  }//breakdownResultOutputTypes

  hub {
    client {
      serverUrl = ${shrineHubBaseUrl}
    }
  }//hub

  adapter {
    crcEndpoint {
      url = ${i2b2BaseUrl}/i2b2/services/QueryToolService/
    }

    adapterMappingsFileName = "AdapterMappings.csv"
  }//adapter

  keystore {
    file = "/opt/shrine/shrine.keystore"
    password = "changeit"
    privateKeyAlias = "shrine-node1"
    keyStoreType = "JKS"
    caCertAliases = ["shrine-ca"]
  }//keystore

  steward {
    createTopicsMode = Approved //the default is Pending - the most secure - but most sites use Approved

    emailDataSteward {
      //provide the email address of the shrine node system admin, to handle bounces and invalid addresses
      from = "shrine-admin@example.com"
      //provide the email address of the shrine node system admin, to handle bounces and invalid addresses
      to = "shrine-steward@example.com"
      //provide the externally-reachable URL for the data steward
      externalStewardBaseUrl = "https://shrine.example.com:6443/shrine-api/shrine-steward"
    }
  }//steward
}//shrine

The nodeKey value will be used to identify your node from the Hub. This value must be a unique alphanumeric identifier in your network. If you have any questions, please contact the hub administrator for more information.

Choose a custom value for your domain parameter that clearly identifies your institution. Do not leave it at its default values.