Skip to content
This repository has been archived by the owner on Aug 24, 2021. It is now read-only.

Configuration

Sebastian Raubach edited this page Apr 18, 2018 · 12 revisions

Configuration

This section will highlight some of the configurations of Germinate. The configurations are stored in the file instance-stuff/<your instance>/config.properties. Currently the following settings are available:

Germinate.Database.Username=<username for the database>
Germinate.Database.Password=<password for the database

Germinate.Database.Server=<server of the germinate database>
Germinate.Database.Name=<name of the germinate database>
Germinate.Database.Port=<port for database connection>

Gatekeeper.URL=<base url of gatekeeper>
Gatekeeper.Database.Server=<server of the gatekeeper database>
Gatekeeper.Database.Name=<name of the gatekeeper database>
Gatekeeper.Database.Port=<port for database connection>

Gatekeeper.BCrypt.Rounds=<number of rounds for the bcrypt hashing algorithm>
Gatekeeper.Registration.Enabled=<allow user registration?>
Gatekeeper.Registration.Needs.Approval=<user registration needs manual approval?>

Germinate.UseAuthentication=<users have to log in to see data?>
Germinate.CookieLifespanMinutes=<the lifespan of cookies in minutes>
Germinate.Debug=<enable to see sql queries run on the server>
Germinate.KeepTemporaryFileForHours=<how long should temporary files be kept?>
Germinate.UploadSizeLimitMB=<file size limit of uploads in MB>
Germinate.AvailablePages=<list of comma separated pages that are available for this instance of germinate>

Germinate.ShowHomeOnLogin=<show the content of the home page on the login page as well?>

Germinate.Server.Logging.Enabled=<should exceptions be logged on the server?>

Germinate.IsUnderMaintenance=<is the server under maintenance?>

Germinate.IsReadOnly=<is the database in read-only mode?>

Germinate.ExternalDataFolder=<optional external data directory outside tomcat>

Germinate.HideIdColumns=<should internal id columns be hidden from tables?>

Germinate.Gallery.Images.Per.Page=<determines the number of images per page>

GoogleAnalytics.Enabled=<should google analytics be enabled?>
GoogleAnalytics.TrackingId=<the google analytics tracking id>

Germinate.Download.Tracking.Enabled=<should download events be tracked?>

CookieNotifier.Enabled=<should the cookie notifier for EU cookie law be enabled?>

Germinate.Build.Additional.Locales=<any additional locales that you would like to support>

Germinate.Template.CustomMenu=<the custom menu structure in XML format>

Germinate.Template.CategoricalColors=<colors used for some of the charts>
Germinate.Template.GradientColors=<colors used for the gradients>
Germinate.Template.Social.ShowFacebook=<show facebook share button?>
Germinate.Template.Social.ShowTwitter=<show twitter share button?>
Germinate.Template.Social.ShowGooglePlus=<show google+ share button?>
Germinate.Template.Logo.Contains.Link=<does the svg logo contain links?>
Germinate.Template.Show.Parallax.Banner=<show parallax image banner?>

Germinate.Template.EmailAddress=<contact email email address>

Germinate.Template.Title=<title of the germinate instance>
Germinate.Template.DatabaseName=<name of the germinate instance>
Germinate.Template.TwitterLink=<twitter link>

Path.Java=<path to the java installation>
Path.R=<path to the r installation>

All items starting with Germinate.Database have already been discussed in Section Setup. Items starting with Gatekeeper.Database can be configured analogously.

We will now explain the meaning and possible settings of all the items. Non-optional properties are marked with "°" whereas "*" marks properties that are non-optional if you want to use the associated functionality. Unmarked properties either have a default value after the type or aren't crucial for Germinate to work properly.

