This repository was archived by the owner on Sep 1, 2023. It is now read-only.
Releases: adamkewley/jobson
Releases · adamkewley/jobson
0.0.18: Various bugfixes
- Fixed jobson-nix runscript (previously: was calling jobson-nix-$version.jar, rather than jobson-$version.jar - Fixed minor resource leak in file download logic (previously: would leak and throw an exception in the logs if the user cancelled the download)
0.0.17: Fixed bug in working directory cleanup
- Working directory cleanup will now work for non-empty dirs too
0.0.16
Changed to multimodule Maven project:
- Will make it easier to do cross-platform and multi-os builds in one project
- The jobson webserver (previously: 'jobson') has now been moved into a module called 'jobson
- The 'jobson' module now only builds the jobson jar file (previous: built jobson jar, linux tarball, and debian package)
- Added 'jobson-docs' module:
- Builds documentation as a tarball containing static web assets that can be hosted on any standard webserver
- Removes dependency on GitHub pages building the docs
- Requires Jekyll in the build pipeline
- The built docs are automatically deployed to the 'gh-pages' branch
- Added 'jobson-nix' module:
- Tarballs jobson with a runscript, allowing for easy manual installation of Jobson on a *nix platform (e.g. Linux, osx)
- Added 'jobson-deb' module:
- Builds a debian package for Jobson
0.0.15
- In a job spec, the path of an
expectedOutputcan now be a template string (allowing for, e.g. ${request.id}.tar.gz) - Added the option to allow Jobson to clean up a working directory after execution
- By default, cleanup is disabled (same as existing behavior)
- Generated jobson wokspaces (e.g. through
jobson new) contain this new feature inconfig.yml - The key in
config.ymlis:workingDirs: removeAfterExecution: enabled: true - The Jobson server will delete a working directory after a job has finished executing, which might help preserve disk space
- Fixed disk space healthcheck (previously: would always fail)
- (internal) Fixed minor bug in unit tests that caused them to occasionally fail due to a race condition
0.0.14: Quality of Life Improvements and Minor Bugfixes
- Fixed exceptions being thrown when booting application (closes #16) - Implemented support for `required` job inputs, which will cause a job to fail if an output is missing (closes #7) - Implemented support for softlinking dependencies rather than copying them into the job's working directory (closes #15) - Job dependencies now maintain execute permissions when copied into the working directory (closes #8) - Added a root resource to the server at `/`. It will show the only subresource the API has (`/v1/`, closes #11) - The API now emits pretty, rather than uglified, JSON, which is easier to develop with (closes #12)
0.0.13: Added `toString` function into string templating language
- Specs can now use `toString` to convert values into a String (e.g. `${toFile(toString(someProp))}`)
0.0.11: Implemented JWT support
- Implemented support for JSON Web Tokens (JWTs)
- Clients can now set `authentication: type` to "jwt" in the server config
- A `secretKey` also needs to be set in the `authentication:` config. For example:
```
authentication:
type: jwt
secretKey: +LY2OXK7Fb... [a base64 string]
```
- With JWT auth enabled, Jobson searches for an `Authorization` HTTP header with
the value `Bearer {jwt-token}`, where `{jwt-token}` is a standard JWT token encoded
via HS512 encryption (non-configurable)
- The JWT's claims are accepted as-is if the server can verify the JWT was compiled with
the secretKey; otherwise, the request will be rejected as unauthorized
- Stateless JWTs allow internal clusters/microservices to handle authentication separately
from the server
0.0.10: Added additional REST links into the API
- Requesting `/` from the jobson server now returns REST links to sub-resources (e.g. `/v1/jobs`, `/v1/specs`, etc.). Previously, the root returned a 404
- Added REST links for `/jobs/{job-id}/inputs` and `/jobs/{job-id}/outputs`
- **Minor breaking change**: In `/jobs/{job-id}`, the REST link to the job's details is now called `self`. Previously, it was `details`
- The collection returned by `/jobs` now includes REST links for each job entry. Previously, the REST links were empty.
- The response to a sucessful job submission will now include REST links to the newly-created job's details. Previously, the REST links were empty
0.0.9: Fix minor FIN_WAIT2 resource leak
- Small patch to fix a minor FIN_WAIT2 resource leak, which can occur when clients disconnect from the jobson websocket API in a non-ideal way (that is, non-ideal with respect to the TCP spec) - Added a default idle timeout of 10 minutes for all websocket connections (previously, it was 2^63) - Changed the websocket implemented to report websocker errors in the DEBUG log rather than the ERROR log. This is because many websocket errors are connection errors, which occur even in nominal operation (e.g. clients with flakey connections) - Websocket errors no longer result in the websocket session being manually terminated with no error code. Instead, the webserver (Jetty) handles the error code. This is so that timeout errors are correctly reported to clients with the correct timeout code (previously, it was reported as a "normal closure")
0.0.8: Added `join` function to templating
- Added `join` function to template strings. The function takes a delimiter and string array and returns a string (e.g. `${join(",", inputs.someStringInput)}` will join `someStringInput` with commas)
- Minor addition: Added support for single-quoted string literals in the templating language (previously: only double-quoted strings were permitted)
- This closes #6