docs: document undocumented Cube Cloud features from cubejs-enterprise - #11893
Conversation
- MCP server: document the new manageFolders tool, and the six new branch/commit tools (getBranchState, commitDataModelChanges, commitToNewBranch, mergeToDefaultBranch, discardDataModelChanges, switchUserBranch) that let an MCP client commit, publish, and switch branches directly. Corrects the now-false "the MCP server deliberately exposes no commit tool" safety claim, and updates the tool count and destructive-tool list. - Excel/Sheets add-ins: document the new Row totals switch (mirrors Column totals), the new ability to organize saved explorations into folders from chat, and dragging an exploration onto the chat composer to attach it as context. Corrects the chat history section, which now syncs via a server-side Chat History list rather than staying local to the device. - Analytics Chat: note the agent can now organize saved work into folders. - Embed APIs: document the new POST /api/v1/embed/session/revoke endpoint for ending a signed-embed session from a logout handler. - Embedding feature visibility: allowExport now also governs CSV download from a workbook's report builder in Creator Mode, not just dashboard chart widgets. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SgxTVc54fPAf83scMmKHk7
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
|
Claude finished @keydunov's task in 3m 12s —— View job Docs-only PR, 6 inline findings — 1 medium (a safety claim that's now incomplete), 5 lowReview details
Findings
NotesThe features themselves live in No prior review threads on this PR. Structure is otherwise sound: the new anchors ( |
…h path commitDataModelChanges is not marked destructiveHint, yet a call with confirmPublishToDefaultBranch commits straight onto the deployment's default branch, live. The safety section previously named mergeToDefaultBranch as the only route to production, which understated what a client isn't guaranteed to prompt for. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SgxTVc54fPAf83scMmKHk7
Reviewing PR #11893
|
- Row totals: fix an enablement rule that read as requiring the measure specifically on Columns, when any measure plus a dimension on Columns is enough. - Sheets/Excel chat: match each product's own term for the workbook home surface (workbook's home vs. spreadsheet's home), rather than a generic "workbook list" neither UI uses. - MCP server: reuse "deploy branch," the term already used elsewhere on the page, instead of introducing a second name for the same branch; name the three sections a permission bullet was pointing at instead of "above and below." - Embed session revoke: note the 403 when embedding is disabled and that a deployment API token is a separate, unaffected credential; clarify why no ship date is given (continuous deployment, no customer-facing version number). - Feature visibility: allowExport grants CSV only in the Creator Mode report builder, not all three formats there. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SgxTVc54fPAf83scMmKHk7
Reviewing this docs PR
|
"Nothing that changes ... happens without an explicit approval" contradicted the safety section 100 lines down: commitDataModelChanges is annotated write, not destructive, yet can publish straight to the deploy branch. Scope the confirmation guarantee to the destructive list and point at the safety section for the write-tool exception. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SgxTVc54fPAf83scMmKHk7
Reviewing PR #11893
|
- MCP server: stop counting the commitDataModelChanges publish path
as one of the "five constraints" (it isn't enforced, only a prompt
convention) — move it to a Warning below the list instead, and
standardize on "Cube UI" (the term the page already used) over a
newly introduced "Cube console".
- Commit and publish a model edit: fix a mid-sentence pronoun switch
between the agent and the reader ("you"), and name the MCP session
explicitly where "the session" was ambiguous.
- Row totals: drop an unsupported claim about when a corner total
"can't be derived" — the grand-total query has no such gap in the
add-in's own code.
- Feature visibility: cut a redundant restatement in the allowExport
row.
- Embed session revoke: split a Note that mixed a durable scoping
fact with rollout commentary, and drop "Cube Cloud" (legacy naming
per docs-mintlify/CLAUDE.md) from newly added prose.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SgxTVc54fPAf83scMmKHk7
|
Claude finished @keydunov's task in 3m 46s —— View job 1 high, 1 medium, 2 low — the folder-deletion claim contradicts Full reviewChecklist
Findings
Verified clean
Worth notingThe No prior review threads existed on this PR, so nothing to resolve or dedupe. |
…carry it The previous fix still told the reader to group all three views by a field only Dashboard Usage carries, leaving a retraction in the parenthetical. Introducing each field separately with its real carriers removes the retraction entirely. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G8YvpPk7J3YisLW1Eeexru
Reviewing PR #11893
|
…ference section "Commit and publish a model edit" collided with "Committing and publishing changes" 115 lines up — same verb phrase, differing only by inflection, unlike every other reference/workflow section pair on the page (Dashboard authoring/Build a dashboard, Data model editing/Edit the data model, Pre-aggregations/Verify a pre-aggregation). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G8YvpPk7J3YisLW1Eeexru
|
Claude finished @vasilev-alex's task in 4m 53s —— View job Docs-only change; 1 medium, 1 low posted inline — no blockers. Review details
Findings
Verified, no finding
Observation
Review threadsThe unresolved-thread listing paged to the end and came back empty on every page — 0 threads opened by |
My previous edit's replacement boundary left a stray "Dashboard" and dropped "Engagement and" from the client-side-suppression sentence, which silently changed the claim to omit Dashboard Engagement from the views with no embed-tenant breakdown. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G8YvpPk7J3YisLW1Eeexru
Verified against DashboardExportsPublicController.resolveExportTarget in cubejs-enterprise: the both-ids/neither-id case throws BadRequestError (400) via custom controller logic, not the DTO validation layer; only the cross-deployment ownership mismatch throws EntityNotFoundError (404), matching the endpoint's own generated reference. Confirmed by DashboardExportsPublicController.spec.ts's dedicated test cases for both code paths. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G8YvpPk7J3YisLW1Eeexru
|
Claude finished @vasilev-alex's task in 6m 50s —— View job Reviewed — 0 blocking, 4 non-blocking (1 medium, 3 low). Verification-heavy pass: tool counts, anchors, and every new API claim cross-checked against Full review
Findings
Verified, no action needed
No new pages, so Review threadsThe unresolved-thread listing (3 pages) returned 0 threads authored by me — nothing to resolve, nothing to re-affirm. All four findings above are new. |
This security asymmetry (a per-deployment key can revoke sessions for any deployment) is the strongest statement on the page but sat as flat prose, next to Generate Session stating the opposite scope-checked rule two screens up. The page already wraps a lesser fact (the 10,000-user quota) in a Warning; this one deserves the same treatment. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G8YvpPk7J3YisLW1Eeexru
Reviewing PR #11893
|
"six mechanisms" already went stale twice across this PR's own review rounds (four then five then six) as the bullet list beneath it grew. The useful content is the server/client/yours split, which survives future bullet additions; the count doesn't. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G8YvpPk7J3YisLW1Eeexru
|
Claude finished @vasilev-alex's task in 6m 24s —— View job Review complete — 1 medium, 2 low; docs accurate against the in-repo OpenAPI specFull review
Findings
Verified clean
Review threadsThe unresolved-thread listing paged to the end and returned 0 threads with |
… divergence
The paragraph named three agent-mediated callers with narrower-destroy /
wider-who semantics, but the public REST API's DELETE
/folders/{folderId} endpoint has the identical divergence (api.yaml:1226-1240:
detaches content instead of deleting it, rejects nonempty subfolders with
400, and checks only manage access to the folder itself) and wasn't listed.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G8YvpPk7J3YisLW1Eeexru
This section is written for a logout handler, but omitted the one fact that decides whether logout is complete: revocation covers the embed session only, not a separate Cube API token the embed already obtained (api.yaml:4132-4134). Restores the sentence an earlier revision (413c44a) carried, lost in a later rollout-commentary trim. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G8YvpPk7J3YisLW1Eeexru
|
Claude finished @vasilev-alex's task in 5m 54s —— View job Review complete — 0 blocking, 1 medium, 2 low. Docs-only; claims and links verified against the in-repo OpenAPI spec.Full review
Findings (posted inline)
Verified clean
Review threads
Not runNo tests, lint, or build — the diff touches only |

Check List
Description of Changes Made
Scheduled review of recent
cubedevinc/cubejs-enterprisechanges againstdocs-mintlify, filtered per the customer-facing criteria in that repo's.claude/shared/customer-facing-criteria.md. Each item below shipped (not behind a private-preview flag) and was verified against the actual code, not just the commit subject.docs/integrations/mcp-server.mdx): documents the newmanageFolderstool, and a new six-tool branch/commit family (getBranchState,commitDataModelChanges,commitToNewBranch,mergeToDefaultBranch,discardDataModelChanges,switchUserBranch) that lets an MCP client commit, publish, and switch branches directly — the same operations as the console's "Commit & Sync" / "Merge" actions. This also corrects a now-false safety claim: the doc said "the MCP server deliberately exposes no commit tool," which stopped being true once these tools shipped. Updated the tool count (23 → 30) and the destructive-tool list accordingly.docs/integrations/microsoft-excel.mdx,docs/integrations/google-sheets.mdx): documents the new Row totals switch (mirrors the existing Column totals), the agent's new ability to organize saved explorations into folders, and dragging an exploration onto the chat composer to attach it as context. Also corrects the Chat section's claim that chat history is device-local — it now syncs via a server-side Chat History list.docs/explore-analyze/analytics-chat.mdx): notes the agent can organize saved work into folders (same underlying capability as the add-ins above).reference/embed-apis/generate-session.mdx): documents the newPOST /api/v1/embed/session/revokeendpoint for ending a signed-embed session from an app's logout handler.embedding/iframe/feature-visibility.mdx):allowExport=truenow also governs CSV download from a workbook's report builder in Creator Mode, not just dashboard chart widgets — updated its "Surface" column.embedding/iframe/events.mdx): notes that a signed embed's token can be revoked before its normal expiry, and covers ending every session minted for a viewer as part of a logout flow.admin/monitoring/usage-analytics.mdx): corrects a claim that the API Requests view exposes per-request security context for slicing by tenant (it doesn't — that's Query History), and adds the five dashboard-usage views available for building custom reports, including how to slice them by embed tenant.reference/control-plane-api.mdx,docs/explore-analyze/dashboards/index.mdx): documents the new dashboard PDF/PNG export endpoints (submit, poll, download) and links to them from the existing in-app download section.Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
https://claude.ai/code/session_01G8YvpPk7J3YisLW1Eeexru