Germinate.Database.Username° [String]
The MySQL username used for the Germinate database.
Germinate.Database.Password* [String]
The MySQL password associated with the username.
Germinate.Database.Server° [String]
The server MySQL is running on.
Germinate.Database.Name° [String]
The name of the database.
Germinate.Database.Port* [x ∈ {0, ..., 49151}]
The port number to use for the database connection.
Gatekeeper.URL* [URL]
The URL of Gatekeeper. This is required if the registration feature is enabled. Refer to property Germinate.Registration.Enabled and Section Setup.
Gatekeeper.Database.Server* [String]
The server MySQL is running on.
Gatekeeper.Database.Name* [String]
The name of the Gatekeeper database..
Gatekeeper.Database.Port* [x ∈ {0, ..., 49151}]
The port number to use for the database connection.
Gatekeeper.BCrypt.Rounds [x ∈ {4, ..., 10}], default: 10
Gatekeeper uses BCrypt to hash passwords. The number of rounds determines how long the hashing will take. A larger number will make it harder to use brute-force to find the password, but at the same time it will influence how long users will have to wait for their password to be verified. The default is a value of 10 which results in 2^10 rounds. Increasing this to 11 will double the runtime to 2^11.
Gatekeeper.Registration.Enabled [true | false], default: false
Germinate and Gatekeeper support user registration. If this property is set to true, users will be able to register for access to your instance of Germinate. The registration will be accessible from the login page. See Section Features for more details.
Gatekeeper.Registration.Needs.Approval [true | false], default: true
If registration is enabled, there are two ways how users are approved for access to Germinate. If this property is set to false, users will automatically be approved and can start using Germinate right away. If this is not what you want, set this to false which will require you to approve requests manually through the Gatekeeper interface. Users will be notified with your decision via mail.
Germinate.UseAuthentication [true | false], default: false
If set to true, the user will have to log in using the credentials stored in Gatekeeper, otherwise no login procedure is required.
Germinate.CookieLifespanMinutes [x ∈ N+], default: 1440
The lifespan of all cookies given in minutes.
Germinate.Debug [true | false], default: false
Set to true if you want to see the SQL queries that are run against the database on each page. This is very handy when debugging or searching for errors. However, this should never (!) be used in production use, since it exposes the database internals.
Germinate.KeepTemporaryFileForHours [x ∈ N+], default: 24
The number of hours temporary files should be kept for. Temporary files are generated whenever the user wants to download parts of the database. They are kept locally at least for the given amount of hours and after this amount of time they will be deleted the next time a user requests any temporary file.
Germinate.UploadSizeLimitMB [Float], default: 0.5
The file size limit of uploads in MB.
GoogleAnalytics.Enabled [true | false], default: false
Germinate supports Google Analytics. Page navigation as well as user interactions will be tracked if this property is set to true.
GoogleAnalytics.TrackingId° [String]
The tracking id provided by Google Analytics.
Germinate.Download.Tracking.Enabled [true | false], default: false
Determines whether Germinate should track downloads of datasets internally. This includes, when Germinate operates without authentication, that users need to provide details about themselves before they can use a dataset. If authentication is enabled, everything happens in the background, because we already have that information about the users.
CookieNotifier.Enabled [true | false], default: false
In accordance with the EU Cookie Law we provide a notify banner at the bottom of the page that informs users that we use cookies. Set this to false to disable this banner.
Germinate.AvailablePages* [CSV]
Not all pages are useful for all instances of Germinate. List the names of those pages that should be available for this instance in a comma-separated fashion, e.g. climate, megaEnvironments, gallery.
Germinate.ShowHomeOnLogin [true | false], default: false
If set to true, the login page will show the content of the home page as well. If set to false, the login page will only contain the text fields for the username and password.
Germinate.Server.Logging.Enabled [true | false], default: true
If set to true, exceptions will be logged on the server side. Otherwise, they will only be forwarded to the client and the client decides what to do with them.
Germinate.IsUnderMaintenance [true | false], default: false
If set to true, the web interface will be completely disabled, just showing a notification that the system is under maintenance.
Germinate.IsReadOnly [true | false], default: false
If set to true, the web interface will not allow the user to perform changes to the database, i.e., the generation/modification of user-created content will be disabled.
Germinate.ExternalDataFolder° [Path]
If this property is set, Germinate will use the given path to look for files like images, data files and external applications. If the property is not set, Germinate will use the internal folders. This option can be useful if your data is huge and you don't want to include it in the generated war file, but rather want to store it in a different location on the server. Make sure that Germinate has read and write access to this folder.
Germinate.HideIdColumns [true | false], default: false
If set to true, the internal id column will be hidden from all tables.
Germinate.Gallery.Images.Per.Page [x ∈ N+], default: 12
This setting determines how many images are shown per page on the gallery page.
Germinate.Gallery.Make.Thumbnails.Square [true | false], default: false
If set to true, the automatically generated thumbnails of images will be square to keep a uniform look across all thumbnails. The default is false to keep it consistent with previous versions.
Germinate.Build.Additional.Locales* [CSV]
A comma separated list of additional locales that you would like to support. See section Customization for more details.
Germinate.Template.CustomMenu° [XML]
This allows you to customize the main menu of Germinate. Please consult Section Germinate Menu for more details and an example.
Germinate.Template.CategoricalColors [CSV(HEX)], default: #1f77b4,#ff7f0e,#2ca02c,#d62728,#9467bd,#8c564b,#e377c2,#7f7f7f,#bcbd22,#17becf
A list of comma separated HEX color values (including the hash) that are used to color categories in some of the charts.
Germinate.Template.GradientColors [CSV(HEX)], default: #000000,#570000,#ff0000,#ffc800,#ffff00,#ffffff
A list of comma separated HEX color values (including the hash) that are used for gradients (low to high).
Germinate.Template.Social.ShowFacebook[true | false], default: false
Set to true if a Facebook share button should appear on the site.
Germinate.Template.Social.ShowTwitter[true | false], default: false
Set to true if a Twitter share button should appear on the site.
Germinate.Template.Social.ShowGooglePlus[true | false], default: false
Set to true if a Google+ share button should appear on the site.
Germinate.Template.Logo.Contains.Link [true | false], default: false
Set to true if the main website logo SVG file contains links. In that case, Germinate will disable the default logo link to "home" and prioritize the SVG-internal links.
Germinate.Template.Show.Parallax.Banner [true | false], default: true
Determines if the parallax scrolling image banner is shown at the top of selected pages or not.
Germinate.Template.EmailAddress° [E-Mail]
The email address that will be displayed on the page as a contact address. Make sure that this is an email address only and nothing else.
Germinate.Template.Title [String], default: "Germinate"
The text to show in the browser title.
Germinate.Template.DatabaseName [String], default: "Germinate Database"
The text to show in the "featured banner" on the page.
Path.Java [Path]
The path to the Java installation. This is optional, since Germinate can get it from the JVM it's running in. However, if required, Germinate can be pointed to a different Java version and will use this to run all internal Java calls.
Path.R° [Path]
The path to the R installation.

