Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion core/sections/annex-history.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
|2019-10-01 |1.0-draft.3 |Benjamin Pross| 7 |1.0-draft.3, minor edits
|2019-10-10 |1.0-draft.3 |Gérald Fenoy, Tom Kralidis| 7 |Add implementations, Use status in place of infos in jobInfo definition
|2019-10-22 |1.0-draft.3 |Benjamin Pross| 7 |Remove mandatory path /api, fix for #50
|2020-01-06 |1.0-draft.3 |Francis Charette| 7 |Add implementation
|2020-01-06 |1.0-draft.3 |Francis Charette-Migneault| 7 |Add implementation
|2020-01-28 |1.0-draft.3 |Gérald Fenoy| 7 |Adjust schemas and examples
|2020-02-03 |1.0-draft.3 |Benjamin Pross| 7 |Fix for #63
|2020-02-18 |1.0-draft.3 |Chris Durbin| 7 |Fix for #61
Expand Down
2 changes: 1 addition & 1 deletion extensions/deploy_replace_undeploy/standard/20-044.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
:external-id: https://www.opengis.net/doc/IS/ogcapi-processes-2/1.0
:keywords: process, collection, instance, spatial, data, openapi, transactions, insert, update, delete, add, remove, deploy, undeploy, REST, PUT, POST, DELETE
:submitting-organizations: Geolabs; CubeWerx Inc; Terradue Srl.; Wuhan University (WHU); Technologies Luqia, Centre de Recherche Informatique de Montréal (CRIM)
:editor: Panagiotis (Peter) A. Vretanos, Gérald Fenoy
:editor: Panagiotis (Peter) A. Vretanos, Gérald Fenoy, Francis Charette-Migneault
:mn-document-class: ogc
:mn-output-extensions: xml,html,doc,pdf
:htmltoclevels: 4
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,13 @@ The following example illustrates an execution unit where the executable code is
"value": {
"image": "mydocker/ndvi:latest",
"bindings": {
"inputBindings": {
"inputBinding": {
"inputImage": {
"prefix": "inputsImages=",
"inputSeparator": ","
}
},
"outputBindings": {
"outputBinding": {
"outputImage": {
"glob": "$(\"/outputs/ndvi_\" + inputs.inputImage.basename)"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,15 +76,15 @@ Below are other examples of <<deploy,Deploy request>> bodies where the CWL value

==== Overview

This clause defines the requirements for sending a CWL document directly to the process deployment endpoint (i.e. /processes) without embedding the CWL into an <<clause_ogcapppkg,OGC Application Package>>
This clause defines the requirements for sending a CWL document directly to the process deployment endpoint (i.e. `/processes`) without embedding the CWL into an <<clause_ogcapppkg,OGC Application Package>>

==== CWL request body

include::../requirements/cwl/REQ_body.adoc[]

==== Multipart CWL request body

include::../recommendations/cwl/REC_body-cwl-multipart.adoc[]
include::../recommendations/cwl/PER_body-cwl-multipart.adoc[]

The following multipart example illustrates one request payload with a root workflow selected by the `start` parameter, with supporting documents referenced by `filename`, `cid:` URI and remote URL combinations. The full contents of the individual <<rc_cwl,CWL>> documents are not included for simplification. Note that the <<rc_cwl,CWL>> YAML representation are employed to provide a concise example, but other <<rc_cwl,CWL>> media-types are permitted in any desired combination.

Expand Down
1 change: 1 addition & 0 deletions extensions/workflows/21-009.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
:published-date: 2029-03-30
:fullname: Jérôme Jacovella-St-Louis
:fullname_2: Panagiotis (Peter) A. Vretanos
:fullname_3: Francis Charette-Migneault
:docsubtype: implementation
:keywords: ogcdoc, OGC document, API, openapi, html, ogcapi
:submitting-organizations: Ecere Corporation; CubeWerx Inc.; GeoLabs; University of Calgary; Pangaea Innovations Pty. Ltd.; Natural Resources Canada; EOX IT Services GmbH; Universitat Autònoma de Barcelona (CREAF); Technologies Luqia, Centre de Recherche Informatique de Montréal (CRIM); 52°North Spatial Information Research GmbH; European Space Agency (ESA); US Army Geospatial Center (AGC); Hexagon; Haute École d'Ingénierie et de Gestion du Canton de Vaud (HEIG-VD); Laboratoire des Sciences et Techniques de l'information de la Communication et de la Connaissance / Centre national de la recherche scientifique (Lab-STICC CNRS)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
[[per_cwl-workflows_adhoc-cwl-deploy]]
[permission]
====
[%metadata]
identifier:: /per/cwl-workflows/adhoc-cwl-deploy
description:: Capability for a server to deploy and/or undeploy the CWL resulting from ad-hoc execution request.

[.component,class=conditions]
--
. The server declares conformance to <<OAProc-2,OGC API - Processes - Part 2: DRU, Conformance Class 'Deploy, Replace, Undeploy (DRU)'>>.
. The submitted job defines an ad-hoc CWL definition along the execution request.
--

[.component,class=part]
--
The server MAY deploy the CWL as an intermediate operation of the ad-hoc execution.
--

[.component,class=part]
--
The server MAY decide to reuse a predeployed CWL that matches the provided ad-hoc definition.
--

[.component,class=part]
--
If a deployment resulted from the job submission, the server MAY undeploy the ad-hoc CWL definition following execution completion.
--

[.component,class=part]
--
The server MAY preserve (i.e.: not undeploy) the ad-hoc CWL definition following execution completion
if it deems it necessary for reuse, reporting and traceability requirements.
--

====
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
[[per_cwl-workflows_adhoc-cwl-multipart-alternate-encoding]]
[permission]
====
[%metadata]
identifier:: /per/cwl-workflows/adhoc-cwl-multipart-alternate-encoding
description:: Allow using alternate presentations of equivalent contents.

[.component,class=part]
--
For each part of the <<REQ_cwl-workflows_adhoc-cwl-multipart-content,/req/cwl-workflows/adhoc-cwl-multipart-content>>
multipart request, the server MAY support alternate presentations of equivalent contents (e.g.: YAML instead of JSON).
--

[.component,class=part]
--
The corresponding part SHOULD report the corresponding `Content-Type` best representing the encoding
(e.g., `application/cwl+yaml` instead of `application/yaml` if the part represents CWL).
--

[.component,class=part]
--
The server SHOULD rely on other profiling details (i.e.: `Content-Profile` to identify parts regardless of encoding.
--

[.component,class=part]
--
The server MAY apply other heuristics to identify alternate representations of equivalent contents,
such as file extension, or other metadata.
--

====

NOTE: This standard does not specify any explicit strategy to convert between alternate media-type representations.
However, it is expected that if such permission is employed, equivalent interpretation of corresponding part contents
can be achieved unambiguously.
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
[[rec_cwl-workflows_adhoc-cwl-multipart-files]]
[recommendation]
====
[%metadata]
identifier:: /rec/cwl-workflows/adhoc-cwl-multipart-files
description:: Capability to provide additional files required for execution of the ad-hoc CWL workflow.

[.component,class=part]
--
If the execution of the ad-hoc CWL requires additional data files to be provided,
they MAY be supplied with additional multipart parts.
--

[.component,class=part]
--
Additional files encoded within multipart parts SHOULD leverage
the `Content-Disposition: filename="<name.ext>"` header to indicate how part contents might be referenced.
--

[.component,class=part]
--
The CWL ad-hoc execution SHOULD reuse the provided file name in the part to bind it with
link:https://www.commonwl.org/v1.2/CommandLineTool.html#File[CWL File] supported mechanisms
to collect this file during execution (e.g., `glob`, `path`, `location`, etc.).
--

[.component,class=part]
--
The part corresponding to the execution body SHOULD employ the corresponding `href` input
definition matching the specified file path from the resolved `Content-Disposition` header.
--

====

NOTE: Although explicit indication of the `href` for a given input might not always be strictly necessary
when the ad-hoc CWL definition can itself resolve it, it is recommended to indicate it for traceability
and explicit representation of the inputs through the _OGC API - Processes_ interface. This will allow
clients not aware of the _Part 3_ implementation details to still interact with jobs through _Part 1: Core_ interface.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
[[REQ_cwl-workflows_adhoc-cwl-job-execution]]
[requirement]
====
[%metadata]
identifier:: /req/cwl-workflows/adhoc-cwl-job-execution
inherit:: <<OAProc-4,http://www.opengis.net/spec/ogcapi-processes-4/1.0/req/job-management>>
description:: For executing a workflow defined using the Common Workflow Language (CWL) definition, through _Job Management_ execution.

[.component,class=part]
--
The server SHALL support ad-hoc execution of a CWL workflow definition on `POST /jobs` endpoint.
--

[.component,class=part]
--
The execution and response handling SHALL behave according to other execution parametrization (`Prefer` header, etc.)
defined by <<OAProc-4>>.
--

[.component,class=part]
--
The request SHALL employ the `Content-Type: multipart/related` media type as defined in <<rfc2387>> to submit the
CWL definition and its associated execution parameters.
--

[.component,class=part]
--
The multipart contents SHALL follow <<REQ_cwl-workflows_adhoc-cwl-multipart-content,/req/cwl-workflows/adhoc-cwl-multipart-content>>
for the definition of part contents.
--

[.component,class=part]
--
The `inputs` and `outputs` IDs of the execution body SHALL be aligned with the CWL definition IDs of respective sections
to allow chaining their respective values and results.
--

====
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
[[REQ_cwl-workflows_adhoc-cwl-multipart-content]]
[requirement]
====
[%metadata]
identifier:: /req/cwl-workflows/adhoc-cwl-multipart-content
inherit:: <<rfc2387,RFC 2387 (The MIME Multipart/Related Content-type)>>
description:: Multipart content to combine Common Workflow Language (CWL) definition and execution parameters.

[.component,class=part]
--
The request SHALL employ the `Content-Type: multipart/related` media type as defined in <<rfc2387>> to submit the
CWL definition and its associated execution parameters.
--

[.component,class=part]
--
At least one part corresponding to CWL contents SHALL be provided.
--

[.component,class=part]
--
The media-type of each individual CWL part in the multipart body SHALL be specified by their respective
part `Content-Type` header using `application/cwl`, `application/cwl+json` or `application/cwl+yaml` media-types
in accordance to their respective content encoding.
--

[.component,class=part]
--
If the CWL definition contains multiple workflow steps defined across multiple parts
(e.g: as if providing multiple files where each part implements part of the workflow),
the multipart `Content-Type` SHALL provide a `start=` parameter (as per <<rfc2387,RFC 2387 section-3.2>>)
referring to the `Content-ID` value of the corresponding part that represents this workflow "root" as the
entrypoint part for execution.
--

[.component,class=part]
--
The header portion of the part corresponding to
the <<https://docs.ogc.org/DRAFTS/18-062r3.html#execute-request-body,execute request body>>
SHALL contain:

. the `+Content-Profile: <https://www.opengis.net/def/profile/OGC/0/ogc-execute-request>+` profile header
to indicate the semantics of the part.
. the `Content-Type: application/json` header to indicate its encoding.
--

[.component,class=part]
--
Exactly one part corresponding to the execution content (`inputs`, `outputs`, etc.) SHALL be provided and respect the
https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/openapi/schemas/processes-core/execute.yaml[execute.yaml] schema.
--

[.component,class=part]
--
If a part employs a `Content-Location` header, its contents SHALL be retrieved from the provided URL,
unless the literal data contents are also provided explicitly within the part.
--

====
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
[[REQ_cwl-workflows_adhoc-cwl-process-execution]]
[requirement]
====
[%metadata]
identifier:: /req/cwl-workflows/adhoc-cwl-process-execution
inherit:: <<rfc2387,RFC 2387 (The MIME Multipart/Related Content-type)>>
inherit:: <<OAProc-1,http://www.opengis.net/spec/ogcapi-processes-1/2.0/req/core>>
description:: For executing a workflow defined using the Common Workflow Language (CWL) definition, through _Core_ nested process execution.

[.component,class=part]
--
The server SHALL support ad-hoc execution of a CWL workflow definition on `POST /processes/{processId}/execution` endpoint.
--

[.component,class=part]
--
The execution and response handling SHALL behave according to other execution parametrization (`Prefer` header, etc.)
defined by <<OAProc-1>>.
--

[.component,class=part]
--
The request SHALL employ the `Content-Type: multipart/related` media type as defined in <<rfc2387>> to submit the
CWL definition and its associated execution parameters.
--

[.component,class=part]
--
The multipart contents SHALL follow <<REQ_cwl-workflows_adhoc-cwl-multipart-content,/req/cwl-workflows/adhoc-cwl-multipart-content>>
for the definition of part contents.
--

[.component,class=part]
--
The part containing the <<https://docs.ogc.org/DRAFTS/18-062r3.html#execute-request-body,execute request body>>
SHALL provide in the `"inputs"` any necessary mapping to a `+{"$output": "<cwl-output>"}+` where the `+<cwl-output>+`
indicates the output identifier from the main CWL workflow from which the resulting value SHALL be chained from
the CWL execution into the corresponding input of the parent `{processId}`.
--

====
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
[%metadata]
identifier:: http://www.opengis.net/spec/ogcapi-processes-3/0.0/req/cwl-workflows
subject:: Common Workflow Language Definitions
inherit:: http://www.opengis.net/spec/ogcapi-processes-1/1.0/req/core
inherit:: Common Workflow Language <<Common_Workflow_Language>>
requirement:: /req/cwl-workflows/adhoc-cwl-process-execution
requirement:: /req/cwl-workflows/adhoc-cwl-job-execution
requirement:: /req/cwl-workflows/adhoc-cwl-multipart-content
====
1 change: 1 addition & 0 deletions extensions/workflows/sections/annex-history.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@
|Date |Release |Editor | Primary clauses modified |Description
|2020-10-19 |0.1 |J. St-Louis |all |initial draft
|2022-10-19 |0.2 |J. St-Louis |all |reorganized into multiple conformance classes, using metanorma template, with more detailed descriptions and requirements
|2026-07-18 |0.3 |Francis Charette-Migneault |CWL Ad-hoc Execution |Adjust the definitions to make them applicable to CWL definitions that must combine workflow + execution
|===
2 changes: 1 addition & 1 deletion extensions/workflows/sections/clause_0_front_material.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,14 @@ All questions regarding this submission should be directed to the editors or the
| *Name* | *Affiliation*
| Jérôme Jacovella-St-Louis (editor) | Ecere Corporation
| Panagiotis (Peter) A. Vretanos (editor) | CubeWerx Inc.
| Francis Charette-Migneault (editor) | Technologies Luqia, Centre de Recherche Informatique de Montréal (CRIM)
| Gérald Fenoy | GeoLabs
| Perry Peterson | University of Calgary
| Marta Padilla Ruiz | University of Calgary
| Matthew B.J. Purss | Pangaea Innovations Pty. Ltd.
| Ryan Ahola | Natural Resources Canada
| Stephan Meißl | EOX IT Services GmbH
| Joan Masó Pau | Universitat Autònoma de Barcelona (CREAF)
| Francis Charette-Migneault | Technologies Luqia, Centre de Recherche Informatique de Montréal (CRIM)
| Benjamin Proß | 52°North Spatial Information Research GmbH
| Claudio Iacopino | European Space Agency (ESA)
| Jeff Harrison | US Army Geospatial Center (AGC)
Expand Down
Loading