Skip to content

Conversation

amotl
Copy link
Member

@amotl amotl commented Sep 14, 2025

About

Continue adding tutorials from the community forum.

Preview

References

Trivia

@coderabbitai: Please review and convert to active voice.

Copy link

coderabbitai bot commented Sep 14, 2025

Warning

Rate limit exceeded

@amotl has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 14 minutes and 53 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between e837707 and a0d51b7.

📒 Files selected for processing (1)
  • docs/integrate/kestra/tutorial.md (1 hunks)

Walkthrough

Introduces a new Kestra–CrateDB tutorial page and updates the Kestra integration index to use an internal cross-reference and a hidden toctree entry linking to the tutorial.

Changes

Cohort / File(s) Summary
Kestra docs navigation updates
docs/integrate/kestra/index.md
Renamed tutorial link label, switched external URL to internal ref (kestra-tutorial), and added a hidden toctree with maxdepth 1 including “Tutorial ”.
New Kestra–CrateDB tutorial
docs/integrate/kestra/tutorial.md
Added a detailed tutorial covering running Kestra (Docker), setting up CrateDB Cloud, importing NYC taxi data, and a Kestra Flow example moving data between two CrateDB clusters using Query and Batch tasks.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    actor U as User
    participant UI as Kestra UI
    participant FE as Kestra Flow Engine
    participant A as CrateDB Cluster A
    participant B as CrateDB Cluster B

    U->>UI: Start "CrateDB transfer" Flow
    UI->>FE: Execute Flow
    rect rgba(215,235,255,0.5)
    note over FE,A: Task 1: Query (store: true)
    FE->>A: SELECT ... FROM nyc_taxi
    A-->>FE: Result set (stored as output)
    end

    rect rgba(220,255,220,0.5)
    note over FE,B: Task 2: Batch insert using prior output
    FE->>B: INSERT ... VALUES (from Task 1 output)
    B-->>FE: Insert ack
    end

    rect rgba(255,240,200,0.5)
    note over FE,B: Task 3: Final verification query
    FE->>B: SELECT COUNT(*) ...
    B-->>FE: Query result
    end

    FE-->>UI: Logs, outputs, status
    UI-->>U: Display run details and results
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested labels

new content, cross linking

Suggested reviewers

  • bmunkholm
  • kneth
  • hammerhead

Poem

A hare with a map of docs so bright,
Linked a trail from index to the light.
Docker hums, Flows hop on cue,
Data leaps from A to B—who knew?
With crates of rows and logs in sight,
I thump “Ship it!” into the night. 🐇📦✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The title "Kestra: Starter tutorial" succinctly and accurately describes the primary change — adding a starter Kestra tutorial and related docs updates — and is concise and clear enough for teammates scanning the history.
Description Check ✅ Passed The PR description states the purpose (adding community tutorials), provides a preview link and an issue reference, and is directly related to the documentation changes in this changeset.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@amotl amotl marked this pull request as ready for review September 17, 2025 20:46
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (9)
docs/integrate/kestra/tutorial.md (9)

4-4: Use https and tighten wording (active voice).

Apply:

