Skip to content
This repository has been archived by the owner on Sep 1, 2023. It is now read-only.
/ jobson Public archive

A platform for transforming command-line applications into a job service.

License

Notifications You must be signed in to change notification settings

adamkewley/jobson

Repository files navigation

⚠️ Warning ⚠️: This project is (effectively) unmaintained.

It mostly works fine, but additional patch/feature support is not currently available, or is very sparse. Apologies for the inconvenience, but I am quite busy 😥!

  • AK

jobson

A platform for transforming command-line applications into a job service

DOI

ui video demo

📖 Documentation, ⭐️ Demo

Jobson is a platform (backend webserver, frontend UI, and command-line client) that transforms command-line applications into a web-ready job service. Jobson's goal is to make it easy to share existing applications across the web without requiring a lot of server expertise. It was started in 2017 as internal software for handling scientific data requests for the Gaia satellite mission. Because it solves a general problem (turning arbitrary CLI applications into a web service) it was subsequently open-sourced in 2018.

Jobson generates a standard web service from a job specification file:

name: Trivial Application
description: Echoes supplied message to stdout

expectedInputs:
- id: message
  type: string
  name: Message
  description: The message to echo
  default: Hello, world!

execution:
  application: echo
  arguments:
  - ${inputs.message}

Quickstart

See documentation for comprehensive walkthrough.

Requires java (8+):

# install and add to PATH
wget https://github.com/adamkewley/jobson/releases/download/1.0.14/jobson-nix-1.0.14.tar.gz
tar xvf jobson-nix-1.0.14.tar.gz
export PATH=$PATH:jobson-nix-1.0.14/bin

# create demo workspace
jobson new --demo

# generate new spec
jobson generate spec someSpec

# edit
#nano specs/someSpec/spec.yml

# validate 
jobson validate spec someSpec

# host JSON API for running job
jobson serve config.yml

See installation documentation for details.