docs: document six recently-shipped customer-facing changes - #11541
docs: document six recently-shipped customer-facing changes#11541keydunov wants to merge 1 commit into
Conversation
…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
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
|
Claude finished @keydunov's task in 1m 55s —— View job Review: docs for six shipped changesDocs-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 checklistChecklist
What's good
Medium
Low
One more, not postable inline
Not applicableSecurity, 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 |
|
|
||
| ## Options | ||
|
|
||
| These options appear once a **Split by** dimension is chosen. |
There was a problem hiding this comment.
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.
| These options appear once a **Split by** dimension is chosen. | |
| These options appear once a **First dimension** is chosen. |
| - **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 |
There was a problem hiding this comment.
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:
| - **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. |
| ### 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. | ||
|
|
There was a problem hiding this comment.
Two things about this block (it's duplicated verbatim in presto.mdx and aws-athena.mdx, so the same applies there):
-
Placement.
## Pre-Aggregation Feature Supportis the section listing which pre-agg features the driver supports (count_distinct_approx). The time-zone conversion fix applies to any query with aDATE-typed time dimension, not just pre-aggregations — the pre-agg rebuild is a side effect. A## Time zonestop-level section (or a note near the driver's setup/environment section) targets it better. -
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.:
| ### 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.)
| ## 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. |
There was a problem hiding this comment.
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."
| ### 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; |
There was a problem hiding this comment.
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.
Check List
Description of Changes Made
Routine audit of recent commits in
cube-js/cubeandcubedevinc/cubejs-enterpriseagainstdocs-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:::regtype/::regtype[]casts (feat(cubesql): Supportregtypeandregtype[]casts #11503), needed by Postgres-compatible BI tools that introspect column types viapg_catalog.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).chat) now accepts an optionaldeploymentIdoverride; documented the two exceptions (listDeployments,loadQueryResults) and the chat/visualize resume behavior.Each item was verified against its actual diff (not just the commit subject) before writing.
Generated by Claude Code