Skip to content

Commit 0563d7b

Browse files
committed
Move initialWorkDir, envDef and networkAccess to CommandLineTool
These are core features and using them via 'Requirements' just makes the syntax awkward.
1 parent 613bd90 commit 0563d7b

File tree

1 file changed

+92
-1
lines changed

1 file changed

+92
-1
lines changed

CommandLineTool.yml

Lines changed: 92 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -711,6 +711,91 @@ $graph:
711711

712712
If not specified, all exit codes except 0 are considered permanent failure.
713713

714+
- name: networkAccess
715+
type: [boolean, Expression]
716+
doc: |
717+
Indicate whether a process requires outgoing IPv4/IPv6 network
718+
access. Choice of IPv4 or IPv6 is implementation and site
719+
specific, correct tools must support both.
720+
721+
If `networkAccess` is false or not specified, tools must not
722+
assume network access, except for localhost (the loopback device).
723+
724+
If `networkAccess` is true, the tool must be able to make outgoing
725+
connections to network resources. Resources may be on a private
726+
subnet or the public Internet. However, implementations and sites
727+
may apply their own security policies to restrict what is
728+
accessible by the tool.
729+
730+
Enabling network access does not imply a publicly routable IP
731+
address or the ability to accept inbound connections.
732+
733+
- name: initialWorkDir
734+
type:
735+
- Expression
736+
- type: array
737+
items:
738+
- "null"
739+
- Dirent
740+
- Expression
741+
- File
742+
- Directory
743+
- type: array
744+
items:
745+
- File
746+
- Directory
747+
doc: |
748+
Define a list of files and subdirectories that must be staged
749+
by the workflow platform prior to executing the command line
750+
tool. Normally this is the designated output directory, but
751+
when containers are used, it is possible to stage to other
752+
locations, see discussion below.
753+
754+
Return type of each expression must validate as `["null",
755+
File, Directory, Dirent, {type: array, items: [File,
756+
Directory]}]`.
757+
758+
Each `File` or `Directory` that is returned by an Expression
759+
must be added to the designated output directory prior to
760+
executing the tool.
761+
762+
Each `Dirent` record that is listed or returned by an
763+
expression specifies a file to be created or staged in the
764+
designated output directory prior to executing the tool.
765+
766+
Expressions may return null, in which case they have no effect.
767+
768+
Files or Directories which are listed in the input parameters
769+
and appear in `initialWorkDir` must have their `path` set to
770+
their staged location. If the same File or Directory appears
771+
more than once in the `initialWorkDir`, the implementation
772+
must choose exactly one value for `path`; how this value is
773+
chosen is undefined.
774+
775+
Normally files are staged within the designated output
776+
directory. However, when running inside containers, files may
777+
be staged at arbitrary locations, see discussion for
778+
[`Dirent.entryname`](#Dirent). Together with
779+
`DockerRequirement.dockerOutputDirectory` it is possible to
780+
control the locations of both input and output files when
781+
running in containers.
782+
783+
Files listed in `inputs` that are not listed in
784+
`initialWorkDir` shall be staged to an arbitrary location on
785+
the file system. This location must be outside the designated
786+
output directory.
787+
788+
- name: envDef
789+
type: EnvironmentDef[]
790+
doc: |
791+
Define a list of environment variables which will be set in
792+
the execution environment of the tool. See
793+
[EnvironmentDef](#EnvironmentDef) for details.
794+
jsonldPredicate:
795+
mapSubject: envName
796+
mapPredicate: envValue
797+
798+
714799

715800
- type: record
716801
name: DockerRequirement
@@ -991,7 +1076,9 @@ $graph:
9911076
- name: InitialWorkDirRequirement
9921077
type: record
9931078
extends: ProcessRequirement
994-
doc:
1079+
doc: |
1080+
**Deprecated as of v1.3** Prefer [CommandLineTool.initialWorkDir](#CommandLineTool)
1081+
9951082
Define a list of files and subdirectories that must be staged by
9961083
the workflow platform prior to executing the command line tool.
9971084
@@ -1059,6 +1146,8 @@ $graph:
10591146
type: record
10601147
extends: ProcessRequirement
10611148
doc: |
1149+
**Deprecated as of v1.3** Prefer [CommandLineTool.envDef](#CommandLineTool)
1150+
10621151
Define a list of environment variables which will be set in the
10631152
execution environment of the tool. See `EnvironmentDef` for details.
10641153
fields:
@@ -1291,6 +1380,8 @@ $graph:
12911380
name: NetworkAccess
12921381
extends: ProcessRequirement
12931382
doc: |
1383+
**Deprecated as of v1.3** Prefer [CommandLineTool.networkAccess](#CommandLineTool)
1384+
12941385
Indicate whether a process requires outgoing IPv4/IPv6 network
12951386
access. Choice of IPv4 or IPv6 is implementation and site
12961387
specific, correct tools must support both.

0 commit comments

Comments
 (0)