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

feat: add support for structured log info #216

Draft
wants to merge 3 commits into
base: develop
Choose a base branch
from
Draft
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
64 changes: 64 additions & 0 deletions openapi/workflow_execution_service.openapi.yaml
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
openapi: 3.0.0
info:
title: Workflow Execution Service
contact: {}
version: '1.1.0'
x-logo:
url: 'https://www.ga4gh.org/wp-content/themes/ga4gh-theme/gfx/GA-logo-horizontal-tag-RGB.svg'
description: >
*Run standard workflows on workflow execution platforms in a platform-agnostic way.*

## Executive Summary

The Workflow Execution Service (WES) API provides a standard way for users to submit workflow requests to workflow execution systems, and to monitor their execution. This API lets users run a single workflow (currently [**CWL**](https://www.commonwl.org/) or [**WDL**](http://www.openwdl.org/) formatted workflows, other types may be supported in the future) on multiple different platforms, clouds, and environments.

Key features of the API:

+ can request that a workflow be run
+ can pass parameters to that workflow (e.g. input files, cmdline arguments)
+ can get information about running workflows (e.g. status, errors, output file locations)
+ can cancel a running workflow

Check warning on line 20 in openapi/workflow_execution_service.openapi.yaml

View workflow job for this annotation

GitHub Actions / Open API Lint Check

info-license - #/info

Info object should contain `license` field.
servers:
- url: https://{defaultHost}/{basePath}/{apiVersion}
variables:
Expand Down Expand Up @@ -821,6 +821,65 @@
outputs:
type: object
description: The outputs from the workflow run.
LogType:
title: LogType
enum:
- WRROC_PROCESS
- WRROC_PROV
- WRROC_WORKFLOW
type: string
nullable: true
description: >
Supported models and schemes for describing the shape of structured logging information. Can take any of the following values:

+ WRROC_PROCESS: Workflow Run RO-Crate Process Run Crate (https://www.researchobject.org/workflow-run-crate/profiles/process_run_crate).
Expects a single serialized JSON-LD string item in `StructuredLog.logs` that conforms to the profile version indicated in `StructuredLog.log_type_version`.

+ WRROC_PROV: Workflow Run RO-Crate Provenance Run Crate (https://www.researchobject.org/workflow-run-crate/profiles/provenance_run_crate).
Expects a single serialized JSON-LD string item in `StructuredLog.logs` that conforms to the profile version indicated in `StructuredLog.log_type_version`.

+ WRROC_WORKFLOW: Workflow Run RO-Crate Workflow Run Crate (https://www.researchobject.org/workflow-run-crate/profiles/workflow_run_crate).
Expects a single serialized JSON-LD string item in `StructuredLog.logs` that conforms to the profile version indicated in `StructuredLog.log_type_version`.

+ null: Use if your preferred logging scheme is not explicitly supported.
In that case, make sure to provide sufficient documentation for client implementers to parse the log information in the web page referred to by `StructuredLog.doc_url`.
StructuredLog:
title: StructuredLog
type: object
properties:
log_type:
$ref: '#/components/schemas/LogType'
log_type_version:
type: string
description: Version of `log_type` model or schema.
logs:
oneOf:
- type: string
- type: array
items: {}
- type: object
description: >-
Structured log message content. Whether one or more log messages are used and whether
these represent strings or more complex objects depends on the log type. Log messages
can also contain URLs that point to web sites that host the actual log contents. See
the `LogType` description and `spec_url` and/or `doc_url` for additional details on
how the contents of a given log format are mapped to this property.
spec_url:
type: string
description: >-
A URL pointing to the specification describing the `log_type` model or schema. At least
one of `spec_url` and `doc_url` should always be provided if `log_type` is `null`.
doc_url:
type: string
description: >-
A web page URL with human-readable documentation for client implementers on how to
interpret `logs`. At least one of `spec_url` and `doc_url` should always be provided if
`log_type` is `null`.
required:
- log_type
- log_type_version
- logs
description: Log information whose shape is described by a defined model or schema.
Log:
title: Log
type: object
Expand Down Expand Up @@ -849,6 +908,11 @@
type: integer
description: Exit code of the program
format: int32
structured_logs:
type: array
items:
$ref: '#/components/schemas/StructuredLog'
description: Structured log information whose shape is described by one or more defined models or schemas.
system_logs:
type: array
items:
Expand Down
Loading