Skip to content

Conversation

amotl
Copy link
Member

@amotl amotl commented Aug 6, 2025

Copy link

coderabbitai bot commented Aug 6, 2025

Walkthrough

Adds new QueryZen integration documentation, links it into the integrations index, and updates the framework topic page to reference and tag QueryZen while removing an external example link. All changes are documentation-only; no code or public API changes.

Changes

Cohort / File(s) Summary
QueryZen docs addition
docs/integrate/queryzen/index.md
New documentation page describing QueryZen: concept of a "Zen", features, components, synopsis with a Python usage snippet, image and resource links.
Integrations index update
docs/integrate/index.md
Adds queryzen/index to the integrations toctree (inserted after pyviz/index).
Framework topic updates
docs/topic/framework/index.md
Removes an external example link, adds QueryZen to framework tags, and inserts a reference to the new QueryZen docs in the references section.

Sequence Diagram(s)

(omitted — changes are documentation-only and do not modify control flow)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Suggested reviewers

  • surister
  • karynzv
  • hammerhead

Poem

A rabbit typed by lanterns' glow,
I hopped through docs where new seeds grow.
QueryZen planted, tidy and bright,
Indexes aligned in gentle light.
Carrots for readers — nibble delight! 🥕🐇

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch queryzen

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

‼️ IMPORTANT
Auto-reply has been disabled for this repository in the CodeRabbit settings. The CodeRabbit bot will not respond to your replies unless it is explicitly tagged.

  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

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: 1

🧹 Nitpick comments (3)
docs/integrate/framework.md (1)

32-32: Add matching tag-info badge for QueryZen to keep UX consistent

The framework has been added to the toctree, but the tag-info badges up in Line 20 don’t yet mention QueryZen. Readers scanning the cards rely on those badges for quick discovery; please add a {tag-info}\QueryZen`` entry when you touch that section next.

docs/integrate/queryzen/index.md (2)

7-13: Unify spelling of “parameterized/parametrized” for consistency

Three different variants occur (parametrized, parameterized, parametrize). Pick one – the CrateDB docs usually use “parameterized / parameterize”.

-[QueryZen] makes it easier to manage parametrized, named, and versioned SQL
+[QueryZen] makes it easier to manage parameterized, named, and versioned SQL
@@
-A `Zen` in QueryZen jargon is a named, parameterized and versioned SQL query
+A `Zen` in QueryZen jargon is a named, parameterized and versioned SQL query
@@
-* Automatically version queries, name and safely parametrize queries with special functions.
+* Automatically version queries, name and safely parameterize queries with special functions.

68-69: Fix markdown-lint violations: bullet style & bare URLs

The final list trips MD004 (asterisk style) and MD034 (bare URL).
Use * and inline links:

