HARP Configuration Reference

All three HARP components - admin webapp, portal webapp, and content engine - are configured using a harp.properties file. Not all settings apply to all components, but the same file contents are used for all three.
  • For web applications, harp.properties is located at /var/harp/harp.properties but cna be overridden by modifying the harp.properties <Environment> entry in the web applications' context XML files in /etc/tomcat7/Catalina/localhost.
  • For the content engine, it is located at /var/harpengine/config/harp.properties but can be overridden via the HARP_CONFIG environment variable.
Important: The HARP configuration file contains usernames and passwords for various other components. As such, its read permissions should be considered carefully, and storage of the file outside of secured instances should be done very thoughtfully.
Important: Unless otherwise noted, the configuration settings for all components in a HARP environment must match across all components.

MongoDB Configuration Settings

harp.mongo.host The hostname/IP address of the MongoDB server.
harp.mongo.port The port number for MongoDB.
harp.app.datastore.db Database name for the application database.
harp.app.datastore.user User name for the application database.
harp.app.datastore.password Password for the application database.
harp.repo.datastore.db Database name for the content repository.
harp.repo.datastore.user User name for the repository database.
harp.repo.datastore.password Password for the repository database.
harp.security.datastore.db Database name for the database containing usernames and passwords..
harp.security.datastore.user User name for the security database.
harp.security.datastore.password Password for the security database.
harp.log.datastore.db Database name for the access log database. This is a separate database due to the fact that it will experience many writes and we don't want to impact the performance of other systems.
harp.log.datastore.user User name for the access log database.
harp.log.datastore.password Password for the access log database.

RabbitMQ Configuration Settings

harp.rabbit.server Host name or IP of the RabbitMQ instance.
harp.rabbit.port Port to use when connecting to RabbitMQ.
harp.rabbit.user RabbitMQ username.
harp.rabbit.password RabbitMQ password.
harp.rabbit.notificationListenerThreads The number of threads the system should use to listen for notifications from RabbitMQ. Notifications are small messages broadcast to all nodes in the system, generally to notify systems of changes to data to affect their removal from local caches. The default is 2, and should generally not be changed. This setting may vary across components.
harp.rabbit.notificationExchange The RabbitMQ exchange being used for notifications. The default is "harp.notifications" and should generally not be changed.
harp.rabbit.eventHandlerThreads The number of threads the system should use to listen for events. This setting only applies for content engine nodes, and may vary across nodes (e.g. one content engine might have 4 threads while another only has 2), though this is discouraged. An event is generally a request for the content engine to do some sort of potentially processing-intensive work. For this reason, this setting should generally not exceed the 1.5x the number of CPUs available on the instance, though reasonably good performance has been seen at up to 2x.
harp.rabbit.eventsQueue The RabbitMQ queue used to distribute events to work engine nodes. The default is "harp.events" and should generally not be changed.
harp.rabbit.channelCacheSize The size of the connection pool to use when connecting to RabbitMQ for purposes of sending and receiving messages.
harp.rabbit.prefetch The number of events to accept from RabbitMQ in a block. The fetched messages are delivered by solr in a single network transmission, improving performance, and the content engine thread will work through each one one-at-a-time. Each thread will pull this many messages at a time.
harp.rabbit.txSize The number of messages to acknowledge at once after they've been completed. These acknowledgements are stored up until this threshold is reached and then acknowledged using a single network message, improving performance.

Solr Configuration Settings

HARP uses three Solr indexes for different kinds of data, each with its own URL. The three URLs, using the default core names, are of the form http://$solr-address:8080/solr/$core-name.
solr.mainCore.url The main content full text index. The default core name for this index is harp-dev.
solr.metadataCore.url Core used to provide autocomplete in the metadata authoring UIs. The default core name for this index is harp-metadata
solr.metadataValuesCore.url Core used to provide autocomplete in the metadata authoring UIs. THe default core name for this index is harp-metadata-values.

E-Mail Configuration Settings

All e-mail messages are sent from Content Engine nodes, so these settings only apply for such instances.
email.host SMTP server location
email.port Port number
email.username User name
email.password Password
email.protocol The server protocol, almost always "SMTP".
email.from The 'from' address for sent e-mails.
email.fromName The display name for the e-mail sender.
email.javaMailProperties.mail.smtp.auth true/false. Configures whether authentication is required by the SMTP server.
email.javaMailProperties.mail.smtp.starttls.enable true/false. Configures whether to connect using starttls.
email.javaMailProperties.mail.smtp.ssl.enable true/false. Whether to connect using SSL.

ImageMagick Configuration Settings

HARP uses a program called ImageMagick to convert print-oriented graphics into web-friendly formats. All such conversion is performed in the Content Engine, so these settings only apply to content engine nodes.
harp.imagemagick.convert The full convert command. On non-Windows systems, this can almost always be simply "convert". For Windows systems, you may need to specify the full path to ImageMagick's convert.exe file, since Windows may have a completely different convert command on the system's %PATH%.
harp.imagemagick.convert.args Command-line arguments to pass to the convert command.

ReCaptcha Configuration Settings

HARP uses ReCaptcha captchas for its new user page. It's best practice to obtain private ReCaptcha keys for different installations. These settings only apply for the admin webapp.
harp.recaptchaPublicKey The public key.
harp.recaptchaPrivateKey The private key.

Other Configuration Settings

newUser.requireVerification true/false. Whether new users are required to authenticate their e-mail addresses. Disable this for cases where there is no web server configured, since users will never receive the 'welcome' email containing their verification link.
harp.web.jsdebug true/false. Whether the admin webapp should use the uncompressed compressed javascript and CSS source files (true) or the compressed and minified files (false). Should always be false in production environments.
web.url The base URL of the admin web application, used in generating URLs in e-mail addresses and a few other places.
web.appUrlPrefix The URL path to the admin webapp under web.url.
web.contentServletPath The content base path underneath the admin webapp. Should never be changed.
web.pubsUrlPath The publication base path underneath the admin webapp. Should never be changed.
web.previewUrlPath The path to the project explorer URL under the admin webapp. Should never be changed.
harp.ehcache.config All harp components manage caching using EhCache. This specifies the configuration file for EhCache, and should rarely if ever be changed.