Skip to content

docs: document the SQL fallback editor and embedded PNG/PDF export - #11624

Open
keydunov wants to merge 3 commits into
masterfrom
claude/gallant-ramanujan-6re5sj
Open

docs: document the SQL fallback editor and embedded PNG/PDF export#11624
keydunov wants to merge 3 commits into
masterfrom
claude/gallant-ramanujan-6re5sj

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 (not applicable — docs only)
  • Linter has been run for changed code (not applicable — docs only)
  • Tests for the changes have been added if not covered yet (not applicable — docs only)

Description of Changes Made

Routine documentation audit: cross-checked recent merges in cube-js/cube and cubedevinc/cubejs-enterprise against docs-mintlify and found two small, genuinely undocumented customer-facing changes shipped since the previous audit (#11611).

  • Calculated field SQL fallback editor (cubejs-enterprise #14322) — fields generated from a column-header menu (aggregations, % of total/Running total calculations, filtered measures) previously had no edit path at all; they now open a SQL-only editor (no rename, since renaming isn't supported for these). Documented in docs/explore-analyze/workbooks/calculated-fields.mdx, "Editing a calculated field".
  • PNG/PDF export in embedded dashboards (cubejs-enterprise #14290) — the existing allowExport=true embed param previously enabled only CSV download; it now also exposes server-rendered PNG/PDF export on embedded dashboard widgets, matching the main-app feature. Updated embedding/iframe/dashboards.mdx ("Allow CSV export" → "Allow chart export") and fixed the now-stale cross-reference + anchor in embedding/iframe/events.mdx.

Two other undocumented items from this window are large enough to need their own new docs page rather than a small edit, so they're being tracked separately instead of bundled into this PR:

  • A new funnel chart type in workbooks (cubejs-enterprise #13506) — fully shipped, has its own fields/style config comparable to the existing chart-type pages, entirely undocumented.
  • Dashboard apps (agent-generated custom dashboards) gaining report filtering controls (cubejs-enterprise #14259) and file-editing tools (#14325) — the "dashboard app" concept itself has no docs yet at all, only a changelog mention of its GraphQL schema.

A third candidate — the recent Billing page split into Overview/Cost and Usage (cubejs-enterprise #14241) — was investigated but left out: it's gated behind a newly-introduced per-tenant flag combination with unclear rollout, so per the customer-facing criteria (wait until on by default) it's not yet safe to document as the new default navigation.


Generated by Claude Code

- Calculated fields generated from a column-header menu (aggregations,
  Calculations, filtered measures) now edit through a SQL-only fallback
  editor since renaming isn't supported for them (cubejs-enterprise #14322).
- Embedded dashboards now support PNG/PDF chart export via the existing
  allowExport param, not just CSV (cubejs-enterprise #14290). Updated the
  cross-reference in the embed events doc to match.
@mintlify

mintlify Bot commented Aug 23, 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 23, 2026, 12:14 AM

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

@claude

claude Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

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


Docs review: approve with two comments — 0 high, 2 low

Both changes are accurate and appropriately surgical. Two low-severity items posted inline on embedding/iframe/dashboards.mdx: a broken-anchor risk from the heading rename, and two facts that don't line up with the main-app page it now links to.

Full review

Todos

  • Read PR diff
  • Verify cross-reference anchors resolve
  • Check surrounding docs for consistency
  • Post review

Verification

  • The new cross-link target resolves: #download-as-png-or-pdf is an explicit anchor at docs-mintlify/docs/explore-analyze/dashboards/index.mdx:69.
  • No stale allow-csv-export references remain anywhere in docs-mintlifyevents.mdx was the only referrer and it was updated.
  • calculated-fields.mdx:153-158 reads cleanly and matches the surrounding em-dash and bolded-UI-label style; it correctly distinguishes the SQL-only editor from the structured bin/group editor documented just above at line 143.
  • Conventions from docs-mintlify/CLAUDE.md are otherwise respected: no new pages, no padding, edits land in the sections that already own the topic, no docs.json change needed.

Findings

# Severity File Issue
1 Low embedding/iframe/dashboards.mdx:80 Heading rename silently changes the URL anchor #allow-csv-export#allow-chart-export, breaking inbound links. Repo convention (and precedent at dashboards/index.mdx:69) is to pin the old anchor with {#allow-csv-export}.
2 Low embedding/iframe/dashboards.mdx:90-97 "only one export can run at a time per dashboard" isn't stated on the main-app page and isn't obviously verifiable from the docs side; separately, the main-app page's export latency ("up to a couple of minutes") and the account-wide data-download-controls gate aren't carried over, so the embed page reads as if allowExport=true is the only gate.

Neither blocks merge. Finding 1 has a ready-to-apply suggestion in the inline thread.

Not applicable

Security, performance, and test-coverage review areas don't apply — this is a docs-only change (3 .mdx files, +20/−9) with no code, no build step, and no test surface. Linting wasn't run for the same reason.

• [`claude/gallant-ramanujan-6re5sj`](https://github.com/cube-js/cube/tree/claude/gallant-ramanujan-6re5sj)

Comment thread docs-mintlify/embedding/iframe/dashboards.mdx Outdated
Comment thread docs-mintlify/embedding/iframe/dashboards.mdx Outdated
Per docs-mintlify/CLAUDE.md's anchor-stability convention (and per
review feedback on this PR), renaming the heading to "Allow chart
export" must not break inbound links to the old #allow-csv-export
anchor.
@claude

claude Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Claude Code is working…

I'll analyze this and get back to you.

View job run

Per review feedback: the embedded PNG/PDF export uses the same
server-rendered screenshot mechanism as the main-app dashboard export,
so the same latency caveat applies, and it is subject to the same
account-wide data download controls (enforced server-side, not just
client-side, per cubejs-enterprise #14290).
@claude

claude Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

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


Docs review (re-review after 2 follow-up commits): approve — 0 high, 0 medium, 1 low (optional)

Both prior findings are fully addressed; their threads are already resolved. One optional consistency nit remains, noted below.

Full review

Todos

  • Re-read diff against origin/master (3 commits)
  • Verify prior findings are addressed
  • Validate all link targets and anchors
  • Check consistency with the main-app dashboards page
  • Check for stale review threads to resolve
  • Post review

Prior findings — status

# Prior finding Status
1 Heading rename broke the #allow-csv-export anchor Fixed in 426bb19## Allow chart export {#allow-csv-export} (dashboards.mdx:80), and events.mdx:214 correctly keeps linking to #allow-csv-export while the link text reads "Allow chart export".
2 Export latency + account-wide download gating not carried over; concurrency claim unexplained Fixed in 31546ff — the paragraph now states the couple-of-minutes latency, spells out what a second concurrent export does ("rejected as 'another export still running'"), and adds the account-wide gate clause.

Verification

  • #allow-csv-export is now an explicit anchor at docs-mintlify/embedding/iframe/dashboards.mdx:80, so the pre-existing inbound-link surface is preserved and events.mdx:214 resolves.
  • The new gating link resolves: ## Restricting data downloads exists at docs-mintlify/admin/users-and-permissions/roles-and-permissions.mdx:31, and the target path matches the [ref-data-download-controls] definition already used at docs/explore-analyze/dashboards/index.mdx:100 and admin/users-and-permissions/custom-roles.mdx:134.
  • The gating claim is factually backed: roles-and-permissions.mdx:35 says turning off Allow data downloads "hides export controls everywhere, for all users — including admins and embeds" — so applying it to embeds is correct, not an inference.
  • #download-as-png-or-pdf still resolves (docs/explore-analyze/dashboards/index.mdx:69).
  • The latency wording is faithfully adapted rather than copy-pasted: the main-app page says "large dashboards", the embed page says "large widgets", which is right since the embed case exports a single widget.
  • calculated-fields.mdx:153-158 is unchanged since the last review and still reads cleanly — it correctly separates the SQL-only fallback editor from the structured bin/group editor documented above at line 143.
  • No stale threads to resolve: gh list-review-threads shows both of my prior threads already isResolved: true.

Remaining low (optional, non-blocking)

# Severity File Issue
1 Low docs/explore-analyze/dashboards/index.mdx:81-93 The "one export at a time per dashboard" constraint is now documented only on the embed page, but it's a property of the shared server-render mechanism, not of embeds. A main-app user hitting the same rejection won't find it documented. Also, the main-app page notes single-chart export requires the Download data permission — the embed page mentions only the account-wide switch, which is likely correct for embed sessions but worth a sanity check.

Neither is a defect in this PR — item 1 is a gap on a file this PR doesn't touch, and would be a reasonable one-sentence follow-up.

Not applicable

Security, performance, and test-coverage review areas don't apply — docs-only change (3 .mdx files, +22/−8), no code, no build step, no test surface. Linting wasn't run for the same reason.

claude/gallant-ramanujan-6re5sj

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