From febf49d42542193f4f4072cd7e5f7bea82609a79 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Thu, 30 Oct 2025 15:29:01 +0100 Subject: [PATCH 1/2] "id" is a required field in for Parameters and WorkflowSteps --- Process.yml | 5 +++++ Workflow.yml | 13 +++++++++++++ 2 files changed, 18 insertions(+) diff --git a/Process.yml b/Process.yml index 13a0ad9f..46357a86 100644 --- a/Process.yml +++ b/Process.yml @@ -236,6 +236,11 @@ $graph: abstract: true doc: | Define an input or output parameter to a process. + fields: + - name: id + type: string + jsonldPredicate: "@id" + doc: "The unique identifier for this Parameter." - type: enum diff --git a/Workflow.yml b/Workflow.yml index 100eed1f..65280743 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -584,6 +584,10 @@ $graph: should be filtered out. fields: + - name: id + type: string + jsonldPredicate: "@id" + doc: "The unique identifier of the source input field name." - name: default type: CWLObjectType? doc: | @@ -638,6 +642,11 @@ $graph: A unique identifier for this workflow output parameter. This is the identifier to use in the `source` field of `WorkflowStepInput` to connect the output value to downstream parameters. + fields: + - name: id + type: string + jsonldPredicate: "@id" + doc: "The unique identifier of the workflow parameter to export." - name: ScatterMethod @@ -736,6 +745,10 @@ $graph: a subworkflow (recursive workflows are not allowed). fields: + - name: id + type: string + jsonldPredicate: "@id" + doc: "The unique identifier for this WorkflowStep." - name: in type: WorkflowStepInput[] jsonldPredicate: From 03025680f2d95ac93dbc8481415618ba878dd4de Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 8 Dec 2025 10:46:33 +0100 Subject: [PATCH 2/2] refactor to use IdentifierRequired, keep the custom docs --- Process.yml | 13 ++++++++++++- Workflow.yml | 6 +++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Process.yml b/Process.yml index 46357a86..7cd1a055 100644 --- a/Process.yml +++ b/Process.yml @@ -71,6 +71,17 @@ $graph: doc: "The unique identifier for this object." +- name: IdentifierRequired + type: record + extends: [Identified] + abstract: true + fields: + - name: id + type: string + jsonldPredicate: "@id" + doc: "The unique identifier for this object." + + - name: LoadListingEnum type: enum symbols: [no_listing, shallow_listing, deep_listing] @@ -232,7 +243,7 @@ $graph: - name: Parameter type: record - extends: [FieldBase, sld:Documented, Identified] + extends: [FieldBase, sld:Documented, IdentifierRequired] abstract: true doc: | Define an input or output parameter to a process. diff --git a/Workflow.yml b/Workflow.yml index 65280743..ca37b94d 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -471,7 +471,7 @@ $graph: - type: record name: WorkflowStepInput - extends: [Identified, Sink, LoadContents, Labeled] + extends: [IdentifierRequired, Sink, LoadContents, Labeled] docParent: "#WorkflowStep" doc: | The input of a workflow step connects an upstream parameter (from the @@ -632,7 +632,7 @@ $graph: - type: record name: WorkflowStepOutput docParent: "#WorkflowStep" - extends: Identified + extends: IdentifierRequired doc: | Associate an output parameter of the underlying process with a workflow parameter. The workflow parameter (given in the `id` field) be may be used @@ -661,7 +661,7 @@ $graph: - name: WorkflowStep type: record - extends: [Identified, Labeled, sld:Documented] + extends: [IdentifierRequired, Labeled, sld:Documented] docParent: "#Workflow" doc: | A workflow step is an executable element of a workflow. It specifies the