Skip to content

Use the CLI

Install EOAP Validator with Python 3.11 through 3.15, following the README installation instructions. Check the available options with:

eoap-validator --help

Validate a workflow

Pass the CWL source and select its entry Workflow using a URI fragment:

eoap-validator 'workflow.cwl#echo-application'

Replace workflow.cwl and echo-application with your source and Workflow ID. The source accepts local paths, file: URIs, and HTTP(S) URLs. You may omit the fragment when the root document contains exactly one Workflow. There is no --entrypoint option.

By default, the CLI runs CWL checks and the eoap-package profile. It prints findings requiring attention and assessment counts without executing the workflow or pulling container images. Resolving dependencies may require network access.

Choose profiles

Repeat --profile to combine checks. For example, check package rules and Transpiler-Mate software metadata together:

eoap-validator 'workflow.cwl#echo-application' \
  --profile eoap-package \
  --profile metadata

Explicit profiles replace the default selection, so include eoap-package when you want to retain package checks. CWL checks always run. See profiles and reporting for each profile's scope.

Save a JSON report

Use --output to save the full report while keeping the text output in your terminal. Parent directories are created as needed:

eoap-validator 'workflow.cwl#echo-application' --output build/validation.json

To print JSON to standard output instead, use --format json:

eoap-validator 'workflow.cwl#echo-application' --format json > validation.json

Dependency diagnostics go to standard error. The full JSON report includes passed and not-applicable findings that the text output omits.

Assess staging

Enable eoap-staging and declare which parameters are staged in a JSON file such as staging.json:

{
  "inputs": {"echo-application": ["products"], "processor": ["products"]},
  "outputs": {"processor": ["result"]}
}

Replace these process and parameter IDs with IDs from your workflow. Keys are normalized process IDs; values are parameter IDs. Unknown IDs fail validation, and omitted parameters are not assessed as staged.

eoap-validator 'workflow.cwl#echo-application' \
  --profile eoap-package \
  --profile eoap-staging \
  --staging staging.json

The --staging option requires the eoap-staging profile. Without applicability configuration, staging needs review. Complete stage-out file coverage still requires review of bindings and execution evidence.

Interpret the result

The default failure threshold is error. To also fail on advisory warnings, use:

eoap-validator 'workflow.cwl#echo-application' --fail-on warning
Exit status Meaning
0 No findings exceeded the selected failure threshold.
1 Validation findings reached the selected failure threshold.
2 A configuration, source, operational, or report-writing error occurred.

A zero exit status does not certify complete compliance. Inspect needs-review and blocked counts in the report. For pipeline integration, see use validation in CI.