Skip to content

docs: document six recently-shipped customer-facing changes - #11541

Open
keydunov wants to merge 1 commit into
masterfrom
claude/gallant-ramanujan-3rv6i4
Open

docs: document six recently-shipped customer-facing changes#11541
keydunov wants to merge 1 commit into
masterfrom
claude/gallant-ramanujan-3rv6i4

Conversation

@keydunov

Copy link
Copy Markdown
Member

Check List

  • Docs have been added / updated if required
  • Tests have been run in packages where changes have been made if available
  • Linter has been run for changed code
  • Tests for the changes have been added if not covered yet

Description of Changes Made

Routine audit of recent commits in cube-js/cube and cubedevinc/cubejs-enterprise against docs-mintlify, filtered through the shared customer-facing criteria. Found and closed six documentation gaps for changes that had already shipped but weren't reflected in the docs:

  • SQL API — document ::regtype / ::regtype[] casts (feat(cubesql): Support regtype and regtype[] casts #11503), needed by Postgres-compatible BI tools that introspect column types via pg_catalog.
  • Snowflake driver — note that cancelling a query now actually aborts the statement on the Snowflake warehouse, not just Cube's wait for it (feat(snowflake-driver): Support query cancellation #11428).
  • Trino / Presto / Athena — note that DATE-typed time dimensions now convert correctly under a non-UTC time zone, and that existing pre-aggregations with a time dimension rebuild once automatically on upgrade (fix(schema-compiler): promote DATE columns in Trino/Presto convertTz #11516).
  • Small multiples — document the new second split-by dimension (row × column facet grid), replacing the now-incorrect "one split dimension" limitation.
  • MCP server — every tool (not just chat) now accepts an optional deploymentId override; documented the two exceptions (listDeployments, loadQueryResults) and the chat/visualize resume behavior.
  • Explore — viewers with read-only access to a shared exploration can now open it in a genuine view-only mode instead of being redirected away.

Each item was verified against its actual diff (not just the commit subject) before writing.


Generated by Claude Code

…z fix, small multiples second axis, MCP deploymentId scope, and Explore read-only viewing

Closes gaps between recently-shipped behavior and the docs:

- SQL API now supports `::regtype`/`::regtype[]` casts (#11503)
- Cancelling a query now aborts the statement on Snowflake itself (#11428)
- DATE-typed time dimensions now convert correctly to non-UTC time zones on
  Trino/Presto/Athena, with a one-time pre-aggregation rebuild on upgrade (#11516)
- Small multiples supports a second split-by dimension for a row x column grid
- Every MCP tool (not just `chat`) now accepts a `deploymentId` override
- Viewers with read-only access to a shared exploration can now open it in a
  genuine view-only mode instead of being redirected away
@mintlify

mintlify Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
cubed3 🟢 Ready View Preview Aug 13, 2026, 12:24 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@claude

claude Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Claude finished @keydunov's task in 1m 55s —— View job


Review: docs for six shipped changes

Docs-only PR, no code risk. Content is accurate where I could verify it — 0 high, 3 medium, 3 low, all editorial/consistency. 5 inline comments posted.

Full review — findings, verification notes, and checklist

Checklist

  • Read the PR diff against origin/master
  • Verified the new [ref-rest-api-cancel] anchor against rest-api/reference.mdx
  • Checked heading placement in each modified data-source page
  • Checked internal consistency of small-multiples.mdx after the rename
  • Checked for stale sibling text (docs.json nav, other pages referencing changed sections)
  • Posted inline comments

What's good

  • The Snowflake link target is correct: #base_path/v1/running-query/requestid matches the heading at rest-api/reference.mdx:470 and the anchor convention already used in dbt.mdx, jinja.mdx, and the orchestration-api pages. No new pages, so no docs.json change is needed — correct.
  • The MCP rewrite is a genuine improvement: the old "Three tools work together" framing became wrong the moment deploymentId went universal, and the chatId rejection behavior is exactly the kind of thing that belongs in docs and usually doesn't make it.
  • The small-multiples Limitations entry was correctly inverted rather than deleted — keeping the bound stated ("at most two") is more useful than silence.

Medium

  1. Stale control namesmall-multiples.mdx:24 still says "once a Split by dimension is chosen" after the picker was renamed to First dimension on line 16. (inline)
  2. mcp-server.mdx:197 overclaims, then retracts — "Every other tool accepts deploymentId" followed by a bullet excluding loadQueryResults. State the exception up front. (inline)
  3. ### Time zones placement — in trino/presto/aws-athena it sits under ## Pre-Aggregation Feature Support, which is the section about which pre-agg features the driver supports. The fix applies to any query with a DATE time dimension; the pre-agg rebuild is a consequence, not the scope. (inline)

Low

  1. Changelog voice in version-less docs — "is now handled correctly", "on upgrade", "not just Cube's wait for it" all reference a before-state the reader never saw, with no version to anchor to. Suggested present-tense phrasing plus a pinned-version <Info> for the rebuild note, since the automatic rebuild is the operationally relevant half. (folded into the two inline comments above)
  2. Snowflake ## Query cancellation position — wedged between the Prerequisites bullet list and ## Setup, interrupting the "what you need → how to connect" flow the other data-source pages share. (inline)
  3. SQL API example — bare SELECT over pg_attribute, no WHERE, unnamed boolean column; suggested a shape closer to real BI introspection. Also the only runnable snippet on a page that is otherwise support tables, so worth executing once against the SQL API before merge. (inline)

One more, not postable inline

small-multiples.mdx:45 ("How many panels are drawn") is outside this PR's diff so GitHub rejected the inline comment. It still reads single-dimension-only: "When a dimension has more values than the grid has tiles…". With a second dimension, truncation now happens per axis independently — the Grid table row you edited says as much, but this section doesn't. A clause like "With two dimensions, each axis truncates independently — columns to the grid's column count, rows to its row count" would close it.

Not applicable

Security, performance, and test-coverage review sections of the standard checklist don't apply — no executable code, no configuration, no dependency changes in this diff. I did not run the Mintlify dev server to check rendering; the MDX used here is plain markdown plus an existing-in-file <Info>, so rendering risk is low.

· branch `claude/gallant-ramanujan-3rv6i4`


## Options

These options appear once a **Split by** dimension is chosen.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The picker was renamed to First dimension on line 16, but this line still calls it Split by. A reader following the doc top-to-bottom will look for a control that no longer exists under that name.

Suggested change
These options appear once a **Split by** dimension is chosen.
These options appear once a **First dimension** is chosen.

Comment on lines +197 to +204
- **Every other tool** accepts an optional **`deploymentId`** parameter to target a
deployment other than the session default (the one resolved at connect time). `chat`
additionally accepts an optional **`agentId`** — when omitted or `null`, the target
deployment's **Auto** agent is used.
- **`loadQueryResults`** does not take a `deploymentId` — it always resumes a previous
query on the deployment that query already ran on.
- Resuming an existing chat (passing `chatId` to `chat` or `visualize`) always continues
on the deployment that conversation started on; passing a different `deploymentId` for

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The second bullet claims "Every other tool accepts an optional deploymentId", and the third bullet then walks it back for loadQueryResults. Stating the exception up front reads better and avoids a reader who stops after one bullet coming away with the wrong rule:

Suggested change
- **Every other tool** accepts an optional **`deploymentId`** parameter to target a
deployment other than the session default (the one resolved at connect time). `chat`
additionally accepts an optional **`agentId`** — when omitted or `null`, the target
deployment's **Auto** agent is used.
- **`loadQueryResults`** does not take a `deploymentId` — it always resumes a previous
query on the deployment that query already ran on.
- Resuming an existing chat (passing `chatId` to `chat` or `visualize`) always continues
on the deployment that conversation started on; passing a different `deploymentId` for
- **Every other tool except `loadQueryResults`** accepts an optional **`deploymentId`**
parameter to target a deployment other than the session default (the one resolved at
connect time). `chat` additionally accepts an optional **`agentId`** — when omitted or
`null`, the target deployment's **Auto** agent is used.
- **`loadQueryResults`** does not take a `deploymentId` — it always resumes a previous
query on the deployment that query already ran on.
- Resuming an existing chat (passing `chatId` to `chat` or `visualize`) always continues
on the deployment that conversation started on; passing a different `deploymentId` for
the same `chatId` is rejected rather than silently ignored.

Comment on lines +59 to +64
### Time zones

A `DATE`-typed time dimension converted to a non-UTC time zone is now handled
correctly. Existing pre-aggregations with a time dimension rebuild once
automatically on upgrade, since this change affects the generated SQL.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Two things about this block (it's duplicated verbatim in presto.mdx and aws-athena.mdx, so the same applies there):

  1. Placement. ## Pre-Aggregation Feature Support is the section listing which pre-agg features the driver supports (count_distinct_approx). The time-zone conversion fix applies to any query with a DATE-typed time dimension, not just pre-aggregations — the pre-agg rebuild is a side effect. A ## Time zones top-level section (or a note near the driver's setup/environment section) targets it better.

  2. Changelog voice. "is now handled correctly" and "on upgrade" are release-note framing in a version-less doc — six months from now a reader has no anchor for what "now" or "upgrade" refers to. Consider stating the behavior in the present tense and scoping the migration note explicitly, e.g.:

Suggested change
### Time zones
A `DATE`-typed time dimension converted to a non-UTC time zone is now handled
correctly. Existing pre-aggregations with a time dimension rebuild once
automatically on upgrade, since this change affects the generated SQL.
### Time zones
`DATE`-typed time dimensions are converted correctly when a non-UTC time zone is
requested.
<Info>
This was fixed in Cube v1.4.x. Because it changes the generated SQL, existing
pre-aggregations with a time dimension are rebuilt once automatically after the upgrade.
</Info>

(Substitute the actual release version — worth pinning, since the rebuild is the operationally relevant part.)

Comment on lines +37 to +42
## Query cancellation

Cancelling a query via the [`{base_path}/v1/running-query/{requestId}`][ref-rest-api-cancel]
endpoint aborts the statement on the Snowflake warehouse itself, not just
Cube's wait for it — so a cancelled query stops consuming warehouse compute
instead of continuing to run in the background.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This section lands between the Prerequisites bullet list and Setup, which breaks the "what you need → how to connect" flow every other data-source page follows. A runtime behavior note reads better after the connection material — e.g. right before ## SSL, or as a subsection of ## Environment Variables.

Also, "not just Cube's wait for it" is implicitly contrasting with prior behavior a new reader never saw. Straight present-tense description is enough here: "…aborts the statement on the Snowflake warehouse itself, so a cancelled query stops consuming warehouse compute."

Comment on lines +349 to +368
### Casts

<Info>

Learn more in the
[relevant section](https://www.postgresql.org/docs/current/datatype-oid.html)
of the PostgreSQL documentation.

</Info>

The SQL API supports `::regtype` and `::regtype[]` casts, including standard
type aliases (`int`, `int8`, `decimal`, `char`, `float`, etc.) and
`pg_catalog`-qualified type names. This lets Postgres-compatible BI tools that
introspect column types — for example, comparing `pg_attribute.atttypid`
against a `regtype[]` literal to classify a table's columns — connect to the
SQL API without erroring.

```sql
SELECT atttypid = ANY ('{int8,numeric,bool}'::regtype[])
FROM pg_catalog.pg_attribute;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nit on the example: it's a bare SELECT over pg_attribute with no WHERE and an unnamed boolean output column, so it demonstrates the cast syntax but isn't something a reader would run as-is. Something closer to the actual BI-tool introspection pattern would carry more:

SELECT attname, atttypid::regtype AS type_name
FROM pg_catalog.pg_attribute
WHERE atttypid = ANY ('{int8,numeric,bool}'::regtype[]);

Either way, worth pasting the final example through the SQL API once to confirm it executes — the surrounding sections in this file are all support tables rather than runnable snippets, so this is the one thing on the page that can go stale silently.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants