Skip to main content

Starter Kit DRS Configuration

The Starter Kit DRS service can be configured with modifiable properties. All property configuration is done via a YAML config file that is supplied to the program at runtime via a -c ${CONFIG_FILE} option. This section outlines the structure of the YAML config.

The config file MUST start with a single root object named drs. All sub-properties are nested under drs.

Configurable drs properties

AttributeDescriptionLinks
serverPropsModifies the behavior of high-level server application properties, such as listening port(s), logging, and CORS headers.See serverProps for more info.
databasePropsConnect to a target database that has been set up with the prerequisite table schema for Starter Kit DRSSee databaseProps for more info.
serviceInfoDisplay custom information about the deployed web service via the /service-info endpointSee serviceInfo for more info on configuring a custom Service Info response. See DRS Service Info Defaults for the default service info values for Starter Kit DRS deployments.
drsServicePropsServer properties unique only to the DRS API (and not applicable to other Starter Kit services)See drsServiceProps for more info

DRS Service Info Defaults

The following table lists the default attribute values returned over /service-info for Starter Kit DRS services.

AttributeDefault Value
idorg.ga4gh.starterkit.drs
nameGA4GH Starter Kit DRS Service
descriptionAn open source, community-driven implementation of the GA4GH Data Repository Service (DRS) API specification.
contactUrlmailto:info@ga4gh.org
documentationUrlhttps://github.com/ga4gh/ga4gh-starter-kit-drs
createdAt2020-01-15T12:00:00Z
updatedAt2020-01-15T12:00:00Z
environmenttest
version0.1.0
organization.nameGlobal Alliance for Genomics and Health
organization.urlhttps://ga4gh.org

DRS Service Props

The drsServiceProps object modifies unique properties to the DRS API. A full explanation of configurable drsServiceProps properties is outlined below

AttributeDescriptionData TypeDefault
serveFileURLForFileObjectsIndicates whether the DRS service should return file:// URLs of DRSObject file location to the client. If true, assumes that the client has access to the same filesystem as the service (e.g. HPC environment, or local machine). Applies only to 'file' based objects (ie not https, s3, etc.)booleanfalse
serveStreamURLForFileObjectsIndicates whether the DRS service should provide the streaming endpoint URL to the client, for files that the server can access but the client cannot. If true, assumes that client cannot access the file by its path. Applies only to 'file' based objects (ie not https, s3, etc.)booleantrue

Example Starter Kit DRS Config

The following snippet displays an example complete YAML configuration for a deployment of the Starter Kit DRS service.

drs:
serverProps:
scheme: https
hostname: drs-api-starterkit.example.com
publicApiPort: 80
adminApiPort: 7000
databaseProps:
url: jdbc:postgresql://starter-kit-demo-db.ga4gh.org:5555/drsdb
username: ga4gh-admin
password: makeSureThisIsSecure123
serviceInfo:
id: org.ga4gh.drs.public-dataset
name: Genomics Public Dataset DRS Service
description: Serves genomics public datasets according to DRS specification
drsServiceProps:
serveFileURLForFileObjects: true
serveStreamURLForFileObjects: false