Skip to content

docs: document PNG/PDF embed export and add an Alerts page - #11620

Open
keydunov wants to merge 2 commits into
masterfrom
claude/gallant-ramanujan-5qg37q
Open

docs: document PNG/PDF embed export and add an Alerts page#11620
keydunov wants to merge 2 commits into
masterfrom
claude/gallant-ramanujan-5qg37q

Conversation

@keydunov

@keydunov keydunov commented Aug 22, 2026

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

Two undocumented customer-facing changes found via a routine audit cross-checking recent cubejs-enterprise changes against docs-mintlify coverage:

  1. Embedded dashboard export. allowExport=true on embedded dashboards previously gated only a Download as CSV action. As of CUB-4065 (cubejs-enterprise #14290), it also gates Download as PNG and Download as PDF. Updated the "Allow CSV export" section of the embedding docs accordingly.
  2. Alerts. Alerts (email notifications for API outages, database response timeouts, and pre-aggregation build failures/completions) is a real, shipped, paid-plan feature that had no docs page at all. It just gained a permanent home in the account-level Admin panel (CUB-3926, cubejs-enterprise #14222), which is a good prompt to finally document it — added a new page under Admin → Monitoring covering configuration and event types.

allowExport=true now gates PNG and PDF chart downloads in addition to
CSV in embedded dashboards (CUB-4065).
@mintlify

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

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

@claude

claude Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

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


Review complete — docs-only change, direction is right. 1 high, 2 medium, 1 low (2 inline comments posted)

Full review
  • Gather context (read PR diff)
  • Read the changed doc page in full
  • Cross-check allowExport coverage elsewhere in docs
  • Check for stale/duplicate review threads (none existed)
  • Post review

Findings

1. High — heading rename breaks an existing in-repo anchor link (docs-mintlify/embedding/iframe/dashboards.mdx:80) — inline

## Allow CSV export## Allow CSV, PNG, and PDF export changes the generated anchor from #allow-csv-export to #allow-csv-png-and-pdf-export. docs-mintlify/embedding/iframe/events.mdx:214 links to the old one:

export](/embedding/iframe/dashboards#allow-csv-export)). The event fires when a

docs-mintlify/CLAUDE.md explicitly says not to rename URL anchors — use {#allow-csv-export} to pin it (also protects external inbound links).

2. Medium — events.mdx note is now stale (docs-mintlify/embedding/iframe/events.mdx:211-216, not in this diff)

The cube:event:export section already documents format: "csv" | "xlsx" | "png" | "pdf", but its <Note> still says only "The CSV download action on a dashboard widget only appears when the embed URL includes allowExport=true" and the link text reads "Allow CSV export". Both should be updated in this PR — it's the other half of the same fact.

3. Medium — inconsistent with the canonical PNG/PDF section (dashboards.mdx:90-95) — inline

docs/explore-analyze/dashboards/index.mdx:81-86 describes the same exports as server-rendered snapshots that "can take up to a couple of minutes for large dashboards" and that carry the viewer's current filter/time-grain selections. Neither point appears here — the latency in particular matters for an embedded viewer. Conversely, "reflect the viewer's theme and locale" appears in neither the canonical section nor anywhere else in the docs; worth confirming it's actually backed by the CUB-4065 implementation rather than inferred. Prefer a one-liner + link to the canonical section over restating the mechanics (CLAUDE.md: "say it once").

4. Low — scope of allowExport is left implicit

The text says "each chart widget's ⋮ menu", but the canonical section also documents a whole-dashboard ⋯ → Download as PNG / PDF. Does allowExport=true gate only the per-widget menu in embeds, or the dashboard-level action too? Worth one explicit clause either way. (Note the canonical page says whole-dashboard export requires Manage permission on the owning workbook — likely relevant to whether it can appear in an embed at all.)

What's good

  • Correctly extends the existing section rather than adding a new page, matching the "surgical edits, no padding" guidance in docs-mintlify/CLAUDE.md.
  • Keeps the client-side-CSV / no-extra-query detail, which is genuinely useful and easy to lose in a rewrite.
  • Prose style, line wrapping, and menu conventions match the surrounding docs.

Not applicable

Security, performance, and test-coverage checks from the review checklist don't apply — this is a documentation-only change with no code, queries, or executable surface. No build/lint run: the change is a single .mdx body edit with no frontmatter or docs.json navigation changes.

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

dashboard.

## Allow CSV export
## Allow CSV, PNG, and PDF export

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.

Renaming this heading changes the generated anchor from #allow-csv-export to #allow-csv-png-and-pdf-export, which breaks the existing in-repo link at docs-mintlify/embedding/iframe/events.mdx:214:

export](/embedding/iframe/dashboards#allow-csv-export)). The event fires when a

docs-mintlify/CLAUDE.md also says not to rename URL anchors — use Mintlify's explicit anchor syntax to keep inbound links working:

Suggested change
## Allow CSV, PNG, and PDF export
## Allow CSV, PNG, and PDF export {#allow-csv-export}

(The link text in events.mdx — "Dashboards → Allow CSV export" — should still be updated to match the new heading.) Fix this →

Comment on lines +90 to +95
When enabled, each chart widget's ⋮ menu shows **Download as CSV**, **Download
as PNG**, and **Download as PDF** actions. The CSV is generated client-side from
the data already loaded into the widget, so no additional query is issued. The
PNG and PDF exports are rendered server-side and reflect the viewer's theme and
locale. The parameter is opt-in — omit it (the default) to keep the download
actions hidden.

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 PNG/PDF description here doesn't line up with the existing non-embedded description at docs-mintlify/docs/explore-analyze/dashboards/index.mdx:81-86, which says:

  • exports are server-rendered snapshots that can take up to a couple of minutes for large dashboards;
  • the filter and time-grain selections currently applied in the browser are carried into the export.

Neither of those (especially the latency, which matters a lot for an embedded viewer clicking a menu item) is mentioned here, while "reflect the viewer's theme and locale" appears in neither place. Two things worth confirming/tightening:

  1. Is the theme/locale claim actually backed by the CUB-4065 implementation? If it is, it'd be good in the canonical section too; if it's inferred, drop it.
  2. Rather than restating server-render mechanics (CLAUDE.md: "say it once"), consider a one-liner plus a link to the canonical section:
Suggested change
When enabled, each chart widget's ⋮ menu shows **Download as CSV**, **Download
as PNG**, and **Download as PDF** actions. The CSV is generated client-side from
the data already loaded into the widget, so no additional query is issued. The
PNG and PDF exports are rendered server-side and reflect the viewer's theme and
locale. The parameter is opt-in — omit it (the default) to keep the download
actions hidden.
When enabled, each chart widget's ⋮ menu shows **Download as CSV**, **Download
as PNG**, and **Download as PDF** actions. The CSV is generated client-side from
the data already loaded into the widget, so no additional query is issued. PNG
and PDF are [server-rendered snapshots](/docs/explore-analyze/dashboards#download-as-png-or-pdf)
and can take longer to produce. The parameter is opt-in — omit it (the default)
to keep the download actions hidden.

Also: does allowExport=true gate only the per-widget ⋮ menu, or does it also expose the whole-dashboard ⋯ → Download as PNG/PDF action described in that section? The current wording ("each chart widget's ⋮ menu") implies widget-only — worth stating explicitly either way, since that's the first question a reader will have.

Alerts (email notifications for API outages, database timeouts, and
pre-aggregation build failures/completions) recently gained a permanent
home in the account-level Admin panel (CUB-3926), but the feature itself
had no docs page yet.
@keydunov keydunov changed the title docs(embedding): document PNG/PDF export for embedded dashboards docs: document PNG/PDF embed export and add an Alerts page Aug 22, 2026
@claude

claude Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Claude finished @keydunov's task in 2m 19s —— View job


Re-review of new commit b614db0 (Alerts page) — 2 medium, 3 low (2 inline comments posted). 2 prior threads on dashboards.mdx still apply.

Full review
  • Gather context (diff since last review)
  • Review new admin/monitoring/alerts.mdx page
  • Verify link targets and docs.json nav entry
  • Check existing review threads for staleness/dupes
  • Post review

Scope note

The synchronize added docs(admin): add an Alerts page — a new 43-line page plus a nav entry, unrelated to the PNG/PDF export change this PR is titled and described for. Not a blocker, but the PR body doesn't mention it; worth either updating the description or splitting it out so the Alerts page gets reviewed on its own merits.

docs-mintlify/embedding/iframe/dashboards.mdx is unchanged since the last review, so both prior inline threads still stand as written — no new comments posted for them.

New findings

1. Medium — plan callout deviates from the canonical form, and the tier itself looks suspect (admin/monitoring/alerts.mdx:12) — inline

docs-mintlify/CLAUDE.md prescribes "Available on [Starter and above plans]"; this writes "the Starter plan and above". Separately, every sibling page in the Monitoring group is Premium+ or Enterprise — Starter would be the outlier, so the tier is worth confirming against the product.

2. Medium — Build completed contradicts the page intro (admin/monitoring/alerts.mdx:36) — inline

Line 7 says "a pre-aggregation build fails or completes"; line 36 defines Build completed as "A deployment build finishes". Those are different events. The frontmatter description also omits this fourth event type entirely.

3. Low — "Cube Cloud" is legacy naming (admin/monitoring/alerts.mdx:24)

"Custom email addresses that aren't Cube Cloud users" — CLAUDE.md marks Cube Cloud as legacy, "do not use in new content". Use "Cube users". (Older pages still say it; that's precedent, not license for a new page.)

4. Low — navigation path is vaguer than sibling pages (admin/monitoring/alerts.mdx:7-8)

"Manage them from Alerts in the account-level Admin panel" — "Admin panel" appears nowhere else in the docs. Comparable pages give a concrete click path: audit-log.mdx:22 ("navigate to the Team & Security page, open the Audit Log tab"), budgets.mdx:30 ("clicking on your avatar in the top right corner, then clicking on Billing"). Match that so a reader can actually find the page.

5. Low — related-feature cross-links are missing

admin/account-billing/budgets.mdx:78 documents a near-identical "All users / Specific users / Custom email" recipient picker for budget alerts, and admin/monitoring/monitoring-integrations/index.mdx:346 covers alerting via external tools. A one-line pointer from the new page would keep a reader from thinking these are the same mechanism. Also docs/preferences.mdx:27-28 notes that a user's language setting controls the language of transactional emails "such as budget alerts" — presumably true of these alert emails too.

Verified

  • Both reference-style links resolve: /reference/data-modeling/pre-aggregations#partition_granularity (heading at reference/data-modeling/pre-aggregations.mdx:755) and /docs/pre-aggregations/using-pre-aggregations#export-bucket (heading at line 1087). The inline /admin/monitoring/pre-aggregations target exists.
  • docs.json nav entry added in the Monitoring group, adjacent to performance and audit-log — sensible placement.
  • Frontmatter uses title + description, no body H1, <Note> (not <Info>) for plan gating, root-relative links — all per docs-mintlify/CLAUDE.md.
  • No binaries committed.

What's good

  • Tight page — a table plus two short sections, no "Overview"/"Best practices" padding. Matches the concision guidance.
  • The pre-agg-failure paragraph pointing at partitioning and export buckets is genuinely actionable and links to the canonical reference rather than restating it.

Not applicable / not run

Security, performance, and test-coverage checks don't apply — documentation-only, no executable surface. I validated docs.json structurally by reading the diff rather than running a parser (the command needed approval); the change is a single added string in an existing array, so the risk is low, but yarn dev in docs-mintlify/ would confirm.

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


<Note>

Available on the [Starter plan and above](https://cube.dev/pricing).

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 on this callout.

Phrasingdocs-mintlify/CLAUDE.md fixes the wording for multi-tier availability: ✅ "Available on [Starter and above plans]". Every other page follows it (admin/monitoring/performance.mdx:13, admin/monitoring/usage-analytics.mdx:18, admin/account-billing/budgets.mdx:12 all use "Premium and above plans"). "the Starter plan and above" is a new variant.

Suggested change
Available on the [Starter plan and above](https://cube.dev/pricing).
Available on [Starter and above plans](https://cube.dev/pricing).

The claim itself — worth double-checking Starter is right. Every sibling page in this group is Premium+ or Enterprise (performance Premium+, usage-analytics Premium+, audit-log Enterprise, monitoring-integrations Enterprise add-on), so Starter would be the outlier here. If Alerts really is available on Free too, the callout should be dropped entirely rather than named at the lowest paid tier. Fix this →

| API outages | A deployment's API becomes unreachable. |
| Database response timeouts | A query to the connected data source times out. |
| Pre-aggregation build failures | A [pre-aggregation build](/admin/monitoring/pre-aggregations) fails. |
| Build completed | A deployment build finishes. |

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 row conflicts with the page intro. Line 7 says alerts fire when "a pre-aggregation build fails or completes", which reads as pre-aggregation build completion — but the table defines Build completed as "A deployment build finishes", a different thing entirely (deployment/model build vs. pre-agg build).

One of the two is wrong, and a reader picking event types can't tell which. If it's a deployment build, the intro sentence should say so:

Alerts send email notifications when a deployment has an API outage, a database response timeout, a pre-aggregation build fails, or a deployment build completes.

Also, the description frontmatter (line 3) lists only outages/timeouts/pre-agg failures and omits this fourth type. Fix this →

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