Any change to these properties will automatically be picked up by Germinate, i.e. no reload of the web interface on Tomcat is required.

There is also a configuration page directly in Germinate. This page is only visible to administrators and can be reached by going to:

http://Your web server:8080/project.name/#admin-config

An example of this page can be seen in the figure above.

Germinate Menu

Germinate uses a predefined menu structure by default. This default menu setup is based on what we think is a reasonable structure. However, even we are not infallible, so we decided to make the menu customizable.

We will now explain how you can define your own, custom menu structure and we will then give an example of how this can be used.

Structure

The menu of Germinate can be defined in XML format. We will explain this format using the example below:

<menu>
	<item key="home" icon="mdi-home-outline">
		<label key="en_GB">Home</label>
		<label key="de_DE">Home</label>
	</item>
	<item key="category.data">
		<label key="en_GB">Data</label>
		<label key="de_DE">Daten</label>
		<item key="browse-accessions">
			<label key="en_GB">Accessions</label>
			<label key="de_DE">Muster</label>
		</item>
		<item key="category.molecular">
			<label key="en_GB">Molecular data</label>
			<label key="de_DE">Molekulare Daten</label>
			<item key="genotype-datasets">
				<label key="en_GB">Genotypes</label>
				<label key="de_DE">Genotypen</label>
			</item>
			<item key="map-details">
				<label key="en_GB">Maps</label>
				<label key="de_DE">Molekulare Karten</label>
			</item>
		</item>
	</item>
	<item key="category.environment">
		<label key="en_GB">Environment</label>
		<label key="de_DE">Umwelt</label>
		<item key="geographic-search">
			<label key="en_GB">Geographic search</label>
			<label key="de_DE">Geografische Suche</label>
		</item>
	</item>
</menu>

This will result in the following menu structures (English, then German):

  • Home

  • Data

    • Accessions
    • Molecular Data
      • Genotypes
      • Maps
  • Environment

    • Geographic search
  • Home

  • Daten

    • Muster
    • Molekulare Daten
      • Genotypen
      • Genetische Karten
  • Umwelt

    • Geographische Suche

We will now explain the individual elements of the XML file:

menu
The root element of the XML file.
item
This is used for any menu element. This can either be a link to an actual page, or a submenu.
item key
If this item represents an actual Germinate page (cf. Section Features) then this has to be the name of the page. If this item is a sub-menu, then this has to be a unique id.
item icon
The icon that should be used for this menu item. It has to be one of the icons from https://materialdesignicons.com/. They are all prefixed with "mdi-". If no icon is provided, no icon will be shown.
label
Labels are used as the text content of the menu item, i.e. what the user will see. Every item has to provide this information for ALL of the supported languages (cf. Section Customization).
label key
The locale of the supported language.
Clone this wiki locally