Commands and settings
Command
EOAP validation (eoapValidator.validate) is available from the context menu
of .cwl files in Explorer and the editor. Explorer folders are excluded. The
Command Palette uses the active CWL editor. A trusted workspace is required.
The command opens the selected file. If its root $graph contains multiple
workflows, a native picker lists their IDs with any leading # removed.
Cancelling the picker stops validation. Single-workflow documents use automatic
selection. Only one package validation session is active at a time.
Settings
All settings use the eoapValidator. prefix.
| Setting | Default | Values and behavior |
|---|---|---|
executable |
"" |
Empty uses the bundled validator in managed storage; otherwise starts the specified executable. |
pythonExecutable |
"" |
Python 3.10+ used to create the managed environment. Empty selects python3 on POSIX or python on Windows. |
arguments |
[] |
Array of prefix argument strings for a custom executable; ignored in managed mode. |
profiles |
["eoap-package", "metadata"] |
Nonempty array of unique profiles: eoap-package, eoap-staging, metadata. |
stagingFile |
"" |
Optional staging JSON path, absolute or relative to the root CWL directory; requires eoap-staging. |
failOn |
"error" |
error or warning; determines validation failure, not which findings are displayed. |
validateOnSave |
false |
Revalidates the last selected package on tracked saves, reusing its selected workflow ID. |
timeoutSeconds |
120 |
Integer from 1 to 3600; limits validator execution, excluding managed setup. |
See Choose a validator environment for setup examples and Troubleshoot validation for failures.
Validator invocation and reports
The subprocess runs in the root CWL directory with separate arguments and no shell. After any custom prefix arguments, it receives:
--profile <profile> [--profile <profile> ...] --fail-on <threshold> --format json [--staging <absolute-path>] -- <file-uri>[#<encoded-workflow-id>]
Reports are checked against the bundled JSON schema and must declare schema
version 1.0. Exit codes 0, 1 and 2 are accepted report outcomes only when the
report's exit_code matches the process status. Other codes, invalid JSON,
schema failures and mismatched statuses are execution errors.
Full reports and stderr are written to Output → EOAP Validator. Stdout is limited to 32 MiB; approximately 1 MiB of stderr is forwarded per run.
Findings with status failed, needs-review or blocked are considered issues.
Findings marked passed or not-applicable do not produce diagnostics. Located
issues use their report severity (error, warning or info) and rule ID.
Duplicate diagnostics with the same location, rule and message are collapsed.
The completion notification counts report issues, so its count can exceed the
number of distinct entries in Problems.