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 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 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 = "" //The shrine hub's URL as observed from this tomcat server
i2b2BaseUrl = "" 	//The local i2b2's URL as observed from this tomcat server
i2b2Domain = "exampleDomain"
i2b2ShrineProjectName = "ACT"

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 = ""

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

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

  breakdownResultOutputTypes {
      description = "Age patient breakdown"
      description = "Race patient breakdown"

      description = "Vital Status patient breakdown"

      description = "Gender patient breakdown"

  hub {
    client {
      serverUrl = ${shrineHubBaseUrl}

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

    adapterMappingsFileName = "AdapterMappings.csv"

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

  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 = ""
      //provide the email address of the shrine node system admin, to handle bounces and invalid addresses
      to = ""
      //provide the externally-reachable URL for the data steward
      externalStewardBaseUrl = ""

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.