-
Notifications
You must be signed in to change notification settings - Fork 45
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 validation requirements class. #423
Conversation
[%metadata] | ||
identifier:: /req/process-validate/op | ||
|
||
The server SHALL support the HTTP POST operation at the path `/process/{processID}/validate`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should be /process/{processID}/validation
IMO, we should focus on integrating the quotation and billing definitions that were already developed (though unpublished) with @pvretano over adding a new validation endpoint. The validation does essentially the same thing as requesting the quote using a pseudo-execution request, but quoting adds the additional estimate and ID for tracking of the original inputs submitted which can be used for the later execution without replicating the request/inputs again to actually run it. I can dig up the old definitions we started working on. It looked something like the following: Other references: |
I agree that validation is essentially the same as quotation/estimates. Something that could also be considered in the context of the Collection Output "on-demand" processing / GeoDataCube is essentially providing a cost per cell processed, or cost per x cells processed (which could correspond for example to a 64k cells packet for 256x256 coverage tiles, or a 59,293 sub-zones ISEA3H DGGS relative depth 10 hexagonal data packet). In this case you don't provide a specific input Area/Time/Resolution of interest (because the actual input data may be several petabytes), but just want to know at what rate you incur costs as you make data requests which trigger processing on-demand. Also all of this could be considered in the context of submitting an ad-hoc workflow or execution request (e.g. POST to This validation-only "execution" mode is also very useful to validate nested remote processes as part of a larger distributed workflow. |
@fmigneault @jerstlouis quotation and billiing is not something that would be in the core but rather something that would exist in another part of the suite of standards ... OGC API - Processes - Part X: Quotation and Billing. Also, I am not sure I would explicitly tie the capability to validate a request to quotation and billing. The first step in executing a request, or getting a quotation, is to validate the request. All this PR does is simply expose an endpoint to allow that validation step to be performed independent of the next step (e.g. execution, quotation, etc.). This is what Issue #101 is requesting. If you now think this is not really necessary then I will delete this PR and close #101. We can create a new issue (although one might already exist) to create a new part of the standard dealing with quotation and billing. |
@pvretano I would very much appreciate this "validate" thing in the core. It's something that's very useful for workflows (to facilitate integratingprocesses implementing only Core in workflows), and it's something that Part X: Quotation and Billing could extend with the extra capabilities. I think we're saying that we should just think ahead in terms of Part X: Quotation and Billing integrating with this "don't actually execute the workflow" validating capability, in terms of end-points / parameters. |
I think it is acceptable to have this capability in Core. I agree it can be useful. Quotation can reuse the capability for the validation prior to the estimation. However, using
|
My initial suggestion was a query parameter for the execution mode... (sync / async), validation, quotation hopefully cutting those end-points by 3 :) If ad-hoc workflow execution is by POSTing a workflow to |
That is an interesting suggestion. |
@fmigneault @jerstlouis nope! I don't think overloading the Again, a workflow is JUST another "execution unit" and I don't think "ad-hoc workflow execution" is a strong enough use case to upend everything just to to accomodate it ... at least not by overloading or redefining the current behaviour of the If it turns out that workflows are a special enough resource, then I would much prefer that we define a |
I agree with both points (not overloading the endpoint and no special treatment of ad-hoc over execution unit that handles all other use cases/implementations). |
Right now, we have a "special treatment" in Part 1- Core for ad-execution of a single process, that is the POST to Part 3: Workflows "Nested Processes" introduces the ability to execute ad-hoc workflows (chained from a root process) the same way. I am really hoping to preserve all that functionality one way or another, for the ad-hoc execution use case. It might not be a use case that everyone cares about, but I for one believe it is a very important use case, which facilitates discovery and integration of processes available from different deployment (where the delays associated with execution endpoints requiring credentials would be a barrier to experimenting with them in a timely manner). |
If we agree to use the POST on |
@gfenoy @fmigneault @jerstlouis I do not agree! I need more time to consider the issue but I am working on other things with the code sprint right now. Let's discuss at the next SWG meeting. |
SWG meeting from 2024-07-22: This PR will be closed and the validation endpoint will become part of a future extension. |
Closes #101.