From 5a61dfd89e19bb8468458b12eb508f402efeb05e Mon Sep 17 00:00:00 2001 From: Spyros Garyfallidis Date: Mon, 23 Feb 2026 20:12:35 +0100 Subject: [PATCH 1/7] feat: support parameter files for components and controllers --- schemas/applications/schema/components.schema.json | 6 ++++++ schemas/applications/schema/hardware.schema.json | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/schemas/applications/schema/components.schema.json b/schemas/applications/schema/components.schema.json index c9736419..39b5b6a6 100644 --- a/schemas/applications/schema/components.schema.json +++ b/schemas/applications/schema/components.schema.json @@ -57,6 +57,12 @@ "parameters": { "$ref": "common/parameters.schema.json" }, + "parameters_file": { + "title": "Component Parameters File", + "description": "An address pointing to a YAML or TXT file containing component parameters", + "type": "string", + "pattern": "^\/\/(file|data|package):(\/)?[a-zA-Z0-9_.][a-zA-Z0-9_.\/](\/?[a-zA-Z0-9_-]+)*(.yaml|.txt)$" + }, "inputs": { "$ref": "common/signals.schema.json" }, diff --git a/schemas/applications/schema/hardware.schema.json b/schemas/applications/schema/hardware.schema.json index a164a836..19dc6928 100644 --- a/schemas/applications/schema/hardware.schema.json +++ b/schemas/applications/schema/hardware.schema.json @@ -155,6 +155,12 @@ "parameters": { "$ref": "common/parameters.schema.json" }, + "parameters_file": { + "title": "Controller Parameters File", + "description": "An address pointing to a YAML or TXT file containing controller parameters", + "type": "string", + "pattern": "^\/\/(file|data|package):(\/)?[a-zA-Z0-9_.][a-zA-Z0-9_.\/](\/?[a-zA-Z0-9_-]+)*(.yaml|.txt)$" + }, "inputs": { "$ref": "common/signals.schema.json" }, From 87b3a58085cec37332c8e8c6106e6f0b5914c106 Mon Sep 17 00:00:00 2001 From: Spyros Garyfallidis Date: Tue, 24 Feb 2026 09:10:40 +0100 Subject: [PATCH 2/7] fix: regex --- schemas/applications/schema/components.schema.json | 2 +- schemas/applications/schema/hardware.schema.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/schemas/applications/schema/components.schema.json b/schemas/applications/schema/components.schema.json index 39b5b6a6..5228d0b5 100644 --- a/schemas/applications/schema/components.schema.json +++ b/schemas/applications/schema/components.schema.json @@ -61,7 +61,7 @@ "title": "Component Parameters File", "description": "An address pointing to a YAML or TXT file containing component parameters", "type": "string", - "pattern": "^\/\/(file|data|package):(\/)?[a-zA-Z0-9_.][a-zA-Z0-9_.\/](\/?[a-zA-Z0-9_-]+)*(.yaml|.txt)$" + "pattern": "^(file:\/\/\/|(data|package):\/\/)[a-zA-Z0-9_]+(\/?[a-zA-Z0-9_-]+)*(.yaml|.json)$" }, "inputs": { "$ref": "common/signals.schema.json" diff --git a/schemas/applications/schema/hardware.schema.json b/schemas/applications/schema/hardware.schema.json index 19dc6928..deac9af5 100644 --- a/schemas/applications/schema/hardware.schema.json +++ b/schemas/applications/schema/hardware.schema.json @@ -159,7 +159,7 @@ "title": "Controller Parameters File", "description": "An address pointing to a YAML or TXT file containing controller parameters", "type": "string", - "pattern": "^\/\/(file|data|package):(\/)?[a-zA-Z0-9_.][a-zA-Z0-9_.\/](\/?[a-zA-Z0-9_-]+)*(.yaml|.txt)$" + "pattern": "^(file:\/\/\/|(data|package):\/\/(\/)?)[a-zA-Z0-9_]+(\/?[a-zA-Z0-9_-]+)*(.yaml|.json)$" }, "inputs": { "$ref": "common/signals.schema.json" From 67498bbd39cbc216a6854953835d41e32e48d2d4 Mon Sep 17 00:00:00 2001 From: Spyros Garyfallidis Date: Tue, 24 Feb 2026 09:32:49 +0100 Subject: [PATCH 3/7] update CHANGELOG --- schemas/applications/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/schemas/applications/CHANGELOG.md b/schemas/applications/CHANGELOG.md index 19eac3a1..23844990 100644 --- a/schemas/applications/CHANGELOG.md +++ b/schemas/applications/CHANGELOG.md @@ -23,6 +23,7 @@ Release Versions: ## Upcoming changes - feat: add hardware plugin (#454) +- feat: add support for parameter files in components and controllers (#463) ## 2-1-0 From 4788a7fa59280bb968807ee6779edc9637544182 Mon Sep 17 00:00:00 2001 From: Spyros Garyfallidis Date: Tue, 24 Feb 2026 09:34:01 +0100 Subject: [PATCH 4/7] fix: apply suggestions from code review Co-authored-by: Dominic Reber <71256590+domire8@users.noreply.github.com> --- schemas/applications/schema/components.schema.json | 2 +- schemas/applications/schema/hardware.schema.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/schemas/applications/schema/components.schema.json b/schemas/applications/schema/components.schema.json index 5228d0b5..c9eec96c 100644 --- a/schemas/applications/schema/components.schema.json +++ b/schemas/applications/schema/components.schema.json @@ -59,7 +59,7 @@ }, "parameters_file": { "title": "Component Parameters File", - "description": "An address pointing to a YAML or TXT file containing component parameters", + "description": "An address pointing to a YAML or JSON file containing component parameters", "type": "string", "pattern": "^(file:\/\/\/|(data|package):\/\/)[a-zA-Z0-9_]+(\/?[a-zA-Z0-9_-]+)*(.yaml|.json)$" }, diff --git a/schemas/applications/schema/hardware.schema.json b/schemas/applications/schema/hardware.schema.json index deac9af5..c76c51f2 100644 --- a/schemas/applications/schema/hardware.schema.json +++ b/schemas/applications/schema/hardware.schema.json @@ -157,7 +157,7 @@ }, "parameters_file": { "title": "Controller Parameters File", - "description": "An address pointing to a YAML or TXT file containing controller parameters", + "description": "An address pointing to a YAML or JSON file containing controller parameters", "type": "string", "pattern": "^(file:\/\/\/|(data|package):\/\/(\/)?)[a-zA-Z0-9_]+(\/?[a-zA-Z0-9_-]+)*(.yaml|.json)$" }, From ab151cb55b3cf8cf53112141c6cb7af51dfa8856 Mon Sep 17 00:00:00 2001 From: Spyros Garyfallidis Date: Tue, 24 Feb 2026 09:38:27 +0100 Subject: [PATCH 5/7] fix: regex --- schemas/applications/schema/hardware.schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/applications/schema/hardware.schema.json b/schemas/applications/schema/hardware.schema.json index c76c51f2..8e72502e 100644 --- a/schemas/applications/schema/hardware.schema.json +++ b/schemas/applications/schema/hardware.schema.json @@ -159,7 +159,7 @@ "title": "Controller Parameters File", "description": "An address pointing to a YAML or JSON file containing controller parameters", "type": "string", - "pattern": "^(file:\/\/\/|(data|package):\/\/(\/)?)[a-zA-Z0-9_]+(\/?[a-zA-Z0-9_-]+)*(.yaml|.json)$" + "^(file:\/\/\/|(data|package):\/\/)[a-zA-Z0-9_]+(\/?[a-zA-Z0-9_-]+)*(.yaml|.json)$" }, "inputs": { "$ref": "common/signals.schema.json" From 51cbd0efceeade2716304d445a77a2211f700d8f Mon Sep 17 00:00:00 2001 From: Spyros Garyfallidis Date: Tue, 24 Feb 2026 09:39:50 +0100 Subject: [PATCH 6/7] fix: regex typo --- schemas/applications/schema/hardware.schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/applications/schema/hardware.schema.json b/schemas/applications/schema/hardware.schema.json index 8e72502e..bca61f92 100644 --- a/schemas/applications/schema/hardware.schema.json +++ b/schemas/applications/schema/hardware.schema.json @@ -159,7 +159,7 @@ "title": "Controller Parameters File", "description": "An address pointing to a YAML or JSON file containing controller parameters", "type": "string", - "^(file:\/\/\/|(data|package):\/\/)[a-zA-Z0-9_]+(\/?[a-zA-Z0-9_-]+)*(.yaml|.json)$" + "pattern": "^(file:\/\/\/|(data|package):\/\/)[a-zA-Z0-9_]+(\/?[a-zA-Z0-9_-]+)*(.yaml|.json)$" }, "inputs": { "$ref": "common/signals.schema.json" From ee89758b599c191e681dd4029912073a3901f707 Mon Sep 17 00:00:00 2001 From: Spyros Garyfallidis Date: Tue, 24 Feb 2026 13:40:46 +0100 Subject: [PATCH 7/7] fix: move parameters file in new sub-schema --- schemas/applications/schema/application.schema.json | 3 +++ .../applications/schema/common/parameters_file.schema.json | 7 +++++++ schemas/applications/schema/components.schema.json | 5 +---- schemas/applications/schema/hardware.schema.json | 5 +---- 4 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 schemas/applications/schema/common/parameters_file.schema.json diff --git a/schemas/applications/schema/application.schema.json b/schemas/applications/schema/application.schema.json index dc9858bb..4fc3c60b 100644 --- a/schemas/applications/schema/application.schema.json +++ b/schemas/applications/schema/application.schema.json @@ -149,6 +149,9 @@ "parameters": { "$ref": "common/parameters.schema.json" }, + "parameters_file": { + "$ref": "common/parameters_file.schema.json" + }, "signals": { "$ref": "common/signals.schema.json" }, diff --git a/schemas/applications/schema/common/parameters_file.schema.json b/schemas/applications/schema/common/parameters_file.schema.json new file mode 100644 index 00000000..f4f017eb --- /dev/null +++ b/schemas/applications/schema/common/parameters_file.schema.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Parameters File", + "description": "A path to a YAML or JSON parameters file that is used to set parameter values on load. This is evaluated before any values in the `parameters` property are applied.", + "type": "string", + "pattern": "^(file:\/\/\/|(data|package):\/\/)[a-zA-Z0-9_]+(\/?[a-zA-Z0-9_-]+)*(.yaml|.json)$" +} \ No newline at end of file diff --git a/schemas/applications/schema/components.schema.json b/schemas/applications/schema/components.schema.json index c9eec96c..1b50a42c 100644 --- a/schemas/applications/schema/components.schema.json +++ b/schemas/applications/schema/components.schema.json @@ -58,10 +58,7 @@ "$ref": "common/parameters.schema.json" }, "parameters_file": { - "title": "Component Parameters File", - "description": "An address pointing to a YAML or JSON file containing component parameters", - "type": "string", - "pattern": "^(file:\/\/\/|(data|package):\/\/)[a-zA-Z0-9_]+(\/?[a-zA-Z0-9_-]+)*(.yaml|.json)$" + "$ref": "common/parameters_file.schema.json" }, "inputs": { "$ref": "common/signals.schema.json" diff --git a/schemas/applications/schema/hardware.schema.json b/schemas/applications/schema/hardware.schema.json index bca61f92..d1af9f06 100644 --- a/schemas/applications/schema/hardware.schema.json +++ b/schemas/applications/schema/hardware.schema.json @@ -156,10 +156,7 @@ "$ref": "common/parameters.schema.json" }, "parameters_file": { - "title": "Controller Parameters File", - "description": "An address pointing to a YAML or JSON file containing controller parameters", - "type": "string", - "pattern": "^(file:\/\/\/|(data|package):\/\/)[a-zA-Z0-9_]+(\/?[a-zA-Z0-9_-]+)*(.yaml|.json)$" + "$ref": "common/parameters_file.schema.json" }, "inputs": { "$ref": "common/signals.schema.json"