From 5995f2f1949bb4d45498c49d29a492056ada24de Mon Sep 17 00:00:00 2001 From: FAQ Bot Date: Mon, 6 Jul 2026 05:39:40 +0000 Subject: [PATCH 1/2] NEW: Why does a generic AI assistant generate Kestra flow YAML with propertie --- .../006_93a3e8b98c_kestra-yaml-properties.md | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 _questions/llm-zoomcamp/module-3/006_93a3e8b98c_kestra-yaml-properties.md diff --git a/_questions/llm-zoomcamp/module-3/006_93a3e8b98c_kestra-yaml-properties.md b/_questions/llm-zoomcamp/module-3/006_93a3e8b98c_kestra-yaml-properties.md new file mode 100644 index 00000000..d695a0d0 --- /dev/null +++ b/_questions/llm-zoomcamp/module-3/006_93a3e8b98c_kestra-yaml-properties.md @@ -0,0 +1,53 @@ +--- +id: 93a3e8b98c +question: Why does a generic AI assistant generate Kestra flow YAML with properties + that don't exist, and how can I avoid it? +sort_order: 6 +--- + +Why generic AI assistants can produce invalid Kestra YAML + +Cause: A general AI (e.g., ChatGPT) isn’t grounded in Kestra’s plugin schemas for your running version. It may surface plausible but invalid property names (such as bucket/name) instead of the real, version-specific destination property. + +Examples (GCS Upload and BigQuery LoadFromGcs) + +- Incorrect (invented props) +```yaml +- id: upload_to_gcs + type: "io.kestra.plugin.gcp.gcs.Upload" + bucket: "my-bucket" + name: "path/to/file" +``` + +- Correct (real props for GCS Upload) +```yaml +- id: upload_to_gcs + type: "io.kestra.plugin.gcp.gcs.Upload" + to: "gs://my-bucket/path/to/file" +``` + +- Incorrect (pseudo-split properties for BigQuery LoadFromGcs) +```yaml +- id: load_to_bq + type: "io.kestra.plugin.gcp.bigquery.LoadFromGcs" + projectId: "my-project" + dataset: "my_dataset" + table: "my_table" +``` + +- Correct (real property for BigQuery LoadFromGcs) +```yaml +- id: load_to_bq + type: "io.kestra.plugin.gcp.bigquery.LoadFromGcs" + destinationTable: "my-project.my_dataset.my_table" +``` + +How to avoid this in practice + +- Always cross-check generated YAML against the official plugin docs: https://kestra.io/plugins/plugin-gcp +- Use Kestra’s built-in AI Copilot, which is grounded in the current plugin schema for your running version +- Validate and test your YAML in your Kestra environment to ensure it parses and runs as expected + +Notes + +- Plugin properties can vary by plugin version; what’s correct in one release may be invalid in another. If you share a snippet, we can help verify it against the docs. \ No newline at end of file From 7c0e4683de43914989bb2bb1eb4155edee082eac Mon Sep 17 00:00:00 2001 From: Alexey Grigorev Date: Thu, 9 Jul 2026 18:05:35 +0200 Subject: [PATCH 2/2] Rename to 008_ (fix sort/prefix collision) and clean up formatting --- .../006_93a3e8b98c_kestra-yaml-properties.md | 53 ------------------- .../008_93a3e8b98c_kestra-yaml-properties.md | 47 ++++++++++++++++ 2 files changed, 47 insertions(+), 53 deletions(-) delete mode 100644 _questions/llm-zoomcamp/module-3/006_93a3e8b98c_kestra-yaml-properties.md create mode 100644 _questions/llm-zoomcamp/module-3/008_93a3e8b98c_kestra-yaml-properties.md diff --git a/_questions/llm-zoomcamp/module-3/006_93a3e8b98c_kestra-yaml-properties.md b/_questions/llm-zoomcamp/module-3/006_93a3e8b98c_kestra-yaml-properties.md deleted file mode 100644 index d695a0d0..00000000 --- a/_questions/llm-zoomcamp/module-3/006_93a3e8b98c_kestra-yaml-properties.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: 93a3e8b98c -question: Why does a generic AI assistant generate Kestra flow YAML with properties - that don't exist, and how can I avoid it? -sort_order: 6 ---- - -Why generic AI assistants can produce invalid Kestra YAML - -Cause: A general AI (e.g., ChatGPT) isn’t grounded in Kestra’s plugin schemas for your running version. It may surface plausible but invalid property names (such as bucket/name) instead of the real, version-specific destination property. - -Examples (GCS Upload and BigQuery LoadFromGcs) - -- Incorrect (invented props) -```yaml -- id: upload_to_gcs - type: "io.kestra.plugin.gcp.gcs.Upload" - bucket: "my-bucket" - name: "path/to/file" -``` - -- Correct (real props for GCS Upload) -```yaml -- id: upload_to_gcs - type: "io.kestra.plugin.gcp.gcs.Upload" - to: "gs://my-bucket/path/to/file" -``` - -- Incorrect (pseudo-split properties for BigQuery LoadFromGcs) -```yaml -- id: load_to_bq - type: "io.kestra.plugin.gcp.bigquery.LoadFromGcs" - projectId: "my-project" - dataset: "my_dataset" - table: "my_table" -``` - -- Correct (real property for BigQuery LoadFromGcs) -```yaml -- id: load_to_bq - type: "io.kestra.plugin.gcp.bigquery.LoadFromGcs" - destinationTable: "my-project.my_dataset.my_table" -``` - -How to avoid this in practice - -- Always cross-check generated YAML against the official plugin docs: https://kestra.io/plugins/plugin-gcp -- Use Kestra’s built-in AI Copilot, which is grounded in the current plugin schema for your running version -- Validate and test your YAML in your Kestra environment to ensure it parses and runs as expected - -Notes - -- Plugin properties can vary by plugin version; what’s correct in one release may be invalid in another. If you share a snippet, we can help verify it against the docs. \ No newline at end of file diff --git a/_questions/llm-zoomcamp/module-3/008_93a3e8b98c_kestra-yaml-properties.md b/_questions/llm-zoomcamp/module-3/008_93a3e8b98c_kestra-yaml-properties.md new file mode 100644 index 00000000..d0d32525 --- /dev/null +++ b/_questions/llm-zoomcamp/module-3/008_93a3e8b98c_kestra-yaml-properties.md @@ -0,0 +1,47 @@ +--- +id: 93a3e8b98c +question: Why does a generic AI assistant generate Kestra flow YAML with properties + that don't exist, and how can I avoid it? +sort_order: 8 +--- + +A general AI (e.g., ChatGPT) isn't grounded in Kestra's plugin schemas for your running version, so it can surface plausible but invalid property names (such as `bucket`/`name`) instead of the real, version-specific property. For example: + +**GCS Upload** — invented `bucket`/`name` props vs. the real `to` property: + +```yaml +# Incorrect (invented props) +- id: upload_to_gcs + type: "io.kestra.plugin.gcp.gcs.Upload" + bucket: "my-bucket" + name: "path/to/file" + +# Correct +- id: upload_to_gcs + type: "io.kestra.plugin.gcp.gcs.Upload" + to: "gs://my-bucket/path/to/file" +``` + +**BigQuery LoadFromGcs** — split `projectId`/`dataset`/`table` vs. the real `destinationTable`: + +```yaml +# Incorrect (pseudo-split properties) +- id: load_to_bq + type: "io.kestra.plugin.gcp.bigquery.LoadFromGcs" + projectId: "my-project" + dataset: "my_dataset" + table: "my_table" + +# Correct +- id: load_to_bq + type: "io.kestra.plugin.gcp.bigquery.LoadFromGcs" + destinationTable: "my-project.my_dataset.my_table" +``` + +To avoid this: + +- Cross-check generated YAML against the official plugin docs: https://kestra.io/plugins/plugin-gcp +- Use Kestra's built-in AI Copilot, which is grounded in the current plugin schema for your running version. +- Validate and test your YAML in your Kestra environment to ensure it parses and runs as expected. + +Note that plugin properties can vary by plugin version; what's correct in one release may be invalid in another. If you share a snippet, we can help verify it against the docs.