@i-vresse/wb-core
Graphical interface to build a workflow file
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.5%) to scientific vocabulary
Repository
Graphical interface to build a workflow file
Basic Info
- Host: GitHub
- Owner: i-VRESSE
- License: apache-2.0
- Language: TypeScript
- Default Branch: main
- Homepage: https://i-vresse-workflow-builder.netlify.app/
- Size: 11.5 MB
Statistics
- Stars: 5
- Watchers: 5
- Forks: 2
- Open Issues: 24
- Releases: 2
Metadata Files
README.md
workflow-builder
Graphical interface to build a workflow file
The haddock3-download application of the main branch is published at https://i-vresse-workflow-builder.netlify.app
The builder allows you to create a complex TOML formatted config file based on a set of JSON schemas.

The workflow builder is organized as a monorepo with packages and apps.
- haddock3-download app: To construct haddock3 workflow and download it for offline running
- haddock3-submit app: To construct haddock3 workflow and submit it for online running
- haddock3-galaxy app: To construct haddock3 workflow and submit inside a galaxy project instance.
- kitchensink app: Demonstration of features of workflow builder
- @i-vresse/wb-core package: React components, state management, input/output functions to create an application
- @i-vresse/wb-form package: Web Form based on JSON Schema
- haddock3_catalog package: Generate script and storage place for haddock3 catalogs
Develop
Requires NodeJS and yarn (tested with v3.2.1).
```shell
Install dependencies
yarn
Run dev servers
yarn dev ```
- Goto http://localhost:3000 for haddock3-download app
- Goto http://localhost:3001 for haddock3-submit app
- Goto http://localhost:3002 for kitchensink app
Unit tests
Tests (*/.test.tsx?) written in vitetest can be run with:
shell
yarn test -- run
To run tests with code coverage use
shell
yarn test -- run --coverage
Creates **/coverage/ directory with HTML and LCOV report.
Integration tests
The integration tests (**/integration-tests/**.spec.ts) are written in playwright.
Before running test ensure browsers are installed with
shell
cd apps/haddock3-download
npx playwright install chromium
Tests can be run with
shell
yarn test:integration
To run a non-headless chromium browser use
shell
yarn test:headed
The browser will pause when a test calls await page.pause(), so you can investigate current state.
There is a VS code extension to run integration tests inside editor.
Linting
shell
yarn lint
To autofix lint errors use
shell
yarn lint -- --fix
To generate JSON report use
shell
yarn lint -- --report json > eslint.report.json
Build
To build production distribution run
shell
yarn build
Which will create apps/*/dist/ directories which should be hosted on the web somewhere.
The build also creates packages/*/dist directories which should be published to npmjs.com.
Component development
Components can be developed/tested/documented using storybook.
The storybooks of the main branch are hosted at
Storybook can be started locally with
shell
yarn storybook
- Goto http://localhost:6008 for storybook of core package
- Goto http://localhost:6007 for storybook of form package
Format
Workflow archive
The workflow builder creates a zip file with a workflow configuration file called workflow.cfg in TOML format.
The configuration file contains paths to input files which are included in the zip file.
Workflow configuration file
The workflow configuration file consists out of 2 parts:
- Global parameters, which are available to engine and each node.
- Tables with parameters for each node the workflow should run.
An uploaded workflow configuration file can contain tables with the same name (this is more lenient then the TOML format).
A generated workflow configuration file with the same node twice will have a TOML string with [somenode] and ['somenode.2'] table respectively.
Catalog
The catalog is a YAML formatted file which tells the app what nodes are available. In has the following info:
- global: Description of global parameters
- schema: What parameters are valid. Formatted as JSON schema draft 7.
- uiSchema: How the form for filling the parameters should be rendered.
- tomlSchema: How toml keys are mapped to in-memory representation.
- nodes: Description of available nodes.
- id: Identifier of node, for computers
- label: Label of node, for humans
- category: Category to which node belongs
- description: Text describing what node needs, does and produces.
- schema: What parameters are valid. Formatted as JSON schema draft 7.
- uiSchema: How the form for filling the parameters should be rendered.
- tomlSchema: How toml keys are mapped to in-memory representation.
- catagories: Descriptions of node categories
- name: Name of category
- description: Description of category
- collapsed (optional): Whether category should be rendered collapsed initially
- examples: Title and link to example workflows
- map with title as key and link as value
- title: Title of the catalog
- nodeLegend: Legend of the node in the app. Default is 'Node'
schema
See docs/schema.md.
uiSchema
See docs/uiSchema.md.
tomlSchema
See docs/tomlSchema.md.
Catalog index
In the worklfow builder you can pick a catalog from a list. This list gets downloaded from public/catalog/index.json and is formatted like
json
[
["<title of catalog>", "<URL of catalog YAML file>"]
]
The first catalog in the index.json file will be shown when you open the app.
The haddock3 catalogs can be generated by a Python script in packages/haddock3_catalog from the haddock3 library. The haddock3 catalogs and example are symbolicly linked to /app/*/public.
Owner
- Name: Interactive Virtual Research Environment for Scientific Software Execution
- Login: i-VRESSE
- Kind: organization
- Repositories: 5
- Profile: https://github.com/i-VRESSE
Project with Netherlands eScience Center and Bonvin Lab
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: i-VRESSE workflow-builder
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Stefan
family-names: Verhoeven
affiliation: Netherlands eScience Center
orcid: 'https://orcid.org/0000-0002-5821-2060'
- given-names: Rodrigo
family-names: Honorato
affiliation: Utrecht University @ BonvinLab
orcid: 'https://orcid.org/0000-0001-5267-3002'
- affiliation: "Netherlands eScience Center"
family-names: Vreede
given-names: Barbara
orcid: https://orcid.org/0000-0002-5023-4601
repository-code: 'https://github.com/i-VRESSE/workflow-builder'
abstract: >-
The builder application allows you to create a complex TOML formatted config file based on a set of JSON schemas.
license: Apache-2.0
identifiers:
- type: doi
value: 10.5281/zenodo.6953674
description: >-
This DOI represents all versions, and will
always resolve to the latest one.
GitHub Events
Total
- Issues event: 1
- Watch event: 1
- Issue comment event: 1
- Push event: 1
Last Year
- Issues event: 1
- Watch event: 1
- Issue comment event: 1
- Push event: 1
Committers
Last synced: almost 3 years ago
All Time
- Total Commits: 441
- Total Committers: 4
- Avg Commits per committer: 110.25
- Development Distribution Score (DDS): 0.206
Top Committers
| Name | Commits | |
|---|---|---|
| Stefan Verhoeven | s****n@g****m | 350 |
| Stefan Verhoeven | s****n@e****l | 67 |
| Barbara Vreede | b****e@e****l | 22 |
| Rodrigo V Honorato | r****o@u****l | 2 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 90
- Total pull requests: 76
- Average time to close issues: 10 months
- Average time to close pull requests: about 2 months
- Total issue authors: 5
- Total pull request authors: 3
- Average comments per issue: 1.37
- Average comments per pull request: 1.93
- Merged pull requests: 64
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 4
- Pull requests: 16
- Average time to close issues: about 2 hours
- Average time to close pull requests: 4 days
- Issue authors: 2
- Pull request authors: 1
- Average comments per issue: 1.0
- Average comments per pull request: 1.31
- Merged pull requests: 14
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- sverhoeven (62)
- VGPReys (9)
- amjjbonvin (6)
- bvreede (3)
- Peter9192 (2)
- dmijatovic (1)
Pull Request Authors
- sverhoeven (84)
- dmijatovic (13)
- bvreede (6)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- npm 61 last-month
-
Total dependent packages: 3
(may contain duplicates) -
Total dependent repositories: 2
(may contain duplicates) - Total versions: 27
- Total maintainers: 4
npmjs.org: @i-vresse/wb-form
Enhanced version of the React JSON schema form component with Bootstrap 4 theme
- Homepage: https://github.com/i-VRESSE/workflow-builder
- License: Apache-2.0
-
Latest release: 2.0.1
published over 1 year ago
Rankings
Maintainers (4)
npmjs.org: @i-vresse/wb-core
React components to construct a workflow builder application
- Homepage: https://github.com/i-VRESSE/workflow-builder
- License: Apache-2.0
-
Latest release: 3.2.4
published over 1 year ago
Rankings
Maintainers (4)
Dependencies
- @playwright/test ^1.22.1 development
- @storybook/addon-a11y ^6.4.0 development
- @storybook/addon-docs ^6.4.0 development
- @storybook/addon-essentials ^6.4.19 development
- @storybook/addon-links ^6.4.19 development
- @storybook/builder-vite ^0.1.35 development
- @storybook/core-common ^6.5.6 development
- @storybook/node-logger ^6.5.6 development
- @storybook/react ^6.5.6 development
- @storybook/testing-library ^0.0.9 development
- @types/adm-zip ^0.5.0 development
- @types/file-saver ^2.0.4 development
- @types/hoist-non-react-statics ^3.3.1 development
- @types/js-yaml ^4.0.5 development
- @types/node 16 development
- @types/papaparse ^5.3.2 development
- @types/react ^17.0.0 development
- @types/react-dom ^17.0.0 development
- @types/react-syntax-highlighter ^13.5.2 development
- @types/ws ^8.5.3 development
- @vitejs/plugin-react ^1.0.0 development
- adm-zip ^0.5.9 development
- c8 ^7.11.0 development
- ts-dedent ^2.2.0 development
- ts-standard ^11.0.0 development
- typescript ^4.3.2 development
- vite ^2.6.4 development
- vite-node ^0.7.8 development
- vitest ^0.12.1 development
- @dnd-kit/core ^6.0.5
- @dnd-kit/modifiers ^6.0.0
- @dnd-kit/sortable ^7.0.1
- @i-vresse/pdbtbx-ts 0.1.7
- @ltd/j-toml ^1.24.0
- @rjsf/bootstrap-4 ^4.2.0
- @rjsf/core ^4.2.0
- @zip.js/zip.js ^2.3.23
- ajv ^8.9.0
- ajv-formats ^2.1.1
- bootstrap ^4
- file-saver ^2.0.5
- js-yaml ^4.1.0
- nanoid ^4.0.0
- papaparse ^5.3.2
- react ^17.0.0
- react-bootstrap ^1
- react-bootstrap-icons ^1.7.2
- react-dnd-html5-backend ^14.1.0
- react-dom ^17.0.0
- react-syntax-highlighter ^15.4.5
- react-toastify ^8.1.0
- recoil ^0.5.2
- web-encoding ^1.1.5
- 1509 dependencies