Skip to content

docs: document undocumented Cube Cloud features from cubejs-enterprise - #11893

Merged
vasilev-alex merged 117 commits into
masterfrom
claude/gallant-ramanujan-89d40o
Sep 16, 2026
Merged

vasilev-alex merged 117 commits into
masterfrom
claude/gallant-ramanujan-89d40o

Conversation

@keydunov

@keydunov keydunov commented Sep 16, 2026

Copy link
Copy Markdown
Member

Check List

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

Description of Changes Made

Scheduled review of recent cubedevinc/cubejs-enterprise changes against docs-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.

  • MCP server (docs/integrations/mcp-server.mdx): documents the new manageFolders tool, 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.
  • Excel / Google Sheets add-ins (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.
  • Analytics Chat (docs/explore-analyze/analytics-chat.mdx): notes the agent can organize saved work into folders (same underlying capability as the add-ins above).
  • Embed APIs (reference/embed-apis/generate-session.mdx): documents the new POST /api/v1/embed/session/revoke endpoint for ending a signed-embed session from an app's logout handler.
  • Embedding feature visibility (embedding/iframe/feature-visibility.mdx): allowExport=true now also governs CSV download from a workbook's report builder in Creator Mode, not just dashboard chart widgets — updated its "Surface" column.
  • Embedding events (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.
  • Usage Analytics (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.
  • Control Plane API (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

- 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
@mintlify

mintlify Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

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

Project Status Preview Updated
cubed3 🟢 Ready View Preview Sep 16, 2026, 3:12 PM

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

@github-actions github-actions Bot added the docs Issues that require a documentation improvement label Sep 16, 2026
@claude

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

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 low

Review details
  • Read the diff
  • Read the changed files in full, not just the hunks
  • Verified internal consistency (tool counts, anchors, link refs, cross-page terminology)
  • Cross-checked the revoke endpoint against docs-mintlify/api-reference/api.yaml
  • Posted findings

Findings

# Where Concern
1 mcp-server.mdx:363-371 "How model edits stay safe" names only mergeToDefaultBranch as the prompted route to production, but commitDataModelChanges is marked Write (no prompt) and can commit onto the default branch via confirmPublishToDefaultBranch. The bullet above it still says the deploy branch is never writable over MCP.
2 mcp-server.mdx:236 "30 tools" vs 29 table rows; no 30th tool named anywhere on the page. Off-by-one predates the PR (23 vs 22) but the number is being touched.
3 microsoft-excel.mdx:177-181 (and google-sheets.mdx:188) Row totals enablement rule contradicts the sentence after it — "needs a measure on Columns" vs "with measures on Rows, a single total column covers them all".
4 generate-session.mdx:454-460 "after this endpoint shipped" gives no date to compare against; the spec entry has the same wording, so there's no second source. Also drops the 403-when-embedding-disabled case and the note that a deployment token isn't affected (api.yaml:4134-4139).
5 feature-visibility.mdx:136 "before it's published" reads as a time qualifier — implying CSV export disappears from a published workbook — and "all formats" over-claims for Creator Mode, which offers CSV only.
6 mcp-server.mdx:368 "the three sections above and below" doesn't parse. Plus "default branch" / "deploy branch" used for what looks like the same branch on one page.
7 google-sheets.mdx:294 "the workbook list" is Excel's term; the Sheets page calls that surface the spreadsheet's home (google-sheets.mdx:213).

Notes

The features themselves live in cubedevinc/cubejs-enterprise, which isn't reachable from here, so tool names, parameters, and the Row/Column totals behaviour couldn't be verified against source — only the revoke endpoint, which does check out against api.yaml:4094-4139. Everything above is internal consistency or a cross-check against what's in this repo.

No prior review threads on this PR.

Structure is otherwise sound: the new anchors (#committing-and-publishing-changes, #commit-and-publish-a-model-edit) resolve, [ref-folders] points at a page that exists (docs/organize-content/folders.mdx), the destructive-tool list is internally consistent at nine, and the "five constraints" count matches its bullets. Correcting the two now-false claims — the "no commit tool" safety promise and the device-local chat history — is the right call and the reason to take this PR.

· branch `claude/gallant-ramanujan-89d40o`

Comment thread docs-mintlify/docs/integrations/mcp-server.mdx Outdated
Comment thread docs-mintlify/docs/integrations/mcp-server.mdx
Comment thread docs-mintlify/docs/integrations/microsoft-excel.mdx Outdated
Comment thread docs-mintlify/docs/integrations/google-sheets.mdx Outdated
Comment thread docs-mintlify/reference/embed-apis/generate-session.mdx Outdated
Comment thread docs-mintlify/embedding/iframe/feature-visibility.mdx Outdated
Comment thread docs-mintlify/docs/integrations/mcp-server.mdx Outdated
…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
@claude

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Reviewing PR #11893

  • Read the diff and changed files
  • Verify claims against source / existing docs
  • Check prior review threads
  • Post findings

View job run · branch claude/gallant-ramanujan-89d40o

- 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
@claude

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Reviewing this docs PR

  • Read the full diff and the changed files in context
  • Verify claims against docs conventions (docs.json, link targets, tool counts)
  • Check prior review threads for duplicates/stale findings
  • Post findings

Verified so far: /docs/organize-content/folders exists; the tool table really does have 30 rows and 9 destructive ones; #committing-and-publishing-changes and #commit-and-publish-a-model-edit anchors resolve. Found 1 high / 2 medium / 4 low.

View job run · branch claude/gallant-ramanujan-89d40o

Comment thread docs-mintlify/docs/integrations/mcp-server.mdx Outdated
Comment thread docs-mintlify/docs/integrations/mcp-server.mdx Outdated
Comment thread docs-mintlify/docs/integrations/mcp-server.mdx Outdated
Comment thread docs-mintlify/embedding/iframe/feature-visibility.mdx Outdated
"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
Comment thread docs-mintlify/docs/integrations/microsoft-excel.mdx Outdated
Comment thread docs-mintlify/reference/embed-apis/generate-session.mdx Outdated
@claude

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Reviewing PR #11893

  • Read the full diff
  • Read the changed files in context
  • Verify claims against surrounding docs
  • Check prior review threads
  • Post findings

View job run · branch claude/gallant-ramanujan-89d40o

- 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

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Claude finished @keydunov's task in 3m 46s —— View job


1 high, 1 medium, 2 low — the folder-deletion claim contradicts folders.mdx on an irreversible operation; everything else verified clean (tool count, anchors, link targets, docs.json).

Full review

Checklist

  • Read the PR diff and all six changed files in full context
  • Verify factual claims against the docs' own conventions and internal consistency
  • Check prior review threads for duplicates / stale findings
  • Post findings

Findings

# Severity Location Issue
1 High mcp-server.mdx:312 Folder-deletion semantics contradict docs/organize-content/folders.mdx:129 — four pages say contents survive, the page they link to says deletion is total and irreversible
2 Medium mcp-server.mdx:364 "the deploy branch is never writable over MCP" (:360) is refuted by this PR's own mergeToDefaultBranch and the <Warning> at :379
3 Low microsoft-excel.mdx:183 Row totals' "Like column totals" carries 1 of 4 caveats; the filter-dropping and window-function exclusions go unstated (same block in google-sheets.mdx:194)
4 Low generate-session.mdx:447 204 success status only implied; no request example or Request/Response subsections, unlike every other endpoint on the page

Verified clean

  • Tool count. Re-counted from the tables: 3 (deployments/chat) + 2 (query) + 9 (dashboard authoring, incl. manageFolders) + 8 (data model) + 6 (commit/branch) + 2 (pre-aggregations) = 30. Matches mcp-server.mdx:236, no duplicates or gaps — the earlier reviewer's read was right.
  • Destructive list. Nine named at :246:248; exactly nine table rows carry "Destructive — prompts". Consistent.
  • "Five constraints" at :355 — five bullets follow. Consistent.
  • Anchors. #committing-and-publishing-changes (:390), #commit-and-publish-a-model-edit (:506), #how-model-edits-stay-safe (:353) all resolve. Heading levels are correct — #### under Data model editing, ### for the two new siblings.
  • [ref-folders]docs/organize-content/folders.mdx exists on both new pages; analytics-chat.mdx uses the inline form that page already uses.
  • POST /api/v1/embed/session/revoke already present in docs.json:1059, so the OpenAPI list needs no change.
  • Terminology. "the workbook's home" / "the spreadsheet's home" each match their own page's established phrasing (microsoft-excel.mdx:201, google-sheets.mdx:212). No "Cube Cloud" legacy naming introduced.

Worth noting

The <Warning> at mcp-server.mdx:377 documenting commitDataModelChanges' unprompted path to production is the right call — a safety section that admits its own hole is more useful than one that doesn't, and it's the kind of thing that's easy to leave out.

No prior review threads existed on this PR, so nothing to resolve or dedupe.

· branch [`claude/gallant-ramanujan-89d40o`](https://github.com/cube-js/cube/tree/claude/gallant-ramanujan-89d40o)

Comment thread docs-mintlify/docs/integrations/mcp-server.mdx Outdated
Comment thread docs-mintlify/admin/monitoring/chats-history.mdx
…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
@claude

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Reviewing PR #11893

  • Fetch base and read the full diff
  • Read changed files in full
  • Reconcile cross-page claims
  • Resolve stale threads / dedupe findings
  • Post review

View job run

…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

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Claude finished @vasilev-alex's task in 4m 53s —— View job


Docs-only change; 1 medium, 1 low posted inline — no blockers.

Review details
  • Fetch PR diff
  • Read changed docs files in full
  • Verify tool counts, anchors, link refs, OpenAPI claims
  • Handle prior review threads
  • Post findings

Findings

# Severity Site Concern
1 Medium docs-mintlify/admin/monitoring/usage-analytics.mdx:73 Stray Dashboard renders as a doubled word, and the same edit (5dc3f0c) dropped Dashboard Engagement from the client-side/suppressed claim it previously covered — the page now implies Engagement does carry an embed-tenant breakdown.
2 Low docs-mintlify/reference/control-plane-api.mdx:421 404 for "supplies both ids or neither" isn't in the endpoint's own reference (api-reference/api.yaml:274 attaches 404 only to the wrong-deployment case), and this page sends the reader there for the full schema.

Verified, no finding

  • mcp-server.mdx:236 "30 tools" matches 30 table rows exactly (3 + 2 + 9 + 8 + 6 + 2), and every sub-count in the page holds: nine destructive tools, six model-editing tools (the 8-row table minus getBranchDiff/getDeploymentEnv), six commit/branch tools, and "six mechanisms — four enforced by the MCP server, one by clients…, one that is yours" against six bullets.
  • Anchors resolve: #ship-a-model-edit, #how-model-edits-stay-safe, #committing-and-publishing-changes, #deleting-folders, and #apiv1deploymentsdeployment_iddashboard-exports (matches the existing slug convention used by admin/deployment/environments.mdx:134).
  • Link references defined on both add-in pages (ref-folders, ref-deleting-folders, ref-calculated-fieldsmicrosoft-excel.mdx:316-318, google-sheets.mdx:325-327).
  • [ref-revoke-session]: /api-reference/embed/revoke-an-embed-session matches the Revoke an embed session summary at api-reference/api.yaml:4094, and the page's 204/403/idempotency description agrees with that operation's x-mint text.
  • The allowExport widening is now consistent across all four sites that touch it — feature-visibility.mdx:136-137, dashboards.mdx:122-125, creator-mode.mdx:36-38, roles-and-permissions cross-ref — including showDashboardExportMenu's Surface column and the Chart-widget export is client-side scoping.
  • The folder-deletion divergence is stated once in full (folders.mdx:137-151, including the "wider in who can do it" warning) and cross-referenced as a clause from the four other sites, rather than restated.
  • mcp-server.mdx:391-394 names Edit data model on dev branches, which matches the role action at admin/users-and-permissions/custom-roles.mdx:120.

Observation

reference/embed-apis/generate-session.mdx:457-460 documents that revoke doesn't check an API key's deployment scope — "a key scoped to one deployment can revoke a session belonging to any deployment in the account". That's the right thing to disclose if it's the shipped behavior, but it's worth confirming with the platform team that this is intended rather than a scope-check gap to close; documenting it makes it a supported contract.

Review threads

The unresolved-thread listing paged to the end and came back empty on every page — 0 threads opened by claude, so none resolved and none re-affirmed. Both findings above are new.

· branch [`claude/gallant-ramanujan-89d40o`](https://github.com/cube-js/cube/tree/claude/gallant-ramanujan-89d40o)

Comment thread docs-mintlify/admin/monitoring/usage-analytics.mdx
Comment thread docs-mintlify/reference/control-plane-api.mdx Outdated
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
@claude

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Review in progress

  • Fetch PR diff and changed files
  • Read changed docs pages in full
  • Verify claims / internal consistency / links
  • Handle prior review threads
  • Post findings

View job run

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

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

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 api-reference/api.yaml; all checked out.

Full review
  • Fetch base and read the diff
  • Read changed files in full
  • Verify claims / cross-references / anchors
  • Handle prior review threads
  • Post findings

Findings

# Severity Location Issue
1 Medium reference/embed-apis/generate-session.mdx:457 The cross-deployment revoke-scope bypass is flat prose while a soft quota on the same page gets a <Warning>; line 18 states the opposite rule for Generate Session two screens up.
2 Low admin/monitoring/chats-history.mdx:11 Places add-in conversations under the Web source value — the one claim not corroborable from this repo, and the one your earlier reply flagged as unpinned. Visibility ≠ the source enum.
3 Low docs/integrations/microsoft-excel.mdx:191, google-sheets.mdx:202 Row-totals persistence paragraph restates the Column-totals one verbatim; the merged single sentence from an earlier round got lost when the sections split.
4 Low docs/integrations/mcp-server.mdx:372 "six mechanisms" hand-counts the list under it — already stale twice in this PR's own history (four → five → six).

Verified, no action needed

  • "30 tools" (mcp-server.mdx:236) — 3 + 2 + 9 + 8 + 6 + 2 across the six tables, no duplicates. The #how-model-edits-stay-safe bullet's "six model-editing tools + getBranchDiff + getDeploymentEnv" also reconciles with the 8-row Data model editing table, and the six-mechanism split (4 server / 1 client / 1 yours) matches the bullets as written.
  • Every new anchor resolves. #apiv1deploymentsdeployment_iddashboard-exports matches the slug convention already used by environments.mdx for the sibling /build/api/v1/... heading; #download-as-png-or-pdf, #deleting-folders, #ship-a-model-edit, #committing-and-publishing-changes, #dashboard-authoring, #deployments-and-chat, #revoke-a-session all exist. Promoting #### How model edits stay safe to ### left its anchor intact.
  • Both /api-reference/* links are realdashboard-exports/export-a-dashboard-as-png-or-pdf and embed/revoke-an-embed-session are already linked from api-reference/introduction.mdx and embedding/iframe/auth/signed.mdx, and both operations are registered in docs.json.
  • The new Control Plane API section matches api.yaml:274-343 on every status code404 for a deactivated console subject, 403 for restricted downloads and for an unshared embed tenant, 429 per rendered-as identity, 5-minute expiresAt, submitter-only poll/download, renderAs context applying to the render only.
  • The revoke prose matches api.yaml:4114-4139, including the "issued after this endpoint shipped" scoping, which is the spec's own wording rather than new invention. The 24h-vs-~23h parenthetical agrees with auth/signed.mdx:34.
  • Moving ### Response up into the Endpoint section kept {#response} explicit; nothing in the repo links to it, and no other generate-session# anchor broke.
  • allowExport widening is consistent across all four touched pagesfeature-visibility.mdx:136, dashboards.mdx:122-125, creator-mode.mdx:36, and the showDashboardExportMenu row still reads as a hide switch rather than a second grant.

No new pages, so docs.json correctly goes untouched.

Review threads

The unresolved-thread listing (3 pages) returned 0 threads authored by me — nothing to resolve, nothing to re-affirm. All four findings above are new.

· branch `claude/gallant-ramanujan-89d40o`

Comment thread docs-mintlify/docs/integrations/microsoft-excel.mdx
Comment thread docs-mintlify/reference/embed-apis/generate-session.mdx
Comment thread docs-mintlify/admin/monitoring/chats-history.mdx
Comment thread docs-mintlify/docs/integrations/mcp-server.mdx Outdated
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
@claude

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Reviewing PR #11893

  • Gather context (diff, changed files)
  • Read changed docs pages in full
  • Verify claims for internal consistency / anchors / links
  • Check prior review threads (dedupe + resolve stale)
  • Post findings

View job run · branch claude/gallant-ramanujan-89d40o

"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

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Claude finished @vasilev-alex's task in 6m 24s —— View job


Review complete — 1 medium, 2 low; docs accurate against the in-repo OpenAPI spec

Full review
  • Gather context (PR diff via gh pr diff, changed files read in full)
  • Review all 15 changed pages
  • Cross-check claims against docs-mintlify/api-reference/api.yaml and linked pages
  • Verify every new internal link and anchor
  • Handle prior review threads
  • Post findings

Findings

# Severity Site Issue
1 Medium docs/organize-content/folders.mdx:137-151 The narrower-delete / wider-permission enumeration names Analytics Chat, the add-in panes, and MCP, but omits DELETE /api/v1/deployments/{deploymentId}/folders/{folderId}, which api-reference/api.yaml:1226-1240 documents with identical semantics (contents detached to root, 400 on subfolders, only manage access to the folder checked). A REST caller reading this page concludes the Workspace-page behavior applies to them.
2 Low reference/embed-apis/generate-session.mdx:468-475 The logout-oriented Revoke section drops the fact that revocation doesn't affect a Cube API token already obtained from POST /api/v1/deployments/{deploymentId}/token (api.yaml:4134-4136). Present in 413c44a, lost in the later trim. Suggested restoration posted inline.
3 Low docs/integrations/microsoft-excel.mdx:191-193, docs/integrations/google-sheets.mdx:202-204 Closing persistence/auto-run paragraph restates the Column totals paragraph verbatim; the merged single sentence from 3ae7d2f is gone at HEAD.

Verified clean

  • Tool count. "30 tools" matches the tables exactly: 3 (deployments/chat) + 2 (query) + 9 (dashboard authoring) + 8 (data model) + 6 (commit/branch) + 2 (pre-aggregations). The "nine destructive ones" list matches the nine Destructive — prompts cells, and "the six model-editing tools, getBranchDiff, getDeploymentEnv, the six commit and branch tools" matches the table row counts.
  • Every new link resolves. /api-reference/embed/revoke-an-embed-session and /api-reference/dashboard-exports/export-a-dashboard-as-png-or-pdf both correspond to registered nav groups (docs.json:931, docs.json:1046) over operations that exist in api.yaml (4094, 274), and the summary slugs match. #apiv1deploymentsdeployment_iddashboard-exports follows the same spelling as the existing environments.mdx:134 link, #download-as-png-or-pdf is an explicit anchor in dashboards/index.mdx:106, and the five new mcp-server.mdx anchors (#dashboard-authoring, #deployments-and-chat, #how-model-edits-stay-safe, #committing-and-publishing-changes, #ship-a-model-edit) all exist. Promoting How model edits stay safe from #### to ### kept its anchor, and nothing else in the docs links to mcp-server.mdx anchors.
  • Dashboard-exports section matches the spec, claim for claim: published-only, exactly-one-id, manage access on the workbook, 5-minute expiresAt, submitter-only poll/download, tenant-admin renderAs, render-only groups/userAttributes/securityContext, 403 for restricted downloads and unshared embed tenants, 429 on in-flight cap.
  • The 23h/24h split is consistent, not a contradiction: auth/signed.mdx:34 says tokens are minted with a 24-hour expiry and the iframe stops trusting one an hour early, which is what the revoke section's "24 hours from mint (not the ~23-hour figure above)" explains.
  • The allowExport widening is coherent across all four pages it touches — feature-visibility.mdx:136, dashboards.mdx:122-128, creator-mode.mdx:36-38, folders-unrelated — and dashboards.mdx no longer claims chart-level export can't be allowed without dashboard-level, which its own showDashboardExportMenu=false section (137-146) contradicted.
  • MCP safety prose is now annotation-accurate: the chat read-only caveat, commitDataModelChanges being write-not-destructive, and the dev-branch-scoped-role call-time check all line up with custom-roles.mdx:120-121.

Review threads

The unresolved-thread listing paged to the end and returned 0 threads with claude as the opening author — nothing to resolve, nothing to re-affirm, no finding suppressed as a duplicate. All three findings posted fresh.

· branch `claude/gallant-ramanujan-89d40o`

Comment thread docs-mintlify/docs/organize-content/folders.mdx
Comment thread docs-mintlify/reference/embed-apis/generate-session.mdx
Comment thread docs-mintlify/docs/integrations/microsoft-excel.mdx
… 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
@claude

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Review in progress

  • Fetch base, read the full diff
  • Read changed files in full (not just hunks)
  • Check internal links / anchors / ref definitions
  • Check factual consistency across the cross-referenced pages
  • Reconcile with prior review threads
  • Post findings

View job run

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

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

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
  • Fetch base and read the full diff
  • Read changed files in full for context
  • Verify claims and cross-references
  • Reconcile with prior review threads
  • Post findings

Findings (posted inline)

# Severity Where Issue
1 Medium reference/embed-apis/generate-session.mdx:460-466 The "API key scope is not checked" Warning lives only on this page. embedding/iframe/auth/signed.mdx:37 sends readers straight to /api-reference/embed/revoke-an-embed-session, and the revokeSession x-mint in api-reference/api.yaml:4114-4139 never mentions it — so the one security-relevant caveat is missing from the entry point that says "using an admin-scoped key".
2 Low reference/embed-apis/generate-session.mdx:455 "Returns 204 No Content on success, with no body" contradicts api-reference/api.yaml:4104-4110, which declares a 200 with a JSON body and a 204. The linked reference page will render both.
3 Low docs/integrations/microsoft-excel.mdx:191, google-sheets.mdx:202 The Row-totals "saved with the exploration and survive Refresh…" paragraph restates the Column-totals one (:167 / :178) near-verbatim. Commit 3ae7d2f had merged them; the split re-introduced it.

Verified clean

  • Tool count. grep -c '^| \'overmcp-server.mdx→ 30 rows, matching "exposes 30 tools": 3 chat + 2 query + 9 dashboard authoring + 8 data model + 6 commit/branch + 2 pre-agg. The nine names in the destructive list at:249-251match the nineDestructive — promptscells exactly, and the permission-gating bullet's arithmetic (6 +getBranchDiff+getDeploymentEnv`, 6, 2) matches its three sections.
  • Anchors. #how-model-edits-stay-safe, #committing-and-publishing-changes, #ship-a-model-edit, #dashboard-authoring, #deployments-and-chat all resolve; no stale #commit-and-publish-a-model-edit left anywhere. #download-as-png-or-pdf exists as an explicit anchor at dashboards/index.mdx:106. The new #apiv1deploymentsdeployment_iddashboard-exports follows the same slug shape as the existing #buildapiv1deploymentsdeployment_idbranchesstaging-environment in admin/deployment/environments.mdx:134. Promoting How model edits stay safe from #### to ### leaves the page's heading tree consistent.
  • New API-reference links are real and navigable. folders/delete-a-folder, dashboard-exports/export-a-dashboard-as-png-or-pdf, embed/revoke-an-embed-session all exist in api.yaml (:1223, :298, :4111) and are registered in docs.json (:895, :934-936, :1059) — this nav is per-operation, not auto-generated, so an unregistered operation would have been a dead link.
  • Folder-delete divergence. folders.mdx:137-152 matches api.yaml:1226-1240 on all three claims: subfolders rejected, contents detached to the workspace root, manage access to the folder only.
  • Dashboard export prose vs. spec. control-plane-api.mdx:374-430 agrees with api.yaml:301-343 on the 5-minute expiresAt, submitter-only poll/download, renderAs provisioning being render-scoped, the 403 for restricted downloads (explicitly not bypassed for on-behalf-of), and the 429. Auth header matches the page's own Bearer convention at :21-28. Only wording drift: the page says "account administrator" where the spec says "tenant administrator" — not worth a change on its own.
  • Token lifetimes. generate-session.mdx:468-471 ("24 hours from mint, not the ~23-hour figure") is consistent with auth/signed.mdx:34, which already explains the one-hour early-distrust gap.
  • allowExport scope widening is consistent across all four pages that now mention it (feature-visibility.mdx:136, dashboards.mdx:120-127, creator-mode.mdx:36-38, events.mdx), and the showDashboardExportMenu row no longer contradicts the allowExport row.
  • Usage Analytics. The "five dashboard views" count matches the five rows added to the same table; the removal of "top tenants" from the Overview row is consistent with the new tenant_id correction.

Review threads

gh list-review-threads paged to the end: zero unresolved threads on this PR — nothing stale to resolve, and none of the three findings above duplicates an existing one.

Not run

No tests, lint, or build — the diff touches only .mdx under docs-mintlify. The Mintlify preview build is green per the bot comment.

· branch [`claude/gallant-ramanujan-89d40o`](https://github.com/cube-js/cube/tree/claude/gallant-ramanujan-89d40o)

Comment thread docs-mintlify/docs/integrations/microsoft-excel.mdx
Comment thread docs-mintlify/reference/embed-apis/generate-session.mdx
Comment thread docs-mintlify/reference/embed-apis/generate-session.mdx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Issues that require a documentation improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants