Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
713 commits
Select commit Hold shift + click to select a range
f3da859
v1.6.51
ovr May 27, 2026
d1db651
docs: document default dashboards for embed Creator Mode (CUB-2718) (…
vasilev-alex May 27, 2026
eab34f2
fix(tesseract): JOIN-model assembly for multi-stage reduce_by (#10947)
waralexrom May 27, 2026
6c13990
feat(cubesql): Universally prefix all errors (#10758)
MazterQyou May 27, 2026
416ecc9
chore(pg-srv): Release 0.3.0
ovr May 27, 2026
58073fc
docs: add section on sharing workbooks and dashboards in Creator Mode
vasilev-alex May 27, 2026
4336697
docs: clarify root-level YAML rules and certified queries apply to au…
mintlify[bot] May 28, 2026
01d448b
chore(ci): CC review - enable syncronize
ovr May 28, 2026
2c7a614
feat(tesseract): Multi-stage filter directives (#10827)
waralexrom May 28, 2026
f39bcf0
fix(drivers): athena custom-granularity pre-aggregation build (#10950)
waralexrom May 28, 2026
7d7a6cd
chore(ci): CC review - auto resolve threads (#10955)
ovr May 28, 2026
12c8a5e
chore(ci): CC review - avoid duplicate inline comments (#10956)
ovr May 28, 2026
1d9db48
chore(ci): CC review - hide final summary behind a spoiler (#10958)
ovr May 28, 2026
8cf3bef
chore(ci): CC review - hide completed checklist behind spoiler too (#…
ovr May 28, 2026
ba76cf0
chore(ci): CC review - publish run metrics to workflow summary (#10960)
ovr May 28, 2026
d1c34fa
chore(ci): CC review - skip drafts and cancel stale synchronize runs …
ovr May 28, 2026
6bf6fca
chore(ci): CC review - allow triggering via /bot-review PR comment (#…
ovr May 28, 2026
8198b43
chore(ci): CC review - add /bot-deep-review and bump model to 4.7 (#1…
ovr May 28, 2026
155ef89
chore(ci): CC review - react to trigger comment
ovr May 28, 2026
af0a811
docs: fix cards and broken links on Orchestration API index (#10966)
keydunov May 28, 2026
b71cd24
docs: add changelog link to navbar (#10967)
keydunov May 28, 2026
1ff17f0
chore(ci): CC review - allow cursor[bot] to trigger reviews
ovr May 28, 2026
0c08a78
feat: support distributed query cancellation in query queue and cance…
paveltiunov May 29, 2026
76eb75b
feat(tesseract): multi-stage grain directive (#10957)
waralexrom May 29, 2026
fa7e2f3
v1.6.52
ovr May 29, 2026
632620d
fix(cubejs-questdb-driver): Unsupported HAVING clause, thanks @puzpuz…
puzpuzpuz May 29, 2026
8265a64
chore(tesseract): additional integration tests (#10969)
waralexrom May 29, 2026
6932e7c
docs(admin): document app theme customization (#10971)
vasilev-alex May 29, 2026
c7b5239
docs: clarify PrivateLink/PSC setup is customer-owned in BYOC (#10972)
mintlify[bot] May 29, 2026
69c9cb0
docs: add Dashboard Agent and Workbook Agent pages (#10973)
keydunov May 29, 2026
b2c02a4
docs: document region map and updated point map options (#10974)
igorlukanin May 29, 2026
852790f
feat(tesseract): NativeRustHandle/NativeRustBox in cubenativeutils (#…
waralexrom Jun 1, 2026
35bed42
chore(cubesql): DFWrapper - reduce stack usage (#10981)
ovr Jun 1, 2026
48a3e41
feat(tesseract): native Rust time-series generation (#10980)
waralexrom Jun 1, 2026
5f3cb69
chore(cubesql): Upgrade sqlparser to 0.62.0 (#10983)
ovr Jun 1, 2026
181753f
docs: update Connected apps navigation reference and screenshot (#10978)
mintlify[bot] Jun 1, 2026
d86ab6f
chore(tesseract): resolve join trees once per query (#10982)
waralexrom Jun 1, 2026
34fa717
feat: Links in the data model (#10852)
paveltiunov Jun 2, 2026
9f84c44
docs: update kerberos auth setup (#10987)
MikeNitsenko Jun 2, 2026
5c96632
refactor(tesseract): carry multiplied-count rendering in the measure …
waralexrom Jun 2, 2026
b18fd3d
feat(cubesql): Improve UX for parsing errors (#10984)
ovr Jun 2, 2026
a2c65aa
v1.6.53
ovr Jun 2, 2026
33ca484
fix(tesseract): make pre-aggregations tests work under native SQL pla…
waralexrom Jun 2, 2026
f66510e
docs(oidc): add Azure Blob Storage CSPS section (#10998)
bsod90 Jun 2, 2026
96ba2d5
docs: redirect legacy cube.dev/docs URLs to new docs.cube.dev (#11002)
keydunov Jun 3, 2026
adb2da5
docs: rename "time grain" to "time granularity" in dashboard controls…
mngr Jun 3, 2026
9576afe
docs: update workbook default query row limit to 10,000 (#11003)
keydunov Jun 3, 2026
559bef7
docs: fix legacy redirect destinations 404ing on docs.cube.dev (#11004)
keydunov Jun 3, 2026
a321af5
fix(tesseract): nested CTE generation with duplicate names (#11005)
waralexrom Jun 3, 2026
38b7d8c
fix(cubesql): Don't mix filter params between subqueries in SQL push …
waralexrom Jun 3, 2026
f401118
fix(tesseract): pre-aggregation table name corruption when one name i…
waralexrom Jun 3, 2026
d9a308f
feat(api-gateway): accept a list of API secrets for verification (#10…
bsod90 Jun 3, 2026
5935a41
docs: document Agent Skills for the Cube AI agent (#11007)
keydunov Jun 3, 2026
11588e6
v1.6.54
ovr Jun 4, 2026
adc8d26
feat(cubestore): unique key filter pushdown below last-row dedup (#11…
waralexrom Jun 4, 2026
e29e04c
perf(snowflake-driver): Combine session init into a single ALTER SESS…
ovr Jun 4, 2026
cdc108e
docs: clarify domain overrides and add Network Error troubleshooting …
mintlify[bot] Jun 4, 2026
16e46ae
docs: document messageId and idempotency in Chat API (#11012)
mintlify[bot] Jun 4, 2026
b350fed
docs: add Demos link to navbar (#11014)
keydunov Jun 4, 2026
944c0bc
docs: add Cube Cloud public API reference (SCIM + Deployments) (#11015)
keydunov Jun 5, 2026
5a994ff
feat(cubestore): Introduce HttpQueryResultCompleted for zero-column r…
ovr Jun 5, 2026
0d6393b
v1.6.55
ovr Jun 5, 2026
c2fbef4
docs(oidc): publish OIDC workload identity guides in public nav (#11013)
bsod90 Jun 5, 2026
3bd231d
docs: dashboard agent can change filters & time granularity (CUB-2757…
mngr Jun 5, 2026
20cf477
docs: document that hierarchies can be included in views
igorlukanin Jun 5, 2026
35ca40c
docs: fix deployments OpenAPI path trailing slash that broke mint dev…
igorlukanin Jun 5, 2026
9318e1d
docs: add section on applying a security context in workbooks and das…
vasilev-alex Jun 6, 2026
bf13b69
fix(access-policies): masked aggregate measures with row filters + mu…
paveltiunov Jun 7, 2026
1a3acd8
docs: fix spacing in data access policies diagram (#11028)
paveltiunov Jun 7, 2026
590146f
docs: platform api (#11029)
vasilev-alex Jun 7, 2026
107e63f
feat(cubestore): EXPLAIN ANALYZE DETAILED per-query trace (#11016)
waralexrom Jun 8, 2026
44bd455
fix(native): Don't fail deserializing JS numbers above u64/i64 range …
ovr Jun 8, 2026
7583983
fix(prestodb-driver): Send custom headers on nextUri poll requests (#…
ovr Jun 8, 2026
11fb609
v1.6.56
ovr Jun 8, 2026
e9a26ee
docs: document contextToCubeStoreRouterId config option (#11039)
paveltiunov Jun 8, 2026
f7c2e1b
docs(powerbi): note Cube only supports live connection mode (#11038)
keydunov Jun 8, 2026
281e920
feat(cubesql): merge view joins on a shared cube member into a single…
paveltiunov Jun 9, 2026
68e9e88
docs(api): three API families (Core Data, AI, Platform) + curated pub…
keydunov Jun 9, 2026
5f4674f
v1.6.57
paveltiunov Jun 9, 2026
d91df4b
feat(cubestore): execute sorted partial aggregate per partition below…
waralexrom Jun 9, 2026
517d8ea
docs(oidc): clarify GCP audience is the WIF provider resource path (#…
bsod90 Jun 9, 2026
decc84e
docs: expand aggregating indexes guidance (#11035)
AvilaJulio Jun 10, 2026
dcb7dc7
docs: fix cube-with-dbt link (#11025)
mattheworford Jun 10, 2026
9981432
docs: remove Semantic Catalog mentions from pricing page (#11021)
mintlify[bot] Jun 10, 2026
93d2c3d
docs: document asking AI chat about available semantic model fields (…
mintlify[bot] Jun 10, 2026
c70e7ec
fix(cubesql): Fix grouped join SQL push down regressions (#11049)
MazterQyou Jun 10, 2026
6336388
docs(data-modeling): document multi-stage measure filter directive
igorlukanin Jun 10, 2026
8ef4b54
feat(cubesql): Support FULL and RIGHT joins with non-push-to-Cube SQL…
MazterQyou Jun 10, 2026
eabeda8
docs(oidc): document OIDC auth on Redshift, Athena, and BigQuery driv…
bsod90 Jun 10, 2026
094974b
feat(schema-compiler): capitalize ID acronyms in default meta titles …
keydunov Jun 10, 2026
bdf1ffb
docs: auth header, formatting, broken links (#11059)
vasilev-alex Jun 10, 2026
e6b79c4
docs: document meta.default_ui_filters for workbook default filters (…
keydunov Jun 10, 2026
57cba2d
docs: document meta.auto_run to disable workbook auto-run per view (#…
keydunov Jun 10, 2026
747ace5
docs(oidc): Snowflake External OAuth guide + custom claims (#11057)
bsod90 Jun 10, 2026
ba2303a
docs: document graceful fallback for incompatible dashboard controls …
Zhabrikoff Jun 11, 2026
fda5ab5
fix(tesseract): Unexpected panic when pre-aggregation time_dimension …
ovr Jun 11, 2026
3b8b61e
docs: tableau sls least privilege mode (#11063)
MikeNitsenko Jun 11, 2026
b5dbdf5
feat(cubestore): batch persisted-chunk repartition per partition (#11…
waralexrom Jun 11, 2026
ad64b04
refactor(cubestore): append CSV import values directly into Arrow bui…
waralexrom Jun 12, 2026
85bd67b
feat(cubestore): dedicated reserve job pool for CSV imports (#11069)
waralexrom Jun 12, 2026
64db8b6
docs: add Usage Analytics page (#11061)
keydunov Jun 12, 2026
2394513
feat(cubestore): pre-filter in-memory chunks on worker before IPC (#1…
waralexrom Jun 12, 2026
3278e4d
feat(backend-shared): add CUBEJS_AUTO_RUN_MODE env variable (#11062)
keydunov Jun 12, 2026
9c12c3f
docs(cloud): add AI Evals documentation (#11075)
keydunov Jun 12, 2026
d585608
docs(cloud): add Content Validator documentation (#11076)
keydunov Jun 12, 2026
b6f2462
docs: dbt pull preview (#11077)
MikeNitsenko Jun 12, 2026
46a8454
fix(cubestore): support Float32 in query result conversion (#11078)
waralexrom Jun 12, 2026
b42b780
perf(cubestore): streaming k-way merge for compaction (#11072)
waralexrom Jun 14, 2026
26eec6f
perf(cubestore): early compaction split (#11079)
waralexrom Jun 14, 2026
ee86b13
fix(cubestore): stop main-node OOM from concurrent metastore scans (#…
waralexrom Jun 14, 2026
ddf77f2
perf(cubestore): load-aware placement of CSV import jobs (#11084)
waralexrom Jun 15, 2026
cfadb20
docs: document automatic parenthesization of compound member referenc…
igorlukanin Jun 15, 2026
64602ae
docs(cloud): add MCP Connectors documentation (#11085)
keydunov Jun 15, 2026
3a84d1a
docs: pre-aggregation-specific data source configuration (follow-up t…
igorlukanin Jun 15, 2026
8fc0cf8
docs: matching separate pre-aggregations to multi-fact and multi-stag…
igorlukanin Jun 15, 2026
d4d269b
docs: multi-stage grain directive for measures (follow-up to #10957)
igorlukanin Jun 15, 2026
689d842
feat(cubestore): env-gate last week's planning/processing changes (#1…
waralexrom Jun 15, 2026
66fa742
docs: window functions and missing aggregates in the SQL API referenc…
igorlukanin Jun 15, 2026
8f5aac2
docs: structured JSON logging in production (follow-up to #10338, #10…
igorlukanin Jun 15, 2026
fc8a7d3
docs: SET TIME ZONE in the SQL API (follow-up to #10364)
igorlukanin Jun 15, 2026
3c59318
docs: CUBEJS_DB_MSSQL_USE_NAMED_TIMEZONES for Microsoft SQL Server (f…
igorlukanin Jun 15, 2026
443a27e
docs: Databricks export bucket works in read-only mode (follow-up to …
igorlukanin Jun 15, 2026
c39db59
docs: Cube Store query cache stale-while-revalidate and compaction re…
igorlukanin Jun 15, 2026
a348331
docs: document CUBESTORE_CHUNKS_COUNT_THRESHOLD env var (follow-up to…
igorlukanin Jun 15, 2026
87ae095
feat(cubestore): tolerant job reads + cleanup of unknown job types (#…
waralexrom Jun 15, 2026
9aa5f72
docs: client-side Format API and named-format precision semantics (fo…
igorlukanin Jun 16, 2026
7a4f925
docs: responseFormat, dataSource, pre-aggregation marker, and GraphQL…
igorlukanin Jun 16, 2026
5447f30
docs: data model name uniqueness rules (follow-up to #10400, #10399, …
igorlukanin Jun 16, 2026
588a5e8
docs: EXPLAIN ANALYZE DETAILED for Cube Store query tracing (follow-u…
igorlukanin Jun 16, 2026
0e89fb0
docs: Cube Store S3 authentication via AWS Web Identity (follow-up to…
igorlukanin Jun 16, 2026
d2ed904
v1.6.58
paveltiunov Jun 17, 2026
13f1c91
perf(schema-compiler): optimize granularityHierarchies to avoid O(n^2…
paveltiunov Jun 17, 2026
28c6938
v1.6.59
paveltiunov Jun 17, 2026
57efd2f
docs: update dbt pull param name and description (#11096)
MikeNitsenko Jun 17, 2026
75bb366
fix(docs-mintlify): broken internal links (#11081)
mattheworford Jun 17, 2026
455de8f
fix(cubesql): Normalize BETWEEN timestamp/date bounds (#11104)
MazterQyou Jun 17, 2026
73b7805
feat(cubesql): Support `ILIKE` SQL push down for BigQuery (#11112)
MazterQyou Jun 17, 2026
f885196
docs(byoc): allow RDS service-linked role creation in AWS BYOC policy…
bsod90 Jun 17, 2026
7a9a4f2
docs: document supported operators in access policy conditions (#11116)
igorlukanin Jun 18, 2026
b49352b
docs: use userAttributes in access policy operators example for consi…
igorlukanin Jun 18, 2026
5c8c70f
docs: platform client v0.1.2, security context, deployment-scoped API…
vasilev-alex Jun 18, 2026
e071d08
docs: update MCP server deployment & agent selection (#11115)
keydunov Jun 18, 2026
6eb7afa
fix(tesseract): memory leaks in the native planner (#11120)
waralexrom Jun 18, 2026
e6cc80f
docs(api-keys): update API keys demo video
vasilev-alex Jun 18, 2026
cb35d10
v1.6.60
paveltiunov Jun 18, 2026
a67fa3c
fix(tesseract): keep pre-aggregations for RBAC access-denied 1=0 segm…
waralexrom Jun 19, 2026
748b3e1
docs: document color scale (heat mapping) for table charts (#11121)
igorlukanin Jun 19, 2026
5d82db1
docs(table-chart): document inline data bars (#11122)
igorlukanin Jun 19, 2026
f1b0ea4
perf(cubestore): faster repartition (prefetch, per-partition merge, r…
waralexrom Jun 19, 2026
3eae361
perf(cubestore): reduce metastore RPC fan-out during partitioning (#1…
waralexrom Jun 19, 2026
88e57d4
fix(cubejs-client-core): surface cubeSql error chunks instead of drop…
keydunov Jun 19, 2026
31ad8db
docs: document Scheduled Tasks (preview) (#11126)
keydunov Jun 19, 2026
155987f
feat: support nested view groups via includes (#10999)
igorlukanin Jun 22, 2026
2ef39d1
fix(cubestore): Skip rolling rewrite for aggregates without aggregate…
ovr Jun 22, 2026
bd8b6e6
v1.6.61
ovr Jun 22, 2026
43e1a83
docs: add CSV export feature for embedded dashboards
vasilev-alex Jun 22, 2026
932e253
feat(cubesql): Push `Limit`-`Sort` down `Union` inputs (#11125)
MazterQyou Jun 22, 2026
789333d
feat(tesseract): Support boolean and numeric filter values (#11135)
ovr Jun 22, 2026
c79eb98
feat(cubesql): Support parsing IANA timezones (#11140)
MazterQyou Jun 22, 2026
8e9d38c
fix(cubesql): Support EXTRACT(EPOCH) over timestamp diff on Snowflake…
MazterQyou Jun 22, 2026
741138a
fix(tesseract): Resolve join for hint-less member-expression measures…
ovr Jun 23, 2026
a4a3e79
fix(tesseract): Push ad-hoc filters into view measure aggregation (#1…
ovr Jun 23, 2026
4d4b8cd
feat(tesseract): Support SQL API grouped sub-query joins (#11138)
ovr Jun 23, 2026
f4d2dde
fix(databricks-jdbc-driver): support OIDC/workload identity for expor…
bsod90 Jun 23, 2026
e317395
v1.6.62
ovr Jun 23, 2026
3690654
docs: document single-file form for eval questions (#11145)
keydunov Jun 23, 2026
c678c58
docs: rename Evaluate to Evals; inline naming conventions into CLAUDE…
keydunov Jun 23, 2026
6a640a6
feat(tesseract): Support use_original_sql_pre_aggregations in rollup …
ovr Jun 23, 2026
0f0300d
fix(firebolt-driver): Cast BOOLEAN filter params under Tesseract plan…
ovr Jun 24, 2026
2530d1e
test(testing-drivers): isolate pre-aggregations schema per run to fix…
paveltiunov Jun 24, 2026
56ba7c6
fix(cubesql): Handle array-typed columns in streaming SQL mode (#11149)
MazterQyou Jun 24, 2026
9a24249
fix(schema-compiler): Thread memberToAlias through multi-stage CTEs (…
MazterQyou Jun 24, 2026
b33b95c
fix(tesseract): Incorrect time dimenssion cast for Clickhouse (#11155)
ovr Jun 24, 2026
da1d68d
fix(tesseract): Support time series queries for MySQL 8+ (#11154)
ovr Jun 24, 2026
d253119
docs: remove preview label from Evals (#11158)
keydunov Jun 25, 2026
ebad8ed
v1.6.63
ovr Jun 25, 2026
71d114d
chore(cubestore): exclude stream imports from load-aware placement (#…
waralexrom Jun 25, 2026
c7d3ad1
fix(cubestore): Фvoid empty SortPreservingMerge for empty sort_on (#…
waralexrom Jun 25, 2026
dd791e2
feat(clickhouse-driver): Support passing custom HTTP headers (#11161)
ovr Jun 25, 2026
8d76ec2
v1.6.64
ovr Jun 25, 2026
ff3f5c9
fix(druid-driver): Emulate ILIKE for Tesseract and SQL API push down …
ovr Jun 25, 2026
3b60dd5
docs: document dimension links — modeling + dashboard cell menu (#11148)
mngr Jun 26, 2026
96a6f28
fix(tesseract): Honor memberToAlias for granularized time dimensions …
ovr Jun 26, 2026
9b6a960
fix(tesseract): honor rolling window offset without granularity (#11169)
waralexrom Jun 26, 2026
909a965
docs(table): document sparklines display mode (granularity, toggling,…
igorlukanin Jun 26, 2026
b8847e4
chore(tesseract): Run pre-aggregation integration tests against live …
waralexrom Jun 29, 2026
660c0a2
fix(tesseract): Reject pre-agg when a measure is multiplied only in t…
ovr Jun 29, 2026
dc7fba9
perf(cubestore): worker-side group-by-limit hash-aggregate trim (#11144)
waralexrom Jun 29, 2026
9da8e07
feat(oracle-driver): Improvements & fixes, fix #10834 (#11174)
ovr Jun 29, 2026
0c8cd24
feat(cubestore): top-k merge strategies via CUBESTORE_TOPK_STRATEGY (…
waralexrom Jun 30, 2026
f0569ad
fix(tesseract): Render dimension mask filters on grouped masked measu…
ovr Jun 30, 2026
28e91ed
fix(tesseract): cast bound param on measure filters (#11176)
waralexrom Jun 30, 2026
6b98135
fix(cubestore): add statsd metrics bind address ENV VAR (#9922)
FlipEnergy Jun 30, 2026
b3448e9
fix(tesseract): match rolling pre-aggregations without a date range v…
ovr Jun 30, 2026
30bdcbb
fix(tesseract): Drop order-by-only measures from pre-aggregation read…
ovr Jun 30, 2026
d257168
fix(cubestore): guard replay handle seq pointer / location length mis…
waralexrom Jun 30, 2026
45fac55
fix(tesseract): Incorrect measure for ungrouped rollup pre-aggregatio…
ovr Jun 30, 2026
1435d0a
docs(embedding): document iframe events & actions postMessage contrac…
vasilev-alex Jun 30, 2026
49351e2
docs: document language support for embedded surfaces (#11186)
vasilev-alex Jun 30, 2026
6e5c98f
fix(tesseract): Per branch aliases in rollupLambda unions (#11184)
ovr Jun 30, 2026
183cd6e
feat(tesseract): Support Funnels extension (#11187)
ovr Jun 30, 2026
c27af09
fix(tesseract): preserve FILTER_PARAMS pushdown with segments (#11182)
waralexrom Jul 1, 2026
64502a0
v1.6.65
ovr Jul 1, 2026
5b96418
fix(tesseract): resolve FILTER_PARAMS callback-column placeholders in…
waralexrom Jul 1, 2026
e55263b
chore(ci): CC review - fix /bot-review checkout on fork PRs (#11192)
ovr Jul 2, 2026
b99d546
fix(tesseract): reduce_by/grain matches time dimensions regardless of…
waralexrom Jul 2, 2026
f9398ab
fix(tesseract): apply time_shift to FILTER_PARAMS column in shifted C…
waralexrom Jul 2, 2026
c4d9c51
docs(table): document per-column width controls (fixed px / flexible …
igorlukanin Jul 2, 2026
8a4a054
feat(databricks-jdbc-driver): Upgrade driver to 1.0.11 (to fix out of…
ovr Jul 3, 2026
c4c3594
fix(cubestore): Force standard Decimal128 bitWidth in Arrow response …
ovr Jul 3, 2026
ea64dff
v1.6.66
ovr Jul 3, 2026
c26b629
docs(table): document configurable borders and border presets for tab…
igorlukanin Jul 3, 2026
7c5b7f6
docs: remove Content Validator preview label, document Fill in missin…
keydunov Jul 4, 2026
a869654
feat(api-gateway): Support relative date ranges in OR/AND filters, th…
elijah-evans-deel Jul 6, 2026
17b0bee
fix(schema-compiler): Prevent alias gathering from polluting long-liv…
MazterQyou Jul 6, 2026
a66f1b2
chore: Upgrade cmov from 0.5.3 to 0.5.4 (#11202)
dependabot[bot] Jul 6, 2026
f1d6d62
v1.6.67
ovr Jul 6, 2026
35459bf
fix(api-gateway): Accept timezone-suffixed timestamps in date filters…
MazterQyou Jul 7, 2026
07cf0f0
chore: Allow to release from release branches
ovr Jul 7, 2026
4357589
v1.6.68
ovr Jul 7, 2026
abd8dbf
fix(trino-driver): Use SSL options in testConnection (#11217)
ovr Jul 7, 2026
6e0c77e
v1.6.69
ovr Jul 10, 2026
2d20dda
fix(cubesql): Bound PostgreSQL packet sizes (#11339)
ovr Jul 23, 2026
6b94612
fix(cubesql): Bound Bind/Parse parameter allocations in PG wire proto…
ovr Jul 23, 2026
361bba7
refactor(cubesql): Prevent panics in PG wire decoders (#11342)
ovr Jul 23, 2026
20931ca
fix(trino/prestodb-driver): Сorrect SQL parameter escaping (#11345)
ovr Jul 27, 2026
5d28530
fix(athena-driver): Correct SQL parameter escaping (#11370)
ovr Jul 27, 2026
f72f3c7
chore(ci): Bump PR review model to Claude Opus 5
ovr Jul 27, 2026
e77c444
fix(pinot/dremio/ksql/databriks/hive/jdbc-driver): Сorrect SQL parame…
ovr Jul 27, 2026
e666635
v1.6.70
ovr Jul 28, 2026
ff7c674
fix(api-gateway): require an isDevToken scope for the playground bypa…
paveltiunov Aug 17, 2026
869515f
v1.6.71
paveltiunov Aug 17, 2026
a2a136a
perf(postgres-driver): build user defined types map in linear time (#…
ovr Aug 18, 2026
4a960ff
perf(postgres-driver): Skip relation array types when loading user de…
ovr Aug 18, 2026
70cf7c8
v1.6.72
ovr Aug 18, 2026
7f7a59e
fix: Validate query timezone against IANA zones (#11575)
ovr Aug 19, 2026
a51253d
v1.6.73
ovr Aug 26, 2026
8ed75e8
fix(query-orchestrator): Drop touch/used keys when pre-aggregation bu…
ovr Jul 21, 2026
41eb746
v1.6.74
ovr Oct 9, 2026
3527381
chore(ci): Upgrade lerna to 10.1.1, fix publish retries, re-enable pr…
ovr Oct 16, 2026
b28fcdc
chore(playground): Stop vizard apps picking up the monorepo's @types …
ovr Oct 16, 2026
94ae729
chore(deps): Pin @types/parse-path to 7.0.3 to fix tsc on lts/v1.6 (#…
ovr Oct 23, 2026
ab263ec
chore(deps): Bump webpki-roots and rustls-webpki (backport #12378 to …
ovr Oct 23, 2026
27a305c
feat(docker): Security upgrade Node.js from 22.22.0 to 22.23.4 (#12399)
ovr Oct 23, 2026
c0a47b7
v1.6.75
ovr Oct 23, 2026
c6659fb
chore: merge cube v1.6.75
jtroup Oct 23, 2026
d452076
chore: drop npm tar replacement, superseded by node 22.23.4
jtroup Oct 23, 2026
e03aea2
chore: reset resolutions to upstream v1.6.75
jtroup Oct 23, 2026
ac35b22
fix(deps): fix High/Critical CVEs in the image and its dependencies
jtroup Oct 23, 2026
4e89b63
fix(deps): dedupe body-parser on 1.20.8
jtroup Oct 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
69 changes: 69 additions & 0 deletions .cursor/rules/docs-example-data-model.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
description: Canonical data model to use as the basis for all documentation examples
globs: docs-mintlify/**
alwaysApply: false
---

# Canonical Example Data Model

All documentation examples and recipes must use the [ecommerce demo data model](https://github.com/cubedevinc/ecommerce_demo) as their basis unless the topic genuinely requires a different domain.

## Cubes

### `order_items` (fact, `ECOMMERCE.ORDER_ITEMS`)
The primary fact table. Use this as the starting point for most examples.

Key fields:
- `id` — primary key
- `order_id`, `user_id`, `product_id`, `inventory_item_id` — foreign keys
- `status` (string) — `complete`, `processing`, `shipped`, `cancelled`, `returned`
- `sale_price` (number) — revenue per line item; measure `total_sale_price` (sum, currency)
- `created_at`, `shipped_at`, `delivered_at`, `returned_at` (time)
- `is_delivered` (boolean)
- measures: `count`, `order_count` (count_distinct on order_id), `total_sale_price`

### `orders` (`ECOMMERCE.ORDERS`)
Order-level table. Use when examples are about order status or counts.

Key fields:
- `order_id` — primary key
- `user_id`, `status`, `gender`, `num_of_item`
- `created_at`, `delivered_at`, `shipped_at` (time)
- measures: `count`

### `products` (`ECOMMERCE.PRODUCTS`)
Product catalog. Use when examples need brand, category, or product dimensions.

Key fields:
- `id` — primary key
- `brand`, `category`, `department`, `name`, `sku`
- `cost`, `retail_price` (number)
- measures: `count`

### `users` (`ECOMMERCE.USERS`)
Customer table. Use when examples need demographic or geographic dimensions.

Key fields:
- `id` — primary key
- `first_name`, `last_name`, `full_name`, `email`
- `age`, `gender`
- `city`, `state`, `country`
- `traffic_source`
- `created_at` (time)
- measures: `count`

## Common example patterns

**Revenue over time** → `order_items.total_sale_price` + `order_items.created_at`

**Orders by status** → `order_items.count` + `order_items.status`

**Revenue by brand/category** → `order_items.total_sale_price` joined to `products.brand` / `products.category`

**User demographics** → `users.count` + `users.city` / `users.country` / `users.traffic_source`

**Multi-cube join** → `order_items` joins `orders`, `products`, `users` via foreign keys defined in the repo

## Reference

Full model: https://github.com/cubedevinc/ecommerce_demo
110 changes: 110 additions & 0 deletions .cursor/rules/mintlify-mdx-gotchas.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
---
description: Mintlify MDX parsing gotchas — patterns that look correct but render broken
globs: docs-mintlify/**
alwaysApply: true
---

# Mintlify MDX gotchas

Mintlify uses MDX (Markdown + JSX). A handful of patterns parse cleanly in
plain Markdown but render broken once wrapped in JSX components like
`<Step>`. Use these rules when authoring or editing pages in
`docs-mintlify/`.

## `<Step>` must start with prose, not a fenced code block

When a fenced code block is the **first child** of a `<Step>` component,
Mintlify's MDX parser collapses the entire block onto one line, exposing
the literal triple backticks. Every `<Step>` body must begin with at least
one line of prose (a single sentence is enough).

❌ Renders broken — fence is the first child:

````mdx
<Step title="Attach the bucket permissions">
```json
{
"Version": "2012-10-17",
...
}
```
</Step>
````

✅ Add a one-line lead-in:

````mdx
<Step title="Attach the bucket permissions">
Allow the role to read, write, and list objects in your bucket:

```json
{
"Version": "2012-10-17",
...
}
```
</Step>
````

The intro line also reads better — it tells the user what the snippet does
before they hit it. Apply the same rule to any code block (`json`, `bash`,
`dotenv`, `yaml`, `sql`, …) that would otherwise be the first child of a
`<Step>`.

This rule applies anywhere a fenced code block sits at the top of a JSX
component body. `<Step>` is the most common offender; `<Tab>` and `<Card>`
behave the same way.

## Angle-bracket placeholders must be backticked in prose

`<tenant-name>`, `<aws-account-id>`, `<deployment-id>`, etc. are useful
placeholders inside fenced code blocks (they're plain text there) but in
prose they have to be wrapped in backticks. Otherwise MDX tries to parse
them as JSX components and either errors out or silently swallows them.

❌ MDX tries to parse `<tenant-name>` as a component:

```mdx
The issuer URL is https://<tenant-name>.cubecloud.dev.
```

✅ Backticked:

```mdx
The issuer URL is `https://<tenant-name>.cubecloud.dev`.
```

Inside fenced ```` ``` ```` blocks (and Mermaid diagrams that don't pass
through the JSX parser) the bare form is fine.

## Mermaid participant labels can't carry angle-bracket placeholders

Mermaid renders `<br/>` inside participant labels as a line break, but it
doesn't tolerate other `<…>` tags — they break the diagram. Use a plain
description ("your tenant URL") instead of `<tenant-name>.cubecloud.dev`
in `participant` labels.

## Bash heredoc / assignment with `<placeholder>` breaks copy-paste

`PROJECT_NUMBER=<project-number>` looks fine in a doc, but bash interprets
`<` as input redirection — pasting the line errors out. Quote it:

```bash
PROJECT_NUMBER="<project-number>"
DEPLOYMENT_ID="<deployment-id>"
```

Quotes preserve the placeholder visually and let the user `sed`-replace
without the line failing first.

## Don't use a body H1

Mintlify renders the frontmatter `title` as the page H1. Adding `# Heading`
in the body produces two H1s and breaks the doc outline. Use `## Heading`
for the first body section.

## Verifying

`mintlify dev --no-open` boots a local preview and surfaces compile errors
on startup. `mintlify broken-links` flags dead internal anchors. Run both
before publishing a non-trivial doc change.
135 changes: 135 additions & 0 deletions .cursor/rules/static-assets.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
---
description: How to upload and reference static images/assets for Mintlify docs
globs: docs-mintlify/**
alwaysApply: false
---

# Static assets for the Mintlify docs

## Where assets live

- **Editorial assets** (provider logos, UI screenshots, architecture diagrams,
recipe images, etc.) → S3 bucket `cube-dev-websites-shared`, served via CDN
at `https://static.cube.dev/<key>`. **Never** commit these binaries to the
repo.
- **Site chrome** that ships with Mintlify itself (the favicon and the logos
in `docs-mintlify/logo/`) stays in the repo. Don't add new files there.

If you're not sure: anything you'd reference from an `.mdx` page → S3.

## Uploading editorial assets

Use the script in `docs-mintlify/scripts/` (no AWS console clicks needed).
Run it from the `docs-mintlify/` directory:

```bash
./scripts/upload-asset.sh <local-file> <dest-key>
```

Examples:

```bash
./scripts/upload-asset.sh ./snowflake.svg icons/snowflake.svg
./scripts/upload-asset.sh ./architecture.png docs/getting-started/architecture.png
./scripts/upload-asset.sh ./flow.svg diagrams/pre-aggregations-flow.svg
```

The script prints (and copies to clipboard on macOS) the final
`https://static.cube.dev/<key>` URL. Paste that URL into the relevant
`.mdx` file.

Full docs: `docs-mintlify/scripts/README.md`.

## First-time AWS setup

The upload script needs the AWS CLI and credentials for the
`cube-dev-websites-shared` bucket. If `./scripts/upload-asset.sh` fails with
`command not found: aws` or an AWS auth error, run through these steps once.

If the user hasn't configured AWS yet, walk them through this — don't try to
guess credentials or upload without a working profile.

1. **Install the AWS CLI**

```bash
brew install awscli # macOS
# or: pipx install awscli # cross-platform
```

2. **Get credentials**

You need an IAM user / SSO role with `s3:PutObject` and `s3:HeadObject`
on `cube-dev-websites-shared`. Ask whoever manages Cube's AWS account
(post in the internal infra/ops channel) — don't reuse personal keys.

3. **Configure a local profile**

The script picks up the `cube-static` profile by default. Use that name
to avoid having to set `AWS_PROFILE` every time:

```bash
aws configure --profile cube-static
# AWS Access Key ID: <your key>
# AWS Secret Access Key: <your secret>
# Default region name: us-west-2
# Default output format: json
```

If you must use a different profile name, prefix every invocation:

```bash
AWS_PROFILE=my-profile ./scripts/upload-asset.sh ./logo.svg icons/foo.svg
```

4. **Verify access** before your first real upload:

```bash
aws sts get-caller-identity --profile cube-static
aws s3 ls s3://cube-dev-websites-shared/icons/ --profile cube-static | head
```

Both commands should succeed. If `ls` returns an `AccessDenied` error,
credentials are wrong or lack S3 permissions — fix that before uploading.

Never commit AWS keys to the repo or paste them into chat. They live only in
`~/.aws/credentials` (or your SSO config).

## Path conventions

| Prefix | Use for |
| --------------------------------- | -------------------------------------------------- |
| `icons/<slug>.svg` | Provider / integration / vendor logos for `<Card>` |
| `icons/<slug>-light.svg` | Logo, light variant (use on dark backgrounds) |
| `icons/<slug>-dark.svg` | Logo, dark variant (use on light backgrounds) |
| `docs/<section>/<slug>/<file>` | Screenshots & images for a specific docs page |
| `diagrams/<slug>.svg` | Architecture / flow diagrams |
| `recipes/<slug>/<file>` | Recipe-specific screenshots |

Use kebab-case slugs. Match the existing `icons/<slug>.svg` pattern already
referenced from pages like `admin/connect-to-data/visualization-tools/index.mdx`
and `admin/deployment/providers/index.mdx` — don't invent a new top-level
prefix when one of the above fits.

For provider logos, prefer SVG. For UI screenshots, prefer PNG (or WebP for
larger images). Compress before uploading — the bucket is cached aggressively.

## Immutability rule

Asset URLs are **immutable by convention** — files are served with
`Cache-Control: public, max-age=31536000, immutable`. The upload script
refuses to overwrite existing keys.

When an asset needs to change:

1. Upload a new key with a version suffix (e.g. `snowflake-v2.svg`).
2. Update the `.mdx` reference in the same PR.

Never use `--force` on an asset that is already live.

## Don't

- Don't commit screenshots, provider logos, or diagrams into `docs-mintlify/`
itself — they bloat the repo and Mintlify build, and can't be reused.
- Don't reference Contentful (`ucarecdn.com`, `images.ctfassets.net`) URLs in
new docs content. Mirror to `static.cube.dev` first.
- Don't reuse the same key for a different image. Bump the version suffix.
9 changes: 9 additions & 0 deletions .cursor/rules/writing-documentation.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
alwaysApply: true
globs: docs-mintlify/**
---

This repo only contains code for Cube Core and documentation.
Our cloud product codebase is located in ~/code/cubejs-enterprise (at least that is where it is located on Artyom's mac). Research the cloud product codebase when documenting new features.
Our documenation is built with https://www.mintlify.com. Make sure you follow Mintlify best practices when designing documentation.
Our competitors are [Omni](https://omni.co/) and [Hex](https://hex.tech/). We use their documentation sometimes as a reference.
33 changes: 0 additions & 33 deletions .github/actions/deploy-example.sh

This file was deleted.

Loading
Loading