Skip to content

docs: document four undocumented customer-facing changes - #11863

Open
keydunov wants to merge 1 commit into
masterfrom
claude/gallant-ramanujan-v3umyw
Open

docs: document four undocumented customer-facing changes#11863
keydunov wants to merge 1 commit into
masterfrom
claude/gallant-ramanujan-v3umyw

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

Description of Changes Made

Found via a routine audit cross-checking recent cube-js/cube and cubejs-enterprise commits against docs-mintlify for undocumented customer-facing changes. These four were small enough to land as surgical edits:

  • reference/configuration/config.mdx — notes that cube.ts configuration files are no longer supported (feat(server): Remove support for cube.ts configuration file #11763); Cube now fails to start with an explicit error if cube.ts is present without a cube.js.
  • docs/explore-analyze/workbooks/index.mdx — documents the dashboard header's Published version chip, which shows the live version and a change summary (added/updated/removed widgets, layout changes) versus the previous published version.
  • admin/users-and-permissions/custom-roles.mdx — adds the new ChatHistoryRead ("Access chat history") deployment-scoped custom role permission, which grants read access to all users' chat conversations/traces in a deployment (distinct from being shared an individual thread).
  • docs/integrations/dbt.mdx — documents that meta: { cube: { public: false } } in a dbt model/column's schema YAML now controls the generated cube/dimension's Cube visibility and survives re-pulls.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PU2hSNsbbt4zHjqyn8NU1x


Generated by Claude Code

- Note that cube.ts configuration files are no longer supported
- Describe the dashboard "Published" version chip and its change summary
- Add the Access chat history (ChatHistoryRead) custom role permission
- Document that meta.cube.public in dbt controls generated cube/column visibility

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PU2hSNsbbt4zHjqyn8NU1x
@mintlify

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

💡 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 14, 2026
@claude

claude Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

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


Docs review: sound changes, 1 medium + 3 low findings — 4 inline comments posted

Full review

Todo

  • Read PR diff and the changed files in full
  • Verify the cube.ts claim against source (feat(server): Remove support for cube.ts configuration file #11763)
  • Verify ChatHistoryRead placement against the rest of custom-roles.mdx
  • Check dbt meta.cube.public claim
  • Check docs-mintlify/CLAUDE.md conventions (callouts, links, nav, concision)
  • Check for stale/duplicate review threads (none exist — this is the first review round)
  • Post inline comments + summary

Verification

Claim Status
cube.ts no longer supported ✅ Confirmed — packages/cubejs-server/src/server/container.ts:278-282, error string matches the doc wording
ChatHistoryRead / "Access chat history" ⚠️ Not verifiable here (enterprise); table placement reviewed
dbt meta: { cube: { public: false } } ⚠️ Not verifiable here — dbt generation lives in cubejs-enterprise, not this repo
Dashboard Published version chip ⚠️ Not verifiable here (UI lives in enterprise)

No docs.json changes needed — all four edits extend existing pages, which is the right call per docs-mintlify/CLAUDE.md ("default to editing existing pages, not creating new ones"). All four are appropriately short; no padding.

Findings

Medium — custom-roles.mdx:258: permission added to the internal catalog only

ChatHistoryRead landed in the "Reference: action catalog" table at the bottom, but not in the user-facing Actions table at lines 112–122 — the one a role author actually reads. Every other deployment-scoped action appears in both. The omission costs more than usual here: the grant semantics (read access to all users' chat conversations and traces, per the PR description) are privacy-relevant and currently documented nowhere. Also worth confirming whether this action auto-bumps the Base Role to Developer, given the <Tip> at line 130.

Low — config.mdx:14-20: condition is slightly off, and <Note> is reserved

The check order in container.ts:255-282 is cube.pycube.jscube.ts-error, so the failure requires neither cube.js nor cube.py — a cube.py next to a cube.ts starts fine. Separately, docs-mintlify/CLAUDE.md reserves <Note> for plan-availability callouts specifically so plan gating stays visually distinct; <Info> is the catch-all. Suggestion block posted inline.

Low — dbt.mdx:571-576: loose list item + flow-style YAML

The blank line before the new bullet makes the whole list render loose, changing spacing for every bullet above it. And meta: { cube: { public: false } } is JSON-flow YAML, while readers paste this into a block-style schema.yml — a short block snippet is more directly usable.

Low — workbooks/index.mdx:169-174: dashboard surface described on the workbook page

The section describes the header chip on an open published dashboard, while the rest of ## Workbook versions is written from the workbook side and links out via [ref-dashboards] when it crosses over. Suggested wiring in the same link. Optional: a {/* TODO: screenshot — ... */} placeholder, which this repo uses elsewhere for hard-to-describe UI.

Notes

Nothing security-, performance-, or test-related applies — this is a docs-only change with no code paths touched. Three of the four claims describe enterprise-repo behavior I can't check from this checkout; they read plausibly and match the PR description, but the dbt meta key path in particular is worth a second pair of eyes from whoever wrote that generator.

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

| `SchemaUpdate` | Edit data model |
| `SchemaUpdateDevBranches` | Edit data model on dev branches |
| `APMRead` | Access query history |
| `ChatHistoryRead` | Access chat history |

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 new permission was added to the internal action catalog, but not to the user-facing Actions table above (lines 112–122), which is the table someone actually reads while building a deployment policy. Every other deployment-scoped action (DeploymentRead, SecretsManage, APMRead, DownloadData, …) appears in both.

The gap matters more than usual here because the grant semantics are privacy-relevant: per the PR description, ChatHistoryRead grants read access to all users' chat conversations and traces in the deployment — which is exactly the kind of thing a role author needs stated, and it's currently documented nowhere. Suggest a row in the Actions table, e.g.:

| Monitoring  | Access chat history                 | View all users' chat conversations and traces in the deployment. Distinct from having an individual thread shared with you. |

Also worth confirming whether this action auto-bumps the Base Role to Developer — the <Tip> at line 130 says only DeploymentRead and DownloadData don't, so as written a Viewer-scoped "read chat history" role would silently become a Developer.

Fix this →

Comment on lines +14 to +20
<Note>

Configuration can only be defined in a `cube.js` or `cube.py` file. A `cube.ts`
file is not supported — if it's present without a `cube.js` file, Cube fails to
start with an error asking you to use `cube.js` or `cube.py` instead.

</Note>

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:

1. The condition is slightly off. In packages/cubejs-server/src/server/container.ts:255-282 the checks run in order cube.pycube.jscube.ts-error. So the error only fires when neither cube.js nor cube.py is present — with a cube.py alongside a cube.ts, Cube starts fine.

2. <Note> is reserved. docs-mintlify/CLAUDE.md says to use <Note> (gray) not <Info> (blue) specifically for plan-availability callouts, so that gating is visually distinct and scannable; <Info> is the catch-all. This isn't a plan-availability message.

Suggested change
<Note>
Configuration can only be defined in a `cube.js` or `cube.py` file. A `cube.ts`
file is not supported — if it's present without a `cube.js` file, Cube fails to
start with an error asking you to use `cube.js` or `cube.py` instead.
</Note>
<Info>
Configuration can only be defined in a `cube.js` or `cube.py` file. A `cube.ts`
file is not supported — if one is present and neither `cube.js` nor `cube.py`
exists, Cube fails to start with an error asking you to use `cube.js` or
`cube.py` instead.
</Info>

(Optionally fold this into the existing <Info> right above rather than stacking two callouts back to back.)

Comment on lines 571 to +576

- **Visibility** carries over from dbt: a model or column with `meta: { cube:
{ public: false } }` in its dbt schema YAML is generated as non-public
(`public: false`) in Cube, and stays that way across re-pulls — unlike
editing the generated file directly, which the next pull overwrites.

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.

Nit: the blank line before this bullet makes it the only loose item in an otherwise tight list — Markdown renders the whole list loose once any item is separated, so this changes the spacing of every bullet above it. Drop the blank line at 571 to keep it consistent with the rest of the list.

Also, readers copy-paste this into schema.yml, and meta: { cube: { public: false } } is JSON-flow YAML rather than the block form dbt schema files normally use. A two-line snippet would be more directly usable:

models:
  - name: orders
    meta:
      cube:
        public: false

I couldn't verify the meta.cube.public key against source — the dbt generation lives in cubejs-enterprise, not this repo — so please double-check the exact key path and that column-level meta is read the same way as model-level.

Comment on lines +169 to +174
### Viewing what changed

An open dashboard shows a **Published** version chip in its header. Clicking
it shows which version is currently live, when and by whom it was published,
and a summary of what changed since the previously published version —
widgets added, updated, or removed, or the layout rearranged.

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 section reads well, but it describes a dashboard surface (the header chip on an open published dashboard) while sitting on the workbooks page. The rest of ## Workbook versions is written from the workbook side and links out with [ref-dashboards] when it crosses over — worth doing the same here so readers know where to look:

Suggested change
### Viewing what changed
An open dashboard shows a **Published** version chip in its header. Clicking
it shows which version is currently live, when and by whom it was published,
and a summary of what changed since the previously published version —
widgets added, updated, or removed, or the layout rearranged.
### Viewing what changed
An open [published dashboard][ref-dashboards] shows a **Published** version chip
in its header. Clicking it shows which version is currently live, when and by
whom it was published, and a summary of what changed since the previously
published version — widgets added, updated, or removed, or the layout
rearranged.

Optional: the docs elsewhere on this page and in custom-roles.mdx leave {/* TODO: screenshot — ... */} placeholders for UI that's hard to describe in prose. A chip in a header is a good candidate.

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.

2 participants