From 3105532ed3f2d342e2236edb9335b82a6a1292ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Wed, 20 Dec 2023 11:39:28 +0100 Subject: [PATCH 01/17] Initial fixes (typo, clarification) based on the comments from the review --- .../standard/20-044.adoc | 2 +- .../abstract_tests/cwl/deploy/ATS_body.adoc | 4 +-- .../abstract_tests/cwl/replace/ATS_body.adoc | 4 +-- .../docker/deploy/ATS_body.adoc | 6 ++-- .../docker/replace/ATS_body.adoc | 6 ++-- .../dru/ATS_static-indicator.adoc | 4 +-- .../abstract_tests/dru/ATS_test-process.adoc | 2 +- .../dru/deploy/ATS_post-op.adoc | 2 +- .../deploy/ATS_unsupported-content-type.adoc | 2 +- .../dru/replace/ATS_content-type.adoc | 2 +- .../dru/replace/ATS_put-op.adoc | 4 +-- .../replace/ATS_unsupported-content-type.adoc | 2 +- .../dru/undeploy/ATS_delete-op.adoc | 4 +-- .../ATS_response-immutable-success.adoc | 2 +- .../dru/undeploy/ATS_response-immutable.adoc | 2 +- .../dru/undeploy/ATS_response.adoc | 2 +- .../ogcapppkg/deploy/ATS_body.adoc | 6 ++-- .../deploy/ATS_response-success.adoc | 4 +-- .../ogcapppkg/deploy/ATS_response.adoc | 2 +- .../ogcapppkg/replace/ATS_body.adoc | 6 ++-- .../ogcapppkg/replace/ATS_response.adoc | 2 +- .../PER_additional-status-codes.adoc | 2 +- .../deploy/PER_body.adoc | 2 +- .../deploy/REC_body-cwl.adoc | 8 ++--- .../deploy/REC_body-ogcapppkg.adoc | 4 +-- .../replace/PER_body.adoc | 2 +- .../replace/REC_body-cwl.adoc | 4 +-- .../replace/REC_body-ogcapppkg.adoc | 4 +-- .../ogcapppkg/REC_execution-unit-docker.adoc | 4 +-- .../REC_ogcapppkg_execution-unit-cwl.adoc | 8 ++--- .../deploy/REQ_body.adoc | 2 +- .../deploy/REQ_post-op.adoc | 2 +- .../deploy/REQ_response-body.adoc | 2 +- .../deploy/REQ_response-duplicate.adoc | 2 +- .../deploy/REQ_response-immutable.adoc | 2 +- .../deploy/REQ_response-pid.adoc | 2 +- .../deploy/REQ_response-success.adoc | 2 +- .../deploy/REQ_unsupported-media-type.adoc | 2 +- .../immutable/REQ_indicator.adoc | 8 ++--- .../replace/REQ_body.adoc | 2 +- .../replace/REQ_content-type.adoc | 2 +- .../replace/REQ_put-op.adoc | 2 +- .../undeploy/REQ_delete-op.adoc | 2 +- .../undeploy/REQ_response.adoc | 2 +- .../ogcapppkg/REQ_process-description.adoc | 2 +- .../requirements/ogcapppkg/REQ_schema.adoc | 2 +- .../standard/sections/annex_ats.adoc | 6 ++-- .../standard/sections/annex_bibliography.adoc | 2 +- .../clause_12_security_considerations.adoc | 26 +++++++------- .../standard/sections/clause_1_scope.adoc | 4 +-- .../sections/clause_2_conformance.adoc | 10 +++--- .../clause_6_deploy_replace_undeploy.adoc | 36 +++++++++---------- .../standard/sections/clause_7_apppkg.adoc | 10 +++--- .../standard/sections/clause_8_docker.adoc | 4 +-- .../standard/sections/clause_9_cwl.adoc | 6 ++-- 55 files changed, 126 insertions(+), 124 deletions(-) diff --git a/extensions/deploy_replace_undeploy/standard/20-044.adoc b/extensions/deploy_replace_undeploy/standard/20-044.adoc index a10d9783..b365f121 100644 --- a/extensions/deploy_replace_undeploy/standard/20-044.adoc +++ b/extensions/deploy_replace_undeploy/standard/20-044.adoc @@ -11,7 +11,7 @@ :issued-date: yyyy-mm-dd :external-id: http://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. +:submitting-organizations: Geolabs; CubeWerx Inc; Terradue Srl.. :editor: Panagiotis (Peter) A. Vretanos, Gérald Fenoy :mn-document-class: ogc :mn-output-extensions: xml,html,doc,pdf diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/deploy/ATS_body.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/deploy/ATS_body.adoc index 181c5201..7b8c331f 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/deploy/ATS_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/deploy/ATS_body.adoc @@ -13,11 +13,11 @@ test-method:: 2. Issue an HTTP POST request using the media type "application/cwl" and the application package content -3. Validate the reponse with <> +3. Validate the response with <> 4. Send the same POST request again -5. Validate the reponse with <> +5. Validate the response with <> -- ==== diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/replace/ATS_body.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/replace/ATS_body.adoc index b115bb87..6f385f37 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/replace/ATS_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/replace/ATS_body.adoc @@ -13,9 +13,9 @@ test-method:: 2. Append `/{processId}` to each path, where `{processId}` is a mutable process id. -3. Send a PUT request on one path using the media type "application/cwl" and the application package content +3. Send a PUT request for one path using the media type "application/cwl" and the application package content -4. Validate the reponse with <> +4. Validate the response with <> -- ==== diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/docker/deploy/ATS_body.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/docker/deploy/ATS_body.adoc index 5ca5fe01..96bbee2c 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/docker/deploy/ATS_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/docker/deploy/ATS_body.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/docker/deploy/body target:: /rec/deploy-replace-undeploy/deploy/body-docker -test-purpose:: Validate that the server support deploy operation using a docker image as execution unit +test-purpose:: Validate that the server supports deploy operation using a Docker image as execution unit test-method:: + -- @@ -13,11 +13,11 @@ test-method:: 2. Issue an HTTP POST request using the media type "application/ogcapppkg+json" with as body a default OGC Application Package -3. Validate the reponse with <> +3. Validate the response with <> 4. Send the same POST request again -5. Validate the reponse with <> +5. Validate the response with <> -- ==== diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/docker/replace/ATS_body.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/docker/replace/ATS_body.adoc index 7fa9e94a..0beaced1 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/docker/replace/ATS_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/docker/replace/ATS_body.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/docker/replace/body target:: /req/docker/replace/body -test-purpose:: Validate that the server support replace operation using the Common Worflow Language encoding +test-purpose:: Validate that the server support replace operation using a Docker image as execution unit test-method:: + -- @@ -13,9 +13,9 @@ test-method:: 2. Append `/{processId}` to each path, where `{processId}` is the process id retrieved from <>. -3. Send a PUT request on one path using the media type "application/ogcapppkg+json" with as body a default OGC Application Package +3. Send a PUT request for one path using the media type "application/ogcapppkg+json" with as body a default OGC Application Package -4. Validate the reponse with <> +4. Validate the response with <> -- ==== diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/ATS_static-indicator.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/ATS_static-indicator.adoc index 4bda5c76..52c94a46 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/ATS_static-indicator.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/ATS_static-indicator.adoc @@ -11,9 +11,9 @@ test-method:: -- 1. Construct a path for each "rel=http://www.opengis.net/def/rel/ogc/1.0/processes" link on the landing page as well as for the {root}/processes path. -2. Issue an HTTP GET request on each path +2. Issue an HTTP GET request for each path -3. Validate the process list is composed of processes that get the mutable boolean parameter set to true or false +3. Validate the process list is composed of processes that get the mutable Boolean parameter set to true or false -- ==== diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/ATS_test-process.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/ATS_test-process.adoc index 504ddda3..a8fc4da1 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/ATS_test-process.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/ATS_test-process.adoc @@ -8,6 +8,6 @@ test-purpose:: Ensure that an application package URL can be provided in CWL enc test-method:: + -- -If a server implementing the OGC API - Processes - Part 2: Deploy, Replace, Undeploy is tested using CITE tests, it should provide a URL to an example application package encoded in CWL for tests against the OGC Application Package and CWL conformance classes to occurred. +If a server implementing the OGC API - Processes - Part 2: Deploy, Replace, Undeploy is tested using CITE tests, it should provide a URL to an example application package encoded in CWL for tests against the OGC Application Package and CWL conformance classe. -- ==== \ No newline at end of file diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/deploy/ATS_post-op.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/deploy/ATS_post-op.adoc index b899e020..e9801ca2 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/deploy/ATS_post-op.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/deploy/ATS_post-op.adoc @@ -11,7 +11,7 @@ test-method:: -- 1. Construct a path for each "rel=http://www.opengis.net/def/rel/ogc/1.0/processes" link on the landing page as well as for the {root}/processes path. -2. Issue an HTTP POST request on each path. +2. Issue an HTTP POST request for each path. 3. Validate that the response header does not contain `405 Method not allowed` -- diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/deploy/ATS_unsupported-content-type.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/deploy/ATS_unsupported-content-type.adoc index ad373d0a..9d52c76d 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/deploy/ATS_unsupported-content-type.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/deploy/ATS_unsupported-content-type.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/dru/deploy/unsupported-content-type target:: /req/deploy-replace-undeploy/deploy/unsupported-content-type -test-purpose:: Validate that the server return a 415 status code with a relevant exception +test-purpose:: Validate that the server returns a 415 status code with a relevant exception test-method:: + -- diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/replace/ATS_content-type.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/replace/ATS_content-type.adoc index 4ad548a3..71c63c22 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/replace/ATS_content-type.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/replace/ATS_content-type.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/dru/replace/content-type target:: /req/deploy-replace-undeploy/replace/content-type -test-purpose:: Validate that the server support the Content-type header to declare the media type of the request body +test-purpose:: Validate that the server supports the Content-type header to declare the media type of the request body test-method:: + -- diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/replace/ATS_put-op.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/replace/ATS_put-op.adoc index 341271fe..8928d88b 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/replace/ATS_put-op.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/replace/ATS_put-op.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/dru/replace/put-op target:: /req/deploy-replace-undeploy/replace/put-op -test-purpose:: Validate that the server support HTTP PUT operation at the path /processes +test-purpose:: Validate that the server supports HTTP PUT operation at the path /processes test-method:: + -- @@ -13,7 +13,7 @@ test-method:: 2. Append `/{processId}` to each path, where `{processId}` is not an existing process id, i.e. `not-existing-process`. -3. Issue an HTTP PUT request on each path. +3. Issue an HTTP PUT request for each path. 4. Validate that the response header does not contain `405 Method not allowed`. -- diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/replace/ATS_unsupported-content-type.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/replace/ATS_unsupported-content-type.adoc index 9ae5e755..2ad65cb8 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/replace/ATS_unsupported-content-type.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/replace/ATS_unsupported-content-type.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/dru/replace/unsupported-content-type target:: /req/deploy-replace-undeploy/deploy/unsupported-content-type -test-purpose:: Validate that the server return a 415 status code with a relevant exception +test-purpose:: Validate that the server returns a 415 status code with a relevant exception test-method:: + -- diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_delete-op.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_delete-op.adoc index 8710f709..753e46fe 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_delete-op.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_delete-op.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/dru/undeploy/delete-op target:: /req/deploy-replace-undeploy/undeploy/delete-op -test-purpose:: Validate that the server support HTTP DELETE operation at the path /processes/{processId} +test-purpose:: Validate that the server supports HTTP DELETE operation at the path /processes/{processId} test-method:: + -- @@ -13,7 +13,7 @@ test-method:: 2. Append `/{processId}` to each path, where `{processId}` is not an existing process id, i.e. `not-existing-process`. -3. Issue an HTTP DELETE request on each path. +3. Issue an HTTP DELETE request for each path. 3. Validate that the response header does not contain `405 Method not allowed`. -- diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_response-immutable-success.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_response-immutable-success.adoc index a1d3572b..30d02764 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_response-immutable-success.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_response-immutable-success.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/dru/undeploy/response-immutable-success target:: /req/deploy-replace-undeploy/deploy/response-immutable -test-purpose:: Validate that the server return a 403 status code when removing an immutable process +test-purpose:: Validate that the server returns a 403 status code when removing an immutable process test-method:: + -- diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_response-immutable.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_response-immutable.adoc index f1fdc1b5..2c59c753 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_response-immutable.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_response-immutable.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/dru/undeploy/response-immutable target:: /req/deploy-replace-undeploy/deploy/response-immutable -test-purpose:: Validate that the server return a 403 status code when removing an immutable process +test-purpose:: Validate that the server returns a 403 status code when removing an immutable process test-method:: + -- diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_response.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_response.adoc index e4ccf123..8acda064 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_response.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/undeploy/ATS_response.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/dru/undeploy/response target:: /req/deploy-replace-undeploy/undeploy/response -test-purpose:: Validate that the server return a 204 status code when removing a mutable process +test-purpose:: Validate that the server returns a 204 status code when removing a mutable process test-method:: + -- diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_body.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_body.adoc index 4d1ff1a4..9693ac26 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_body.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/ogcapppkg/deploy/body target:: /rec/ogcapppkg/deploy/body -test-purpose:: Validate that the server support OGC Application Package encoding +test-purpose:: Validate that the server supports OGC Application Package encoding test-method:: + -- @@ -13,11 +13,11 @@ test-method:: 2. Issue an HTTP POST request using the content type "application/ogcapppkg+json" with as body a default OGC Application Package or the application package as reference, if any, on one path -3. Validate the reponse with <> +3. Validate the response with <> 4. Send the same POST request again -5. Validate the reponse with <> +5. Validate the response with <> -- ==== diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_response-success.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_response-success.adoc index 194afd81..63e692ab 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_response-success.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_response-success.adoc @@ -5,11 +5,11 @@ [%metadata] identifier:: /conf/ogcapppkg/deploy/response-success target:: /req/deploy-replace-undeploy/deploy/response-success -test-purpose:: Validate that the server return a Location header and a process summary +test-purpose:: Validate that the server returns a Location header and a process summary test-method:: + -- -1. Validate the Location header contain a URI of the deployed process. +1. Validate the Location header contains a URI of the deployed process. 2. Validate the document conforms to the https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/processSummary.yaml[processSummary.yaml] schema. -- diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_response.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_response.adoc index 1142d103..27c39446 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_response.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_response.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/ogcapppkg/deploy/response target:: /req/deploy-replace-undeploy/deploy/response-success -test-purpose:: Validate that the server return HTTP Status code 201 or 202 +test-purpose:: Validate that the server returns HTTP Status code 201 or 202 test-method:: + -- diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_body.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_body.adoc index 297f32ef..9f61f366 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_body.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/ogcapppkg/replace/body target:: /rec/deploy-replace-undeploy/replace/body-ogcapppkg -test-purpose:: Validate that the server support OGC Application Package encoding +test-purpose:: Validate that the server supports OGC Application Package encoding test-method:: + -- @@ -13,9 +13,9 @@ test-method:: 2. Append `/{processId}` to each path, where `{processId}` is the process id retrieved from <>. -3. Issue an HTTP PUT request using the media type "application/ogcapppkg+json" with as body a default OGC Application Package or the application package URL, if any, on each path +3. Issue an HTTP PUT request using the media type "application/ogcapppkg+json" with as body a default OGC Application Package or the application package URL, if any, for each path -4. Validate the reponse with <> +4. Validate the response with <> -- ==== diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_response.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_response.adoc index d49c7479..7e2d61ed 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_response.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_response.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/ogcapppkg/replace/response target:: /req/deploy-replace-undeploy/response-success -test-purpose:: Validate that the server return HTTP Status code 200, 202 or 204 +test-purpose:: Validate that the server returns HTTP Status code 200, 202 or 204 test-method:: + -- diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/PER_additional-status-codes.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/PER_additional-status-codes.adoc index b7736b5b..0c57ebb4 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/PER_additional-status-codes.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/PER_additional-status-codes.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /per/core/additional-status-codes -part:: Servers may support other capabilities of the HTTP protocol and, therefore, may return other status codes than those listed in <>. +part:: Servers MAY support other HTTP protocol capabilities. Therefore, the server may return other status codes than those listed in <>. ==== diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/PER_body.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/PER_body.adoc index 06c45cd0..bfc31688 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/PER_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/PER_body.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /per/deploy-replace-undeploy/deploy/body -part:: A server may support any processes description encoding in the body of a HTTP POST operation. +part:: A server MAY support any processes description encoding in the body of a HTTP POST operation. ==== diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-cwl.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-cwl.adoc index 0dff1477..45d0753e 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-cwl.adoc @@ -4,12 +4,12 @@ [%metadata] label:: /rec/deploy-replace-undeploy/deploy/body-cwl -part:: If a process can be represented for the intended use as a <>, implementations should consider supporting the <> encoding for describing the process to be deployed to the API. +part:: If a process can be represented for the intended use as a <>, implementations SHOULD consider supporting the <> encoding for describing the process to be deployed to the API. -part:: The media type `application/cwl` shall be used to indicate that request body contains a processes description encoded as a <>. +part:: The media type `application/cwl` SHALL be used to indicate that request body contains a processes description encoded as a <>. -part:: If the CWL contains more than one workflow, an additional `w` query parameter may be used to reference the workflow id to be deployed. +part:: If the CWL contains more than one workflow, an additional `w` query parameter MAY be used to reference the workflow id to be deployed. -part:: The server should validate the CWL at the request time. In case, the server cannot find the `w` identifier within the workflow from the CWL provided, a 400 status code is expected with the type "worflow-not-found". +part:: The server SHOULD validate the CWL at the request time. In case, the server cannot find the `w` identifier within the workflow from the CWL provided, a 400 status code is expected with the type "workflow-not-found". ==== diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-ogcapppkg.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-ogcapppkg.adoc index bc894a54..d7ec1491 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-ogcapppkg.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-ogcapppkg.adoc @@ -4,7 +4,7 @@ [%metadata] label:: /rec/deploy-replace-undeploy/deploy/body-ogcapppkg -part:: If a process can be represented for the intended use as an <>, implementations should consider supporting the <> encoding for describing the process to be added to the API. +part:: If a process can be represented for the intended use as an <>, implementations SHOULD consider supporting the <> encoding for describing the process to be added to the API. -part:: The media type `application/ogcapppkg+json` shall be used to indicate that request body contains a processes description encoded as an <>. +part:: The media type `application/ogcapppkg+json` SHALL be used to indicate that request body contains a processes description encoded as an <>. ==== diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/PER_body.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/PER_body.adoc index aa29030b..3f3700a9 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/PER_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/PER_body.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /per/deploy-replace-undeploy/replace/body -part:: A server may support any processes description encoding in the body of a HTTP POST operation. +part:: A server MAY support any processes description encoding in the body of a HTTP POST operation. ==== diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-cwl.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-cwl.adoc index 8d4b499f..c4c2796b 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-cwl.adoc @@ -4,7 +4,7 @@ [%metadata] label:: /rec/deploy-replace-undeploy/replace/body-cwl -part:: If a process can be described for the intended use as a <>, implementations should consider supporting the <> encoding for describing the replacement process. +part:: If a process can be described for the intended use as a <>, implementations SHOULD consider supporting the <> encoding for describing the replacement process. -part:: The media type `application/cwl` shall be used to indicate that request body contains a processes description encoded as <>. +part:: The media type `application/cwl` SHALL be used to indicate that request body contains a processes description encoded as <>. ==== diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-ogcapppkg.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-ogcapppkg.adoc index 508a1d2a..76472cce 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-ogcapppkg.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-ogcapppkg.adoc @@ -4,7 +4,7 @@ [%metadata] label:: /rec/deploy-replace-undeploy/replace/body-ogcapppkg -part:: If a process can be described for the intended use as an <>, implementations should consider supporting the <> encoding for describing the replacement process. +part:: If a process can be described for the intended use as an <>, implementations SHOULD consider supporting the <> encoding for describing the replacement process. -part:: The media type `application/ogcapppkg+json` shall be used to indicate that request body contains a processes description encoded as an <>. +part:: The media type `application/ogcapppkg+json` SHALL be used to indicate that request body contains a processes description encoded as an <>. ==== diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_execution-unit-docker.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_execution-unit-docker.adoc index 61d25608..f2aac89c 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_execution-unit-docker.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_execution-unit-docker.adoc @@ -6,7 +6,7 @@ label:: /rec/ogcapppkg/execution-unit-docker part:: If the execution unit is a Docker image then it is recommended that the contents of the execution unit have the properties `type` and `image`. -part:: The value of the `type` property shall be `docker'. +part:: If the execution unit is specified as a Docker image, the value of the `type` property SHALL be `docker'. -part:: The value of the `image` property shall be a reference to the Docker image. +part:: If the execution unit is specified as a Docker image, the value of the `image` property SHALL be a reference to the Docker image. ==== diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_ogcapppkg_execution-unit-cwl.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_ogcapppkg_execution-unit-cwl.adoc index 7622d75e..9a2b3856 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_ogcapppkg_execution-unit-cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_ogcapppkg_execution-unit-cwl.adoc @@ -8,12 +8,12 @@ part:: If the execution unit is encoded in CWL then it is recommended that the c * `type` and `href` if passed by reference * `value` and `mediaType` if passed by value -part:: The value of the `type` property shall be `application/cwl`, when for `mediaType` it should be `application/cwl+json`. +part:: If the execution unit is encoded in CWL, the value of the `type` property SHALL be `application/cwl`, when for `mediaType` it should be `application/cwl+json`. -part:: The value of the `href` property shall be a reference to the CWL encoded file. The value of the `value` property shall be the CWL encoded in json format. +part:: If the execution unit is encoded in CWL, the value of the `href` property SHALL be a reference to the CWL encoded file. The value of the `value` property shall be the CWL encoded in json format. -part:: If the CWL contains more than a single workflow identifier, an addition `w` query parameter may be used to target a specific workflow id to be deployed. +part:: If the CWL contains more than a single workflow identifier, an addition `w` query parameter MAY be used to target a specific workflow id to be deployed. -part:: The server should validate the CWL at the request time. In case, the server cannot find the `w` identifier within the workflow from the CWL provided, a 400 status code is expected with the type "cwl-worflow-not-exist". +part:: The server SHOULD validate the CWL at the request time. In case, the server cannot find the `w` identifier within the workflow from the CWL provided, a 400 status code is expected with the type "cwl-worflow-not-exist". ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_body.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_body.adoc index 0a52333e..88486cc7 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_body.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /req/deploy-replace-undeploy/deploy/body -part:: The body of the POST request shall contain a formal description of the process to be dynamically deployed to the API. +part:: The body of the POST request SHALL contain a formal description of the process to be dynamically deployed to the API. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_post-op.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_post-op.adoc index e4629863..2c0ac42a 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_post-op.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_post-op.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /req/deploy-replace-undeploy/deploy/post-op -part:: The server shall support the HTTP POST operation at the path `/processes`. +part:: The server SHALL support the HTTP POST operation at the path `/processes`. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-body.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-body.adoc index dc03db14..88e6849e 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-body.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-body.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /req/deploy-replace-undeploy/deploy/response-body -part:: The response shall include a body that contains a summary description of the added process conforms to the https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/processSummary.yaml[processSummary.yaml] schema. +part:: The response SHALL include a body that contains a summary description of the added process conforms to the https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/processSummary.yaml[processSummary.yaml] schema. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-duplicate.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-duplicate.adoc index 08fb022f..7e5f2283 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-duplicate.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-duplicate.adoc @@ -4,7 +4,7 @@ [%metadata] label:: /req/deploy-replace-undeploy/deploy/response-duplicate -part:: If a process with the same identifier already exists on the server, the satus code of the response SHALL be `409`. +part:: If a process with the same identifier already exists on the server, the code of the response SHALL be `409`. part:: A response with HTTP status code `409` MAY include a `Location` header with the URI of the duplicated processes (path: `/processes/{processId}`). part:: The content of that response SHALL be based upon the OpenAPI 3.0 schema https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/core/openapi/schemas/exception.yaml[exception.yaml]. diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-immutable.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-immutable.adoc index 020769d4..2a1ba152 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-immutable.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-immutable.adoc @@ -4,7 +4,7 @@ [%metadata] label:: /req/deploy-replace-undeploy/deploy/response-immutable -part:: If a process with the same identifier already exists on the server and is immutable, the satus code of the response SHALL be `403`. +part:: If a process with the same identifier already exists on the server and is immutable, the code of the response SHALL be `403`. part:: A response with HTTP status code `403` MAY include a `Location` header with the URI of the existing process (path: `/processes/{processId}`). part:: The content of that response shall be based upon the OpenAPI 3.0 schema https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/core/openapi/schemas/exception.yaml[exception.yaml]. diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-pid.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-pid.adoc index 288bd90f..b41df9d7 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-pid.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-pid.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /req/deploy-replace-undeploy/deploy/response-pid -part:: If the operation completes successfully, the server shall assign the processes identifier (i.e. `{processId}`) specified in the processes description to the newly added processes. +part:: If the operation completes, the server SHALL assign the processes identifier (i.e. `{processId}`) specified in the processes description for the newly added processes. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-success.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-success.adoc index 53a06433..5f1bc618 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-success.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_response-success.adoc @@ -3,7 +3,7 @@ ==== [%metadata] label:: /req/deploy-replace-undeploy/deploy/response-success -part:: A successful execution of the operation shall be reported as a response with a HTTP status code `201`. +part:: A successful execution of the operation SHALL be reported as a response with a HTTP status code `201`. part:: A response with HTTP status code `201` SHALL include a `Location` header with the URI of the deployed processes (path: `/processes/{processId}`). part:: If the operation is not executed immediately, but is added to a processing queue, the response SHALL have a HTTP status code `202`. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_unsupported-media-type.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_unsupported-media-type.adoc index 7071ac54..e5686d24 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_unsupported-media-type.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_unsupported-media-type.adoc @@ -4,7 +4,7 @@ [%metadata] label:: /req/deploy-replace-undeploy/deploy/unsupported-media-type -part:: If the server does not support the Content-Type header associated with the request body, the satus code of the response SHALL be `415 Unsupported Media Type`. +part:: If the server does not support the Content-Type header associated with the request body, the code of the response SHALL be `415 Unsupported Media Type`. part:: The content of that response SHALL be based upon the OpenAPI 3.0 schema https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/core/openapi/schemas/exception.yaml[exception.yaml]. part:: The `type` of the exception SHALL be “http://www.opengis.net/def/exceptions/ogcapi-processes-2/1.0/unsupported-media-type”. diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/immutable/REQ_indicator.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/immutable/REQ_indicator.adoc index 3267419e..cfeb4a9d 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/immutable/REQ_indicator.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/immutable/REQ_indicator.adoc @@ -3,8 +3,8 @@ ==== [%metadata] label:: /req/deploy-replace-undeploy/static-indicator -part:: The optional property `mutable` shall be used to indicate whether a process is a static or built-in process that is immutable or a dynamically added process that is mutable. -part:: A value of `true` shall be used to indicate that a processes is mutable and can thus be manipulated through the API. -part:: A value of `false` shall be used to indicate that a processes is immutable and can thus not be manupulated through the API. -part:: The default value shall be `true`. +part:: The optional property `mutable` SHALL be used to indicate whether a process is a static or built-in process that is immutable or a dynamically added process that is mutable. +part:: A value of `true` SHALL be used to indicate that a processes is mutable and can thus be manipulated through an API request. +part:: A value of `false` SHALL be used to indicate that a processes is immutable and can thus not be manipulated through an API request. +part:: The default value SHALL be `true`. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_body.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_body.adoc index 9aa8e0ee..72f52383 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_body.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /req/deploy-replace-undeploy/replace/body* -part:: The body of a PUT request shall contain a formal description of the replacement process. +part:: The body of a PUT request SHALL contain a formal description of the replacement process. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_content-type.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_content-type.adoc index d2a7d717..19f3a0a6 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_content-type.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_content-type.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /req/deploy-replace-undeploy/replace/content-type -part:: As per <> (https://tools.ietf.org/html/rfc2616#section-14.17) the 'Content-Type' header shall be used to indicate the media type of a request body containing the description of the replacement processes. +part:: As per <> (https://tools.ietf.org/html/rfc2616#section-14.17) the 'Content-Type' header SHALL be used to indicate the media type of a request body containing the description of the replacement processes. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_put-op.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_put-op.adoc index ced61562..b9e580a6 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_put-op.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/replace/REQ_put-op.adoc @@ -3,6 +3,6 @@ ==== [%metadata] label:: /req/deploy-replace-undeploy/replace/put-op -part:: For every dynamically deployed processes (path '/processes/{processId}'), the server shall support the HTTP PUT operation. +part:: For every dynamically deployed processes (path '/processes/{processId}'), the server SHALL support the HTTP PUT operation. part:: The parameter 'processId' is each 'id' property in the process collection response (JSONPath: `$.processes[*].id`). ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/undeploy/REQ_delete-op.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/undeploy/REQ_delete-op.adoc index 2681409c..1e0ea85d 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/undeploy/REQ_delete-op.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/undeploy/REQ_delete-op.adoc @@ -3,6 +3,6 @@ ==== [%metadata] label:: /req/deploy-replace-undeploy/undeploy/delete-op -part:: For every dynamically added process (path: `/processes/{processId}`), the server shall support the HTTP DELETE operation. +part:: For every dynamically added process (path: `/processes/{processId}`), the server SHALL support the HTTP DELETE operation. part:: The parameter `processId` is each `id` property in the process collection response (JSONPath: `$.processes[*].id`). ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/undeploy/REQ_response.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/undeploy/REQ_response.adoc index 3c90d6be..8b5e1dee 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/undeploy/REQ_response.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/undeploy/REQ_response.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /req/deploy-replace-undeploy/undeploy/response -part:: A successful execution of the operation shall be reported as a response with a HTTP status code '204'. +part:: A successful execution of the operation SHALL be reported as a response with a HTTP status code '204'. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_process-description.adoc b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_process-description.adoc index b2ab05c3..e6429c00 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_process-description.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_process-description.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /req/ogcapppkg/process-description -part:: The value of the processDescription property shall be based upon the OpenAPI 3.0 schema https://github.com/opengeospatial/ogcapi-processes/blob/master/openapi/schemas/processes-core/process.yaml[process.yaml]. +part:: The value of the processDescription property SHALL be based upon the OpenAPI 3.0 schema https://github.com/opengeospatial/ogcapi-processes/blob/master/openapi/schemas/processes-core/process.yaml[process.yaml]. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_schema.adoc b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_schema.adoc index c091854a..a2ad457c 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_schema.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_schema.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /req/ogcapppkg/schema -part:: An `OGC Application Package` document shall be based upon the schema http://schemas.opengis.net/ogcapi/processes/part2/1.0/openapi/schemas/ogcapppkg.yaml[ogcapppkg.yaml]. +part:: An `OGC Application Package` document SHALL be based upon the schema http://schemas.opengis.net/ogcapi/processes/part2/1.0/openapi/schemas/ogcapppkg.yaml[ogcapppkg.yaml]. ==== diff --git a/extensions/deploy_replace_undeploy/standard/sections/annex_ats.adoc b/extensions/deploy_replace_undeploy/standard/sections/annex_ats.adoc index 4a585f6c..a8606325 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/annex_ats.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/annex_ats.adoc @@ -4,15 +4,15 @@ === Introduction -OGC Web Application Programming Interfaces (APIs) are not Web Services in the traditional sense. Rather, they define the behavior and content of a set of Resources exposed through a Web API. Therefore, an API may expose resources in addition to those defined by the standard. A test engine must be able to traverse the API, identify and validate test points, and ignore resource paths which are not to be tested. +OGC Web Application Programming Interfaces (APIs) are not Web Services in the traditional sense. Rather, they define the behavior and content of a set of Resources exposed through a Web API. Therefore, an API endpoint may expose resources in addition to those defined by the standard. A test engine must be able to traverse an implementation of the API, identify and validate test points, and ignore resource paths which are not to be tested. The Web API under test can require authorization. Any Executable Test Suite implementing this test suite should implement the following security schemes supported by OpenAPI 3.0: HTTP Authorization schemes "basic" and "bearer", API keys, and OAuth2 flow "authorizationCode". -The following requirement applies for a server implementing the OGC API — Processes — Part 2: Deploy, Replace, Uneploy under test: +The following requirement apply for a server implementing the OGC API — Processes — Part 2: Deploy, Replace, Undeploy under test: include::../abstract_tests/dru/ATS_mutable-process.adoc[] -In case both OGC Application Package and CWL conformance classes are supported, the following requirement applies for a server implementing the OGC API — Processes — Part 2: Deploy, Replace, Uneploy under test: +In case both an OGC Application Package and CWL conformance classes are supported, the following requirement applies for a server implementing the OGC API — Processes — Part 2: Deploy, Replace, Undeploy being tested: include::../abstract_tests/dru/ATS_test-process.adoc[] diff --git a/extensions/deploy_replace_undeploy/standard/sections/annex_bibliography.adoc b/extensions/deploy_replace_undeploy/standard/sections/annex_bibliography.adoc index 0afc92dd..351430db 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/annex_bibliography.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/annex_bibliography.adoc @@ -25,5 +25,5 @@ Springer LNCS is widely used in technical and computer science journals and othe * [[[OpenEO_Process_Graphs,2]]], OpenEO: OpenEO Developers API Reference / Process Graphs. https://openeo.org/documentation/1.0/developers/api/reference.html#section/Processes/Process-Graphs -* [[[OpenAPI-Spec,OpenAPI Specification 3.0.2]]] Open API Initiative. OpenAPI Specification 3.0.2. Available at: +* [[[OpenAPI-Spec,OpenAPI Specification 3.0.2]]] OpenAPI Initiative. OpenAPI Specification 3.0.2. Available at: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md. diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_12_security_considerations.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_12_security_considerations.adoc index 2ce7390a..ff6719b7 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_12_security_considerations.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_12_security_considerations.adoc @@ -2,26 +2,26 @@ See <>, Clause 10.4. -Since deploy, replace and undeploy operations will change processes available, servers will in almost all cases restrict the access to these operations. +Since deploy, replace and undeploy (DRU) operations will change the processes available to a client, servers will - in almost all cases - restrict the access to these operations. -Users making modifications to resources need to: +Users making modifications to process resources need to: -. be authenticated, -. have "modification privileges" on the processes offered by the API, -. have access to one or more of the POST, PUT and/or DELETE methods on the processes / processes/{processId} endpoints. +. Be authenticated, +. Have "modification privileges" on the processes offered through the API, +. Have access to one or more of the POST, PUT and/or DELETE methods on the processes / processes/{processId} endpoints. -The API definition has to reflect this in the resource paths and their available methods. +The API definition must reflect this in the resource paths and their available methods. -The examples in the chapters specifying the requirements classes focus on the mechanics of the POST, PUT, and DELETE methods and exclude authentication. Since authentication will typically be required for all requests, this section provides some examples/guidance: +Examples in the Clauses specifying the requirements classes focus on the mechanics of the POST, PUT, and DELETE methods and exclude authentication. Since authentication will typically be required for all DRU requests, this section provides some examples/guidance: -The OpenAPI definition will declare the authentication schemes that the API supports for each operation (or for all operations in the API). +The OpenAPI definition will declare the authentication schemes that an implementation of the Processes - Part 2 (DRU) supports for each operation (or for all operations in the API implementation). -A member "security" in the OpenAPI definition object can be provided to list the default security schemes supported by all operations. Individual operations can override this default by providing a "security" member for the individual operation. +A member "security" in the OpenAPI definition object can be provided to list the default security schemes supported by all operations. Individual DRU operations can override this default by providing a "security" member for the individual operation. [#auth-example-1,reftext=`Example OpenAPI definition with security requirements`] .Example OpenAPI definition with security requirements ==== -The following OpenAPI definition declares that the API accepts either api keys in an "X-API-Key" header or JWT bearer tokens to authenticate the requestor. The API will decide, if an authenticated request is rejected or executed based on privileges of the authenticated user. +The following OpenAPI definition declares that the API accepts either api keys in an "X-API-Key" header or Json Web Token (JWT) bearer tokens to authenticate the requestor. X-API-KEY is a custom HTTP header that can be used to secure APIs. The API implementation will decide, if an authenticated request is rejected or executed based on the privileges of the authenticated user. [source,JSON] ---- @@ -58,9 +58,9 @@ The following OpenAPI definition declares that the API accepts either api keys i ---- ==== -If the authentication of a secured request fails or if the user does not have sufficient privileges, the API will return an error. +If the authentication of a secured request fails or if the user does not have sufficient privileges, the API endpoint will return an error. -In case the request does not include information to authenticate the user, the server will respond with a 401 response ("Unauthorized"). The response will include a "WWW-Authenticate" header with hints how to provide authentication credentials. +In case the request does not include information to authenticate the user, the server will respond with a 401 response ("Unauthorized"). The response will include a "WWW-Authenticate" header with hints as to how authentication credentials are provided. [#auth-example-2,reftext=`Unauthorized request`] .Unauthorized request @@ -115,4 +115,4 @@ Client Server |<------------------------------------------------------------------------------------------------------------------------------------| ``` -However, for security reasons, the server may also decide to return other status codes to hide information from a potential attacker. For example, the server may decie to return a 401 response even for a valid, but un-privileged user. Or the server may return a 404 response ("Not Found") to hide the fact that the resource exists in the first place, typically if the user would also not be privileged to fetch the resource with a GET operation. \ No newline at end of file +However, for security reasons, the server may also decide to return other status codes to hide information from a potential attacker. For example, the server may decide to return a 401 response even for a valid, but un-privileged user. Or the server may return a 404 response ("Not Found") to hide the fact that the resource exists in the first place, typically if the user would also not be privileged to fetch the resource with a GET operation. \ No newline at end of file diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_1_scope.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_1_scope.adoc index 6c749924..d58afcde 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_1_scope.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_1_scope.adoc @@ -1,7 +1,7 @@ == Scope -This specification is an extension to the <> standard that defines the behavior of a server that -supports the ability to dynamically add, replace or undeploy processes from an OGC API - Processes instance. +The OGC API - Processes - Part 2 Standard is an extension to the OGC API – Processes – Part 1: Core Standard [<>] and defines the behavior of a server that +supports the ability to dynamically add, replace and/or undeploy processes from via an OGC API - Processes implementation instance. This document specifies an extension that defines the behaviour of a server diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_2_conformance.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_2_conformance.adoc index aadedf38..895d93ae 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_2_conformance.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_2_conformance.adoc @@ -1,7 +1,7 @@ == Conformance -This standard defines the following requirements classes. +The OGC API - Processes - Part 2 Standard defines the following requirements classes. The standardization target is "Web APIs". @@ -9,7 +9,7 @@ The main requirements class is: * <>. -This class specifies requirements that all Web APIs have to implement. +This class specifies requirements that any Web API implementing Processes Part 2 must conform with. The `Deploy, Replace, Undeploy` class does not mandate a specific encoding or format for the formal definition of a process. However, this extension @@ -21,7 +21,7 @@ for this purpose. The `OGC Application Package` class defines the schema of a document that formally defines the inputs, outputs and other necessary metadata about a process that is to be dynamically deployed through the API. -This encoding is not mandatory and an implementation of this extension may +The Application Package encoding is not mandatory. An implementation of this extension may choose to implement some other process description instead. That said, the `Deploy, Replace, Undeploy` conformance class includes recommendations to support the `OGC Application Package`. @@ -35,7 +35,9 @@ enable support for the Common Workflow Language (CWL): * <> -Conformance with this standard shall be checked using all the relevant tests +The standardization target for all Conformance class defined in this Standard is “Web API”. + +Conformance with this Standard shall be checked using all the relevant tests specified in <> of this document. The framework, concepts, and methodology for testing, and the criteria to be achieved to claim conformance are specified in the OGC Compliance Testing Policies and Procedures and the diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc index ba988199..45ea5d6f 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc @@ -1,36 +1,36 @@ -== Requirements Class "Deploy, Replace, Undeploy" +== Requirements Class "Deploy, Replace, Undeploy (DRU)" [[deploy-replace-undeploy-overview]] === Overview include::../requirements/requirements_class_deploy-replace-undeploy.adoc[] -A server that implements this conformance class provides the ability to +A server that implements the DRU conformance class provides the ability to dynamically deploy, replace and undeploy processes from a processes API. The HTTP POST method is used to deploy a new process to the API. -The HTTP PUT method is used to replace the definition of a previously deployed processes that is accessible via the API. +The HTTP PUT method is used to replace the definition of a previously deployed processes that are accessible via the Processes API endpoint. Finally, the HTTP DELETE method is used to undeploy a previously deployed process that is accessible via the API. Deploying or replacing a process requires that a formal description of the new or replacement process be provided by the client. This extension does not mandate that a specific processes description language or vocabulary be used. -However, in order to promote interoperability, this extension defines two -conformance classes: +However, to promote interoperability, this extension defines two conformance +classes: * <>, that defines a formal process description language encoded using JSON, * <>, that enables support for CWL-encoded process definition, -A recommendation is made later in this specification that all implementations of this extension support the `OGC Application Package`. +A recommendation is made later in this Standard that all implementations of Processes - Part 2 extension support the `OGC Application Package`. [[deploy-replace-undeploy-http_status_codes]] ==== HTTP status codes -API clients should be prepared to handle any legal HTTP or HTTPS status code. +Clients implementing the Processes - Part 2 should be prepared to handle any legal HTTP or HTTPS status code. -The *Status Codes* listed in <> are of particular relevance to implementors of this standard. Status codes 200, 201 and 404 are called out in API requirements. Therefore, support for these status codes is mandatory for all compliant implementations. The remainder of the status codes in <> are not mandatory, but are important for the implementation of a well functioning API. Support for these status codes is strongly encouraged for both client and server implementations. +The *Status Codes* listed in <> are of particular relevance to implementors of this standard. Status codes 200, 201 and 404 are called out in API requirements. Therefore, support for these status codes is mandatory for all compliant implementations. The remainder of the status codes in <> are not mandatory, but are important for the implementation of a well functioning API implementation. Support for these status codes is strongly encouraged for both client and server implementations. [[status_codes]] .Typical HTTP status codes @@ -38,12 +38,12 @@ The *Status Codes* listed in <> are of particular relevance to imp |=== |Status code |Description |`200` |A successful request. -|`201` |The server has been fulfilled the operation and a new resource has been created. -|`202` |The request has been accepted for processing, but the processing has not been completed. The request might or might not eventually be acted upon, as it might be disallowed when processing actually takes place. +|`201` |The server has successfully completed the operation and a new resource has been created. +|`202` |The request was accepted for processing, but the processing was not completed. The request might or might not eventually be acted upon, as it might be disallowed when processing actually takes place. |`204` |A successful request with no additional content to send in the response. |`400` |The server cannot or will not process the request due to an apparent client error. For example, a query parameter had an incorrect value. |`401` |The request requires user authentication. The response includes a `WWW-Authenticate` header field containing a challenge applicable to the requested resource. -|`403` |The server understood the request, but is refusing to fulfill it. While status code `401` indicates missing or bad authentication, status code `403` indicates that authentication is not the issue, but the client is not authorized to perform the requested operation on the resource. +|`403` |The server understood the request, but is refusing to execute the request. While status code `401` indicates missing or bad authentication, status code `403` indicates that authentication is not the issue, but that the client is not authorized to perform the requested operation on the resource. |`404` |The requested resource does not exist on the server. For example, a path parameter had an incorrect value. |`405` |The request method is not supported. For example, a POST request was submitted, but the resource only supports GET requests. |`406` |Content negotiation failed. For example, the `Accept` header submitted in the request did not support any of the media types supported by the server for the requested resource. @@ -60,7 +60,7 @@ More specific guidance is provided for each resource, where applicable. include::../recommendations/deploy-replace-undeploy/PER_additional-status-codes.adoc[] -The API Description Document describes the HTTP status codes generated by that API. This should not be an exhaustive list of all possible status codes. It is not reasonable to expect an API designer to control the use of HTTP status codes which are not generated by their software. Therefore, it is recommended that the API Description Document limit itself to describing HTTP status codes relevant to the proper operation of the API application logic. Client implementations should be prepared to receive HTTP status codes in addition to those described in the API Description Document. +The API Description Document describes the HTTP status codes generated by that API imeplementation instance. This should not be an exhaustive list of all possible status codes. It is not reasonable to expect an API designer to control the use of HTTP status codes which are not generated by their software. Therefore, it is recommended that the API Description Document be limited to describing HTTP status codes relevant to the proper operation of the API application logic. Client implementations should be prepared to receive HTTP status codes in addition to those described in the API Description Document. [[cross_origin]] ==== Cross-origin requests @@ -70,9 +70,9 @@ See <>, section link:http://www.open === Immutable processes -This extension recognizes that an OGC web processing API may be deployed with a set of static, built-in processes that are immutable and cannot be removed or modified via the deploy-replace-undeploy API. In an API Description Document (e.g. OpenAPI), such process paths would not include support for the HTTP POST, PUT or DELETE methods. +The Processes API Part 2 extension recognizes that an OGC web processing API may be deployed with a set of static, built-in processes that are immutable and cannot be removed or modified via requests from a deploy-replace-undeploy API implementation. In an API Description Document (e.g. OpenAPI), such process paths would not include support for the HTTP POST, PUT or DELETE methods. -However, in order to make it clear which processes in a collection (path: `/processes`) are built-in - and thus immutable - and which have been dynamically deployed, the processes collection schema is modified to add a flag indicating this aspect of a process. +However, to make it clear which processes in a collection (path: `/processes`) are built-in - and thus immutable - and which have been dynamically deployed, the processes collection schema is modified to add a flag indicating this aspect of a process. include::../requirements/deploy-replace-undeploy/immutable/REQ_indicator.adoc[] @@ -165,7 +165,7 @@ include::../requirements/deploy-replace-undeploy/deploy/REQ_response-immutable.a The following diagram illustrates the sequence diagram for replacing a previously deployed processes. The identifier of the process does not change. -NOTE: The new process definition replaced to old process definition; version control is not discussed in this standard. +NOTE: The new process definition replaces to old process definition. Version control is not discussed in this Standard. ``` Client Server @@ -208,15 +208,15 @@ include::../recommendations/deploy-replace-undeploy/replace/REC_body-cwl.adoc[] include::../requirements/deploy-replace-undeploy/replace/REQ_response.adoc[] -The status code depends on the server. If the server has replaced the process, the response is either `200`, if the response includes additional content, or `204`, if the response has no additional content. +The status code depends on the server. If the server has replaced the process, the response is either `200` (if the response includes additional content) or `204` (if the response has no additional content). -If the server will process the replace request later, it will return a `202`. In this case, the processing can succeed or fail, without further notification to the client. +If the server will process the replace request later, a `202` status code will be returned. In this case, the processing can succeed or fail, without further notification to the client. ==== Exceptions See <> for general guidance. -If the request body's media type is not supported by the server, then <> applies. +If the request body's media type is not supported by the server, then <> applies. If the process with the specified identifier does not exist on the server, see requirement /req/core/process-exception/no-such-process from <>. diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc index 201a04b2..8ac931a8 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc @@ -9,12 +9,12 @@ include::../requirements/requirements_class_ogcapppkg.adoc[] This conformance class defines the schema of an `OGC Application Package`. An `OGC Application Package` is a document that describes a process in sufficient detail so that an implementation of this extension can dynamically deploy the -process and make it available for execution via an OGC processes API. +process and make it available for execution via an OGC API - Processes implementation. An `OGC Application Package` document provides all the information necessary to deploy a process and make it accessible through the OGC API - Processes API. -The information contains in an `OGC Application Package` can include: +The information contained in an `OGC Application Package` can include: * A formal description of the process including what inputs the process takes and what outputs the process generates. * Either inline or by reference an execution unit which is the `code` that the server needs to execute whenever the process is invoked. @@ -36,7 +36,7 @@ include::../../../../openapi/schemas/processes-dru/ogcapppkg.yaml[] ==== processDescription property The formal process description (i.e. its inputs, its output, etc.) is provided, -either in-line using the `processDescription` property or may be infered from +either in-line using the `processDescription` property or may be inferred from the information provided in the <>. include::../requirements/ogcapppkg/REQ_process-description.adoc[] @@ -44,9 +44,9 @@ include::../requirements/ogcapppkg/REQ_process-description.adoc[] [[executionUnit]] ==== executionUnit property -The execution unit is the `code` that an implementation of this extensions needs +The execution unit is the `code` that an implementation of the Part 2 extension needs to execute whenever the deployed process is executed. The execution unit can be -specified by reference, e.g. docker image reference. +specified by reference, e.g. Docker image reference. include::../recommendations/ogcapppkg/REC_execution-unit-docker.adoc[] diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc index 4d704564..9c5acee1 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc @@ -5,9 +5,9 @@ include::../requirements/requirements_class_docker.adoc[] -A server that implements this conformance class supports the management of Docker image as execution units with the deploy-replace-undeploy extension from a processes API. +A server that implements the Docker Requirement Class supports the management of Docker image as execution units by implementing the Processes API Part2 deploy-replace-undeploy extension. -In consequence, the following recommandation become requirement: +In consequence, the following recommandation becomes requirement: * <> diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc index c124b364..dae1e5aa 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc @@ -5,12 +5,12 @@ include::../requirements/requirements_class_cwl.adoc[] -A server that implements this conformance class supports the use of CWL encoding when interacting with the deploy-replace-undeploy extension from a processes API. +A server that implements the CWL Requirement Class SHALL support the use of CWL encoding when interacting with the Processes API Part 2 deploy-replace-undeploy extension endpoint. -In consequence, the following recommandations become requirements: +In consequence, the following recommandations defined in Recommendation 2 and Recommandation 4 become requirements: * <> * <> - * <> + * <> From 933d8edd425a12f9874036086337382addb694b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Wed, 20 Dec 2023 11:53:32 +0100 Subject: [PATCH 02/17] Integrate missing fixes to ATS --- .../standard/abstract_tests/cwl/deploy/ATS_body.adoc | 2 +- .../standard/abstract_tests/cwl/replace/ATS_body.adoc | 2 +- .../standard/abstract_tests/dru/ATS_test-process.adoc | 2 +- .../standard/abstract_tests/ogcapppkg/replace/ATS_response.adoc | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/deploy/ATS_body.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/deploy/ATS_body.adoc index 7b8c331f..0f614664 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/deploy/ATS_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/deploy/ATS_body.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/cwl/deploy/body target:: /rec/deploy-replace-undeploy/deploy/body-cwl -test-purpose:: Validate that the server support deploy operation using the Common Worflow Language encoding +test-purpose:: Validate that the server support deploy operation using the Common Workflow Language encoding test-method:: + -- diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/replace/ATS_body.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/replace/ATS_body.adoc index 6f385f37..4ca0ef1c 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/replace/ATS_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/replace/ATS_body.adoc @@ -5,7 +5,7 @@ [%metadata] identifier:: /conf/cwl/replace/body target:: /req/cwl/replace/body -test-purpose:: Validate that the server support replace operation using the Common Worflow Language encoding +test-purpose:: Validate that the server support replace operation using the Common Workflow Language encoding test-method:: + -- diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/ATS_test-process.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/ATS_test-process.adoc index a8fc4da1..69a08726 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/ATS_test-process.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/dru/ATS_test-process.adoc @@ -8,6 +8,6 @@ test-purpose:: Ensure that an application package URL can be provided in CWL enc test-method:: + -- -If a server implementing the OGC API - Processes - Part 2: Deploy, Replace, Undeploy is tested using CITE tests, it should provide a URL to an example application package encoded in CWL for tests against the OGC Application Package and CWL conformance classe. +If a server implementing the OGC API - Processes - Part 2: Deploy, Replace, Undeploy is tested using CITE tests, it should provide a URL to an example application package encoded in CWL for tests against the OGC Application Package and CWL conformance classes. -- ==== \ No newline at end of file diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_response.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_response.adoc index 7e2d61ed..ec038521 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_response.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_response.adoc @@ -9,7 +9,7 @@ test-purpose:: Validate that the server returns HTTP Status code 200, 202 or 204 test-method:: + -- -1. Validate that the status code is 200, 202 or 204 +1. Validate that the status code is 200, 202 or 204. -- ==== From 7f2ecbde69941d9a541a17c7e5ece264f91bbbcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Wed, 20 Dec 2023 12:06:25 +0100 Subject: [PATCH 03/17] Modify security diagrams --- .../sections/clause_12_security_considerations.adoc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_12_security_considerations.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_12_security_considerations.adoc index ff6719b7..c4dd8ebc 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_12_security_considerations.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_12_security_considerations.adoc @@ -69,7 +69,7 @@ In case the request does not include information to authenticate the user, the s Client Server | | | DELETE /processes/SampleProcess HTTP/1.1 | - | ---------------------------------------------------------------------------------------------------------------------->| + | ----------------------------------------------------------->| | | | HTTP/1.1 401 Unauthorized | | Date: Mon, 23 May 2022 11:18:45 GMT | @@ -81,12 +81,13 @@ Client Server | | | { | | "status": 401, | - | "title": "Unauthorized", | - | "detail": "HTTP 401 Unauthorized" | + | "title": "Unauthorized", | + | "detail": "HTTP 401 Unauthorized" | | } | - | <----------------------------------------------------------------------------------------------------------------------| + | <-----------------------------------------------------------| ---- +NOTE: HTTP WWW-Authenticate header is a response-type header. It serves as a support for various authentication mechanisms which are important to control access to pages and other resources as well. All of these mechanisms are based on the use of the 401 status code. The HTTP WWW-Authenticate response header defines the authentication method that ought to be wont to gain access to a resource. As discussed earlier, the WWW-Authenticate header is sent along with a 401 Unauthorized response. (GeeksforGeeks.org, 2023) If valid authentication credentials have been provided, but the API refuses to execute the operation, because the user has insufficient privileges, the server will typically return a 403 response ("Forbidden"). @@ -99,7 +100,7 @@ Client Server | DELETE /processes/SampleProcess HTTP/1.1 | | Host: example.com | | Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ97HgQ | - |------------------------------------------------------------------------------------------------------------------------------------>| + |------------------------------------------------------------------>| | | | HTTP/1.1 403 Forbidden | | Date: Mon, 23 May 2022 11:18:55 GMT | @@ -112,7 +113,7 @@ Client Server | "title" : "Forbidden", | | "detail" : "HTTP 403 Forbidden" | | } | - |<------------------------------------------------------------------------------------------------------------------------------------| + |<------------------------------------------------------------------| ``` However, for security reasons, the server may also decide to return other status codes to hide information from a potential attacker. For example, the server may decide to return a 401 response even for a valid, but un-privileged user. Or the server may return a 404 response ("Not Found") to hide the fact that the resource exists in the first place, typically if the user would also not be privileged to fetch the resource with a GET operation. \ No newline at end of file From b5e657142c30570948feb5c9e9b41be3f4432d84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Wed, 20 Dec 2023 17:23:11 +0100 Subject: [PATCH 04/17] Tentative description of the Deploy, Replace and Undeploy term --- .../sections/clause_4_terms_and_definitions.adoc | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_4_terms_and_definitions.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_4_terms_and_definitions.adoc index 53346ba2..d1536d5b 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_4_terms_and_definitions.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_4_terms_and_definitions.adoc @@ -1,9 +1,19 @@ -== Terms and Definitions +== Terms, definitions and abbreviated terms -This document uses the terms defined in Sub-clause 5.3 of [OGC 06-121r9], which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this standard. +=== Terms and definitions -For the purposes of this document, the following additional terms and definitions apply in addition to the terms defined in <>. +==== Deploy + +Deploy is a verb describing the operation of installing the desired components and associated metadata information on a Processes API implementation so that the client applications can use the OGC API - Processes - Part 1 Standard to interact with these components as a process. + +==== Replace + +Replace is a verb that describes the operation of upgrading a deployed process, its associated components, and its metadata on a Processes API implementation. + +==== Undeploy + +Undeploy is a verb that describes removing a deployed process, its associated components, and metadata on a Processes API implementation so that it does not appear anywhere except in the jobs list, potentially. === Abbreviated Terms From 8597aed14987ba23353e49b0c181e55bf92df19d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Wed, 20 Dec 2023 18:08:36 +0100 Subject: [PATCH 05/17] Add the term Execution unit to help defining Deploy, Replace, Undeploy operations. --- .../sections/clause_4_terms_and_definitions.adoc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_4_terms_and_definitions.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_4_terms_and_definitions.adoc index d1536d5b..67996db5 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_4_terms_and_definitions.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_4_terms_and_definitions.adoc @@ -3,17 +3,21 @@ === Terms and definitions +==== Execution unit + +An execution unit is a component that contains a process that an implementation of the Processes API can run. + ==== Deploy -Deploy is a verb describing the operation of installing the desired components and associated metadata information on a Processes API implementation so that the client applications can use the OGC API - Processes - Part 1 Standard to interact with these components as a process. +Deploy is a verb describing the operation of installing the desired execution unit and associated process description on a Processes API implementation so that the client applications can use the OGC API - Processes - Part 1 Standard to interact with these components as a process. ==== Replace -Replace is a verb that describes the operation of upgrading a deployed process, its associated components, and its metadata on a Processes API implementation. +Replace is a verb that describes the operation of upgrading a deployed process, its associated execution unit, and its process description from a Processes API implementation. ==== Undeploy -Undeploy is a verb that describes removing a deployed process, its associated components, and metadata on a Processes API implementation so that it does not appear anywhere except in the jobs list, potentially. +Undeploy is a verb that describes removing a deployed process, its associated execution unit, and process description from a Processes API implementation so that it does not appear anywhere except in the jobs list, potentially. === Abbreviated Terms From 9378b07964cdcfdba33b84065bdc19cb9bbe8235 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Thu, 4 Jan 2024 13:28:13 +0100 Subject: [PATCH 06/17] Modify the definitions and abbreviated terms --- .../standard/20-044.adoc | 2 +- .../deploy/REC_body-cwl.adoc | 2 +- .../standard/sections/annex_ats.adoc | 2 +- .../sections/clause_0_front_material.adoc | 6 +++--- .../clause_12_security_considerations.adoc | 4 ++-- .../standard/sections/clause_1_scope.adoc | 15 +++++---------- .../sections/clause_2_conformance.adoc | 6 ++---- .../clause_4_terms_and_definitions.adoc | 10 +++++----- .../clause_6_deploy_replace_undeploy.adoc | 18 +++++++++--------- .../standard/sections/clause_7_apppkg.adoc | 9 +++------ .../standard/sections/clause_9_cwl.adoc | 2 +- 11 files changed, 33 insertions(+), 43 deletions(-) diff --git a/extensions/deploy_replace_undeploy/standard/20-044.adoc b/extensions/deploy_replace_undeploy/standard/20-044.adoc index b365f121..af0779de 100644 --- a/extensions/deploy_replace_undeploy/standard/20-044.adoc +++ b/extensions/deploy_replace_undeploy/standard/20-044.adoc @@ -11,7 +11,7 @@ :issued-date: yyyy-mm-dd :external-id: http://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.. +:submitting-organizations: Geolabs; CubeWerx Inc; Terradue Srl.; Wuhan University (WHU).; Computer Research Institute of Montréal (CRIM). :editor: Panagiotis (Peter) A. Vretanos, Gérald Fenoy :mn-document-class: ogc :mn-output-extensions: xml,html,doc,pdf diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-cwl.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-cwl.adoc index 45d0753e..42a57baf 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-cwl.adoc @@ -10,6 +10,6 @@ part:: The media type `application/cwl` SHALL be used to indicate that request b part:: If the CWL contains more than one workflow, an additional `w` query parameter MAY be used to reference the workflow id to be deployed. -part:: The server SHOULD validate the CWL at the request time. In case, the server cannot find the `w` identifier within the workflow from the CWL provided, a 400 status code is expected with the type "workflow-not-found". +part:: If the `w` parameter has a value, the server SHOULD validate the CWL at the request time. If the server cannot find the `w` identifier within the workflow from the CWL provided, it SHOULD return a 400 status code with an exception having type "workflow-not-found." ==== diff --git a/extensions/deploy_replace_undeploy/standard/sections/annex_ats.adoc b/extensions/deploy_replace_undeploy/standard/sections/annex_ats.adoc index a8606325..44af1ba3 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/annex_ats.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/annex_ats.adoc @@ -8,7 +8,7 @@ OGC Web Application Programming Interfaces (APIs) are not Web Services in the tr The Web API under test can require authorization. Any Executable Test Suite implementing this test suite should implement the following security schemes supported by OpenAPI 3.0: HTTP Authorization schemes "basic" and "bearer", API keys, and OAuth2 flow "authorizationCode". -The following requirement apply for a server implementing the OGC API — Processes — Part 2: Deploy, Replace, Undeploy under test: +The following requirements apply for a server implementing the OGC API — Processes — Part 2: Deploy, Replace, Undeploy under test: include::../abstract_tests/dru/ATS_mutable-process.adoc[] diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_0_front_material.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_0_front_material.adoc index 4f25343f..0218e57e 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_0_front_material.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_0_front_material.adoc @@ -2,11 +2,11 @@ [abstract] == Abstract -OGC API standards define modular API building blocks to spatially enable Web APIs in a consistent way. The <> is used to define the API building blocks. +OGC API Standards define modular API building blocks to spatially enable Web APIs in a consistent way. The <> is used to define the API building blocks. -OGC API Processes provides API building blocks to describe, execute, monitor and retrieve results of Web-accessible processes. OGC API Processes is comprised of multiple parts, each of them is a separate standard. +The OGC API Processes Standard (aka Processes API) defines API building blocks to describe, execute, monitor and retrieve results of Web-accessible processes. OGC API Processes is comprised of multiple parts, each of them is a separate OGC Standard. -This part extends the core capabilities specified in <> with the ability to dynamically add, modify and/or delete individual processes from a processes API endpoint. +OGC API - Processes - Part 2: Deploy, Replace, Undeploy extends the core capabilities specified in OGC API - Processes - Part 1: Core [<>] with the ability to dynamically add, modify and/or delete individual processes using an implementation (endpoint) of the OGC API - Processes Standard. CAUTION: This is a DRAFT version of the 2nd part of the OGC API - Processes standards. This draft is not complete and there are open issues that are still under discussion. diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_12_security_considerations.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_12_security_considerations.adoc index c4dd8ebc..1207e44b 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_12_security_considerations.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_12_security_considerations.adoc @@ -10,11 +10,11 @@ Users making modifications to process resources need to: . Have "modification privileges" on the processes offered through the API, . Have access to one or more of the POST, PUT and/or DELETE methods on the processes / processes/{processId} endpoints. -The API definition must reflect this in the resource paths and their available methods. +The API definition, as defined in Clause 7.3 from <>, must reflect this in the resource paths and their available methods. Examples in the Clauses specifying the requirements classes focus on the mechanics of the POST, PUT, and DELETE methods and exclude authentication. Since authentication will typically be required for all DRU requests, this section provides some examples/guidance: -The OpenAPI definition will declare the authentication schemes that an implementation of the Processes - Part 2 (DRU) supports for each operation (or for all operations in the API implementation). +The OpenAPI definition exposed by the serve will declare the authentication schemes that an implementation of the Processes - Part 2 (DRU) supports for each operation (or for all operations in the API implementation). A member "security" in the OpenAPI definition object can be provided to list the default security schemes supported by all operations. Individual DRU operations can override this default by providing a "security" member for the individual operation. diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_1_scope.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_1_scope.adoc index d58afcde..9d9dc8dd 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_1_scope.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_1_scope.adoc @@ -1,14 +1,9 @@ == Scope The OGC API - Processes - Part 2 Standard is an extension to the OGC API – Processes – Part 1: Core Standard [<>] and defines the behavior of a server that -supports the ability to dynamically add, replace and/or undeploy processes from via an OGC API - Processes implementation instance. +supports the ability to dynamically add, replace and/or undeploy processes via an OGC API - Processes implementation instance. - -This document specifies an extension that defines the behaviour of a server -that supports operations to deploy, replace or undeploy individual processes -from an OGC API Processes. - -Specifically, this document specifies: +Specifically, the Processes Part 2 Standard specifies: * How to deploy a new process. @@ -17,11 +12,11 @@ Specifically, this document specifies: * How to undeploy an existing process. The following table crosswalks each of the resource endpoints discussed in this -standard with the HTTP methods POST, PUT and DELETE. Each intersecting +Standard with the HTTP methods POST, PUT and DELETE. Each intersecting cell in the table either contains the name of the operation for that combination of resource endpoint and HTTP method, or it contains the -phrase "n/a" which is used to indicate that this specification does not -specify any behaviour for that combination of resource endpoint and HTTP +phrase "n/a" which is used to indicate that this Standard does not +specify any behavior for that combination of resource endpoints and the HTTP method. [#endpoint_method_matrix,reftext='{table-caption} {counter:table-num}'] diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_2_conformance.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_2_conformance.adoc index 895d93ae..162d3a45 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_2_conformance.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_2_conformance.adoc @@ -3,8 +3,6 @@ The OGC API - Processes - Part 2 Standard defines the following requirements classes. -The standardization target is "Web APIs". - The main requirements class is: * <>. @@ -12,12 +10,12 @@ The main requirements class is: This class specifies requirements that any Web API implementing Processes Part 2 must conform with. The `Deploy, Replace, Undeploy` class does not mandate a specific encoding or -format for the formal definition of a process. However, this extension +format for the formal definition of a process. However, the Part 2 extension defines the following conformance class: * <> -for this purpose. The `OGC Application Package` class defines the schema of a +The `OGC Application Package` class defines the schema of a document that formally defines the inputs, outputs and other necessary metadata about a process that is to be dynamically deployed through the API. diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_4_terms_and_definitions.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_4_terms_and_definitions.adoc index 67996db5..7807e494 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_4_terms_and_definitions.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_4_terms_and_definitions.adoc @@ -5,21 +5,21 @@ ==== Execution unit -An execution unit is a component that contains a process that an implementation of the Processes API can run. +A component containing a process that an implementation of the Processes API Part 1 can run. ==== Deploy -Deploy is a verb describing the operation of installing the desired execution unit and associated process description on a Processes API implementation so that the client applications can use the OGC API - Processes - Part 1 Standard to interact with these components as a process. +Deploy refers to installing a desired execution unit onto a Processes API server so that client applications can interact with it as a process using the Processes API Part 1 Standard. ==== Replace -Replace is a verb that describes the operation of upgrading a deployed process, its associated execution unit, and its process description from a Processes API implementation. +Replace refers to upgrading a deployed process from a Processes API implementation. ==== Undeploy -Undeploy is a verb that describes removing a deployed process, its associated execution unit, and process description from a Processes API implementation so that it does not appear anywhere except in the jobs list, potentially. +Undeploy refers to removing a deployed process from a Processes API implementation so that it does not appear as an available process. === Abbreviated Terms CWL:: Common Workflow Language - +DRU:: Deploy, Replace, Undeploy diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc index 45ea5d6f..93cbf23a 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc @@ -5,32 +5,32 @@ include::../requirements/requirements_class_deploy-replace-undeploy.adoc[] -A server that implements the DRU conformance class provides the ability to -dynamically deploy, replace and undeploy processes from a processes API. +A server that implements the DRU requirements class provides the ability to +dynamically deploy, replace and undeploy processes. The HTTP POST method is used to deploy a new process to the API. The HTTP PUT method is used to replace the definition of a previously deployed processes that are accessible via the Processes API endpoint. -Finally, the HTTP DELETE method is used to undeploy a previously deployed process that is accessible via the API. +Finally, the HTTP DELETE method is used to undeploy a previously deployed process that is accessible via the Processes API endpoint. Deploying or replacing a process requires that a formal description of the new or -replacement process be provided by the client. This extension does not +replacement process be provided by the client. This Standard does not mandate that a specific processes description language or vocabulary be used. However, to promote interoperability, this extension defines two conformance classes: * <>, that defines a formal process description language encoded using JSON, - * <>, that enables support for CWL-encoded process definition, + * <>, that enables support for CWL-encoded process definition. -A recommendation is made later in this Standard that all implementations of Processes - Part 2 extension support the `OGC Application Package`. +A recommendation is made later in this Standard that all implementations of Processes API Part 2 extension support the `OGC Application Package`. [[deploy-replace-undeploy-http_status_codes]] ==== HTTP status codes -Clients implementing the Processes - Part 2 should be prepared to handle any legal HTTP or HTTPS status code. +Clients implementing the Processes API Part 2 should be prepared to handle any legal HTTP or HTTPS status code. -The *Status Codes* listed in <> are of particular relevance to implementors of this standard. Status codes 200, 201 and 404 are called out in API requirements. Therefore, support for these status codes is mandatory for all compliant implementations. The remainder of the status codes in <> are not mandatory, but are important for the implementation of a well functioning API implementation. Support for these status codes is strongly encouraged for both client and server implementations. +The *Status Codes* listed in <> are of particular relevance to implementors of this Standard. Status codes 200, 201 and 404 are called out in API requirements. Therefore, support for these status codes is mandatory for all compliant implementations. The remainder of the status codes in <> are not mandatory, but are important for the implementation of a well functioning API implementation. Support for these status codes is strongly encouraged for both client and server implementations. [[status_codes]] .Typical HTTP status codes @@ -165,7 +165,7 @@ include::../requirements/deploy-replace-undeploy/deploy/REQ_response-immutable.a The following diagram illustrates the sequence diagram for replacing a previously deployed processes. The identifier of the process does not change. -NOTE: The new process definition replaces to old process definition. Version control is not discussed in this Standard. +NOTE: The new process definition replaces the old process definition. Version control is not discussed in this Standard. ``` Client Server diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc index 8ac931a8..d470dc18 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc @@ -6,18 +6,15 @@ include::../requirements/requirements_class_ogcapppkg.adoc[] -This conformance class defines the schema of an `OGC Application Package`. An +This requirements class defines the schema of an `OGC Application Package`. An `OGC Application Package` is a document that describes a process in sufficient detail so that an implementation of this extension can dynamically deploy the -process and make it available for execution via an OGC API - Processes implementation. - -An `OGC Application Package` document provides all the information necessary to -deploy a process and make it accessible through the OGC API - Processes API. +process and make it accessible via an OGC API - Processes implementation. The information contained in an `OGC Application Package` can include: * A formal description of the process including what inputs the process takes and what outputs the process generates. -* Either inline or by reference an execution unit which is the `code` that the server needs to execute whenever the process is invoked. +* Either an inline or by reference execution unit which is the `code` that the server needs to execute whenever the process is invoked. * Additional resource information required by the execution unit. === OGC Application Package schema diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc index dae1e5aa..f0832d25 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc @@ -7,7 +7,7 @@ include::../requirements/requirements_class_cwl.adoc[] A server that implements the CWL Requirement Class SHALL support the use of CWL encoding when interacting with the Processes API Part 2 deploy-replace-undeploy extension endpoint. -In consequence, the following recommandations defined in Recommendation 2 and Recommandation 4 become requirements: +In consequence, the following recommandations defined in <>, <> and <> become requirements: * <> * <> From fa4fa0c4a802f2515fd76dc7f0a1ade1abf477b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Fri, 5 Jan 2024 17:04:58 +0100 Subject: [PATCH 07/17] Reorganize content Update recommendations and add Requirements in the corresponding Requirements class Make CWL depending on OGC Application Package for not having to add another conformance class such as Define the Requirement for w param in DRU directly to make it easier to extent, cf. https://github.com/opengeospatial/ogcapi-processes/pull/386 Move workflow-not-found exception Requirement to DRU Requirements class --- .../deploy/REC_body-cwl.adoc | 8 +--- .../deploy/REC_body-ogcapppkg.adoc | 2 - .../replace/REC_body-cwl.adoc | 1 - .../ogcapppkg/REC_execution-unit-docker.adoc | 7 +--- .../REC_ogcapppkg_execution-unit-cwl.adoc | 14 +------ .../standard/requirements/cwl/REQ_body.adoc | 7 ++++ .../requirements/cwl/REQ_execution-unit.adoc | 15 +++++++ .../requirements/cwl/deploy/REQ_w-param.adoc | 11 +++++ .../requirements/cwl/replace/REQ_body.adoc | 7 ++++ .../REQ_exception-workflow-not-found.adoc | 10 +++++ .../deploy/REQ_w-param.adoc | 9 ++++ .../docker/REQ_execution-unit.adoc | 9 ++++ .../requirements/docker/REQ_schema.adoc | 7 ++++ .../requirements/ogcapppkg/REQ_body.adoc | 7 ++++ .../ogcapppkg/REQ_process-description.adoc | 2 +- .../requirements/ogcapppkg/REQ_schema.adoc | 2 +- .../requirements/requirements_class_cwl.adoc | 1 + .../clause_6_deploy_replace_undeploy.adoc | 6 ++- .../standard/sections/clause_7_apppkg.adoc | 26 ++++-------- .../standard/sections/clause_8_docker.adoc | 17 +++++++- .../standard/sections/clause_9_cwl.adoc | 41 +++++++++++++++++-- 21 files changed, 154 insertions(+), 55 deletions(-) create mode 100644 extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_body.adoc create mode 100644 extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_execution-unit.adoc create mode 100644 extensions/deploy_replace_undeploy/standard/requirements/cwl/deploy/REQ_w-param.adoc create mode 100644 extensions/deploy_replace_undeploy/standard/requirements/cwl/replace/REQ_body.adoc create mode 100644 extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_exception-workflow-not-found.adoc create mode 100644 extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_w-param.adoc create mode 100644 extensions/deploy_replace_undeploy/standard/requirements/docker/REQ_execution-unit.adoc create mode 100644 extensions/deploy_replace_undeploy/standard/requirements/docker/REQ_schema.adoc create mode 100644 extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_body.adoc diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-cwl.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-cwl.adoc index 42a57baf..b6fa0051 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-cwl.adoc @@ -4,12 +4,6 @@ [%metadata] label:: /rec/deploy-replace-undeploy/deploy/body-cwl -part:: If a process can be represented for the intended use as a <>, implementations SHOULD consider supporting the <> encoding for describing the process to be deployed to the API. - -part:: The media type `application/cwl` SHALL be used to indicate that request body contains a processes description encoded as a <>. - -part:: If the CWL contains more than one workflow, an additional `w` query parameter MAY be used to reference the workflow id to be deployed. - -part:: If the `w` parameter has a value, the server SHOULD validate the CWL at the request time. If the server cannot find the `w` identifier within the workflow from the CWL provided, it SHOULD return a 400 status code with an exception having type "workflow-not-found." +part:: If a process can be encoded for the intended use in <>, implementations SHOULD consider supporting the <> encoding for describing the process to be deployed to the API. ==== diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-ogcapppkg.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-ogcapppkg.adoc index d7ec1491..bbce0bd6 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-ogcapppkg.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/deploy/REC_body-ogcapppkg.adoc @@ -5,6 +5,4 @@ label:: /rec/deploy-replace-undeploy/deploy/body-ogcapppkg part:: If a process can be represented for the intended use as an <>, implementations SHOULD consider supporting the <> encoding for describing the process to be added to the API. - -part:: The media type `application/ogcapppkg+json` SHALL be used to indicate that request body contains a processes description encoded as an <>. ==== diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-cwl.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-cwl.adoc index c4c2796b..2c8063c5 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-cwl.adoc @@ -6,5 +6,4 @@ label:: /rec/deploy-replace-undeploy/replace/body-cwl part:: If a process can be described for the intended use as a <>, implementations SHOULD consider supporting the <> encoding for describing the replacement process. -part:: The media type `application/cwl` SHALL be used to indicate that request body contains a processes description encoded as <>. ==== diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_execution-unit-docker.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_execution-unit-docker.adoc index f2aac89c..000a8994 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_execution-unit-docker.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_execution-unit-docker.adoc @@ -3,10 +3,5 @@ ==== [%metadata] label:: /rec/ogcapppkg/execution-unit-docker - -part:: If the execution unit is a Docker image then it is recommended that the contents of the execution unit have the properties `type` and `image`. - -part:: If the execution unit is specified as a Docker image, the value of the `type` property SHALL be `docker'. - -part:: If the execution unit is specified as a Docker image, the value of the `image` property SHALL be a reference to the Docker image. +part:: If the execution unit is a Docker image, implementations SHOULD consider supporting the <>. ==== diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_ogcapppkg_execution-unit-cwl.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_ogcapppkg_execution-unit-cwl.adoc index 9a2b3856..f8bdbd83 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_ogcapppkg_execution-unit-cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/ogcapppkg/REC_ogcapppkg_execution-unit-cwl.adoc @@ -3,17 +3,5 @@ ==== [%metadata] label:: /rec/ogcapppkg/execution-unit-cwl - -part:: If the execution unit is encoded in CWL then it is recommended that the contents of the execution unit be the properties: - * `type` and `href` if passed by reference - * `value` and `mediaType` if passed by value - -part:: If the execution unit is encoded in CWL, the value of the `type` property SHALL be `application/cwl`, when for `mediaType` it should be `application/cwl+json`. - -part:: If the execution unit is encoded in CWL, the value of the `href` property SHALL be a reference to the CWL encoded file. The value of the `value` property shall be the CWL encoded in json format. - -part:: If the CWL contains more than a single workflow identifier, an addition `w` query parameter MAY be used to target a specific workflow id to be deployed. - -part:: The server SHOULD validate the CWL at the request time. In case, the server cannot find the `w` identifier within the workflow from the CWL provided, a 400 status code is expected with the type "cwl-worflow-not-exist". - +part:: If the execution unit is encoded in CWL, implementations SHOULD consider supporting the <>. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_body.adoc b/extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_body.adoc new file mode 100644 index 00000000..386b10c2 --- /dev/null +++ b/extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_body.adoc @@ -0,0 +1,7 @@ +[[req_cwl_body]] +[requirement] +==== +[%metadata] +label:: /req/cwl/body +part:: The media type `application/cwl` SHALL be used to indicate that request body contains a processes description encoded as <>. +==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_execution-unit.adoc b/extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_execution-unit.adoc new file mode 100644 index 00000000..cfbc9db4 --- /dev/null +++ b/extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_execution-unit.adoc @@ -0,0 +1,15 @@ +[[req_cwl_execution-unit]] +[requirement] +==== +[%metadata] +label:: /req/cwl/execution-unit + +part:: If the execution unit is encoded in CWL then the content of the execution unit SHALL be an object with the following properties: + * `type` and `href` if passed by reference + * `value` and a `format` object with a `mediaType` property if passed by value + +part:: If the execution unit is encoded in CWL, the value of the `type` property SHALL be `application/cwl`, when for `mediaType` it should be `application/cwl+json`. + +part:: If the execution unit is encoded in CWL, the value of the `href` property SHALL be a reference to the CWL encoded file, when the value of the `value` property shall be the CWL encoded in JSON format. + +==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/cwl/deploy/REQ_w-param.adoc b/extensions/deploy_replace_undeploy/standard/requirements/cwl/deploy/REQ_w-param.adoc new file mode 100644 index 00000000..cf68e06b --- /dev/null +++ b/extensions/deploy_replace_undeploy/standard/requirements/cwl/deploy/REQ_w-param.adoc @@ -0,0 +1,11 @@ +[[req_cwl_w-param]] +[requirement] +==== +[%metadata] +label:: /req/cwl/deploy/w-param + +part:: If the CWL contains more than a single workflow identifier, an additional `w` query parameter MAY be used to target a specific workflow id to be deployed. + +part:: If the `w` parameter has a value, the server SHALL validate the CWL at the request time. In case, the server cannot find the `w` identifier within the workflow from the CWL file provided, a 400 status code is expected and a document based upon exception.yaml with the type "worflow-not-found". + +==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/cwl/replace/REQ_body.adoc b/extensions/deploy_replace_undeploy/standard/requirements/cwl/replace/REQ_body.adoc new file mode 100644 index 00000000..dfc21904 --- /dev/null +++ b/extensions/deploy_replace_undeploy/standard/requirements/cwl/replace/REQ_body.adoc @@ -0,0 +1,7 @@ +[[req_cwl_replace_body]] +[requirement] +==== +[%metadata] +label:: /req/cwl/replace/body +part:: The media type `application/cwl` SHALL be used to indicate that request body contains a processes description encoded as <>. +==== \ No newline at end of file diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_exception-workflow-not-found.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_exception-workflow-not-found.adoc new file mode 100644 index 00000000..4218f91e --- /dev/null +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_exception-workflow-not-found.adoc @@ -0,0 +1,10 @@ +[[req_deploy-replace-undeploy_deploy_exception-workflow-not-found]] +[requirement] +==== +[%metadata] +label:: /req/deploy-replace-undeploy/deploy/exception-workflow-not-found + +part:: If the `w` parameter has a value and the server cannot find the `w` identifier in the processes from the body POST request, the status code SHALL be `400`. +part:: The content of that response SHALL be based upon the schema https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/core/openapi/schemas/exception.yaml[exception.yaml]. +part:: The `type` of the exception SHALL be “http://www.opengis.net/def/exceptions/ogcapi-processes-2/1.0/workflow-not-found”. +==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_w-param.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_w-param.adoc new file mode 100644 index 00000000..c9b738b6 --- /dev/null +++ b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_w-param.adoc @@ -0,0 +1,9 @@ +[[req_deploy-replace-undeploy_deploy_w-param]] +[requirement] +==== +[%metadata] +label:: /req/deploy-replace-undeploy/deploy/w-param + +part:: If the body of the POST request contains more than a single process definition, an additional `w` query parameter MAY be used to target a specific process to be deployed. If not used, the first process found SHALL be deployed. + +==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/docker/REQ_execution-unit.adoc b/extensions/deploy_replace_undeploy/standard/requirements/docker/REQ_execution-unit.adoc new file mode 100644 index 00000000..264db259 --- /dev/null +++ b/extensions/deploy_replace_undeploy/standard/requirements/docker/REQ_execution-unit.adoc @@ -0,0 +1,9 @@ +[[req_docker_execution-unit]] +[requirement] +==== +[%metadata] +label:: /req/docker/execution-unit +part:: If the execution unit is specified as a Docker image, the value of the `type` property SHALL be `docker'. + +part:: If the execution unit is specified as a Docker image, the value of the `image` property SHALL be a reference to the Docker image. +==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/docker/REQ_schema.adoc b/extensions/deploy_replace_undeploy/standard/requirements/docker/REQ_schema.adoc new file mode 100644 index 00000000..fdc84645 --- /dev/null +++ b/extensions/deploy_replace_undeploy/standard/requirements/docker/REQ_schema.adoc @@ -0,0 +1,7 @@ +[[req_docker_schema]] +[requirement] +==== +[%metadata] +label:: /req/docker/schema +part:: The `executionUnit` property of an `OGC Application Package` document SHALL be based upon the schema https://github.com/opengeospatial/ogcapi-processes/blob/master/openapi/schemas/processes-dru/executionUnit.yaml[executionUnit.yaml]. +==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_body.adoc b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_body.adoc new file mode 100644 index 00000000..286bbc0d --- /dev/null +++ b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_body.adoc @@ -0,0 +1,7 @@ +[[req_ogcappkg_body]] +[requirement] +==== +[%metadata] +label:: /req/ogcapppkg/body +part:: The media type `application/ogcapppkg+json` SHALL be used to indicate that request body contains a processes description encoded as an <>. +==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_process-description.adoc b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_process-description.adoc index e6429c00..d483da05 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_process-description.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_process-description.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /req/ogcapppkg/process-description -part:: The value of the processDescription property SHALL be based upon the OpenAPI 3.0 schema https://github.com/opengeospatial/ogcapi-processes/blob/master/openapi/schemas/processes-core/process.yaml[process.yaml]. +part:: The value of the processDescription property SHALL be based upon the OpenAPI schema https://schemas.opengis.net/ogcapi/processes/part1/1.0/openapi/schemas/process.yaml[process.yaml]. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_schema.adoc b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_schema.adoc index a2ad457c..bd3c64a2 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_schema.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/REQ_schema.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /req/ogcapppkg/schema -part:: An `OGC Application Package` document SHALL be based upon the schema http://schemas.opengis.net/ogcapi/processes/part2/1.0/openapi/schemas/ogcapppkg.yaml[ogcapppkg.yaml]. +part:: An `OGC Application Package` document SHALL be based upon the OpenAPI schema http://schemas.opengis.net/ogcapi/processes/part2/1.0/openapi/schemas/ogcapppkg.yaml[ogcapppkg.yaml]. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/requirements_class_cwl.adoc b/extensions/deploy_replace_undeploy/standard/requirements/requirements_class_cwl.adoc index eb236340..739861dc 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/requirements_class_cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/requirements_class_cwl.adoc @@ -7,5 +7,6 @@ obligation:: requirement subject:: Web API inherit:: <> inherit:: <> +inherit:: <> inherit:: Common Workflow Language <> ==== diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc index 93cbf23a..8a9edf63 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc @@ -5,7 +5,7 @@ include::../requirements/requirements_class_deploy-replace-undeploy.adoc[] -A server that implements the DRU requirements class provides the ability to +A server that implements the DRU Requirements Class provides the ability to dynamically deploy, replace and undeploy processes. The HTTP POST method is used to deploy a new process to the API. @@ -127,6 +127,8 @@ include::../requirements/deploy-replace-undeploy/deploy/REQ_body.adoc[] include::../recommendations/deploy-replace-undeploy/deploy/PER_body.adoc[] +include::../requirements/deploy-replace-undeploy/deploy/REQ_w-param.adoc[] + include::../requirements/deploy-replace-undeploy/deploy/REQ_content-type.adoc[] See https://www.rfc-editor.org/rfc/rfc7231#section-3.1.1.5[section 3.1.1.5 of RFC 7231] for details. @@ -157,6 +159,8 @@ include::../requirements/deploy-replace-undeploy/deploy/REQ_response-duplicate.a include::../requirements/deploy-replace-undeploy/deploy/REQ_response-immutable.adoc[] +include::../requirements/deploy-replace-undeploy/deploy/REQ_exception-workflow-not-found.adoc[] + [[replace]] === Replacing an existing processes diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc index d470dc18..8d1d72d9 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc @@ -17,6 +17,12 @@ The information contained in an `OGC Application Package` can include: * Either an inline or by reference execution unit which is the `code` that the server needs to execute whenever the process is invoked. * Additional resource information required by the execution unit. +=== Deploy and Replace + +When using OGC Application Package encoding to communicate with a Processes Part 2 server, the following Requirement applies. + +include::../requirements/ogcapppkg/REQ_body.adoc[] + === OGC Application Package schema ==== Overview @@ -42,25 +48,11 @@ include::../requirements/ogcapppkg/REQ_process-description.adoc[] ==== executionUnit property The execution unit is the `code` that an implementation of the Part 2 extension needs -to execute whenever the deployed process is executed. The execution unit can be -specified by reference, e.g. Docker image reference. +to execute whenever the deployed process is executed. -include::../recommendations/ogcapppkg/REC_execution-unit-docker.adoc[] +If the schema defined for the executionUnit property of an OGC Application Package remains open, it may be refined in other Requirements. -When CWL encoding is used, -the execution unit can be either passed by value (in-line) or by reference. +include::../recommendations/ogcapppkg/REC_execution-unit-docker.adoc[] include::../recommendations/ogcapppkg/REC_ogcapppkg_execution-unit-cwl.adoc[] -Below is an example of a deploy body request using a CWL-encoded execution unit by reference. - -[[example1]] -[source%unnumbered] ----- -{ - "executionUnit": { - "href": "https://raw.githubusercontent.com/EOEPCA/app-snuggs/main/app-package.cwl", - "type": "application/cwl" - } -} ----- diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc index 9c5acee1..3fcf4c30 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc @@ -7,8 +7,21 @@ include::../requirements/requirements_class_docker.adoc[] A server that implements the Docker Requirement Class supports the management of Docker image as execution units by implementing the Processes API Part2 deploy-replace-undeploy extension. -In consequence, the following recommandation becomes requirement: +=== Execution unit - * <> +==== Overview +include::../requirements/docker/REQ_schema.adoc[] +[[schema_executionUnit]] +.link:https://github.com/opengeospatial/ogcapi-processes/blob/master/openapi/schemas/processes-dru/executionUnit.yaml[Schema for the Docker execution unit parameter] +[source,yaml] +---- +include::../../../../openapi/schemas/processes-dru/executionUnit.yaml[] +---- + +==== type and image properties + +The execution unit can be specified by reference, using a Docker image reference. + +include::../requirements/docker/REQ_execution-unit.adoc[] diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc index f0832d25..c418061c 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc @@ -7,10 +7,43 @@ include::../requirements/requirements_class_cwl.adoc[] A server that implements the CWL Requirement Class SHALL support the use of CWL encoding when interacting with the Processes API Part 2 deploy-replace-undeploy extension endpoint. -In consequence, the following recommandations defined in <>, <> and <> become requirements: +=== Execution Unit - * <> - * <> - * <> +In case the OGC Application Package encoding is used, the following Requirement applies. +include::../requirements/cwl/REQ_execution-unit.adoc[] +Below is an example of a deploy body request using a CWL-encoded execution unit by reference. + +[[cwl_ogcapppkg_example1]] +[source%unnumbered] +---- +{ + "executionUnit": { + "href": "https://raw.githubusercontent.com/EOEPCA/app-snuggs/main/app-package.cwl", + "type": "application/cwl" + } +} +---- + +Below is an example of a deploy body request using a CWL-encoded execution unit by value. The value is not included for readability and results from converting from the original CWL format (YAML) into JSON. + +[[cwl_ogcapppkg_example2]] +[source%unnumbered] +---- +{ + "executionUnit": { + "value": { ... }, + "format": { + "mediaType": "application/cwl+json" + } + } +} +---- + + +=== Deploy and Replace + +When using CWL encoding to communicate with a Processes Part 2 server, the following Requirement applies. + +include::../requirements/cwl/REQ_body.adoc[] From cd25ef53ae566e0f62135bfdb13a52f9c1d154a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Fri, 5 Jan 2024 17:10:25 +0100 Subject: [PATCH 08/17] Typo in title --- .../deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc index c418061c..6f5d5576 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc @@ -7,7 +7,7 @@ include::../requirements/requirements_class_cwl.adoc[] A server that implements the CWL Requirement Class SHALL support the use of CWL encoding when interacting with the Processes API Part 2 deploy-replace-undeploy extension endpoint. -=== Execution Unit +=== Execution unit In case the OGC Application Package encoding is used, the following Requirement applies. From 6895df609f6b683dc38cc6c3e3603f9a7e83b0ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Fri, 5 Jan 2024 17:55:26 +0100 Subject: [PATCH 09/17] Reorder section from the CWL Requirements class Remove uneeded media type information in recommendations --- .../replace/REC_body-cwl.adoc | 2 +- .../replace/REC_body-ogcapppkg.adoc | 1 - .../standard/sections/clause_9_cwl.adoc | 12 ++++++------ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-cwl.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-cwl.adoc index 2c8063c5..8972765a 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-cwl.adoc @@ -4,6 +4,6 @@ [%metadata] label:: /rec/deploy-replace-undeploy/replace/body-cwl -part:: If a process can be described for the intended use as a <>, implementations SHOULD consider supporting the <> encoding for describing the replacement process. +part:: If a process can be encoded for the intended use in <>, implementations SHOULD consider supporting the <> encoding for describing the replacement process. ==== diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-ogcapppkg.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-ogcapppkg.adoc index 76472cce..3b09db27 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-ogcapppkg.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/REC_body-ogcapppkg.adoc @@ -6,5 +6,4 @@ label:: /rec/deploy-replace-undeploy/replace/body-ogcapppkg part:: If a process can be described for the intended use as an <>, implementations SHOULD consider supporting the <> encoding for describing the replacement process. -part:: The media type `application/ogcapppkg+json` SHALL be used to indicate that request body contains a processes description encoded as an <>. ==== diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc index 6f5d5576..66edbd75 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc @@ -7,6 +7,12 @@ include::../requirements/requirements_class_cwl.adoc[] A server that implements the CWL Requirement Class SHALL support the use of CWL encoding when interacting with the Processes API Part 2 deploy-replace-undeploy extension endpoint. +=== Deploy and Replace + +When using CWL encoding to communicate with a Processes Part 2 server, the following Requirement applies. + +include::../requirements/cwl/REQ_body.adoc[] + === Execution unit In case the OGC Application Package encoding is used, the following Requirement applies. @@ -41,9 +47,3 @@ Below is an example of a deploy body request using a CWL-encoded execution unit } ---- - -=== Deploy and Replace - -When using CWL encoding to communicate with a Processes Part 2 server, the following Requirement applies. - -include::../requirements/cwl/REQ_body.adoc[] From 99be1148b06f727818ccbd60307ba9ca002ff224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Fri, 5 Jan 2024 18:31:13 +0100 Subject: [PATCH 10/17] Typo executionUnit --- .../standard/requirements/cwl/REQ_execution-unit.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_execution-unit.adoc b/extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_execution-unit.adoc index cfbc9db4..fb0eedcd 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_execution-unit.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_execution-unit.adoc @@ -4,7 +4,7 @@ [%metadata] label:: /req/cwl/execution-unit -part:: If the execution unit is encoded in CWL then the content of the execution unit SHALL be an object with the following properties: +part:: If the execution unit is encoded in CWL, the content of the `executionUnit` parameter SHALL be an object with the following properties: * `type` and `href` if passed by reference * `value` and a `format` object with a `mediaType` property if passed by value From 93916d0a78752cd700d149b50264d8b88ed6d1eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Fri, 5 Jan 2024 19:00:06 +0100 Subject: [PATCH 11/17] Put back the Requirement per operation and --- .../deploy-replace-undeploy/replace/PER_body.adoc | 2 +- .../standard/requirements/cwl/deploy/REQ_body.adoc | 7 +++++++ .../standard/requirements/ogcapppkg/deploy/REQ_body.adoc | 7 +++++++ .../standard/requirements/ogcapppkg/replace/REQ_body.adoc | 7 +++++++ .../standard/sections/clause_7_apppkg.adoc | 8 +++++--- .../standard/sections/clause_9_cwl.adoc | 8 +++++--- 6 files changed, 32 insertions(+), 7 deletions(-) create mode 100644 extensions/deploy_replace_undeploy/standard/requirements/cwl/deploy/REQ_body.adoc create mode 100644 extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_body.adoc create mode 100644 extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/replace/REQ_body.adoc diff --git a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/PER_body.adoc b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/PER_body.adoc index 3f3700a9..2f1ef382 100644 --- a/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/PER_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/recommendations/deploy-replace-undeploy/replace/PER_body.adoc @@ -3,5 +3,5 @@ ==== [%metadata] label:: /per/deploy-replace-undeploy/replace/body -part:: A server MAY support any processes description encoding in the body of a HTTP POST operation. +part:: A server MAY support any processes description encoding in the body of a HTTP PUT operation. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/cwl/deploy/REQ_body.adoc b/extensions/deploy_replace_undeploy/standard/requirements/cwl/deploy/REQ_body.adoc new file mode 100644 index 00000000..7bce0e9b --- /dev/null +++ b/extensions/deploy_replace_undeploy/standard/requirements/cwl/deploy/REQ_body.adoc @@ -0,0 +1,7 @@ +[[req_cwl_deploy_body]] +[requirement] +==== +[%metadata] +label:: /req/cwl/deploy/body +part:: The media type `application/cwl` SHALL be used to indicate that request body contains a processes description encoded as <>. +==== \ No newline at end of file diff --git a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_body.adoc b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_body.adoc new file mode 100644 index 00000000..cc390b65 --- /dev/null +++ b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_body.adoc @@ -0,0 +1,7 @@ +[[req_ogcappkg_deploy_body]] +[requirement] +==== +[%metadata] +label:: /req/ogcapppkg/deploy/body +part:: The media type `application/ogcapppkg+json` SHALL be used to indicate that request body contains a processes description encoded as an <>. +==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/replace/REQ_body.adoc b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/replace/REQ_body.adoc new file mode 100644 index 00000000..076e39b5 --- /dev/null +++ b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/replace/REQ_body.adoc @@ -0,0 +1,7 @@ +[[req_ogcappkg_replace_body]] +[requirement] +==== +[%metadata] +label:: /req/ogcapppkg/replace/body +part:: The media type `application/ogcapppkg+json` SHALL be used to indicate that request body contains a processes description encoded as an <>. +==== diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc index 8d1d72d9..dfdc9981 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc @@ -17,11 +17,13 @@ The information contained in an `OGC Application Package` can include: * Either an inline or by reference execution unit which is the `code` that the server needs to execute whenever the process is invoked. * Additional resource information required by the execution unit. -=== Deploy and Replace +=== Deploy -When using OGC Application Package encoding to communicate with a Processes Part 2 server, the following Requirement applies. +include::../requirements/ogcapppkg/deploy/REQ_body.adoc[] -include::../requirements/ogcapppkg/REQ_body.adoc[] +=== Replace + +include::../requirements/ogcapppkg/replace/REQ_body.adoc[] === OGC Application Package schema diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc index 66edbd75..65042dcb 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc @@ -7,11 +7,13 @@ include::../requirements/requirements_class_cwl.adoc[] A server that implements the CWL Requirement Class SHALL support the use of CWL encoding when interacting with the Processes API Part 2 deploy-replace-undeploy extension endpoint. -=== Deploy and Replace +=== Deploy -When using CWL encoding to communicate with a Processes Part 2 server, the following Requirement applies. +include::../requirements/cwl/deploy/REQ_body.adoc[] -include::../requirements/cwl/REQ_body.adoc[] +=== Replace + +include::../requirements/cwl/replace/REQ_body.adoc[] === Execution unit From 6122192106e65000e739029510552331003974f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Fri, 5 Jan 2024 19:26:55 +0100 Subject: [PATCH 12/17] Fix ATS references to Requirement --- .../standard/abstract_tests/cwl/deploy/ATS_body.adoc | 2 +- .../standard/abstract_tests/ogcapppkg/deploy/ATS_body.adoc | 2 +- .../standard/abstract_tests/ogcapppkg/replace/ATS_body.adoc | 2 +- .../standard/sections/clause_8_docker.adoc | 2 +- .../deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/deploy/ATS_body.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/deploy/ATS_body.adoc index 0f614664..dc085137 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/deploy/ATS_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/cwl/deploy/ATS_body.adoc @@ -4,7 +4,7 @@ ==== [%metadata] identifier:: /conf/cwl/deploy/body -target:: /rec/deploy-replace-undeploy/deploy/body-cwl +target:: /req/cwl/deploy/body test-purpose:: Validate that the server support deploy operation using the Common Workflow Language encoding test-method:: + diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_body.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_body.adoc index 9693ac26..5d2f8c5e 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/deploy/ATS_body.adoc @@ -4,7 +4,7 @@ ==== [%metadata] identifier:: /conf/ogcapppkg/deploy/body -target:: /rec/ogcapppkg/deploy/body +target:: /req/ogcapppkg/deploy/body test-purpose:: Validate that the server supports OGC Application Package encoding test-method:: + diff --git a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_body.adoc b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_body.adoc index 9f61f366..3842382b 100644 --- a/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_body.adoc +++ b/extensions/deploy_replace_undeploy/standard/abstract_tests/ogcapppkg/replace/ATS_body.adoc @@ -4,7 +4,7 @@ ==== [%metadata] identifier:: /conf/ogcapppkg/replace/body -target:: /rec/deploy-replace-undeploy/replace/body-ogcapppkg +target:: /req/ogcapppkg/replace/body test-purpose:: Validate that the server supports OGC Application Package encoding test-method:: + diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc index 3fcf4c30..e8126950 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc @@ -7,7 +7,7 @@ include::../requirements/requirements_class_docker.adoc[] A server that implements the Docker Requirement Class supports the management of Docker image as execution units by implementing the Processes API Part2 deploy-replace-undeploy extension. -=== Execution unit +=== executionUnit property ==== Overview diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc index 65042dcb..f9d5339d 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc @@ -15,7 +15,7 @@ include::../requirements/cwl/deploy/REQ_body.adoc[] include::../requirements/cwl/replace/REQ_body.adoc[] -=== Execution unit +=== executionUnit property In case the OGC Application Package encoding is used, the following Requirement applies. From cbf18227ff99a2c994599def88c6027d81507e16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Fri, 5 Jan 2024 19:38:36 +0100 Subject: [PATCH 13/17] Make OGC Application Package and CWL Requirements classes symetric --- .../standard/sections/clause_7_apppkg.adoc | 4 ++++ .../standard/sections/clause_9_cwl.adoc | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc index dfdc9981..56fe651c 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc @@ -19,10 +19,14 @@ The information contained in an `OGC Application Package` can include: === Deploy +==== Request body + include::../requirements/ogcapppkg/deploy/REQ_body.adoc[] === Replace +==== Request body + include::../requirements/ogcapppkg/replace/REQ_body.adoc[] === OGC Application Package schema diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc index f9d5339d..271d6e5b 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc @@ -9,10 +9,14 @@ A server that implements the CWL Requirement Class SHALL support the use of CWL === Deploy +==== Request body + include::../requirements/cwl/deploy/REQ_body.adoc[] === Replace +==== Request body + include::../requirements/cwl/replace/REQ_body.adoc[] === executionUnit property From 40aea323aed2b62a3880c258aabd5e90bf1f053b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Sat, 6 Jan 2024 15:25:17 +0100 Subject: [PATCH 14/17] Try answering the @pvretano comments about /req/deploy-replace-undeploy/deploy/w-param Requirement Move the Requirement deploy/w-param to the OGC Application Package Requirementss class to make it reusable from other Requirements classes, such as CWL --- .../requirements/cwl/deploy/REQ_w-param.adoc | 4 +- .../deploy/REQ_w-param.adoc | 9 ----- .../REQ_exception-workflow-not-found.adoc | 4 +- .../ogcapppkg/deploy/REQ_w-param.adoc | 9 +++++ .../clause_6_deploy_replace_undeploy.adoc | 3 -- .../standard/sections/clause_7_apppkg.adoc | 38 +++++++++++-------- .../standard/sections/clause_8_docker.adoc | 8 ++-- .../standard/sections/clause_9_cwl.adoc | 36 ++++++++++++------ 8 files changed, 63 insertions(+), 48 deletions(-) delete mode 100644 extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_w-param.adoc rename extensions/deploy_replace_undeploy/standard/requirements/{deploy-replace-undeploy => ogcapppkg}/deploy/REQ_exception-workflow-not-found.adoc (78%) create mode 100644 extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_w-param.adoc diff --git a/extensions/deploy_replace_undeploy/standard/requirements/cwl/deploy/REQ_w-param.adoc b/extensions/deploy_replace_undeploy/standard/requirements/cwl/deploy/REQ_w-param.adoc index cf68e06b..7220eba0 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/cwl/deploy/REQ_w-param.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/cwl/deploy/REQ_w-param.adoc @@ -4,8 +4,6 @@ [%metadata] label:: /req/cwl/deploy/w-param -part:: If the CWL contains more than a single workflow identifier, an additional `w` query parameter MAY be used to target a specific workflow id to be deployed. - -part:: If the `w` parameter has a value, the server SHALL validate the CWL at the request time. In case, the server cannot find the `w` identifier within the workflow from the CWL file provided, a 400 status code is expected and a document based upon exception.yaml with the type "worflow-not-found". +part:: If the CWL contains more than a single workflow identifier, an additional `w` query parameter MAY be used to target a specific workflow id to be deployed. If not used, the first process found SHALL be deployed. ==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_w-param.adoc b/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_w-param.adoc deleted file mode 100644 index c9b738b6..00000000 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_w-param.adoc +++ /dev/null @@ -1,9 +0,0 @@ -[[req_deploy-replace-undeploy_deploy_w-param]] -[requirement] -==== -[%metadata] -label:: /req/deploy-replace-undeploy/deploy/w-param - -part:: If the body of the POST request contains more than a single process definition, an additional `w` query parameter MAY be used to target a specific process to be deployed. If not used, the first process found SHALL be deployed. - -==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_exception-workflow-not-found.adoc b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_exception-workflow-not-found.adoc similarity index 78% rename from extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_exception-workflow-not-found.adoc rename to extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_exception-workflow-not-found.adoc index 4218f91e..3e1a5ee2 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/deploy-replace-undeploy/deploy/REQ_exception-workflow-not-found.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_exception-workflow-not-found.adoc @@ -1,8 +1,8 @@ -[[req_deploy-replace-undeploy_deploy_exception-workflow-not-found]] +[[req_ogcapppkg_deploy_exception-workflow-not-found]] [requirement] ==== [%metadata] -label:: /req/deploy-replace-undeploy/deploy/exception-workflow-not-found +label:: /req/ogcapppkg/deploy/exception-workflow-not-found part:: If the `w` parameter has a value and the server cannot find the `w` identifier in the processes from the body POST request, the status code SHALL be `400`. part:: The content of that response SHALL be based upon the schema https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/core/openapi/schemas/exception.yaml[exception.yaml]. diff --git a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_w-param.adoc b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_w-param.adoc new file mode 100644 index 00000000..3ff8447e --- /dev/null +++ b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_w-param.adoc @@ -0,0 +1,9 @@ +[[req_ogcapppkg_deploy_w-param]] +[requirement] +==== +[%metadata] +label:: /req/ogcapppkg/deploy/w-param + +part:: If the OGC Application Package document contains more than a single process definition, an additional `w` query parameter MAY be used to target a specific process to be deployed. If not used, the first process found SHALL be deployed. + +==== diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc index 8a9edf63..d6545274 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_6_deploy_replace_undeploy.adoc @@ -127,8 +127,6 @@ include::../requirements/deploy-replace-undeploy/deploy/REQ_body.adoc[] include::../recommendations/deploy-replace-undeploy/deploy/PER_body.adoc[] -include::../requirements/deploy-replace-undeploy/deploy/REQ_w-param.adoc[] - include::../requirements/deploy-replace-undeploy/deploy/REQ_content-type.adoc[] See https://www.rfc-editor.org/rfc/rfc7231#section-3.1.1.5[section 3.1.1.5 of RFC 7231] for details. @@ -159,7 +157,6 @@ include::../requirements/deploy-replace-undeploy/deploy/REQ_response-duplicate.a include::../requirements/deploy-replace-undeploy/deploy/REQ_response-immutable.adoc[] -include::../requirements/deploy-replace-undeploy/deploy/REQ_exception-workflow-not-found.adoc[] [[replace]] === Replacing an existing processes diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc index 56fe651c..151abb49 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc @@ -17,18 +17,6 @@ The information contained in an `OGC Application Package` can include: * Either an inline or by reference execution unit which is the `code` that the server needs to execute whenever the process is invoked. * Additional resource information required by the execution unit. -=== Deploy - -==== Request body - -include::../requirements/ogcapppkg/deploy/REQ_body.adoc[] - -=== Replace - -==== Request body - -include::../requirements/ogcapppkg/replace/REQ_body.adoc[] - === OGC Application Package schema ==== Overview @@ -53,12 +41,30 @@ include::../requirements/ogcapppkg/REQ_process-description.adoc[] [[executionUnit]] ==== executionUnit property -The execution unit is the `code` that an implementation of the Part 2 extension needs -to execute whenever the deployed process is executed. - -If the schema defined for the executionUnit property of an OGC Application Package remains open, it may be refined in other Requirements. +If the schema defined for the executionUnit property of an OGC Application Package remains open, it can be restricted in other Requirements. include::../recommendations/ogcapppkg/REC_execution-unit-docker.adoc[] include::../recommendations/ogcapppkg/REC_ogcapppkg_execution-unit-cwl.adoc[] +=== Deploy + +==== OGC Application Package body + +include::../requirements/ogcapppkg/deploy/REQ_body.adoc[] + +==== w parameter + +include::../requirements/ogcapppkg/deploy/REQ_w-param.adoc[] + +==== Exception + +include::../requirements/ogcapppkg/deploy/REQ_exception-workflow-not-found.adoc[] + +=== Replace + +==== OGC Application Package body + +include::../requirements/ogcapppkg/replace/REQ_body.adoc[] + + diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc index e8126950..2dc43860 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_8_docker.adoc @@ -7,9 +7,11 @@ include::../requirements/requirements_class_docker.adoc[] A server that implements the Docker Requirement Class supports the management of Docker image as execution units by implementing the Processes API Part2 deploy-replace-undeploy extension. -=== executionUnit property +=== OGC Application Package -==== Overview +==== executionUnit property + +===== Overview include::../requirements/docker/REQ_schema.adoc[] @@ -20,7 +22,7 @@ include::../requirements/docker/REQ_schema.adoc[] include::../../../../openapi/schemas/processes-dru/executionUnit.yaml[] ---- -==== type and image properties +===== type and image properties The execution unit can be specified by reference, using a Docker image reference. diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc index 271d6e5b..02d9e33a 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc @@ -7,19 +7,9 @@ include::../requirements/requirements_class_cwl.adoc[] A server that implements the CWL Requirement Class SHALL support the use of CWL encoding when interacting with the Processes API Part 2 deploy-replace-undeploy extension endpoint. -=== Deploy - -==== Request body - -include::../requirements/cwl/deploy/REQ_body.adoc[] - -=== Replace +=== OGC Application Package -==== Request body - -include::../requirements/cwl/replace/REQ_body.adoc[] - -=== executionUnit property +==== executionUnit property In case the OGC Application Package encoding is used, the following Requirement applies. @@ -53,3 +43,25 @@ Below is an example of a deploy body request using a CWL-encoded execution unit } ---- +=== Deploy + +==== CWL body + +include::../requirements/cwl/deploy/REQ_body.adoc[] + +==== w parameter + +When encoded in CWL, processes are identified as instances of the workflow class. + +The Requirement <> applies to a workflow identifier. + +==== Exception + +When CWL encoding is used, Requirement <> applies. + +=== Replace + +==== CWL body + +include::../requirements/cwl/replace/REQ_body.adoc[] + From d1d171cb225c95efbb60c51f6aa03cfd54c5dbf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Mon, 8 Jan 2024 15:28:34 +0100 Subject: [PATCH 15/17] Make the modifications required from SWG meeting 2024-01-08 --- .../deploy/REQ_exception-workflow-not-found.adoc | 10 ---------- .../requirements/ogcapppkg/deploy/REQ_w-param.adoc | 9 --------- .../standard/sections/clause_7_apppkg.adoc | 8 -------- .../standard/sections/clause_9_cwl.adoc | 4 ++-- 4 files changed, 2 insertions(+), 29 deletions(-) delete mode 100644 extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_exception-workflow-not-found.adoc delete mode 100644 extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_w-param.adoc diff --git a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_exception-workflow-not-found.adoc b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_exception-workflow-not-found.adoc deleted file mode 100644 index 3e1a5ee2..00000000 --- a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_exception-workflow-not-found.adoc +++ /dev/null @@ -1,10 +0,0 @@ -[[req_ogcapppkg_deploy_exception-workflow-not-found]] -[requirement] -==== -[%metadata] -label:: /req/ogcapppkg/deploy/exception-workflow-not-found - -part:: If the `w` parameter has a value and the server cannot find the `w` identifier in the processes from the body POST request, the status code SHALL be `400`. -part:: The content of that response SHALL be based upon the schema https://raw.githubusercontent.com/opengeospatial/ogcapi-processes/master/core/openapi/schemas/exception.yaml[exception.yaml]. -part:: The `type` of the exception SHALL be “http://www.opengis.net/def/exceptions/ogcapi-processes-2/1.0/workflow-not-found”. -==== diff --git a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_w-param.adoc b/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_w-param.adoc deleted file mode 100644 index 3ff8447e..00000000 --- a/extensions/deploy_replace_undeploy/standard/requirements/ogcapppkg/deploy/REQ_w-param.adoc +++ /dev/null @@ -1,9 +0,0 @@ -[[req_ogcapppkg_deploy_w-param]] -[requirement] -==== -[%metadata] -label:: /req/ogcapppkg/deploy/w-param - -part:: If the OGC Application Package document contains more than a single process definition, an additional `w` query parameter MAY be used to target a specific process to be deployed. If not used, the first process found SHALL be deployed. - -==== diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc index 151abb49..2b103003 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_7_apppkg.adoc @@ -53,14 +53,6 @@ include::../recommendations/ogcapppkg/REC_ogcapppkg_execution-unit-cwl.adoc[] include::../requirements/ogcapppkg/deploy/REQ_body.adoc[] -==== w parameter - -include::../requirements/ogcapppkg/deploy/REQ_w-param.adoc[] - -==== Exception - -include::../requirements/ogcapppkg/deploy/REQ_exception-workflow-not-found.adoc[] - === Replace ==== OGC Application Package body diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc index 02d9e33a..7ab5566d 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc @@ -53,11 +53,11 @@ include::../requirements/cwl/deploy/REQ_body.adoc[] When encoded in CWL, processes are identified as instances of the workflow class. -The Requirement <> applies to a workflow identifier. +include::../requirements/cwl/deploy/REQ_w-param.adoc[] ==== Exception -When CWL encoding is used, Requirement <> applies. +include::../requirements/cwl/deploy/REQ_exception-workflow-not-found.adoc[] === Replace From ccdcbb04a80d95449957e175c54d672eb20ad46f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Sun, 21 Jan 2024 15:28:24 +0100 Subject: [PATCH 16/17] Update the history table using main commit messages --- .../standard/sections/annex_history.adoc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/extensions/deploy_replace_undeploy/standard/sections/annex_history.adoc b/extensions/deploy_replace_undeploy/standard/sections/annex_history.adoc index aeb3fc24..8777c36d 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/annex_history.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/annex_history.adoc @@ -4,5 +4,18 @@ [cols="12,18,12,12,46",options="header,unnumbered"] |=== |Date |Release |Editor | Primary clauses modified |Description -|2019-xx-xx |1.0.0-SNAPSHOT |J. Doe |all |initial version +|2020-05-19 |None |Panagiotis (Peter) A. Vretanos |all |Initial check in of draft transactions extension. +|2020-06-23 |None |Panagiotis (Peter) A. Vretanos |all |Add initial draft of an example Open API document +|2021-10-18 |None |Panagiotis (Peter) A. Vretanos |all |Rename transaction directory to deploy_replace_undeploy. +|2022-02-23 |None |Francis Charette-Migneault |all |Update Part 2 readme with relevant details +|2022-10-04 |None |Gérald Fenoy |all |Use relative path to exception and problem+json +|2022-10-05 |None |Gérald Fenoy |all |Update the Deploy, Replace, Undeploy extension +|2022-12-12 |None |Gérald Fenoy |all |Change the status code to be returned (immutable) +|2023-02-20 |None |Panagiotis (Peter) A. Vretanos |all |Realign abstract test with requirements. +|2023-05-30 |None |Gérald Fenoy |all |Update status code and schema. +|2023-10-16 |None |Gérald Fenoy |all |Add content to the Abstract Test Suite +|2023-11-28 |None |Gérald Fenoy |all |Update test for validating support of a given HTTP method +|2023-12-06 |None |Gérald Fenoy |all |Abstract Test Suite Updates +|2023-12-07 |None |Gérald Fenoy |all |Fix mixed status code and value in security consideration +|2023-12-08 |None |Gérald Fenoy |all |Add requirements for managing docker image as execution unit |=== From 37935d94fe0d157335d46d142c9f37bfadcd4870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20Fenoy?= Date: Mon, 22 Jan 2024 13:57:21 +0100 Subject: [PATCH 17/17] Remove reference to the format object from the CWL execution-unit requirement --- .../standard/requirements/cwl/REQ_execution-unit.adoc | 2 +- .../standard/sections/annex_history.adoc | 1 - .../standard/sections/clause_9_cwl.adoc | 4 +--- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_execution-unit.adoc b/extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_execution-unit.adoc index fb0eedcd..0ca2c367 100644 --- a/extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_execution-unit.adoc +++ b/extensions/deploy_replace_undeploy/standard/requirements/cwl/REQ_execution-unit.adoc @@ -6,7 +6,7 @@ label:: /req/cwl/execution-unit part:: If the execution unit is encoded in CWL, the content of the `executionUnit` parameter SHALL be an object with the following properties: * `type` and `href` if passed by reference - * `value` and a `format` object with a `mediaType` property if passed by value + * `value` and `mediaType` property if passed by value part:: If the execution unit is encoded in CWL, the value of the `type` property SHALL be `application/cwl`, when for `mediaType` it should be `application/cwl+json`. diff --git a/extensions/deploy_replace_undeploy/standard/sections/annex_history.adoc b/extensions/deploy_replace_undeploy/standard/sections/annex_history.adoc index 8777c36d..4954565a 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/annex_history.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/annex_history.adoc @@ -7,7 +7,6 @@ |2020-05-19 |None |Panagiotis (Peter) A. Vretanos |all |Initial check in of draft transactions extension. |2020-06-23 |None |Panagiotis (Peter) A. Vretanos |all |Add initial draft of an example Open API document |2021-10-18 |None |Panagiotis (Peter) A. Vretanos |all |Rename transaction directory to deploy_replace_undeploy. -|2022-02-23 |None |Francis Charette-Migneault |all |Update Part 2 readme with relevant details |2022-10-04 |None |Gérald Fenoy |all |Use relative path to exception and problem+json |2022-10-05 |None |Gérald Fenoy |all |Update the Deploy, Replace, Undeploy extension |2022-12-12 |None |Gérald Fenoy |all |Change the status code to be returned (immutable) diff --git a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc index 7ab5566d..13bd9782 100644 --- a/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc +++ b/extensions/deploy_replace_undeploy/standard/sections/clause_9_cwl.adoc @@ -36,9 +36,7 @@ Below is an example of a deploy body request using a CWL-encoded execution unit { "executionUnit": { "value": { ... }, - "format": { - "mediaType": "application/cwl+json" - } + "mediaType": "application/cwl+json" } } ----