From 3b5b90f4c7e620edecad04c8846241dd53363190 Mon Sep 17 00:00:00 2001 From: Ilya Kuznetsov Date: Tue, 21 Jan 2025 14:36:47 +0100 Subject: [PATCH 1/4] fix: Allow yaml-anchors in schema --- bundle/internal/schema/main.go | 9 +++++++++ bundle/schema/jsonschema.json | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/bundle/internal/schema/main.go b/bundle/internal/schema/main.go index 77927a9661..e9e1db9da0 100644 --- a/bundle/internal/schema/main.go +++ b/bundle/internal/schema/main.go @@ -159,6 +159,15 @@ func generateSchema(workdir, outputFile string) { a.addAnnotations, addInterpolationPatterns, }) + + // AdditionalProperties is set to an empty schema to allow non-typed keys used as yaml-anchors + // Example: + // some_anchor: &some_anchor + // file_path: /some/path/ + // workspace: + // <<: *some_anchor + s.AdditionalProperties = jsonschema.Schema{} + if err != nil { log.Fatal(err) } diff --git a/bundle/schema/jsonschema.json b/bundle/schema/jsonschema.json index 57b0cd2310..d4b6b1079e 100644 --- a/bundle/schema/jsonschema.json +++ b/bundle/schema/jsonschema.json @@ -6901,5 +6901,5 @@ "$ref": "#/$defs/github.com/databricks/cli/bundle/config.Workspace" } }, - "additionalProperties": false + "additionalProperties": {} } \ No newline at end of file From a6fa19953dcc074ad393337d91697f430d9e3c47 Mon Sep 17 00:00:00 2001 From: Ilya Kuznetsov Date: Tue, 21 Jan 2025 16:13:23 +0100 Subject: [PATCH 2/4] fix: Remove test for unknown field --- bundle/internal/schema/testdata/fail/unknown_top_level_field.yml | 1 - 1 file changed, 1 deletion(-) delete mode 100644 bundle/internal/schema/testdata/fail/unknown_top_level_field.yml diff --git a/bundle/internal/schema/testdata/fail/unknown_top_level_field.yml b/bundle/internal/schema/testdata/fail/unknown_top_level_field.yml deleted file mode 100644 index e8a8866bc2..0000000000 --- a/bundle/internal/schema/testdata/fail/unknown_top_level_field.yml +++ /dev/null @@ -1 +0,0 @@ -unknown: value From 7de066e64b68999c5bd01e30c5cfab3ea99ed827 Mon Sep 17 00:00:00 2001 From: Ilya Kuznetsov Date: Thu, 23 Jan 2025 11:17:28 +0100 Subject: [PATCH 3/4] Added test case for valid yaml-anchor --- bundle/internal/schema/testdata/pass/yaml_anchors.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 bundle/internal/schema/testdata/pass/yaml_anchors.yml diff --git a/bundle/internal/schema/testdata/pass/yaml_anchors.yml b/bundle/internal/schema/testdata/pass/yaml_anchors.yml new file mode 100644 index 0000000000..18749891dc --- /dev/null +++ b/bundle/internal/schema/testdata/pass/yaml_anchors.yml @@ -0,0 +1,11 @@ +tags: &job-tags + environment: "some_environment" + +resources: + jobs: + db1: + tags: + <<: *job-tags + db2: + tags: + <<: *job-tags From 188ca67fe126e7e529e007573c1fa88d6edbd61f Mon Sep 17 00:00:00 2001 From: Ilya Kuznetsov Date: Thu, 23 Jan 2025 11:19:35 +0100 Subject: [PATCH 4/4] Styling fix --- bundle/internal/schema/main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bundle/internal/schema/main.go b/bundle/internal/schema/main.go index e9e1db9da0..290e28bb8c 100644 --- a/bundle/internal/schema/main.go +++ b/bundle/internal/schema/main.go @@ -163,9 +163,9 @@ func generateSchema(workdir, outputFile string) { // AdditionalProperties is set to an empty schema to allow non-typed keys used as yaml-anchors // Example: // some_anchor: &some_anchor - // file_path: /some/path/ + // file_path: /some/path/ // workspace: - // <<: *some_anchor + // <<: *some_anchor s.AdditionalProperties = jsonschema.Schema{} if err != nil {