-[Kestra.io](http://kestra.io/) is an open-source workflow automation and orchestration tool that enables users to automate and manage complex workflows in a streamlined and efficient manner. The tool provides a wide range of features and integrations, including Postgres, Git, Docker, Kubernetes, and more, making automating processes across different platforms and environments easy. Kestra comes with a user-friendly web-based interface, allowing users to create, modify, and manage workflows ***without the need for any coding skills***.
+[Kestra.io](https://kestra.io/) is an open‑source workflow automation and orchestration tool that helps you automate and manage complex workflows efficiently. It integrates with Postgres, Git, Docker, Kubernetes, and more. Kestra’s web UI lets you create, modify, and manage workflows without writing code.

10-15: Convert inline command to fenced code block with language.

Fixes MD038/MD040 and improves readability.

Apply:

-`docker run -d -p 8080:8080 kestra/kestra:latest `
+```bash
+docker run -d -p 8080:8080 kestra/kestra:latest
+```

69-80: Add code fence language and avoid embedding secrets.

Declare as YAML and reference a secret for the password.

Apply:

-```
+```yaml
 id: cratedb-kestra
 namespace: io.kestra.crate
 tasks:
 - id: query
   type: io.kestra.plugin.jdbc.postgresql.Query
   url: jdbc:postgresql://cratedb-kestra.aks1.westeurope.azure.cratedb.net:5432/
   username: admin
-  password: my_super_secret_password
+  password: "{{ secret('CRATEDB_PASSWORD') }}"
   sql: SELECT * FROM doc.nyc_taxi LIMIT 1000
   store: true

---

`83-83`: **Grammar nit.**

Apply:

```diff
-In this task, we set the `store` parameter is set to `true` to allow storing the results that will be used as input in the following task.
+In this task, we set the `store` parameter to `true` to store results for the next task.

91-100: Add YAML language and use secrets for credentials.

Apply:

-```
+```yaml
 - id: update
   type: io.kestra.plugin.jdbc.postgresql.Batch
   from: "{{ outputs.query.uri }}"
   url: jdbc:postgresql://cratedb-kestra2.aks1.eastus2.azure.cratedb.net:5432/
   username: admin
-  password: my_super_secret_password
+  password: "{{ secret('CRATEDB_PASSWORD') }}"
   sql: |
     INSERT INTO doc.nyc_taxi VALUES( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )

---

`108-116`: **Add YAML language for the third snippet.**

Apply:

```diff
-```
+```yaml
 - id: select
   type: io.kestra.plugin.jdbc.postgresql.Query
   url: jdbc:postgresql://kestra-testing-cluster2.aks1.eastus2.azure.cratedb.net:5432/
   username: admin
   password: my_super_secret_password
   sql: SELECT MAX_BY(passenger_count, fare_amount) FROM doc.nyc_taxi
   store: false

---

`21-21`: **Avoid time‑sensitive promo amounts.**

Either qualify with a date or generalize to “free trial credit.”

Apply:

```diff
-To deploy a new cluster on CrateDB Cloud, you need to sign up for a [CrateDB Cloud account](https://console.cratedb.cloud/). When creating a new organization, you are entitled to a [$200 free credit](https://crate.io/lp-free-trial) to spend on cluster deployment, scaling, and other operations as you see fit. Once you've signed up, you can create a new cluster by selecting the *Create Cluster* button and choosing your preferred cloud provider and region. You can then configure your cluster by selecting the number of nodes and the amount of storage you need. In this example, we used the 1-node cluster with 4GiB of storage which is enough for development environments and low-traffic applications.
+To deploy a new cluster on CrateDB Cloud, sign up for a [CrateDB Cloud account](https://console.cratedb.cloud/). New organizations receive a free trial credit (as of September 2025) for cluster deployment, scaling, and other operations. After signing up, create a cluster by selecting *Create Cluster* and choosing your preferred cloud provider and region. In this example, we use a 1‑node cluster with 4 GiB of storage, sufficient for development and low‑traffic applications.

16-16: Improve image alt text (a11y) and sizing.

The Discourse export alt text is non‑descriptive. Use meaningful alt and explicit size attributes.

Apply (and mirror for similar images at Lines 23, 124, 131):

-![57c8376e-02ff-4e10-89e7-9fc358153409|690x290](https://us1.discourse-cdn.com/flex020/uploads/crate/original/1X/80c3eb1bbc2de07a343bc56b1a5db24cf0569df7.png)
+![Kestra UI home screen](https://us1.discourse-cdn.com/flex020/uploads/crate/original/1X/80c3eb1bbc2de07a343bc56b1a5db24cf0569df7.png){width=690px height=290px}

136-136: Use https and tighten wrap‑up sentence (active voice).

Apply:

-If you need to automatically manage CrateDB data pipelines, [kestra.io](http://kestra.io/) can be a good choice. It allows you to specify workflows without requiring coding skills. Furthermore, it supports integrations with various systems including Postgres (and CrateDB), Kubernetes, Docker, Git, and many others.
+If you need to automatically manage CrateDB data pipelines, [kestra.io](https://kestra.io/) is a good choice. It lets you define workflows without writing code and integrates with Postgres (and CrateDB), Kubernetes, Docker, Git, and more.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ef39a67 and e837707.

📒 Files selected for processing (2)
  • docs/integrate/kestra/index.md (2 hunks)
  • docs/integrate/kestra/tutorial.md (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: amotl
PR: crate/cratedb-guide#263
File: docs/integrate/kafka/docker-python.md:112-120
Timestamp: 2025-08-22T18:11:12.776Z
Learning: In documentation and tutorial repositories like cratedb-guide, code examples should prioritize simplicity, clarity, and educational value over production-ready features. Comprehensive error handling, extensive validation, and other production concerns can distract from the main learning objectives and make examples harder to follow. Review suggestions should focus on correctness and clarity rather than production hardening.
Learnt from: amotl
PR: crate/cratedb-guide#204
File: docs/integrate/mcp/community.md:8-20
Timestamp: 2025-05-18T12:50:38.681Z
Learning: In the CrateDB guide repository, references with the `ctk:` prefix (like `ctk:query/mcp/landscape`) are intersphinx references that link to resources in the cratedb-toolkit repository (https://github.com/crate/cratedb-toolkit/tree/main/doc), which are rendered at https://cratedb-toolkit.readthedocs.io/. These are valid cross-references between separate Sphinx documentation sets, not local file references.
Learnt from: amotl
PR: crate/cratedb-guide#204
File: docs/integrate/mcp/community.md:22-33
Timestamp: 2025-05-18T12:50:36.393Z
Learning: In the CrateDB Guide repository, the prefix `ctk:` in documentation links (like `ctk:query/mcp/server`) is an intersphinx reference that points to external content in the CrateDB Toolkit documentation at https://cratedb-toolkit.readthedocs.io/. These references are intentionally not pointing to local files within the repository.
Learnt from: amotl
PR: crate/cratedb-guide#235
File: docs/start/going-further.md:20-38
Timestamp: 2025-08-23T04:22:52.597Z
Learning: In the CrateDB Guide repository, the prefix `crate-reference:` in documentation links (like `crate-reference:index`) is an intersphinx reference that points to external content in the CrateDB Reference Manual documentation. These references are intentionally not pointing to local files within the repository.
📚 Learning: 2025-05-18T12:50:38.681Z
Learnt from: amotl
PR: crate/cratedb-guide#204
File: docs/integrate/mcp/community.md:8-20
Timestamp: 2025-05-18T12:50:38.681Z
Learning: In the CrateDB guide repository, references with the `ctk:` prefix (like `ctk:query/mcp/landscape`) are intersphinx references that link to resources in the cratedb-toolkit repository (https://github.com/crate/cratedb-toolkit/tree/main/doc), which are rendered at https://cratedb-toolkit.readthedocs.io/. These are valid cross-references between separate Sphinx documentation sets, not local file references.

Applied to files:

  • docs/integrate/kestra/index.md
📚 Learning: 2025-05-18T12:50:36.393Z
Learnt from: amotl
PR: crate/cratedb-guide#204
File: docs/integrate/mcp/community.md:22-33
Timestamp: 2025-05-18T12:50:36.393Z
Learning: In the CrateDB Guide repository, the prefix `ctk:` in documentation links (like `ctk:query/mcp/server`) is an intersphinx reference that points to external content in the CrateDB Toolkit documentation at https://cratedb-toolkit.readthedocs.io/. These references are intentionally not pointing to local files within the repository.

Applied to files:

  • docs/integrate/kestra/index.md
🪛 markdownlint-cli2 (0.17.2)
docs/integrate/kestra/tutorial.md

12-12: Spaces inside code span elements

(MD038, no-space-in-code)


69-69: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


91-91: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


108-108: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Build docs
🔇 Additional comments (3)
docs/integrate/kestra/index.md (2)

39-41: Cross‑ref looks correct; nice switch to internal link.

Label (kestra-tutorial)= exists in tutorial.md, so :link-type: ref to kestra-tutorial should resolve.

Please confirm the docs build and linkcheck pass for this ref.


54-58: Hidden toctree is appropriate.

Including tutorial via a hidden toctree keeps it in nav without duplicating visible content. LGTM.

docs/integrate/kestra/tutorial.md (1)

69-69: Add fenced code languages to satisfy markdownlint MD040.

You already did for SQL; add yaml to these three blocks.

Run markdownlint locally to confirm no remaining MD038/MD040 hits.

Also applies to: 91-91, 108-108

@amotl amotl added the refactoring Changing shape or layout, or moving content around. label Sep 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactoring Changing shape or layout, or moving content around.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants