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

EchoProcess + Support UOMs + Support BBOX #580

Merged
merged 87 commits into from
Dec 13, 2023
Merged

Conversation

fmigneault
Copy link
Collaborator

@fmigneault fmigneault commented Oct 28, 2023

Changes

  • Add weaver.formats.ContentEncoding with handlers for common encoding manipulation from input values.
  • Add |oap_echo|_ to the list of weaver.processes.builtin definitions with its CWL representation and
    complementary OGC API - Processes reference implementation details. This Process will be automatically deployed
    at API startup, and is employed to validate multiple parsing combinations of execution I/O values and encodings
    (fixes Implement example process #379).
  • Add support of OGC BoundingBox definition (bbox and crs fields) as Process execution input value
    with appropriate schema validation (fixes Support of BoundingBox I/O #51).
  • Add support of Unit of Measure (UoM) definition (measurement and uom fields) as Process execution
    input value with appropriate schema validation (fixes`Support I/O literal with unit of measure #430).
  • Add create_metalink utility function to facilitate generation of a .meta4 or .metalink file definition
    from a list of file link references (relates to How to handle "multiple output" #25).

Fixes

  • Fix weaver.wps_restapi.swagger_definitions.ExecuteInputValues deserialization that sometimes silently dropped
    invalid JSON-formatted inputs that did not fulfill schema validation. This was caused by a side effect regarding
    how weaver.wps_restapi.colander_extras.VariableSchemaNode handled "unknown" JSON properties from submitted
    content. In cases where required Process inputs were causing the invalid schema, Job execution would be aborted
    and the error would be reported due to "missing" inputs. However, if the JSON failing schema validation happened to
    be nested under an optional input definition, the Job execution could have resumed silently by omitting this
    input's value propagation to the downstream CWL, WPS or OGC API - Processes implementation, which could make
    it use an alternative default value than the real input that was submitted for the Job.
  • Fix schema name representation employed in generated colander.Invalid error when a schema validation failed, in
    order to better represent deeply nested schema using multiple oneOf, anyOf, allOf schema nodes.
    Using colander.Invalid.asdict, each dictionary key now properly indicates the specific path of sub-nodes with
    their relevant schema validation error.
  • Fix variable schema node names to provide a {SchemaName}<{VariableName}> representation, such that it can be
    more easily identified. Schema nodes with a variable (i.e.: schema under additionalProperties) previously only
    indicated {VariableName}, which made it complicated to follow reference schema classes that formed the error path.
    Each of the evaluated fields against each possible variable schema will now report their corresponding nested
    schema validation error as {SchemaName}<{VariableName}>({field}) such that results can be understood.
  • Fix execution input reference (i.e.: using href) dropping a schema URL reference if provided explicitly.
    This parameter now remains within the produced content passed to the Job, and forwarded to a remote Process if
    applicable, but no further schema validation is accomplished with the value in schema for the moment.
  • Fix ContentType.IMAGE_OGC_GEOTIFF using invalid media-type name (missing i in image).
  • Fix Job input validation stripping additional parameters from provided Media-Type, potentially causing mismatching
    Content-Type validation against the corresponding Process description inputs. Types should now match exactly the
    original Process definition, including any additional parameters and sub-types.
  • Fix resolution of anyOf schema raising colander.Invalid even when the property was marked as optional
    using missing=colander.drop.
  • Fix $schema of OGC nameReferenceType being reported under every dataType of literalDataDomains for
    literal I/O of Process descriptions. The reference is not only included in the OpenAPI definition as intended.

References

To Do

fbachandcrim and others added 30 commits May 19, 2023 16:12
@github-actions github-actions bot added the feature/providers Issue related to providers convertion to WPS-REST processes. label Dec 4, 2023
@fmigneault fmigneault merged commit f30313f into master Dec 13, 2023
47 checks passed
@fmigneault fmigneault deleted the echo-process+support-uom branch December 13, 2023 02:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci/doc Issue related to documentation of the package ci/operations Related to CI operations (actions, execution, install, builds, etc.) ci/tests Tests of the package and features feature/cli Issues or features related to CLI operations. feature/CWL Issue related to CWL support feature/docker Issue related to Docker application package execution. feature/job Issues related to job execution, reporting and logging. feature/oas Issues related to OpenAPI specifications. feature/providers Issue related to providers convertion to WPS-REST processes. feature/vault Issue related to Vault storage feature. process/builtin Issue related to builtin application processes process/wps3 Issue related to WPS 3.x (REST-JSON) processes support
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support I/O literal with unit of measure Implement example process Support of BoundingBox I/O
2 participants