Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Argo WF conformance class #386

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions extensions/deploy_replace_undeploy/standard/20-044.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ include::sections/clause_8_docker.adoc[]

include::sections/clause_9_cwl.adoc[]

include::sections/clause_10_argo.adoc[]

include::sections/clause_10_oas.adoc[]

include::sections/clause_11_media_types.adoc[]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[[rec_deploy-replace-undeploy_deploy_body-argo]]
[recommendation]
====
[%metadata]
label:: /rec/deploy-replace-undeploy/deploy/body-argo

part:: If a process can be represented for the intended use as a <<rc_argo,Argo Application>>, implementations should consider supporting the <<rc_argo,Argo>> encoding for describing the process to be deployed to the API.

part:: The media type `application/argo` shall be used to indicate that request body contains a processes description encoded as a <<rc_argo,Argo Application>>.

part:: If the Argo 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 Argo at the request time. In case, the server cannot find the `w` identifier within the workflow from the Argo provided, a 400 status code is expected with the type "worflow-not-found".
Comment on lines +7 to +13
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar comments to other file.


====
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[[rec_deploy-replace-undeploy_replace_body-argo]]
[recommendation]
====
[%metadata]
label:: /rec/deploy-replace-undeploy/replace/body-argo

part:: If a process can be described for the intended use as a <<rc_argo,Argo graph>>, implementations should consider supporting the <<rc_argo,Argo>> encoding for describing the replacement process.

part:: The media type `application/argo` shall be used to indicate that request body contains a processes description encoded as <<rc_ogcapppkg,Argo>>.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is application/argo an official media-type? If not, the generic https://www.iana.org/assignments/media-types/application/vnd.oai.workflows+yaml with a contentSchema with the Argo Workflow schema URL might be more appropriate.

An alternative would be to push Argo maintainers to publish a media-type like CWL did:

https://www.iana.org/assignments/media-types/application/cwl

https://www.iana.org/assignments/media-types/application/cwl+json

====
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[[rec_ogcapppkg_execution-unit-argo]]
[recommendation]
====
[%metadata]
label:: /rec/ogcapppkg/execution-unit-argo

part:: If the execution unit is encoded in Argo 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:: The value of the `type` property shall be `application/argo`, when for `mediaType` it should be `application/argo+json`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why use distinct type values?


part:: The value of the `href` property shall be a reference to the Argo encoded file. The value of the `value` property shall be the Argo encoded in json format.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"json" should be uppercase here


part:: If the Argo contains more than a single workflow identifier, an addition `w` query parameter may be used to target a specific workflow id to be deployed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be relevant to refer to a common parameter that can be reused across Workflow languages regardless of their specific implementation.


part:: The server should validate the Argo at the request time. In case, the server cannot find the `w` identifier within the workflow from the Argo provided, a 400 status code is expected with the type "argo-worflow-not-exist".
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to contradict the previous point that is worded in a way that w is optimal, while required here.


====
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[[rc_cwl]]
[requirements_class]
====
[%metadata]
label:: http://www.opengis.net/spec/ogcapi-processes-2/1.0/req/argo
obligation:: requirement
subject:: Web API
inherit:: <<OAProc-1,OGC API - Processes - Part 1: Core>>
inherit:: <<rc_deploy-replace-undeploy,http://www.opengis.net/spec/ogcapi-processes-2/1.0/req/deploy-replace-undeploy>>
inherit:: Argo Workflow Language <<Argo_Workflow_Language>>
====
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
== Requirements Class "Argo"

[[argo-overview]]
=== Overview

include::../requirements/requirements_class_argo.adoc[]

A server that implements this conformance class supports the use of Argo encoding when interacting with the deploy-replace-undeploy extension from a processes API.

In consequence, the following recommandations become requirements:

* <<rec_deploy-replace-undeploy_deploy_body-argo,/rec/deploy-replace-undeploy/deploy/body-argo>>
* <<rec_deploy-replace-undeploy_replace_body-argo,/rec/deploy-replace-undeploy/replace/body-argo>>
* <<rec_ogcapppkg_execution-unit-argo,/rec/deploy-replace-undeploy/ogcapppkg/execution-unit-argo>>


Loading