A RESTful API, which enables access to cluster jobs, submitted with Nextflow.
- Make a list of information, that should be accessible over the API
- Design a basic API specification with swagger
- Create Java Spring stub classes from swagger
- Implement API with Java Spring Boot
- Implement database for storing the meta information of a Nextflow workflow
- Implement information transfer in an example Nextflow script, with database INSERT commands
This can be information, which is actually interesting for doing workflow statistics. For example get workflows of a certain type, from a certain userID, workflows that failed, workflows that succeeded and so on.
Specific information can be captured by the Nextflow's introspection features:
- scriptId
- scriptName
- scriptFile
- repository
- commitId
- revision
- projectDir
- launchDir
- workDir
- configFiles
- container
- commandLine
- profile
- runName
- sessionId
- resume
- start
Accessible in the workflow completion handler only:
- complete
- duration
Accessible in the workflow completion and error handlers only:
- success
- exitStatus
- errorMessage
- errorReport
An additional information would be a userId, which is a meta information that can come from a third party software, such as a portal runtime environment.
This information can be provided in a metadata.yaml file, which gets parsed in the beginning of the pipeline execution and grabs user information.