-* Package: https://pypi.org/project/queryzen/
-* Repository: https://github.com/surister/queryzen
+* [Package](https://pypi.org/project/queryzen/)
+* [Repository](https://github.com/surister/queryzen)
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5450da9 and 3a58c5f.

📒 Files selected for processing (2)
  • docs/integrate/framework.md (1 hunks)
  • docs/integrate/queryzen/index.md (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
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.
📚 Learning: in the cratedb guide repository, references with the `ctk:` prefix (like `ctk:query/mcp/landscape`) ...
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/framework.md
📚 Learning: in the cratedb guide repository, the prefix `ctk:` in documentation links (like `ctk:query/mcp/serve...
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/framework.md
🪛 LanguageTool
docs/integrate/queryzen/index.md

[uncategorized] ~10-~10: Do not mix variants of the same word (‘parameterize’ and ‘parametrize’) within a single text.
Context: ... A Zen in QueryZen jargon is a named, parameterized and versioned SQL query that is created...

(EN_WORD_COHERENCY)

🪛 markdownlint-cli2 (0.17.2)
docs/integrate/queryzen/index.md

15-15: Images should have alternate text (alt text)

(MD045, no-alt-text)


68-68: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


68-68: Bare URL used

(MD034, no-bare-urls)


69-69: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


69-69: Bare URL used

(MD034, no-bare-urls)

⏰ 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

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

♻️ Duplicate comments (1)
docs/integrate/queryzen/index.md (1)

14-14: Missing alt-text breaks accessibility tooling
This exact issue was raised in the prior review and is still unresolved. Please add a concise alt attribute so screen-reader users aren’t left out.

-![](https://github.com/surister/queryzen/raw/master/queryzen-docs/docs/concepts/img.png){w=700px}
+![Concept diagram showing QueryZen components](https://github.com/surister/queryzen/raw/master/queryzen-docs/docs/concepts/img.png){w=700px}
🧹 Nitpick comments (2)
docs/integrate/queryzen/index.md (2)

67-69: Inconsistent bullet style violates markdown-lint rule MD004
The rest of the document uses * for unordered lists; switch the dashes to asterisks for consistency and to silence the linter.

- - [Client Package](https://pypi.org/project/queryzen/)
- - [Server OCI](https://hub.docker.com/r/surister/queryzen_api)
- - [Source Repository](https://github.com/surister/queryzen)
+* [Client Package](https://pypi.org/project/queryzen/)
+* [Server OCI](https://hub.docker.com/r/surister/queryzen_api)
+* [Source Repository](https://github.com/surister/queryzen)

9-12: Minor grammar – sentence fragment
Lines 11-12 form a fragment. Consider merging for clarity:

-decouple SQL from your application. Controlling, versioning and securing your
-data access from development to production.
+decouple SQL from your application while controlling, versioning, and securing
+data access from development to production.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3a58c5f and 4d3e57a.

📒 Files selected for processing (2)
  • docs/integrate/framework.md (2 hunks)
  • docs/integrate/queryzen/index.md (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • docs/integrate/framework.md
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
docs/integrate/queryzen/index.md

14-14: Images should have alternate text (alt text)

(MD045, no-alt-text)


67-67: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


68-68: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


69-69: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)

🔇 Additional comments (1)
docs/integrate/queryzen/index.md (1)

51-51: Non-standard SQL operator == may confuse readers
Standard SQL uses = for equality; == could mislead newcomers. If this is intentional (e.g., QueryZen transpiles it), add a short note; otherwise change to =.

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

♻️ Duplicate comments (1)
docs/integrate/queryzen/index.md (1)

14-14: Add descriptive alt-text to the image for accessibility
Screen-reader users rely on alt-text; MD045 also flags this.

🧹 Nitpick comments (2)
docs/integrate/queryzen/index.md (2)

67-69: Use consistent bullet style (*) across the document
The rest of the page uses asterisks. Unifying list markers avoids markdown-lint MD004 warnings and keeps styling consistent.

-* [Client Package](https://pypi.org/project/queryzen/)
-* [Server OCI](https://hub.docker.com/r/surister/queryzen_api)
-* [Source Repository](https://github.com/surister/queryzen)
+* [Client Package](https://pypi.org/project/queryzen/)
+* [Server OCI](https://hub.docker.com/r/surister/queryzen_api)
+* [Source Repository](https://github.com/surister/queryzen)

51-51: Correct SQL equality operator in the example query
Standard SQL uses = rather than ==; keeping examples syntactically valid prevents copy-paste confusion.

-qz.create("mountains", query="SELECT * FROM sys.summits WHERE country == :country AND height > :height")
+qz.create("mountains", query="SELECT * FROM sys.summits WHERE country = :country AND height > :height")

Ensure QueryZen actually accepts standard SQL here or clarify in a note if == is intentional.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4d3e57a and 68c6cf7.

📒 Files selected for processing (2)
  • docs/integrate/framework.md (2 hunks)
  • docs/integrate/queryzen/index.md (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • docs/integrate/framework.md
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
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.
🪛 markdownlint-cli2 (0.17.2)
docs/integrate/queryzen/index.md

14-14: Images should have alternate text (alt text)

(MD045, no-alt-text)


67-67: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


68-68: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


69-69: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)

@amotl amotl marked this pull request as ready for review August 6, 2025 21:16
* Monitor individual query executions and analyze metrics.
* Version your SQL queries, build and test queries without affecting production.
* Create materialized views for SQL databases that do not support them.

Copy link
Member Author

@amotl amotl Aug 6, 2025

Choose a reason for hiding this comment

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

Maybe add a rubric (subsection) about "Install" matters before the "Synopsis" subsection here, with concise incantation examples for both the server via docker or podman and the client via uv?

Comment on lines 64 to 70
:::{rubric} Resources
:::

- [Client Package](https://pypi.org/project/queryzen/)
- [Server OCI](https://hub.docker.com/r/surister/queryzen_api)
- [Source Repository](https://github.com/surister/queryzen)
Copy link
Member Author

Choose a reason for hiding this comment

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

Documentation is at https://qz.surister.dev/. Thanks, @surister!

@amotl amotl requested a review from karynzv August 7, 2025 20:04
@amotl amotl added the new content New content being added. label Aug 8, 2025
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

♻️ Duplicate comments (3)
docs/integrate/queryzen/index.md (3)

14-14: Add alt text (MD045), prefer width attribute, and consider pinning/local asset

The image lacks alt text and uses a non-standard {w=...} attribute. Use {width=...} for MyST/Sphinx; also consider pinning to a commit or hosting locally to avoid hotlink/branch drift.

-![](https://github.com/surister/queryzen/raw/master/queryzen-docs/docs/concepts/img.png){w=700px}
+![Concept diagram showing QueryZen components](https://github.com/surister/queryzen/raw/master/queryzen-docs/docs/concepts/img.png){width=700px}

Notes:

  • Lint: MD045 (no-alt-text).
  • Optional: Replace the GitHub raw link with a local/static asset or a commit-pinned URL to ensure stability.

67-70: Fix list style to asterisks (MD004) and add official documentation link

Align with earlier lists (asterisks) and include the official docs URL.

-- [Client Package](https://pypi.org/project/queryzen/)
-- [Server OCI](https://hub.docker.com/r/surister/queryzen_api)
-- [Source Repository](https://github.com/surister/queryzen)
+* [Documentation](https://qz.surister.dev/)
+* [Client Package](https://pypi.org/project/queryzen/)
+* [Server OCI](https://hub.docker.com/r/surister/queryzen_api)
+* [Source Repository](https://github.com/surister/queryzen)

Lint: MD004 (unordered list style).


42-44: Add an “Install” rubric before “Synopsis” with server and client setup

Matches prior suggestion: add concise incantations for server (docker/podman) and client (uv).

+:::{rubric} Install
+:::
+
+Server (Docker/Podman):
+
+```bash
+# Docker
+docker run --rm -p 8000:8000 surister/queryzen_api:latest
+# Podman
+podman run --rm -p 8000:8000 surister/queryzen_api:latest
+```
+
+Client (uv or pip):
+
+```bash
+# Using uv
+uv pip install queryzen
+# Or with pip
+pip install queryzen
+```
+
 :::{rubric} Synopsis
 :::

Note: Please verify the exposed port for the server image (8000 assumed here).

🧹 Nitpick comments (1)
docs/integrate/queryzen/index.md (1)

21-21: Minor editorial consistency: REST capitalization, lifecycle wording, and casing

Small clarity/consistency tweaks.

-* Create, get and delete Zens in different collections and run them in different Databases.
+* Create, get and delete Zens in different collections and run them in different databases.
@@
-* High level of Coverage and Tests.
+* High test coverage.
@@
-* HTTP REST backend to handle the lifetime of Zens.
+* HTTP REST backend to handle the lifecycle of Zens.
@@
-* Quickly create HTTP Rest endpoints of your SQL data.
+* Quickly create HTTP REST endpoints of your SQL data.

Also applies to: 23-23, 29-29, 36-36

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 68c6cf7 and 99acaff.

📒 Files selected for processing (2)
  • docs/integrate/framework.md (2 hunks)
  • docs/integrate/queryzen/index.md (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/integrate/framework.md
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
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.
🪛 markdownlint-cli2 (0.17.2)
docs/integrate/queryzen/index.md

14-14: Images should have alternate text (alt text)

(MD045, no-alt-text)


67-67: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


68-68: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


69-69: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)

🔇 Additional comments (1)
docs/integrate/queryzen/index.md (1)

50-61: Collection and parameters mismatch in QueryZen example

The snippet creates a Zen in the default “main” collection but then retrieves it from “production,” and it never supplies values for the :country and :height placeholders. Suggested updates:

• In docs/integrate/queryzen/index.md, change:

- zen = qz.get("mountains", collection="production")
+ zen = qz.get("mountains", collection="main")

• Supply the placeholder values when running the Zen (confirm the exact argument name with the Python client API):

- result = qz.run(zen)
+ result = qz.run(zen, params={"country": "CH", "height": 2000})

Please verify the correct parameter name (params vs. parameters vs. args) against the QueryZen Python client reference and update the example or link to the API docs.

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: 1

♻️ Duplicate comments (1)
docs/integrate/queryzen/index.md (1)

14-14: Add alt text to the image for accessibility (and fix markdownlint MD045)

Provide a concise alt description.

-![](https://github.com/surister/queryzen/raw/master/queryzen-docs/docs/concepts/img.png){w=700px}
+![Concept diagram showing QueryZen components](https://github.com/surister/queryzen/raw/master/queryzen-docs/docs/concepts/img.png){w=700px}
🧹 Nitpick comments (4)
docs/topic/framework/index.md (1)

20-20: Trailing whitespace after the last tag

Remove the trailing space after {tag-info}Streamlit`` to keep diffs clean and satisfy linters.

-{tag-info}`dbt` {tag-info}`dlt` {tag-info}`Flink` {tag-info}`Gradio` {tag-info}`Graphene` {tag-info}`MCP` {tag-info}`QueryZen` {tag-info}`records` {tag-info}`Streamlit` 
+{tag-info}`dbt` {tag-info}`dlt` {tag-info}`Flink` {tag-info}`Gradio` {tag-info}`Graphene` {tag-info}`MCP` {tag-info}`QueryZen` {tag-info}`records` {tag-info}`Streamlit`
docs/integrate/queryzen/index.md (3)

14-14: Avoid hotlinking external images

Consider vendoring this image into the repo (e.g., under docs/_static/queryzen/) and referencing it relatively to prevent breakage if the upstream URL changes and to improve build reliability.


9-12: Minor grammar: Oxford comma for parallel verbs

Use consistent comma style in lists of three+ items.

-A `Zen` in QueryZen jargon is a named, parameterized and versioned SQL query
-that is created, updated and executed over HTTP endpoints.
+A `Zen` in QueryZen jargon is a named, parameterized, and versioned SQL query
+that is created, updated, and executed over HTTP endpoints.

42-64: Consider adding a brief “Install” rubric before Synopsis

A short install section helps users get started quickly with both server and client.

Proposed content to add before “Synopsis”:

:::{rubric} Install
:::

Server (Docker/Podman):

```bash
docker run --rm -p 8080:8080 ghcr.io/surister/queryzen_api:latest
# or
podman run --rm -p 8080:8080 ghcr.io/surister/queryzen_api:latest

Client (Python):

# with uv
uv add queryzen
# or with pip
pip install queryzen

Happy to submit this as a follow-up commit if you’d like.

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

**💡 Knowledge Base configuration:**

- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 99acaffa6533fba2fc8dc93bab363a37068669c6 and 1076ff410ecd60ecda2604ac77673f145afd7555.

</details>

<details>
<summary>📒 Files selected for processing (3)</summary>

* `docs/integrate/index.md` (1 hunks)
* `docs/integrate/queryzen/index.md` (1 hunks)
* `docs/topic/framework/index.md` (2 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 LanguageTool</summary>

<details>
<summary>docs/topic/framework/index.md</summary>

[grammar] ~20-~20: There might be a mistake here.
Context: ...ag-info}`records` {tag-info}`Streamlit`  ::::  :::::  - {ref}`django` - {ref}`gra...

(QB_NEW_EN)

</details>
<details>
<summary>docs/integrate/index.md</summary>

[grammar] ~58-~58: There might be a mistake here.
Context: ...metheus/index pyviz/index queryzen/index rill/index risingwave/index sql-server/i...

(QB_NEW_EN)

</details>
<details>
<summary>docs/integrate/queryzen/index.md</summary>

[grammar] ~1-~1: There might be a mistake here.
Context: (queryzen)= # QueryZen  :::{rubric} About :::  [QueryZ...

(QB_NEW_EN)

---

[grammar] ~4-~4: There might be a mistake here.
Context: ...queryzen)= # QueryZen  :::{rubric} About :::  [QueryZen] makes it easier to manag...

(QB_NEW_EN)

---

[grammar] ~9-~9: There might be a mistake here.
Context: ...d, parameterized and versioned SQL query that is created, updated and executed ov...

(QB_NEW_EN)

---

[grammar] ~10-~10: There might be a mistake here.
Context: ...ed over HTTP endpoints. It allows you to decouple SQL from your application while...

(QB_NEW_EN)

---

[grammar] ~11-~11: There might be a mistake here.
Context: ...le controlling, versioning, and securing data access from development to producti...

(QB_NEW_EN)

---

[grammar] ~16-~16: There might be a mistake here.
Context: .../img.png){w=700px}  :::{rubric} Features :::  Overview:  * Create, get and delete...

(QB_NEW_EN)

---

[grammar] ~21-~21: There might be a mistake here.
Context: ...ons and run them in different databases. * Automatically version queries, name and ...

(QB_NEW_EN)

---

[grammar] ~24-~24: There might be a mistake here.
Context: ... of your queries over time and versions. * Everything is dockerized for easy develo...

(QB_NEW_EN)

---

[grammar] ~39-~39: There might be a mistake here.
Context: ...st queries without affecting production. * Create materialized views for SQL databa...

(QB_NEW_EN)

---

[grammar] ~64-~64: There might be a mistake here.
Context: ...t.as_table()) ```  :::{rubric} Resources :::  - [Documentation](https://qz.surist...

(QB_NEW_EN)

---

[grammar] ~67-~67: There might be a mistake here.
Context: ...{rubric} Resources :::  - [Documentation](https://qz.surister.dev/.) - [Client Package](https://pypi.org/project...

(QB_NEW_EN)

---

[grammar] ~68-~68: There might be a mistake here.
Context: ...s://qz.surister.dev/.) - [Client Package](https://pypi.org/project/queryzen/) - [Server OCI](https://hub.docker.com/r/sur...

(QB_NEW_EN)

---

[grammar] ~69-~69: There might be a mistake here.
Context: ...ypi.org/project/queryzen/) - [Server OCI](https://hub.docker.com/r/surister/queryzen_api) - [Source Repository](https://github.com/su...

(QB_NEW_EN)

</details>

</details>
<details>
<summary>🪛 markdownlint-cli2 (0.17.2)</summary>

<details>
<summary>docs/integrate/queryzen/index.md</summary>

14-14: Images should have alternate text (alt text)

(MD045, no-alt-text)

---

67-67: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)

---

68-68: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)

---

69-69: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)

---

70-70: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)

</details>

</details>

</details>

<details>
<summary>⏰ 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)</summary>

* GitHub Check: Build docs

</details>

<details>
<summary>🔇 Additional comments (5)</summary><blockquote>

<details>
<summary>docs/integrate/index.md (1)</summary>

`58-58`: **LGTM: Integration index correctly links QueryZen doc**

The toctree entry is well placed alphabetically after pyviz and before rill.

</details>
<details>
<summary>docs/topic/framework/index.md (3)</summary>

`20-20`: **Confirm intended casing for tag slug "QueryZen"**

Tag slugs in this list vary in casing (dbt/dlt vs Flink/Streamlit). If tags back-link to a taxonomy, ensure "QueryZen" matches the canonical slug used elsewhere (e.g., queryzen vs QueryZen) to avoid broken tag filters.

---

`29-29`: **LGTM: Reference to QueryZen works with the new label**

This will resolve as long as (queryzen)= is defined in the target doc (it is).

---

`20-20`: **Summary says the external example link was removed, but it’s still present**

The AI summary mentions removal of the cratedb-examples/framework link, yet Line 18 still shows it. If keeping it is intentional, all good; otherwise remove it to align with the summary.

</details>
<details>
<summary>docs/integrate/queryzen/index.md (1)</summary>

`51-51`: **Verify table name in example (sys.summits likely incorrect)**

CrateDB commonly uses doc.summits (not sys.summits) in examples. If no prior dataset creation is documented, this will confuse users.

```diff
-qz.create("mountains", query="SELECT * FROM sys.summits WHERE country = :country AND height > :height")
+qz.create("mountains", query="SELECT * FROM doc.summits WHERE country = :country AND height > :height")

If the example intentionally uses a different schema, add a brief note indicating how to create or reference that table.

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: 2

♻️ Duplicate comments (2)
docs/integrate/queryzen/index.md (2)

14-14: Add alt text to image for accessibility (MD045)

Alt text is missing. Add a concise description.

-![](https://github.com/surister/queryzen/raw/master/queryzen-docs/docs/concepts/img.png){w=700px}
+![Concept diagram showing QueryZen components](https://github.com/surister/queryzen/raw/master/queryzen-docs/docs/concepts/img.png){w=700px}

67-70: Fix Resources list style and trailing-dot URL (MD004)

Use asterisk bullets to match house style and remove the stray dot in the Documentation URL.

-- [Documentation](https://qz.surister.dev/.)
-- [Client Package](https://pypi.org/project/queryzen/)
-- [Server OCI](https://hub.docker.com/r/surister/queryzen_api)
-- [Source Repository](https://github.com/surister/queryzen)
+* [Documentation](https://qz.surister.dev/)
+* [Client Package](https://pypi.org/project/queryzen/)
+* [Server OCI](https://hub.docker.com/r/surister/queryzen_api)
+* [Source Repository](https://github.com/surister/queryzen)
🧹 Nitpick comments (2)
docs/topic/framework/index.md (1)

18-18: AI summary inconsistency: External examples link still present

The AI summary claims the external examples link was removed, but Line 18 still shows it. If the intent is to remove it, please delete the line; otherwise, the summary should be updated.

- - [cratedb-examples/framework](https://github.com/crate/cratedb-examples/tree/main/framework)
+<!-- Intentionally kept. Remove if duplicative with page content. -->
docs/integrate/queryzen/index.md (1)

42-44: Optional: Add an Install rubric before Synopsis

A short install section helps readers quickly try QueryZen (echoing prior reviewer suggestion).

-:::{rubric} Synopsis
+:::{rubric} Install
+:::
+
+Client (Python):
+
+```bash
+uvx pip install queryzen
+# or: pip install queryzen
+```
+
+Server (Docker/Podman):
+
+```bash
+docker run -p 8000:8000 ghcr.io/surister/queryzen:latest
+# or: podman run -p 8000:8000 ghcr.io/surister/queryzen:latest
+```
+
+:::{rubric} Synopsis
 :::

If you want, I can adapt the commands to match your existing docs style (e.g., use uv directly, pin versions, or reference Compose).

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 1076ff4 and 6760c68.

📒 Files selected for processing (3)
  • docs/integrate/index.md (1 hunks)
  • docs/integrate/queryzen/index.md (1 hunks)
  • docs/topic/framework/index.md (2 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/integrate/queryzen/index.md

[grammar] ~1-~1: There might be a mistake here.
Context: (queryzen)= # QueryZen :::{rubric} About ::: [QueryZ...

(QB_NEW_EN)


[grammar] ~4-~4: There might be a mistake here.
Context: ...queryzen)= # QueryZen :::{rubric} About ::: [QueryZen] makes it easier to manag...

(QB_NEW_EN)


[grammar] ~10-~10: There might be a mistake here.
Context: ...ed over HTTP endpoints. It allows you to decouple SQL from your application while...

(QB_NEW_EN)


[grammar] ~11-~11: There might be a mistake here.
Context: ...le controlling, versioning, and securing data access from development to producti...

(QB_NEW_EN)


[grammar] ~16-~16: There might be a mistake here.
Context: .../img.png){w=700px} :::{rubric} Features ::: Overview: * Create, get and delete...

(QB_NEW_EN)


[grammar] ~21-~21: There might be a mistake here.
Context: ...ons and run them in different databases. * Automatically version queries, name and ...

(QB_NEW_EN)


[grammar] ~24-~24: There might be a mistake here.
Context: ... of your queries over time and versions. * Everything is dockerized for easy develo...

(QB_NEW_EN)


[grammar] ~39-~39: There might be a mistake here.
Context: ...st queries without affecting production. * Create materialized views for SQL databa...

(QB_NEW_EN)


[grammar] ~64-~64: There might be a mistake here.
Context: ...t.as_table()) ``` :::{rubric} Resources ::: - [Documentation](https://qz.surist...

(QB_NEW_EN)


[grammar] ~67-~67: There might be a mistake here.
Context: ...{rubric} Resources ::: - Documentation - [Client Package](https://pypi.org/project...

(QB_NEW_EN)


[grammar] ~68-~68: There might be a mistake here.
Context: ...s://qz.surister.dev/.) - Client Package - [Server OCI](https://hub.docker.com/r/sur...

(QB_NEW_EN)


[grammar] ~69-~69: There might be a mistake here.
Context: ...ypi.org/project/queryzen/) - Server OCI - [Source Repository](https://github.com/su...

(QB_NEW_EN)

docs/integrate/index.md

[grammar] ~58-~58: There might be a mistake here.
Context: ...metheus/index pyviz/index queryzen/index rill/index risingwave/index sql-server/i...

(QB_NEW_EN)

docs/topic/framework/index.md

[grammar] ~20-~20: There might be a mistake here.
Context: ...tag-info}records {tag-info}Streamlit :::: ::::: - {ref}django - {ref}`gra...

(QB_NEW_EN)

🪛 markdownlint-cli2 (0.17.2)
docs/integrate/queryzen/index.md

14-14: Images should have alternate text (alt text)

(MD045, no-alt-text)


67-67: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


68-68: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


69-69: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


70-70: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)

⏰ 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/index.md (1)

58-58: LGTM: Added QueryZen to toctree in the right spot

The new entry integrates cleanly; placement after pyviz/index keeps the list alphabetical. No issues.

docs/topic/framework/index.md (2)

20-20: LGTM: Added QueryZen framework tag

Tagging QueryZen here matches the new integration page and improves discoverability.


29-29: LGTM: Added {ref}queryzen cross-reference

This will resolve to the new page anchor (queryzen)=. Looks correct.

Please confirm the docs build resolves this reference without warnings (Sphinx linkcheck/myst).

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

♻️ Duplicate comments (2)
docs/integrate/queryzen/index.md (2)

67-71: Fix Resources URL punctuation and align bullet style with repo lint (MD004).

  • Remove the trailing dot from the Documentation URL target to avoid 404.
  • Switch hyphen bullets to asterisks to match style used elsewhere on this page and satisfy MD004.
- - [Documentation](https://qz.surister.dev/.)
- - [Client Package](https://pypi.org/project/queryzen/)
- - [Server OCI](https://hub.docker.com/r/surister/queryzen_api)
- - [Source Repository](https://github.com/surister/queryzen)
+* [Documentation](https://qz.surister.dev/)
+* [Client Package](https://pypi.org/project/queryzen/)
+* [Server OCI](https://hub.docker.com/r/surister/queryzen_api)
+* [Source Repository](https://github.com/surister/queryzen)

14-14: Add descriptive alt text to the image (accessibility).

The image is missing alt text, which breaks accessibility tooling and fails MD045.

Apply this diff:

-![](https://github.com/surister/queryzen/raw/master/queryzen-docs/docs/concepts/img.png){w=700px}
+![Concept diagram showing QueryZen components](https://github.com/surister/queryzen/raw/master/queryzen-docs/docs/concepts/img.png){w=700px}
🧹 Nitpick comments (1)
docs/integrate/queryzen/index.md (1)

42-44: Consider adding a concise “Install” rubric before Synopsis (server + client).

A short install section would help readers get hands-on quickly (as suggested in discussion).

Proposed insertion (place before “Synopsis”):

+:::{rubric} Install
+:::
+
+Server (Docker/Podman):
+
+```bash
+# Docker
+docker run --rm -p 8000:8000 surister/queryzen_api:latest
+
+# Podman
+podman run --rm -p 8000:8000 docker.io/surister/queryzen_api:latest
+```
+
+Client (Python package via pip or uv):
+
+```bash
+# pip
+pip install queryzen
+
+# uv (project context)
+uv add queryzen
+```
+

I can adapt this to match your preferred container tags or include minimal config (e.g., pointing the server at CrateDB).

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 6760c68 and a1e1dd5.

📒 Files selected for processing (3)
  • docs/integrate/index.md (1 hunks)
  • docs/integrate/queryzen/index.md (1 hunks)
  • docs/topic/framework/index.md (2 hunks)
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-08-15T22:25:48.370Z
Learnt from: amotl
PR: crate/cratedb-guide#226
File: docs/integrate/queryzen/index.md:51-51
Timestamp: 2025-08-15T22:25:48.370Z
Learning: CrateDB provides a built-in `sys.summits` table that is suitable for demonstration purposes of any kind. This is a system table that can be used in examples and tutorials.

Applied to files:

  • docs/integrate/queryzen/index.md
📚 Learning: 2025-08-15T18:56:11.233Z
Learnt from: amotl
PR: crate/cratedb-guide#255
File: docs/integrate/influxdb/tutorial.md:120-123
Timestamp: 2025-08-15T18:56:11.233Z
Learning: In CrateDB integration tutorials, when using `ctk load table` with `--cluster-url="crate://userhost:port/schema/table"`, the verification query should reference the target schema.table combination specified in the cluster URL, not derive it from the source system's naming. For example, if loading from InfluxDB bucket/measurement `testdrive/demo` to CrateDB `doc/testdrive`, the verification query should be `SELECT * FROM doc.testdrive`.

Applied to files:

  • docs/integrate/queryzen/index.md
🪛 LanguageTool
docs/integrate/index.md

[grammar] ~58-~58: There might be a mistake here.
Context: ...metheus/index pyviz/index queryzen/index rill/index risingwave/index sql-server/i...

(QB_NEW_EN)

docs/integrate/queryzen/index.md

[grammar] ~1-~1: There might be a mistake here.
Context: (queryzen)= # QueryZen :::{rubric} About ::: [QueryZ...

(QB_NEW_EN)


[grammar] ~4-~4: There might be a mistake here.
Context: ...queryzen)= # QueryZen :::{rubric} About ::: [QueryZen] makes it easier to manag...

(QB_NEW_EN)


[grammar] ~10-~10: There might be a mistake here.
Context: ...ed over HTTP endpoints. It allows you to decouple SQL from your application while...

(QB_NEW_EN)


[grammar] ~11-~11: There might be a mistake here.
Context: ...le controlling, versioning, and securing data access from development to producti...

(QB_NEW_EN)


[grammar] ~16-~16: There might be a mistake here.
Context: .../img.png){w=700px} :::{rubric} Features ::: Overview: * Create, get and delete...

(QB_NEW_EN)


[grammar] ~21-~21: There might be a mistake here.
Context: ...ons and run them in different databases. * Automatically version queries, name and ...

(QB_NEW_EN)


[grammar] ~24-~24: There might be a mistake here.
Context: ... of your queries over time and versions. * Everything is dockerized for easy develo...

(QB_NEW_EN)


[grammar] ~39-~39: There might be a mistake here.
Context: ...st queries without affecting production. * Create materialized views for SQL databa...

(QB_NEW_EN)


[grammar] ~64-~64: There might be a mistake here.
Context: ...t.as_table()) ``` :::{rubric} Resources ::: - [Documentation](https://qz.surist...

(QB_NEW_EN)


[grammar] ~67-~67: There might be a mistake here.
Context: ...{rubric} Resources ::: - Documentation - [Client Package](https://pypi.org/project...

(QB_NEW_EN)


[grammar] ~68-~68: There might be a mistake here.
Context: ...s://qz.surister.dev/.) - Client Package - [Server OCI](https://hub.docker.com/r/sur...

(QB_NEW_EN)


[grammar] ~69-~69: There might be a mistake here.
Context: ...ypi.org/project/queryzen/) - Server OCI - [Source Repository](https://github.com/su...

(QB_NEW_EN)

docs/topic/framework/index.md

[grammar] ~20-~20: There might be a mistake here.
Context: ...tag-info}records {tag-info}Streamlit :::: ::::: - {ref}django - {ref}`gra...

(QB_NEW_EN)

⏰ 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 (4)
docs/integrate/queryzen/index.md (1)

51-55: Example looks consistent: correct table and collection use.

Good to see:

  • sys.summits is used (CrateDB’s built-in demo table, per maintainers’ guidance).
  • The get call uses collection="main", matching the default used at creation time.
docs/integrate/index.md (1)

58-58: Add QueryZen toctree entry looks good and keeps alphabetical order.

Placement after pyviz and before rill matches the existing ordering.

docs/topic/framework/index.md (2)

20-20: Tag taxonomy updated correctly to include QueryZen.

Adding {tag-info}QueryZen aligns the framework catalog with the new integration page.


25-31: Reference to {ref}queryzen is valid and resolves to the new anchor.

The page defines (queryzen)=, so this cross-reference should build cleanly.

@amotl amotl merged commit bb54283 into main Aug 15, 2025
3 checks passed
@amotl amotl deleted the queryzen branch August 15, 2025 22:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new content New content being added.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants