Server Configuration

config.yml is the top-level configuration file for Jobson. It is a standard YAML file.

Configuration Note: Dropwizard

Internally, Jobson currently uses dropwizard to handle its server configuration. If you need to configure webserver properties (e.g. ports, logs), refer to the dropwizard configuration reference

Note: Relative paths are resolved relative to config.yml

Top-Level Fields

Top-level fields
Key Default Description
specs: specs/ Path to the job specs directory
jobs: jobs/ Path to the jobs directory
workingDirs: (see below) Path to the temporary working directories
users: (see below) An object containing the users configuration
authentication: (see below) An object containing the authentication configuration
execution: (see below) An object containing the execution configuration

workingDirs: Working Directory Configuration

Configuration for working directories. Each process spawned by Jobson launches in its own working directory.

Working Directory Configuration
Key Default Description
dir: wds/ Path the directory that holds working directories
removeAfterExecution: (see below) Configuration for removing working directories after execution

removeAfterExecution: Policy for Removing Working Directories

Key Default Description
enabled: true Indicates whether Jobson should remove working directories after execution

users:: Users Configuration

Key Default Description
file users Path to the users file. Used when basic authentication is enabled

authentication:: Authentication Configuration

The relevant authentication: fields change based on what type: of authentication that was specified. guest auth has different configuration requriements from jwt auth, for example.

Key Default Description
type: basic The type of authentication to use. Valid values are basic, guest, and jwt. Other keys in authentication: depend on what type: was specified (see below)

type: guest: Guest Authentication Configuration

With guest authentication, the server will accept all incoming and assign them a username of guestUserName.

Key Default Description
guestUserName guest The username to assign to all requests

type: basic: HTTP Basic Authentication Configuration

With basic authentication, the server will use a HTTP Basic (RFC 7617) authentication scheme to collect a username+password pair from clients. Those credentials will then be authenticated against entries in Jobson’s users file (see TODO). Valid credentials shall be permitted to use the API. Invalid credentials shall be rejected.

Key Default Description
realm JobsonBasicAuth The “realm” given during the basic auth scheme. For web-browser clients, this is usually displayed as a string in the popup dialog

type: jwt: Stateless JSON Web Token (JWT) Authentication Configuration

With jwt authentication, the server will use stateless JWTs (RFC 7519), which allow clients to authenticate themselves externally. When enabled, the Jobson server expects clients to set an Authorization: HTTP header with a value of Bearer {json-web-token}. The Jobson server will accept the credentials in the token provided the token was signed with secretKey (below). If the header is missing, or mis-signed, Jobson shall reject the request.

Key Default Description
secretKey (no default) Should be a base64-encoded string. The signature algorithm used by Jobson is “HS512” (from here), which is a HMAC, SHA-512 algorithm

execution:: Execution Configuration

Key Default Description
maxConcurrentJobs: 10 The number of applications that Jobson is allowed to run concurrently. Jobs are queued if there there are currently more than this number of applications running.
delayBeforeForciblyKillingJobs: PT10S An ISO8601 duration string that specifies how long Jobson should wait after sending a SIGINT to an application (see signals) before sending a SIGKILL. A SIGKILL is guaranteed to kill an application, but might result in a harsh exit. Some applications can intelligently handle SIGINTs, allowing them to cleanup resources, but might take time to perform cleanup.